提交 9ec2f6d9 编写于 作者: yanghye's avatar yanghye

upgrade: Cannot run is being upgraded

上级 47a34917
......@@ -11,8 +11,8 @@ package cef
import (
"github.com/energye/energy/common"
. "github.com/energye/energy/consts"
"github.com/energye/golcl/energy/tools"
"github.com/energye/golcl/lcl/api"
"github.com/energye/golcl/tools"
"os"
"path/filepath"
)
......@@ -184,7 +184,7 @@ func (m *tCefApplicationConfig) SetCommonRootName(name string) {
} else {
commonRootName = name
}
_CEFV8ValueRef_SetCommonRootName(name)
common.Proc(internale_CEFV8ValueRef_SetCommonRootName).Call(api.PascalStr(commonRootName))
}
// GO绑定JS对象类型所属对象名定义
......@@ -196,7 +196,7 @@ func (m *tCefApplicationConfig) SetObjectRootName(name string) {
} else {
objectRootName = name
}
_CEFV8ValueRef_SetObjectRootName(name)
common.Proc(internale_CEFV8ValueRef_SetObjectRootName).Call(api.PascalStr(objectRootName))
}
//energy framework env
......
......@@ -9,7 +9,7 @@
package cef
import (
"github.com/energye/energy/common"
. "github.com/energye/energy/common"
. "github.com/energye/energy/consts"
"github.com/energye/energy/ipc"
"github.com/energye/golcl/lcl/api"
......@@ -28,7 +28,8 @@ func NewApplication(cfg *tCefApplicationConfig) *TCEFApplication {
}
cfg.framework()
m := new(TCEFApplication)
m.instance = unsafe.Pointer(_CEFApplication_Create(uintptr(unsafe.Pointer(cfg))))
r1, _, _ := Proc(internale_CEFApplication_Create).Call(uintptr(unsafe.Pointer(cfg)))
m.instance = unsafe.Pointer(r1)
//注册默认的函数
m.defaultSetOnContextCreated()
m.defaultSetOnProcessMessageReceived()
......@@ -43,7 +44,8 @@ func (m *TCEFApplication) Instance() uintptr {
//启动主进程
func (m *TCEFApplication) StartMainProcess() bool {
if m.instance != nullptr {
b := api.GoBool(_CEFStartMainProcess(m.Instance()))
r1, _, _ := Proc(internale_CEFStartMainProcess).Call(m.Instance())
var b = api.GoBool(r1)
if b {
internalBrowserIPCOnEventInit()
ipc.IPC.StartBrowserIPC()
......@@ -57,19 +59,23 @@ func (m *TCEFApplication) StartMainProcess() bool {
//启动子进程, 如果指定了子进程执行程序将执行指定的子进程程序
func (m *TCEFApplication) StartSubProcess() bool {
if m.instance != nullptr {
b := api.GoBool(_CEFStartSubProcess(m.Instance()))
return b
r1, _, _ := Proc(internale_CEFStartSubProcess).Call(m.Instance())
return api.GoBool(r1)
}
return false
}
func (m *TCEFApplication) Free() {
if m.instance != nullptr {
_CEFApplication_Free()
Proc(internale_CEFApplication_Free).Call()
m.instance = nullptr
}
}
func (m *TCEFApplication) ExecuteJS(browserId int32, code string) {
Proc(internale_CEFApplication_ExecuteJS).Call()
}
//上下文件创建回调
//
//返回值 false 将会创建 render进程的IPC和GO绑定变量
......@@ -78,6 +84,7 @@ func (m *TCEFApplication) Free() {
func (m *TCEFApplication) SetOnContextCreated(fn GlobalCEFAppEventOnContextCreated) {
_SetCEFCallbackEvent(OnContextCreated, fn)
}
func (m *TCEFApplication) defaultSetOnContextCreated() {
m.SetOnContextCreated(func(browse *ICefBrowser, frame *ICefFrame, context *ICefV8Context) bool {
return false
......@@ -100,12 +107,12 @@ func (m *TCEFApplication) defaultSetOnProcessMessageReceived() {
}
func (m *TCEFApplication) AddCustomCommandLine(commandLine, value string) {
_AddCustomCommandLine(api.PascalStr(commandLine), api.PascalStr(value))
Proc(internale_AddCustomCommandLine).Call(api.PascalStr(commandLine), api.PascalStr(value))
}
//启动子进程之前自定义命令行参数设置
func (m *TCEFApplication) SetOnBeforeChildProcessLaunch(fn GlobalCEFAppEventOnBeforeChildProcessLaunch) {
if common.Args.IsMain() {
if Args.IsMain() {
_SetCEFCallbackEvent(OnBeforeChildProcessLaunch, fn)
}
}
......
......@@ -10,7 +10,6 @@ package cef
import (
"fmt"
. "github.com/energye/energy/common"
. "github.com/energye/energy/consts"
"github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl/api"
......@@ -88,8 +87,3 @@ func createBrowserDevTools(browser *ICefBrowser, browserWinInfo *TCefWindowInfo)
_CEFBrowser_ShowDevTools(winAuxTools.devToolsWindow.chromium.Instance(), uintptr(browser.Identifier()), winAuxTools.devToolsWindow.windowParent.Instance(), api.PascalStr(dev_tools_name))
})
}
// ICefBrowser _CEFBrowser_ShowDevTools
func _CEFBrowser_ShowDevTools(chromium, browser, windowParent, name uintptr) {
Proc("CEFBrowser_ShowDevTools").Call(chromium, browser, windowParent, name)
}
//----------------------------------------
//
// Copyright © yanghy. All Rights Reserved.
//
// Licensed under GNU General Public License v3.0
//
//----------------------------------------
package cef
import (
"github.com/energye/golcl/lcl"
)
type BaseObject struct {
lcl.IObject
}
......@@ -10,132 +10,19 @@ package cef
import (
"github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl/types"
"unsafe"
)
type BaseWinControl struct {
lcl.IWinControl
procName string
instance uintptr
ptr unsafe.Pointer
instance unsafe.Pointer
}
func (m *BaseWinControl) IsValid() bool {
return m.instance != 0
return m.instance != nullptr
}
// 获取组件名称。
func (m *BaseWinControl) Name() string {
return _GetName(m.procName, m.instance)
}
// 设置组件名称。
func (m *BaseWinControl) SetName(value string) {
_SetName(m.procName, m.instance, value)
}
func (m *BaseWinControl) Free() {
if m.instance != 0 {
_Free(m.procName, m.instance)
m.instance, m.ptr = 0, nullptr
}
}
//Instance 当前实例地址
func (m *BaseWinControl) Instance() uintptr {
//Instance 当前实例
func (m *BaseWinControl) Instance() unsafe.Pointer {
return m.instance
}
// 设置控件父容器。
func (m *BaseWinControl) SetParent(value lcl.IWinControl) {
_SetParent(m.procName, m.instance, lcl.CheckPtr(value))
}
//Align 获取控件自动调整。
func (m *BaseWinControl) Align() types.TAlign {
return _Align(m.procName, m.instance)
}
//SetAlign 设置控件自动调整。
func (m *BaseWinControl) SetAlign(value types.TAlign) {
_SetAlign(m.procName, m.instance, value)
}
//Anchors 获取四个角位置的锚点。
func (m *BaseWinControl) Anchors() types.TAnchors {
return _Anchors(m.procName, m.instance)
}
//SetAnchors 设置四个角位置的锚点。
func (m *BaseWinControl) SetAnchors(value types.TAnchors) {
_SetAnchors(m.procName, m.instance, value)
}
//Visible 获取控件可视。
func (m *BaseWinControl) Visible() bool {
return _GetVisible(m.procName, m.instance)
}
//SetVisible 设置控件可视。
func (m *BaseWinControl) SetVisible(value bool) {
_SetVisible(m.procName, m.instance, value)
}
//Enabled 获取是否启用
func (m *BaseWinControl) Enabled() bool {
return _GetEnabled(m.procName, m.instance)
}
//SetEnabled 设置是否启用
func (m *BaseWinControl) SetEnabled(value bool) {
_SetEnabled(m.procName, m.instance, value)
}
//Left 获取左边距
func (m *BaseWinControl) Left() int32 {
return _GetLeft(m.procName, m.instance)
}
//SetLeft 设置左边距
func (m *BaseWinControl) SetLeft(value int32) {
_SetLeft(m.procName, m.instance, value)
}
//Top 获取上边距
func (m *BaseWinControl) Top() int32 {
return _GetTop(m.procName, m.instance)
}
//SetTop 设置上边距
func (m *BaseWinControl) SetTop(value int32) {
_SetTop(m.procName, m.instance, value)
}
//Width 获取宽度
func (m *BaseWinControl) Width() int32 {
return _GetWidth(m.procName, m.instance)
}
//SetWidth 设置宽度
func (m *BaseWinControl) SetWidth(value int32) {
_SetWidth(m.procName, m.instance, value)
}
//Height 获取高度
func (m *BaseWinControl) Height() int32 {
return _GetHeight(m.procName, m.instance)
}
//SetHeight 设置高度
func (m *BaseWinControl) SetHeight(value int32) {
_SetHeight(m.procName, m.instance, value)
}
func (m *BaseWinControl) BoundsRect() types.TRect {
return _GetBoundsRect(m.procName, m.instance)
}
func (m *BaseWinControl) SetBoundsRect(value types.TRect) {
_SetBoundsRect(m.procName, m.instance, value)
}
......@@ -19,6 +19,7 @@ import (
//type ICefBrowser
type ICefBrowser struct {
instance unsafe.Pointer
browseId int32
chromium uintptr
}
......@@ -44,16 +45,12 @@ func (m *ICefBrowser) GetFrameId() int64 {
return 0
}
func (m *ICefBrowser) Free() {
m.browseId = 0
}
func (m *ICefBrowser) Instance() uintptr {
return uintptr(m.browseId)
return uintptr(m.instance)
}
func (m *ICefBrowser) IsValid() bool {
return uintptr(m.browseId) != 0
return m.instance != nullptr
}
//得到浏览器ID号
......@@ -343,3 +340,8 @@ func (m *ICefBrowser) Find(searchText string, forward, matchCase, findNext bool)
func (m *ICefBrowser) StopFinding(clearSelection bool) {
Proc("CEFBrowser_StopFinding").Call(uintptr(m.browseId), api.PascalBool(clearSelection))
}
// ICefBrowser _CEFBrowser_ShowDevTools
func _CEFBrowser_ShowDevTools(chromium, browser, windowParent, name uintptr) {
Proc("CEFBrowser_ShowDevTools").Call(chromium, browser, windowParent, name)
}
......@@ -14,7 +14,7 @@ import (
. "github.com/energye/energy/consts"
"github.com/energye/energy/ipc"
"github.com/energye/energy/logger"
"github.com/energye/golcl/inits"
"github.com/energye/golcl/energy/inits"
"github.com/energye/golcl/lcl"
)
......
package cef
import (
. "github.com/energye/energy/common"
"github.com/energye/energy/consts"
"github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl/api"
......@@ -14,18 +15,18 @@ type TCEFLinkedWindowParent struct {
func NewCEFLinkedWindowParent(owner lcl.IComponent) *TCEFLinkedWindowParent {
m := new(TCEFLinkedWindowParent)
m.procName = "CEFLinkedWindow"
m.instance = _Create(m.procName, lcl.CheckPtr(owner))
m.ptr = unsafe.Pointer(m.instance)
r1, _, _ := Proc(internale_CEFLinkedWindow_Create).Call(lcl.CheckPtr(owner))
m.instance = unsafe.Pointer(r1)
return m
}
func (m *TCEFLinkedWindowParent) Handle() types.HWND {
return _GetHandle(m.procName, m.instance)
ret, _, _ := Proc(internale_CEFLinkedWindow_GetHandle).Call(uintptr(m.Instance()))
return types.HWND(ret)
}
func (m *TCEFLinkedWindowParent) UpdateSize() {
_CEFLinkedWindow_UpdateSize(m.instance)
Proc(internale_CEFLinkedWindow_UpdateSize).Call(uintptr(m.Instance()))
}
func (m *TCEFLinkedWindowParent) Type() consts.TCefWindowHandleType {
......@@ -33,29 +34,147 @@ func (m *TCEFLinkedWindowParent) Type() consts.TCefWindowHandleType {
}
func (m *TCEFLinkedWindowParent) SetChromium(chromium IChromium, tag int32) {
_CEFLinkedWindow_SetChromium(m.instance, chromium, tag)
Proc(internale_CEFLinkedWindow_SetChromium).Call(uintptr(m.instance), chromium.Instance(), uintptr(tag))
}
func (m *TCEFLinkedWindowParent) HandleAllocated() bool {
return api.GoBool(_HandleAllocated(m.procName, m.instance))
ret, _, _ := Proc(internale_CEFLinkedWindow_HandleAllocated).Call(uintptr(m.Instance()))
return api.GoBool(ret)
}
func (m *TCEFLinkedWindowParent) CreateHandle() {
_CreateHandle(m.procName, m.instance)
Proc(internale_CEFLinkedWindow_CreateHandle).Call(uintptr(m.Instance()))
}
func (m *TCEFLinkedWindowParent) DestroyChildWindow() bool {
return api.GoBool(_DestroyChildWindow(m.procName, m.instance))
ret, _, _ := Proc(internale_CEFLinkedWindow_DestroyChildWindow).Call(uintptr(m.Instance()))
return api.GoBool(ret)
}
func (m *TCEFLinkedWindowParent) SetOnEnter(fn lcl.TNotifyEvent) {
_CEFLinkedWindow_OnEnter(m.instance, fn)
Proc(internale_CEFLinkedWindow_OnEnter).Call(uintptr(m.Instance()), api.MakeEventDataPtr(fn))
}
func (m *TCEFLinkedWindowParent) SetOnExit(fn lcl.TNotifyEvent) {
_CEFLinkedWindow_OnExit(m.instance, fn)
Proc(internale_CEFLinkedWindow_OnExit).Call(uintptr(m.Instance()), api.MakeEventDataPtr(fn))
}
func (m *TCEFLinkedWindowParent) Free() {
_Free(m.procName, m.instance)
if m.IsValid() {
Proc(internale_CEFLinkedWindow_Free).Call(uintptr(m.Instance()))
m.instance = nullptr
}
}
// 获取组件名称。
func (m *TCEFLinkedWindowParent) Name() string {
ret, _, _ := Proc(internale_CEFLinkedWindow_GetName).Call(uintptr(m.Instance()))
return api.GoStr(ret)
}
// 设置组件名称。
func (m *TCEFLinkedWindowParent) SetName(value string) {
Proc(internale_CEFLinkedWindow_SetName).Call(uintptr(m.Instance()), api.PascalStr(value))
}
// 设置控件父容器。
func (m *TCEFLinkedWindowParent) SetParent(value lcl.IWinControl) {
Proc(internale_CEFLinkedWindow_SetParent).Call(uintptr(m.Instance()), lcl.CheckPtr(value))
}
//Align 获取控件自动调整。
func (m *TCEFLinkedWindowParent) Align() types.TAlign {
ret, _, _ := Proc(internale_CEFLinkedWindow_GetAlign).Call(uintptr(m.Instance()))
return types.TAlign(ret)
}
//SetAlign 设置控件自动调整。
func (m *TCEFLinkedWindowParent) SetAlign(value types.TAlign) {
Proc(internale_CEFLinkedWindow_SetAlign).Call(uintptr(m.Instance()), uintptr(value))
}
//Anchors 获取四个角位置的锚点。
func (m *TCEFLinkedWindowParent) Anchors() types.TAnchors {
ret, _, _ := Proc(internale_CEFLinkedWindow_GetAnchors).Call(uintptr(m.Instance()))
return types.TAnchors(ret)
}
//SetAnchors 设置四个角位置的锚点。
func (m *TCEFLinkedWindowParent) SetAnchors(value types.TAnchors) {
Proc(internale_CEFLinkedWindow_SetAnchors).Call(uintptr(m.Instance()), uintptr(value))
}
//Visible 获取控件可视。
func (m *TCEFLinkedWindowParent) Visible() bool {
ret, _, _ := Proc(internale_CEFLinkedWindow_GetVisible).Call(uintptr(m.Instance()))
return api.GoBool(ret)
}
//SetVisible 设置控件可视。
func (m *TCEFLinkedWindowParent) SetVisible(value bool) {
Proc(internale_CEFLinkedWindow_SetVisible).Call(uintptr(m.Instance()), api.PascalBool(value))
}
//Enabled 获取是否启用
func (m *TCEFLinkedWindowParent) Enabled() bool {
ret, _, _ := Proc(internale_CEFLinkedWindow_GetEnabled).Call(uintptr(m.Instance()))
return api.GoBool(ret)
}
//SetEnabled 设置是否启用
func (m *TCEFLinkedWindowParent) SetEnabled(value bool) {
Proc(internale_CEFLinkedWindow_SetEnabled).Call(uintptr(m.Instance()), api.PascalBool(value))
}
//Left 获取左边距
func (m *TCEFLinkedWindowParent) Left() int32 {
ret, _, _ := Proc(internale_CEFLinkedWindow_GetLeft).Call(uintptr(m.Instance()))
return int32(ret)
}
//SetLeft 设置左边距
func (m *TCEFLinkedWindowParent) SetLeft(value int32) {
Proc(internale_CEFLinkedWindow_SetLeft).Call(uintptr(m.Instance()), uintptr(value))
}
//Top 获取上边距
func (m *TCEFLinkedWindowParent) Top() int32 {
ret, _, _ := Proc(internale_CEFLinkedWindow_GetTop).Call(uintptr(m.Instance()))
return int32(ret)
}
//SetTop 设置上边距
func (m *TCEFLinkedWindowParent) SetTop(value int32) {
Proc(internale_CEFLinkedWindow_SetTop).Call(uintptr(m.Instance()), uintptr(value))
}
//Width 获取宽度
func (m *TCEFLinkedWindowParent) Width() int32 {
ret, _, _ := Proc(internale_CEFLinkedWindow_GetWidth).Call(uintptr(m.Instance()))
return int32(ret)
}
//SetWidth 设置宽度
func (m *TCEFLinkedWindowParent) SetWidth(value int32) {
Proc(internale_CEFLinkedWindow_SetWidth).Call(uintptr(m.Instance()), uintptr(value))
}
//Height 获取高度
func (m *TCEFLinkedWindowParent) Height() int32 {
ret, _, _ := Proc(internale_CEFLinkedWindow_GetHeight).Call(uintptr(m.Instance()))
return int32(ret)
}
//SetHeight 设置高度
func (m *TCEFLinkedWindowParent) SetHeight(value int32) {
Proc(internale_CEFLinkedWindow_SetHeight).Call(uintptr(m.Instance()), uintptr(value))
}
func (m *TCEFLinkedWindowParent) BoundsRect() (result types.TRect) {
Proc(internale_CEFLinkedWindow_GetBoundsRect).Call(uintptr(m.Instance()), uintptr(unsafe.Pointer(&result)))
return result
}
func (m *TCEFLinkedWindowParent) SetBoundsRect(value types.TRect) {
Proc(internale_CEFLinkedWindow_SetBoundsRect).Call(uintptr(m.Instance()), uintptr(unsafe.Pointer(&value)))
}
......@@ -4,47 +4,251 @@ import "github.com/energye/golcl/lcl/api/dllimports"
func init() {
var energyImportDefs = []*dllimports.ImportTable{
dllimports.NewEnergyImport("CEFApplication_Create", 0),
dllimports.NewEnergyImport("CEFApplication_Free", 0),
//
dllimports.NewEnergyImport("CEFApplication_GetCommonInstance", 0),
//process
dllimports.NewEnergyImport("SetMacOSXCommandLine", 0),
dllimports.NewEnergyImport("CEFStartMainProcess", 0),
dllimports.NewEnergyImport("CEFStartSubProcess", 0),
dllimports.NewEnergyImport("AddCustomCommandLine", 0),
//application
dllimports.NewEnergyImport("CEFApplication_Create", 0),
dllimports.NewEnergyImport("CEFApplication_Free", 0),
dllimports.NewEnergyImport("CEFApplication_ExecuteJS", 0),
dllimports.NewEnergyImport("CEFV8ValueRef_SetCommonRootName", 0),
dllimports.NewEnergyImport("CEFV8ValueRef_SetObjectRootName", 0),
dllimports.NewEnergyImport("CEFV8ValueRef_CommonValueBindInfo", 0),
dllimports.NewEnergyImport("CEFV8ValueRef_ObjectValueBindInfo", 0),
//CEFParentWindow
dllimports.NewEnergyImport("CEFWindow_Create", 0),
dllimports.NewEnergyImport("CEFWindow_GetHandle", 0),
dllimports.NewEnergyImport("CEFWindow_DestroyChildWindow", 0),
dllimports.NewEnergyImport("CEFWindow_HandleAllocated", 0),
dllimports.NewEnergyImport("CEFWindow_CreateHandle", 0),
dllimports.NewEnergyImport("CEFWindow_Free", 0),
dllimports.NewEnergyImport("CEFWindow_SetParent", 0),
dllimports.NewEnergyImport("CEFWindow_GetAlign", 0),
dllimports.NewEnergyImport("CEFWindow_SetAlign", 0),
dllimports.NewEnergyImport("CEFWindow_GetAnchors", 0),
dllimports.NewEnergyImport("CEFWindow_SetAnchors", 0),
dllimports.NewEnergyImport("CEFWindow_GetVisible", 0),
dllimports.NewEnergyImport("CEFWindow_SetVisible", 0),
dllimports.NewEnergyImport("CEFWindow_GetEnabled", 0),
dllimports.NewEnergyImport("CEFWindow_SetEnabled", 0),
dllimports.NewEnergyImport("CEFWindow_GetLeft", 0),
dllimports.NewEnergyImport("CEFWindow_SetLeft", 0),
dllimports.NewEnergyImport("CEFWindow_GetTop", 0),
dllimports.NewEnergyImport("CEFWindow_SetTop", 0),
dllimports.NewEnergyImport("CEFWindow_GetWidth", 0),
dllimports.NewEnergyImport("CEFWindow_SetWidth", 0),
dllimports.NewEnergyImport("CEFWindow_GetHeight", 0),
dllimports.NewEnergyImport("CEFWindow_SetHeight", 0),
dllimports.NewEnergyImport("CEFWindow_GetBoundsRect", 0),
dllimports.NewEnergyImport("CEFWindow_SetBoundsRect", 0),
dllimports.NewEnergyImport("CEFWindow_GetName", 0),
dllimports.NewEnergyImport("CEFWindow_SetName", 0),
dllimports.NewEnergyImport("CEFWindow_UpdateSize", 0),
dllimports.NewEnergyImport("CEFWindow_OnEnter", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("", 0),
dllimports.NewEnergyImport("CEFWindow_OnExit", 0),
//CEFLinkedParentWindow
dllimports.NewEnergyImport("CEFLinkedWindow_Create", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_GetHandle", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_DestroyChildWindow", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_HandleAllocated", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_CreateHandle", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_Free", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_SetParent", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_GetAlign", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_SetAlign", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_GetAnchors", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_SetAnchors", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_GetVisible", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_SetVisible", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_GetEnabled", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_SetEnabled", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_GetLeft", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_SetLeft", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_GetTop", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_SetTop", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_GetWidth", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_SetWidth", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_GetHeight", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_SetHeight", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_GetBoundsRect", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_SetBoundsRect", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_GetName", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_SetName", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_UpdateSize", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_OnEnter", 0),
dllimports.NewEnergyImport("CEFLinkedWindow_OnExit", 0),
//CEFBrowser
dllimports.NewEnergyImport("CEFBrowser_GetHostWindowHandle", 0),
dllimports.NewEnergyImport("CEFBrowser_CloseBrowser", 0),
dllimports.NewEnergyImport("CEFBrowser_TryCloseBrowser", 0),
dllimports.NewEnergyImport("CEFBrowser_SetFocus", 0),
dllimports.NewEnergyImport("CEFBrowser_GetZoomLevel", 0),
dllimports.NewEnergyImport("CEFBrowser_SetZoomLevel", 0),
dllimports.NewEnergyImport("CEFBrowser_RunFileDialog", 0),
dllimports.NewEnergyImport("CEFBrowser_StartDownload", 0),
dllimports.NewEnergyImport("CEFBrowser_DownloadImage", 0),
dllimports.NewEnergyImport("CEFBrowser_Print", 0),
dllimports.NewEnergyImport("CEFBrowser_GetFocusedFrame", 0),
dllimports.NewEnergyImport("CEFBrowser_GetMainFrame", 0),
dllimports.NewEnergyImport("CEFBrowser_GetFrameById", 0),
dllimports.NewEnergyImport("CEFBrowser_GetFrameByName", 0),
dllimports.NewEnergyImport("CEFBrowser_ExecuteDevToolsMethod", 0),
dllimports.NewEnergyImport("CEFBrowser_SendKeyEvent", 0),
dllimports.NewEnergyImport("CEFBrowser_SetAudioMuted", 0),
dllimports.NewEnergyImport("CEFBrowser_IsAudioMuted", 0),
dllimports.NewEnergyImport("CEFBrowser_SetAutoResizeEnabled", 0),
dllimports.NewEnergyImport("CEFBrowser_SetAccessibilityState", 0),
dllimports.NewEnergyImport("CEFBrowser_NotifyMoveOrResizeStarted", 0),
dllimports.NewEnergyImport("CEFBrowser_NotifyScreenInfoChanged", 0),
dllimports.NewEnergyImport("CEFBrowser_SendCaptureLostEvent", 0),
dllimports.NewEnergyImport("CEFBrowser_SendTouchEvent", 0),
dllimports.NewEnergyImport("CEFBrowser_SendMouseWheelEvent", 0),
dllimports.NewEnergyImport("CEFBrowser_SendMouseMoveEvent", 0),
dllimports.NewEnergyImport("CEFBrowser_SendMouseClickEvent", 0),
dllimports.NewEnergyImport("CEFBrowser_CloseDevTools", 0),
dllimports.NewEnergyImport("CEFBrowser_HasDevTools", 0),
dllimports.NewEnergyImport("CEFBrowser_CanGoBack", 0),
dllimports.NewEnergyImport("CEFBrowser_GoBack", 0),
dllimports.NewEnergyImport("CEFBrowser_CanGoForward", 0),
dllimports.NewEnergyImport("CEFBrowser_GoForward", 0),
dllimports.NewEnergyImport("CEFBrowser_IsLoading", 0),
dllimports.NewEnergyImport("CEFBrowser_Reload", 0),
dllimports.NewEnergyImport("CEFBrowser_ReloadIgnoreCache", 0),
dllimports.NewEnergyImport("CEFBrowser_StopLoad", 0),
dllimports.NewEnergyImport("CEFBrowser_FrameCount", 0),
dllimports.NewEnergyImport("CEFBrowser_GetFrameNames", 0),
dllimports.NewEnergyImport("CEFBrowser_Find", 0),
dllimports.NewEnergyImport("CEFBrowser_StopFinding", 0),
dllimports.NewEnergyImport("CEFBrowser_ShowDevTools", 0),
}
dllimports.SetEnergyImportDefs(energyImportDefs)
}
const (
internale_CEFApplication_Create = iota
internale_CEFApplication_Free
//CommonInstance
internale_CEFApplication_GetCommonInstance = iota
//process
internale_SetMacOSXCommandLine
internale_CEFStartMainProcess
internale_CEFStartSubProcess
internale_AddCustomCommandLine
//application
internale_CEFApplication_Create
internale_CEFApplication_Free
internale_CEFApplication_ExecuteJS
internale_CEFV8ValueRef_SetCommonRootName
internale_CEFV8ValueRef_SetObjectRootName
internale_CEFV8ValueRef_CommonValueBindInfo
internale_CEFV8ValueRef_ObjectValueBindInfo
//CEFParentWindow
internale_CEFWindow_Create
internale_CEFWindow_GetHandle
internale_CEFWindow_DestroyChildWindow
internale_CEFWindow_HandleAllocated
internale_CEFWindow_CreateHandle
internale_CEFWindow_Free
internale_CEFWindow_SetParent
internale_CEFWindow_GetAlign
internale_CEFWindow_SetAlign
internale_CEFWindow_GetAnchors
internale_CEFWindow_SetAnchors
internale_CEFWindow_GetVisible
internale_CEFWindow_SetVisible
internale_CEFWindow_GetEnabled
internale_CEFWindow_SetEnabled
internale_CEFWindow_GetLeft
internale_CEFWindow_SetLeft
internale_CEFWindow_GetTop
internale_CEFWindow_SetTop
internale_CEFWindow_GetWidth
internale_CEFWindow_SetWidth
internale_CEFWindow_GetHeight
internale_CEFWindow_SetHeight
internale_CEFWindow_GetBoundsRect
internale_CEFWindow_SetBoundsRect
internale_CEFWindow_GetName
internale_CEFWindow_SetName
internale_CEFWindow_UpdateSize
internale_CEFWindow_OnEnter
internale_CEFWindow_OnExit
internale_CEFWindow_SetChromium
//CEFLinkedParentWindow
internale_CEFLinkedWindow_Create
internale_CEFLinkedWindow_GetHandle
internale_CEFLinkedWindow_DestroyChildWindow
internale_CEFLinkedWindow_HandleAllocated
internale_CEFLinkedWindow_CreateHandle
internale_CEFLinkedWindow_Free
internale_CEFLinkedWindow_SetParent
internale_CEFLinkedWindow_GetAlign
internale_CEFLinkedWindow_SetAlign
internale_CEFLinkedWindow_GetAnchors
internale_CEFLinkedWindow_SetAnchors
internale_CEFLinkedWindow_GetVisible
internale_CEFLinkedWindow_SetVisible
internale_CEFLinkedWindow_GetEnabled
internale_CEFLinkedWindow_SetEnabled
internale_CEFLinkedWindow_GetLeft
internale_CEFLinkedWindow_SetLeft
internale_CEFLinkedWindow_GetTop
internale_CEFLinkedWindow_SetTop
internale_CEFLinkedWindow_GetWidth
internale_CEFLinkedWindow_SetWidth
internale_CEFLinkedWindow_GetHeight
internale_CEFLinkedWindow_SetHeight
internale_CEFLinkedWindow_GetBoundsRect
internale_CEFLinkedWindow_SetBoundsRect
internale_CEFLinkedWindow_GetName
internale_CEFLinkedWindow_SetName
internale_CEFLinkedWindow_UpdateSize
internale_CEFLinkedWindow_OnEnter
internale_CEFLinkedWindow_OnExit
internale_CEFLinkedWindow_SetChromium
//CEFBrowser
CEFBrowser_GetHostWindowHandle
CEFBrowser_CloseBrowser
CEFBrowser_TryCloseBrowser
CEFBrowser_SetFocus
CEFBrowser_GetZoomLevel
CEFBrowser_SetZoomLevel
CEFBrowser_RunFileDialog
CEFBrowser_StartDownload
CEFBrowser_DownloadImage
CEFBrowser_Print
CEFBrowser_GetFocusedFrame
CEFBrowser_GetMainFrame
CEFBrowser_GetFrameById
CEFBrowser_GetFrameByName
CEFBrowser_ExecuteDevToolsMethod
CEFBrowser_SendKeyEvent
CEFBrowser_SetAudioMuted
CEFBrowser_IsAudioMuted
CEFBrowser_SetAutoResizeEnabled
CEFBrowser_SetAccessibilityState
CEFBrowser_NotifyMoveOrResizeStarted
CEFBrowser_NotifyScreenInfoChanged
CEFBrowser_SendCaptureLostEvent
CEFBrowser_SendTouchEvent
CEFBrowser_SendMouseWheelEvent
CEFBrowser_SendMouseMoveEvent
CEFBrowser_SendMouseClickEvent
CEFBrowser_CloseDevTools
CEFBrowser_HasDevTools
CEFBrowser_CanGoBack
CEFBrowser_GoBack
CEFBrowser_CanGoForward
CEFBrowser_GoForward
CEFBrowser_IsLoading
CEFBrowser_Reload
CEFBrowser_ReloadIgnoreCache
CEFBrowser_StopLoad
CEFBrowser_FrameCount
CEFBrowser_GetFrameNames
CEFBrowser_Find
CEFBrowser_StopFinding
CEFBrowser_ShowDevTools
)
......@@ -10,263 +10,19 @@ package cef
import (
. "github.com/energye/energy/common"
"github.com/energye/golcl/lcl/api"
"github.com/energye/golcl/lcl/types"
"unsafe"
)
//--------TCEFApplication proc begin--------
// TCEFApplication _CEFApplication_Create
func _CEFApplication_Create(config uintptr) uintptr {
return api.EnergyDefSyscallN(internale_CEFApplication_Create, config)
}
// TCEFApplication _CEFApplication_Free
func _CEFApplication_Free() uintptr {
return api.EnergyDefSyscallN(internale_CEFApplication_Free)
}
// TCEFApplication _CEFStartMainProcess
func _CEFStartMainProcess(instance uintptr) uintptr {
return api.EnergyDefSyscallN(internale_CEFStartMainProcess, instance)
}
// TCEFApplication _CEFStartSubProcess
func _CEFStartSubProcess(instance uintptr) uintptr {
return api.EnergyDefSyscallN(internale_CEFStartSubProcess, instance)
}
func _AddCustomCommandLine(commandLine, value uintptr) {
api.EnergyDefSyscallN(internale_AddCustomCommandLine, commandLine, value)
}
func _CEFApplication_ExecuteJS(browseId int32, jsCode string) {
api.EnergyDefSyscallN(internale_CEFApplication_ExecuteJS, uintptr(browseId), api.PascalStr(jsCode))
}
//--------TCEFApplication proc end--------
//--------TCEFWindowParent proc begin--------
// TCEFWindowParent _CEFWindow_UpdateSize
func _CEFWindow_UpdateSize(instance uintptr) {
api.EnergyDefSyscallN(internale_CEFWindow_UpdateSize, instance)
}
func _CEFWindow_OnEnter(instance uintptr, fn interface{}) {
Proc("CEFWindow_OnEnter").Call(instance, api.GetAddEventToMapFn()(instance, fn))
}
func _CEFWindow_OnExit(instance uintptr, fn interface{}) {
Proc("CEFWindow_OnExit").Call(instance, api.GetAddEventToMapFn()(instance, fn))
}
// TCEFWindowParent _CEFLinkedWindow_UpdateSize
func _CEFLinkedWindow_UpdateSize(instance uintptr) {
Proc("CEFLinkedWindow_UpdateSize").Call(instance)
}
func _CEFLinkedWindow_SetChromium(instance uintptr, chromium IChromium, tag int32) {
Proc("CEFLinkedWindow_SetChromium").Call(instance, chromium.Instance(), uintptr(tag))
}
func _CEFLinkedWindow_OnEnter(instance uintptr, fn interface{}) {
Proc("CEFLinkedWindow_OnEnter").Call(instance, api.GetAddEventToMapFn()(instance, fn))
}
func _CEFLinkedWindow_OnExit(instance uintptr, fn interface{}) {
Proc("CEFLinkedWindow_OnExit").Call(instance, api.GetAddEventToMapFn()(instance, fn))
}
//--------TCEFWindowParent proc end--------
/* 通用 PROC --- begin ---*/
// _Create 创建
func _Create(name string, owner uintptr) uintptr {
name = Proc_Concat_Name(name, "Create")
r1, _, _ := Proc(name).Call(owner)
return r1
}
// _GetHandle 获取组件句柄
func _GetHandle(name string, instance uintptr) uintptr {
name = Proc_Concat_Name(name, "GetHandle")
ret, _, _ := Proc(name).Call(instance)
return ret
}
func _DestroyChildWindow(name string, instance uintptr) uintptr {
name = Proc_Concat_Name(name, "DestroyChildWindow")
ret, _, _ := Proc(name).Call(instance)
return ret
}
// _HandleAllocated
func _HandleAllocated(name string, instance uintptr) uintptr {
name = Proc_Concat_Name(name, "HandleAllocated")
r1, _, _ := Proc(name).Call(instance)
return r1
}
// _CreateHandle
func _CreateHandle(name string, instance uintptr) {
name = Proc_Concat_Name(name, "CreateHandle")
Proc(name).Call(instance)
}
// _Free 释放
func _Free(name string, instance uintptr) uintptr {
name = Proc_Concat_Name(name, "Free")
r1, _, _ := Proc(name).Call(instance)
return r1
}
// _SetParent 设置父组件
func _SetParent(name string, instance, owner uintptr) {
name = Proc_Concat_Name(name, "SetParent")
Proc(name).Call(instance, owner)
}
// _Align 获取控件自动调整。
func _Align(name string, instance uintptr) types.TAlign {
name = Proc_Concat_Name(name, "GetAlign")
r1, _, _ := Proc(name).Call(instance)
return types.TAlign(r1)
}
// _SetAlign 设置获取控件自动调整。
func _SetAlign(name string, instance uintptr, value types.TAlign) {
name = Proc_Concat_Name(name, "SetAlign")
Proc(name).Call(instance, uintptr(value))
}
// _Anchors 获取四个角位置的锚点。
func _Anchors(name string, instance uintptr) types.TAnchors {
name = Proc_Concat_Name(name, "GetAnchors")
r1, _, _ := Proc(name).Call(instance)
return types.TAnchors(r1)
}
// _SetAnchors 设置四个角位置的锚点。
func _SetAnchors(name string, instance uintptr, value types.TAnchors) {
name = Proc_Concat_Name(name, "SetAnchors")
Proc(name).Call(instance, uintptr(value))
}
// _GetVisible 获取控件可视。
func _GetVisible(name string, instance uintptr) bool {
name = Proc_Concat_Name(name, "GetVisible")
ret, _, _ := Proc(name).Call(instance)
return api.GoBool(ret)
}
// _SetVisible 设置控件可视。
func _SetVisible(name string, instance uintptr, value bool) {
name = Proc_Concat_Name(name, "SetVisible")
Proc(name).Call(instance, api.PascalBool(value))
}
// _GetEnabled 获取是否启用
func _GetEnabled(name string, instance uintptr) bool {
name = Proc_Concat_Name(name, "GetEnabled")
ret, _, _ := Proc(name).Call(instance)
return api.GoBool(ret)
}
// _SetEnabled 设置是否启用
func _SetEnabled(name string, instance uintptr, value bool) {
name = Proc_Concat_Name(name, "SetEnabled")
Proc(name).Call(instance, api.PascalBool(value))
}
// _GetLeft 获取左边距
func _GetLeft(name string, instance uintptr) int32 {
name = Proc_Concat_Name(name, "GetLeft")
ret, _, _ := Proc(name).Call(instance)
return int32(ret)
}
// _SetLeft 设置左边距
func _SetLeft(name string, instance uintptr, value int32) {
name = Proc_Concat_Name(name, "SetLeft")
Proc(name).Call(instance, uintptr(value))
}
// _Top 获取上边距
func _GetTop(name string, instance uintptr) int32 {
name = Proc_Concat_Name(name, "GetTop")
ret, _, _ := Proc(name).Call(instance)
return int32(ret)
}
// _SetTop 设置上边距
func _SetTop(name string, instance uintptr, value int32) {
name = Proc_Concat_Name(name, "SetTop")
Proc(name).Call(instance, uintptr(value))
}
// _GetWidth 获取宽度
func _GetWidth(name string, instance uintptr) int32 {
name = Proc_Concat_Name(name, "GetWidth")
ret, _, _ := Proc(name).Call(instance)
return int32(ret)
}
// _SetWidth 设置宽度
func _SetWidth(name string, instance uintptr, value int32) {
name = Proc_Concat_Name(name, "SetWidth")
Proc(name).Call(instance, uintptr(value))
}
// _GetHeight 获取高度
func _GetHeight(name string, instance uintptr) int32 {
name = Proc_Concat_Name(name, "GetHeight")
ret, _, _ := Proc(name).Call(instance)
return int32(ret)
}
// _SetHeight 设置高度
func _SetHeight(name string, instance uintptr, value int32) {
name = Proc_Concat_Name(name, "SetHeight")
Proc(name).Call(instance, uintptr(value))
}
// _GetBoundsRect
func _GetBoundsRect(name string, instance uintptr) types.TRect {
var ret types.TRect
name = Proc_Concat_Name(name, "GetBoundsRect")
Proc(name).Call(instance, uintptr(unsafe.Pointer(&ret)))
return ret
}
// _SetBoundsRect
func _SetBoundsRect(name string, instance uintptr, value types.TRect) {
name = Proc_Concat_Name(name, "SetBoundsRect")
Proc(name).Call(instance, uintptr(unsafe.Pointer(&value)))
}
// _GetName 获取组件名称。
func _GetName(name string, instance uintptr) string {
name = Proc_Concat_Name(name, "GetName")
ret, _, _ := Proc(name).Call(instance)
return api.GoStr(ret)
}
// _SetName 设置组件名称。
func _SetName(name string, instance uintptr, value string) {
name = Proc_Concat_Name(name, "SetName")
Proc(name).Call(instance, api.PascalStr(value))
}
/* 通用 PROC --- end ---*/
// other
// 针对 MacOSX 设置命令行参数
//
//没找到什么好的方式,只能这样设置
func setMacOSXCommandLine(commandLine uintptr) {
Proc("SetMacOSXCommandLine").Call(commandLine)
Proc(internale_SetMacOSXCommandLine).Call(commandLine)
}
func CommonInstanceInit() {
r1, _, _ := Proc(internale_CEFApplication_GetCommonInstance).Call()
CommonPtr.SetInstance(unsafe.Pointer(r1))
}
......@@ -10,6 +10,7 @@ package cef
import (
"bytes"
"github.com/energye/energy/common"
. "github.com/energye/energy/consts"
"github.com/energye/energy/logger"
"github.com/energye/golcl/lcl/api"
......@@ -109,7 +110,7 @@ func bindGoToJS(browser *ICefBrowser, frame *ICefFrame) {
}
if len(valueBindInfos) > 0 {
for i := 0; i < len(valueBindInfos); i++ {
_CEFV8ValueRef_CommonValueBindInfo(uintptr(unsafe.Pointer(valueBindInfos[i])))
common.Proc(internale_CEFV8ValueRef_CommonValueBindInfo).Call(uintptr(unsafe.Pointer(valueBindInfos[i])))
}
}
}
......@@ -206,7 +206,7 @@ func (m *structTypeInfo) _infoTo(info *structObjectInfo) {
FuncLen: uintptr(funcLen),
Funcs: funcPtr,
}
_CEFV8ValueRef_ObjectValueBindInfo(uintptr(unsafe.Pointer(co)))
common.Proc(internale_CEFV8ValueRef_ObjectValueBindInfo).Call(uintptr(unsafe.Pointer(co)))
}
//创建 结构对象的字段变量
......
//----------------------------------------
//
// Copyright © yanghy. All Rights Reserved.
//
// Licensed under GNU General Public License v3.0
//
//----------------------------------------
package cef
import (
. "github.com/energye/energy/common"
"github.com/energye/golcl/lcl/api"
)
func _CEFV8ValueRef_SetCommonRootName(commonRootName string) {
Proc("CEFV8ValueRef_SetCommonRootName").Call(api.PascalStr(commonRootName))
}
func _CEFV8ValueRef_SetObjectRootName(objectRootName string) {
Proc("CEFV8ValueRef_SetObjectRootName").Call(api.PascalStr(objectRootName))
}
func _CEFV8ValueRef_CommonValueBindInfo(binds uintptr) {
Proc("CEFV8ValueRef_CommonValueBindInfo").Call(binds)
}
func _CEFV8ValueRef_ObjectValueBindInfo(CefObject uintptr) {
Proc("CEFV8ValueRef_ObjectValueBindInfo").Call(CefObject)
}
......@@ -9,6 +9,7 @@
package cef
import (
. "github.com/energye/energy/common"
"github.com/energye/energy/consts"
"github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl/api"
......@@ -22,18 +23,18 @@ type TCEFWindowParent struct {
func NewCEFWindowParent(owner lcl.IComponent) *TCEFWindowParent {
m := new(TCEFWindowParent)
m.procName = "CEFWindow"
m.instance = _Create(m.procName, lcl.CheckPtr(owner))
m.ptr = unsafe.Pointer(m.instance)
r1, _, _ := Proc(internale_CEFWindow_Create).Call(lcl.CheckPtr(owner))
m.instance = unsafe.Pointer(r1)
return m
}
func (m *TCEFWindowParent) Handle() types.HWND {
return _GetHandle(m.procName, m.instance)
ret, _, _ := Proc(internale_CEFWindow_GetHandle).Call(uintptr(m.Instance()))
return types.HWND(ret)
}
func (m *TCEFWindowParent) UpdateSize() {
_CEFWindow_UpdateSize(m.instance)
Proc(internale_CEFWindow_UpdateSize).Call(uintptr(m.Instance()))
}
func (m *TCEFWindowParent) Type() consts.TCefWindowHandleType {
......@@ -44,25 +45,143 @@ func (m *TCEFWindowParent) SetChromium(chromium IChromium, tag int32) {
}
func (m *TCEFWindowParent) HandleAllocated() bool {
return api.GoBool(_HandleAllocated(m.procName, m.instance))
ret, _, _ := Proc(internale_CEFWindow_HandleAllocated).Call(uintptr(m.Instance()))
return api.GoBool(ret)
}
func (m *TCEFWindowParent) CreateHandle() {
_CreateHandle(m.procName, m.instance)
Proc(internale_CEFWindow_CreateHandle).Call(uintptr(m.Instance()))
}
func (m *TCEFWindowParent) DestroyChildWindow() bool {
return api.GoBool(_DestroyChildWindow(m.procName, m.instance))
ret, _, _ := Proc(internale_CEFWindow_DestroyChildWindow).Call(uintptr(m.Instance()))
return api.GoBool(ret)
}
func (m *TCEFWindowParent) SetOnEnter(fn lcl.TNotifyEvent) {
_CEFWindow_OnEnter(m.instance, fn)
Proc(internale_CEFWindow_OnEnter).Call(uintptr(m.Instance()), api.MakeEventDataPtr(fn))
}
func (m *TCEFWindowParent) SetOnExit(fn lcl.TNotifyEvent) {
_CEFWindow_OnExit(m.instance, fn)
Proc(internale_CEFWindow_OnExit).Call(uintptr(m.Instance()), api.MakeEventDataPtr(fn))
}
func (m *TCEFWindowParent) Free() {
_Free(m.procName, m.instance)
if m.IsValid() {
Proc(internale_CEFWindow_Free).Call(uintptr(m.Instance()))
m.instance = nullptr
}
}
// 获取组件名称。
func (m *TCEFWindowParent) Name() string {
ret, _, _ := Proc(internale_CEFWindow_GetName).Call(uintptr(m.Instance()))
return api.GoStr(ret)
}
// 设置组件名称。
func (m *TCEFWindowParent) SetName(value string) {
Proc(internale_CEFWindow_SetName).Call(uintptr(m.Instance()), api.PascalStr(value))
}
// 设置控件父容器。
func (m *TCEFWindowParent) SetParent(value lcl.IWinControl) {
Proc(internale_CEFWindow_SetParent).Call(uintptr(m.Instance()), lcl.CheckPtr(value))
}
//Align 获取控件自动调整。
func (m *TCEFWindowParent) Align() types.TAlign {
ret, _, _ := Proc(internale_CEFWindow_GetAlign).Call(uintptr(m.Instance()))
return types.TAlign(ret)
}
//SetAlign 设置控件自动调整。
func (m *TCEFWindowParent) SetAlign(value types.TAlign) {
Proc(internale_CEFWindow_SetAlign).Call(uintptr(m.Instance()), uintptr(value))
}
//Anchors 获取四个角位置的锚点。
func (m *TCEFWindowParent) Anchors() types.TAnchors {
ret, _, _ := Proc(internale_CEFWindow_GetAnchors).Call(uintptr(m.Instance()))
return types.TAnchors(ret)
}
//SetAnchors 设置四个角位置的锚点。
func (m *TCEFWindowParent) SetAnchors(value types.TAnchors) {
Proc(internale_CEFWindow_SetAnchors).Call(uintptr(m.Instance()), uintptr(value))
}
//Visible 获取控件可视。
func (m *TCEFWindowParent) Visible() bool {
ret, _, _ := Proc(internale_CEFWindow_GetVisible).Call(uintptr(m.Instance()))
return api.GoBool(ret)
}
//SetVisible 设置控件可视。
func (m *TCEFWindowParent) SetVisible(value bool) {
Proc(internale_CEFWindow_SetVisible).Call(uintptr(m.Instance()), api.PascalBool(value))
}
//Enabled 获取是否启用
func (m *TCEFWindowParent) Enabled() bool {
ret, _, _ := Proc(internale_CEFWindow_GetEnabled).Call(uintptr(m.Instance()))
return api.GoBool(ret)
}
//SetEnabled 设置是否启用
func (m *TCEFWindowParent) SetEnabled(value bool) {
Proc(internale_CEFWindow_SetEnabled).Call(uintptr(m.Instance()), api.PascalBool(value))
}
//Left 获取左边距
func (m *TCEFWindowParent) Left() int32 {
ret, _, _ := Proc(internale_CEFWindow_GetLeft).Call(uintptr(m.Instance()))
return int32(ret)
}
//SetLeft 设置左边距
func (m *TCEFWindowParent) SetLeft(value int32) {
Proc(internale_CEFWindow_SetLeft).Call(uintptr(m.Instance()), uintptr(value))
}
//Top 获取上边距
func (m *TCEFWindowParent) Top() int32 {
ret, _, _ := Proc(internale_CEFWindow_GetTop).Call(uintptr(m.Instance()))
return int32(ret)
}
//SetTop 设置上边距
func (m *TCEFWindowParent) SetTop(value int32) {
Proc(internale_CEFWindow_SetTop).Call(uintptr(m.Instance()), uintptr(value))
}
//Width 获取宽度
func (m *TCEFWindowParent) Width() int32 {
ret, _, _ := Proc(internale_CEFWindow_GetWidth).Call(uintptr(m.Instance()))
return int32(ret)
}
//SetWidth 设置宽度
func (m *TCEFWindowParent) SetWidth(value int32) {
Proc(internale_CEFWindow_SetWidth).Call(uintptr(m.Instance()), uintptr(value))
}
//Height 获取高度
func (m *TCEFWindowParent) Height() int32 {
ret, _, _ := Proc(internale_CEFWindow_GetHeight).Call(uintptr(m.Instance()))
return int32(ret)
}
//SetHeight 设置高度
func (m *TCEFWindowParent) SetHeight(value int32) {
Proc(internale_CEFWindow_SetHeight).Call(uintptr(m.Instance()), uintptr(value))
}
func (m *TCEFWindowParent) BoundsRect() (result types.TRect) {
Proc(internale_CEFWindow_GetBoundsRect).Call(uintptr(m.Instance()), uintptr(unsafe.Pointer(&result)))
return result
}
func (m *TCEFWindowParent) SetBoundsRect(value types.TRect) {
Proc(internale_CEFWindow_SetBoundsRect).Call(uintptr(m.Instance()), uintptr(unsafe.Pointer(&value)))
}
......@@ -15,9 +15,9 @@ import (
"fmt"
. "github.com/energye/energy/consts"
"github.com/energye/energy/decimal"
"github.com/energye/golcl/dylib"
"github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl/api"
"github.com/energye/golcl/lcl/api/dllimports"
"math"
"reflect"
"runtime"
......@@ -34,24 +34,19 @@ var (
type commonInstance struct {
lcl.IObject
instance uintptr
ptr unsafe.Pointer
instance unsafe.Pointer
}
func (m *commonInstance) Ptr() unsafe.Pointer {
return m.ptr
}
func (m *commonInstance) Instance() uintptr {
return m.instance
func (m *commonInstance) SetInstance(instance unsafe.Pointer) {
m.instance = instance
}
//Proc_Concat_Name 名称获取
func Proc_Concat_Name(procName, methodName string) string {
return procName + "_" + methodName
func (m *commonInstance) Instance() unsafe.Pointer {
return m.instance
}
func Proc(name string) *dylib.LazyProc {
return api.GetLazyProc(name)
func Proc(index int) dllimports.ProcAddr {
return api.EnergyDefSyscallN(index)
}
func IsWindows() bool {
......@@ -772,12 +767,6 @@ func ArrayIndexOf[T any](array []T, a interface{}) int {
return -1
}
func CommonInstanceInit() {
r1, _, _ := Proc("CEFApplication_GetCommonInstance").Call()
CommonPtr.instance = r1
CommonPtr.ptr = unsafe.Pointer(r1)
}
//获取指针的指针的地址
func GetInstancePtr(ptr uintptr) (uintptr, unsafe.Pointer) {
ptr = *(*uintptr)(unsafe.Pointer(ptr))
......
......@@ -9,7 +9,7 @@
package consts
import (
"github.com/energye/golcl/tools/homedir"
"github.com/energye/golcl/energy/homedir"
"os"
"path/filepath"
)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册