47 class CLASS_DECL_ACME window :
48 virtual public ::user::element
55 ::pointer_array < ::exception > m_exceptiona;
56 ::pointer < ::acme::windowing::gpu_context_render_frame > m_pgpucontextrenderframe;
61 class ::time m_timeHoverNoiseSuppression;
66 i32_rectangle m_rectangle;
67 ::i32_rectangle m_rectanglePointingTo;
80 bool m_bPerformingEntireRepositionProcess;
81 bool m_bPerformingEntireResizingProcess;
82 bool m_bRepositioningWindowFromCenter;
83 bool m_bResizingWindowFromBottomRight;
86 ::i32_point m_pointWindow;
87 ::i32_size m_sizeWindow;
88 ::i32_point m_pointCursor2;
90 ::pointer < ::operating_system::a_system_menu > m_psystemmenu;
92 ::pointer<::acme::user::interaction> m_pacmeuserinteraction;
93 ::pointer<::acme::user::interaction> m_pacmeuserinteractionKeyboardFocus;
94 ::pointer<::acme::user::interaction> m_pacmeuserinteractionHover;
95 ::pointer<::acme::user::interaction> m_pacmeuserinteractionMouseCapture;
99 ::pointer < ::acme::windowing::display > m_pacmewindowingdisplayWindow;
100 class ::time m_timeLastPresentRequest;
114 ::windowing::enum_bias windowing_bias()
const;
118 void on_initialize_particle()
override;
129 virtual bool should_avoid_default_swap_chain_present();
131 virtual ::operating_system::window operating_system_window()
const;
133 virtual void set_user_thread(::user::thread * puserthread);
134 virtual void set_user_graphics_thread(::user::graphics_thread * pusergraphicsthread);
137 virtual void set_last_present_request_time();
141 bool defer_perform_entire_reposition_process(::user::mouse * pmouse)
override;
143 bool defer_perform_entire_resizing_process(const ::experience::e_frame & eframeSizing, ::user::mouse * pmouse)
override;
148 virtual ::i32_point origin();
150 void set_position(const ::i32_point & point)
override;
152 ::i32_rectangle get_window_rectangle()
override;
156 void destroy()
override;
158 void redraw()
override;
161 void set_interaction_rectangle(const ::i32_rectangle & rectangle)
override;
163 ::i32_rectangle get_rectangle()
override;
168 void set_mouse_capture()
override;
170 bool has_mouse_capture()
override;
172 void release_mouse_capture()
override;
174 void set_cursor(enum_cursor ecursor)
override;
176 virtual bool _is_window();
179 void set_foreground_window(::user::activation_token * puseractivationtoken)
override;
182 virtual bool has_keyboard_focus();
184 void set_keyboard_focus()
override;
187 virtual bool is_window();
191 void set_window_text(const ::scoped_string & scopedstrString)
override;
193 ::pointer<::nano::graphics::context>create_device();
196 virtual bool on_window_mouse_move(const ::i32_point & point, const ::i32_point & pointAbsolute);
198 virtual void on_mouse_enter();
199 virtual void fore_on_mouse_move(::user::mouse * pmouse);
200 virtual void back_on_mouse_move(::user::mouse * pmouse);
201 virtual void on_mouse_leave();
203#ifdef WINDOWS_DESKTOP
204 virtual ::windows::window_class _get_window_class();
208 bool on_window_create(
void * pCREATESTRUCT)
override;
209 void on_window_position(const ::i32_point & point)
override;
210 void on_window_size(const ::i32_size & size)
override;
211 void on_window_set_focus()
override;
212 bool on_window_activate(::i32 iActivate,
bool bMinimized, const ::operating_system::window & operatingsystemwindow)
override;
213 bool on_window_mouse_activate(::i32 & iResult, const ::operating_system::window & operatingsystemwindowTop,
214 ::i32 iHitTest, ::i32 iMessage)
override;
217 bool is_window_iconic()
override;
218 ::f32 get_window_scale()
override;
221 void show_window(::i32 iShowFlags)
override;
222 void set_window_style(::i32 iStyle)
override;
223 ::i64 get_window_style()
override;
224 void set_window_position(const ::operating_system::window & operatingsystemwindow, const ::i32_point & point, const ::i32_size & size, ::i32 iSetWindowPosFlags)
override;
225 void window_invalidate_rect(const ::i32_rectangle * prectangle,
bool bErase)
override;
226 void update_window()
override;
227 void redraw_window(const ::i32_rectangle * prectangle,
void * pHRGN, ::i32 iRedrawFlags)
override;
228 void window_set_focus()
override;
229 ::i32_rectangle window_get_client_rect()
override;
230 ::i32_rectangle get_window_rect()
override;
231 void dump_operating_system_child_window_hierarchy()
override;
233 virtual ::pointer < ::user::activation_token > get_initial_frame_display_activation_token();
240 void handle(
::topic * ptopic, ::handler_context * phandlercontext)
override;
272 virtual bool is_windowing_popup();
273 virtual ::i32_point windowing_popup_origin();
274 virtual ::i32_size windowing_popup_size();
275 virtual void _on_windowing_close_window();
276 virtual ::i32_boolean is_satellite_window();
279 ::string get_window_text()
override;
282 virtual itask get_itask()
const;
323 virtual ::acme::windowing::display *
get_display();
325 virtual ::particle * get_acme_window_bridge();
338 void create_window()
override;
339 void _create_window()
override;
343 virtual void nano_window_on_destroy();
346 void on_window_close()
override;
352 virtual void on_position_window();
353 virtual void on_size_window();
355 virtual void _on_reposition(::i32 x, ::i32 y);
356 virtual void _on_size(::i32 cx, ::i32 cy);
361 bool is_window_zoomed()
override;
362 void window_minimize()
override;
363 void window_maximize()
override;
364 void window_full_screen()
override;
365 void window_restore()
override;
366 void window_close()
override;
373 void on_window_deiconified()
override;
374 void on_window_activated()
override;
375 void on_window_iconified()
override;
376 void on_window_deactivated()
override;
377 void on_window_shown()
override;
378 void on_window_hidden()
override;
381 void set_active_window()
override;
383 virtual bool is_active_window();
388 virtual void exit_iconify();
390 virtual void full_screen(const ::i32_rectangle & rect = {});
392 virtual void exit_full_screen();
394 virtual void exit_zoomed();
400 virtual bool is_iconic();
405 virtual bool client_to_screen(::i32_point* ppoint);
407 virtual bool screen_to_client(::i32_point* ppoint);
414 virtual bool is_destroying();
424 virtual void set_mouse_cursor(::windowing::cursor* pcursor);
433 void _on_window_simple_action(const_char_pointer pszActionName, ::user::activation_token * puseractivationtoken)
override;
440 virtual void defer_show_system_menu(::user::mouse * pmouse);
442 virtual void window_message_loop_step();
444 virtual void window_message_loop();
448 virtual void set_interface_client_size(const ::i32_size & sizeWindow);
451 void set_rectangle(
const i32_rectangle & rectangle)
override;
453 void set_size(
const i32_size & size)
override;
457 virtual ::i32_rectangle get_window_rectangle_unlocked();
460 virtual void set_rectangle_unlocked(
const i32_rectangle & rectangle);
461 virtual void set_position_unlocked(
const i32_point & point);
462 virtual void set_size_unlocked(
const i32_size & size);
467 virtual ::i32 control_box_right_when_at_left()
const;
469 virtual bool should_use_desktop_ambient_like_control_box()
const;
471 virtual void on_control_box_close();
472 virtual void on_control_box_minimize();
473 virtual void on_control_box_zoom();
476 virtual void get_os_window_handle(
void *p, ::i32 iSize);
478 virtual void on_gpu_context_render_frame(::i32 w, ::i32 h);
480 virtual void _lock_window_gpu_context();
481 virtual void _unlock_window_gpu_context();