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

A: ICefViewDelegate Event Proc

U: New CreateType
上级 ccc2c2f6
......@@ -119,7 +119,7 @@ func init() {
browserSettingsPtr := (*tCefBrowserSettingsPtr)(getPtr(2))
browserSettings := browserSettingsPtr.Convert()
client := &ICefClient{instance: getPtr(3)}
result := &ICefBrowserViewDelegate{instance: getPtr(5)}
result := &ICefBrowserViewDelegate{&ICefViewDelegate{instance: getPtr(5)}}
fn.(BrowserViewComponentOnGetDelegateForPopupBrowserView)(lcl.AsObject(getPtr(0)), browserView, browserSettings, client, api.GoBool(getVal(4)), result)
case BrowserViewComponentOnPopupBrowserViewCreated:
browserView := &ICefBrowserView{&ICefView{instance: getPtr(1)}}
......
......@@ -2394,4 +2394,17 @@ const (
ButtonComponent_SetState
ButtonComponent_SetOnButtonPressed
ButtonComponent_SetOnButtonStateChanged
// ICefViewDelegate
ViewDelegateRef_Create
ViewDelegateRef_CreateForCustom
ViewDelegate_SetOnGetPreferredSize
ViewDelegate_SetOnGetMinimumSize
ViewDelegate_SetOnGetMaximumSize
ViewDelegate_SetOnGetHeightForWidth
ViewDelegate_SetOnParentViewChanged
ViewDelegate_SetOnChildViewChanged
ViewDelegate_SetOnWindowChanged
ViewDelegate_SetOnLayoutChanged
ViewDelegate_SetOnFocus
ViewDelegate_SetOnBlur
) //end
......@@ -2394,6 +2394,19 @@ func init() {
dllimports.NewEnergyImport("ButtonComponent_SetState", 0),
dllimports.NewEnergyImport("ButtonComponent_SetOnButtonPressed", 0),
dllimports.NewEnergyImport("ButtonComponent_SetOnButtonStateChanged", 0),
// ICefViewDelegate
dllimports.NewEnergyImport("ViewDelegateRef_Create", 0),
dllimports.NewEnergyImport("ViewDelegateRef_CreateForCustom", 0),
dllimports.NewEnergyImport("ViewDelegate_SetOnGetPreferredSize", 0),
dllimports.NewEnergyImport("ViewDelegate_SetOnGetMinimumSize", 0),
dllimports.NewEnergyImport("ViewDelegate_SetOnGetMaximumSize", 0),
dllimports.NewEnergyImport("ViewDelegate_SetOnGetHeightForWidth", 0),
dllimports.NewEnergyImport("ViewDelegate_SetOnParentViewChanged", 0),
dllimports.NewEnergyImport("ViewDelegate_SetOnChildViewChanged", 0),
dllimports.NewEnergyImport("ViewDelegate_SetOnWindowChanged", 0),
dllimports.NewEnergyImport("ViewDelegate_SetOnLayoutChanged", 0),
dllimports.NewEnergyImport("ViewDelegate_SetOnFocus", 0),
dllimports.NewEnergyImport("ViewDelegate_SetOnBlur", 0),
} //end
imports.SetEnergyImportDefs(energyImportDefs)
}
......@@ -10,14 +10,6 @@
package cef
import "unsafe"
// ICefBrowserViewDelegate TODO 未实现
type ICefBrowserViewDelegate struct {
base TCefBaseRefCounted
instance unsafe.Pointer
}
// Instance 实例
func (m *ICefBrowserViewDelegate) Instance() uintptr {
if m == nil {
......
......@@ -30,7 +30,7 @@ func (*cefClient) New() *ICefClient {
var result uintptr
imports.Proc(def.CefClientRef_Create).Call(uintptr(unsafe.Pointer(&result)))
if result != 0 {
return &ICefClient{instance: unsafe.Pointer(result), ct: consts.CtTClient}
return &ICefClient{instance: unsafe.Pointer(result)}
}
return nil
}
......@@ -45,7 +45,7 @@ func (*cefClient) NewForChromium(chromium IChromium, aDevToolsClient bool) *ICef
var result uintptr
imports.Proc(def.CefClientRef_CreateForChromium).Call(chromium.Instance(), api.PascalBool(aDevToolsClient), uintptr(unsafe.Pointer(&result)))
if result != 0 {
return &ICefClient{instance: unsafe.Pointer(result), ct: consts.CtChromium}
return &ICefClient{instance: unsafe.Pointer(result), ct: consts.CtOther}
}
return nil
}
......@@ -65,12 +65,12 @@ func (m *ICefClient) Free() {
}
}
func (m *ICefClient) IsTClientEvent() bool {
return m.ct == consts.CtTClient
func (m *ICefClient) IsSelfEvent() bool {
return m.ct == consts.CtSelfOwn
}
func (m *ICefClient) IsChromiumEvent() bool {
return m.ct == consts.CtChromium
func (m *ICefClient) IsOtherEvent() bool {
return m.ct == consts.CtOther
}
func (m *ICefClient) IsValid() bool {
......@@ -85,7 +85,7 @@ func (m *ICefClient) SetClient(newClient *ICefClient) {
}
func (m *ICefClient) GetAudioHandler() *ICefAudioHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -97,7 +97,7 @@ func (m *ICefClient) GetAudioHandler() *ICefAudioHandler {
}
func (m *ICefClient) GetCommandHandler() *ICefCommandHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -109,7 +109,7 @@ func (m *ICefClient) GetCommandHandler() *ICefCommandHandler {
}
func (m *ICefClient) GetContextMenuHandler() *ICefContextMenuHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -121,7 +121,7 @@ func (m *ICefClient) GetContextMenuHandler() *ICefContextMenuHandler {
}
func (m *ICefClient) GetDialogHandler() *ICefDialogHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -133,7 +133,7 @@ func (m *ICefClient) GetDialogHandler() *ICefDialogHandler {
}
func (m *ICefClient) GetDisplayHandler() *ICefDisplayHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -145,7 +145,7 @@ func (m *ICefClient) GetDisplayHandler() *ICefDisplayHandler {
}
func (m *ICefClient) GetDownloadHandler() *ICefDownloadHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -157,7 +157,7 @@ func (m *ICefClient) GetDownloadHandler() *ICefDownloadHandler {
}
func (m *ICefClient) GetDragHandler() *ICefDragHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -169,7 +169,7 @@ func (m *ICefClient) GetDragHandler() *ICefDragHandler {
}
func (m *ICefClient) GetFindHandler() *ICefFindHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -181,7 +181,7 @@ func (m *ICefClient) GetFindHandler() *ICefFindHandler {
}
func (m *ICefClient) GetFocusHandler() *ICefFocusHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -193,7 +193,7 @@ func (m *ICefClient) GetFocusHandler() *ICefFocusHandler {
}
func (m *ICefClient) GetFrameHandler() *ICefFrameHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -205,7 +205,7 @@ func (m *ICefClient) GetFrameHandler() *ICefFrameHandler {
}
func (m *ICefClient) GetPermissionHandler() *ICefPermissionHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -217,7 +217,7 @@ func (m *ICefClient) GetPermissionHandler() *ICefPermissionHandler {
}
func (m *ICefClient) GetJsdialogHandler() *ICefJsDialogHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -229,7 +229,7 @@ func (m *ICefClient) GetJsdialogHandler() *ICefJsDialogHandler {
}
func (m *ICefClient) GetKeyboardHandler() *ICefKeyboardHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -241,7 +241,7 @@ func (m *ICefClient) GetKeyboardHandler() *ICefKeyboardHandler {
}
func (m *ICefClient) GetLifeSpanHandler() *ICefLifeSpanHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -253,7 +253,7 @@ func (m *ICefClient) GetLifeSpanHandler() *ICefLifeSpanHandler {
}
func (m *ICefClient) GetLoadHandler() *ICefLoadHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -265,7 +265,7 @@ func (m *ICefClient) GetLoadHandler() *ICefLoadHandler {
}
func (m *ICefClient) GetPrintHandler() *ICefPrintHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -277,7 +277,7 @@ func (m *ICefClient) GetPrintHandler() *ICefPrintHandler {
}
func (m *ICefClient) GetRenderHandler() *ICefRenderHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......@@ -289,7 +289,7 @@ func (m *ICefClient) GetRenderHandler() *ICefRenderHandler {
}
func (m *ICefClient) GetRequestHandler() *ICefRequestHandler {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return nil
}
var result uintptr
......
......@@ -40,7 +40,7 @@ func (*cookieAccessFilter) NewForChromium(chromium IChromium) *ICefCookieAccessF
var result uintptr
imports.Proc(def.CookieAccessFilterRef_CreateForChromium).Call(chromium.Instance(), uintptr(unsafe.Pointer(&result)))
if result != 0 {
return &ICefCookieAccessFilter{instance: unsafe.Pointer(result)}
return &ICefCookieAccessFilter{instance: unsafe.Pointer(result), ct: consts.CtOther}
}
return nil
}
......@@ -69,23 +69,23 @@ func (m *ICefCookieAccessFilter) IsValid() bool {
return m.instance != nil
}
func (m *ICefCookieAccessFilter) IsTClientEvent() bool {
return m.ct == consts.CtTClient
func (m *ICefCookieAccessFilter) IsSelfOwnEvent() bool {
return m.ct == consts.CtSelfOwn
}
func (m *ICefCookieAccessFilter) IsChromiumEvent() bool {
return m.ct == consts.CtChromium
func (m *ICefCookieAccessFilter) IsOtherEvent() bool {
return m.ct == consts.CtOther
}
func (m *ICefCookieAccessFilter) SetCanSendCookie(fn canSendCookie) {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.CookieAccessFilter_CanSendCookie).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefCookieAccessFilter) SetCanSaveCookie(fn canSaveCookie) {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.CookieAccessFilter_CanSaveCookie).Call(m.Instance(), api.MakeEventDataPtr(fn))
......
......@@ -33,7 +33,7 @@ func (*deleteCookiesHandler) NewForChromium(chromium IChromium) *ICefDeleteCooki
var result uintptr
imports.Proc(def.CefDeleteCookiesCallbackRef_CreateForChromium).Call(chromium.Instance(), uintptr(unsafe.Pointer(&result)))
if result != 0 {
return &ICefDeleteCookiesCallback{instance: unsafe.Pointer(result), ct: consts.CtChromium}
return &ICefDeleteCookiesCallback{instance: unsafe.Pointer(result), ct: consts.CtOther}
}
return nil
}
......@@ -42,7 +42,7 @@ func (*deleteCookiesHandler) New() *ICefDeleteCookiesCallback {
var result uintptr
imports.Proc(def.CefDeleteCookiesCallbackRef_Create).Call(uintptr(unsafe.Pointer(&result)))
if result != 0 {
return &ICefDeleteCookiesCallback{instance: unsafe.Pointer(result), ct: consts.CtTClient}
return &ICefDeleteCookiesCallback{instance: unsafe.Pointer(result)}
}
return nil
}
......@@ -68,16 +68,16 @@ func (m *ICefDeleteCookiesCallback) IsValid() bool {
return m.instance != nil
}
func (m *ICefDeleteCookiesCallback) IsTClientEvent() bool {
return m.ct == consts.CtTClient
func (m *ICefDeleteCookiesCallback) IsSelfOwnEvent() bool {
return m.ct == consts.CtSelfOwn
}
func (m *ICefDeleteCookiesCallback) IsChromiumEvent() bool {
return m.ct == consts.CtChromium
func (m *ICefDeleteCookiesCallback) IsOtherEvent() bool {
return m.ct == consts.CtOther
}
func (m *ICefDeleteCookiesCallback) SetOnComplete(fn deleteCookiesOnComplete) {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.CefDeleteCookiesCallback_OnComplete).Call(m.Instance(), api.MakeEventDataPtr(fn))
......@@ -97,7 +97,7 @@ func (*setCookieHandler) NewForChromium(chromium IChromium, id int32) *ICefSetCo
var result uintptr
imports.Proc(def.CefSetCookieCallbackRef_CreateForChromium).Call(chromium.Instance(), uintptr(id), uintptr(unsafe.Pointer(&result)))
if result != 0 {
return &ICefSetCookieCallback{instance: unsafe.Pointer(result), ct: consts.CtChromium}
return &ICefSetCookieCallback{instance: unsafe.Pointer(result), ct: consts.CtOther}
}
return nil
}
......@@ -106,17 +106,17 @@ func (*setCookieHandler) New() *ICefSetCookieCallback {
var result uintptr
imports.Proc(def.CefSetCookieCallbackRef_Create).Call(uintptr(unsafe.Pointer(&result)))
if result != 0 {
return &ICefSetCookieCallback{instance: unsafe.Pointer(result), ct: consts.CtTClient}
return &ICefSetCookieCallback{instance: unsafe.Pointer(result)}
}
return nil
}
func (m *ICefSetCookieCallback) IsTClientEvent() bool {
return m.ct == consts.CtTClient
func (m *ICefSetCookieCallback) IsSelfOwnEvent() bool {
return m.ct == consts.CtSelfOwn
}
func (m *ICefSetCookieCallback) IsChromiumEvent() bool {
return m.ct == consts.CtChromium
func (m *ICefSetCookieCallback) IsOtherEvent() bool {
return m.ct == consts.CtOther
}
// Instance 实例
......@@ -142,7 +142,7 @@ func (m *ICefSetCookieCallback) IsValid() bool {
}
func (m *ICefSetCookieCallback) SetOnComplete(fn setCookieOnComplete) {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.CefSetCookieCallback_OnComplete).Call(m.Instance(), api.MakeEventDataPtr(fn))
......
......@@ -31,7 +31,7 @@ func (*extensionHandler) NewForChromium(chromium IChromium) *TCustomExtensionHan
var result uintptr
imports.Proc(def.CefExtensionHandlerRef_CreateForChromium).Call(chromium.Instance(), uintptr(unsafe.Pointer(&result)))
if result != 0 {
return &TCustomExtensionHandler{instance: unsafe.Pointer(result)}
return &TCustomExtensionHandler{instance: unsafe.Pointer(result), ct: consts.CtOther}
}
return nil
}
......@@ -66,6 +66,14 @@ func (m *TCustomExtensionHandler) IsValid() bool {
return m.instance != nil
}
func (m *TCustomExtensionHandler) IsSelfOwnEvent() bool {
return m.ct == consts.CtSelfOwn
}
func (m *TCustomExtensionHandler) IsOtherEvent() bool {
return m.ct == consts.CtOther
}
// Instance 实例
func (m *ICefExtensionHandler) Instance() uintptr {
if m == nil {
......@@ -80,6 +88,7 @@ func (m *ICefExtensionHandler) Free() {
m.instance = nil
}
}
func (m *ICefExtensionHandler) IsValid() bool {
if m == nil || m.instance == nil {
return false
......
......@@ -30,7 +30,7 @@ func (*requestContextHandler) New() *ICefRequestContextHandler {
var result uintptr
imports.Proc(def.RequestContextHandlerRef_Create).Call(uintptr(unsafe.Pointer(&result)))
if result != 0 {
return &ICefRequestContextHandler{instance: unsafe.Pointer(result), ct: consts.CtTClient}
return &ICefRequestContextHandler{instance: unsafe.Pointer(result)}
}
return nil
}
......@@ -42,7 +42,7 @@ func (*requestContextHandler) NewForChromium(chromium IChromium) *ICefRequestCon
var result uintptr
imports.Proc(def.RequestContextHandlerRef_CreateForChromium).Call(chromium.Instance(), uintptr(unsafe.Pointer(&result)))
if result != 0 {
return &ICefRequestContextHandler{instance: unsafe.Pointer(result), ct: consts.CtChromium}
return &ICefRequestContextHandler{instance: unsafe.Pointer(result), ct: consts.CtOther}
}
return nil
}
......@@ -71,23 +71,23 @@ func (m *ICefRequestContextHandler) IsValid() bool {
return m.instance != nil
}
func (m *ICefRequestContextHandler) IsTClientEvent() bool {
return m.ct == consts.CtTClient
func (m *ICefRequestContextHandler) IsSelfOwnEvent() bool {
return m.ct == consts.CtSelfOwn
}
func (m *ICefRequestContextHandler) IsChromiumEvent() bool {
return m.ct == consts.CtChromium
func (m *ICefRequestContextHandler) IsOtherEvent() bool {
return m.ct == consts.CtOther
}
func (m *ICefRequestContextHandler) SetOnRequestContextInitialized(fn onRequestContextInitialized) {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.RequestContextHandler_OnRequestContextInitialized).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefRequestContextHandler) SetGetResourceRequestHandler(fn getResourceRequestHandler) {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.RequestContextHandler_GetResourceRequestHandler).Call(m.Instance(), api.MakeEventDataPtr(fn))
......
......@@ -30,7 +30,7 @@ func (*resourceRequestHandler) New() *ICefResourceRequestHandler {
var result uintptr
imports.Proc(def.ResourceRequestHandlerRef_Create).Call(uintptr(unsafe.Pointer(&result)))
if result != 0 {
return &ICefResourceRequestHandler{instance: unsafe.Pointer(result), ct: consts.CtTClient}
return &ICefResourceRequestHandler{instance: unsafe.Pointer(result)}
}
return nil
}
......@@ -39,7 +39,7 @@ func (*resourceRequestHandler) NewForChromium(chromium IChromium) *ICefResourceR
var result uintptr
imports.Proc(def.ResourceRequestHandlerRef_CreateForChromium).Call(chromium.Instance(), uintptr(unsafe.Pointer(&result)))
if result != 0 {
return &ICefResourceRequestHandler{instance: unsafe.Pointer(result), ct: consts.CtChromium}
return &ICefResourceRequestHandler{instance: unsafe.Pointer(result), ct: consts.CtOther}
}
return nil
}
......@@ -68,65 +68,65 @@ func (m *ICefResourceRequestHandler) IsValid() bool {
return m.instance != nil
}
func (m *ICefResourceRequestHandler) IsTClientEvent() bool {
return m.ct == consts.CtTClient
func (m *ICefResourceRequestHandler) IsSelfOwnEvent() bool {
return m.ct == consts.CtSelfOwn
}
func (m *ICefResourceRequestHandler) IsChromiumEvent() bool {
return m.ct == consts.CtChromium
func (m *ICefResourceRequestHandler) IsOtherEvent() bool {
return m.ct == consts.CtOther
}
func (m *ICefResourceRequestHandler) SetGetCookieAccessFilter(fn getCookieAccessFilter) {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ResourceRequestHandler_GetCookieAccessFilter).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefResourceRequestHandler) SetOnBeforeResourceLoad(fn onBeforeResourceLoad) {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ResourceRequestHandler_OnBeforeResourceLoad).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefResourceRequestHandler) SetGetResourceHandler(fn getResourceHandler) {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ResourceRequestHandler_GetResourceHandler).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefResourceRequestHandler) SetOnResourceRedirect(fn onResourceRedirect) {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ResourceRequestHandler_OnResourceRedirect).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefResourceRequestHandler) SetOnResourceResponse(fn onResourceResponse) {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ResourceRequestHandler_OnResourceResponse).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefResourceRequestHandler) SetGetResourceResponseFilter(fn getResourceResponseFilter) {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ResourceRequestHandler_GetResourceResponseFilter).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefResourceRequestHandler) SetOnResourceLoadComplete(fn onResourceLoadComplete) {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ResourceRequestHandler_OnResourceLoadComplete).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefResourceRequestHandler) SetOnProtocolExecution(fn onProtocolExecution) {
if !m.IsValid() || m.IsChromiumEvent() {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ResourceRequestHandler_OnProtocolExecution).Call(m.Instance(), api.MakeEventDataPtr(fn))
......
......@@ -505,68 +505,3 @@ func (m *TCEFViewComponent) SetOnBlur(fn onBlur) {
}
imports.Proc(def.ViewComponent_SetOnBlur).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
type onGetPreferredSize func(sender lcl.IObject, view *ICefView, result *TCefSize)
type onGetMinimumSize func(sender lcl.IObject, view *ICefView, result *TCefSize)
type onGetMaximumSize func(sender lcl.IObject, view *ICefView, result *TCefSize)
type onGetHeightForWidth func(sender lcl.IObject, view *ICefView, width int32) int32
type onParentViewChanged func(sender lcl.IObject, view *ICefView, added bool, parent *ICefView)
type onChildViewChanged func(sender lcl.IObject, view *ICefView, added bool, child *ICefView)
type onWindowChanged func(sender lcl.IObject, view *ICefView, added bool)
type onLayoutChanged func(sender lcl.IObject, view *ICefView, newBounds *TCefRect)
type onFocus func(sender lcl.IObject, view *ICefView)
type onBlur func(sender lcl.IObject, view *ICefView)
func init() {
lcl.RegisterExtEventCallback(func(fn interface{}, getVal func(idx int) uintptr) bool {
getPtr := func(i int) unsafe.Pointer {
return unsafe.Pointer(getVal(i))
}
switch fn.(type) {
case onGetPreferredSize:
view := &ICefView{instance: getPtr(1)}
resultSize := (*TCefSize)(getPtr(2))
fn.(onGetPreferredSize)(lcl.AsObject(getPtr(0)), view, resultSize)
case onGetMinimumSize:
view := &ICefView{instance: getPtr(1)}
resultSize := (*TCefSize)(getPtr(2))
fn.(onGetMinimumSize)(lcl.AsObject(getPtr(0)), view, resultSize)
case onGetMaximumSize:
view := &ICefView{instance: getPtr(1)}
resultSize := (*TCefSize)(getPtr(2))
fn.(onGetMaximumSize)(lcl.AsObject(getPtr(0)), view, resultSize)
case onGetHeightForWidth:
view := &ICefView{instance: getPtr(1)}
width := int32(getVal(2))
resultPtr := (*int32)(getPtr(3))
*resultPtr = fn.(onGetHeightForWidth)(lcl.AsObject(getPtr(0)), view, width)
case onParentViewChanged:
view := &ICefView{instance: getPtr(1)}
added := api.GoBool(getVal(2))
parent := &ICefView{instance: getPtr(3)}
fn.(onParentViewChanged)(lcl.AsObject(getPtr(0)), view, added, parent)
case onChildViewChanged:
view := &ICefView{instance: getPtr(1)}
added := api.GoBool(getVal(2))
child := &ICefView{instance: getPtr(3)}
fn.(onChildViewChanged)(lcl.AsObject(getPtr(0)), view, added, child)
case onWindowChanged:
view := &ICefView{instance: getPtr(1)}
added := api.GoBool(getVal(2))
fn.(onWindowChanged)(lcl.AsObject(getPtr(0)), view, added)
case onLayoutChanged:
view := &ICefView{instance: getPtr(1)}
newBounds := (*TCefRect)(getPtr(2))
fn.(onLayoutChanged)(lcl.AsObject(getPtr(0)), view, newBounds)
case onFocus:
view := &ICefView{instance: getPtr(1)}
fn.(onFocus)(lcl.AsObject(getPtr(0)), view)
case onBlur:
view := &ICefView{instance: getPtr(1)}
fn.(onBlur)(lcl.AsObject(getPtr(0)), view)
default:
return false
}
return true
})
}
//----------------------------------------
//
// Copyright © yanghy. All Rights Reserved.
//
// Licensed under Apache License Version 2.0, January 2004
//
// https://www.apache.org/licenses/LICENSE-2.0
//
//----------------------------------------
package cef
import (
"github.com/energye/energy/v2/cef/internal/def"
"github.com/energye/energy/v2/common/imports"
"github.com/energye/energy/v2/consts"
"github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl/api"
"unsafe"
)
// ViewDelegateRef -> ICefViewDelegate
var ViewDelegateRef viewDelegate
type viewDelegate uintptr
func (*viewDelegate) New() *ICefViewDelegate {
var result uintptr
imports.Proc(def.ViewDelegateRef_Create).Call(uintptr(unsafe.Pointer(&result)))
if result != 0 {
return &ICefViewDelegate{instance: getInstance(result)}
}
return nil
}
func (*viewDelegate) NewForCustom() *ICefViewDelegate {
var result uintptr
imports.Proc(def.ViewDelegateRef_CreateForCustom).Call(uintptr(unsafe.Pointer(&result)))
if result != 0 {
return &ICefViewDelegate{instance: getInstance(result), ct: consts.CtOther}
}
return nil
}
func (m *ICefViewDelegate) IsSelfOwnEvent() bool {
return m.ct == consts.CtSelfOwn
}
func (m *ICefViewDelegate) IsOtherEvent() bool {
return m.ct == consts.CtOther
}
// Instance 实例
func (m *ICefViewDelegate) Instance() uintptr {
if m == nil {
return 0
}
return uintptr(m.instance)
}
func (m *ICefViewDelegate) IsValid() bool {
if m == nil || m.instance == nil {
return false
}
return m.instance != nil
}
func (m *ICefViewDelegate) Free() {
if m.instance != nil {
m.base.Free(m.Instance())
m.instance = nil
}
}
func (m *ICefViewDelegate) SetOnGetPreferredSize(fn onGetPreferredSize) {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ViewDelegate_SetOnGetPreferredSize).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefViewDelegate) SetOnGetMinimumSize(fn onGetMinimumSize) {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ViewDelegate_SetOnGetMinimumSize).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefViewDelegate) SetOnGetMaximumSize(fn onGetMaximumSize) {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ViewDelegate_SetOnGetMaximumSize).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefViewDelegate) SetOnGetHeightForWidth(fn onGetHeightForWidth) {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ViewDelegate_SetOnGetHeightForWidth).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefViewDelegate) SetOnParentViewChanged(fn onParentViewChanged) {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ViewDelegate_SetOnParentViewChanged).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefViewDelegate) SetOnChildViewChanged(fn onChildViewChanged) {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ViewDelegate_SetOnChildViewChanged).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefViewDelegate) SetOnWindowChanged(fn onWindowChanged) {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ViewDelegate_SetOnWindowChanged).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefViewDelegate) SetOnLayoutChanged(fn onLayoutChanged) {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ViewDelegate_SetOnLayoutChanged).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefViewDelegate) SetOnFocus(fn onFocus) {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ViewDelegate_SetOnFocus).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
func (m *ICefViewDelegate) SetOnBlur(fn onBlur) {
if !m.IsValid() || m.IsOtherEvent() {
return
}
imports.Proc(def.ViewDelegate_SetOnBlur).Call(m.Instance(), api.MakeEventDataPtr(fn))
}
type onGetPreferredSize func(view *ICefView, result *TCefSize)
type onGetMinimumSize func(view *ICefView, result *TCefSize)
type onGetMaximumSize func(view *ICefView, result *TCefSize)
type onGetHeightForWidth func(view *ICefView, width int32) int32
type onParentViewChanged func(view *ICefView, added bool, parent *ICefView)
type onChildViewChanged func(view *ICefView, added bool, child *ICefView)
type onWindowChanged func(view *ICefView, added bool)
type onLayoutChanged func(view *ICefView, newBounds *TCefRect)
type onFocus func(view *ICefView)
type onBlur func(view *ICefView)
func init() {
lcl.RegisterExtEventCallback(func(fn interface{}, getVal func(idx int) uintptr) bool {
getPtr := func(i int) unsafe.Pointer {
return unsafe.Pointer(getVal(i))
}
switch fn.(type) {
case onGetPreferredSize:
view := &ICefView{instance: getPtr(1)}
resultSize := (*TCefSize)(getPtr(2))
fn.(onGetPreferredSize)(view, resultSize)
case onGetMinimumSize:
view := &ICefView{instance: getPtr(1)}
resultSize := (*TCefSize)(getPtr(2))
fn.(onGetMinimumSize)(view, resultSize)
case onGetMaximumSize:
view := &ICefView{instance: getPtr(1)}
resultSize := (*TCefSize)(getPtr(2))
fn.(onGetMaximumSize)(view, resultSize)
case onGetHeightForWidth:
view := &ICefView{instance: getPtr(1)}
width := int32(getVal(2))
resultPtr := (*int32)(getPtr(3))
*resultPtr = fn.(onGetHeightForWidth)(view, width)
case onParentViewChanged:
view := &ICefView{instance: getPtr(1)}
added := api.GoBool(getVal(2))
parent := &ICefView{instance: getPtr(3)}
fn.(onParentViewChanged)(view, added, parent)
case onChildViewChanged:
view := &ICefView{instance: getPtr(1)}
added := api.GoBool(getVal(2))
child := &ICefView{instance: getPtr(3)}
fn.(onChildViewChanged)(view, added, child)
case onWindowChanged:
view := &ICefView{instance: getPtr(1)}
added := api.GoBool(getVal(2))
fn.(onWindowChanged)(view, added)
case onLayoutChanged:
view := &ICefView{instance: getPtr(1)}
newBounds := (*TCefRect)(getPtr(2))
fn.(onLayoutChanged)(view, newBounds)
case onFocus:
view := &ICefView{instance: getPtr(1)}
fn.(onFocus)(view)
case onBlur:
view := &ICefView{instance: getPtr(1)}
fn.(onBlur)(view)
default:
return false
}
return true
})
}
......@@ -365,6 +365,7 @@ type ICefExtensionHandler struct {
type TCustomExtensionHandler struct {
base TCefBaseRefCounted
instance unsafe.Pointer
ct CefCreateType
}
// ICefExtension
......@@ -435,7 +436,7 @@ type TCefTouchHandleState struct {
type ICefRequestContextHandler struct {
base TCefBaseRefCounted
instance unsafe.Pointer
ct CefClientType // 0: TClientRef 1: IChromium
ct CefCreateType
}
// ICefMenuModel 菜单
......@@ -522,6 +523,12 @@ type ICefView struct {
type ICefViewDelegate struct {
base TCefBaseRefCounted
instance unsafe.Pointer
ct CefCreateType
}
// ICefBrowserViewDelegate
type ICefBrowserViewDelegate struct {
*ICefViewDelegate
}
// TCEFViewComponent
......@@ -567,7 +574,7 @@ type ICefSslInfo struct {
type ICefClient struct {
base TCefBaseRefCounted
instance unsafe.Pointer
ct CefClientType // 0: TClientRef 1: IChromium
ct CefCreateType
}
// ICefAudioHandler
......@@ -696,7 +703,7 @@ type ICefAccessibilityHandler struct {
type ICefResourceRequestHandler struct {
base TCefBaseRefCounted
instance unsafe.Pointer
ct CefClientType // 0: TClientRef 1: IChromium
ct CefCreateType
}
// ICefCookieAccessFilter
......@@ -704,7 +711,7 @@ type ICefResourceRequestHandler struct {
type ICefCookieAccessFilter struct {
base TCefBaseRefCounted
instance unsafe.Pointer
ct CefClientType // 0: TClientRef 1: IChromium
ct CefCreateType
}
// ICefResourceHandler
......@@ -830,14 +837,14 @@ type ICefResourceSkipCallback struct {
type ICefDeleteCookiesCallback struct {
base TCefBaseRefCounted
instance unsafe.Pointer
ct CefClientType // 0: TClientRef 1: IChromium
ct CefCreateType
}
// ICefSetCookieCallback
type ICefSetCookieCallback struct {
base TCefBaseRefCounted
instance unsafe.Pointer
ct CefClientType // 0: TClientRef 1: IChromium
ct CefCreateType
}
// ICefPrintDialogCallback
......
......@@ -1130,14 +1130,14 @@ const (
CEF_CHANNEL_LAYOUT_5_1_4_DOWNMIX // CEF_CHANNEL_LAYOUT_MAX = CEF_CHANNEL_LAYOUT_5_1_4_DOWNMIX
)
// CefClientType
// CtTClient 自定义客户端处理器事件
// CtChromium 使用 IChromium 定义事件, 不允许获取处理器事件
type CefClientType = types.Int8
// CefCreateType
// CtSelfOwn 自己处理事件
// CtOther 使用其他处理事件
type CefCreateType = types.Int8
const (
CtTClient CefClientType = iota
CtChromium
CtSelfOwn CefCreateType = iota // CtSelfOwn 自己处理事件
CtOther // CtOther 使用其他处理事件
)
// /include/internal/cef_types.h (cef_quick_menu_edit_state_flags_t)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册