-
Notifications
You must be signed in to change notification settings - Fork 28
/
aux_devtools.go
66 lines (57 loc) · 1.88 KB
/
aux_devtools.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
//----------------------------------------
//
// 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 (
"fmt"
"github.com/energye/energy/v2/common"
"github.com/energye/golcl/lcl"
)
const (
devToolsName = "DevTools"
)
type devToolsWindow struct {
*lcl.TForm
parent ICEFWindowParent
}
func updateBrowserDevTools(window IBrowserWindow, browser *ICefBrowser, title string) {
if window.IsLCL() {
window := window.AsLCLBrowserWindow().BrowserWindow()
if window.GetAuxTools() != nil && window.GetAuxTools().DevTools() != nil {
window.GetAuxTools().DevTools().SetCaption(fmt.Sprintf("%s - %s", devToolsName, browser.MainFrame().Url()))
}
}
}
func (m *ICefBrowser) createBrowserDevTools(currentWindow IBrowserWindow, currentChromium ICEFChromiumBrowser) {
if currentWindow.IsLCL() {
if common.IsWindows() {
// 如果开启开发者工具, 需要在IU线程中创建window
currentWindow.AsLCLBrowserWindow().BrowserWindow().createAuxTools()
devTools := currentWindow.AsLCLBrowserWindow().BrowserWindow().GetAuxTools()
if devTools.DevTools() == nil {
devTools.SetDevTools(createDevtoolsWindow(currentWindow.AsLCLBrowserWindow().BrowserWindow(), currentChromium))
devTools.DevTools().SetCaption(fmt.Sprintf("%s - %s", devToolsName, m.MainFrame().Url()))
}
RunOnMainThread(func() { // show window, run is main ui thread
devTools.DevTools().Show()
})
} else {
currentChromium.Chromium().ShowDevTools(nil)
}
} else if currentWindow.IsViewsFramework() {
currentChromium.Chromium().ShowDevTools(nil)
}
}
func (m *devToolsWindow) WindowParent() ICEFWindowParent {
return m.parent
}
func (m *devToolsWindow) SetWindowParent(parent ICEFWindowParent) {
m.parent = parent
}