forked from cztomczak/cefpython
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdisplay_handler_cef1.pyx
More file actions
157 lines (149 loc) · 5.27 KB
/
display_handler_cef1.pyx
File metadata and controls
157 lines (149 loc) · 5.27 KB
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# Copyright (c) 2012-2014 The CEF Python authors. All rights reserved.
# License: New BSD License.
# Website: http://code.google.com/p/cefpython/
STATUSTYPE_TEXT = cef_types.STATUSTYPE_TEXT
STATUSTYPE_MOUSEOVER_URL = cef_types.STATUSTYPE_MOUSEOVER_URL
STATUSTYPE_KEYBOARD_FOCUS_URL = cef_types.STATUSTYPE_KEYBOARD_FOCUS_URL
cdef public void DisplayHandler_OnAddressChange(
CefRefPtr[CefBrowser] cefBrowser,
CefRefPtr[CefFrame] cefFrame,
CefString& cefURL
) except * with gil:
cdef PyBrowser pyBrowser
cdef PyFrame pyFrame
cdef str pyUrl
cdef object callback
try:
pyBrowser = GetPyBrowser(cefBrowser)
pyFrame = GetPyFrame(cefFrame)
pyUrl = CefToPyString(cefURL)
callback = pyBrowser.GetClientCallback("OnAddressChange")
if callback:
callback(pyBrowser, pyFrame, pyUrl)
return
except:
(exc_type, exc_value, exc_trace) = sys.exc_info()
sys.excepthook(exc_type, exc_value, exc_trace)
cdef public cpp_bool DisplayHandler_OnConsoleMessage(
CefRefPtr[CefBrowser] cefBrowser,
CefString& cefMessage,
CefString& cefSource,
int line
) except * with gil:
cdef PyBrowser pyBrowser
cdef str pyMessage
cdef str pySource
cdef object callback
try:
pyBrowser = GetPyBrowser(cefBrowser)
pyMessage = CefToPyString(cefMessage)
pySource = CefToPyString(cefSource)
callback = pyBrowser.GetClientCallback("OnConsoleMessage")
if callback:
return bool(callback(pyBrowser, pyMessage, pySource, line))
else:
return False
except:
(exc_type, exc_value, exc_trace) = sys.exc_info()
sys.excepthook(exc_type, exc_value, exc_trace)
cdef public void DisplayHandler_OnContentsSizeChange(
CefRefPtr[CefBrowser] cefBrowser,
CefRefPtr[CefFrame] cefFrame,
int width,
int height
) except * with gil:
cdef PyBrowser pyBrowser
cdef PyFrame pyFrame
cdef object callback
try:
pyBrowser = GetPyBrowser(cefBrowser)
pyFrame = GetPyFrame(cefFrame)
callback = pyBrowser.GetClientCallback("OnContentsSizeChange")
if callback:
callback(pyBrowser, pyFrame, width, height)
return
except:
(exc_type, exc_value, exc_trace) = sys.exc_info()
sys.excepthook(exc_type, exc_value, exc_trace)
cdef public void DisplayHandler_OnNavStateChange(
CefRefPtr[CefBrowser] cefBrowser,
cpp_bool canGoBack,
cpp_bool canGoForward
) except * with gil:
cdef PyBrowser pyBrowser
cdef object callback
try:
pyBrowser = GetPyBrowser(cefBrowser)
callback = pyBrowser.GetClientCallback("OnNavStateChange")
if callback:
callback(pyBrowser, canGoBack, canGoForward)
return
except:
(exc_type, exc_value, exc_trace) = sys.exc_info()
sys.excepthook(exc_type, exc_value, exc_trace)
cdef public void DisplayHandler_OnStatusMessage(
CefRefPtr[CefBrowser] cefBrowser,
CefString& cefText,
cef_types.cef_handler_statustype_t statusType
) except * with gil:
cdef PyBrowser pyBrowser
cdef str pyText
cdef object callback
try:
pyBrowser = GetPyBrowser(cefBrowser)
pyText = CefToPyString(cefText)
callback = pyBrowser.GetClientCallback("OnStatusMessage")
if callback:
callback(pyBrowser, pyText, statusType)
return
except:
(exc_type, exc_value, exc_trace) = sys.exc_info()
sys.excepthook(exc_type, exc_value, exc_trace)
cdef public void DisplayHandler_OnTitleChange(
CefRefPtr[CefBrowser] cefBrowser,
CefString& cefTitle
) except * with gil:
cdef PyBrowser pyBrowser
cdef str pyTitle
cdef object callback
cdef py_bool ret
try:
pyBrowser = GetPyBrowser(cefBrowser)
pyTitle = CefToPyString(cefTitle)
callback = pyBrowser.GetClientCallback("OnTitleChange")
if callback:
ret = bool(callback(pyBrowser, pyTitle))
IF UNAME_SYSNAME == "Windows":
if ret:
WindowUtils.SetTitle(pyBrowser, pyTitle)
WindowUtils.SetIcon(pyBrowser, icon="inherit")
return
else:
IF UNAME_SYSNAME == "Windows":
WindowUtils.SetTitle(pyBrowser, pyTitle)
WindowUtils.SetIcon(pyBrowser, icon="inherit")
return
except:
(exc_type, exc_value, exc_trace) = sys.exc_info()
sys.excepthook(exc_type, exc_value, exc_trace)
cdef public cpp_bool DisplayHandler_OnTooltip(
CefRefPtr[CefBrowser] cefBrowser,
CefString& cefText
) except * with gil:
cdef PyBrowser pyBrowser
cdef list pyText
cdef object callback
cdef py_bool ret
try:
pyBrowser = GetPyBrowser(cefBrowser)
pyText = [CefToPyString(cefText)] # In/Out
callback = pyBrowser.GetClientCallback("OnTooltip")
if callback:
ret = callback(pyBrowser, pyText)
PyToCefString(pyText[0], cefText);
return bool(ret)
else:
return False
except:
(exc_type, exc_value, exc_trace) = sys.exc_info()
sys.excepthook(exc_type, exc_value, exc_trace)