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

upgrade: Cannot run is being upgraded, v7

上级 a47adbc7
......@@ -246,6 +246,7 @@ func (m *BaseWindow) SetOnActivateAfter(fn lcl.TNotifyEvent) {
}
func (m *BaseWindow) close(sender lcl.IObject, action *types.TCloseAction) {
fmt.Println("close")
var ret bool
if m.onClose != nil {
for _, fn := range m.onClose {
......@@ -274,6 +275,7 @@ func (m *BaseWindow) closeQuery(sender lcl.IObject, close *bool) {
m.isClosing = true
m.Hide()
m.chromium.CloseBrowser(true)
fmt.Println("closeQuery")
}
}
}
......@@ -454,6 +456,7 @@ func (m *BaseWindow) registerDefaultEvent() {
func (m *BaseWindow) registerDefaultChromiumCloseEvent() {
var bwEvent = BrowserWindow.browserEvent
m.chromium.SetOnClose(func(sender lcl.IObject, browser *ICefBrowser, aAction *TCefCloseBrowsesAction) {
fmt.Println("SetOnClose")
if IsDarwin() { //MacOSX
m.windowParent.DestroyChildWindow()
} else { // Window and Linux
......@@ -473,6 +476,7 @@ func (m *BaseWindow) registerDefaultChromiumCloseEvent() {
}
})
m.chromium.SetOnBeforeClose(func(sender lcl.IObject, browser *ICefBrowser) {
fmt.Println("SetOnBeforeClose")
m.canClose = true
var tempClose = func() {
defer func() {
......
......@@ -14,6 +14,7 @@ import (
"github.com/energye/energy/ipc"
"github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl/api"
"github.com/energye/golcl/lcl/types"
"strings"
"time"
"unsafe"
......@@ -68,6 +69,53 @@ type IChromiumProc interface {
FrameIsFocused() bool
}
func (m *TCEFChromium) IsValid() bool {
return m.instance != nil
}
func (m *TCEFChromium) UnsafeAddr() unsafe.Pointer {
return m.instance
}
func (m *TCEFChromium) ClassName() string {
r1, _, _ := Proc(internale_CEFChromium_ClassName).Call()
return api.GoStr(r1)
}
func (m *TCEFChromium) Free() {
Proc(internale_CEFChromium_Free).Call()
}
func (m *TCEFChromium) GetHashCode() int32 {
r1, _, _ := Proc(internale_CEFChromium_GetHashCode).Call()
return int32(r1)
}
func (m *TCEFChromium) Equals(object lcl.IObject) bool {
r1, _, _ := Proc(internale_CEFChromium_Equals).Call(lcl.CheckPtr(object))
return api.GoBool(r1)
}
func (m *TCEFChromium) ClassType() types.TClass {
r1, _, _ := Proc(internale_CEFChromium_ClassType).Call()
return types.TClass(r1)
}
func (m *TCEFChromium) InstanceSize() int32 {
r1, _, _ := Proc(internale_CEFChromium_InstanceSize).Call()
return int32(r1)
}
func (m *TCEFChromium) InheritsFrom(class types.TClass) bool {
r1, _, _ := Proc(internale_CEFChromium_InheritsFrom).Call(uintptr(class))
return api.GoBool(r1)
}
func (m *TCEFChromium) ToString() string {
r1, _, _ := Proc(internale_CEFChromium_ToString).Call()
return api.GoStr(r1)
}
func (m *TCEFChromium) SetDefaultURL(defaultURL string) {
if IsLinux() || IsDarwin() {
httpIdx := strings.Index(defaultURL, "http")
......@@ -178,9 +226,7 @@ func (m *TCEFChromium) NotifyMoveOrResizeStarted() {
}
func (m *TCEFChromium) CloseBrowser(forceClose bool) {
if m.IsValid() {
_CEFChromium_CloseBrowser(m.Instance(), api.PascalBool(forceClose))
}
_CEFChromium_CloseBrowser(m.Instance(), api.PascalBool(forceClose))
}
func (m *TCEFChromium) ShowDevTools(window ITCefWindow) {
......
......@@ -48,7 +48,7 @@ type IChromium interface {
}
type TCEFChromium struct {
lcl.TComponent
*lcl.TComponent
instance unsafe.Pointer
cfg *tCefChromiumConfig
independentEvent bool
......
......@@ -186,6 +186,14 @@ func init() {
dllimports.NewEnergyImport("CEFChromium_SetOnBeforePopup", 0),
dllimports.NewEnergyImport("CEFChromium_SetOnOpenUrlFromTab", 0),
//TCEFChromium - proc
dllimports.NewEnergyImport("CEFChromium_Free", 0),
dllimports.NewEnergyImport("CEFChromium_GetHashCode", 0),
dllimports.NewEnergyImport("CEFChromium_ClassName", 0),
dllimports.NewEnergyImport("CEFChromium_Equals", 0),
dllimports.NewEnergyImport("CEFChromium_ClassType", 0),
dllimports.NewEnergyImport("CEFChromium_InstanceSize", 0),
dllimports.NewEnergyImport("CEFChromium_InheritsFrom", 0),
dllimports.NewEnergyImport("CEFChromium_ToString", 0),
dllimports.NewEnergyImport("CEFChromium_Create", 0),
dllimports.NewEnergyImport("CEFChromium_SetDefaultURL", 0),
dllimports.NewEnergyImport("CEFChromium_SetMultiBrowserMode", 0),
......@@ -482,6 +490,14 @@ const (
internale_CEFChromium_SetOnBeforePopup
internale_CEFChromium_SetOnOpenUrlFromTab
//TCEFChromium - proc
internale_CEFChromium_Free
internale_CEFChromium_GetHashCode
internale_CEFChromium_ClassName
internale_CEFChromium_Equals
internale_CEFChromium_ClassType
internale_CEFChromium_InstanceSize
internale_CEFChromium_InheritsFrom
internale_CEFChromium_ToString
internale_CEFChromium_Create
internale_CEFChromium_SetDefaultURL
internale_CEFChromium_SetMultiBrowserMode
......
......@@ -66,7 +66,7 @@ type JSValue interface {
//
//主进程创建完之后和渲染进程每次创建之后调用
//
//TODO 潜在问题,如果函数名包含数字可能会引起函数冲突,入参或出参类型不正确,导致调用失败
//潜在问题,如果函数名包含数字可能会引起函数冲突,入参或出参类型不正确,导致调用失败
func bindGoToJS(browser *ICefBrowser, frame *ICefFrame) {
//变量绑定回调函数
VariableBind.callVariableBind(browser, frame)
......
......@@ -8,7 +8,7 @@
package cef
//TODO 先保留 未添加
//先保留 未添加
type JSArray struct {
ICEFv8Value
}
......@@ -8,7 +8,7 @@
package cef
//TODO 先保留 未添加
//先保留 未添加
type JSObject struct {
ICEFv8Value
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册