mirror of
https://gitee.com/energye/energy.git
synced 2024-12-05 13:17:54 +08:00
U: masking for lcl
This commit is contained in:
parent
b492a5a1c4
commit
e63bdffc8c
@ -20,15 +20,15 @@ func Create(window *cef.LCLBrowserWindow) *Mask {
|
||||
var mask = new(Mask)
|
||||
// 创建一个 form 或 panel、或其它任意 IWinControl 组件模拟遮罩
|
||||
// form 可以设置透明度
|
||||
mask.maskForm = lcl.NewForm(window) // form有窗口句柄
|
||||
mask.maskForm.SetParent(window.WindowParent()) // 显示在浏览器窗口组件里的一个子窗口
|
||||
mask.maskForm.SetBorderStyle(types.BsNone) // 因为是窗口所以要去掉标签栏,效果和panel差不多了
|
||||
mask.maskForm.SetAlign(types.AlClient) //铺满整个主窗口
|
||||
mask.maskForm = lcl.NewForm(window) // form有窗口句柄
|
||||
mask.maskForm.SetParent(window) // 显示在浏览器窗口组件里的一个子窗口
|
||||
mask.maskForm.SetBorderStyle(types.BsNone) // 因为是窗口所以要去掉标签栏,效果和panel差不多了
|
||||
mask.maskForm.SetAlign(types.AlClient) //铺满整个主窗口
|
||||
//mask.maskForm.SetColor(colors.ClSkyblue)
|
||||
// 这是透明设置,只能form, 但是它的子组件也会跟着半透明
|
||||
mask.maskForm.SetAlphaBlend(true) //透明
|
||||
mask.maskForm.SetAlphaBlendValue(200) //透明度
|
||||
mask.maskForm.SetFormStyle(types.FsStayOnTop) //置顶??
|
||||
mask.maskForm.SetAlphaBlend(true) //透明
|
||||
mask.maskForm.SetAlphaBlendValue(200) //透明度
|
||||
mask.maskForm.BringToFront()
|
||||
// 创建一个gif播放组件
|
||||
mask.gifPlay = gifanim.NewGIFAnimate(mask.maskForm)
|
||||
mask.gifPlay.SetParent(mask.maskForm)
|
||||
|
@ -38,13 +38,12 @@ func main() {
|
||||
if window.IsLCL() {
|
||||
bw := window.AsLCLBrowserWindow().BrowserWindow()
|
||||
part := bw.WindowParent()
|
||||
if common.IsLinux() {
|
||||
if common.IsLinux() { // Linux 只能在Gtk2使用,还有些问题。不能像 windows 和 MacOS 那样
|
||||
part.RevertCustomAnchors()
|
||||
part.SetWidth(1)
|
||||
part.SetHeight(1)
|
||||
}
|
||||
maskForm := mask.Create(bw)
|
||||
maskForm.Show()
|
||||
// 页面加载进度, 控制何时关闭遮罩
|
||||
bw.Chromium().SetOnLoadingProgressChange(func(sender lcl.IObject, browser *cef.ICefBrowser, progress float64) {
|
||||
v := int(progress * 100)
|
||||
@ -68,6 +67,12 @@ func main() {
|
||||
}
|
||||
})
|
||||
})
|
||||
bw.Chromium().SetOnBeforeBrowser(func(sender lcl.IObject, browser *cef.ICefBrowser, frame *cef.ICefFrame, request *cef.ICefRequest, userGesture, isRedirect bool) bool {
|
||||
cef.RunOnMainThread(func() {
|
||||
maskForm.Show()
|
||||
})
|
||||
return false
|
||||
})
|
||||
}
|
||||
})
|
||||
//运行应用
|
||||
|
Loading…
Reference in New Issue
Block a user