Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
energye
energy
提交
926609a9
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 搜索 >>
提交
926609a9
编写于
1月 27, 2023
作者:
yanghye
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
v2.3.67 tray,notice optimize
上级
dcfa6597
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
92 addition
and
72 deletion
+92
-72
cef/cef-browser-window.go
cef/cef-browser-window.go
+5
-5
cef/cef-component_windows.go
cef/cef-component_windows.go
+6
-2
cef/cef-tray-cef-commponent_windows.go
cef/cef-tray-cef-commponent_windows.go
+8
-13
cef/cef-tray-commponent.go
cef/cef-tray-commponent.go
+37
-12
cef/cef-tray-lcl-commponent.go
cef/cef-tray-lcl-commponent.go
+6
-14
cef/cef-tray-sys-commponent.go
cef/cef-tray-sys-commponent.go
+11
-0
cef/cef-tray-views-frame-commponent_windows.go
cef/cef-tray-views-frame-commponent_windows.go
+13
-13
consts/consts.go
consts/consts.go
+1
-1
example/dev-test/combination-sundry-browser/src/browser-process.go
...ev-test/combination-sundry-browser/src/browser-process.go
+3
-7
example/dev-test/lcl-browser/lcl-browser.go
example/dev-test/lcl-browser/lcl-browser.go
+1
-3
example/dev-test/vf-browser/vf-browser.go
example/dev-test/vf-browser/vf-browser.go
+1
-2
未找到文件。
cef/cef-browser-window.go
浏览文件 @
926609a9
...
...
@@ -61,7 +61,7 @@ type WindowProperty struct {
//定义了常用函数
type
IBrowserWindow
interface
{
Id
()
int32
//窗口ID
Handle
()
types
.
HWND
//
Handle
()
types
.
HWND
//
窗口句柄
Show
()
//显示窗口
Hide
()
//隐藏窗口
Maximize
()
//窗口最大化
...
...
@@ -100,10 +100,10 @@ type IBrowserWindow interface {
SetCenterWindow
(
value
bool
)
//设置窗口居中
ShowTitle
()
//显示窗口标题栏
HideTitle
()
//隐藏窗口标题栏
SetDefaultInTaskBar
()
//
窗口默认在任务栏上显示图标
SetShowInTaskBar
()
//强制窗口在任务栏上显示
图标
SetNotInTaskBar
()
//强制
不在任务栏上显示窗口图标
NewCefTray
(
width
,
height
int32
,
url
string
)
ITray
//创建托盘
CEF自定义html
SetDefaultInTaskBar
()
//
默认窗口在任务栏上显示按钮
SetShowInTaskBar
()
//强制窗口在任务栏上显示
按钮
SetNotInTaskBar
()
//强制
窗口不在任务栏上显示按钮
NewCefTray
(
width
,
height
int32
,
url
string
)
ITray
//创建托盘
LCL+CEF(使用web端技术自定义实现)
NewSysTray
()
ITray
//systray系统原生
}
...
...
cef/cef-component_windows.go
浏览文件 @
926609a9
...
...
@@ -11,7 +11,9 @@
package
cef
//只适用于windows的无菜单托盘
//只适用于windows的无菜单托盘, 需使用web端技术实现
//
//不支持Linux和MacOSX
func
(
m
*
LCLBrowserWindow
)
NewCefTray
(
width
,
height
int32
,
url
string
)
ITray
{
if
m
==
nil
{
return
nil
...
...
@@ -22,7 +24,9 @@ func (m *LCLBrowserWindow) NewCefTray(width, height int32, url string) ITray {
return
m
.
tray
}
//只适用于windows的无菜单托盘
//只适用于windows的无菜单托盘, 需使用web端技术实现
//
//不支持Linux和MacOSX
func
(
m
*
ViewsFrameworkBrowserWindow
)
NewCefTray
(
width
,
height
int32
,
url
string
)
ITray
{
if
m
==
nil
{
return
nil
...
...
cef/cef-tray-cef-commponent_windows.go
浏览文件 @
926609a9
...
...
@@ -148,20 +148,15 @@ func (m *CEFTray) onMouseEvent() {
})
}
//设置托盘气泡
//title 气泡标题
//content 气泡内容
//显示系统通知
//
//title 标题
//
//content 内容
//
//timeout 显示时间(毫秒)
func
(
m
*
CEFTray
)
SetBalloon
(
title
,
content
string
,
timeout
int32
)
ITray
{
m
.
trayIcon
.
SetBalloonTitle
(
title
)
m
.
trayIcon
.
SetBalloonHint
(
content
)
m
.
trayIcon
.
SetBalloonTimeout
(
timeout
)
return
m
}
//显示托盘气泡
func
(
m
*
CEFTray
)
ShowBalloon
()
{
m
.
trayIcon
.
ShowBalloonHint
()
func
(
m
*
CEFTray
)
Notice
(
title
,
content
string
,
timeout
int32
)
{
notification
(
m
.
trayIcon
,
title
,
content
,
timeout
)
}
func
(
m
*
CEFTray
)
createTrayWindow
()
{
...
...
cef/cef-tray-commponent.go
浏览文件 @
926609a9
...
...
@@ -9,6 +9,7 @@
package
cef
import
(
"energye/notice"
"energye/systray"
"github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl/types"
...
...
@@ -33,18 +34,19 @@ type TrayICONClick func()
//
//4. SysTray 对Windows、MacOSX和Linux支持较好
type
ITray
interface
{
SetTitle
(
title
string
)
//SetTitle 设置标题
Show
()
//Show 显示/启动 托盘
close
()
//
SetOnClick
(
fn
TrayICONClick
)
//SetOnClick 单击事件
SetOnDblClick
(
fn
TrayICONClick
)
//SetOnDblClick 双击事件
SetIconFS
(
iconResourcePath
string
)
//SetIconFS 设置托盘图标
SetIcon
(
iconResourcePath
string
)
//SetIcon 设置托盘图标
SetHint
(
value
string
)
//SetHint 设置托盘hint(鼠标移动到托盘图标显示的文字)
AsSysTray
()
*
SysTray
//AsSysTray 尝试转换为 SysTray 组件托盘,如果创建的是其它类型托盘返回nil
AsViewsFrameTray
()
*
ViewsFrameTray
//AsViewsFrameTray 尝试转换为 views framework 组件托盘, 如果创建的是其它类型托盘返回nil
AsCEFTray
()
*
CEFTray
//AsCEFTray 尝试转换为 LCL+CEF 组件托盘, 如果创建的是其它类型托盘返回nil
AsLCLTray
()
*
LCLTray
//AsLCLTray 尝试转换为 LCL 组件托盘, 如果创建的是其它类型托盘返回nil
SetTitle
(
title
string
)
//SetTitle 设置标题
Show
()
//Show 显示/启动 托盘
close
()
//
SetOnClick
(
fn
TrayICONClick
)
//SetOnClick 单击事件
SetOnDblClick
(
fn
TrayICONClick
)
//SetOnDblClick 双击事件
SetIconFS
(
iconResourcePath
string
)
//SetIconFS 设置托盘图标
SetIcon
(
iconResourcePath
string
)
//SetIcon 设置托盘图标
SetHint
(
value
string
)
//SetHint 设置托盘hint(鼠标移动到托盘图标显示的文字)
AsSysTray
()
*
SysTray
//AsSysTray 尝试转换为 SysTray 组件托盘,如果创建的是其它类型托盘返回nil
AsViewsFrameTray
()
*
ViewsFrameTray
//AsViewsFrameTray 尝试转换为 views framework 组件托盘, 如果创建的是其它类型托盘返回nil
AsCEFTray
()
*
CEFTray
//AsCEFTray 尝试转换为 LCL+CEF 组件托盘, 如果创建的是其它类型托盘返回nil
AsLCLTray
()
*
LCLTray
//AsLCLTray 尝试转换为 LCL 组件托盘, 如果创建的是其它类型托盘返回nil
Notice
(
title
,
content
string
,
timeout
int32
)
//Notice 托盘系统通知
}
//LCLTray LCL组件 托盘
...
...
@@ -87,3 +89,26 @@ type SysTray struct {
rClick
func
(
menu
systray
.
IMenu
)
start
,
stop
func
()
}
func
notification
(
tray
lcl
.
IComponent
,
title
,
content
string
,
timeout
int32
)
{
var
lclTrayNotice
*
lcl
.
TTrayIcon
if
tray
!=
nil
{
lclTrayNotice
=
tray
.
(
*
lcl
.
TTrayIcon
)
}
var
lclNotice
=
func
()
{
lclTrayNotice
.
SetBalloonTitle
(
title
)
lclTrayNotice
.
SetBalloonHint
(
content
)
lclTrayNotice
.
SetBalloonTimeout
(
timeout
)
lclTrayNotice
.
ShowBalloonHint
()
}
var
sysNotice
=
func
()
{
notify
:=
notice
.
NewNotification
(
title
,
content
)
notify
.
SetTimeout
(
timeout
)
notice
.
SendNotification
(
notify
)
}
if
lclTrayNotice
!=
nil
{
lclNotice
()
}
else
{
sysNotice
()
}
}
cef/cef-tray-lcl-commponent.go
浏览文件 @
926609a9
...
...
@@ -112,23 +112,15 @@ func (m *LCLTray) SetTitle(title string) {
m
.
trayIcon
.
SetHint
(
title
)
}
//
设置托盘气泡
//
显示系统通知
//
//title
气泡
标题
//title
标题
//
//content
气泡
内容
//content
内容
//
//timeout 显示时间(毫秒)
func
(
m
*
LCLTray
)
SetBalloon
(
title
,
content
string
,
timeout
int32
)
ITray
{
m
.
trayIcon
.
SetBalloonTitle
(
title
)
m
.
trayIcon
.
SetBalloonHint
(
content
)
m
.
trayIcon
.
SetBalloonTimeout
(
timeout
)
return
m
}
//显示托盘气泡
func
(
m
*
LCLTray
)
ShowBalloon
()
{
m
.
trayIcon
.
ShowBalloonHint
()
//timeout 显示时间(毫秒)
func
(
m
*
LCLTray
)
Notice
(
title
,
content
string
,
timeout
int32
)
{
notification
(
m
.
trayIcon
,
title
,
content
,
timeout
)
}
//创建一个菜单,还未添加到托盘
...
...
cef/cef-tray-sys-commponent.go
浏览文件 @
926609a9
...
...
@@ -155,6 +155,17 @@ func (m *SysTray) SetTitle(title string) {
}
}
//显示系统通知
//
//title 标题
//
//content 内容
//
//timeout 显示时间(毫秒)
func
(
m
*
SysTray
)
Notice
(
title
,
content
string
,
timeout
int32
)
{
notification
(
nil
,
title
,
content
,
timeout
)
}
//SetIconFS 设置托盘图标
func
(
m
*
SysTray
)
SetIconFS
(
iconResourcePath
string
)
{
if
emfs
.
IsExist
(
iconResourcePath
)
{
...
...
cef/cef-tray-views-frame-commponent_windows.go
浏览文件 @
926609a9
...
...
@@ -12,6 +12,7 @@
package
cef
import
(
"github.com/energye/energy/common"
"github.com/energye/energy/common/assetserve"
"github.com/energye/energy/consts"
"github.com/energye/energy/ipc"
...
...
@@ -193,20 +194,19 @@ func (m *ViewsFrameTray) SetHint(value string) {
func
(
m
*
ViewsFrameTray
)
SetTitle
(
title
string
)
{
}
//设置托盘气泡
//title 气泡标题
//content 气泡内容
//显示系统通知
//
//title 标题
//
//content 内容
//
//timeout 显示时间(毫秒)
func
(
m
*
ViewsFrameTray
)
SetBalloon
(
title
,
content
string
,
timeout
int32
)
ITray
{
m
.
trayIcon
.
SetBalloonTitle
(
title
)
m
.
trayIcon
.
SetBalloonHint
(
content
)
m
.
trayIcon
.
SetBalloonTimeout
(
timeout
)
return
m
}
//显示托盘气泡
func
(
m
*
ViewsFrameTray
)
ShowBalloon
()
{
m
.
trayIcon
.
ShowBalloonHint
()
func
(
m
*
ViewsFrameTray
)
Notice
(
title
,
content
string
,
timeout
int32
)
{
if
common
.
IsWindows
()
{
notification
(
m
.
trayIcon
,
title
,
content
,
timeout
)
}
else
{
notification
(
nil
,
title
,
content
,
timeout
)
}
}
//设置托盘图标
...
...
consts/consts.go
浏览文件 @
926609a9
...
...
@@ -580,7 +580,7 @@ const (
WOD_NEW_PICTURE_IN_PICTURE
)
//
Browser Window Type
//
WINDOW_TYPE 窗口类型
type
WINDOW_TYPE
=
types
.
Int8
const
(
...
...
example/dev-test/combination-sundry-browser/src/browser-process.go
浏览文件 @
926609a9
...
...
@@ -403,8 +403,6 @@ func AppBrowserInit() {
})
//添加子窗口初始化
cef
.
BrowserWindow
.
SetBrowserInitAfter
(
func
(
browserWindow
cef
.
IBrowserWindow
)
{
lclTray
(
browserWindow
)
return
//在这里创建 一些子窗口 子组件 等
//托盘
if
common
.
IsWindows
()
{
...
...
@@ -427,10 +425,9 @@ func lclCefTray(browserWindow cef.IBrowserWindow) {
tray
.
SetOnClick
(
func
()
{
fmt
.
Println
(
"SetOnClick"
)
})
asCEFTray
.
SetBalloon
(
"气泡标题"
,
"气泡内容"
,
2000
)
ipc
.
IPC
.
Browser
()
.
On
(
"tray-show-balloon"
,
func
(
context
ipc
.
IIPCContext
)
{
fmt
.
Println
(
"tray-show-balloon"
)
asCEFTray
.
ShowBalloon
(
)
asCEFTray
.
Notice
(
"气泡标题"
,
"气泡内容"
,
2000
)
asCEFTray
.
Hide
()
})
ipc
.
IPC
.
Browser
()
.
On
(
"tray-show-main-window"
,
func
(
context
ipc
.
IIPCContext
)
{
...
...
@@ -470,7 +467,8 @@ func lclTray(browserWindow cef.IBrowserWindow) {
lcl
.
ShowMessage
(
"子菜单点击 提示消息"
)
}))
tray
.
AddMenuItem
(
"显示气泡"
,
func
()
{
tray
.
ShowBalloon
()
//linux下有些问题
tray
.
Notice
(
"气泡标题"
,
"气泡内容"
,
2000
)
})
tray
.
AddMenuItem
(
"显示/隐藏"
,
func
()
{
vis
:=
window
.
Visible
()
...
...
@@ -480,8 +478,6 @@ func lclTray(browserWindow cef.IBrowserWindow) {
tray
.
AddMenuItem
(
"退出"
,
func
()
{
browserWindow
.
CloseBrowserWindow
()
})
//linux下有些问题
tray
.
SetBalloon
(
"气泡标题"
,
"气泡内容"
,
2000
)
//托盘 end
tray
.
Show
()
}
...
...
example/dev-test/lcl-browser/lcl-browser.go
浏览文件 @
926609a9
...
...
@@ -10,7 +10,6 @@ package main
import
(
"embed"
"energye/notice"
"fmt"
"github.com/energye/energy/cef"
"github.com/energye/energy/common/assetserve"
...
...
@@ -73,7 +72,6 @@ func main() {
})
cef
.
BrowserWindow
.
SetBrowserInitAfter
(
func
(
window
cef
.
IBrowserWindow
)
{
sysTray
(
window
)
//sys_tray.TrayMain()
return
})
cef
.
SetBrowserProcessStartAfterCallback
(
func
(
b
bool
)
{
...
...
@@ -101,7 +99,7 @@ func sysTray(browserWindow cef.IBrowserWindow) {
check
.
Check
()
not
:=
tray
.
AddMenuItem
(
"通知"
)
not
.
Click
(
func
()
{
notice
.
SendNotification
(
notice
.
NewNotification
(
"标题"
,
"内容内容内容内容内容内容内容内容内容内容内容内容内容内容
\n
内容内容内容内容内容内容内容内容内容内容内容内容内容内"
)
)
sysTray
.
Notice
(
"标题"
,
"内容内容内容内容内容内容内容内容内容内容内容内容内容内容
\n
内容内容内容内容内容内容内容内容内容内容内容内容内容内"
,
1000
)
})
enable
:=
tray
.
AddMenuItem
(
"启用/禁用"
)
enable
.
Click
(
func
()
{
...
...
example/dev-test/vf-browser/vf-browser.go
浏览文件 @
926609a9
...
...
@@ -10,7 +10,6 @@ package main
import
(
"embed"
"energye/notice"
"fmt"
"github.com/energye/energy/cef"
"github.com/energye/energy/common"
...
...
@@ -102,7 +101,7 @@ func sysTray(browserWindow cef.IBrowserWindow) {
check
.
Check
()
not
:=
tray
.
AddMenuItem
(
"通知"
)
not
.
Click
(
func
()
{
notice
.
SendNotification
(
notice
.
NewNotification
(
"标题"
,
"notice 是一个跨平台的系统通知库"
)
)
tray
.
Notice
(
"标题"
,
"内notice 是一个跨平台的系统通知库
\n
notice 是一个跨平台的系统通知库"
,
1000
)
})
enable
:=
tray
.
AddMenuItem
(
"启用/禁用"
)
enable
.
Click
(
func
()
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录