98 class CLASS_DECL_ACME window :
104 static const ::i32 ID_SHOW_ABOUT_BOX = 64800;
109 class ::time m_timeLastSizeMove;
110 ::i32_point m_pointSizeMoveStart;
112 bool m_bDefaultSystemMenu;
113 bool m_bSizeMoveMode;
116 ::i32 m_iDebugAtom = 0;
117 WNDPROC m_wndprocDefault;
126 virtual bool _on_default_system_menu_init_menu(::lresult & lresult,
::wparam wparam);
128 virtual void _defer_show_system_menu(::user::mouse * ppmouse);
130 virtual bool is_window_class_registered(const_char_pointer pszWindowClassName);
131 virtual bool register_window_class(const_char_pointer pszWindowClassName, ::i32 iWindowClassStyle = 0,
void * pHCURSOR =
nullptr,
void * pHBRUSH_Background = (
void *) (HBRUSH)WIN32_COLOR_WINDOW);
132 virtual bool _register_window_class(WNDCLASSEXW &wndclassexw, const_char_pointer pszWindowClassName);
135 virtual ::operating_system::window _create_window_ex(
137 const ::scoped_string & scopedstrWindowClassName,
138 const ::scoped_string & scopedstrWindowName,
140 const ::i32_origin_size & originsize = {WIN32_CW_USEDEFAULT,WIN32_CW_USEDEFAULT,WIN32_CW_USEDEFAULT,WIN32_CW_USEDEFAULT},
141 const ::operating_system::window & operatingsystemwindowParent =
nullptr,
142 void * pHMENU =
nullptr,
143 ::hinstance hinstance =
nullptr,
144 void * pLPARAM =
nullptr);
146 inline ::operating_system::window _create_window(
147 const ::scoped_string & scopedstrWindowClassName,
148 const ::scoped_string & scopedstrWindowName,
150 const ::i32_origin_size & originsize = {WIN32_CW_USEDEFAULT,WIN32_CW_USEDEFAULT,WIN32_CW_USEDEFAULT,WIN32_CW_USEDEFAULT},
151 const ::operating_system::window & operatingsystemwindowParent =
nullptr,
152 void * pHMENU =
nullptr,
153 ::hinstance hinstance =
nullptr,
154 void * pLPARAM =
nullptr)
156 return _create_window_ex(
158 scopedstrWindowClassName,
162 operatingsystemwindowParent,
168 virtual void createWindowEx(
170 const ::scoped_string & scopedstrWindowClassName,
171 const ::scoped_string & scopedstrWindowName,
173 const ::i32_origin_size & originsize = {WIN32_CW_USEDEFAULT,WIN32_CW_USEDEFAULT,WIN32_CW_USEDEFAULT,WIN32_CW_USEDEFAULT},
174 const ::operating_system::window & operatingsystemwindowParent =
nullptr,
175 void * pHMENU =
nullptr);
177 inline void createWindow(
178 const ::scoped_string & scopedstrWindowClassName,
179 const ::scoped_string & scopedstrWindowName,
181 const ::i32_origin_size & originsize = {WIN32_CW_USEDEFAULT,WIN32_CW_USEDEFAULT,WIN32_CW_USEDEFAULT,WIN32_CW_USEDEFAULT},
182 const ::operating_system::window & operatingsystemwindowParent =
nullptr,
183 void * pHMENU =
nullptr)
187 scopedstrWindowClassName,
191 operatingsystemwindowParent,
195 virtual void * _HWND()
const;
196 virtual void * _WNDPROC_default()
const;
198 static LRESULT CALLBACK
s_window_procedure(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
199 static HINSTANCE s_window_procedure_hinstance();
204 bool is_window_visible()
override;
205 bool is_window_iconic()
override;
206 ::f32 get_window_scale()
override;
209 ::i32_point screen_to_window_client(const ::i32_point & point);
210 ::i32_rectangle screen_to_window_client(const ::i32_rectangle & rectangle);
211 ::i32_point window_client_to_screen(const ::i32_point & point);
212 ::i32_rectangle window_client_to_screen(const ::i32_rectangle & rectangle);
216 void show_window(::i32 iShowFlags)
override;
217 void set_window_style(::i32 iStyle)
override;
218 ::i64 get_window_style()
override;
222 void set_active_window()
override;
223 void set_window_text(
const scoped_string &scopedstr)
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 void set_foreground_window(::user::activation_token *puseractivationtoken)
override;
230 ::i32_rectangle window_get_client_rect()
override;
231 ::i32_rectangle get_window_rect()
override;
232 bool defer_update_system_menu()
override;
233 void dump_operating_system_child_window_hierarchy()
override;
236 virtual ::i32 _on_non_client_hit_test(const ::i32_point &point);