acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
window.h
1// created by Camilo <3CamiloSasukeThomasBorregaardSoerensen
2// recreated by Camilo 2021-01-28 22:20 <3TBS, Mummi and bilbo!!
3// Adapted by Camilo for android 2022-01-05 04:35 <3TBS (Thomas likes number 5), Mummi and bilbo!!
4// Adapted by Camilo for cached/simulation of mouse-capture/keyboard-focus state information and
5// a few other things present in sandboxed applications (mobile/tablet/small devices)
6// - 2022-06-02 12:44 PM <3TBS (Thomas likes number 5), Mummi and bilbo!!
7// as acme::sandbox_windowing on 2024-11-25 23:25 by
8// camilo <3ThomasBorregaardSorensen!!
9#pragma once
10
11
12#include "acme/windowing/window.h"
13#include "acme/windowing/windowing.h"
14
15
16namespace acme
17{
18
19
20namespace sandbox_windowing
21{
22
23
24class CLASS_DECL_ACME window :
25virtual public ::acme::windowing::window
26{
27public:
28
29
30 class ::time m_timeLastMouseMove;
31 ::i32_rectangle m_rect;
32 //::i32_point m_pointCursor;
33
34
35 htask m_htask;
36
37
38 window();
39 ~window() override;
40
41
42 // void create_window(::windowing::window* pimpl) override;
43 void create_window() override;
44
45
46
47 //::sandbox_windowing::windowing* windowing();
48
49 virtual ::acme::sandbox_windowing::windowing * sandbox_windowing();
50
51 void exit_iconify() override;
52
53 void full_screen(const ::i32_rectangle & rect = {}) override;
54
55 void exit_full_screen() override;
56
57 void exit_zoomed() override;
58
59 virtual void set_user_interaction(::windowing::window* pinteraction);
60
61 virtual void post_nc_destroy();
62
63 virtual ::e_status set_window_icon(const ::file::path& path);
64
65 virtual bool operating_system_window_is_child(const ::operating_system::window & operatingsystemwindowChildCandidate);
66
67 virtual bool operating_system_window_is_descendant(const ::operating_system::window & operatingsystemwindowDescendantCandidate);
68
69 //::windowing::window* get_parent() override;
70 //virtual ::Window get_parent_handle();
71 //::oswindow get_parent_oswindow() override;
72
73 //::i32_point get_mouse_cursor_position() override;
74
75 //virtual ::Window get_parent_handle() const;
76
77 //::windowing::windowing* android_windowing() const { return (::windowing_android::windowing*)m_pwindowing->m_pWindowing; }
78 //::windowing_android::display * x11_display() const { return (::windowing_android::display *)m_pdisplay->m_pDisplay; }
79
80 void set_parent(::acme::windowing::window* pwindowNewParent) override;
81 //virtual ::e_status set_parent(::windowing::window * pwindowNewParent) override;
82 //virtual long get_state();
83 virtual bool is_iconic() override;
84 virtual bool is_window_visible() override;
85// bool _configure_window_unlocked(const class ::zorder & zorder, const ::user::e_activation & useractivation, bool bNoZorder, ::e_display edisplay) override;
86 //virtual iptr get_window_long_ptr(::i32 nIndex);
87 //virtual iptr set_window_long_ptr(::i32 nIndex, iptr l);
88 virtual bool client_to_screen(::i32_point* ppoint) override;
89
90 virtual bool screen_to_client(::i32_point* ppoint) override;
91
92
93 //virtual bool set_window_pos(class::zorder zorder, ::i32 x, ::i32 y, ::i32 cx, ::i32 cy,::u32 nFlags);
94 //virtual bool _set_window_pos(class::zorder zorder, ::i32 x, ::i32 y, ::i32 cx, ::i32 cy,::u32 nFlags);
95
96
97 virtual bool is_destroying() override;
98
99
100 //virtual bool bamf_set_icon();
101
102
103 //virtual bool set_icon(::image::image* pimage);
104
105 //virtual ::i32 x_change_property(Atom property, Atom type, ::i32 format, ::i32 mode, const ::u8 * data, ::i32 nelements);
106
107 void set_mouse_cursor(::windowing::cursor* pcursor) override;
108
109 virtual void set_mouse_cursor2(::windowing::cursor* pcursor);
110
111 void set_keyboard_focus() override;
112 void set_mouse_capture() override;
113 void set_active_window() override;
114
115
116 virtual void SetInternalFocus();
117
118
119 void set_foreground_window(::user::activation_token * puseractivationtoken) override;
120
121
122 bool has_mouse_capture() override;
123
124 bool has_keyboard_focus() override;
125
126
127
128
129 //virtual Atom get_window_long_atom(::i32 nIndex);
130 //virtual void mapped_net_state_raw(bool add, windowing_android_WINDOW_MEMBER ::i32 iScreen, Atom state1, Atom state2);
131 //virtual void unmapped_net_state_raw( windowing_android_WINDOW_MEMBER ...);
132 //virtual bool x11_get_window_rect(windowing_android_WINDOW_MEMBER ::i32_rectangle * prectangle);
133 //virtual bool x11_get_client_rect(windowing_android_WINDOW_MEMBER ::i32_rectangle * prectangle);
134 //virtual oswindow set_mouse_capture( windowing_android_WINDOW_MEMBER );
135 //virtual ::i32_bool release_mouse_capture();
136 //virtual oswindow set_keyboard_focus( windowing_android_WINDOW_MEMBER );
137 //virtual void x11_check_status(::i32 status, ulong window);
138 //virtual ulong x11_get_long_property( windowing_android_WINDOW_MEMBER char_pointer property_name);
139 //virtual string x11_get_name(windowing_android_WINDOW_MEMBER);
140 //virtual ::e_status set_active_window();
141 //virtual void upper_window_rects(windowing_android_WINDOW_MEMBER i32_rectangle_array_base & ra);
142 //virtual oswindow set_active_window( windowing_android_WINDOW_MEMBER );
143 // virtual windowing_android_WINDOW_MEMBER _get_if_found(Window w);
144 //virtual oswindow get_parent( windowing_android_WINDOW_MEMBER );
145 //virtual ::Window _get_window_relative(windowing_android_WINDOW_MEMBER enum_relative erelative, ::Window * windowa, ::i32 numItems);
146 //virtual ::windowing::window * get_window(windowing_android_WINDOW_MEMBER enum_relative erelative);
147
148 void destroy_window() override;
149 //virtual ::i32_bool destroy_window( windowing_android_WINDOW_MEMBER );
150 bool is_window() override;
151 //virtual ::i32_bool is_window( windowing_android_WINDOW_MEMBER );
152
153
154 void set_window_text(const ::scoped_string & scopedstrString) override;
155
156
157 void set_tool_window(bool bSet) override;
158
159
160 //bool set_window_position(const class ::zorder& zorder, ::i32 x, ::i32 y, ::i32 cx, ::i32 cy, const ::user::e_activation& useractivation, bool bNoZorder, bool bNoMove, bool bNoSize, bool bShow, bool bHide) override;
161
162// bool _set_window_position(const class ::zorder & zorder, ::i32 x, ::i32 y, ::i32 cx, ::i32 cy, const ::user::e_activation & useractivation, bool bNoZorder, bool bNoMove, bool bNoSize, ::e_display edisplay, ::u32 nOverrideFlags = 0) override;
163
164
165 //virtual comparable_array < Atom > wm_get_list_raw(windowing_android_WINDOW_MEMBER Atom atomList);
166 //virtual ::i32 wm_test_state(windowing_android_WINDOW_MEMBER const ::scoped_string & scopedstrNetStateFlag);
167 //virtual ::i32 wm_test_state_raw(windowing_android_WINDOW_MEMBER const ::scoped_string & scopedstrNetStateFlag);
168 //virtual ::i32 wm_test_list_raw(windowing_android_WINDOW_MEMBER Atom atomList, Atom atomFlag);
169 //virtual bool wm_add_remove_list_raw(windowing_android_WINDOW_MEMBER Atom atomList, Atom atomFlag, bool bSet);
170 //virtual void wm_add_remove_state_mapped_raw(windowing_android_WINDOW_MEMBER::x11::enum_atom eatomNetWmState, bool bSet);
171 //virtual void wm_add_remove_state_mapped(windowing_android_WINDOW_MEMBER::x11::enum_atom eatomNetWmState, bool bSet);
172 //virtual void wm_add_remove_state_unmapped_raw(windowing_android_WINDOW_MEMBER::x11::enum_atom eatomNetWmState, bool bSet);
173 //virtual void wm_add_remove_state_unmapped(windowing_android_WINDOW_MEMBER::x11::enum_atom eatomNetWmState, bool bSet);
174 //virtual void wm_add_remove_state_raw(windowing_android_WINDOW_MEMBER::x11::enum_atom eatomNetWmState, bool bSet);
175 //virtual void wm_add_remove_state(windowing_android_WINDOW_MEMBER::x11::enum_atom eatomNetWmState, bool bSet);
176 //virtual void wm_state_clear_raw(windowing_android_WINDOW_MEMBER bool bSet);
177 //virtual void wm_state_below_raw(windowing_android_WINDOW_MEMBER bool bSet);
178 //virtual void wm_state_above_raw(windowing_android_WINDOW_MEMBER bool bSet);
179 //virtual void wm_state_hidden_raw(windowing_android_WINDOW_MEMBER bool bSet);
180 //virtual void wm_state_above(windowing_android_WINDOW_MEMBER bool bSet);
181 //virtual void wm_state_below(windowing_android_WINDOW_MEMBER bool bSet);
182 //virtual void wm_state_hidden(windowing_android_WINDOW_MEMBER bool bSet);
183 //virtual void wm_toolwindow(windowing_android_WINDOW_MEMBER bool bToolWindow);
184 //virtual void wm_normalwindow();
185 //virtual void wm_hidden_state(windowing_android_WINDOW_MEMBER bool bHidden);
186 //virtual void wm_desktopwindow(windowing_android_WINDOW_MEMBER bool bDesktopWindow);
187 //virtual void wm_centerwindow(windowing_android_WINDOW_MEMBER bool bCenterWindow);
188 //virtual void wm_splashwindow(windowing_android_WINDOW_MEMBER bool bCenterWindow);
189 //virtual void wm_dockwindow(windowing_android_WINDOW_MEMBER bool bDockWindow);
190 //virtual void wm_nodecorations(windowing_android_WINDOW_MEMBER ::i32 bMap);
191 //virtual void _wm_nodecorations(windowing_android_WINDOW_MEMBER ::i32 bMap);
192 //virtual ::i32_bool IsWindowVisibleRaw(windowing_android_WINDOW_MEMBER);
193 //virtual void wm_iconify_window(windowing_android_WINDOW_MEMBER);
194 //virtual ::i32_bool IsWindowVisibleRaw( windowing_android_WINDOW_MEMBER);
195 //virtual ::i32_bool IsWindowVisibleRaw(oswindow w);
196 // virtual Atom * wm_get_list_raw( windowing_android_WINDOW_MEMBER Atom atomList, ulong * pnum_items);
197 // virtual ::i32 wm_test_list_raw( windowing_android_WINDOW_MEMBER Atom atomList, Atom atomFlag);
198 // virtual ::i32 wm_test_state_raw( windowing_android_WINDOW_MEMBER const ::scoped_string & scopedstrNetStateFlag);
199 // virtual ::i32 wm_test_state( windowing_android_WINDOW_MEMBER const ::scoped_string & scopedstrNetStateFlag);
200 // virtual bool wm_add_remove_list_raw( windowing_android_WINDOW_MEMBER Atom atomList, Atom atomFlag, bool bSet);
201
202
203 //virtual ::e_status x11_post_message(MESSAGE & msg);
204 //virtual ::e_status post_ui_message(const MESSAGE & message);
207 //virtual ::e_status window_rectangle(windowing_android_WINDOW_MEMBER ::i32_rectangle * prectangle);
208 //virtual ::e_status this->rectangle(windowing_android_WINDOW_MEMBER ::i32_rectangle * prectangle);
210
211 //virtual ::e_status x11_store_name(const ::scoped_string & scopedstrName);
212 //virtual ::e_status set_foreground_window();
213 //virtual ::e_status set_active_window();
214 //virtual void wm_toolwindow( windowing_android_WINDOW_MEMBER bool bToolWindow);
215 //virtual void wm_state_hidden( windowing_android_WINDOW_MEMBER bool bSet);
216 //virtual void wm_state_hidden_raw( windowing_android_WINDOW_MEMBER bool bSet);
217 //virtual ::e_status mq_remove_window_from_all_queues(windowing_android_WINDOW_MEMBER);
218
219 //void window_update_screen_buffer() override;
220 //void _window_request_presentation() override;
221
222
223 // void _window_request_presentation_locked();
224
225 bool is_active_window() override;
226
227
228 //void bring_to_front() override;
229
230
231 //::f32 get_dpi_for_window() override;
232
233 //::f32 get_density_for_window() override;
234
235 //virtual void on_touch_down(::i32 x, ::i32 y);
236 //virtual void on_touch_drag(::i32 x, ::i32 y);
237 //virtual void on_touch_up(::i32 x, ::i32 y);
238
239
240};
241
242
243} // namespace sandbox_windowing
244
245
246
247} // namespace acme
248
249
250
251
void set_foreground_window(::user::activation_token *puseractivationtoken) override
should be run at user_thread
Definition window.cpp:3257
Definition window.h:50
Definition types.h:47
include "aura/graphics/image/context.h"
Definition aaaa__defer.h:32