Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
energye
energy
提交
9ec2f6d9
energy
项目概览
energye
/
energy
通知
13
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
energy
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9ec2f6d9
编写于
12月 05, 2022
作者:
yanghye
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
upgrade: Cannot run is being upgraded
上级
47a34917
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
541 addition
and
510 deletion
+541
-510
cef/cef-application-config.go
cef/cef-application-config.go
+3
-3
cef/cef-application.go
cef/cef-application.go
+15
-8
cef/cef-aux-dev-tools-window.go
cef/cef-aux-dev-tools-window.go
+0
-6
cef/cef-base-object.go
cef/cef-base-object.go
+0
-17
cef/cef-base-win-control.go
cef/cef-base-win-control.go
+4
-117
cef/cef-browser.go
cef/cef-browser.go
+8
-6
cef/cef-init.go
cef/cef-init.go
+1
-1
cef/cef-linked-window-parent.go
cef/cef-linked-window-parent.go
+131
-12
cef/cef-proc-def.go
cef/cef-proc-def.go
+231
-27
cef/cef-proc.go
cef/cef-proc.go
+6
-250
cef/cef-v8-i.go
cef/cef-v8-i.go
+2
-1
cef/cef-v8-js-bind-object.go
cef/cef-v8-js-bind-object.go
+1
-1
cef/cef-v8-proc.go
cef/cef-v8-proc.go
+0
-30
cef/cef-window-parent.go
cef/cef-window-parent.go
+130
-11
common/common.go
common/common.go
+8
-19
consts/consts.go
consts/consts.go
+1
-1
未找到文件。
cef/cef-application-config.go
浏览文件 @
9ec2f6d9
...
...
@@ -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
...
...
cef/cef-application.go
浏览文件 @
9ec2f6d9
...
...
@@ -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
)
}
}
...
...
cef/cef-aux-dev-tools-window.go
浏览文件 @
9ec2f6d9
...
...
@@ -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
)
}
cef/cef-base-object.go
已删除
100644 → 0
浏览文件 @
47a34917
//----------------------------------------
//
// 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
}
cef/cef-base-win-control.go
浏览文件 @
9ec2f6d9
...
...
@@ -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
)
}
cef/cef-browser.go
浏览文件 @
9ec2f6d9
...
...
@@ -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
)
}
cef/cef-init.go
浏览文件 @
9ec2f6d9
...
...
@@ -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"
)
...
...
cef/cef-linked-window-parent.go
浏览文件 @
9ec2f6d9
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
)))
}
cef/cef-proc-def.go
浏览文件 @
9ec2f6d9
...
...
@@ -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
)
cef/cef-proc.go
浏览文件 @
9ec2f6d9
...
...
@@ -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
))
}
cef/cef-v8-i.go
浏览文件 @
9ec2f6d9
...
...
@@ -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
])))
}
}
}
cef/cef-v8-js-bind-object.go
浏览文件 @
9ec2f6d9
...
...
@@ -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
)))
}
//创建 结构对象的字段变量
...
...
cef/cef-v8-proc.go
已删除
100644 → 0
浏览文件 @
47a34917
//----------------------------------------
//
// 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
)
}
cef/cef-window-parent.go
浏览文件 @
9ec2f6d9
...
...
@@ -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
)))
}
common/common.go
浏览文件 @
9ec2f6d9
...
...
@@ -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
))
...
...
consts/consts.go
浏览文件 @
9ec2f6d9
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录