23class CLASS_DECL_ACME interchange :
30 ::function < void(interchange *) > m_functionClose;
33 ::pointer<::nano::graphics::brush> m_pbrushWindow;
34 ::pointer<::nano::graphics::brush> m_pbrushText;
35 ::pointer<::nano::graphics::brush> m_pbrushHyperlink;
36 ::pointer<::nano::graphics::brush> m_pbrushHyperlinkHover;
37 ::pointer<::nano::graphics::pen> m_ppenBorder;
38 ::pointer<::nano::graphics::pen> m_ppenBorderFocus;
39 ::pointer<::nano::graphics::pen> m_ppenNull;
40 ::pointer<::nano::graphics::font> m_pfont;
48 i32_rectangle m_rectangle;
50 pointer_array < ::micro::child > m_childa;
51 ::atom m_atomLeftButtonDown;
53 ::atom m_atomRightButtonDown;
54 ::atom m_atomRightButtonUp;
55 ::pointer<::micro::child> m_pchildFocus;
56 ::pointer<::micro::child> m_pchildHover;
57 ::pointer<::micro::child> m_pchildCapture;
61 bool m_bStartCentered;
62 bool m_bArbitraryPositioning;
69 pointer_array < ::micro::button > m_nanobuttona;
70 ::collection::index m_iDefaultButton = -1;
76 ~interchange()
override;
79 ::payload do_synchronously(
const class time & timeWait = ::time::infinity())
override;
80 void do_asynchronously()
override;
85 void on_initialize_particle()
override;
87 void create()
override;
89 void show_window()
override;
93 void message_loop()
override;
99 void on_char(::i32 iChar)
override;
101 bool is_active()
override;
102 void set_active()
override;
106 void delete_drawing_objects()
override;
107 bool get_dark_mode()
override;
109 void create_drawing_objects()
override;
110 void update_drawing_objects()
override;
115 virtual bool defer_perform_entire_reposition_process(::user::mouse * pmouse);
117 virtual bool defer_perform_entire_resizing_process(::experience::enum_frame eframeSizing, ::user::mouse * pmouse);
119 ::i32_point try_absolute_mouse_position(const ::i32_point & point)
override;
122 ::i32_point origin()
override;
126 virtual ::micro::child * hit_test(::user::mouse * pmouse, ::user::e_zorder ezorder);
127 virtual ::micro::child * on_hit_test(const ::i32_point & point, ::user::e_zorder ezorder);
128 virtual void add_child(::micro::child * pchild);
129 virtual ::micro::child * get_child_by_id(const ::atom &
atom);
131 ::payload get_result()
override;
133 void on_mouse_move(::user::mouse * pmouse)
override;
134 void on_left_button_down(::user::mouse * pmouse)
override;
135 void on_left_button_up(::user::mouse * pmouse)
override;
136 void on_click(const ::payload & payload, ::user::mouse * pmouse)
override;
137 void on_right_button_down(::user::mouse * pmouse)
override;
138 void on_right_button_up(::user::mouse * pmouse)
override;
139 void on_right_click(const ::payload & payload, ::user::mouse * pmouse)
override;
141 void set_position(const ::i32_point & point)
override;
143 ::i32_rectangle get_window_rectangle()
override;
145 void on_create_window()
override;
147 void destroy()
override;
149 void redraw()
override;
151 void get_client_rectangle(::i32_rectangle & rectangle)
override;
155 void set_capture()
override;
157 bool has_capture()
override;
159 void release_capture()
override;
161 void set_cursor(enum_cursor ecursor)
override;
164 void add_button(const ::scoped_string & scopedstrText, enum_dialog_result edialogresult, ::i8 chLetter);
167 void display_temporary_file_with_text(const ::scoped_string & scopedstr);
170 ::pointer<::nano::graphics::context>create_device();
173 void _run_modal_loop()
override;
179 void handle(
::topic * ptopic, ::handler_context * phandlercontext)
override;