acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
aaa_window_base.h
1//
2// Created by camilo on 2023-10-06 <3ThomasBorregaardSorensen!!
3//
4// ::micro::window_implementation Created by camilo on 31/01/2022 23:04 <3ThomasBorregaardSorensen!!
5// Merged from former ::micro::window_implementation by
6// camilo on 2024-0926 14:45 <3ThomasBorregaardSorensen!!
7//
8//
9//
10#pragma once
11
12
13#include "acme/prototype/geometry2d/size.h"
14#include "acme/user/user/element.h"
15
16
17namespace windowing
18{
19
20
21 class CLASS_DECL_ACME window_base :
22 virtual public ::user::element
23 {
24 public:
25
26
27
28 bool m_bRepositioningWindowFromCenter;
29 bool m_bResizingWindowFromBottomRight;
30 ::i32_point m_pointWindow;
31 ::i32_size m_sizeWindow;
32 ::i32_point m_pointCursor2;
33
34 ::pointer < ::operating_system::a_system_menu > m_psystemmenu;
35
36 ::pointer < ::acme::user::interaction > m_puserinteractionbase;
37
38 ::pointer < ::acme::windowing::display > m_pdisplaybase;
39
40
41 window_base();
42 ~window_base() override;
43
44
45 ::acme::user::interaction * user_interaction_base() override;
46 ::acme::windowing::window * windowing_window_base() override;
47
48
49 void on_initialize_particle() override;
50
51
52 void destroy() override;
53
54
55 virtual bool is_windowing_popup();
56 virtual ::i32_point windowing_popup_origin();
57 virtual ::i32_size windowing_popup_size();
58 virtual void _on_windowing_close_window();
59 virtual bool is_satellite_window();
60 virtual window_base * owner_window();
61 ::string get_window_text() override;
62
63
65
66 bool defer_perform_entire_reposition_process(::user::mouse * pmouse) override;
67
68 bool defer_perform_entire_resizing_process(::experience::enum_frame eframeSizing, ::user::mouse * pmouse) override;
69
70
71 virtual void on_char(::i32 iChar);
72// //
73// // Created by camilo on 31/01/2022 23:04 <3ThomasBorregaardSorensen!!
74// //
75// #pragma once
76//
77//
78// #include "window_interface.h"
79// #include "acme/user/user/element.h"
80//
81//
82// namespace nano
83// {
84//
85//
86// namespace user
87// {
88//
89//
90// class CLASS_DECL_ACME window_implementation :
91// virtual public ::user::element
92// {
93// public:
94//
95
96 //
97 // window_implementation();
98 // ~window_implementation() override;
99
100
101 virtual ::acme::windowing::display * get_display();
102
103
104 //void draw(::nano::graphics::context * pnanodevice) override;
105
106 //static ::pointer_array < ::micro::window_implementation > & nanowindowimplementationa();
107
108
109
110 //bool get_dark_mode() override;
111 //bool is_active() override;
112
113 //virtual void nano_window_on_create();
114
115 virtual void create_window();
116 virtual void _create_window();
117
118 void on_create_window() override;
119
120 virtual void nano_window_on_destroy();
121
122 //virtual void _console_create();
123
124 //virtual void _display_console();
125
126
127 virtual void show_window();
128 virtual void hide_window();
129
130 virtual void message_loop();
131
132 virtual void set_active_window();
133
134 virtual bool is_active_window();
135
136 virtual ::i32_point try_absolute_mouse_position(const ::i32_point & point);
137
138
139 void handle(::topic * ptopic, ::handler_context * phandlercontext) override;
140
141
142 virtual ::i32_size get_main_screen_size();
143
144
145 void _on_window_simple_action(const_char_pointer pszActionName) override;
146
147
148 //virtual ::payload do_synchronously(const class time & timeWait = ::time::infinity()) override;
149 //virtual void do_asynchronously() override;
150
151
152 virtual void defer_show_system_menu(::user::mouse * pmouse);
153
154 virtual void implementation_message_loop_step();
155
156
157
158 virtual void set_interface_client_size(const ::i32_size & sizeWindow);
159
160
161 void set_rectangle(const i32_rectangle &rectangle) override;
162 void set_position(const i32_point &point) override;
163 void set_size(const i32_size &size) override;
164
165
166 ::i32_rectangle get_window_rectangle() override;
167 virtual ::i32_rectangle get_window_rectangle_unlocked();
168
169
170 virtual void set_rectangle_unlocked(const i32_rectangle &rectangle);
171 virtual void set_position_unlocked(const i32_point &point);
172 virtual void set_size_unlocked(const i32_size &size);
173
174
175 virtual void on_a_system_menu_item(::operating_system::a_system_menu_item * psystemmenuitem);
176
177
178 };
179
180
181} // namespace windowing
Definition interaction.h:50
Definition window.h:50
Definition a_system_menu.h:15
Definition topic.h:17
bool defer_perform_entire_reposition_process(::user::mouse *pmouse) override
pointer < operating_system::a_system_menu > create_system_menu(bool bContextual = true) override;
Definition aaa_window_base.cpp:146