acme
Foundational cross-platform layer of the ca2 framework
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
34namespace micro
35{
36
37
38
39 class CLASS_DECL_ACME main_window :
40 virtual public ::micro::elemental,
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
Definition frame_interaction.h:20
Definition window.h:50
Definition atom.h:237
Definition handler_context.h:9
Definition elemental.h:38
Definition main_window.h:42
void on_initialize_particle() override
acme::windowing::window * acme_windowing_window() override;
Definition main_window.cpp:128
void _on_window_simple_action(const_char_pointer pszActionName, ::user::activation_token *puseractivationtoken) override
Child.
Definition main_window.cpp:260
Definition topic.h:17
Definition trace_statement.h:36