1topic "Ctrl";
2[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class]
3[l288;2 $$2,2#27521748481378242620020725143825:desc]
4[0 $$3,0#96390100711032703541132217272105:end]
5[H6;0 $$4,0#05600065144404261032431302351956:begin]
6[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item]
7[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement]
8[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param]
9[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
10[b42;2 $$9,9#13035079074754324216151401829390:normal]
11[2 $$0,0#00000000000000000000000000000000:Default]
12[{_}%EN-US
13[ {{10000@(113.42.0) [s0; [*@7;4 Ctrl]]}}&]
14[s3;%- &]
15[s1;:Ctrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 Ctrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Pte][3 <
16][*3 Ctrl][3 >_]&]
17[s9; (Derivation from Pte<Ctrl> allows Ctrl to be pointed to by Ptr<Ctrl>&]
18[s0; &]
19[s0; This the base class of GUI widgets hierarchy (that is why U`+`+
20widgets are also named `"Ctrls`").&]
21[s3; &]
22[s0;%- &]
23[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&]
24[s3; &]
25[s0;%- enum_[* PlacementConstants]&]
26[s2;b17;a17; Constants used in logical coordinates.&]
27[s7;i1120;a17;:Ctrl`:`:CENTER: [%-*C@3 CENTER]-|Center alignment.&]
28[s7;i1120;a17;:Ctrl`:`:LEFT: [%-*C@3 LEFT]-|Left alignment.&]
29[s7;i1120;a17;:Ctrl`:`:RIGHT: [%-*C@3 RIGHT]-|Right alignment.&]
30[s7;i1120;a17;:Ctrl`:`:TOP: [%-*C@3 TOP]-|Equal to LEFT (better name
31for vertical coordinate).&]
32[s7;i1120;a17;:Ctrl`:`:BOTTOM: [%-*C@3 BOTTOM]-|Equal to RIGHT (better
33name for vertical coordinate)&]
34[s7;i1120;a17;:Ctrl`:`:SIZE: [%-*C@3 SIZE]-|Size alignment.&]
35[s7;i1120;a17;:Ctrl`:`:MINSIZE: [%-*C@3 MINSIZE]-|Value is determined
36using GetMinSize.&]
37[s7;i1120;a17;:Ctrl`:`:MAXSIZE: [%-*C@3 MAXSIZE]-|Value is determined
38using GetMaxSize.&]
39[s7;i1120;a17;:Ctrl`:`:STDSIZE: [%-*C@3 STDSIZE]-|Value is determined
40using Get&]
41[s3; &]
42[s4; &]
43[s0;%- enum_[* StateReason]&]
44[s2;b17;a17; Arguments of State virtual method.&]
45[s7;i1120;a17;:Ctrl`:`:FOCUS: [%-*C@3 FOCUS]-|Ctrl got/lost focus.&]
46[s7;i1120;a17;:Ctrl`:`:ACTIVATE: [%-*C@3 ACTIVATE]-|Ctrl was activated.&]
47[s7;i1120;a17;:Ctrl`:`:DEACTIVATE: [%-*C@3 DEACTIVATE]-|Ctrl was deactivated.&]
48[s7;i1120;a17;:Ctrl`:`:SHOW: [%-*C@3 SHOW]-|Ctrl visibility changed.&]
49[s7;i1120;a17;:Ctrl`:`:ENABLE: [%-*C@3 ENABLE]-|Ctrl was enabled/disable.&]
50[s7;i1120;a17;:Ctrl`:`:EDITABLE: [%-*C@3 EDITABLE]-|Ctrl editable status
51changed.&]
52[s7;i1120;a17;:Ctrl`:`:OPEN: [%-*C@3 OPEN]-|Ctrl was open (its top`-level
53Ctrl was open on screen).&]
54[s7;i1120;a17;:Ctrl`:`:CLOSE: [%-*C@3 CLOSE]-|Ctrl was closed (its top`-level
55Ctrl was closed).&]
56[s3; &]
57[s4; &]
58[s0;%- enum_[* MouseEvents]&]
59[s2;b17;a17; Constants that make up [*/ event] argument of [*/ MouseEvent]
60and [*/ FrameMouseEvent] virtual methods. Value is combination
61of button and action bit fields.&]
62[s2;b17;a17; &]
63[s0;l160; [* Field masks]&]
64[s7;i1120;a17;:Ctrl`:`:BUTTON: [%-*C@3 BUTTON]-|Mask for button field.&]
65[s7;i1120;a17;:Ctrl`:`:ACTION: [%-*C@3 ACTION]-|Mask for action field.
66&]
67[s0; &]
68[s0;l160; [* Actions]&]
69[s7;i1120;a17;:Ctrl`:`:MOUSEENTER: [%-*C@3 MOUSEENTER]-|Mouse entered
70Ctrl.&]
71[s7;i1120;a17;:Ctrl`:`:MOUSEMOVE: [%-*C@3 MOUSEMOVE]-|Mouse moved over
72Ctrl.&]
73[s7;i1120;a17;:Ctrl`:`:MOUSELEAVE: [%-*C@3 MOUSELEAVE]-|Mouse left Ctrl.&]
74[s7;i1120;a17;:Ctrl`:`:CURSORIMAGE: [%-*C@3 CURSORIMAGE]-|Cursor image
75has to be determined (method should respond with image).&]
76[s7;i1120;a17;:Ctrl`:`:MOUSEWHEEL: [%-*C@3 MOUSEWHEEL]-|Mouse wheel
77rotated.&]
78[s7;i1120;a17;:Ctrl`:`:DOWN: [%-*C@3 DOWN]-|Mouse button was pressed.&]
79[s7;i1120;a17;:Ctrl`:`:UP: [%-*C@3 UP]-|Mouse button was released.&]
80[s7;i1120;a17;:Ctrl`:`:DOUBLE: [%-*C@3 DOUBLE]-|Mouse button was double`-clicked.&]
81[s7;i1120;a17;:Ctrl`:`:REPEAT: [%-*C@3 REPEAT]-|When mouse button is
82pressed for a while, U`+`+ imitates keyboard autorepeat sending
83this message.&]
84[s0;l160; [* Buttons] &]
85[s7;i1120;a17; [%-*C@3 LEFT]-|Left button. (This constant is not defined
86in MouseEvents, instead LEFT from Placements Constants is used).&]
87[s7;i1120;a17; [%-*C@3 RIGHT]-|Left button. (This constant is not defined
88in MouseEvents, instead LEFT from Placements Constants is used).&]
89[s0;l160; [* Combinations]&]
90[s7;i1120;a17;:Ctrl`:`:LEFTDOWN: [%-*C@3 LEFTDOWN]-|Left button pressed.&]
91[s7;i1120;a17;:Ctrl`:`:LEFTDOUBLE: [%-*C@3 LEFTDOUBLE]-|Left button
92double pressed.&]
93[s7;i1120;a17;:Ctrl`:`:LEFTREPEAT: [%-*C@3 LEFTREPEAT]-|Left button
94autorepeat.&]
95[s7;i1120;a17;:Ctrl`:`:LEFTUP: [%-*C@3 LEFTUP]-|Left button released.&]
96[s7;i1120;a17;:Ctrl`:`:RIGHTDOWN: [%-*C@3 RIGHTDOWN]-|Right button pressed.&]
97[s7;i1120;a17;:Ctrl`:`:RIGHTDOUBLE: [%-*C@3 RIGHTDOUBLE]-|Right button
98double pressed.&]
99[s7;i1120;a17;:Ctrl`:`:RIGHTREPEAT: [%-*C@3 RIGHTREPEAT]-|Right button
100autorepeat.&]
101[s7;i1120;a17;:Ctrl`:`:RIGHTUP: [%-*C@3 RIGHTUP]-|Right button released.&]
102[s3; &]
103[s4; &]
104[s0;%- enum_`{_[*@3 NOBACKPAINT], [*@3 FULLBACKPAINT], [*@3 TRANSPARENTBACKPAINT],
105[*@3 EXCLUDEPAINT]_`}&]
106[s2;b17;a17; These constants are parameters of BackPaint method.
107They determine back`-plane drawing style.&]
108[s7;i1120;a17;:Ctrl`:`:NOBACKPAINT: [%-*C@3 NOBACKPAINT]-|No backpaint
109is used.&]
110[s7;i1120;a17;:Ctrl`:`:FULLBACKPAINT: [%-*C@3 FULLBACKPAINT]-|Whole
111area of Ctrl is backpainted.&]
112[s7;i1120;a17;:Ctrl`:`:TRANSPARENTBACKPAINT: [%-*C@3 TRANSPARENTBACKPAINT]-|Only
113transparent child Ctrls are backpainted.&]
114[s7;i1120;a17;:Ctrl`:`:EXCLUDEPAINT: [%-*C@3 EXCLUDEPAINT]-|Ctrl is
115not painted. This is special case for specific system related
116situations (like OLE control painted by regular Windows routine).&]
117[s3; &]
118[s4; &]
119[s5;%- [*@(64) typedef_][*@(0.0.255) bool][*@(64) _(`*][* MouseHook][*@(64) )(Ctrl_`*ctrl,
120][*@(0.0.255) bool][*@(64) _inframe, ][*@(0.0.255) int][*@(64) _event,
121Point_p, ][*@(0.0.255) int][*@(64) _zdelta, dword_keyflags)]&]
122[s2;b17;a17; Type for hooking mouse events across all Ctrls.&]
123[s3; &]
124[s4; &]
125[s5;%- [*@(64) typedef_][*@(0.0.255) bool][*@(64) _(`*][* KeyHook][*@(64) )(Ctrl_`*ctrl,
126dword_key, ][*@(0.0.255) int][*@(64) _count)]&]
127[s2;b17;a17; Type for hooking keyboard events across all Ctrls.&]
128[s3; &]
129[s4; &]
130[s5;%- [*@(64) typedef_][*@(0.0.255) bool][*@(64) _(`*][* StateHook][*@(64) )(Ctrl_`*ctrl,
131][*@(0.0.255) int][*@(64) _reason)]&]
132[s2;b17;a17; Type for hooking state changes across all Ctrls.&]
133[s0; &]
134[s4;%- &]
135[s5;:Ctrl`:`:PosLeft`(int`,int`):%- [@(0.0.255) static] [_^Ctrl`:`:Logc^ Logc]_[* PosLeft](
136[@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&]
137[s2;b17;a17; Creates left (or top) aligned logical coordinate (Logc).&]
138[s7;i1120;a17; [%-*C@3 pos]-|Distance between left margin and left margin
139of parent`'s view.&]
140[s7;i1120;a17; [%-*C@3 size]-|Size.&]
141[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&]
142[s3;%- &]
143[s4;%- &]
144[s5;:Ctrl`:`:PosRight`(int`,int`):%- [@(0.0.255) static] [_^Ctrl`:`:Logc^ Logc]_[* PosRight
145]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&]
146[s2;b17;a17; Creates right (or bottom) aligned logical coordinate
147(Logc).&]
148[s7;i1120;a17; [%-*C@3 pos]-|Distance between right margin and right
149margin of parent`'s view.&]
150[s7;i1120;a17; [%-*C@3 size]-|Size.&]
151[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&]
152[s3;%- &]
153[s4;%- &]
154[s5;:Ctrl`:`:PosTop`(int`,int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* PosTop
155]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&]
156[s2;b17;a17; Equal to PosLeft(pos, size).&]
157[s7;i1120;a17; [%-*C@3 pos]-|Distance between top margin and top margin
158of parent`'s view.&]
159[s7;i1120;a17; [%-*C@3 size]-|Size.&]
160[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&]
161[s3;%- &]
162[s4;%- &]
163[s5;:Ctrl`:`:PosBottom`(int`,int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* Pos
164Bottom]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&]
165[s2;b17;a17; Equal to PosRight(pos, size).&]
166[s7;i1120;a17; [%-*C@3 pos]-|Distance between bottom margin and bottom
167margin of parent`'s view.&]
168[s7;i1120;a17; [%-*C@3 size]-|Size.&]
169[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&]
170[s3;%- &]
171[s4;%- &]
172[s5;:Ctrl`:`:PosSize`(int`,int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* PosSi
173ze]([@(0.0.255) int]_[*@3 lpos], [@(0.0.255) int]_[*@3 rpos])&]
174[s2;b17;a17; Creates logical coordinate where distances between margins
175and parent`'s view margins are fixed and size of Ctrl is variable
176(depends of parent`'s view size).&]
177[s7;i1120;a17; [%-*C@3 lpos]-|Distance between left/top margin and left/top
178margin of parent`'s view.&]
179[s7;i1120;a17; [%-*C@3 rpos]-|Distance between right/bottom margin and
180right/bottom margin of parent`'s view.&]
181[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&]
182[s3;%- &]
183[s4;%- &]
184[s5;:Ctrl`:`:PosCenter`(int`,int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* Pos
185Center]([@(0.0.255) int]_[*@3 size], [@(0.0.255) int]_[*@3 offset])&]
186[s2;b17;a17; Creates centered logical coordinate, where Ctrl is placed
187in specified distance from center of parent`'s view. &]
188[s7;i1120;a17; [%-*C@3 size]-|Size.&]
189[s7;i1120;a17; [%-*C@3 offset]-|Offset from center.&]
190[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&]
191[s3;%- &]
192[s4;%- &]
193[s5;:Ctrl`:`:PosCenter`(int`):%- [@(0.0.255) static] [_^`:`:Ctrl`:`:Logc^ Logc]_[* PosCente
194r]([@(0.0.255) int]_[*@3 size])&]
195[s2;b17;a17; Equal to PosCenter(size, 0).&]
196[s7;i1120;a17; [%-*C@3 size]-|Size.&]
197[s7;i1120;a17; [*/ Return value]-|Logical coordinate.&]
198[s3;%- &]
199[s4;%- &]
200[s5;:Ctrl`:`:GetTopCtrls`(`):%- [@(0.0.255) static] [_^`:`:Vector^ Vector][@(0.0.255) <]Ctr
201l_`*>_[* GetTopCtrls]()&]
202[s2;b17;a17; Returns all opened top`-level Ctrls of process. Top`-level
203Ctrls are those without parent (GetParent() `=`= NULL) `- TopWindow
204Ctrls and pop`-up Ctrls.&]
205[s7;i1120;a17; [*/ Return value]-|Vector of all top Ctrls.&]
206[s3;%- &]
207[s4;%- &]
208[s5;:Ctrl`:`:GetTopWindows`(`):%- [@(0.0.255) static] [_^`:`:Vector^ Vector][@(0.0.255) <]C
209trl_`*>_[* GetTopWindows]()&]
210[s2;b17;a17; Returns all opened TopWindows (that is, instances of
211TopWindow class or classes derived from TopWindow) of process.
212The difference between GetTopWindows and GetTopCtrls is that
213GetTopCtrls returns pop`-ups too. &]
214[s7;i1120;a17; [*/ Return value]-|Vector of all TopWindows.&]
215[s3;%- &]
216[s4;%- &]
217[s5;:Ctrl`:`:CloseTopCtrls`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* CloseTopCtrls]()
218&]
219[s2;b17;a17; Closes all top`-level Ctrls.&]
220[s3;%- &]
221[s4;%- &]
222[s5;:Ctrl`:`:InstallMouseHook`(Ctrl`:`:MouseHook`):%- [@(0.0.255) static]
223[@(0.0.255) void]_[* InstallMouseHook]([_^`:`:Ctrl`:`:MouseHook^ MouseHook]_[*@3 hook])&]
224[s2;b17;a17; Installs mouse hook `- a routine that receives all mouse
225input of application before it gets processed by Ctrls. You can
226install more mouse hooks. Mouse hook routine should return true
227to indicate the end of processing (and event propagation).&]
228[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&]
229[s3;%- &]
230[s4;%- &]
231[s5;:Ctrl`:`:DeinstallMouseHook`(Ctrl`:`:MouseHook`):%- [@(0.0.255) static]
232[@(0.0.255) void]_[* DeinstallMouseHook]([_^`:`:Ctrl`:`:MouseHook^ MouseHook]_[*@3 hook])
233&]
234[s2;b17;a17; Uninstalls previously installed mouse hook.&]
235[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&]
236[s3;%- &]
237[s4;%- &]
238[s5;:Ctrl`:`:InstallKeyHook`(Ctrl`:`:KeyHook`):%- [@(0.0.255) static]
239[@(0.0.255) void]_[* InstallKeyHook]([_^`:`:Ctrl`:`:KeyHook^ KeyHook]_[*@3 hook])&]
240[s2;b17;a17; Installs keyboard hook `- a routine that receives all
241keyboard input of application before it gets processed by Ctrls.
242You can install more than one keyboard hooks. Keyboard hook routine
243should return true to indicate the end of processing (and event
244propagation).&]
245[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&]
246[s3;%- &]
247[s4;%- &]
248[s5;:Ctrl`:`:DeinstallKeyHook`(Ctrl`:`:KeyHook`):%- [@(0.0.255) static]
249[@(0.0.255) void]_[* DeinstallKeyHook]([_^`:`:Ctrl`:`:KeyHook^ KeyHook]_[*@3 hook])&]
250[s2;b17;a17; Uninstalls previously installed keyboard hook.&]
251[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&]
252[s3;%- &]
253[s4;%- &]
254[s5;:Ctrl`:`:InstallStateHook`(Ctrl`:`:StateHook`):%- [@(0.0.255) static]
255[@(0.0.255) void]_[* InstallStateHook]([_^`:`:Ctrl`:`:StateHook^ StateHook]_[*@3 hook])&]
256[s2;b17;a17; Installs state hook `- a routine that receives all state
257changes of any Ctrls.&]
258[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&]
259[s3;%- &]
260[s4;%- &]
261[s5;:Ctrl`:`:DeinstallStateHook`(Ctrl`:`:StateHook`):%- [@(0.0.255) static]
262[@(0.0.255) void]_[* DeinstallStateHook]([_^`:`:Ctrl`:`:StateHook^ StateHook]_[*@3 hook])
263&]
264[s2;b17;a17; Deinstalls previously installed state hook.&]
265[s7;i1120;a17; [%-*C@3 hook]-|Pointer to hook routine.&]
266[s3;%- &]
267[s4;%- &]
268[s5;:Ctrl`:`:Paint`(Draw`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Paint]([_^`:`:Draw^ D
269raw][@(0.0.255) `&]_[*@3 draw])&]
270[s2;b17;a17; This method is called when Ctrl`'s view area is about
271to be repainted.&]
272[s7;i1120;a17; [%-*C@3 draw]-|Target of draw operations.&]
273[s3;%- &]
274[s4;%- &]
275[s5;:Ctrl`:`:CancelMode`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* CancelMode]()&]
276[s2;b17;a17; This method is called by U`+`+ core in situations when
277internal state of Ctrl that represents ongoing user action is
278about to be cleared to default. Typical example of such action
279is state of Button that is pushed by mouse click `- if the pushed
280state is internally recorded in Button, it should by cleared
281by this method. Examples of situations when this method is called
282by framework is removing Ctrl from its parent or releasing mouse
283capture.&]
284[s3;%- &]
285[s4;%- &]
286[s5;:Ctrl`:`:Activate`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Activate]()&]
287[s2;b17;a17; This method is called when Ctrl is top`-level and is
288activated `- it or some of its child Ctrls receives keyboard
289focus (activation usually has other signs as bringing window
290foreground or changing its caption).&]
291[s3;%- &]
292[s4;%- &]
293[s5;:Ctrl`:`:Deactivate`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Deactivate]()&]
294[s2;b17;a17; This method is called when Ctrl is top`-level and is
295deactivated `- focus has gone outside of Ctrl and its child Ctrls.&]
296[s3; &]
297[s4;%- &]
298[s5;:Upp`:`:Ctrl`:`:DeactivateBy`(Upp`:`:Ctrl`*`):%- [@(0.0.255) virtual]
299[@(0.0.255) void]_[* DeactivateBy]([_^Upp`:`:Ctrl^ Ctrl]_`*[*@3 new`_focus])&]
300[s2; Similar to Deactivate without parameter, but if a widget that
301caused deactivation by getting a focus is part of the same appliaction,
302[%-*@3 new`_focus] contains a pointer to it. If deactivation is
303caused by switching to another application, this parameter is
304NULL. Both variants of Deactivate are called, the variant with
305paremeter is called first.&]
306[s3;%- &]
307[s4;%- &]
308[s5;:Ctrl`:`:FrameMouseEvent`(int`,Point`,int`,dword`):%- [@(0.0.255) virtual]
309[_^`:`:Image^ Image]_[* FrameMouseEvent]([@(0.0.255) int]_[*@3 event],
310[_^`:`:Point^ Point]_[*@3 p], [@(0.0.255) int]_[*@3 zdelta], [_^`:`:dword^ dword]_[*@3 keyfla
311gs])&]
312[s2;b17;a17; This method is called when mouse event happens in frame
313area of Ctrl not containing any child Ctrls. Default implementation
314does nothing and returns Image`::Arrow().&]
315[s7;i1120;a17; [%-*C@3 event]-|Type of event define by [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:enum MouseEvents `{ BUTTON`, ACTION`, MOUSEENTER`, MOUSEMOVE`, MOUSELEAVE`, CURSORIMAGE`, MOUSEWHEEL`, DOWN`, UP`, DOUBLE`, REPEAT`, LEFTDOWN`, LEFTDOUBLE`, LEFTREPEAT`, LEFTUP`, RIGHTDOWN`, RIGHTDOUBLE`, RIGHTREPEAT`, RIGHTUP `}^ M
316ouseEvents] enum.&]
317[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in frame coordinates.&]
318[s7;i1120;a17; [%-*C@3 zdelta]-|Mouse wheel rotation delta (if event
319is MOUSEWHEEL).&]
320[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
321Ctrl and Alt keys.&]
322[s7;i1120;a17; [*/ Return value]-|If event is MOUSEIMAGE, method should
323return Image to be displayed as mouse cursor.&]
324[s3;%- &]
325[s4;%- &]
326[s5;:Ctrl`:`:MouseEvent`(int`,Point`,int`,dword`):%- [@(0.0.255) virtual]
327[_^`:`:Image^ Image]_[* MouseEvent]([@(0.0.255) int]_[*@3 event], [_^`:`:Point^ Point]_[*@3 p
328], [@(0.0.255) int]_[*@3 zdelta], [_^`:`:dword^ dword]_[*@3 keyflags])&]
329[s2;b17;a17; This method is called when mouse event happens in view
330area of Ctrl not containing any child Ctrls. Default implementation
331calls specific mouse event methods based on event parameter.&]
332[s7;i1120;a17; [%-*C@3 event]-|Type of event define by [^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us`#`:`:Ctrl`:`:enum MouseEvents `{ BUTTON`, ACTION`, MOUSEENTER`, MOUSEMOVE`, MOUSELEAVE`, CURSORIMAGE`, MOUSEWHEEL`, DOWN`, UP`, DOUBLE`, REPEAT`, LEFTDOWN`, LEFTDOUBLE`, LEFTREPEAT`, LEFTUP`, RIGHTDOWN`, RIGHTDOUBLE`, RIGHTREPEAT`, RIGHTUP `}^ M
333ouseEvents] enum.&]
334[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
335[s7;i1120;a17; [%-*C@3 zdelta]-|Mouse wheel rotation delta (if event
336is MOUSEWHEEL).&]
337[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
338Ctrl and Alt keys.&]
339[s7;i1120;a17; [*/ Return value]-|If event is MOUSEIMAGE, method should
340return Image to be displayed as mouse cursor.&]
341[s3;%- &]
342[s4;%- &]
343[s5;:Ctrl`:`:MouseEnter`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* MouseE
344nter]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
345[s2;b17;a17; This method is called by default implementation of MouseEvent
346when mouse cursor enters the view area of Ctrl.&]
347[s7;i1120;a17; [%-*C@3 p]-|Point of mouse cursor in view coordinates.&]
348[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
349Ctrl and Alt keys.&]
350[s3;%- &]
351[s4;%- &]
352[s5;:Ctrl`:`:MouseMove`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* MouseMo
353ve]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
354[s2;b17;a17; This method is called by default implementation of MouseEvent
355when mouse cursor hovers above view area of Ctrl.&]
356[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
357[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
358Ctrl and Alt keys.&]
359[s3;%- &]
360[s4;%- &]
361[s5;:Ctrl`:`:LeftDown`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftDown
362]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
363[s2;b17;a17; This method is called by default implementation of MouseEvent
364when mouse left button is pressed.&]
365[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
366[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
367Ctrl and Alt keys.&]
368[s3;%- &]
369[s4;%- &]
370[s5;:Ctrl`:`:LeftDouble`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftDo
371uble]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
372[s2;b17;a17; This method is called by default implementation of MouseEvent
373when mouse left button is double`-clicked. Default implementation
374calls LeftDown.&]
375[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
376[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
377Ctrl and Alt keys.&]
378[s3;%- &]
379[s4;%- &]
380[s5;:Ctrl`:`:LeftTriple`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftTr
381iple]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
382[s2;b17;a17; This method is called by default implementation of MouseEvent
383when mouse left button is triple`-clicked. Default implementation
384calls LeftDown.&]
385[s3;%- &]
386[s4;%- &]
387[s5;:Ctrl`:`:LeftDrag`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftDrag
388]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
389[s2;b17;a17; This method is called by default implementation of MouseEvent
390when user moves the mouse while holding left button by more than
391GUI`_DragDistance pixels. [%-*@3 p] is the starting point of drag,
392not the current mouse position.&]
393[s3;%- &]
394[s4;%- &]
395[s5;:Ctrl`:`:LeftHold`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftHold
396]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
397[s2;b17;a17; This method is called by default implementation of MouseEvent
398when user holds the mouse left button down for a while.&]
399[s3;%- &]
400[s4;%- &]
401[s5;:Ctrl`:`:LeftRepeat`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftRe
402peat]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
403[s2;b17;a17; This method is repeatedly called by default implementation
404of MouseEvent when mouse left button is pressed for some time,
405imitating keyboard autorepeat behaviour.&]
406[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
407[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
408Ctrl and Alt keys.&]
409[s3;%- &]
410[s4;%- &]
411[s5;:Ctrl`:`:LeftUp`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LeftUp]([_^`:`:Point^ P
412oint]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
413[s2;b17;a17; This method is called by default implementation of MouseEvent
414when mouse left button is released.&]
415[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
416[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
417Ctrl and Alt keys.&]
418[s3;%- &]
419[s4;%- &]
420[s5;:Ctrl`:`:RightDown`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* RightDo
421wn]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
422[s2;b17;a17; This method is called by default implementation of MouseEvent
423when mouse right button is pressed.&]
424[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
425[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
426Ctrl and Alt keys.&]
427[s3;%- &]
428[s4;%- &]
429[s5;:Ctrl`:`:RightDouble`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Right
430Double]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
431[s2;b17;a17; This method is called by default implementation of MouseEvent
432when mouse right button is double`-clicked. Default implementation
433calls RightDown.&]
434[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
435[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
436Ctrl and Alt keys.&]
437[s3;%- &]
438[s4;%- &]
439[s5;:Ctrl`:`:RightTriple`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Right
440Triple]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
441[s2;b17;a17; This method is called by default implementation of MouseEvent
442when mouse right button is triple`-clicked. Default implementation
443calls RightDown.&]
444[s3;%- &]
445[s4;%- &]
446[s5;:Ctrl`:`:RightDrag`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* RightDr
447ag]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
448[s2;b17;a17; This method is called by default implementation of MouseEvent
449when user moves the mouse while holding right button by more
450than GUI`_DragDistance pixels. [%-*@3 p] is the starting point
451of drag, not the current mouse position.&]
452[s3;%- &]
453[s4;%- &]
454[s5;:Ctrl`:`:RightHold`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* RightHo
455ld]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
456[s2;b17;a17; This method is called by default implementation of MouseEvent
457when user holds the mouse right button down for a while.&]
458[s3;%- &]
459[s4;%- &]
460[s5;:Ctrl`:`:RightRepeat`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Right
461Repeat]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
462[s2;b17;a17; This method is repeatedly called by default implementation
463of MouseEvent when mouse right button is pressed for some time,
464imitating keyboard autorepeat behaviour.&]
465[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
466[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
467Ctrl and Alt keys.&]
468[s3;%- &]
469[s4;%- &]
470[s5;:Ctrl`:`:RightUp`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* RightUp](
471[_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
472[s2;b17;a17; This method is called by default implementation of MouseEvent
473when mouse left button is released.&]
474[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
475[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
476Ctrl and Alt keys.&]
477[s3;%- &]
478[s4;%- &]
479[s5;:Ctrl`:`:MiddleDown`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Middle
480Down]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&]
481[s2;b17;a17; This method is called by default implementation of MouseEvent
482when mouse middle button is pressed.&]
483[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
484[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
485Ctrl and Alt keys.&]
486[s3; &]
487[s4;%- &]
488[s5;:Ctrl`:`:MiddleDouble`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Midd
489leDouble]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&]
490[s2;b17;a17; This method is called by default implementation of MouseEvent
491when mouse left button is double`-clicked.&]
492[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
493[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
494Ctrl and Alt keys.&]
495[s3; &]
496[s4;%- &]
497[s5;:Ctrl`:`:MiddleTriple`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Midd
498leTriple]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&]
499[s2; This method is called by default implementation of MouseEvent
500when mouse right button is triple`-clicked.&]
501[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
502[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
503Ctrl and Alt keys.&]
504[s3; &]
505[s4;%- &]
506[s5;:Ctrl`:`:MiddleRepeat`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Midd
507leRepeat]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&]
508[s2; This method is repeatedly called by default implementation of
509MouseEvent when mouse right button is pressed for some time,
510imitating keyboard autorepeat behaviour.&]
511[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
512[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
513Ctrl and Alt keys.&]
514[s3; &]
515[s4;%- &]
516[s5;:Ctrl`:`:MiddleDrag`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Middle
517Drag]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&]
518[s2; This method is called by default implementation of MouseEvent
519when user moves the mouse while holding middle button by more
520than GUI`_DragDistance pixels. [%-*@3 p] is the starting point
521of drag, not the current mouse position.&]
522[s3; &]
523[s4;%- &]
524[s5;:Ctrl`:`:MiddleHold`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Middle
525Hold]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&]
526[s2; This method is called by default implementation of MouseEvent
527when user holds the mouse middle button down for a while.&]
528[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
529[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
530Ctrl and Alt keys.&]
531[s3; &]
532[s4;%- &]
533[s5;:Ctrl`:`:MiddleUp`(Point`,dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* MiddleUp
534]([_^Point^ Point]_[*@3 p], [_^dword^ dword]_[*@3 keyflags])&]
535[s2; This method is called by default implementation of MouseEvent
536when mouse middle button is released.&]
537[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
538[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
539Ctrl and Alt keys.&]
540[s3; &]
541[s4;%- &]
542[s5;:Ctrl`:`:MouseWheel`(Point`,int`,dword`):%- [@(0.0.255) virtual]
543[@(0.0.255) void]_[* MouseWheel]([_^`:`:Point^ Point]_[*@3 p], [@(0.0.255) int]_[*@3 zdelta],
544 [_^`:`:dword^ dword]_[*@3 keyflags])&]
545[s2;b17;a17; This method is called by default implementation of MouseEvent
546when mouse wheel is rotated. Default implementation of this method
547propagates event to the parent and suppresses call of ChildMouseEvent
548for the parent.&]
549[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
550[s7;i1120;a17; [%-*C@3 zdelta]-|Amount of rotation.&]
551[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
552Ctrl and Alt keys.&]
553[s3;%- &]
554[s4;%- &]
555[s5;:Ctrl`:`:MouseLeave`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* MouseLeave]()&]
556[s2;b17;a17; This method is called by default implementation of MouseEvent
557when mouse cursor leaves view area of Ctrl.&]
558[s3;%- &]
559[s4;%- &]
560[s5;:Ctrl`:`:DragAndDrop`(Point`,PasteClip`&`):%- [@(0.0.255) virtual]
561[@(0.0.255) void]_[* DragAndDrop]([_^Point^ Point]_[*@3 p], [_^PasteClip^ PasteClip][@(0.0.255) `&
562]_[*@3 d])&]
563[s2; This method is called when user performs drag and drop operation
564over view area. The drag operation can either be just moving
565the mouse, or actual drop `- the difference is that for actual
566drop the PasteClip`::Accept method returns true. This allows to
567share drag and drop logic, which is very similar, in the single
568method.&]
569[s3; &]
570[s4;%- &]
571[s5;:Ctrl`:`:FrameDragAndDrop`(Point`,PasteClip`&`):%- [@(0.0.255) virtual]
572[@(0.0.255) void]_[* FrameDragAndDrop]([_^Point^ Point]_[*@3 p], [_^PasteClip^ PasteClip][@(0.0.255) `&
573]_[*@3 d])&]
574[s2; This method is called when user performs drag and drop operation
575over frame area. The drag operation can either be just moving
576the mouse, or actual drop `- the difference is that for actual
577drop the PasteClip`::Accept method returns true. This allows to
578share drag and drop logic, which is very similar, in the single
579method.&]
580[s3; &]
581[s4;%- &]
582[s5;:Ctrl`:`:DragRepeat`(Point`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* DragRepeat]([_^Point^ P
583oint]_[*@3 p])&]
584[s2; This method is called when user holds his drag operation over
585single position for some time. This is similar to LeftRepeat
586and it is usually used to scroll the content of view when DragRepeat
587occurs at the border area of view.&]
588[s3; &]
589[s4;%- &]
590[s5;:Ctrl`:`:DragEnter`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* DragEnter]()&]
591[s2; Called when user enters view with drag.&]
592[s3;%- &]
593[s4;%- &]
594[s5;:Ctrl`:`:DragLeave`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* DragLeave]()&]
595[s2; Called when user`'s drag leaves the view.&]
596[s3;%- &]
597[s4;%- &]
598[s5;:Ctrl`:`:GetDropData`(const String`&`)const:%- [@(0.0.255) virtual]
599[_^String^ String]_[* GetDropData]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 f
600mt])_[@(0.0.255) const]&]
601[s2; This method is invoked to obtain drop data from Ctrl if such
602data was not supplied as ClipData in call to DoDragAndDrop. Default
603implementation calls GetSelectionData.&]
604[s3; &]
605[s4;%- &]
606[s5;:Ctrl`:`:GetSelectionData`(const String`&`)const:%- [@(0.0.255) virtual]
607[_^String^ String]_[* GetSelectionData]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&
608]_[*@3 fmt])_[@(0.0.255) const]&]
609[s2; This method should return the widget`'s actual selection in
610requested format. It is used for X11 middle mouse selection paste
611operation ans as default implementation of GetDropData, because
612usually the data to be transfered by drag`&drop operation is
613the selection.&]
614[s3; &]
615[s4;%- &]
616[s5;:Ctrl`:`:CursorImage`(Point`,dword`):%- [@(0.0.255) virtual] [_^`:`:Image^ Image]_[* Cu
617rsorImage]([_^`:`:Point^ Point]_[*@3 p], [_^`:`:dword^ dword]_[*@3 keyflags])&]
618[s2;b17;a17; This method is called by default implementation of MouseEvent
619when the shape of mouse cursor is to be determined..&]
620[s7;i1120;a17; [%-*C@3 p]-|Position of mouse cursor in view coordinates.&]
621[s7;i1120;a17; [%-*C@3 keyflags]-|Combination of key flags for Shift,
622Ctrl and Alt keys.&]
623[s7;i1120;a17; [*/ Return value]-|Image of new cursor. Default implementation
624returns Image`::Arrow().&]
625[s3;%- &]
626[s4;%- &]
627[s5;:Ctrl`:`:Key`(dword`,int`):%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* Key]([_^`:`:dword^ d
628word]_[*@3 key], [@(0.0.255) int]_[*@3 count])&]
629[s2;b17;a17; This method provides keyboard input. When keyboard event
630occurs and some of U`+`+ application Ctrls has input focus, its
631Key method is called. If Key method returns true, processing
632of key event is finished. If it returns false, U`+`+ calls Key
633method of parent Ctrl and it repeats until either true is returned
634or Ctrl has no parent. If such top`-level Ctrl is reached, U`+`+
635calls its HotKey method. Default implementation is void and returns
636false.&]
637[s7;i1120;a17; [%-*C@3 key]-|Key identifier. If it is less than 65536,
638it indicates character code, otherwise it is key`-code. Key`-code
639is combination of basic key codes and further flags indicating
640state of shift keys and push/release events.&]
641[s7;i1120;a17; [%-*C@3 count]-|Accumulated autorepeat count.&]
642[s7;i1120;a17; [*/ Return value]-|Method should return true if further
643propagation is not desirable (in most cases this indicates that
644Ctrl accepted the key).&]
645[s3;%- &]
646[s4;%- &]
647[s5;:Ctrl`:`:HotKey`(dword`):%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* HotKey]([_^`:`:dword^ d
648word]_[*@3 key])&]
649[s2;b17;a17; This method is called when no Ctrl accepts key event
650using Key method. Default implementation calls HotKey method
651child Ctrls. If some child Ctrl returns true, method returns
652true, otherwise it returns false.&]
653[s7;i1120;a17; [%-*C@3 key]-|Key indentifier.&]
654[s7;i1120;a17; [*/ Return value]-|Method should return true to stop
655further distribution of key event via HotKey methods.&]
656[s3;%- &]
657[s4;%- &]
658[s5;:Ctrl`:`:GotFocus`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* GotFocus]()&]
659[s2;b17;a17; This method is called when Ctrl receives input focus.
660Default implementation is void.&]
661[s3;%- &]
662[s4;%- &]
663[s5;:Ctrl`:`:LostFocus`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* LostFocus]()&]
664[s2;b17;a17; This method is called when Ctrl loses input focus. Default
665implementation is void.&]
666[s3;%- &]
667[s4;%- &]
668[s5;:Ctrl`:`:ChildFrameMouseEvent`(Ctrl`*`,int`,Point`,int`,dword`):%- [@(0.0.255) virt
669ual] [@(0.0.255) void]_[* ChildFrameMouseEvent]([_^Ctrl^ Ctrl]_`*[*@3 child],
670[@(0.0.255) int]_[*@3 event], [_^Point^ Point]_[*@3 p], [@(0.0.255) int]_[*@3 zdelta],
671[_^dword^ dword]_[*@3 keyflags])&]
672[s2; This method is invoked before the [/ frame] mouse [%-*@3 event]
673is routed to the [%-*@3 child]. Parameters of the event are the
674same as those in MouseEvent method. Default implementation calls
675the parent`'s ChildMouseEvent method.&]
676[s3;%- &]
677[s4;%- &]
678[s5;:Ctrl`:`:ChildMouseEvent`(Ctrl`*`,int`,Point`,int`,dword`):%- [@(0.0.255) virtual]
679[@(0.0.255) void]_[* ChildMouseEvent]([_^`:`:Ctrl^ Ctrl]_`*[*@3 child],
680[@(0.0.255) int]_[*@3 event], [_^`:`:Point^ Point]_[*@3 p], [@(0.0.255) int]_[*@3 zdelta],
681[_^`:`:dword^ dword]_[*@3 keyflags])&]
682[s2;b17;a17; This method is invoked before the mouse [%-*@3 event]
683is routed to the [%-*@3 child]. Parameters of the event are the
684same as those in MouseEvent method. Default implementation calls
685the parent`'s ChildMouseEvent method.&]
686[s3; &]
687[s4;%- &]
688[s5;:Ctrl`:`:ChildGotFocus`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ChildGotFocus](
689)&]
690[s2;b17;a17; This method is invoked when any of child Ctrls receives
691input focus.&]
692[s3;%- &]
693[s4;%- &]
694[s5;:Ctrl`:`:ChildLostFocus`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ChildLostFocus
695]()&]
696[s2;b17;a17; This method is invoked when any of child Ctrls loses
697input focus.&]
698[s3;%- &]
699[s4;%- &]
700[s5;:Ctrl`:`:GetAccessKeys`(`)const:%- [@(0.0.255) virtual] [_^`:`:dword^ dword]_[* GetAcce
701ssKeys]()_[@(0.0.255) const]&]
702[s2;b17;a17; Ctrl should use this method to signal presence of access
703keys. Access keys are keyboard keys that can be used to access
704or activate dialog functions when pressed together with Alt key.
705They can be defined by application designer (usually using `&
706or `\b in labels), or they are automatically synthesized using
707[* AssignAccessKeys] method. If Ctrl (of one of Ctrls in its child
708tree) has some access keys and those keys are letters (in range
709`'A`' `- `'Z`'), they should be returned as bit value using AccessKeyBit
710function. Other access keys should be indicated by bit 0 (that
711means, by binary or of 1 to result). Default implementation returns
7120.&]
713[s7;i1120;a17; [*/ Return value]-|Bit set of access keys.&]
714[s3;%- &]
715[s4;%- &]
716[s5;:Ctrl`:`:AssignAccessKeys`(dword`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* AssignA
717ccessKeys]([_^`:`:dword^ dword]_[*@3 used])&]
718[s2;b17;a17; This method gives a Ctrl chance to synthesize its letter
719access keys.&]
720[s7;i1120;a17; [%-*C@3 used]-|Set of letter access keys that are already
721used and should not be chosen by Ctrl as its access keys.&]
722[s3; &]
723[s4;%- &]
724[s5;:Ctrl`:`:ChildAdded`(Ctrl`*`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ChildAdded](
725[_^`:`:Ctrl^ Ctrl]_`*[*@3 child])&]
726[s2;b17;a17; This method is invoked when child is added to Ctrl.&]
727[s7;i1120;a17; [%-*C@3 child]-|Pointer to child added.&]
728[s3;%- &]
729[s4;%- &]
730[s5;:Ctrl`:`:ChildRemoved`(Ctrl`*`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ChildRemov
731ed]([_^`:`:Ctrl^ Ctrl]_`*[*@3 child])&]
732[s2;b17;a17; This method is invoked when child is removed from Ctrl.&]
733[s7;i1120;a17; [%-*C@3 child]-|Pointer to child removed.&]
734[s3;%- &]
735[s4;%- &]
736[s5;:Ctrl`:`:ParentChange`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ParentChange]()&]
737[s2;b17;a17; This method is called when Ctrl is added or removed
738from parent.&]
739[s3;%- &]
740[s4;%- &]
741[s5;:Ctrl`:`:State`(int`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* State]([@(0.0.255) int
742]_[*@3 reason])&]
743[s2;b17;a17; This method is used to notify Ctrls about special state`-change
744events that are not covered by virtual methods. Method is called
745for entire child tree of Ctrl whose state has changed.&]
746[s7;i1120;a17; [%-*C@3 reason]-|Code of event. Standard reasons are
747enumerated by StateReason enum.&]
748[s3;%- &]
749[s4;%- &]
750[s5;:Ctrl`:`:Layout`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Layout]()&]
751[s2;b17;a17; This method is invoked when layout of Ctrl has to be
752refreshed. This is usually either before window is displayed
753or when the Ctrl is resized.&]
754[s3;%- &]
755[s4;%- &]
756[s5;:Ctrl`:`:GetMinSize`(`)const:%- [@(0.0.255) virtual] [_^`:`:Size^ Size]_[* GetMinSize](
757)_[@(0.0.255) const]&]
758[s2;b17;a17; This method should return [/ minimal] size of Ctrl. This
759is used e.g. to limit the minimal size of windows. Default implementation
760returns size suitable for edit`-field type of widget, based on
761default GUI font and EditFieldIsThin setting.&]
762[s3;%- &]
763[s4;%- &]
764[s5;:Ctrl`:`:GetStdSize`(`)const:%- [@(0.0.255) virtual] [_^`:`:Size^ Size]_[* GetStdSize](
765)_[@(0.0.255) const]&]
766[s2;b17;a17; This method should return [/ standard] size of Ctrl. Default
767implementation returns calls GetMinSize, increases width 10 and
768returns resulting Size.&]
769[s3;%- &]
770[s4;%- &]
771[s5;:Ctrl`:`:GetMaxSize`(`)const:%- [@(0.0.255) virtual] [_^Size^ Size]_[* GetMaxSize]()_[@(0.0.255) c
772onst]&]
773[s2; This method should return [/ maximal] size of Ctrl. Default implementation
774returns the size of virtual working area. Redefinition can be
775used to e.g. define the maximum size of window (as maximal size
776of view area).&]
777[s3;%- &]
778[s4;%- &]
779[s5;:Ctrl`:`:IsShowEnabled`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsShowEnab
780led]()_[@(0.0.255) const]&]
781[s2;b17;a17; This method indicates whether Ctrl should be painted
782as enabled. Default implementation returns IsEnabled() `&`& (!parent
783`|`| parent`->IsShowEnabled()), however TopWindow overloads this
784function so that owner of modal dialogs while being disabled
785during modal dialog lifetime are displayed with enabled Ctrls.&]
786[s7;i1120;a17; [*/ Return value]-|true if Ctrl should be painted as
787enabled.&]
788[s3;%- &]
789[s4;%- &]
790[s5;:Ctrl`:`:GetOpaqueRect`(`)const:%- [@(0.0.255) virtual] [_^Rect^ Rect]_[* GetOpaqueRect
791]()_[@(0.0.255) const]&]
792[s2; Returns the rectangle of view area that is opaque (is completely
793filled when painting the widget). The default implementation
794returns the whole view area if Transparent flag is set, empty
795rectangle otherwise. Paint routine uses this information to optimize.&]
796[s3;%- &]
797[s4;%- &]
798[s5;:Ctrl`:`:GetVoidRect`(`)const:%- [@(0.0.255) virtual] [_^Rect^ Rect]_[* GetVoidRect]()_
799[@(0.0.255) const]&]
800[s2; Returns the rectangle of view area that is fully transparent
801(nothing is painted in that rectangle). Paint routine uses this
802information to optimize.&]
803[s3;%- &]
804[s4;%- &]
805[s5;:Ctrl`:`:Updated`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Updated]()&]
806[s2; Invoked by Update method. Default implementation is empty.&]
807[s3;%- &]
808[s4;%- &]
809[s5;:Ctrl`:`:OverPaint`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) int]_[* OverPaint]()_[@(0.0.255) c
810onst]&]
811[s2;b17;a17; This method can returns non`-zero number that represents
812paint extension margin of view area `- Ctrl can paint inside
813this margin despite that fact that it does not belong to view.
814This is useful to represent some specific skinning effect (like
815glare around the button). Default implementation returns zero.&]
816[s3;%- &]
817[s4;%- &]
818[s5;:Ctrl`:`:Close`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Close]()&]
819[s2;b17;a17; Closes top`-level Ctrl. If Ctrl is not top`-level, has
820no effect. If it is and is open in host GUI (either as pop`-up
821or as [^topic`:`/`/CtrlCore`/src`/TopWindow`$en`-us`#`:`:TopWindow`:`:class^ TopWin
822dow]), it should close it. Default implementation closes. TopWindow
823overrides this method to break modal loop instead of closing
824if modal loop is performed for it.&]
825[s3;%- &]
826[s4;%- &]
827[s5;:Ctrl`:`:IsOcxChild`(`):%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsOcxChild]()&]
828[s2;b17;a17; Used for Ocx control implementation.&]
829[s3;%- &]
830[s4;%- &]
831[s5;:Ctrl`:`:GetDesc`(`)const:%- [@(0.0.255) virtual] [_^String^ String]_[* GetDesc]()_[@(0.0.255) c
832onst]&]
833[s2; Returns description of Ctrl for diagnostic purposes. Default
834implementation is empty.&]
835[s3;%- &]
836[s4;%- &]
837[s5;:Ctrl`:`:WhenAction:%- [_^Callback^ Callback]_[* WhenAction]&]
838[s2; This callback is used to signal that [/ user] has changed the
839value (or state) of widget.&]
840[s3;%- &]
841[s4;%- &]
842[s5;:Ctrl`:`:SetData`(const Value`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* SetData](
843[@(0.0.255) const]_[_^`:`:Value^ Value][@(0.0.255) `&]_[*@3 data])&]
844[s2;b17;a17; Sets the new value to the object. Default implementation
845is void.&]
846[s3;%- &]
847[s4;%- &]
848[s5;:Ctrl`:`:GetData`(`)const:%- [@(0.0.255) virtual] [_^`:`:Value^ Value]_[* GetData]()_[@(0.0.255) c
849onst]&]
850[s2;b17;a17; Gets current value of the object. Default implementation
851returns Value() `- void value.&]
852[s7;i1120;a17; [*/ Return value]-|Value of object.&]
853[s3;%- &]
854[s4;%- &]
855[s5;:Ctrl`:`:SetModify`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* SetModify]()&]
856[s2;b17;a17; Sets modification flag.&]
857[s3;%- &]
858[s4;%- &]
859[s5;:Ctrl`:`:ClearModify`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* ClearModify]()&]
860[s2;b17;a17; Clears modification flag.&]
861[s3;%- &]
862[s4;%- &]
863[s5;:Ctrl`:`:IsModified`(`)const:%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* IsModified]()
864_[@(0.0.255) const]&]
865[s2;b17;a17; Returns the value modification flag.&]
866[s3;%- &]
867[s4;%- &]
868[s5;:Ctrl`:`:Accept`(`):%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* Accept]()&]
869[s2;b17;a17; This virtual method is called when value of Ctrl is
870about to be accepted. Default implementation calls Accept for
871all child Ctrls and returns false if any of child Ctrls returns
872false, true otherwise.&]
873[s2;b17;a17; Typical use is when user pressed OK button. If any Ctrl
874of dialog returns false, OK is canceled.&]
875[s2;b17;a17; Typical implementation of this method should test whether
876current state of Ctrl (its edited value) matches requirements.
877If it does, it should finish editing, accept edited value and
878return true. Otherwise it should return false, &]
879[s7;i1120;a17; [*/ Return value]-|Ctrl should return true if it successfully
880finished editing, false otherwise.&]
881[s3;%- &]
882[s4;%- &]
883[s5;:Ctrl`:`:Reject`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Reject]()&]
884[s2;b17;a17; This virtual method is called when Ctrl should abort
885editing, discarding edited value. Default implementation calls
886Reject for all child Ctrls.&]
887[s3;%- &]
888[s4;%- &]
889[s5;:Ctrl`:`:Serialize`(Stream`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Serialize](
890[_^`:`:Stream^ Stream][@(0.0.255) `&]_[*@3 s])&]
891[s2;b17;a17; Serialization method. Should serialize the value of
892Ctrl in a way that is suitable for dialog backup and optional
893restore (e.g. when user presses Cancel button).&]
894[s3;%- &]
895[s4;%- &]
896[s5;:Ctrl`:`:Jsonize`(JsonIO`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Jsonize]([_^JsonIO^ J
897sonIO][@(0.0.255) `&]_[*@3 jio])&]
898[s2; Method to convert the data of widget to/from JSON. Default implementation
899calls Jsonize for Value obtained/set by GetData/SetData.&]
900[s3; &]
901[s4;%- &]
902[s5;:Ctrl`:`:Xmlize`(XmlIO`&`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Xmlize]([_^XmlIO^ X
903mlIO][@(0.0.255) `&]_[*@3 xio])&]
904[s2; Method to convert the data of widget to/from XML. Default implementation
905calls Jsonize for Value obtained/set by GetData/SetData.&]
906[s3; &]
907[s4;%- &]
908[s5;:Ctrl`:`:AddChild`(Ctrl`*`):%- [@(0.0.255) void]_[* AddChild]([_^`:`:Ctrl^ Ctrl]_`*[*@3 c
909hild])&]
910[s2;b17;a17; Adds a child Ctrl as last one.&]
911[s7;i1120;a17; [%-*C@3 child]-|Pointer to child Ctrl at the end of child
912list. Note that U`+`+ never takes ownership of Ctrls `- never
913calls delete for [@3 child. ]That allows using non`-heap based
914Ctrls. &]
915[s3;%- &]
916[s4;%- &]
917[s5;:Ctrl`:`:AddChild`(Ctrl`*`,Ctrl`*`):%- [@(0.0.255) void]_[* AddChild]([_^`:`:Ctrl^ Ctrl
918]_`*[*@3 child], [_^`:`:Ctrl^ Ctrl]_`*[*@3 insafter])&]
919[s2;b17;a17; Inserts child Ctrl after another Ctrl that is already
920child. If [%-*@3 insafter] is NULL, child is inserted as the first
921child.&]
922[s7;i1120;a17; [%-*C@3 child]-|Pointer to child Ctrl.&]
923[s7;i1120;a17; [%-*C@3 insafter]-|Ctrl that will be before inserted
924Ctrl.&]
925[s3;%- &]
926[s4;%- &]
927[s5;:Ctrl`:`:AddChildBefore`(Ctrl`*`,Ctrl`*`):%- [@(0.0.255) void]_[* AddChildBefore]([_^`:`:Ctrl^ C
928trl]_`*[*@3 child], [_^`:`:Ctrl^ Ctrl]_`*[*@3 insbefore])&]
929[s2;b17;a17; Inserts child Ctrl before another Ctrl that is already
930child. If [%-*@3 insbefore], child is inserted as last child.&]
931[s7;i1120;a17; [%-*C@3 child]-|Pointer to child Ctrl.&]
932[s7;i1120;a17; [%-*C@3 insbefore]-|Ctrl that will be after inserted
933Ctrl.&]
934[s3;%- &]
935[s4;%- &]
936[s5;:Ctrl`:`:RemoveChild`(Ctrl`*`):%- [@(0.0.255) void]_[* RemoveChild]([_^`:`:Ctrl^ Ctrl]_
937`*[*@3 child])&]
938[s2;b17;a17; Removes Ctrl from child list. Ctrl is never deleted.&]
939[s7;i1120;a17; [%-*C@3 child]-|Child to be removed.&]
940[s3;%- &]
941[s4;%- &]
942[s5;:Ctrl`:`:GetParent`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetParent]()_[@(0.0.255) const]&]
943[s2;b17;a17; Returns parent of Ctrl or NULL if Ctrl is topmost.&]
944[s7;i1120;a17; [*/ Return value]-|Pointer to parent Ctrl.&]
945[s3;%- &]
946[s4;%- &]
947[s5;:Ctrl`:`:GetLastChild`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetLastChild]()_[@(0.0.255) c
948onst]&]
949[s2;b17;a17; Returns last child.&]
950[s7;i1120;a17; [*/ Return value]-|Pointer to last child or NULL if Ctrl
951has no children.&]
952[s3;%- &]
953[s4;%- &]
954[s5;:Ctrl`:`:GetFirstChild`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetFirstChild]()_[@(0.0.255) c
955onst]&]
956[s2;b17;a17; Returns first child.&]
957[s7;i1120;a17; [*/ Return value]-|Pointer to first child or NULL if
958Ctrl has no children.&]
959[s3;%- &]
960[s4;%- &]
961[s5;:Ctrl`:`:GetPrev`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetPrev]()_[@(0.0.255) const]&]
962[s2;b17;a17; Returns child that is before this Ctrl in child list
963or NULL if Ctrl is first or not in list.&]
964[s7;i1120;a17; [*/ Return value]-|Pointer to previous child or NULL.&]
965[s3;%- &]
966[s4;%- &]
967[s5;:Ctrl`:`:GetNext`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetNext]()_[@(0.0.255) const]&]
968[s2;b17;a17; Returns next child that is after this Ctrl in child
969list or NULL if Ctrl is last or not in list.&]
970[s7;i1120;a17; [*/ Return value]-|Pointer to next child or NULL.&]
971[s3;%- &]
972[s3;%- &]
973[s4;%- &]
974[s5;:Ctrl`:`:GetChildIndex`(const Ctrl`*`)const:%- [@(0.0.255) int]_[* GetChildIndex]([@(0.0.255) c
975onst]_[_^Ctrl^ Ctrl]_`*[*@3 child])_[@(0.0.255) const]&]
976[s2; Returns the index of [%-*@3 child] (first child has index 0, second
977child 1 etc...). If [%-*@3 child] is not present in this Ctrl,
978returns `-1. Note that this function performs sequential scan
979of child (results in O(n) complexity).&]
980[s3; &]
981[s4;%- &]
982[s5;:Ctrl`:`:GetChildCount`(`)const:%- [@(0.0.255) int]_[* GetChildCount]()_[@(0.0.255) con
983st]&]
984[s2; Returns the number of child ctrls. Note that this function performs
985sequential scan of child (results in O(n) complexity).&]
986[s3; &]
987[s4;%- &]
988[s5;:Upp`:`:Ctrl`:`:GetAscendant`(`)const:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T
989]>_[*@4 T]_`*[* GetAscendant]()_[@(0.0.255) const]&]
990[s2; Returns first ascendant (parent, parent of parent etc..) that
991has type [%-*@4 T].&]
992[s3;%- &]
993[s4;%- &]
994[s5;:Ctrl`:`:GetIndexChild`(int`)const:%- [_^Ctrl^ Ctrl]_`*[* GetIndexChild]([@(0.0.255) in
995t]_[*@3 i])_[@(0.0.255) const]&]
996[s2; Retruns child at index [%-*@3 i] or NULL if there is none. Note
997that this function performs sequential scan of child (results
998in O(n) complexity).&]
999[s3;%- &]
1000[s4;%- &]
1001[s5;:Upp`:`:Ctrl`:`:GetViewChildIndex`(const Upp`:`:Ctrl`*`)const:%- [@(0.0.255) int]_[* G
1002etViewChildIndex]([@(0.0.255) const]_[_^Upp`:`:Ctrl^ Ctrl]_`*[*@3 child])_[@(0.0.255) con
1003st]&]
1004[s2; Returns the index of view [%-*@3 child] (first child has index
10050, second child 1 etc...). If [%-*@3 child] is not present in this
1006Ctrl or is in frame, returns `-1. Note that this function performs
1007sequential scan of child (results in O(n) complexity). This is
1008similar to GetChildIndex, but frame widgets are ignored.&]
1009[s3; &]
1010[s4;%- &]
1011[s5;:Upp`:`:Ctrl`:`:GetViewChildCount`(`)const:%- [@(0.0.255) int]_[* GetViewChildCount](
1012)_[@(0.0.255) const]&]
1013[s2; Returns the number of child ctrls. Note that this function performs
1014sequential scan of child (results in O(n) complexity). This is
1015similar to GetChildCount, but frame widgets are ignored.&]
1016[s3;%- &]
1017[s4;%- &]
1018[s5;:Upp`:`:Ctrl`:`:GetViewIndexChild`(int`)const:%- [_^Upp`:`:Ctrl^ Ctrl]_`*[* GetViewIn
1019dexChild]([@(0.0.255) int]_[*@3 ii])_[@(0.0.255) const]&]
1020[s2; Retruns view child at index [%-*@3 i] or NULL if there is none.
1021Note that this function performs sequential scan of child (results
1022in O(n) complexity). This is similar to GetIndexChild, but frame
1023widgets are ignored.&]
1024[s3; &]
1025[s4;%- &]
1026[s5;:Ctrl`:`:IsChild`(`)const:%- [@(0.0.255) bool]_[* IsChild]()_[@(0.0.255) const]&]
1027[s7;i1120;a17; [*/ Return value]-|True if Ctrl has parent.&]
1028[s3;%- &]
1029[s4;%- &]
1030[s5;:Ctrl`:`:ChildFromPoint`(Point`&`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* ChildFromPoint]([_^`:`:Point^ P
1031oint][@(0.0.255) `&]_[*@3 pt])_[@(0.0.255) const]&]
1032[s2;b17;a17; Checks whether opened top`-level Ctrl is foreground.&]
1033[s7;i1120;a17; [*/ Return value]-|True if Ctrl is foreground.&]
1034[s3;%- &]
1035[s4;%- &]
1036[s5;:Ctrl`:`:IsForeground`(`)const:%- [@(0.0.255) bool]_[* IsForeground]()_[@(0.0.255) cons
1037t]&]
1038[s2; Returns true if Ctrl or its top`-level parent is foreground
1039window.&]
1040[s3;%- &]
1041[s4;%- &]
1042[s5;:Ctrl`:`:SetForeground`(`):%- [@(0.0.255) void]_[* SetForeground]()&]
1043[s2;b17;a17; Asks platform to put top`-level Ctrl to foreground.&]
1044[s3; &]
1045[s4;%- &]
1046[s5;:Ctrl`:`:GetTopCtrl`(`)const:%- [@(0.0.255) const]_[_^Ctrl^ Ctrl]_`*[* GetTopCtrl]()_[@(0.0.255) c
1047onst]&]
1048[s2; Gets the top`-level Ctrl, that is Ctrl that has this Ctrl in
1049child tree and has no parent.&]
1050[s7;i1120;a17; [*/ Return value]-|Pointer to top`-level Ctrl. Can return
1051this.&]
1052[s3;%- &]
1053[s4;%- &]
1054[s5;:Ctrl`:`:GetTopCtrl`(`):%- [_^Ctrl^ Ctrl]_`*[* GetTopCtrl]()&]
1055[s2; Gets the top`-level Ctrl, that is Ctrl that has this Ctrl in
1056child tree and has no parent.&]
1057[s7;i1120;a17; [*/ Return value]-|Pointer to top`-level Ctrl. Can return
1058this.&]
1059[s3; &]
1060[s4;%- &]
1061[s5;:Ctrl`:`:GetOwner`(`)const:%- [@(0.0.255) const]_[_^Ctrl^ Ctrl]_`*[* GetOwner]()_[@(0.0.255) c
1062onst]&]
1063[s2; Returns owner of top`-level Ctrl. Example of owned window is
1064dialog launched from main application window. Owner is another
1065top`-level Ctrl.&]
1066[s7;i1120;a17; [*/ Return value]-|Pointer to owner top`-level Ctrl or
1067NULL is window is not owned.&]
1068[s3;%- &]
1069[s4;%- &]
1070[s5;:Ctrl`:`:GetOwner`(`):%- [_^`:`:Ctrl^ Ctrl]_`*[* GetOwner]()&]
1071[s2;b17;a17; Returns owner of top`-level Ctrl.&]
1072[s7;i1120;a17; [*/ Return value]-|Pointer to owner top`-level Ctrl or
1073NULL is window is not owned.&]
1074[s3; &]
1075[s4;%- &]
1076[s5;:Ctrl`:`:GetTopCtrlOwner`(`)const:%- [@(0.0.255) const]_[_^Ctrl^ Ctrl]_`*[* GetTopCtrlO
1077wner]()_[@(0.0.255) const]&]
1078[s2; Equivalent to GetTopCtrl()`->GetOwner() call.&]
1079[s7;i1120;a17; [*/ Return value]-|Pointer to owner of top`-level Ctrl.&]
1080[s3;%- &]
1081[s4;%- &]
1082[s5;:Ctrl`:`:GetTopCtrlOwner`(`):%- [_^`:`:Ctrl^ Ctrl]_`*[* GetTopCtrlOwner]()&]
1083[s2;b17;a17; Equivalent to GetTopCtrl()`->GetOwner() call.&]
1084[s7;i1120;a17; [*/ Return value]-|Pointer to owner of top`-level Ctrl.&]
1085[s3;%- &]
1086[s4;%- &]
1087[s5;:Ctrl`:`:GetOwnerCtrl`(`):%- [_^`:`:Ctrl^ Ctrl]_`*[* GetOwnerCtrl]()&]
1088[s5;K:Ctrl`:`:GetOwnerCtrl`(`)const:%- [*@(0.0.255) const][*@(64) _][*^`:`:Ctrl^@(64) Ctrl][*@(64) _
1089`*][* GetOwnerCtrl][*@(64) ()_][*@(0.0.255) const]&]
1090[s2;b17;a17; Returns the owner Ctrl. Unlike GetOwner, it returns
1091actual widget that was used as `"owner`" parameter in Open or
1092PopUp calls.&]
1093[s3; &]
1094[s4;%- &]
1095[s5;:Ctrl`:`:GetTopWindow`(`)const:%- [@(0.0.255) const]_[_^TopWindow^ TopWindow]_`*[* GetT
1096opWindow]()_[@(0.0.255) const]&]
1097[s2; TopWindow that contains this Ctrl.&]
1098[s7;i1120;a17; [*/ Return value]-|Pointer to TopWindow.&]
1099[s3;%- &]
1100[s4;%- &]
1101[s5;:Ctrl`:`:GetTopWindow`(`):%- [_^`:`:TopWindow^ TopWindow]_`*[* GetTopWindow]()&]
1102[s2;b17;a17; TopWindow that contains this Ctrl.&]
1103[s7;i1120;a17; [*/ Return value]-|Pointer to TopWindow.&]
1104[s3; &]
1105[s4;%- &]
1106[s5;:Ctrl`:`:GetMainWindow`(`)const:%- [@(0.0.255) const]_[_^TopWindow^ TopWindow]_`*[* Get
1107MainWindow]()_[@(0.0.255) const]&]
1108[s2; Returns main window (one with no owner) that directly or indirectly
1109owns this Ctrl.&]
1110[s7;i1120;a17; [*/ Return value]-|Pointer to main window.&]
1111[s3;%- &]
1112[s4;%- &]
1113[s5;:Ctrl`:`:GetMainWindow`(`):%- [_^`:`:TopWindow^ TopWindow]_`*[* GetMainWindow]()&]
1114[s2;b17;a17; Returns main window (one with no owner) that directly
1115or indirectly owns this Ctrl.&]
1116[s7;i1120;a17; [*/ Return value]-|Pointer to main window.&]
1117[s3;%- &]
1118[s4;%- &]
1119[s5;:Ctrl`:`:SetFrame`(int`,CtrlFrame`&`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrame](
1120[@(0.0.255) int]_[*@3 i], [_^`:`:CtrlFrame^ CtrlFrame][@(0.0.255) `&]_[*@3 frm])&]
1121[s2;b17;a17; Sets Frame at given position. If there is no such position
1122yet, required number of NullFrame frames is added. Only reference
1123to frame is stored, that means that frame must exists during
1124the time it is used in Ctrl. Also, some frames can also be used
1125for multiple Ctrls.&]
1126[s7;i1120;a17; [%-*C@3 i]-|Position. First frame with i `=`= 0 is outermost.&]
1127[s7;i1120;a17; [%-*C@3 frm]-|Reference to frame.&]
1128[s7;i1120;a17; [*/ Return value]-|Returns `*this to allow chaining of
1129method calls.&]
1130[s3;%- &]
1131[s4;%- &]
1132[s5;:Ctrl`:`:SetFrame`(CtrlFrame`&`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrame]([_^`:`:CtrlFrame^ C
1133trlFrame][@(0.0.255) `&]_[*@3 frm])&]
1134[s2;b17;a17; Sets frame at position 0.&]
1135[s7;i1120;a17; [%-*C@3 frm]-|Reference to frame.&]
1136[s7;i1120;a17; [*/ Return value]-|`*this.&]
1137[s3;%- &]
1138[s4;%- &]
1139[s5;:Ctrl`:`:AddFrame`(CtrlFrame`&`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* AddFrame]([_^`:`:CtrlFrame^ C
1140trlFrame][@(0.0.255) `&]_[*@3 frm])&]
1141[s2;b17;a17; Adds frame at inner`-most position.&]
1142[s7;i1120;a17; [%-*C@3 frm]-|Reference to frame.&]
1143[s7;i1120;a17; [*/ Return value]-|`*this.&]
1144[s3;%- &]
1145[s4;%- &]
1146[s5;:Ctrl`:`:GetFrame`(int`)const:%- [@(0.0.255) const]_[_^`:`:CtrlFrame^ CtrlFrame][@(0.0.255) `&
1147]_[* GetFrame]([@(0.0.255) int]_[*@3 i]_`=_[@3 0])_[@(0.0.255) const]&]
1148[s2;b17;a17; Returns reference to frame at given position.&]
1149[s7;i1120;a17; [%-*C@3 i]-|Position.&]
1150[s7;i1120;a17; [*/ Return value]-|Reference to frame.&]
1151[s3; &]
1152[s4;%- &]
1153[s5;:Ctrl`:`:GetFrame`(int`):%- [_^CtrlFrame^ CtrlFrame][@(0.0.255) `&]_[* GetFrame]([@(0.0.255) i
1154nt]_[*@3 i]_`=_[@3 0])&]
1155[s2; Returns reference to frame at given position.&]
1156[s7;i1120;a17; [%-*C@3 i]-|Position.&]
1157[s7;i1120;a17; [*/ Return value]-|Reference to frame.&]
1158[s3;%- &]
1159[s4;%- &]
1160[s5;:Ctrl`:`:RemoveFrame`(int`):%- [@(0.0.255) void]_[* RemoveFrame]([@(0.0.255) int]_[*@3 i])
1161&]
1162[s2; Removes frame at given position.&]
1163[s7;i1120;a17; [%-*C@3 i]-|Index of frame.&]
1164[s3;%- &]
1165[s4;%- &]
1166[s5;:Ctrl`:`:RemoveFrame`(CtrlFrame`&`):%- [@(0.0.255) void]_[* RemoveFrame]([_^`:`:CtrlFrame^ C
1167trlFrame][@(0.0.255) `&]_[*@3 frm])&]
1168[s2;b17;a17; Removes first frame equal to [@3 frm]. Equality means
1169here that pointers to both frames are the same (it is same instance).&]
1170[s7;i1120;a17; [%-*C@3 frm]-|Frame to remove.&]
1171[s3;%- &]
1172[s4;%- &]
1173[s5;:Ctrl`:`:InsertFrame`(int`,CtrlFrame`&`):%- [@(0.0.255) void]_[* InsertFrame]([@(0.0.255) i
1174nt]_[*@3 i], [_^`:`:CtrlFrame^ CtrlFrame][@(0.0.255) `&]_[*@3 frm])&]
1175[s2;b17;a17; Inserts frame at given position.&]
1176[s7;i1120;a17; [%-*C@3 i]-|Position.&]
1177[s7;i1120;a17; [%-*C@3 frm]-|Reference to frame.&]
1178[s3;%- &]
1179[s4;%- &]
1180[s5;:Ctrl`:`:FindFrame`(CtrlFrame`&`):%- [@(0.0.255) int]_[* FindFrame]([_^`:`:CtrlFrame^ C
1181trlFrame][@(0.0.255) `&]_[*@3 frm])&]
1182[s2;b17;a17; Finds first frame equal to [@3 frm]. Equality means here
1183that pointers to both frames are the same (it is same instance).&]
1184[s7;i1120;a17; [%-*C@3 frm]-|Frame to find.&]
1185[s7;i1120;a17; [*/ Return value]-|Index of frame or negative value if
1186frame is not found.&]
1187[s3;%- &]
1188[s4;%- &]
1189[s5;:Ctrl`:`:GetFrameCount`(`)const:%- [@(0.0.255) int]_[* GetFrameCount]()_[@(0.0.255) con
1190st]&]
1191[s2;b17;a17; Returns count of frames in Ctrl.&]
1192[s7;i1120;a17; [*/ Return value]-|Count of frames.&]
1193[s3;%- &]
1194[s4;%- &]
1195[s5;:Ctrl`:`:ClearFrames`(`):%- [@(0.0.255) void]_[* ClearFrames]()&]
1196[s2;b17;a17; Removes all frames from Ctrl. Frame at position 0 then
1197added and set to NullFrame.&]
1198[s3;%- &]
1199[s4;%- &]
1200[s5;:Ctrl`:`:IsOpen`(`)const:%- [@(0.0.255) bool]_[* IsOpen]()_[@(0.0.255) const]&]
1201[s2;b17;a17; Checks whether top`-level Ctrl of this Ctrl is open.&]
1202[s7;i1120;a17; [*/ Return value]-|true if open.&]
1203[s3;%- &]
1204[s4;%- &]
1205[s5;:Ctrl`:`:Shutdown`(`):%- [@(0.0.255) void]_[* Shutdown]()&]
1206[s2;b17;a17; Sets internal flag indicating that Ctrl is being destructed.
1207This is rarely used to solve some destruction order problems.&]
1208[s3;%- &]
1209[s4;%- &]
1210[s5;:Ctrl`:`:IsShutdown`(`)const:%- [@(0.0.255) bool]_[* IsShutdown]()_[@(0.0.255) const]&]
1211[s2;b17;a17; Checks whether internal shutdown flag is set.&]
1212[s7;i1120;a17; [*/ Return value]-|True if in shutdown mode.&]
1213[s3;%- &]
1214[s4;%- &]
1215[s5;:Ctrl`:`:SetPos`(Ctrl`:`:LogPos`,bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetPos](
1216[_^`:`:Ctrl`:`:LogPos^ LogPos]_[*@3 p], [@(0.0.255) bool]_[*@3 inframe])&]
1217[s2;b17;a17; Sets [^topic`:`/`/CtrlCore`/src`/LogPos`$en`-us^ logical
1218position] of Ctrl. If Ctrl is top`-level, logical position must
1219be of left`-top type.&]
1220[s7;i1120;a17; [%-*C@3 p]-|Logical position.&]
1221[s7;i1120;a17; [%-*C@3 inframe]-|If true, Ctrl is placed into [^topic`:`/`/CtrlCore`/src`/AboutFrames`$en`-us^ f
1222rame area] instead of view area&]
1223[s7;i1120;a17; [*/ Return value]-|`*this.&]
1224[s3;%- &]
1225[s4;%- &]
1226[s5;:Ctrl`:`:SetPos`(Ctrl`:`:LogPos`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetPos]([_^`:`:Ctrl`:`:LogPos^ L
1227ogPos]_[*@3 p])&]
1228[s2;b17;a17; Sets logical position of Ctrl in view area.&]
1229[s7;i1120;a17; [%-*C@3 p]-|Logical position.&]
1230[s7;i1120;a17; [*/ Return value]-|`*this.&]
1231[s3;%- &]
1232[s4;%- &]
1233[s5;:Ctrl`:`:SetPos`(Ctrl`:`:Logc`,Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* S
1234etPos]([_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 x], [_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 y])&]
1235[s2;b17;a17; Sets logical position by individual coordinates (in
1236view area).&]
1237[s7;i1120;a17; [%-*C@3 x]-|Horizontal logical position.&]
1238[s7;i1120;a17; [%-*C@3 y]-|Vertical logical postion.&]
1239[s7;i1120;a17; [*/ Return value]-|`*this.&]
1240[s3;%- &]
1241[s4;%- &]
1242[s5;:Ctrl`:`:SetPosX`(Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetPosX]([_^`:`:Ctrl`:`:Logc^ L
1243ogc]_[*@3 x])&]
1244[s2;b17;a17; Sets horizontal logical position only (in view area).&]
1245[s7;i1120;a17; [%-*C@3 x]-|Horizontal logical position.&]
1246[s7;i1120;a17; [*/ Return value]-|`*this.&]
1247[s3;%- &]
1248[s4;%- &]
1249[s5;:Ctrl`:`:SetPosY`(Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetPosY]([_^`:`:Ctrl`:`:Logc^ L
1250ogc]_[*@3 y])&]
1251[s2;b17;a17; Sets vertical logical position only (in view area).&]
1252[s7;i1120;a17; [%-*C@3 y]-|Vertical logical position.&]
1253[s7;i1120;a17; [*/ Return value]-|`*this.&]
1254[s3;%- &]
1255[s4;%- &]
1256[s5;:Ctrl`:`:SetRect`(const Rect`&`):%- [@(0.0.255) void]_[* SetRect]([@(0.0.255) const]_[_^`:`:Rect^ R
1257ect][@(0.0.255) `&]_[*@3 r])&]
1258[s2;b17;a17; Sets left`-top logical position (in view area).&]
1259[s7;i1120;a17; [%-*C@3 r]-|Rectangle determines left`-top position.&]
1260[s3;%- &]
1261[s4;%- &]
1262[s5;:Ctrl`:`:SetRect`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* SetRect]([@(0.0.255) int
1263]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&]
1264[s2;b17;a17; Sets left`-top logical position (in view area).&]
1265[s7;i1120;a17; [%-*C@3 x]-|Distance between parent rectangle left`-edge
1266and Ctrl.&]
1267[s7;i1120;a17; [%-*C@3 y]-|Distance between parent rectangle top`-edge
1268and Ctrl.&]
1269[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&]
1270[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&]
1271[s3;%- &]
1272[s4;%- &]
1273[s5;:Ctrl`:`:SetRectX`(int`,int`):%- [@(0.0.255) void]_[* SetRectX]([@(0.0.255) int]_[*@3 x],
1274 [@(0.0.255) int]_[*@3 cx])&]
1275[s2;b17;a17; Sets left horizontal logical position (in view area).&]
1276[s7;i1120;a17; [%-*C@3 x]-|Distance between parent rectangle left`-edge
1277and Ctrl.&]
1278[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&]
1279[s3;%- &]
1280[s4;%- &]
1281[s5;:Ctrl`:`:SetRectY`(int`,int`):%- [@(0.0.255) void]_[* SetRectY]([@(0.0.255) int]_[*@3 y],
1282 [@(0.0.255) int]_[*@3 cy])&]
1283[s2;b17;a17; Sets top vertical logical position (in view area).&]
1284[s7;i1120;a17; [%-*C@3 y]-|Distance between parent rectangle top`-edge
1285and Ctrl.&]
1286[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&]
1287[s3;%- &]
1288[s4;%- &]
1289[s5;:Ctrl`:`:SetFramePos`(Ctrl`:`:LogPos`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrame
1290Pos]([_^`:`:Ctrl`:`:LogPos^ LogPos]_[*@3 p])&]
1291[s2;b17;a17; Sets logical position of Ctrl in frame area.&]
1292[s7;i1120;a17; [%-*C@3 p]-|Logical position.&]
1293[s7;i1120;a17; [*/ Return value]-|`*this.&]
1294[s3;%- &]
1295[s4;%- &]
1296[s5;:Ctrl`:`:SetFramePos`(Ctrl`:`:Logc`,Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&
1297]_[* SetFramePos]([_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 x], [_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 y])&]
1298[s2;b17;a17; Sets logical position by individual coordinates (in
1299frame area).&]
1300[s7;i1120;a17; [%-*C@3 x]-|Horizontal logical position.&]
1301[s7;i1120;a17; [%-*C@3 y]-|Vertical logical postion.&]
1302[s7;i1120;a17; [*/ Return value]-|`*this.&]
1303[s3;%- &]
1304[s4;%- &]
1305[s5;:Ctrl`:`:SetFramePosX`(Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrameP
1306osX]([_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 x])&]
1307[s2;b17;a17; Sets horizontal logical position only (in frame area).&]
1308[s7;i1120;a17; [%-*C@3 x]-|Horizontal logical position.&]
1309[s7;i1120;a17; [*/ Return value]-|`*this.&]
1310[s3;%- &]
1311[s4;%- &]
1312[s5;:Ctrl`:`:SetFramePosY`(Ctrl`:`:Logc`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetFrameP
1313osY]([_^`:`:Ctrl`:`:Logc^ Logc]_[*@3 y])&]
1314[s2;b17;a17; Sets vertical logical position only (in frame area).&]
1315[s7;i1120;a17; [%-*C@3 y]-|Vertical logical position.&]
1316[s7;i1120;a17; [*/ Return value]-|`*this.&]
1317[s3;%- &]
1318[s4;%- &]
1319[s5;:Ctrl`:`:SetFrameRect`(const Rect`&`):%- [@(0.0.255) void]_[* SetFrameRect]([@(0.0.255) c
1320onst]_[_^`:`:Rect^ Rect][@(0.0.255) `&]_[*@3 r])&]
1321[s2;b17;a17; Sets left`-top logical position (in frame area).&]
1322[s7;i1120;a17; [%-*C@3 r]-|Rectangle determines left`-top position.&]
1323[s3;%- &]
1324[s4;%- &]
1325[s5;:Ctrl`:`:SetFrameRect`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* SetFrameRect]([@(0.0.255) i
1326nt]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&]
1327[s2;b17;a17; Sets left`-top logical position (in frame area).&]
1328[s7;i1120;a17; [%-*C@3 x]-|Distance between parent rectangle left`-edge
1329and Ctrl.&]
1330[s7;i1120;a17; [%-*C@3 y]-|Distance between parent rectangle top`-edge
1331and Ctrl.&]
1332[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&]
1333[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&]
1334[s3;%- &]
1335[s4;%- &]
1336[s5;:Ctrl`:`:SetFrameRectX`(int`,int`):%- [@(0.0.255) void]_[* SetFrameRectX]([@(0.0.255) i
1337nt]_[*@3 x], [@(0.0.255) int]_[*@3 cx])&]
1338[s2;b17;a17; Sets left horizontal logical position (in frame area).&]
1339[s7;i1120;a17; [%-*C@3 x]-|Distance between parent rectangle left`-edge
1340and Ctrl.&]
1341[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&]
1342[s3;%- &]
1343[s4;%- &]
1344[s5;:Ctrl`:`:SetFrameRectY`(int`,int`):%- [@(0.0.255) void]_[* SetFrameRectY]([@(0.0.255) i
1345nt]_[*@3 y], [@(0.0.255) int]_[*@3 cy])&]
1346[s2;b17;a17; Sets top vertical logical position (in frame area).&]
1347[s7;i1120;a17; [%-*C@3 y]-|Distance between parent rectangle top`-edge
1348and Ctrl.&]
1349[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&]
1350[s3;%- &]
1351[s4;%- &]
1352[s5;:Ctrl`:`:InFrame`(`)const:%- [@(0.0.255) bool]_[* InFrame]()_[@(0.0.255) const]&]
1353[s7;i1120;a17; [*/ Return value]-|true when Ctrl has position in frame
1354area.&]
1355[s3;%- &]
1356[s4;%- &]
1357[s5;:Ctrl`:`:InView`(`)const:%- [@(0.0.255) bool]_[* InView]()_[@(0.0.255) const]&]
1358[s7;i1120;a17; [*/ Return value]-|true when Ctrl has position in view
1359area.&]
1360[s3;%- &]
1361[s4;%- &]
1362[s5;:Ctrl`:`:GetPos`(`)const:%- [_^`:`:Ctrl`:`:LogPos^ LogPos]_[* GetPos]()_[@(0.0.255) con
1363st]&]
1364[s7;i1120;a17; [*/ Return value]-|Logical position of Ctrl&]
1365[s3;%- &]
1366[s4;%- &]
1367[s5;:Ctrl`:`:RefreshLayout`(`):%- [@(0.0.255) void]_[* RefreshLayout]()&]
1368[s2;b17;a17; Recomputes layout for Ctrl. This includes calling FrameLayout
1369for all frames and calling Layout virtual method. Layout of child
1370widgets is recomputed if their size changes.&]
1371[s3;%- &]
1372[s4;%- &]
1373[s5;:Ctrl`:`:RefreshLayoutDeep`(`):%- [@(0.0.255) void]_[* RefreshLayoutDeep]()&]
1374[s2; Recomputes layout for the whole Ctrl tree `- unlike RefreshLayout,
1375recomputes layout of all descendants regardless whether their
1376size has changed.&]
1377[s3;%- &]
1378[s4;%- &]
1379[s5;:Ctrl`:`:RefreshParentLayout`(`):%- [@(0.0.255) void]_[* RefreshParentLayout]()&]
1380[s2;b17;a17; If Ctrl has parent, calls parent`->RefreshLayout().&]
1381[s3;%- &]
1382[s4;%- &]
1383[s5;:Ctrl`:`:UpdateLayout`(`):%- [@(0.0.255) void]_[* UpdateLayout]()&]
1384[s2; Recomputes layout of widget by recalculating its frame coverage,
1385then, if view size has changed, calls Layout method (this is
1386the difference from RefreshLayout, which calls Layout always).
1387Layout of child widgets is recomputed if their size changes.&]
1388[s3;%- &]
1389[s4;%- &]
1390[s5;:Ctrl`:`:UpdateParentLayout`(`):%- [@(0.0.255) void]_[* UpdateParentLayout]()&]
1391[s2; Calls UpdateLayout for parent (if exists).&]
1392[s3;%- &]
1393[s4;%- &]
1394[s5;:Ctrl`:`:LeftPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* LeftPos]([@(0.0.255) i
1395nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&]
1396[s2;b17;a17; Sets left horizontal position (in view area).&]
1397[s7;i1120;a17; [%-*C@3 a]-|Distance from left border of parent.&]
1398[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&]
1399[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1400[s3;%- &]
1401[s4;%- &]
1402[s5;:Ctrl`:`:RightPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* RightPos]([@(0.0.255) i
1403nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&]
1404[s2;b17;a17; Sets right horizontal position (in view area).&]
1405[s7;i1120;a17; [%-*C@3 a]-|Distance from the right border of parent.&]
1406[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&]
1407[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1408[s3;%- &]
1409[s4;%- &]
1410[s5;:Ctrl`:`:TopPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* TopPos]([@(0.0.255) i
1411nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&]
1412[s2;b17;a17; Sets top vertical position (in view area).&]
1413[s7;i1120;a17; [%-*C@3 a]-|Distance from the top border of parent.&]
1414[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&]
1415[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1416[s3;%- &]
1417[s4;%- &]
1418[s5;:Ctrl`:`:BottomPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* BottomPos]([@(0.0.255) i
1419nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&]
1420[s2;b17;a17; Sets bottom vertical position (in view area).&]
1421[s7;i1120;a17; [%-*C@3 a]-|Distance from the bottom border of parent.&]
1422[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&]
1423[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1424[s3;%- &]
1425[s4;%- &]
1426[s5;:Ctrl`:`:HSizePos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HSizePos]([@(0.0.255) i
1427nt]_[*@3 a]_`=_[@3 0], [@(0.0.255) int]_[*@3 b]_`=_[@3 0])&]
1428[s2;b17;a17; Sets horizontal sizing position (in view area).&]
1429[s7;i1120;a17; [%-*C@3 a]-|Distance from left border of parent.&]
1430[s7;i1120;a17; [%-*C@3 b]-|Distance from right border of parent.&]
1431[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1432[s3;%- &]
1433[s4;%- &]
1434[s5;:Ctrl`:`:VSizePos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* VSizePos]([@(0.0.255) i
1435nt]_[*@3 a]_`=_[@3 0], [@(0.0.255) int]_[*@3 b]_`=_[@3 0])&]
1436[s2;b17;a17; Sets vertical sizing position (in view area).&]
1437[s7;i1120;a17; [%-*C@3 a]-|Distance form top border of parent.&]
1438[s7;i1120;a17; [%-*C@3 b]-|Distance from bottom border of parent.&]
1439[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1440[s3;%- &]
1441[s4;%- &]
1442[s5;:Ctrl`:`:SizePos`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SizePos]()&]
1443[s2;b17;a17; Same as VSizePos().HSizePos().&]
1444[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1445[s3;%- &]
1446[s4;%- &]
1447[s5;:Ctrl`:`:HCenterPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HCenterPos]([@(0.0.255) i
1448nt]_[*@3 size]_`=_STDSIZE, [@(0.0.255) int]_[*@3 delta]_`=_[@3 0])&]
1449[s2;b17;a17; Horizontal centered position (in view area).&]
1450[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&]
1451[s7;i1120;a17; [%-*C@3 delta]-|Offset from centered position (rarely
1452used).&]
1453[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1454[s3;%- &]
1455[s4;%- &]
1456[s5;:Ctrl`:`:VCenterPos`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* VCenterPos]([@(0.0.255) i
1457nt]_[*@3 size]_`=_STDSIZE, [@(0.0.255) int]_[*@3 delta]_`=_[@3 0])&]
1458[s2;b17;a17; Vertical centered position (in view area).&]
1459[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&]
1460[s7;i1120;a17; [%-*C@3 delta]-|Offset from centered position (rarely
1461used).&]
1462[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1463[s3;%- &]
1464[s4;%- &]
1465[s5;:Ctrl`:`:LeftPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* LeftPosZ]([@(0.0.255) i
1466nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&]
1467[s2;b17;a17; Sets left horizontal [/ zoomed ]position (in view area).
1468Distances are recalculated using zoom factor to accommodate size
1469differences between standard font used during layout design and
1470actual standard font.&]
1471[s7;i1120;a17; [%-*C@3 a]-|Distance from the left border of parent.&]
1472[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&]
1473[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1474[s3;%- &]
1475[s4;%- &]
1476[s5;:Ctrl`:`:RightPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* RightPosZ]([@(0.0.255) i
1477nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&]
1478[s2;b17;a17; Sets right horizontal [/ zoomed ]position (in view area).
1479Distances are recalculated using zoom factor to accommodate size
1480differences between standard font used during layout design and
1481actual standard font.&]
1482[s7;i1120;a17; [%-*C@3 a]-|Distance from the right border of parent.&]
1483[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&]
1484[s2;b17;a17; [*/ Return value]-|`*this for method chaining.&]
1485[s3;%- &]
1486[s4;%- &]
1487[s5;:Ctrl`:`:TopPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* TopPosZ]([@(0.0.255) i
1488nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&]
1489[s2;b17;a17; Sets top vertical [/ zoomed ]position (in view area).
1490Distances are recalculated using zoom factor to accommodate size
1491differences between standard font used during layout design and
1492actual standard font.&]
1493[s7;i1120;a17; [%-*C@3 a]-|Distance from the top border of parent.&]
1494[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&]
1495[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1496[s3;%- &]
1497[s4;%- &]
1498[s5;:Ctrl`:`:BottomPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* BottomPosZ]([@(0.0.255) i
1499nt]_[*@3 a], [@(0.0.255) int]_[*@3 size]_`=_STDSIZE)&]
1500[s2;b17;a17; Sets bottom vertical [/ zoomed ]position (in view area).
1501Distances are recalculated using zoom factor to accommodate size
1502differences between standard font used during layout design and
1503actual standard font.&]
1504[s7;i1120;a17; [%-*C@3 a]-|Distance from the bottom border of parent.&]
1505[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&]
1506[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1507[s3;%- &]
1508[s4;%- &]
1509[s5;:Ctrl`:`:HSizePosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HSizePosZ]([@(0.0.255) i
1510nt]_[*@3 a]_`=_[@3 0], [@(0.0.255) int]_[*@3 b]_`=_[@3 0])&]
1511[s2;b17;a17; Sets vertical [/ zoomed ]sizing position (in view area).
1512Distances are recalculated using zoom factor to accommodate size
1513differences between standard font used during layout design and
1514actual standard font.&]
1515[s7;i1120;a17; [%-*C@3 a]-|Distance form top border of parent.&]
1516[s7;i1120;a17; [%-*C@3 b]-|Distance from bottom border of parent.&]
1517[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1518[s3;%- &]
1519[s4;%- &]
1520[s5;:Ctrl`:`:VSizePosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* VSizePosZ]([@(0.0.255) i
1521nt]_[*@3 a]_`=_[@3 0], [@(0.0.255) int]_[*@3 b]_`=_[@3 0])&]
1522[s2;b17;a17; Sets vertical [/ zoomed ]sizing position (in view area).
1523Distances are recalculated using zoom factor to accommodate size
1524differences between standard font used during layout design and
1525actual standard font.&]
1526[s7;i1120;a17; [%-*C@3 a]-|Distance form top border of parent.&]
1527[s7;i1120;a17; [%-*C@3 b]-|Distance from bottom border of parent.&]
1528[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1529[s3;%- &]
1530[s4;%- &]
1531[s5;:Ctrl`:`:HCenterPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HCenterPosZ]([@(0.0.255) i
1532nt]_[*@3 size]_`=_STDSIZE, [@(0.0.255) int]_[*@3 delta]_`=_[@3 0])&]
1533[s2;b17;a17; Horizontal centered [/ zoomed ]position (in view area).
1534Distances are recalculated using zoom factor to accommodate size
1535differences between standard font used during layout design and
1536actual standard font.&]
1537[s7;i1120;a17; [%-*C@3 size]-|Horizontal size.&]
1538[s7;i1120;a17; [%-*C@3 delta]-|Offset from centered position (rarely
1539used).&]
1540[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1541[s3;%- &]
1542[s4;%- &]
1543[s5;:Ctrl`:`:VCenterPosZ`(int`,int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* VCenterPosZ]([@(0.0.255) i
1544nt]_[*@3 size]_`=_STDSIZE, [@(0.0.255) int]_[*@3 delta]_`=_[@3 0])&]
1545[s2;b17;a17; Vertical centered [/ zoomed] position (in view area).
1546Distances are recalculated using zoom factor to accommodate size
1547differences between standard font used during layout design and
1548actual standard font.&]
1549[s7;i1120;a17; [%-*C@3 size]-|Vertical size.&]
1550[s7;i1120;a17; [%-*C@3 delta]-|Offset from centered position (rarely
1551used).&]
1552[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1553[s3;%- &]
1554[s4;%- &]
1555[s5;:Ctrl`:`:GetRect`(`)const:%- [_^`:`:Rect^ Rect]_[* GetRect]()_[@(0.0.255) const]&]
1556[s7;i1120;a17; [*/ Return value]-|Returns current position in parent.
1557It is either position in view or frame coordinates.&]
1558[s3;%- &]
1559[s4;%- &]
1560[s5;:Ctrl`:`:GetScreenRect`(`)const:%- [_^`:`:Rect^ Rect]_[* GetScreenRect]()_[@(0.0.255) c
1561onst]&]
1562[s7;i1120;a17; [*/ Return value]-|Returns current position in absolute
1563screen coordinates.&]
1564[s3;%- &]
1565[s4;%- &]
1566[s5;:Ctrl`:`:GetView`(`)const:%- [_^`:`:Rect^ Rect]_[* GetView]()_[@(0.0.255) const]&]
1567[s7;i1120;a17; [*/ Return value]-|Returns position of view rectangle
1568in frame coordinates.&]
1569[s3;%- &]
1570[s4;%- &]
1571[s5;:Ctrl`:`:GetScreenView`(`)const:%- [_^`:`:Rect^ Rect]_[* GetScreenView]()_[@(0.0.255) c
1572onst]&]
1573[s7;i1120;a17; [*/ Return value]-|Returns position of view rectangle
1574in absolute screen coordinates.&]
1575[s3;%- &]
1576[s4;%- &]
1577[s5;:Ctrl`:`:GetSize`(`)const:%- [_^`:`:Size^ Size]_[* GetSize]()_[@(0.0.255) const]&]
1578[s7;i1120;a17; [*/ Return value]-|Returns size of view rectangle of
1579Ctrl.&]
1580[s3;%- &]
1581[s4;%- &]
1582[s5;:Ctrl`:`:GetVisibleScreenRect`(`)const:%- [_^`:`:Rect^ Rect]_[* GetVisibleScreenRect](
1583)_[@(0.0.255) const]&]
1584[s7;i1120;a17; [*/ Return value]-|Returns current position in parent
1585intersected with either parent`'s visible screen rectangle for
1586frame Ctrl (as obtained using GetVisibleScreenRect) or parent`'s
1587screen view rectangle for view Ctrl (obtained using GetVisibleScreenView).
1588This method is useful when rectangle of Ctrl exceeds it`'s parent
1589area `- in this case this method returns part of Ctrl that is
1590not clipped out by parent`'s are limits.&]
1591[s3;%- &]
1592[s4;%- &]
1593[s5;:Ctrl`:`:GetVisibleScreenView`(`)const:%- [_^`:`:Rect^ Rect]_[* GetVisibleScreenView](
1594)_[@(0.0.255) const]&]
1595[s7;i1120;a17; [*/ Return value]-|Returns current position of view area
1596intersected with either parent`'s visible screen rectangle for
1597frame Ctrl (as obtained using GetVisibleScreenRect) or parent`'s
1598screen view rectangle for view Ctrl (obtained using GetVisibleScreenView).
1599This method is useful when rectangle of Ctrl exceeds it`'s parent
1600area `- in this case this method returns part of Ctrl view that
1601is not clipped out by parent`'s are limits.&]
1602[s3;%- &]
1603[s4;%- &]
1604[s5;:Ctrl`:`:GetWorkArea`(`)const:%- [_^Rect^ Rect]_[* GetWorkArea]()_[@(0.0.255) const]&]
1605[s2; Returns the work area (the maximum rectangle that window can
1606use) for screen that this window is in.&]
1607[s3;%- &]
1608[s4;%- &]
1609[s5;:Ctrl`:`:AddFrameSize`(int`,int`)const:%- [_^`:`:Size^ Size]_[* AddFrameSize]([@(0.0.255) i
1610nt]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])_[@(0.0.255) const]&]
1611[s2;b17;a17; Computes size of Ctrl for given size of view and actual
1612set of frames.&]
1613[s7;i1120;a17; [%-*C@3 cx]-|Width.&]
1614[s7;i1120;a17; [%-*C@3 cy]-|Height.&]
1615[s7;i1120;a17; [*/ Return value]-|Size of Ctrl that would have requested
1616view size.&]
1617[s3;%- &]
1618[s4;%- &]
1619[s5;:Ctrl`:`:AddFrameSize`(Size`)const:%- [_^`:`:Size^ Size]_[* AddFrameSize]([_^`:`:Size^ S
1620ize]_[*@3 sz])_[@(0.0.255) const]&]
1621[s2;b17;a17; Same as AddFrameSize(sz.cx, sz.cy).&]
1622[s7;i1120;a17; [%-*C@3 sz]-|Size.&]
1623[s7;i1120;a17; [*/ Return value]-|Size of Ctrl that would have requested
1624view size.&]
1625[s3; &]
1626[s4;%- &]
1627[s5;:Ctrl`:`:Refresh`(const Rect`&`):%- [@(0.0.255) void]_[* Refresh]([@(0.0.255) const]_[_^Rect^ R
1628ect][@(0.0.255) `&]_[*@3 r])&]
1629[s2; Marks requested rectangle of view area for repainting. Actual
1630repaint is deferred for performance reasons.&]
1631[s7;i1120;a17; [%-*C@3 r]-|Rectangle in view.&]
1632[s3;%- &]
1633[s4;%- &]
1634[s5;:Ctrl`:`:Refresh`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* Refresh]([@(0.0.255) int
1635]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&]
1636[s2;b17;a17; Marks requested rectangle of view area for repainting.
1637Actual repaint is deferred for performance reasons.&]
1638[s7;i1120;a17; [%-*C@3 x]-|Left position of rectangle.&]
1639[s7;i1120;a17; [%-*C@3 y]-|Top position of rectangle.&]
1640[s7;i1120;a17; [%-*C@3 cx]-|Width.&]
1641[s7;i1120;a17; [%-*C@3 cy]-|Height.&]
1642[s3;%- &]
1643[s4;%- &]
1644[s5;:Ctrl`:`:Refresh`(`):%- [@(0.0.255) void]_[* Refresh]()&]
1645[s2;b17;a17; Marks whole view area for repainting.&]
1646[s3;%- &]
1647[s4;%- &]
1648[s5;:Ctrl`:`:IsFullRefresh`(`)const:%- [@(0.0.255) bool]_[* IsFullRefresh]()_[@(0.0.255) co
1649nst]&]
1650[s7;i1120;a17; [*/ Return value]-|true when whole view area is marked
1651for repainting but was not repainted yet.&]
1652[s3;%- &]
1653[s4;%- &]
1654[s5;:Ctrl`:`:RefreshFrame`(const Rect`&`):%- [@(0.0.255) void]_[* RefreshFrame]([@(0.0.255) c
1655onst]_[_^`:`:Rect^ Rect][@(0.0.255) `&]_[*@3 r])&]
1656[s2;b17;a17; Marks requested rectangle of frame area for repainting.
1657Actual repainting is deferred for performance reasons.&]
1658[s7;i1120;a17; [%-*C@3 r]-|Area to repaint.&]
1659[s3;%- &]
1660[s4;%- &]
1661[s5;:Ctrl`:`:RefreshFrame`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* RefreshFrame]([@(0.0.255) i
1662nt]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&]
1663[s2;b17;a17; Marks requested rectangle of frame area for repainting.
1664Actual repaint is deferred for performance reasons.&]
1665[s7;i1120;a17; [%-*C@3 x]-|Left position of rectangle.&]
1666[s7;i1120;a17; [%-*C@3 y]-|Top position of rectangle.&]
1667[s7;i1120;a17; [%-*C@3 cx]-|Width.&]
1668[s7;i1120;a17; [%-*C@3 cy]-|Height.&]
1669[s3;%- &]
1670[s4;%- &]
1671[s5;:Ctrl`:`:RefreshFrame`(`):%- [@(0.0.255) void]_[* RefreshFrame]()&]
1672[s2;b17;a17; Marks whole Ctrl area for repainting.&]
1673[s3; &]
1674[s4;%- &]
1675[s5;:Ctrl`:`:ScrollView`(const Rect`&`,int`,int`):%- [@(0.0.255) void]_[* ScrollView]([@(0.0.255) c
1676onst]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r], [@(0.0.255) int]_[*@3 dx],
1677[@(0.0.255) int]_[*@3 dy])&]
1678[s2; Marks requested view rectangle for repainting, indicating that
1679part of this repaint can be done by scrolling current content
1680of rectangle. Note that actual scroll is deferred to repaint
1681and that U`+`+ is still allowed to solve the situation by repainting
1682rather than scrolling.&]
1683[s7;i1120;a17; [%-*C@3 r]-|Area for repainting.&]
1684[s7;i1120;a17; [%-*C@3 dx]-|Horizontal scroll.&]
1685[s7;i1120;a17; [%-*C@3 dy]-|Vertical scroll.&]
1686[s3;%- &]
1687[s4;%- &]
1688[s5;:Ctrl`:`:ScrollView`(int`,int`,int`,int`,int`,int`):%- [@(0.0.255) void]_[* ScrollVie
1689w]([@(0.0.255) int]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx],
1690[@(0.0.255) int]_[*@3 cy], [@(0.0.255) int]_[*@3 dx], [@(0.0.255) int]_[*@3 dy])&]
1691[s2;b17;a17; Marks requested view rectangle for repainting, indicating
1692that part of this repaint can be done by scrolling current content
1693of rectangle. Note that actual scroll is deferred to repaint
1694and that U`+`+ is still allowed to solve the situation by repainting
1695rather than scrolling.&]
1696[s7;i1120;a17; [%-*C@3 r]-|Area for repainting.&]
1697[s7;i1120;a17; [%-*C@3 x]-|Left position of rectangle.&]
1698[s7;i1120;a17; [%-*C@3 y]-|Top position of rectangle.&]
1699[s7;i1120;a17; [%-*C@3 cx]-|Width.&]
1700[s7;i1120;a17; [%-*C@3 cy]-|Height.&]
1701[s7;i1120;a17; [%-*C@3 dx]-|Horizontal scroll.&]
1702[s7;i1120;a17; [%-*C@3 dy]-|Vertical scroll.&]
1703[s3;%- &]
1704[s4;%- &]
1705[s5;:Ctrl`:`:ScrollView`(int`,int`):%- [@(0.0.255) void]_[* ScrollView]([@(0.0.255) int]_[*@3 d
1706x], [@(0.0.255) int]_[*@3 dy])&]
1707[s2;b17;a17; Marks while view area for repainting, indicating that
1708part of this repaint can be done by scrolling current content
1709of rectangle. Note that actual scroll is deferred to repaint
1710and that U`+`+ is still allowed to solve the situation by repainting
1711rather than scrolling.&]
1712[s7;i1120;a17; [%-*C@3 dx]-|Horizontal scroll.&]
1713[s7;i1120;a17; [%-*C@3 dy]-|Vertical scroll.&]
1714[s3;%- &]
1715[s4;%- &]
1716[s5;:Ctrl`:`:ScrollView`(const Rect`&`,Size`):%- [@(0.0.255) void]_[* ScrollView]([@(0.0.255) c
1717onst]_[_^`:`:Rect^ Rect][@(0.0.255) `&]_[*@3 r], [_^`:`:Size^ Size]_[*@3 delta])&]
1718[s2;b17;a17; Same as ScrollView(r, delta.cx, delta.cy).&]
1719[s3;%- &]
1720[s4;%- &]
1721[s5;:Ctrl`:`:ScrollView`(Size`):%- [@(0.0.255) void]_[* ScrollView]([_^`:`:Size^ Size]_[*@3 d
1722elta])&]
1723[s2;b17;a17; Same as ScrollView(delta.cx, delta.cy).&]
1724[s3;%- &]
1725[s4;%- &]
1726[s5;:Ctrl`:`:Sync`(`):%- [@(0.0.255) void]_[* Sync]()&]
1727[s2;b17;a17; Forces immediate repainting of areas marked using Refresh,
1728RefreshFrame or ScrollView methods.&]
1729[s3; &]
1730[s4;%- &]
1731[s5;:Ctrl`:`:Sync`(const Rect`&`):%- [@(0.0.255) void]_[* Sync]([@(0.0.255) const]_[_^Rect^ R
1732ect][@(0.0.255) `&]_[*@3 r])&]
1733[s2; Forces immediate repainting of areas marked using Refresh, RefreshFrame
1734or ScrollView methods, limited with intersection of given rectangle.&]
1735[s7;i1120;a17; [%-*C@3 r]-|Rectangle.&]
1736[s3; &]
1737[s4;%- &]
1738[s5;:Ctrl`:`:OverrideCursor`(const Image`&`):%- [@(0.0.255) static]
1739[_^Image^ Image]_[* OverrideCursor]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m
1740])&]
1741[s2; Overrides mouse cursor to [%-*@3 m]. To end the override, call
1742it again with the Image returned by the override call.&]
1743[s2; &]
1744[s4;%- &]
1745[s5;:Ctrl`:`:DrawCtrl`(Draw`&`,int`,int`):%- [@(0.0.255) void]_[* DrawCtrl]([_^Draw^ Draw][@(0.0.255) `&
1746]_[*@3 w], [@(0.0.255) int]_[*@3 x]_`=_[@3 0], [@(0.0.255) int]_[*@3 y]_`=_[@3 0])&]
1747[s2; Draws Ctrl at specified position. This is intended for utility
1748purposes like taking screen`-shots. This version Draws Ctrl [/ without]
1749background (supplied by parent).&]
1750[s7;i1120;a17; [%-*C@3 w]-|Target Draw.&]
1751[s7;i1120;a17; [%-*C@3 x, ][*C@3 y]-|Position.&]
1752[s3; &]
1753[s4;%- &]
1754[s5;:Ctrl`:`:DrawCtrlWithParent`(Draw`&`,int`,int`):%- [@(0.0.255) void]_[* DrawCtrlWithP
1755arent]([_^Draw^ Draw][@(0.0.255) `&]_[*@3 w], [@(0.0.255) int]_[*@3 x]_`=_[@3 0],
1756[@(0.0.255) int]_[*@3 y]_`=_[@3 0])&]
1757[s2; Draws Ctrl at specified position. This is intended for utility
1758purposes like taking screen`-shots. This version Draws Ctrl [/ with]
1759background (supplied by parent).&]
1760[s7;i1120;a17; [%-*C@3 w]-|Target Draw.&]
1761[s7;i1120;a17; [%-*C@3 x, ][*C@3 y]-|Position.&]
1762[s3;%- &]
1763[s4;%- &]
1764[s5;:Ctrl`:`:HasChild`(Ctrl`*`)const:%- [@(0.0.255) bool]_[* HasChild]([_^`:`:Ctrl^ Ctrl]_`*
1765[*@3 ctrl])_[@(0.0.255) const]&]
1766[s2;b17;a17; Tests whether Ctrl has specified [/ direct] child.&]
1767[s7;i1120;a17; [%-*C@3 ctrl]-|Child.&]
1768[s7;i1120;a17; [*/ Return value]-|true if ctrl is child.&]
1769[s3;%- &]
1770[s4;%- &]
1771[s5;:Ctrl`:`:HasChildDeep`(Ctrl`*`)const:%- [@(0.0.255) bool]_[* HasChildDeep]([_^`:`:Ctrl^ C
1772trl]_`*[*@3 ctrl])_[@(0.0.255) const]&]
1773[s2;b17;a17; Tests whether Ctrl has specified ctrl in its child tree
1774(direct or indirect).&]
1775[s7;i1120;a17; [%-*C@3 ctrl]-|Child.&]
1776[s7;i1120;a17; [*/ Return value]-|true if ctrl is in child tree.&]
1777[s3;%- &]
1778[s4;%- &]
1779[s5;:Ctrl`:`:IgnoreMouse`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* IgnoreMouse]([@(0.0.255) b
1780ool]_[*@3 b]_`=_[@(0.0.255) true])&]
1781[s2;b17;a17; Sets ignore`-mouse flag. When active, Ctrl is ignored
1782for mouse input. That is important for static Ctrls that cover
1783other Ctrls, like LabelBox `- this flag ensures, that mouse input
1784is not consumed by LabelBox, but is distributed to Ctrls that
1785lay inside it.&]
1786[s7;i1120;a17; [%-*C@3 b]-|Value of flag.&]
1787[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1788[s3;%- &]
1789[s4;%- &]
1790[s5;:Ctrl`:`:NoIgnoreMouse`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoIgnoreMouse]()&]
1791[s2;b17;a17; Same as IgnoreMouse(false).&]
1792[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
1793[s3;%- &]
1794[s4;%- &]
1795[s5;:Ctrl`:`:IsIgnoreMouse`(`)const:%- [@(0.0.255) bool]_[* IsIgnoreMouse]()_[@(0.0.255) co
1796nst]&]
1797[s2; Returns the ignore`-mouse flag (see IgnoreMouse).&]
1798[s3;%- &]
1799[s4;%- &]
1800[s5;:Ctrl`:`:HasMouse`(`)const:%- [@(0.0.255) bool]_[* HasMouse]()_[@(0.0.255) const]&]
1801[s7;i1120;a17; [*/ Return value]-|true when Ctrl is target for mouse
1802events.&]
1803[s3;%- &]
1804[s4;%- &]
1805[s5;:Ctrl`:`:HasMouseDeep`(`)const:%- [@(0.0.255) bool]_[* HasMouseDeep]()_[@(0.0.255) cons
1806t]&]
1807[s2; Returns true if Ctrl or any of its descendants is target for
1808mouse events.&]
1809[s3;%- &]
1810[s4;%- &]
1811[s5;:Ctrl`:`:HasMouseInFrame`(const Rect`&`)const:%- [@(0.0.255) bool]_[* HasMouseInFrame
1812]([@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r])_[@(0.0.255) const]&]
1813[s7;i1120;a17; [%-*C@3 r]-|rectangle in frame area.&]
1814[s7;i1120;a17; [*/ Return value]-|true when Ctrl is target for mouse
1815events and mouse pointer is inside specified frame area rectangle.&]
1816[s3; &]
1817[s4;%- &]
1818[s5;:Ctrl`:`:HasMouseIn`(const Rect`&`)const:%- [@(0.0.255) bool]_[* HasMouseIn]([@(0.0.255) c
1819onst]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 r])_[@(0.0.255) const]&]
1820[s2; Returns true when Ctrl is target for mouse events and mouse
1821pointer is inside specified view area rectangle.&]
1822[s3;%- &]
1823[s4;%- &]
1824[s5;:Ctrl`:`:GetMouseViewPos`(`)const:%- [_^Point^ Point]_[* GetMouseViewPos]()_[@(0.0.255) c
1825onst]&]
1826[s2; Returns the position of mouse relative to the view area. Note
1827that the result can negative point or point outside &]
1828[s3;%- &]
1829[s4;%- &]
1830[s5;:Ctrl`:`:GetMouseCtrl`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetMouseCtrl](
1831)&]
1832[s7;i1120;a17; Returns current target for mouse events.&]
1833[s3;%- &]
1834[s4;%- &]
1835[s5;:Ctrl`:`:IgnoreMouseClick`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* IgnoreMouseCl
1836ick]()&]
1837[s2;b17;a17; Forces framework to ignore all mouse events till next
1838button`-up event. This is good tool to solve some corner cases,
1839like popup window closed by button click when mouse pointer is
1840over its owner as well (TopWindow`::Close calls this function).&]
1841[s3;%- &]
1842[s4;%- &]
1843[s5;:Ctrl`:`:IgnoreMouseUp`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* IgnoreMouseUp]()
1844&]
1845[s2;b17;a17; Invokes IgnoreMouseClick if some of mouse buttons is
1846pressed.&]
1847[s3;%- &]
1848[s4;%- &]
1849[s5;:Ctrl`:`:UnIgnoreMouse`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* UnIgnoreMouse]()
1850&]
1851[s2; Cancels the effect or IgnoreMouseClick and IgnoreMouseUp (clicks
1852are not ignored anymore).&]
1853[s3;%- &]
1854[s4;%- &]
1855[s5;:Ctrl`:`:SetCapture`(`):%- [@(0.0.255) bool]_[* SetCapture]()&]
1856[s2;b17;a17; Sets mouse capture for Ctrl. This method should be called
1857in MouseLeft or MouseRight methods only. Ctrl will receive all
1858mouse input until ReleaseCapture is called or mouse button is
1859released.&]
1860[s7;i1120;a17; [*/ Return value]-|True when SetCapture was successful
1861(usually you can ignore this return value).&]
1862[s3;%- &]
1863[s4;%- &]
1864[s5;:Ctrl`:`:ReleaseCapture`(`):%- [@(0.0.255) bool]_[* ReleaseCapture]()&]
1865[s2;b17;a17; Release Ctrl`'s mouse capture.&]
1866[s7;i1120;a17; [*/ Return value]-|True when mouse capture was released.&]
1867[s3;%- &]
1868[s4;%- &]
1869[s5;:Ctrl`:`:HasCapture`(`)const:%- [@(0.0.255) bool]_[* HasCapture]()_[@(0.0.255) const]&]
1870[s7;i1120;a17; [*/ Return value]-|True if Ctrl has mouse capture.&]
1871[s3;%- &]
1872[s3;%- &]
1873[s4;%- &]
1874[s5;:Ctrl`:`:GetCaptureCtrl`(`):%- [@(0.0.255) static] [_^Ctrl^ Ctrl]_`*[* GetCaptureCtrl](
1875)&]
1876[s2; Returns a pointer to the Ctrl that is currently capturing the
1877mouse.&]
1878[s3; &]
1879[s4;%- &]
1880[s5;:Ctrl`:`:ReleaseCtrlCapture`(`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* ReleaseCtrl
1881Capture]()&]
1882[s2;b17;a17; If any of application`'s Ctrls has mouse capture, it
1883is released.&]
1884[s7;i1120;a17; [*/ Return value]-|True if mouse capture was released.&]
1885[s3;%- &]
1886[s4;%- &]
1887[s5;:Ctrl`:`:SetFocus`(`):%- [@(0.0.255) bool]_[* SetFocus]()&]
1888[s2;b17;a17; Sets keyboard input focus to the Ctrl. Ctrl is first
1889to receive keyboard events via Key method as long as it has keyboard
1890input focus. When Ctrl denies keyboard event (by returning false
1891from Key method), it is passed to its parent`'s Key method and
1892so on.&]
1893[s7;i1120;a17; [*/ Return value]-|True if setting focus was successful.&]
1894[s3;%- &]
1895[s4;%- &]
1896[s5;:Ctrl`:`:HasFocus`(`)const:%- [@(0.0.255) bool]_[* HasFocus]()_[@(0.0.255) const]&]
1897[s7;i1120;a17; [*/ Return value]-|True if Ctrl has keyboard input focus.&]
1898[s3;%- &]
1899[s4;%- &]
1900[s5;:Ctrl`:`:HasFocusDeep`(`)const:%- [@(0.0.255) bool]_[* HasFocusDeep]()_[@(0.0.255) cons
1901t]&]
1902[s7;i1120;a17; [*/ Return value]-|True if Ctrl or any of its descendants
1903has focus or is equal to GetOwnerCtrl of any active popup.&]
1904[s3;%- &]
1905[s4;%- &]
1906[s5;:Ctrl`:`:WantFocus`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* WantFocus]([@(0.0.255) b
1907ool]_[*@3 ft]_`=_[@(0.0.255) true])&]
1908[s2;b17;a17; Indicates whether Ctrl wants focus to be passed to it
1909by U`+`+, when navigating through the dialog using Tab (or Shift`+Tab)
1910key.&]
1911[s7;i1120;a17; [%-*C@3 ft]-|true to indicate that Ctrl wants focus.&]
1912[s7;i1120;a17; [*/ Return value]-|Same Ctrl for method chaining.&]
1913[s3;%- &]
1914[s4;%- &]
1915[s5;:Ctrl`:`:NoWantFocus`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoWantFocus]()&]
1916[s7;i1120;a17; [*/ Return value]-|Same Ctrl for method chaining.&]
1917[s3;%- &]
1918[s4;%- &]
1919[s5;:Ctrl`:`:IsWantFocus`(`)const:%- [@(0.0.255) bool]_[* IsWantFocus]()_[@(0.0.255) const]&]
1920[s2;b17;a17;%- Checks whether Ctrl has WantFocus acti.&]
1921[s7;i1120;a17; [*/ Return value]-|true, when Ctrl wants focus.&]
1922[s3;%- &]
1923[s4;%- &]
1924[s5;:Ctrl`:`:InitFocus`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* InitFocus]([@(0.0.255) b
1925ool]_[*@3 ft]_`=_[@(0.0.255) true])&]
1926[s2;b17;a17; Indicates that Ctrl is eligible to obtain focus upon
1927opening of dialog or in other similar situations.&]
1928[s7;i1120;a17; [%-*C@3 ft]-|true to indicate Ctrl is eligible.&]
1929[s7;i1120;a17; [*/ Return value]-|Same Ctrl for method chaining.&]
1930[s3;%- &]
1931[s4;%- &]
1932[s5;:Ctrl`:`:NoInitFocus`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoInitFocus]()&]
1933[s2;b17;a17; Same as InitFocus(false).&]
1934[s7;i1120;a17; [*/ Return value]-|Same Ctrl for method chaining.&]
1935[s3;%- &]
1936[s4;%- &]
1937[s5;:Ctrl`:`:IsInitFocus`(`):%- [@(0.0.255) bool]_[* IsInitFocus]()&]
1938[s7;i1120;a17; [*/ Return value]-|true when Ctrl wants init focus.&]
1939[s3;%- &]
1940[s4;%- &]
1941[s5;:Ctrl`:`:SetWantFocus`(`):%- [@(0.0.255) bool]_[* SetWantFocus]()&]
1942[s2;b17;a17; If Ctrl wants focus (WantFocus(true) was called for
1943it), set focus to Ctrl, otherwise nothing happens.&]
1944[s7;i1120;a17; [*/ Return value]-|true if focus was set.&]
1945[s3;%- &]
1946[s4;%- &]
1947[s5;:Ctrl`:`:GetFocusChild`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetFocusChild]()_[@(0.0.255) c
1948onst]&]
1949[s2;b17;a17; If any immediate child of Ctrl has focus, returns pointer
1950to it.&]
1951[s7;i1120;a17; [*/ Return value]-|Pointer to child with focus or NULL
1952if no such exists.&]
1953[s3;%- &]
1954[s4;%- &]
1955[s5;:Ctrl`:`:GetFocusChildDeep`(`)const:%- [_^`:`:Ctrl^ Ctrl]_`*[* GetFocusChildDeep]()_[@(0.0.255) c
1956onst]&]
1957[s2;b17;a17; If any child of Ctrl`'s child tree has focus, returns
1958pointer to it.&]
1959[s7;i1120;a17; [*/ Return value]-|&]
1960[s3;%- &]
1961[s4;%- &]
1962[s5;:Ctrl`:`:CancelModeDeep`(`):%- [@(0.0.255) void]_[* CancelModeDeep]()&]
1963[s2;b17;a17; Calls CancelMode virtual method for Ctrl and all of
1964its descendants.&]
1965[s3;%- &]
1966[s4;%- &]
1967[s5;:Ctrl`:`:SetCaret`(int`,int`,int`,int`):%- [@(0.0.255) void]_[* SetCaret]([@(0.0.255) i
1968nt]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&]
1969[s2;b17;a17; Place caret rectangle block at given position in view
1970area. Caret rectangle is full flashing box and usually indicates
1971place where text is to entered. Ctrl can have just one caret.
1972Only Ctrl with focus has its caret displayed (also means that
1973you do not need to remove caret when Ctrl goes out of focus).&]
1974[s7;i1120;a17; [%-*C@3 x]-|X position.&]
1975[s7;i1120;a17; [%-*C@3 y]-|Y position.&]
1976[s7;i1120;a17; [%-*C@3 cx]-|Horizontal size.&]
1977[s7;i1120;a17; [%-*C@3 cy]-|Vertical size.&]
1978[s3;%- &]
1979[s4;%- &]
1980[s5;:Ctrl`:`:SetCaret`(const `:`:Rect`&`):%- [@(0.0.255) void]_[* SetCaret]([@(0.0.255) con
1981st]_[_^`:`:Rect^ Rect][@(0.0.255) `&]_[*@3 r])&]
1982[s2;b17;a17; Place caret rectangle block at given position in view
1983area. Caret rectangle is full flashing box and usually indicates
1984place where text is to entered. Ctrl can have just one caret.
1985Only Ctrl with focus has its caret displayed (also means that
1986you do not need to remove caret when Ctrl goes out of focus).&]
1987[s7;i1120;a17; [%-*C@3 r]-|Caret block rectangle.&]
1988[s3;%- &]
1989[s4;%- &]
1990[s5;:Ctrl`:`:KillCaret`(`):%- [@(0.0.255) void]_[* KillCaret]()&]
1991[s2;b17;a17; Removes caret from Ctrl.&]
1992[s3;%- &]
1993[s4;%- &]
1994[s5;:Ctrl`:`:GetFocusCtrl`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetFocusCtrl](
1995)&]
1996[s7;i1120;a17; [*/ Return value]-|Ctrl that has focus or NULL if no
1997Ctrl of application has it.&]
1998[s3; &]
1999[s4;%- &]
2000[s5;:Ctrl`:`:IterateFocusForward`(Ctrl`*`,Ctrl`*`,bool`,bool`,bool`):%- [@(0.0.255) sta
2001tic] [@(0.0.255) bool]_[* IterateFocusForward]([_^Ctrl^ Ctrl]_`*[*@3 ctrl],
2002[_^Ctrl^ Ctrl]_`*[*@3 top], [@(0.0.255) bool]_[*@3 noframe]_`=_[@(0.0.255) false],
2003[@(0.0.255) bool]_[*@3 init]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 all]_`=_[@(0.0.255) f
2004alse])&]
2005[s2; Tries to move focus to next `"appropriate`" Ctrl, like when
2006Tab key is pressed in the dialog. Appropriate Ctrl needs to have
2007WantFocus flag, be visible and enabled.&]
2008[s7;i1120;a17; [%-*C@3 ctrl]-|Ctrl with focus.&]
2009[s7;i1120;a17; [%-*C@3 top]-|Top Ctrl `- function cycles only between
2010this Ctrl subtree.&]
2011[s7;i1120;a17; [%-*C@3 noframe]-|Indicates that frame Ctrls are to be
2012excluded.&]
2013[s7;i1120;a17; [*/ Return value]-|true when focus was successfully moved.&]
2014[s3; &]
2015[s4;%- &]
2016[s5;:Ctrl`:`:IterateFocusBackward`(Ctrl`*`,Ctrl`*`,bool`,bool`):%- [@(0.0.255) static]
2017[@(0.0.255) bool]_[* IterateFocusBackward]([_^Ctrl^ Ctrl]_`*[*@3 ctrl],
2018[_^Ctrl^ Ctrl]_`*[*@3 top], [@(0.0.255) bool]_[*@3 noframe]_`=_[@(0.0.255) false],
2019[@(0.0.255) bool]_[*@3 all]_`=_[@(0.0.255) false])&]
2020[s2; Tries to move focus to previous appropriate Ctrl, like when
2021Tab key is pressed in the dialog. `"Appropriate`" Ctrl needs
2022to have WantFocus flag, be visible and enabled.&]
2023[s7;i1120;a17; [%-*C@3 ctrl]-|Ctrl with focus.&]
2024[s7;i1120;a17; [%-*C@3 top]-|Top Ctrl `- function cycles only between
2025this Ctrl subtree.&]
2026[s7;i1120;a17; [%-*C@3 noframe]-|Indicates that frame Ctrls are to be
2027excluded.&]
2028[s7;i1120;a17; [*C@3 init]-|Ctrl must have InitFocus flag.&]
2029[s7;i1120;a17; [*/ Return value]-|true when focus was successfully moved.&]
2030[s3;%- &]
2031[s4;%- &]
2032[s5;:Ctrl`:`:AccessKeyBit`(byte`):%- [@(0.0.255) static] [_^`:`:dword^ dword]_[* AccessKeyB
2033it]([_^`:`:byte^ byte]_[*@3 accesskey])&]
2034[s2;b17;a17; Returns bit`-mask for specified access`-key.&]
2035[s7;i1120;a17; [%-*C@3 accesskey]-|Access`-key. It should be plain ASCII
2036value of access`-key.&]
2037[s7;i1120;a17; [*/ Return value]-|Access`-key bitmask. Note that only
2038`'A`' `- `'Z`' have distinct bit`-masks as those are only access`-keys
2039distributed automatically.&]
2040[s3;%- &]
2041[s4;%- &]
2042[s5;:Ctrl`:`:GetAccessKeysDeep`(`)const:%- [_^`:`:dword^ dword]_[* GetAccessKeysDeep]()_[@(0.0.255) c
2043onst]&]
2044[s5;:Ctrl`:`:GetAccessKeysDeep`(`)const:%- [_^`:`:dword^ dword]_[* GetAccessKeysDeep]()_[@(0.0.255) c
2045onst]&]
2046[s2;b17;a17; Returns binary or of Ctrl`'s GetAccessKey method results
2047with the result of calling GetAccessKeyDeep for all children.
2048In other words, returns key coverage for the whole Ctrl tree.&]
2049[s7;i1120;a17; [*/ Return value]-|Access`-keys used by Ctrl and its
2050descendants.&]
2051[s3;%- &]
2052[s4;%- &]
2053[s5;:Ctrl`:`:DistributeAccessKeys`(`):%- [@(0.0.255) void]_[* DistributeAccessKeys]()&]
2054[s2;b17;a17; Triggers automatic distribution of access keys. This
2055is implemented as gathering all already used access keys using
2056GetAccessKeys method and then using AssignAccessKeys method with
2057this value to distribute rest of keys (in other words, it is
2058equivalent of AssignAccessKeys(GetAccessKeys())).&]
2059[s3;%- &]
2060[s4;%- &]
2061[s5;:Ctrl`:`:RefreshAccessKeys`(`):%- [@(0.0.255) void]_[* RefreshAccessKeys]()&]
2062[s2;b17;a17; Invokes Refresh for this Ctrl or any descendant with
2063any access`-key assigned.&]
2064[s3;%- &]
2065[s4;%- &]
2066[s5;:Ctrl`:`:VisibleAccessKeys`(`):%- [@(0.0.255) bool]_[* VisibleAccessKeys]()&]
2067[s7;i1120;a17; [*/ Return value]-|True if according to current access`-key
2068model there should be visible graphical representation (usually
2069underline) of access`-keys.&]
2070[s3;%- &]
2071[s4;%- &]
2072[s5;:Ctrl`:`:Show`(bool`):%- [@(0.0.255) void]_[* Show]([@(0.0.255) bool]_[*@3 show]_`=_[@(0.0.255) t
2073rue])&]
2074[s2;b17;a17; Sets visibility flag for Ctrl.&]
2075[s7;i1120;a17; [%-*C@3 show]-|true indicates that Ctrl should be visible.&]
2076[s3;%- &]
2077[s4;%- &]
2078[s5;:Ctrl`:`:Hide`(`):%- [@(0.0.255) void]_[* Hide]()&]
2079[s2;b17;a17; Same as Show(false).&]
2080[s3;%- &]
2081[s4;%- &]
2082[s5;:Ctrl`:`:IsShown`(`)const:%- [@(0.0.255) bool]_[* IsShown]()_[@(0.0.255) const]&]
2083[s7;i1120;a17; [*/ Return value]-|visibility flag for Ctrl.&]
2084[s3;%- &]
2085[s4;%- &]
2086[s5;:Ctrl`:`:IsVisible`(`)const:%- [@(0.0.255) bool]_[* IsVisible]()_[@(0.0.255) const]&]
2087[s7;i1120;a17; [*/ Return value]-|true if Ctrl is currently visible
2088on the screen. Ctrl is visible if it has visibility flag set,
2089its parent is visible and its top`-level Ctrl is open.&]
2090[s3;%- &]
2091[s4;%- &]
2092[s5;:Ctrl`:`:Enable`(bool`):%- [@(0.0.255) void]_[* Enable]([@(0.0.255) bool]_[*@3 enable]_`=
2093_[@(0.0.255) true])&]
2094[s2;b17;a17; Enables or disables Ctrl.&]
2095[s7;i1120;a17; [%-*C@3 enable]-|true indicates that Ctrl should be enabled.&]
2096[s3;%- &]
2097[s4;%- &]
2098[s5;:Ctrl`:`:Disable`(`):%- [@(0.0.255) void]_[* Disable]()&]
2099[s2;b17;a17; Same as Enable(false).&]
2100[s3;%- &]
2101[s4;%- &]
2102[s5;:Ctrl`:`:IsEnabled`(`)const:%- [@(0.0.255) bool]_[* IsEnabled]()_[@(0.0.255) const]&]
2103[s7;i1120;a17; [*/ Return value]-|true if Ctrl is enabled.&]
2104[s3;%- &]
2105[s4;%- &]
2106[s5;:Ctrl`:`:SetEditable`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetEditable]([@(0.0.255) b
2107ool]_[*@3 editable]_`=_[@(0.0.255) true])&]
2108[s2;b17;a17; Sets editable or read`-only mode of Ctrl. Specific Ctrls
2109can check this flag using IsEditable method and behave accordingly.&]
2110[s7;i1120;a17; [%-*C@3 editable]-|true indicates that Ctrl is editable.&]
2111[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
2112[s3;%- &]
2113[s4;%- &]
2114[s5;:Ctrl`:`:SetReadOnly`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* SetReadOnly]()&]
2115[s2;b17;a17; Same as SetEditable(false).&]
2116[s3;%- &]
2117[s4;%- &]
2118[s5;:Ctrl`:`:IsEditable`(`)const:%- [@(0.0.255) bool]_[* IsEditable]()_[@(0.0.255) const]&]
2119[s7;i1120;a17; [*/ Return value]-|true if Ctrl is editable.&]
2120[s3;%- &]
2121[s4;%- &]
2122[s5;:Ctrl`:`:IsReadOnly`(`)const:%- [@(0.0.255) bool]_[* IsReadOnly]()_[@(0.0.255) const]&]
2123[s2;b17;a17; Same as !IsEditable().&]
2124[s3;%- &]
2125[s4;%- &]
2126[s5;:Upp`:`:Ctrl`:`:ClearModifyDeep`(`):%- [@(0.0.255) void]_[* ClearModifyDeep]()&]
2127[s2; Clear modify flag (by calling ClearModify) for the widgets and
2128all its descendants.&]
2129[s3;%- &]
2130[s4;%- &]
2131[s5;:Upp`:`:Ctrl`:`:IsModifiedDeep`(`)const:%- [@(0.0.255) bool]_[* IsModifiedDeep]()_[@(0.0.255) c
2132onst]&]
2133[s2; Returns true if widget or any of its descendants have modify
2134flag active.&]
2135[s3;%- &]
2136[s4;%- &]
2137[s5;:Ctrl`:`:UpdateRefresh`(`):%- [@(0.0.255) void]_[* UpdateRefresh]()&]
2138[s2;b17;a17; Calls both Update and Refresh methods.&]
2139[s3;%- &]
2140[s4;%- &]
2141[s5;:Ctrl`:`:Update`(`):%- [@(0.0.255) void]_[* Update]()&]
2142[s2;b17;a17; Same as SetModify().&]
2143[s3;%- &]
2144[s4;%- &]
2145[s5;:Ctrl`:`:Action`(`):%- [@(0.0.255) void]_[* Action]()&]
2146[s2;b17;a17; Invokes default Ctrl callback `- WhenAction. Action
2147actually makes a copy of WhenAction `- this ensures that the
2148Event<> object is not destroyed during the call.&]
2149[s3;%- &]
2150[s4;%- &]
2151[s5;:Ctrl`:`:UpdateAction`(`):%- [@(0.0.255) void]_[* UpdateAction]()&]
2152[s2;b17;a17; Calls Update and then Action.&]
2153[s3;%- &]
2154[s4;%- &]
2155[s5;:Ctrl`:`:UpdateActionRefresh`(`):%- [@(0.0.255) void]_[* UpdateActionRefresh]()&]
2156[s2;b17;a17; Calls Update, then Action, then Refresh. Typically called
2157after user changes values of Ctrl.&]
2158[s3;%- &]
2159[s4;%- &]
2160[s5;:Ctrl`:`:BackPaint`(int`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* BackPaint]([@(0.0.255) i
2161nt]_[*@3 bp]_`=_FULLBACKPAINT)&]
2162[s2;b17;a17; Activates back`-paint mode for Ctrl.&]
2163[s7;i1120;a17; [%-*C@3 bp]-|Back`-paint mode.&]
2164[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
2165[s3;%- &]
2166[s4;%- &]
2167[s5;:Ctrl`:`:TransparentBackPaint`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* TransparentBa
2168ckPaint]()&]
2169[s7;i1120;a17; [*/ Return value]-|BackPaint(TRANSPARENTBACKPAINT).&]
2170[s3;%- &]
2171[s4;%- &]
2172[s5;:Ctrl`:`:NoBackPaint`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoBackPaint]()&]
2173[s7;i1120;a17; [*/ Return value]-|BackPaint(NOBACKPAINT).&]
2174[s3;%- &]
2175[s4;%- &]
2176[s5;:Ctrl`:`:BackPaintHint`(`):%- [_^Ctrl^ Ctrl][@(0.0.255) `&]_[* BackPaintHint]()&]
2177[s2; Activates FULLBACKPAINT mode if computer is a `"decent machine`"
2178(simple heurestics to identify fast enough PC with enough memory).&]
2179[s3;%- &]
2180[s4;%- &]
2181[s5;:Ctrl`:`:GetBackPaint`(`)const:%- [@(0.0.255) int]_[* GetBackPaint]()_[@(0.0.255) const
2182]&]
2183[s7;i1120;a17; [*/ Return value]-|Current back`-paint mode of Ctrl.&]
2184[s3;%- &]
2185[s4;%- &]
2186[s5;:Ctrl`:`:Transparent`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* Transparent]([@(0.0.255) b
2187ool]_[*@3 bp]_`=_[@(0.0.255) true])&]
2188[s2;b17;a17; Sets transparency flag of Ctrl. If transparency flag
2189is disabled, U`+`+ can paint Ctrl in more effective way.&]
2190[s7;i1120;a17; [%-*C@3 bp]-|Transparency flag.&]
2191[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
2192[s3;%- &]
2193[s4;%- &]
2194[s5;:Ctrl`:`:NoTransparent`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoTransparent]()&]
2195[s7;i1120;a17; [*/ Return value]-|Transparent(false).&]
2196[s3;%- &]
2197[s4;%- &]
2198[s5;:Ctrl`:`:IsTransparent`(`)const:%- [@(0.0.255) bool]_[* IsTransparent]()_[@(0.0.255) co
2199nst]&]
2200[s7;i1120;a17; [*/ Return value]-|Value of transparency flag.&]
2201[s3;%- &]
2202[s4;%- &]
2203[s5;:Ctrl`:`:ActiveX`(bool`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* ActiveX]([@(0.0.255) boo
2204l]_[*@3 ax]_`=_[@(0.0.255) true])&]
2205[s2;b17;a17; Special flag used for ActiveX Ctrls implementation.&]
2206[s6; Windows specific.&]
2207[s7;i1120;a17; [%-*C@3 ax]-|true `- Ctrl is ActiveX control&]
2208[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
2209[s3;%- &]
2210[s4;%- &]
2211[s5;:Ctrl`:`:NoActiveX`(`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* NoActiveX]()&]
2212[s7;i1120;a17; [*/ Return value]-|ActiveX(false).&]
2213[s3;%- &]
2214[s4;%- &]
2215[s5;:Ctrl`:`:IsActiveX`(`)const:%- [@(0.0.255) bool]_[* IsActiveX]()_[@(0.0.255) const]&]
2216[s7;i1120;a17; [*/ Return value]-|Value of ActiveX flag.&]
2217[s3;%- &]
2218[s4;%- &]
2219[s5;:Ctrl`:`:Info`(const char`*`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* Info]([@(0.0.255) c
2220onst]_[@(0.0.255) char]_`*[*@3 txt])&]
2221[s2;b17;a17; Sets Tip text of Ctrl. This text is displayed as tooltip
2222of Ctrl.&]
2223[s7;i1120;a17; [%-*C@3 txt]-|Text.&]
2224[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
2225[s3;%- &]
2226[s4;%- &]
2227[s5;:Ctrl`:`:HelpLine`(const char`*`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* HelpLine]([@(0.0.255) c
2228onst]_[@(0.0.255) char]_`*[*@3 txt])&]
2229[s2;b17;a17; Sets help topic link for Ctrl.&]
2230[s7;i1120;a17; [%-*C@3 txt]-|Link.&]
2231[s7;i1120;a17; [*/ Return value]-|`*this for method chaining.&]
2232[s3;%- &]
2233[s4;%- &]
2234[s5;:Ctrl`:`:GetTip`(`)const:%- [_^`:`:String^ String]_[* GetTip]()_[@(0.0.255) const]&]
2235[s7;i1120;a17; [*/ Return value]-|Current Tip text.&]
2236[s3;%- &]
2237[s4;%- &]
2238[s5;:Ctrl`:`:GetHelpLine`(`)const:%- [_^`:`:String^ String]_[* GetHelpLine]()_[@(0.0.255) c
2239onst]&]
2240[s7;i1120;a17; [*/ Return value]-|Current HelpTopic link.&]
2241[s3;%- &]
2242[s4;%- &]
2243[s5;:Ctrl`:`:operator`<`<`(Ctrl`&`):%- [_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[* operator<<]([_^`:`:Ctrl^ C
2244trl][@(0.0.255) `&]_[*@3 ctrl])&]
2245[s5;:Ctrl`:`:Add`(Ctrl`&`):%- [@(0.0.255) void]_[* Add]([_^`:`:Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 c
2246trl])&]
2247[s2;b17;a17; Adds ctrl as the last child.&]
2248[s7;i1120;a17; [%-*C@3 ctrl]-|Ctrl to add.&]
2249[s3;%- &]
2250[s4;%- &]
2251[s5;:Ctrl`:`:Remove`(`):%- [@(0.0.255) void]_[* Remove]()&]
2252[s2;b17;a17; Removes Ctrl from its parent.&]
2253[s3; &]
2254[s4;%- &]
2255[s5;:Ctrl`:`:operator`<`<`=`(const Value`&`):%- [@(0.0.255) const]_[_^`:`:Value^ Value][@(0.0.255) `&
2256]_[* operator<<`=]([@(0.0.255) const]_[_^`:`:Value^ Value][@(0.0.255) `&]_[*@3 v])&]
2257[s2;b17;a17; Same as SetData(v).&]
2258[s7;i1120;a17; [%-*C@3 v]-|New Value of Ctrl.&]
2259[s7;i1120;a17; [*/ Return value]-|Reference to v.&]
2260[s3; &]
2261[s4;%- &]
2262[s5;:Upp`:`:Ctrl`:`:operator`<`<`(Upp`:`:Function`<void`(`)`>`):%- [_^Upp`:`:Callback^ C
2263allback][@(0.0.255) `&]_[* operator<<]([_^Upp`:`:Function^ Upp`::Function]<[@(0.0.255) voi
2264d]_()>_[*@3 action])&]
2265[s2; Same as WhenAction << action, can be used both with lambdas
2266and Events (former Callbacks)..&]
2267[s3; &]
2268[s4;%- &]
2269[s5;:Upp`:`:Ctrl`:`:SetTimeCallback`(int`,Upp`:`:Function`<void`(`)`>`,int`):%- [@(0.0.255) v
2270oid]_[* SetTimeCallback]([@(0.0.255) int]_[*@3 delay`_ms], [_^Upp`:`:Function^ Function]<
2271[@(0.0.255) void]_()>_[*@3 cb], [@(0.0.255) int]_[*@3 id]_`=_[@3 0])&]
2272[s2;b17;a17; Puts delayed callback to the timer queue. As an identifier
2273of callback, which is void `* in timer queue, [* this] `+ [* id]
2274is used. When Ctrl is destroyed, all callbacks with [* id] in range
22750 ... sizeof(Ctrl) are removed from timer callback queue `- this
2276ensures that no dangling callbacks are left there.&]
2277[s2; [%-*@3 delay`_ms][%-  is d]elay of callback in ms. If this is 0,
2278callback is called immediately after all pending input GUI events
2279are processed. Negative value means the event is periodic `-
2280it is triggered after `-delay`_ms and after being performed,
2281it is rescheduled with the same delay`_ms.&]
2282[s2; [%- Identifier ][%-*@3 id] should be in range 0..80. U`+`+ defines
2283compile`-time protocol for distributing these ids. If Ctrl wants
2284to use non`-zero time callback id, it should define it using&]
2285[s2; &]
2286[s2; -|enum `{ TIMEID`_PERIODIC `= [/ baseclass]`::TIMEID`_COUNT, TIMEID`_COUNT[@(0.0.255)
2287`};]&]
2288[s2; &]
2289[s2; -|Using zero as [* id] is OK as long as you do not intend to remove
2290time callbacks using [* KillTimeCallback. ]Alternative to using
2291id is class TimeCallback that represents whole issue as member
2292variable of Ctrl.&]
2293[s3;%- &]
2294[s4;%- &]
2295[s5;:Ctrl`:`:KillTimeCallback`(int`):%- [@(0.0.255) void]_[* KillTimeCallback]([@(0.0.255) i
2296nt]_[*@3 id]_`=_[@3 0])&]
2297[s2;b17;a17; Removes time callback associated with Ctrl.&]
2298[s7;i1120;a17; [%-*C@3 id]-|Id of callback.&]
2299[s3;%- &]
2300[s4;%- &]
2301[s5;:Upp`:`:Ctrl`:`:KillSetTimeCallback`(int`,Upp`:`:Function`<void`(`)`>`,int`):%- [@(0.0.255) v
2302oid]_[* KillSetTimeCallback]([@(0.0.255) int]_[*@3 delay`_ms], [_^Upp`:`:Function^ Functi
2303on]<[@(0.0.255) void]_()>_[*@3 cb], [@(0.0.255) int]_[*@3 id])&]
2304[s2; Removes callback with [%-*@3 id] and sets it again.&]
2305[s3; &]
2306[s4;%- &]
2307[s5;:Ctrl`:`:ExistsTimeCallback`(int`)const:%- [@(0.0.255) bool]_[* ExistsTimeCallback]([@(0.0.255) i
2308nt]_[*@3 id]_`=_[@3 0])_[@(0.0.255) const]&]
2309[s2;b17;a17; Tests whether Ctrl has associated callback in timer
2310queue.&]
2311[s7;i1120;a17; [%-*C@3 id]-|Id of callback.&]
2312[s7;i1120;a17; [*/ Return value]-|true when id is found in timer queue.&]
2313[s3;%- &]
2314[s4;%- &]
2315[s5;:Upp`:`:Ctrl`:`:PostCallback`(Upp`:`:Function`<void`(`)`>`,int`):%- [@(0.0.255) voi
2316d]_[* PostCallback]([_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>_[*@3 cb],
2317[@(0.0.255) int]_[*@3 id]_`=_[@3 0])&]
2318[s2; Posts callback to be executed immediately (but in the main loop
2319after all current GUI events).&]
2320[s3; &]
2321[s4;%- &]
2322[s5;:Upp`:`:Ctrl`:`:KillPostCallback`(Upp`:`:Function`<void`(`)`>`,int`):%- [@(0.0.255) v
2323oid]_[* KillPostCallback]([_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>_[*@3 cb],
2324[@(0.0.255) int]_[*@3 id])&]
2325[s2; Similar to PostCallback, but removes callback(s) with the same
2326id from the queue first.&]
2327[s3; &]
2328[s4;%- &]
2329[s5;:Ctrl`:`:GetActiveCtrl`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetActiveCtrl
2330]()&]
2331[s2;b17;a17; Returns pointer to active Ctrl. Active Ctrl is top`-level
2332Ctrl of Ctrl with keyboard focus.&]
2333[s7;i1120;a17; [*/ Return value]-|Pointer to active Ctrl.&]
2334[s3;%- &]
2335[s4;%- &]
2336[s5;:Ctrl`:`:GetActiveWindow`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetActiveWi
2337ndow]()&]
2338[s2;b17;a17; Returns pointer to active TopWindow that is either active
2339or owns active Ctrl. Difference between GetActiveWindow and GetActiveCtrl
2340is that GetActiveCtrl can return pop`-up Ctrl, while GetActiveWindow
2341returns always TopWindow `- if active Ctrl is pop`-up, owner
2342of pop`-up is returned.&]
2343[s7;i1120;a17; [*/ Return value]-|Pointer to active window.&]
2344[s3;%- &]
2345[s4;%- &]
2346[s5;:Ctrl`:`:GetVisibleChild`(Ctrl`*`,Point`,bool`):%- [@(0.0.255) static]
2347[_^`:`:Ctrl^ Ctrl]_`*[* GetVisibleChild]([_^`:`:Ctrl^ Ctrl]_`*[*@3 ctrl],
2348[_^`:`:Point^ Point]_[*@3 p], [@(0.0.255) bool]_[*@3 pointinframe])&]
2349[s2;b17;a17; Finds deepest descendant of Ctrl that is visible and
2350contains given point. If not such Ctrl exists, returns this.&]
2351[s7;i1120;a17; [%-*C@3 ctrl]-|Parent ctrl.&]
2352[s7;i1120;a17; [%-*C@3 p]-|Point.&]
2353[s7;i1120;a17; [%-*C@3 pointinframe]-|Determines whether point is in
2354view or frame coordinates.&]
2355[s7;i1120;a17; [*/ Return value]-|Pointer to Ctrl.&]
2356[s3;%- &]
2357[s4;%- &]
2358[s5;:Ctrl`:`:PopUpHWND`(HWND`,bool`,bool`,bool`,bool`):%- [@(0.0.255) void]_[* PopUpHWND](
2359HWND_[*@3 hwnd], [@(0.0.255) bool]_[*@3 savebits]_`=_[@(0.0.255) true],
2360[@(0.0.255) bool]_[*@3 activate]_`=_[@(0.0.255) true], [@(0.0.255) bool]_[*@3 dropshadow]_`=
2361_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 topmost]_`=_[@(0.0.255) false])&]
2362[s2;b17;a17; Opens top`-level Ctrl as pop`-up window. [*/ This method
2363can only be invoked in the main thread.]&]
2364[s6; [2 Win32 specific.]&]
2365[s7;i1120;a17; [%-*C@3 hwnd]-|Win32 handle of owner window.&]
2366[s7;i1120;a17; [%-*C@3 savebits]-|Indicates that system should try to
2367preserve background bits.&]
2368[s7;i1120;a17; [%-*C@3 activate]-|Pop`-up should be activated.&]
2369[s7;i1120;a17; [%-*C@3 dropshadow]-|Pop`-up should have drop`-shadow
2370(if supported).&]
2371[s7;i1120;a17; [%-*C@3 topmost]-|Pop`-up should be top`-most window.&]
2372[s3;%- &]
2373[s4;%- &]
2374[s5;:Ctrl`:`:PopUp`(Ctrl`*`,bool`,bool`,bool`,bool`):%- [@(0.0.255) void]_[* PopUp]([_^`:`:Ctrl^ C
2375trl]_`*[*@3 owner]_`=_NULL, [@(0.0.255) bool]_[*@3 savebits]_`=_[@(0.0.255) true],
2376[@(0.0.255) bool]_[*@3 activate]_`=_[@(0.0.255) true], [@(0.0.255) bool]_[*@3 dropshadow]_`=
2377_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 topmost]_`=_[@(0.0.255) false])&]
2378[s2;b17;a17; Opens top`-level Ctrl as pop`-up window. [*/ This method
2379can only be invoked in the main thread.]&]
2380[s7;i1120;a17; [%-*C@3 owner]-|Owner.&]
2381[s7;i1120;a17; [%-*C@3 savebits]-|Indicates that system should try to
2382preserve background bits.&]
2383[s7;i1120;a17; [%-*C@3 activate]-|Pop`-up should be activated.&]
2384[s7;i1120;a17; [%-*C@3 dropshadow]-|Pop`-up should have drop`-shadow
2385(if supported).&]
2386[s7;i1120;a17; [%-*C@3 topmost]-|Pop`-up should be top`-most window.&]
2387[s3;%- &]
2388[s4;%- &]
2389[s5;:Ctrl`:`:SetAlpha`(`:`:byte`):%- [@(0.0.255) void]_[* SetAlpha]([_^`:`:byte^ byte]_[*@3 a
2390lpha])&]
2391[s2;b17;a17; Sets top`-level Ctrl alpha blending if supported by
2392system. Ctrl must be open.&]
2393[s7;i1120;a17; [%-*C@3 alpha]-|Value of alpha.&]
2394[s3;%- &]
2395[s4;%- &]
2396[s5;:Ctrl`:`:IsWaitingEvent`(`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* IsWaitingEvent](
2397)&]
2398[s7;i1120;a17; [*/ Return value]-|True when there is waiting unprocessed
2399event in input queue.&]
2400[s3;%- &]
2401[s4;%- &]
2402[s5;:Ctrl`:`:ProcessEvent`(bool`*`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* ProcessEven
2403t]([@(0.0.255) bool]_`*[*@3 quit]_`=_NULL)&]
2404[s2;b17;a17; Processes single event from input queue. When there
2405is no pending event, returns immediately. (Processing event involves
2406usually involves dispatching it via virtual methods to proper
2407Ctrls).&]
2408[s7;i1120;a17; [%-*C@3 quit]-|Assigned true when WM`_QUIT message is
2409intercepted (Win32 specific).&]
2410[s7;i1120;a17; [*/ Return value]-|True indicates that event was processed,
2411false that queue was empty.&]
2412[s3;%- &]
2413[s4;%- &]
2414[s5;:Ctrl`:`:ProcessEvents`(bool`*`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* ProcessEve
2415nts]([@(0.0.255) bool]_`*[*@3 quit]_`=_NULL)&]
2416[s2;b17;a17; Processes all events from input queue. When there is
2417no pending event, returns immediately. (Processing event involves
2418usually involves dispatching it via virtual methods to proper
2419Ctrls).&]
2420[s7;i1120;a17; [%-*C@3 quit]-|Assigned true when WM`_QUIT message is
2421intercepted (Win32 specific).&]
2422[s7;i1120;a17; [*/ Return value]-|True indicates that one or more events
2423were processed, false that queue was empty.&]
2424[s3;%- &]
2425[s4;%- &]
2426[s5;:Ctrl`:`:IsPopUp`(`)const:%- [@(0.0.255) bool]_[* IsPopUp]()_[@(0.0.255) const]&]
2427[s7;i1120;a17; [*/ Return value]-|True if Ctrl is pop`-up window.&]
2428[s3; &]
2429[s4;%- &]
2430[s5;:Ctrl`:`:EventLoop`(Ctrl`*`):%- [@(0.0.255) static] [@(0.0.255) void]_[* EventLoop]([_^`:`:Ctrl^ C
2431trl]_`*[*@3 loopctrl]_`=_NULL)&]
2432[s2;b17;a17; Executes event`-loop. If [*@3 loopctrl ]is not NULL, it
2433must be opened top`-level Ctrl and loop is executed until EndLoop
2434method for [*@3 loopctrl ]is invoked. If [*@3 loopctrl] is NULL,
2435loop is executed as long as any top`-level Ctrl exists or application
2436is terminated by OS specific `"shutdown`" event. [*/ This method
2437can only be invoked in the main thread.]&]
2438[s7;i1120;a17; [%-*C@3 loopctrl]-|Looping Ctrl.&]
2439[s3;%- &]
2440[s4;%- &]
2441[s5;:Ctrl`:`:GetLoopLevel`(`):%- [@(0.0.255) static] [@(0.0.255) int]_[* GetLoopLevel]()&]
2442[s7;i1120;a17; [*/ Return value]-|Level of even`-loop (even`-loops a
2443reentrant).&]
2444[s3;%- &]
2445[s4;%- &]
2446[s5;:Ctrl`:`:GetLoopCtrl`(`):%- [@(0.0.255) static] [_^`:`:Ctrl^ Ctrl]_`*[* GetLoopCtrl]()&]
2447[s7;i1120;a17; [*/ Return value]-|Current looping Ctrl.&]
2448[s3;%- &]
2449[s4;%- &]
2450[s5;:Ctrl`:`:EndLoop`(`):%- [@(0.0.255) void]_[* EndLoop]()&]
2451[s2;b17;a17; Terminates loop for looping Ctrl. Note that this terminates
2452only loop for looping Ctrl. If there is another loop above such
2453loop, nothing is terminated until this additional loop is active.&]
2454[s3; &]
2455[s4;%- &]
2456[s5;:Ctrl`:`:EndLoop`(int`):%- [@(0.0.255) void]_[* EndLoop]([@(0.0.255) int]_[*@3 code])&]
2457[s2; Same as EndLoop(), but also defines loop exit code.&]
2458[s7;i1120;a17; [%-*C@3 code]-|Loop exit code.&]
2459[s3;%- &]
2460[s4;%- &]
2461[s5;:Ctrl`:`:InLoop`(`)const:%- [@(0.0.255) bool]_[* InLoop]()_[@(0.0.255) const]&]
2462[s7;i1120;a17; [*/ Return value]-|true if Ctrl is looping Ctrl.&]
2463[s3;%- &]
2464[s4;%- &]
2465[s5;:Ctrl`:`:GetExitCode`(`)const:%- [@(0.0.255) int]_[* GetExitCode]()_[@(0.0.255) const]&]
2466[s7;i1120;a17; [*/ Return value]-|Exit code of last loop performed with
2467this Ctrl.&]
2468[s3;%- &]
2469[s4;%- &]
2470[s5;:Ctrl`:`:Clipboard`(`):%- [@(0.0.255) static] [_^PasteClip^ PasteClip][@(0.0.255) `&]_[* C
2471lipboard]()&]
2472[s2; Represents the clipboard as PasteClip. This allows unification
2473of drag`&drop and clipboard operations as there can be single
2474method handling with Clipboard and Drag`&Drop (and X11 selection)
2475operations.&]
2476[s3;%- &]
2477[s4;%- &]
2478[s5;:Ctrl`:`:Selection`(`):%- [@(0.0.255) static] [_^PasteClip^ PasteClip][@(0.0.255) `&]_[* S
2479election]()&]
2480[s2; Represents X11 selection as PasteClip. This allows unification
2481of drag`&drop and selection operations as there can be single
2482method handling with Clipboard and Drag`&Drop (and X11 selection)
2483operations.&]
2484[s3;%- &]
2485[s4;%- &]
2486[s5;:Ctrl`:`:SetSelectionSource`(const char`*`):%- [@(0.0.255) void]_[* SetSelectionSourc
2487e]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fmts])&]
2488[s2; Tells X11 system that this Ctrl is current selection source,
2489with [%-*@3 fmts] available (semicolon separated list).&]
2490[s3; &]
2491[s4;%- &]
2492[s5;:Ctrl`:`:DoDragAndDrop`(const char`*`,const Image`&`,dword`,const VectorMap`<String`,ClipData`>`&`):%- [@(0.0.255) i
2493nt]_[* DoDragAndDrop]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fmts],
2494[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 sample], [_^dword^ dword]_[*@3 action
2495s], [@(0.0.255) const]_[_^VectorMap^ VectorMap]<[_^String^ String],
2496[_^ClipData^ ClipData]>`&_[*@3 data])&]
2497[s2; Performs drag`&drop operation, with this Ctrl as source. [%-*@3 fmts]
2498is a semicolon separated list of formats available using GetDropData
2499method, [%-*@3 sample] is an image representation of data, [%-*@3 actions]
2500are allowed drag and drop operations `- a binary or DND`_NONE,
2501DND`_COPY, DND`_MOVE (or DND`_ALL as combination of all of them).
2502Special unrelated flag DND`_EXACTIMAGE can be add to actions
2503to indicate that Drag`&Drop should not alter [%-*@3 sample] image
2504(otherwise it can be adjusted to look consistent). [%-*@3 data]
2505is data directly provided for the operation as map of individual
2506formats to ClipData.&]
2507[s3; &]
2508[s4;%- &]
2509[s5;:Ctrl`:`:DoDragAndDrop`(const char`*`,const Image`&`,dword`):%- [@(0.0.255) int]_[* D
2510oDragAndDrop]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fmts], [@(0.0.255) const]_[_^Image^ I
2511mage][@(0.0.255) `&]_[*@3 sample]_`=_Null, [_^dword^ dword]_[*@3 actions]_`=_DND`_ALL)&]
2512[s2; DoDragAndDrop with empty data (all formats are provided by GetDropData).&]
2513[s3; &]
2514[s4;%- &]
2515[s5;:Ctrl`:`:DoDragAndDrop`(const VectorMap`<String`,ClipData`>`&`,const Image`&`,dword`):%- [@(0.0.255) i
2516nt]_[* DoDragAndDrop]([@(0.0.255) const]_[_^VectorMap^ VectorMap]<[_^String^ String],
2517[_^ClipData^ ClipData]>`&_[*@3 data], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 s
2518ample]_`=_Null, [_^dword^ dword]_[*@3 actions]_`=_DND`_ALL)&]
2519[s2; DoDragAndDrop with empty fmts (all formats are provided by [%-*@3 data]).&]
2520[s3; &]
2521[s4;%- &]
2522[s5;:Ctrl`:`:GetDragAndDropSource`(`):%- [@(0.0.255) static] [_^Ctrl^ Ctrl]_`*[* GetDragAnd
2523DropSource]()&]
2524[s2; Returns current source of Drag and Drop, is such source exists
2525in this process and it is U`+`+ widget (otherwise returns NULL).&]
2526[s3;%- &]
2527[s4;%- &]
2528[s5;:Ctrl`:`:GetDragAndDropTarget`(`):%- [@(0.0.255) static] [_^Ctrl^ Ctrl]_`*[* GetDragAnd
2529DropTarget]()&]
2530[s2; Returns current target of Drag and Drop, is such target exists
2531in this process and it is U`+`+ widget (otherwise returns NULL).&]
2532[s3;%- &]
2533[s4;%- &]
2534[s5;:Ctrl`:`:IsDragAndDropSource`(`):%- [@(0.0.255) bool]_[* IsDragAndDropSource]()&]
2535[s2; Same as this `=`= GetDragAndDropSource().&]
2536[s3;%- &]
2537[s4;%- &]
2538[s5;:Ctrl`:`:IsDragAndDropTarget`(`):%- [@(0.0.255) bool]_[* IsDragAndDropTarget]()&]
2539[s2; Same as this `=`= GetDragAndDropTarget().&]
2540[s3;%- &]
2541[s4;%- &]
2542[s5;:Ctrl`:`:StdSampleSize`(`):%- [@(0.0.255) static] [_^Size^ Size]_[* StdSampleSize]()&]
2543[s2; Returns the best size of DoDragAndDrop sample parameter.&]
2544[s3;%- &]
2545[s4;%- &]
2546[s5;:Ctrl`:`:SetMinSize`(Size`):%- [@(0.0.255) void]_[* SetMinSize]([_^`:`:Size^ Size]_[*@3 s
2547z])&]
2548[s2;b17;a17; This method does nothing. It is a interface placeholder
2549to get Layout templates working `- in derived classes this can
2550be statically overloaded to receive minimal size of layout.&]
2551[s7;i1120;a17; [%-*C@3 sz]-|Minimal size of layout.&]
2552[s3;%- &]
2553[s4;%- &]
2554[s5;:Ctrl`:`:Csizeinit`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* Csizeinit]()&]
2555[s2;b17;a17; Sets zoom factor used to scale layouts (to scale zoomed
2556positioning methods like LeftPosZ). Horizontal distances are
2557scaled by sz.cx / bsz.cx, vertical by sz.cy / bsz.cy. If bsz
2558is Size(0, 0), default base size (based on standard Win32 GUI
2559font) is used. Note that U`+`+ sets scaling factor automatically
2560upon startup based on actual standard GUI font size.&]
2561[s7;i1120;a17; [%-*C@3 sz]-|Numerator of scaling factor.&]
2562[s7;i1120;a17; [%-*C@3 bsz]-|Denominator of scaling factor.&]
2563[s3;%- &]
2564[s4;%- &]
2565[s5;:Ctrl`:`:HorzLayoutZoom`(int`):%- [@(0.0.255) static] [@(0.0.255) int]_[* HorzLayoutZoo
2566m]([@(0.0.255) int]_[*@3 cx])&]
2567[s2;b17;a17; Performs horizontal scaling by actual scaling factor.&]
2568[s7;i1120;a17; [%-*C@3 cx]-|Distance to scale.&]
2569[s7;i1120;a17; [*/ Return value]-|Scaled distance.&]
2570[s3;%- &]
2571[s4;%- &]
2572[s5;:Upp`:`:Ctrl`:`:HorzLayoutZoomf`(double`):%- [@(0.0.255) double]_[* HorzLayoutZoomf](
2573[@(0.0.255) double]_[*@3 cx])&]
2574[s2; Similar to HorzLayoutZoom, but with double precision.&]
2575[s3; &]
2576[s4;%- &]
2577[s5;:Ctrl`:`:VertLayoutZoom`(int`):%- [@(0.0.255) static] [@(0.0.255) int]_[* VertLayoutZoo
2578m]([@(0.0.255) int]_[*@3 cy])&]
2579[s2;b17;a17; Performs vertical scaling by actual scaling factor.&]
2580[s7;i1120;a17; [%-*C@3 cy]-|Distance to scale.&]
2581[s7;i1120;a17; [*/ Return value]-|Scaled distance.&]
2582[s3;%- &]
2583[s4;%- &]
2584[s5;:Ctrl`:`:LayoutZoom`(int`,int`):%- [@(0.0.255) static] [_^`:`:Size^ Size]_[* LayoutZoom
2585]([@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&]
2586[s2;b17;a17; Performs scaling by actual scaling factor.&]
2587[s7;i1120;a17; [%-*C@3 cx]-|Horizontal distance.&]
2588[s7;i1120;a17; [%-*C@3 cy]-|Vertical distance.&]
2589[s7;i1120;a17; [*/ Return value]-|Scaled size.&]
2590[s3;%- &]
2591[s4;%- &]
2592[s5;:Ctrl`:`:LayoutZoom`(Size`):%- [@(0.0.255) static] [_^`:`:Size^ Size]_[* LayoutZoom]([_^`:`:Size^ S
2593ize]_[*@3 sz])&]
2594[s2;b17;a17; Performs scaling by actual scaling factor.&]
2595[s7;i1120;a17; [%-*C@3 sz]-|Size to scale.&]
2596[s7;i1120;a17; [*/ Return value]-|Scaled size.&]
2597[s3;%- &]
2598[s4;%- &]
2599[s5;:Ctrl`:`:NoLayoutZoom`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* NoLayoutZoom]()&]
2600[s2;b17;a17; Sets scaling factor to (1, 1). Same as SetZoomSize(Size(1,
26011), Size(1, 1)).&]
2602[s3; &]
2603[s4;%- &]
2604[s5;:Upp`:`:Ctrl`:`:SetUHDEnabled`(bool`):%- [@(0.0.255) void]_[* SetUHDEnabled]([@(0.0.255) b
2605ool]_[*@3 set])&]
2606[s2; Informs host platform that application is UHD ready. Default
2607is true. Disabling UHD mode has to be done before GUI`_APP`_MAIN,
2608e.g. in INITBLOCK.&]
2609[s3; &]
2610[s4;%- &]
2611[s5;:Upp`:`:Ctrl`:`:IsUHDEnabled`(`):%- [@(0.0.255) bool]_[* IsUHDEnabled]()&]
2612[s2; Returns the value set by SetUHDEnabled.&]
2613[s3;%- &]
2614[s4;%- &]
2615[s5;:Upp`:`:Ctrl`:`:SetDarkThemeEnabled`(bool`):%- [@(0.0.255) static]
2616[@(0.0.255) void]_[* SetDarkThemeEnabled]([@(0.0.255) bool]_[*@3 set]_`=_[@(0.0.255) true])
2617&]
2618[s2; Hints coloring and skinning algorithms that the application
2619is ready to work in dark theme mode. Currently this enables dark
2620theme in Windows (with other platforms dark theme is enabled
2621by default). Default value is true. Disabling dark theme has
2622to be done before GUI`_APP`_MAIN, e.g. in INITBLOCK.&]
2623[s3; &]
2624[s4;%- &]
2625[s5;:Upp`:`:Ctrl`:`:IsDarkThemeEnabled`(`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* IsDa
2626rkThemeEnabled]()&]
2627[s2; Returns the value set by SetDarkThemeEnabled.&]
2628[s3;%- &]
2629[s4; &]
2630[s5;K:Ctrl`:`:GetWorkArea`(`):%- [*^`:`:Rect^@(64) Rect][*@(64) _][* GetWorkArea][*@(64) ()]&]
2631[s2; Returns OS specific working area for the widget `- this is rectangle
2632in screen coordinates where application top`-level windows can
2633be placed `- the size of screen minus the size of any border
2634entities like the task`-bar. If widget is not associated with
2635the open window, returns the size of primary work area.&]
2636[s7;i1120;a17; [*/ Return value]-|Work area rectangle.&]
2637[s3;%- &]
2638[s4;%- &]
2639[s5;:Ctrl`:`:GetVirtualWorkArea`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetVirtual
2640WorkArea]()&]
2641[s2;b17;a17; Returns the total size of all displays minus any border
2642entities.&]
2643[s3;%- &]
2644[s4;%- &]
2645[s5;:Ctrl`:`:GetVirtualScreenArea`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetVirtu
2646alScreenArea]()&]
2647[s2;b17;a17; Returns the total size of all displays.&]
2648[s3;%- &]
2649[s4;%- &]
2650[s5;:Ctrl`:`:GetPrimaryWorkArea`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetPrimary
2651WorkArea]()&]
2652[s2;b17;a17; Returns the size of primary work area `- primary screen
2653in Windows is the display with start menu.&]
2654[s3;%- &]
2655[s4;%- &]
2656[s5;:Ctrl`:`:GetPrimaryScreenArea`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetPrima
2657ryScreenArea]()&]
2658[s2;b17;a17; Returns the size of primary screen `- primary screen
2659in Windows is the display with start menu.&]
2660[s3;%- &]
2661[s4;%- &]
2662[s5;:Ctrl`:`:GetWorkArea`(Point`):%- [@(0.0.255) static] [_^Rect^ Rect]_[* GetWorkArea]([_^Point^ P
2663oint]_[*@3 pt])&]
2664[s2; Returns the recangle of work area which contains [%-*@3 pt]. If
2665[%-*@3 pt] does not belong to any area, returns the primary work
2666area.&]
2667[s3; &]
2668[s4;%- &]
2669[s5;:Ctrl`:`:GetMouseWorkArea`(`):%- [@(0.0.255) static] [_^Rect^ Rect]_[* GetMouseWorkArea
2670]()&]
2671[s2; Returns the work are which contains mouse cursor. Same as GetWorkArea(GetMousePo
2672s()).&]
2673[s3;%- &]
2674[s4;%- &]
2675[s5;:Ctrl`:`:GetKbdDelay`(`):%- [@(0.0.255) static] [@(0.0.255) int]_[* GetKbdDelay]()&]
2676[s2;b17;a17; Returns delay of keyboard before autorepeat starts when
2677key is pressed.&]
2678[s7;i1120;a17; [*/ Return value]-|Time in ms.&]
2679[s3;%- &]
2680[s4;%- &]
2681[s5;:Ctrl`:`:GetKbdSpeed`(`):%- [@(0.0.255) static] [@(0.0.255) int]_[* GetKbdSpeed]()&]
2682[s2;b17;a17; Returns speed of autorepeat.&]
2683[s7;i1120;a17; [*/ Return value]-|Speed of autorepeat.&]
2684[s3;%- &]
2685[s4;%- &]
2686[s5;:Ctrl`:`:GetDefaultWindowRect`(`):%- [@(0.0.255) static] [_^`:`:Rect^ Rect]_[* GetDefau
2687ltWindowRect]()&]
2688[s2;b17;a17; Returns OS suggested rectangle of newly open window.&]
2689[s7;i1120;a17; [*/ Return value]-|Default window rectangle.&]
2690[s3;%- &]
2691[s4;%- &]
2692[s5;:Ctrl`:`:GetAppName`(`):%- [@(0.0.255) static] [_^`:`:String^ String]_[* GetAppName]()&]
2693[s7;i1120;a17; [*/ Return value]-|Name of application. Used by U`+`+
2694in several places like Prompts.&]
2695[s3;%- &]
2696[s4;%- &]
2697[s5;:Ctrl`:`:SetAppName`(const String`&`):%- [@(0.0.255) static] [@(0.0.255) void]_[* SetAp
2698pName]([@(0.0.255) const]_[_^`:`:String^ String][@(0.0.255) `&]_[*@3 appname])&]
2699[s7;i1120;a17; [%-*C@3 appname]-|Adjusts application name.&]
2700[s3;%- &]
2701[s4;%- &]
2702[s5;:Ctrl`:`:Name`(`)const:%- [_^`:`:String^ String]_[* Name]()_[@(0.0.255) const]&]
2703[s2;b17;a17; Dumps diagnostic informations to standard log.&]
2704[s3;%- &]
2705[s4;%- &]
2706[s5;:Ctrl`:`:Dump`(Stream`&`)const:%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Dump]([_^`:`:Stream^ S
2707tream][@(0.0.255) `&]_[*@3 s])_[@(0.0.255) const]&]
2708[s2;b17;a17;%- Dumps diagnostic informations to specified output
2709stream.&]
2710[s7;i1120;a17; [%-*C@3 s]-|Stream.&]
2711[s3;%- &]
2712[s4;%- &]
2713[s5;:Ctrl`:`:InitWin32`(HINSTANCE`):%- [@(0.0.255) static] [@(0.0.255) void]_[* InitWin32](
2714HINSTANCE_[*@3 hinst])&]
2715[s2;b17;a17; Flushes all drawing operations to screen (what it EXACTLY
2716does is platform specific).&]
2717[s3;%- &]
2718[s4;%- &]
2719[s5;:Ctrl`:`:GuiSleep`(int`):%- [@(0.0.255) static] [@(0.0.255) void]_[* GuiSleep]([@(0.0.255) i
2720nt]_[*@3 ms])&]
2721[s2;b17;a17; Sleeps (while allowing other applications or threads
2722to run) for at least [*@3 ms] milliseconds or until new input event
2723is available. [*/ This method can only be invoked in the main thread.]&]
2724[s7;i1120;a17; [%-*@3 ms]-|Time to sleep.&]
2725[s3; &]
2726[s4;%- &]
2727[s5;:Upp`:`:Ctrl`:`:Call`(Upp`:`:Function`<void`(`)`>`):%- [@(0.0.255) static]
2728[@(0.0.255) void]_[* Call]([_^Upp`:`:Function^ Function]<[@(0.0.255) void]_()>_[*@3 cb])&]
2729[s2; Executes a callback in the main thread (the one responsible
2730for GUI). It works by posting callback into timer queue (with
2731zero delay), then waits its completion using Semaphore. Main
2732GUI thread has to run timer queue management for callback to
2733be executed (by running event`-loop (TopWindow`::Run) or ProcessEvents).
2734Warning: Call temporarily unlocks GuiLock (if locked) so that
2735the main thread can run on GUI, this is possible source of race`-conditions
2736(GuiLock is relocked after call completes). Be prepared that
2737some other code can run on GUI between call to Call and cb being
2738executed!&]
2739[s3; &]
2740[s4;%- &]
2741[s5;:Ctrl`:`:IsShutdownThreads`(`):%- [@(0.0.255) static] [@(0.0.255) bool]_[* IsShutdownTh
2742reads]()&]
2743[s2; Same as Thread`::IsShutdownThreads. Used to signal non`-main
2744threads that the program is about to end, so that non`-main threads
2745should terminate.&]
2746[s3;%- &]
2747[s4;%- &]
2748[s5;:Ctrl`:`:ShutdownThreads`(`):%- [@(0.0.255) static] [@(0.0.255) void]_[* ShutdownThread
2749s]()&]
2750[s2; Similiar to Thread`::ShutdownThreads, but as part of waiting
2751for threads to finish calls ProcessEvents so that any Call methods
2752can finish.&]
2753[s3;%- &]
2754[s4;%- &]
2755[s5;:Ctrl`:`:GetEventId`(`):%- [@(0.0.255) static] [_^int64^ int64]_[* GetEventId]()&]
2756[s2; This function is guaranteed to return the same number while
2757single input event (mouse event or keyboard event) is processed.
2758This is helpful in certain caching situations `- e.g. if you
2759want to lazy fetch some data, but only once per input event.&]
2760[s0;%- &]
2761[s0;%- &]
2762[ {{10000@(113.42.0) [s0; [*@7;4 Ctrl`::Logc]]}}&]
2763[s3; &]
2764[s1;:Ctrl`:`:Logc`:`:class:%- [@(0.0.255)3 class][3 _][*3 Logc]&]
2765[s9; This nested class serves as either vertical or horizontal part
2766of logical position.&]
2767[s3; &]
2768[s0;%- &]
2769[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
2770[s3;%- &]
2771[s5;:Ctrl`:`:Logc`:`:Logc`(int`,int`,int`):%- [* Logc]([@(0.0.255) int]_[*@3 al],
2772[@(0.0.255) int]_[*@3 a], [@(0.0.255) int]_[*@3 b])&]
2773[s7;l352;i1120;a17; [%-*C@3 al]-|Alignment type. Determines what other
2774parameters mean. &]
2775[s7;l352;i1120;a17; [%-*C@3 a]-|First value.&]
2776[s7;l352;i1120;a17; [%-*C@3 b]-|Second value.&]
2777[s3;%- &]
2778[s4;%- &]
2779[s5;:Ctrl`:`:Logc`:`:Logc`(`):%- [* Logc]()&]
2780[s2; Default constructor. Sets Logc to the empty state.&]
2781[s3; &]
2782[s0;%- &]
2783[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&]
2784[s3;%- &]
2785[s5;:Ctrl`:`:Logc`:`:LSGN`(dword`):%- [@(0.0.255) static] [@(0.0.255) int]_[* LSGN]([_^dword^ d
2786word]_[*@3 d])&]
2787[s7;l352;i1120;a17; [%-*C@3 q]-|Logc to compare with.&]
2788[s7;l352;i1120;a17; [*/ Return value]-|True when equal.&]
2789[s3; &]
2790[s4;%- &]
2791[s5;:Ctrl`:`:Logc`:`:operator`!`=`(Ctrl`:`:Logc`)const:%- [@(0.0.255) bool]_[* operator!`=
2792]([_^Ctrl`:`:Logc^ Logc]_[*@3 q])_[@(0.0.255) const]&]
2793[s7;l352;i1120;a17; [%-*C@3 q]-|Logc to compare with.&]
2794[s7;l352;i1120;a17; [*/ Return value]-|True when not equal.&]
2795[s3; &]
2796[s4;%- &]
2797[s5;:Ctrl`:`:Logc`:`:GetAlign`(`)const:%- [@(0.0.255) int]_[* GetAlign]()_[@(0.0.255) const
2798]&]
2799[s7;l352;i1120;a17; [*/ Return value]-|Alignment type.&]
2800[s3; &]
2801[s4;%- &]
2802[s5;:Ctrl`:`:Logc`:`:GetA`(`)const:%- [@(0.0.255) int]_[* GetA]()_[@(0.0.255) const]&]
2803[s7;l352;i1120;a17; [*/ Return value]-|First value.&]
2804[s3; &]
2805[s4;%- &]
2806[s5;:Ctrl`:`:Logc`:`:GetB`(`)const:%- [@(0.0.255) int]_[* GetB]()_[@(0.0.255) const]&]
2807[s7;l352;i1120;a17; [*/ Return value]-|Second value.&]
2808[s3; &]
2809[s4;%- &]
2810[s5;:Ctrl`:`:Logc`:`:SetAlign`(int`):%- [@(0.0.255) void]_[* SetAlign]([@(0.0.255) int]_[*@3 a
2811lign])&]
2812[s2;l352;b17;a17;%- Sets alignment type.&]
2813[s7;l352;i1120;a17; [%-*C@3 align]-|Alignment type.&]
2814[s3; &]
2815[s4;%- &]
2816[s5;:Ctrl`:`:Logc`:`:SetA`(int`):%- [@(0.0.255) void]_[* SetA]([@(0.0.255) int]_[*@3 a])&]
2817[s2;l352;b17;a17; Sets first value.&]
2818[s7;l352;i1120;a17; [%-*C@3 a]-|Value.&]
2819[s3; &]
2820[s4;%- &]
2821[s5;:Ctrl`:`:Logc`:`:SetB`(int`):%- [@(0.0.255) void]_[* SetB]([@(0.0.255) int]_[*@3 b])&]
2822[s2;l352;b17;a17; Sets second value.&]
2823[s7;l352;i1120;a17; [%-*C@3 b]-|Value.&]
2824[s3; &]
2825[s4;%- &]
2826[s5;:Ctrl`:`:Logc`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&]
2827[s7;l352;i1120;a17; [*/ Return value]-|True if Logc is empty.&]
2828[s3; &]
2829[s0; &]
2830[s0; &]
2831[s0;%- &]
2832[ {{10000@(113.42.0) [s0; [*@7;4 Ctrl`::LogPos]]}}&]
2833[s3; &]
2834[s5;:`:`:Ctrl`:`:LogPos`:`:struct:%- [*@(0.0.255) struct][*@(64) _][* LogPos]&]
2835[s9; This nested class combines two Logc value into complete logical
2836position.&]
2837[s3; &]
2838[s0;%- &]
2839[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
2840[s3;%- &]
2841[s5;:Ctrl`:`:LogPos`:`:LogPos`(Ctrl`:`:Logc`,Ctrl`:`:Logc`):%- [* LogPos]([_^Ctrl`:`:Logc^ L
2842ogc]_[*@3 x], [_^Ctrl`:`:Logc^ Logc]_[*@3 y])&]
2843[s7;l352;i1120;a17; [%-*C@3 x]-|Horizontal Logc.&]
2844[s7;l352;i1120;a17; [%-*C@3 y]-|Vertical Logc.&]
2845[s3; &]
2846[s4;%- &]
2847[s5;:Ctrl`:`:LogPos`:`:LogPos`(`):%- [* LogPos]()&]
2848[s2; Default constructor. Sets both Logc empty.&]
2849[s3; &]
2850[s0;%- &]
2851[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&]
2852[s3;%- &]
2853[s5;:Ctrl`:`:LogPos`:`:operator`=`=`(Ctrl`:`:LogPos`)const:%- [@(0.0.255) bool]_[* operat
2854or`=`=]([_^Ctrl`:`:LogPos^ LogPos]_[*@3 b])_[@(0.0.255) const]&]
2855[s7;l352;i1120;a17; [%-*C@3 b]-|LogPos to compare with.&]
2856[s7;l352;i1120;a17; [*/ Return value]-|True when equal.&]
2857[s3; &]
2858[s4;%- &]
2859[s5;:Ctrl`:`:LogPos`:`:operator`!`=`(Ctrl`:`:LogPos`)const:%- [@(0.0.255) bool]_[* operat
2860or!`=]([_^Ctrl`:`:LogPos^ LogPos]_[*@3 b])_[@(0.0.255) const]&]
2861[s7;l352;i1120;a17; [%-*C@3 b]-|LogPos to compare with.&]
2862[s7;l352;i1120;a17; [*/ Return value]-|True when equal.&]
2863[s3; &]
2864[s4;%- &]
2865[s5;:Ctrl`:`:LogPos`:`:x:%- [_^Ctrl`:`:Logc^ Logc]_[* x]&]
2866[s2; Horizontal Logc.&]
2867[s3; &]
2868[s4;%- &]
2869[s5;:Ctrl`:`:LogPos`:`:y:%- [_^Ctrl`:`:Logc^ Logc]_[* y]&]
2870[s2; Vertical Logc.&]
2871[s3; &]
2872[s0; ]]