-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathultralight_overlay.cpp
100 lines (86 loc) · 2.63 KB
/
ultralight_overlay.cpp
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
#include "ultralight_hb.h"
#include <AppCore/Overlay.h>
using namespace ultralight;
DEFINE_GETCLASSID(OVERLAY)
/*
CONSTRUCTOR Create(window, width, height, x,y)
ACCESS view()
ACCESS width()
ACCESS height()
ACCESS x()
ACCESS y()
METHOD hidden() SETGET
METHOD focus() SETGET
METHOD moveTo(x,y)
METHOD Resize(width,height)
ACCESS needsRepaint()
*/
HB_FUNC( ULTRALIGHT_OVERLAY_CREATE ) {
Window *win = (Window*)hb_parUltralight(1);
View *view = (View*)hb_parUltralight(2);
RefPtr<Overlay> overlay;
if(view)
overlay = (Overlay::Create(*win,*view,hb_parni(3), hb_parni(4)));
else
overlay = (Overlay::Create(*win,hb_parni(2), hb_parni(3),hb_parni(4), hb_parni(5)));
initUltralightObj(overlay.get(), GETCLASSID(OVERLAY));
}
FORWARD_GETCLASSID(VIEW)
HB_FUNC( ULTRALIGHT_OVERLAY_VIEW ) {
Overlay* overlay = (Overlay*)hb_selfUltralight();
hb_retUltralight((RefCounted*)overlay->view().ptr(),GETCLASSID(VIEW));
}
HB_FUNC( ULTRALIGHT_OVERLAY_WIDTH ) {
Overlay* overlay = (Overlay*)hb_selfUltralight();
hb_retni(overlay->width());
}
HB_FUNC( ULTRALIGHT_OVERLAY_HEIGHT ) {
Overlay* overlay = (Overlay*)hb_selfUltralight();
hb_retni(overlay->height());
}
HB_FUNC( ULTRALIGHT_OVERLAY_X ) {
Overlay* overlay = (Overlay*)hb_selfUltralight();
hb_retni(overlay->x());
}
HB_FUNC( ULTRALIGHT_OVERLAY_Y ) {
Overlay* overlay = (Overlay*)hb_selfUltralight();
hb_retni(overlay->y());
}
HB_FUNC( ULTRALIGHT_OVERLAY_HIDDEN ) {
Overlay* overlay = (Overlay*)hb_selfUltralight();
if(hb_pcount()>0) {
if(hb_parl(1))
overlay->Hide();
else
overlay->Show();
hb_retl(hb_parl(1));
} else {
hb_retl(overlay->is_hidden()? HB_TRUE : HB_FALSE);
}
}
HB_FUNC( ULTRALIGHT_OVERLAY_HAS_FOCUS ) {
Overlay* overlay = (Overlay*)hb_selfUltralight();
if(hb_pcount()>0) {
if(hb_parl(1))
overlay->Focus();
else
overlay->Unfocus();
hb_retl(hb_parl(1));
} else {
hb_retl(overlay->has_focus());
}
}
HB_FUNC( ULTRALIGHT_OVERLAY_MOVETO ) {
Overlay* overlay = (Overlay*)hb_selfUltralight();
overlay->MoveTo(hb_parni(1),hb_parni(2));
hb_ret();
}
HB_FUNC( ULTRALIGHT_OVERLAY_RESIZE ) {
Overlay* overlay = (Overlay*)hb_selfUltralight();
overlay->Resize(hb_parni(1),hb_parni(2));
hb_ret();
}
HB_FUNC( ULTRALIGHT_OVERLAY_NEEDSREPAINT ) {
Overlay* overlay = (Overlay*)hb_selfUltralight();
hb_retl(overlay->NeedsRepaint()? HB_TRUE : HB_FALSE);
}