Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
energye
energy
提交
7b9f35f2
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,发现更多精彩内容 >>
提交
7b9f35f2
编写于
7月 07, 2023
作者:
yanghye
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
U&A: VF-SetCreateBrowserExtraInfo
上级
30fe5c3f
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
79 addition
and
78 deletion
+79
-78
cef/browser-main-window.go
cef/browser-main-window.go
+1
-1
cef/browser-window-lcl.go
cef/browser-window-lcl.go
+6
-9
cef/browser-window-views-framework.go
cef/browser-window-views-framework.go
+10
-1
cef/browser-window.go
cef/browser-window.go
+55
-55
cef/chromium-browser.go
cef/chromium-browser.go
+1
-1
cef/chromium-proc.go
cef/chromium-proc.go
+4
-9
example/flash-for-cef-v87/flashcefv87.go
example/flash-for-cef-v87/flashcefv87.go
+2
-2
未找到文件。
cef/browser-main-window.go
浏览文件 @
7b9f35f2
...
...
@@ -71,7 +71,7 @@ func (m *lclBrowserWindow) OnFormCreate(sender lcl.IObject) {
m
.
setProperty
()
if
BrowserWindow
.
Config
.
browserWindowOnEventCallback
!=
nil
{
BrowserWindow
.
browserEvent
.
chromium
=
m
.
Chromium
()
BrowserWindow
.
Config
.
browserWindowOnEventCallback
(
BrowserWindow
.
browserEvent
,
&
m
.
LCLBrowserWindow
)
BrowserWindow
.
Config
.
browserWindowOnEventCallback
(
BrowserWindow
.
browserEvent
,
m
)
m
.
setProperty
()
//再次设置可能修改属性
}
//browserWindowOnEventCallback 执行完后,注册CompMsgEvent
...
...
cef/browser-window-lcl.go
浏览文件 @
7b9f35f2
...
...
@@ -655,16 +655,8 @@ func (m *LCLBrowserWindow) IsLCL() bool {
// show 内部调用
func
(
m
*
LCLBrowserWindow
)
show
(
sender
lcl
.
IObject
)
{
var
ret
bool
if
m
.
onShow
!=
nil
{
ret
=
m
.
onShow
(
sender
)
}
if
!
ret
{
//true表示用户自己处理, false继续执行默认实现
if
m
.
chromiumBrowser
!=
nil
&&
!
m
.
chromiumBrowser
.
IsCreated
()
{
if
m
.
WindowProperty
()
.
WindowType
!=
consts
.
WT_DEV_TOOLS
{
m
.
chromiumBrowser
.
CreateBrowser
()
}
}
m
.
onShow
(
sender
)
}
}
...
...
@@ -710,6 +702,11 @@ func (m *LCLBrowserWindow) activate(sender lcl.IObject) {
if
m
.
isClosing
{
return
}
if
m
.
chromiumBrowser
!=
nil
&&
!
m
.
chromiumBrowser
.
IsCreated
()
{
if
m
.
WindowProperty
()
.
WindowType
!=
consts
.
WT_DEV_TOOLS
{
m
.
chromiumBrowser
.
CreateBrowser
()
}
}
}
if
m
.
onActivateAfter
!=
nil
{
m
.
onActivateAfter
(
sender
)
...
...
cef/browser-window-views-framework.go
浏览文件 @
7b9f35f2
...
...
@@ -44,6 +44,8 @@ type ViewsFrameworkBrowserWindow struct {
doOnWindowCreated
WindowComponentOnWindowCreated
//窗口创建
doOnGetInitialBounds
WindowComponentOnGetInitialBounds
//窗口初始bounds
regions
*
TCefDraggableRegions
//窗口内html拖拽区域
context
*
ICefRequestContext
extraInfo
*
ICefDictionaryValue
}
// NewViewsFrameworkBrowserWindow 创建 ViewsFrameworkBrowserWindow 窗口
...
...
@@ -72,7 +74,7 @@ func NewViewsFrameworkBrowserWindow(config *TCefChromiumConfig, windowProperty W
m
.
SetWindowType
(
windowProperty
.
WindowType
)
m
.
chromium
.
SetEnableMultiBrowserMode
(
true
)
m
.
windowComponent
.
SetOnWindowCreated
(
func
(
sender
lcl
.
IObject
,
window
*
ICefWindow
)
{
if
m
.
chromium
.
CreateBrowserByBrowserViewComponent
(
windowProperty
.
Url
,
m
.
browserViewComponent
)
{
if
m
.
chromium
.
CreateBrowserByBrowserViewComponent
(
windowProperty
.
Url
,
m
.
browserViewComponent
,
m
.
context
,
m
.
extraInfo
)
{
m
.
windowComponent
.
AddChildView
(
m
.
browserViewComponent
)
if
windowProperty
.
Title
!=
""
{
m
.
windowComponent
.
SetTitle
(
windowProperty
.
Title
)
...
...
@@ -331,6 +333,13 @@ func (m *ViewsFrameworkBrowserWindow) SetOnGetInitialBounds(onGetInitialBounds W
m
.
doOnGetInitialBounds
=
onGetInitialBounds
}
// SetCreateBrowserExtraInfo
// 设置 Chromium 创建浏览器时设置的扩展信息
func
(
m
*
ViewsFrameworkBrowserWindow
)
SetCreateBrowserExtraInfo
(
_
string
,
context
*
ICefRequestContext
,
extraInfo
*
ICefDictionaryValue
)
{
m
.
context
=
context
m
.
extraInfo
=
extraInfo
}
// IsViewsFramework 返回是否VF窗口组件,这里返回true
func
(
m
*
ViewsFrameworkBrowserWindow
)
IsViewsFramework
()
bool
{
return
true
...
...
cef/browser-window.go
浏览文件 @
7b9f35f2
...
...
@@ -58,50 +58,51 @@ type WindowProperty struct {
//
// 定义了常用函数
type
IBrowserWindow
interface
{
Id
()
int32
//窗口ID
Handle
()
types
.
HWND
//窗口句柄
Show
()
//显示窗口
Hide
()
//隐藏窗口
WindowState
()
types
.
TWindowState
//返回窗口最小化、最大化、全屏状态
Maximize
()
//窗口最大化
Minimize
()
//窗口最小化
Restore
()
//窗口还原
Close
()
//关闭窗口 非browser窗口使用
CloseBrowserWindow
()
//关闭浏览器窗口 带有browser窗口使用
WindowType
()
consts
.
WINDOW_TYPE
//窗口类型
SetWindowType
(
windowType
consts
.
WINDOW_TYPE
)
//设置窗口类型
Browser
()
*
ICefBrowser
//窗口内的Browser对象
Chromium
()
IChromium
//窗口内的Chromium对象
DisableMaximize
()
//禁用最大化
DisableMinimize
()
//禁用最小化
DisableResize
()
//禁用窗口大小调整
EnableMaximize
()
//启用最大化
EnableMinimize
()
//启用最小化
EnableResize
()
//启用允许调整窗口大小
IsClosing
()
bool
//返回窗口是否正在关闭/或已关闭 true正在或已关闭
AsViewsFrameworkBrowserWindow
()
IViewsFrameworkBrowserWindow
//转换为ViewsFramework窗口接口, 失败返回nil
AsLCLBrowserWindow
()
ILCLBrowserWindow
//转换为LCL窗口接口, 失败返回nil
EnableAllDefaultEvent
()
//启用所有默认事件
SetTitle
(
title
string
)
//设置窗口标题栏标题
IsViewsFramework
()
bool
//是否为 IViewsFrameworkBrowserWindow 窗口,失败返回false
IsLCL
()
bool
//是否为 ILCLBrowserWindow 窗口,失败返回false
WindowProperty
()
*
WindowProperty
//窗口常用属性
SetWidth
(
value
int32
)
//设置窗口宽
SetHeight
(
value
int32
)
//设置窗口高
Point
()
*
TCefPoint
//窗口坐标
Size
()
*
TCefSize
//窗口宽高
Bounds
()
*
TCefRect
//窗口坐标和宽高
SetPoint
(
x
,
y
int32
)
//设置窗口坐标
SetSize
(
width
,
height
int32
)
//设置窗口宽高
SetBounds
(
x
,
y
,
width
,
height
int32
)
//设置窗口坐标和宽高
SetCenterWindow
(
value
bool
)
//设置窗口居中
ShowTitle
()
//显示窗口标题栏
HideTitle
()
//隐藏窗口标题栏
SetDefaultInTaskBar
()
//默认窗口在任务栏上显示按钮
SetShowInTaskBar
()
//强制窗口在任务栏上显示按钮
SetNotInTaskBar
()
//强制窗口不在任务栏上显示按钮
NewCefTray
(
width
,
height
int32
,
url
string
)
ITray
//仅支持windows托盘LCL+[CEF|VF](使用web端技术自定义实现,如使用LCL窗口组件该托盘实现是LCL+CEF,如使用VF窗口组件该托盘实现是LCL+VF)
NewSysTray
()
ITray
//systray系统原生
Id
()
int32
//窗口ID
Handle
()
types
.
HWND
//窗口句柄
Show
()
//显示窗口
Hide
()
//隐藏窗口
WindowState
()
types
.
TWindowState
//返回窗口最小化、最大化、全屏状态
Maximize
()
//窗口最大化
Minimize
()
//窗口最小化
Restore
()
//窗口还原
Close
()
//关闭窗口 非browser窗口使用
CloseBrowserWindow
()
//关闭浏览器窗口 带有browser窗口使用
WindowType
()
consts
.
WINDOW_TYPE
//窗口类型
SetWindowType
(
windowType
consts
.
WINDOW_TYPE
)
//设置窗口类型
Browser
()
*
ICefBrowser
//窗口内的Browser对象
Chromium
()
IChromium
//窗口内的Chromium对象
DisableMaximize
()
//禁用最大化
DisableMinimize
()
//禁用最小化
DisableResize
()
//禁用窗口大小调整
EnableMaximize
()
//启用最大化
EnableMinimize
()
//启用最小化
EnableResize
()
//启用允许调整窗口大小
IsClosing
()
bool
//返回窗口是否正在关闭/或已关闭 true正在或已关闭
AsViewsFrameworkBrowserWindow
()
IViewsFrameworkBrowserWindow
//转换为ViewsFramework窗口接口, 失败返回nil
AsLCLBrowserWindow
()
ILCLBrowserWindow
//转换为LCL窗口接口, 失败返回nil
EnableAllDefaultEvent
()
//启用所有默认事件
SetTitle
(
title
string
)
//设置窗口标题栏标题
IsViewsFramework
()
bool
//是否为 IViewsFrameworkBrowserWindow 窗口,失败返回false
IsLCL
()
bool
//是否为 ILCLBrowserWindow 窗口,失败返回false
WindowProperty
()
*
WindowProperty
//窗口常用属性
SetWidth
(
value
int32
)
//设置窗口宽
SetHeight
(
value
int32
)
//设置窗口高
Point
()
*
TCefPoint
//窗口坐标
Size
()
*
TCefSize
//窗口宽高
Bounds
()
*
TCefRect
//窗口坐标和宽高
SetPoint
(
x
,
y
int32
)
//设置窗口坐标
SetSize
(
width
,
height
int32
)
//设置窗口宽高
SetBounds
(
x
,
y
,
width
,
height
int32
)
//设置窗口坐标和宽高
SetCenterWindow
(
value
bool
)
//设置窗口居中
ShowTitle
()
//显示窗口标题栏
HideTitle
()
//隐藏窗口标题栏
SetDefaultInTaskBar
()
//默认窗口在任务栏上显示按钮
SetShowInTaskBar
()
//强制窗口在任务栏上显示按钮
SetNotInTaskBar
()
//强制窗口不在任务栏上显示按钮
NewCefTray
(
width
,
height
int32
,
url
string
)
ITray
//仅支持windows托盘LCL+[CEF|VF](使用web端技术自定义实现,如使用LCL窗口组件该托盘实现是LCL+CEF,如使用VF窗口组件该托盘实现是LCL+VF)
NewSysTray
()
ITray
//systray系统原生
SetCreateBrowserExtraInfo
(
windowName
string
,
context
*
ICefRequestContext
,
extraInfo
*
ICefDictionaryValue
)
//设置 Chromium 创建浏览器时设置的扩展信息
}
// ILCLBrowserWindow
...
...
@@ -110,17 +111,16 @@ type IBrowserWindow interface {
// 定义了LCL常用函数
type
ILCLBrowserWindow
interface
{
IBrowserWindow
BrowserWindow
()
*
LCLBrowserWindow
//返回 LCLBrowserWindow 窗口结构
EnableDefaultCloseEvent
()
//启用默认关闭事件
WindowParent
()
ICEFWindowParent
//浏览器父窗口组件
DisableTransparent
()
//禁用窗口透明
EnableTransparent
(
value
uint8
)
//启用并设置窗口透明
DisableSystemMenu
()
//禁用标题栏系统菜单
DisableHelp
()
//禁用标题栏帮助
EnableSystemMenu
()
//启用标题栏系统菜单
EnableHelp
()
//启用标题栏帮助
NewTray
()
ITray
//创建LCL的系统托盘
SetCreateBrowserExtraInfo
(
windowName
string
,
context
*
ICefRequestContext
,
extraInfo
*
ICefDictionaryValue
)
//设置 Chromium 创建浏览器时设置的扩展信息
BrowserWindow
()
*
LCLBrowserWindow
//返回 LCLBrowserWindow 窗口结构
EnableDefaultCloseEvent
()
//启用默认关闭事件
WindowParent
()
ICEFWindowParent
//浏览器父窗口组件
DisableTransparent
()
//禁用窗口透明
EnableTransparent
(
value
uint8
)
//启用并设置窗口透明
DisableSystemMenu
()
//禁用标题栏系统菜单
DisableHelp
()
//禁用标题栏帮助
EnableSystemMenu
()
//启用标题栏系统菜单
EnableHelp
()
//启用标题栏帮助
NewTray
()
ITray
//创建LCL的系统托盘
}
// IViewsFrameworkBrowserWindow
...
...
cef/chromium-browser.go
浏览文件 @
7b9f35f2
...
...
@@ -54,7 +54,7 @@ func NewChromiumBrowser(owner lcl.IWinControl, config *TCefChromiumConfig) ICEFC
// 创建浏览器
// 创建时如果未创建成功, 使用定时器创建直到成功
func
(
m
*
TCEFChromiumBrowser
)
checkAndCreateBrowser
(
sender
lcl
.
IObject
)
{
if
m
.
chromium
==
nil
||
m
.
createTimer
==
nil
{
if
m
.
isCreated
||
m
.
chromium
==
nil
||
m
.
createTimer
==
nil
{
return
}
m
.
createTimer
.
SetEnabled
(
false
)
...
...
cef/chromium-proc.go
浏览文件 @
7b9f35f2
...
...
@@ -52,7 +52,7 @@ type IChromiumProc interface {
ResetZoomLevel
()
CloseAllBrowsers
()
CreateBrowser
(
window
ICEFWindowParent
,
windowName
string
,
context
*
ICefRequestContext
,
extraInfo
*
ICefDictionaryValue
)
bool
CreateBrowserByBrowserViewComponent
(
homePage
string
,
browserViewComponent
*
TCEFBrowserViewComponent
)
bool
CreateBrowserByBrowserViewComponent
(
homePage
string
,
browserViewComponent
*
TCEFBrowserViewComponent
,
context
*
ICefRequestContext
,
extraInfo
*
ICefDictionaryValue
)
bool
Initialized
()
bool
IsSameBrowser
(
browser
*
ICefBrowser
)
bool
PrintToPDF
(
saveFilePath
string
)
...
...
@@ -422,11 +422,12 @@ func (m *TCEFChromium) CreateBrowser(window ICEFWindowParent, windowName string,
return
_CEFChromium_CreateBrowse
(
m
.
Instance
(),
windowPtr
,
api
.
PascalStr
(
windowName
),
context
.
Instance
(),
extraInfo
.
Instance
())
}
func
(
m
*
TCEFChromium
)
CreateBrowserByBrowserViewComponent
(
homePage
string
,
browserViewComponent
*
TCEFBrowserViewComponent
)
bool
{
func
(
m
*
TCEFChromium
)
CreateBrowserByBrowserViewComponent
(
homePage
string
,
browserViewComponent
*
TCEFBrowserViewComponent
,
context
*
ICefRequestContext
,
extraInfo
*
ICefDictionaryValue
)
bool
{
if
!
m
.
IsValid
()
{
return
false
}
return
_CEFChromium_CreateBrowserByBrowserViewComponent
(
m
.
Instance
(),
api
.
PascalStr
(
homePage
),
browserViewComponent
.
Instance
())
r1
,
_
,
_
:=
imports
.
Proc
(
def
.
CEFChromium_CreateBrowserByBrowserViewComponent
)
.
Call
(
m
.
Instance
(),
api
.
PascalStr
(
homePage
),
browserViewComponent
.
Instance
(),
context
.
Instance
(),
extraInfo
.
Instance
())
return
api
.
GoBool
(
r1
)
}
func
(
m
*
TCEFChromium
)
Initialized
()
bool
{
...
...
@@ -1622,12 +1623,6 @@ func _CEFChromium_CreateBrowseByLinkedWindow(instance, window uintptr) bool {
return
api
.
GoBool
(
r1
)
}
// TCEFChromium _CEFChromium_CreateBrowserByBrowserViewComponent
func
_CEFChromium_CreateBrowserByBrowserViewComponent
(
instance
,
homePage
,
browserViewComponent
uintptr
)
bool
{
r1
,
_
,
_
:=
imports
.
Proc
(
def
.
CEFChromium_CreateBrowserByBrowserViewComponent
)
.
Call
(
instance
,
homePage
,
browserViewComponent
)
return
api
.
GoBool
(
r1
)
}
// TCEFChromium _CEFChromium_Initialized
func
_CEFChromium_Initialized
(
instance
uintptr
)
bool
{
r1
,
_
,
_
:=
imports
.
Proc
(
def
.
CEFChromium_Initialized
)
.
Call
(
instance
)
...
...
example/flash-for-cef-v87/flashcefv87.go
浏览文件 @
7b9f35f2
...
...
@@ -48,11 +48,11 @@ func main() {
})
context
:=
cef
.
RequestContextRef
.
New
(
nil
,
ch
)
// 主窗口的扩展参数设置
window
.
AsLCLBrowserWindow
()
.
SetCreateBrowserExtraInfo
(
""
,
context
,
nil
)
window
.
SetCreateBrowserExtraInfo
(
""
,
context
,
nil
)
// 弹出窗口
event
.
SetOnBeforePopup
(
func
(
sender
lcl
.
IObject
,
browser
*
cef
.
ICefBrowser
,
frame
*
cef
.
ICefFrame
,
beforePopupInfo
*
cef
.
BeforePopupInfo
,
popupWindow
cef
.
IBrowserWindow
,
noJavascriptAccess
*
bool
)
bool
{
// 弹出窗口的扩展参数设置
popupWindow
.
AsLCLBrowserWindow
()
.
SetCreateBrowserExtraInfo
(
""
,
context
,
nil
)
popupWindow
.
SetCreateBrowserExtraInfo
(
""
,
context
,
nil
)
return
false
})
})
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录