acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
main_window.h
1
//
2
// // Created from micro::interchange by
3
// // camilo on 2024-10-05 16:52 <3ThomasBorregaardSorensen!!
4
// Created by camilo on 31/01/2022 14:32 <3ThomasBorregaardSorensen!!
5
// renamed interchange from interchange by camilo on
6
// 2024-09-26 15:37 <3ThomasBorregaardSorensen!!
7
//
8
// // // Merged from (acme)windowing and (acme)windowing_system by
9
// // camilo on 2024-10-05 11:07 <3ThomasBorregaardSorensen!!
10
// // (acme)windowing_system::windowing_system
11
// // ---->windowing::windowing_base
12
// // // ---->micro::user
13
// // (acme)windowing::window_base
14
// // ---->micro::interchange
15
//
16
// Child merged into interaction on 2024-10-05 05:15 <3ThomasBorregaardSorensen!!
17
// Created by camilo on 2022-01-21 05:10 PM <3ThomasBorregaardSorensen
18
//
19
20
#pragma once
21
22
23
#include "acme/user/micro/elemental.h"
24
#include "acme/user/user/frame_interaction.h"
25
26
27
28
#include "acme/prototype/geometry2d/shift.h"
29
#include "acme/user/user/element.h"
30
#include "acme/user/user/drag_client.h"
31
32
33
34
namespace
micro
35
{
36
37
38
39
class
CLASS_DECL_ACME main_window :
40
virtual
public
::micro::elemental
,
41
virtual
public
::acme::user::frame_interaction
42
{
43
public
:
44
45
// ::collection::index m_iDefaultButton = -1;
46
47
//::pointer < ::acme::windowing::window > m_pnanowindowingwindow;
48
//::pointer < ::acme::user::interaction > m_pacmeuserinteractionParent;
49
//pointer_array < ::acme::user::interaction > m_nanouserinteractionaChildren;
50
51
52
//string m_strText;
54
//i32_rectangle m_rectangle;
55
//enum_font m_efont;
56
57
58
::atom
m_atomLeftButtonDown;
59
::atom
m_atomLeftButtonUp;
60
::atom
m_atomRightButtonDown;
61
::atom
m_atomRightButtonUp;
62
63
64
65
66
67
main_window();
68
~main_window();
69
70
71
72
void
on_before_create_window(
acme::windowing::window
* pacmewindowingwindow)
override
;
73
74
75
virtual
void
create_window()
override
;
76
77
78
//void complete_step(sequencer & sequencer) override;
79
//void do_asynchronously() override;
80
81
82
//virtual ::micro::theme * nano_user_theme();
83
84
//virtual enum_font nano_user_font();
85
86
87
::micro::main_window
* micro_main_window()
override
;
88
89
//void create() override;
90
91
//void show_window() override;
92
93
//void hide_window() override;
94
95
//void message_loop() override;
96
97
//void draw(::nano::graphics::context * pnanodevice) override;
98
99
//void on_draw(::nano::graphics::context * pnanodevice) override;
100
101
//void draw(::nano::graphics::context * pnanodevice);
102
103
//virtual void on_char(::i32 iChar);
104
105
//bool is_active() override;
106
//void set_active() override;
107
108
//virtual void draw_children(::nano::graphics::context * pnanodevice);
109
110
//void delete_drawing_objects() override;
111
//bool get_dark_mode() override;
112
113
//void create_drawing_objects() override;
114
//void update_drawing_objects() override;
115
116
//::i32_point try_absolute_mouse_position(const ::i32_point & point) override;
117
118
119
virtual ::i32_point origin()
override
;
120
121
//virtual ::payload get_result();
122
123
124
virtual ::string get_title()
override
;
125
126
//void on_mouse_move(::user::mouse * pmouse) override;
127
//void on_left_button_down(::user::mouse * pmouse) override;
128
//void on_left_button_up(::user::mouse * pmouse) override;
129
//void on_click(const ::payload & payload, ::user::mouse * pmouse) override;
130
//void on_right_button_down(::user::mouse * pmouse) override;
131
//void on_right_button_up(::user::mouse * pmouse) override;
132
//void on_right_click(const ::payload & payload, ::user::mouse * pmouse) override;
133
134
//::micro::child * hit_test(::user::mouse * pmouse, ::user::e_zorder ezorder) override;
135
//virtual ::acme::user::interaction * hit_test(::user::mouse * pmouse, ::user::e_zorder ezorder);
136
//virtual ::acme::user::interaction * on_hit_test(const ::i32_point & point, ::user::e_zorder ezorder);
137
//virtual void add_child(::acme::user::interaction * pchild);
138
//virtual ::acme::user::interaction * get_child_by_id(const ::atom & atom);
139
140
//virtual ::i32_rectangle get_client_rectangle();
141
142
147
//virtual void set_keyboard_focus();
148
//virtual bool is_keyboard_focusable();
150
//virtual void set_mouse_capture();
151
//virtual bool has_mouse_capture();
152
//virtual void release_mouse_capture();
153
154
155
//virtual void resize_to_fit();
156
157
158
//virtual void display_temporary_file_with_text(const ::scoped_string & scopedstr);
159
160
//
161
// Created by camilo on 2024-09-26 18:50 Odense Time <3ThomasBorregaardSorensen!!
162
//
163
// micro::window_interface Created by camilo on 31/01/2022 22:37 <3ThomasBorregaardSorensen!!
164
// From micro::window_interface merged at ::acme::user::interaction by
165
// camilo on 2024-0926 15:01 <3ThomasBorregaardSorensen!!
166
//
167
//#pragma once
168
169
170
//namespace operating_system
171
//{
172
173
174
// class a_system_menu_item;
175
// class a_system_menu;
176
177
178
//} // namespace operating_system
179
180
181
182
//namespace user
183
//{
184
185
186
// class CLASS_DECL_ACME interaction_base :
187
// /* virtual public ::user::element,
188
// virtual public ::user::drag_client,
189
// virtual public ::conversation_message,
190
// virtual public ::source,
191
// virtual public ::user::check,
192
// virtual public ::user::text*/
193
// {
194
195
// public:
196
197
/* bool m_bMinimizeBox;
198
bool m_bMaximizeBox;
199
bool m_bResizeable;
200
bool m_bTopMost;
201
bool m_bStartCentered;
202
bool m_bArbitraryPositioning;
203
204
205
::pointer < ::acme::windowing::window > m_pnanowindowingwindow;
206
::pointer < ::acme::user::interaction > m_pacmeuserinteractionParent;
207
*/
208
209
// interaction_base();
210
/* ~interaction_base() override;*/
211
212
213
//virtual ::pointer < ::operating_system::a_system_menu > create_system_menu(bool bContextual = true);
214
void
_on_window_simple_action
(const_char_pointer pszActionName, ::user::activation_token * puseractivationtoken)
override
;
215
216
217
void
handle(
::topic
* ptopic,
::handler_context
* phandlercontext)
override
;
218
219
221
//void do_asynchronously() override;
222
//::payload do_synchronously(const class time & timeWait) override;
223
224
void
run()
override
;
225
//void complete_aggregation(::sequence * psequence) override;
226
227
//::acme::user::interaction * acme_user_interaction() override;
229
230
//virtual ::acme::user::interaction * nano_user_parent();
231
232
233
//virtual ::collection::count nano_user_button_count();
234
//virtual ::micro::button * nano_user_button_at(::collection::index i);
235
//
236
// //
237
// // Created by camilo on 31/01/2022 22:37 <3ThomasBorregaardSorensen!!
238
// //
239
// #pragma once
240
//
241
//
242
// //#include "acme/prototype/geometry2d/_geometry2d.h"
243
// ////#include "acme/prototype/prototype/object.h"
244
// ///
245
// #include "acme/prototype/geometry2d/shift.h"
246
// #include "acme/user/user/element.h"
247
// #include "user/user/interaction_base.h"
248
//
249
//
250
// namespace nano
251
// {
252
//
253
//
254
// namespace user
255
// {
256
//
257
//
258
// class CLASS_DECL_ACME window_interface :
259
// virtual public ::acme::user::interaction
260
// {
261
// public:
262
263
264
void
on_initialize_particle
()
override
;
265
266
//virtual void create_window();
267
268
//void show() override;
269
270
//void hide() override;
271
272
::shift_int client_to_host()
override
;
273
274
//virtual void message_loop();
275
276
virtual
void
implementation_message_loop_step()
override
;
277
278
//virtual void draw(::nano::graphics::context * pnanodevice);
279
280
//virtual void on_draw(::nano::graphics::context * pnanodevice);
281
282
//virtual void on_char(::i32 iChar);
283
284
//virtual bool is_active();
285
//virtual void set_active();
286
287
//virtual void draw_children(::nano::graphics::context * pnanodevice);
288
289
//virtual void delete_drawing_objects();
290
//virtual bool get_dark_mode();
291
292
//virtual void create_drawing_objects();
293
//virtual void update_drawing_objects();
294
295
//virtual ::i32_point origin();
296
297
//virtual bool defer_perform_entire_reposition_process();
298
299
300
// virtual ::pointer < ::operating_system::a_system_menu > create_system_menu();
301
//
302
// //bool defer_perform_entire_reposition_process(::user::mouse * pmouse) override;
303
//
304
// //bool defer_perform_entire_resizing_process(::experience::enum_frame eframeSizing, ::user::mouse * pmouse) override;
305
//
306
// virtual bool defer_perform_entire_reposition_process(::user::mouse * pmouse);
307
//
308
// virtual bool defer_perform_entire_resizing_process(::experience::enum_frame eframeSizing, ::user::mouse * pmouse);
309
310
311
//virtual ::shift_int host_to_client();
312
//virtual ::shift_int client_to_host();
313
314
//virtual ::shift_int absolute_to_client();
315
//virtual ::shift_int client_to_absolute();
316
317
//virtual ::i32_point try_absolute_mouse_position(const ::i32_point & point);
318
319
// drag_client
320
//void drag_set_capture() override;
321
//bool on_drag_start(::i32_point & point, ::item * pitem) override;
322
//::i32_point drag_mouse_cursor_position(::item * pitem, const ::i32_point & point) override;
323
//bool drag_shift(::item * pitem, ::user::mouse * pmouse) override;
324
//bool drag_hover(::item * pitem) override;
325
//void drag_release_capture() override;
326
//void drag_set_cursor(::item * pitem) override;
327
328
329
// virtual ::micro::child * nano_user_hit_test(::user::mouse * pmouse, ::user::e_zorder ezorder);
330
// virtual ::micro::child * nano_user_on_hit_test(const ::i32_point & point, ::user::e_zorder ezorder);
331
// virtual void nano_user_add_child(::micro::child * pchild);
332
333
//virtual ::payload get_result();
334
//void add_button(const ::scoped_string & scopedstrText, enum_dialog_result edialogresult, ::i8 chLetter);
335
336
337
void
display_temporary_file_with_text(const ::scoped_string & scopedstr)
override
;
338
339
//virtual void on_mouse_move(::user::mouse * pmouse);
340
//virtual void on_left_button_down(::user::mouse * pmouse);
341
//virtual void on_left_button_up(::user::mouse * pmouse);
342
//virtual void on_click(const ::payload & payload, ::user::mouse * pmouse);
343
//virtual void on_right_button_down(::user::mouse * pmouse);
344
//virtual void on_right_button_up(::user::mouse * pmouse);
345
//virtual void on_right_click(const ::payload & payload, ::user::mouse * pmouse);
346
347
348
//virtual LRESULT window_procedure(UINT message, WPARAM wparam, LPARAM lparam);
349
350
void
set_position(const ::i32_point & point)
override
;
351
352
void
destroy()
override
;
353
354
void
redraw()
override
;
355
356
//virtual void get_client_rectangle(::i32_rectangle & rectangle);
357
::i32_rectangle get_window_rectangle()
override
;
358
359
//void set_mouse_capture() override;
360
361
//bool has_mouse_capture() override;
362
363
//void release_mouse_capture() override;
364
365
void
set_cursor(enum_cursor ecursor)
override
;
366
367
virtual
void
synchronize_composited_micro_window()
override
;
368
369
//void run_modal_loop() override;
370
371
virtual
bool
is_popup_window()
const override
;
372
373
374
// Text Edit
375
//void get_text_selection(character_count & iBeg, character_count & iEnd) const override;
376
//virtual void get_text_selection(character_count & iBeg, character_count & iEnd, character_count & iComposingStart, character_count & iComposingEnd) const;
377
//virtual ::collection::index plain_edit_sel_to_column(::draw2d::graphics_pointer & pgraphics, character_count iSel);
378
//virtual ::collection::index plain_edit_sel_to_column_x(::draw2d::graphics_pointer & pgraphics, character_count iSel, ::i32 & x);
379
//virtual ::collection::index plain_edit_sel_to_line(::draw2d::graphics_pointer & pgraphics, character_count iSel);
380
//virtual ::collection::index plain_edit_sel_to_line_x(::draw2d::graphics_pointer & pgraphics, character_count iSel, ::i32 & x);
381
//virtual character_count plain_edit_line_column_to_sel(::draw2d::graphics_pointer & pgraphics, ::collection::index iLine, ::collection::index iColumn);
382
//virtual character_count plain_edit_line_x_to_sel(::draw2d::graphics_pointer & pgraphics, ::collection::index iLine, ::i32 x);
383
//virtual ::collection::index plain_edit_char_to_line(::draw2d::graphics_pointer & pgraphics, character_count iSel);
384
385
386
::trace_statement
& raw_trace_statement_prefix(
::trace_statement
& statement)
const override
;
387
388
//virtual void create_interaction(::user::interaction * puserinteractionParent, const ::atom & atom = nullptr);
389
390
391
//virtual void create_control(::user::interaction * puserinteractionParent, const ::atom & atom);
392
393
394
//virtual void on_position_window();
395
//virtual void on_size_window();
396
397
//bool is_window_zoomed() override;
398
//void window_minimize() override;
399
//void window_maximize() override; // m_pwindow->m_puserinteraction->display(::e_display_zoomed);
400
//void window_full_screen() override; // m_pwindow->m_puserinteraction->display(::e_display_full_screen);
401
//void window_restore() override; // m_pwindow->m_puserinteraction->display(::e_display_normal);
402
//void window_close() override;
403
404
//void set_mouse_capture() override;
405
//bool is_mouse_captured() override;
406
//bool has_mouse_capture() override;
407
//void release_mouse_capture() override;
408
409
410
//void _on_window_simple_action(const_char_pointer pszActionName) override;
411
412
413
//
414
// };
415
//
416
//
417
//
418
//
419
// } // namespace user
420
//
421
//
422
// } // namespace nano
423
//
424
//
425
//
426
427
// };
428
429
430
//} // user
431
432
433
434
435
};
436
437
438
}
// namespace micro
439
440
441
acme::user::frame_interaction
Definition
frame_interaction.h:20
acme::windowing::window
Definition
window.h:50
atom
Definition
atom.h:237
handler_context
Definition
handler_context.h:9
micro::elemental
Definition
elemental.h:38
micro::main_window
Definition
main_window.h:42
micro::main_window::on_initialize_particle
void on_initialize_particle() override
acme::windowing::window * acme_windowing_window() override;
Definition
main_window.cpp:128
micro::main_window::_on_window_simple_action
void _on_window_simple_action(const_char_pointer pszActionName, ::user::activation_token *puseractivationtoken) override
Child.
Definition
main_window.cpp:260
topic
Definition
topic.h:17
trace_statement
Definition
trace_statement.h:36
user
micro
main_window.h
Generated by
1.17.0