Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
energye
energy
提交
a20c429f
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,体验更适合开发者的 AI 搜索 >>
提交
a20c429f
编写于
1月 03, 2023
作者:
yanghye
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixed Chinese input and gtk3 issues for linux packaging
上级
77809266
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
84 addition
and
61 deletion
+84
-61
cef/cef-browser-window.go
cef/cef-browser-window.go
+1
-5
cef/cef-views-framework-browser-window.go
cef/cef-views-framework-browser-window.go
+67
-51
cef/window-info.go
cef/window-info.go
+14
-3
example/browser-linux/linux.go
example/browser-linux/linux.go
+1
-1
example/browser-views-framework/views-framework.go
example/browser-views-framework/views-framework.go
+1
-1
未找到文件。
cef/cef-browser-window.go
浏览文件 @
a20c429f
...
...
@@ -29,11 +29,7 @@ var (
mainBrowserWindow
:
&
browserWindow
{},
browserEvent
:
&
BrowserEvent
{},
Config
:
&
browserConfig
{
WindowProperty
:
WindowProperty
{
Title
:
"Energy"
,
Width
:
1024
,
Height
:
768
,
},
WindowProperty
:
*
NewWindowProperty
(),
},
windowInfo
:
make
(
map
[
int32
]
*
TCefWindowInfo
),
windowSerial
:
1
,
...
...
cef/cef-views-framework-browser-window.go
浏览文件 @
a20c429f
...
...
@@ -57,33 +57,10 @@ func (m *browserWindow) appContextInitialized(app *TCEFApplication) {
BrowserWindow
.
Config
.
chromiumConfig
.
SetEnableOpenUrlTab
(
true
)
BrowserWindow
.
Config
.
chromiumConfig
.
SetEnableWindowPopup
(
true
)
}
component
:=
lcl
.
NewComponent
(
nil
)
m
.
vFrameBrowserWindow
=
&
ViewsFrameworkBrowserWindow
{
component
:
component
,
chromium
:
NewChromium
(
component
,
BrowserWindow
.
Config
.
chromiumConfig
),
windowComponent
:
NewWindowComponent
(
component
),
browserViewComponent
:
NewBrowserViewComponent
(
component
),
}
m
.
vFrameBrowserWindow
.
chromium
.
SetEnableMultiBrowserMode
(
true
)
m
.
vFrameBrowserWindow
=
NewViewsFrameworkBrowserWindow
(
&
BrowserWindow
.
Config
.
WindowProperty
,
BrowserWindow
.
Config
.
viewsFrameBrowserWindowOnEventCallback
)
m
.
chromium
=
m
.
vFrameBrowserWindow
.
chromium
m
.
vFrameBrowserWindow
.
registerPopupEvent
()
//m.vFrameBrowserWindow.registerDefaultEvent()
m
.
vFrameBrowserWindow
.
windowComponent
.
SetOnWindowCreated
(
func
(
sender
lcl
.
IObject
,
window
*
ICefWindow
)
{
if
m
.
chromium
.
CreateBrowserByBrowserViewComponent
(
BrowserWindow
.
Config
.
Url
,
m
.
vFrameBrowserWindow
.
browserViewComponent
)
{
m
.
vFrameBrowserWindow
.
windowComponent
.
AddChildView
(
m
.
vFrameBrowserWindow
.
browserViewComponent
)
m
.
vFrameBrowserWindow
.
windowComponent
.
SetTitle
(
BrowserWindow
.
Config
.
Title
)
window
.
CenterWindow
(
NewCefSize
(
BrowserWindow
.
Config
.
Width
,
BrowserWindow
.
Config
.
Height
))
m
.
vFrameBrowserWindow
.
browserViewComponent
.
RequestFocus
()
if
BrowserWindow
.
Config
.
Icon
!=
""
{
window
.
SetWindowAppIconFS
(
1
,
BrowserWindow
.
Config
.
Icon
)
}
if
BrowserWindow
.
Config
.
viewsFrameBrowserWindowOnEventCallback
!=
nil
{
BrowserWindow
.
browserEvent
.
chromium
=
m
.
chromium
BrowserWindow
.
Config
.
viewsFrameBrowserWindowOnEventCallback
(
BrowserWindow
.
browserEvent
,
m
.
vFrameBrowserWindow
)
}
window
.
Show
()
}
})
m
.
vFrameBrowserWindow
.
windowComponent
.
SetOnCanClose
(
func
(
sender
lcl
.
IObject
,
window
*
ICefWindow
,
aResult
*
bool
)
{
fmt
.
Println
(
"OnCanClose"
)
*
aResult
=
true
...
...
@@ -104,16 +81,62 @@ func (m *browserWindow) appContextInitialized(app *TCEFApplication) {
})
}
func
NewViewsFrameworkBrowserWindow
(
windowProperty
*
WindowProperty
)
*
ViewsFrameworkBrowserWindow
{
//创建一个 ViewsFrameworkBrowserWindow 窗口
func
NewViewsFrameworkBrowserWindow
(
windowProperty
*
WindowProperty
,
callback
viewsFrameBrowserWindowOnEventCallback
)
*
ViewsFrameworkBrowserWindow
{
component
:=
lcl
.
NewComponent
(
nil
)
vFrameBrowserWindow
:=
&
ViewsFrameworkBrowserWindow
{
m
:=
&
ViewsFrameworkBrowserWindow
{
windowProperty
:
windowProperty
,
component
:
component
,
chromium
:
NewChromium
(
component
,
BrowserWindow
.
Config
.
chromiumConfig
),
windowComponent
:
NewWindowComponent
(
component
),
browserViewComponent
:
NewBrowserViewComponent
(
component
),
}
return
vFrameBrowserWindow
m
.
chromium
.
SetEnableMultiBrowserMode
(
true
)
m
.
registerPopupEvent
()
m
.
windowComponent
.
SetOnWindowCreated
(
func
(
sender
lcl
.
IObject
,
window
*
ICefWindow
)
{
if
m
.
chromium
.
CreateBrowserByBrowserViewComponent
(
windowProperty
.
Url
,
m
.
browserViewComponent
)
{
m
.
windowComponent
.
AddChildView
(
m
.
browserViewComponent
)
m
.
windowComponent
.
SetTitle
(
windowProperty
.
Title
)
if
windowProperty
.
IsCenterWindow
{
window
.
CenterWindow
(
NewCefSize
(
windowProperty
.
Width
,
windowProperty
.
Height
))
}
if
windowProperty
.
IconFS
!=
""
{
m
.
windowComponent
.
SetWindowAppIconFS
(
1
,
windowProperty
.
IconFS
)
}
else
if
windowProperty
.
Icon
!=
""
{
m
.
windowComponent
.
SetWindowAppIcon
(
1
,
windowProperty
.
Icon
)
}
m
.
browserViewComponent
.
RequestFocus
()
if
callback
!=
nil
{
callback
(
BrowserWindow
.
browserEvent
,
m
)
}
m
.
windowComponent
.
Show
()
}
})
if
!
windowProperty
.
IsCenterWindow
{
m
.
windowComponent
.
SetOnGetInitialBounds
(
func
(
sender
lcl
.
IObject
,
window
*
ICefWindow
,
aResult
*
TCefRect
)
{
aResult
.
X
=
windowProperty
.
X
aResult
.
Y
=
windowProperty
.
Y
aResult
.
Width
=
windowProperty
.
Width
aResult
.
Height
=
windowProperty
.
Height
})
}
m
.
windowComponent
.
SetOnCanMinimize
(
func
(
sender
lcl
.
IObject
,
window
*
ICefWindow
,
aResult
*
bool
)
{
*
aResult
=
windowProperty
.
CanMinimize
})
m
.
windowComponent
.
SetOnCanResize
(
func
(
sender
lcl
.
IObject
,
window
*
ICefWindow
,
aResult
*
bool
)
{
*
aResult
=
windowProperty
.
CanResize
})
m
.
windowComponent
.
SetOnCanMaximize
(
func
(
sender
lcl
.
IObject
,
window
*
ICefWindow
,
aResult
*
bool
)
{
*
aResult
=
windowProperty
.
CanMaximize
})
m
.
windowComponent
.
SetOnCanClose
(
func
(
sender
lcl
.
IObject
,
window
*
ICefWindow
,
aResult
*
bool
)
{
*
aResult
=
windowProperty
.
CanClose
})
return
m
}
func
(
m
*
ViewsFrameworkBrowserWindow
)
CreateTopLevelWindow
()
{
m
.
windowComponent
.
CreateTopLevelWindow
()
}
func
(
m
*
ViewsFrameworkBrowserWindow
)
registerPopupEvent
()
{
...
...
@@ -129,31 +152,24 @@ func (m *ViewsFrameworkBrowserWindow) registerPopupEvent() {
}
if
!
result
{
result
=
true
component
:=
lcl
.
NewComponent
(
nil
)
vFrameBrowserWindow
:=
&
ViewsFrameworkBrowserWindow
{
component
:
component
,
chromium
:
NewChromium
(
component
,
BrowserWindow
.
Config
.
chromiumConfig
),
windowComponent
:
NewWindowComponent
(
component
),
browserViewComponent
:
NewBrowserViewComponent
(
component
),
wp
:=
&
WindowProperty
{
Title
:
BrowserWindow
.
Config
.
WindowProperty
.
Title
,
Url
:
beforePopupInfo
.
TargetUrl
,
CanMinimize
:
BrowserWindow
.
Config
.
WindowProperty
.
CanMinimize
,
CanMaximize
:
BrowserWindow
.
Config
.
WindowProperty
.
CanMaximize
,
CanResize
:
BrowserWindow
.
Config
.
WindowProperty
.
CanResize
,
CanClose
:
BrowserWindow
.
Config
.
WindowProperty
.
CanClose
,
IsCenterWindow
:
BrowserWindow
.
Config
.
WindowProperty
.
IsCenterWindow
,
IsShowModel
:
BrowserWindow
.
Config
.
WindowProperty
.
IsShowModel
,
WindowState
:
BrowserWindow
.
Config
.
WindowProperty
.
WindowState
,
Icon
:
BrowserWindow
.
Config
.
WindowProperty
.
Icon
,
IconFS
:
BrowserWindow
.
Config
.
WindowProperty
.
IconFS
,
X
:
BrowserWindow
.
Config
.
WindowProperty
.
X
,
Y
:
BrowserWindow
.
Config
.
WindowProperty
.
Y
,
Width
:
BrowserWindow
.
Config
.
WindowProperty
.
Width
,
Height
:
BrowserWindow
.
Config
.
WindowProperty
.
Height
,
}
vFrameBrowserWindow
.
chromium
.
SetEnableMultiBrowserMode
(
true
)
vFrameBrowserWindow
.
registerPopupEvent
()
vFrameBrowserWindow
.
windowComponent
.
SetOnWindowCreated
(
func
(
sender
lcl
.
IObject
,
window
*
ICefWindow
)
{
if
vFrameBrowserWindow
.
chromium
.
CreateBrowserByBrowserViewComponent
(
beforePopupInfo
.
TargetUrl
,
vFrameBrowserWindow
.
browserViewComponent
)
{
vFrameBrowserWindow
.
windowComponent
.
AddChildView
(
vFrameBrowserWindow
.
browserViewComponent
)
vFrameBrowserWindow
.
windowComponent
.
SetTitle
(
BrowserWindow
.
Config
.
Title
)
window
.
CenterWindow
(
NewCefSize
(
BrowserWindow
.
Config
.
Width
,
BrowserWindow
.
Config
.
Height
))
vFrameBrowserWindow
.
browserViewComponent
.
RequestFocus
()
if
BrowserWindow
.
Config
.
Icon
!=
""
{
window
.
SetWindowAppIconFS
(
1
,
BrowserWindow
.
Config
.
Icon
)
}
if
BrowserWindow
.
Config
.
viewsFrameBrowserWindowOnEventCallback
!=
nil
{
BrowserWindow
.
browserEvent
.
chromium
=
m
.
chromium
BrowserWindow
.
Config
.
viewsFrameBrowserWindowOnEventCallback
(
BrowserWindow
.
browserEvent
,
vFrameBrowserWindow
)
}
window
.
Show
()
}
})
vFrameBrowserWindow
:=
NewViewsFrameworkBrowserWindow
(
wp
,
nil
)
vFrameBrowserWindow
.
windowComponent
.
CreateTopLevelWindow
()
}
...
...
cef/window-info.go
浏览文件 @
a20c429f
...
...
@@ -45,11 +45,12 @@ type WindowProperty struct {
WindowState
types
.
TWindowState
//窗口状态
Title
string
//标题
Url
string
//默认打开URL
Icon
string
//窗口图标 加载本地图片或emfs内置图片
Icon
string
//窗口图标 加载本地图
IconFS
string
//窗口图标 加载emfs内置图片
CanMinimize
bool
//窗口 是否显示最小化按钮
CanMaximize
bool
//窗口 是否显示最大化按钮
CanResize
bool
//窗口 是否允许调整窗口大小
OnCanClose
bool
//窗口 关闭时是否关闭窗口
CanClose
bool
//窗口 关闭时是否关闭窗口
IsCenterWindow
bool
//窗口 是否居中显示
X
int32
//窗口 IsCenterWindow=false X坐标
Y
int32
//窗口 IsCenterWindow=false Y坐标
...
...
@@ -58,7 +59,17 @@ type WindowProperty struct {
}
func
NewWindowProperty
()
*
WindowProperty
{
return
&
WindowProperty
{}
return
&
WindowProperty
{
Title
:
"Energy"
,
Url
:
"about:blank"
,
CanMinimize
:
true
,
CanMaximize
:
true
,
CanResize
:
true
,
CanClose
:
true
,
IsCenterWindow
:
true
,
Width
:
1024
,
Height
:
768
,
}
}
func
(
m
*
TCefWindowInfo
)
Chromium
()
IChromiumProc
{
...
...
example/browser-linux/linux.go
浏览文件 @
a20c429f
...
...
@@ -22,7 +22,7 @@ func main() {
cefApp
:=
cef
.
NewApplication
(
config
)
//指定一个URL地址,或本地html文件目录
cef
.
BrowserWindow
.
Config
.
Url
=
"http://localhost:22022/index.html"
cef
.
BrowserWindow
.
Config
.
Icon
=
"resources/icon.png"
cef
.
BrowserWindow
.
Config
.
Icon
FS
=
"resources/icon.png"
cef
.
BrowserWindow
.
SetViewFrameBrowserInit
(
func
(
event
*
cef
.
BrowserEvent
,
window
*
cef
.
ViewsFrameworkBrowserWindow
)
{
fmt
.
Println
(
"cef.BrowserWindow.SetViewFrameBrowserInit"
,
window
)
fmt
.
Printf
(
"%+v
\n
"
,
window
)
...
...
example/browser-views-framework/views-framework.go
浏览文件 @
a20c429f
...
...
@@ -76,7 +76,7 @@ func main() {
})
windowComponent
.
SetOnCanResize
(
func
(
sender
lcl
.
IObject
,
window
*
cef
.
ICefWindow
,
aResult
*
bool
)
{
fmt
.
Println
(
"OnCanResize"
)
*
aResult
=
tru
e
*
aResult
=
fals
e
})
windowComponent
.
SetOnCanMaximize
(
func
(
sender
lcl
.
IObject
,
window
*
cef
.
ICefWindow
,
aResult
*
bool
)
{
fmt
.
Println
(
"OnCanMaximize"
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录