xtd 0.2.0
Loading...
Searching...
No Matches
application.h
Go to the documentation of this file.
1
4#pragma once
5#include "../forms_export.h"
6#include "../forms_namespace_aliases.h"
9#include "form_collection.h"
10#include "imessage_filter.h"
11#include "message.h"
13#include <xtd/delegate>
14#include <xtd/event_args>
15#include <xtd/static>
16#include <cstdint>
17#include <memory>
18#include <vector>
19
21namespace xtd {
23 namespace forms {
25 class input_dialog;
26 class message_box;
28
50 public:
52
57 static bool allow_quit() noexcept;
58
63
69 static xtd::ustring common_app_data_path() noexcept;
70
71 /*
75 static microsoft::win32::registry_key common_app_data_registry();
76 */
77
87 static xtd::ustring company_name() noexcept;
88
91 static bool dark_mode_enabled() noexcept;
92
95 static bool light_mode_enabled() noexcept;
96
99 static xtd::ustring executable_name() noexcept;
100
103 static xtd::ustring executable_path() noexcept;
104
108 static std::optional<form_ref> main_form();
109
112 static bool message_loop() noexcept;
113
117 static const form_collection open_forms() noexcept;
118
121 static xtd::ustring product_name() noexcept;
122
125 static xtd::ustring product_version() noexcept;
126
129 static xtd::ustring startup_path() noexcept;
130
134 static const xtd::forms::style_sheets::style_sheet& style_sheet() noexcept;
138 static void style_sheet(const xtd::forms::style_sheets::style_sheet& value);
142 static const xtd::forms::style_sheets::style_sheet::style_sheets_t& style_sheets() noexcept;
143
147 static const xtd::forms::style_sheets::style_sheet::style_sheet_names_t& style_sheet_names() noexcept;
148
153 static const xtd::forms::style_sheets::style_sheet& system_style_sheet() noexcept;
154
160 static xtd::ustring user_app_data_path() noexcept;
161
162 /*
167 static microsoft::win32::registry_key user_app_data_registry();
168 */
169
173 static bool use_system_controls() noexcept;
174
175
179 static bool use_visual_styles() noexcept;
180
187 static bool use_wait_cursor() noexcept;
196
198
203 static event<application, delegate<void(const event_args&)>> application_exit;
204
207 static event<application, delegate<void(const event_args&)>> enter_thread_modal;
208
215 static event<application, delegate<void(const event_args&)>> idle;
216
219 static event<application, delegate<void(const event_args&)>> leave_thread_modal;
220
221 /*
227 static event<threading::thread_exception_event_handler> thread_exception;
228 */
229
233 static event<application, delegate<void(const event_args&)>> thread_exit;
235
237
242 static void add_message_filter(const imessage_filter& value);
243
249 static void disable_font_size_correction();
250
256 static void do_events();
257
261 static void enable_button_images();
262
267 static void enable_dark_mode();
268
273 static void enable_light_mode();
274
278 static void enable_menu_images();
279
284 static void enable_standard_controls();
285
290 static void enable_system_controls();
291
297 static void enable_system_font_size();
298
303 static void enable_visual_styles();
304
310 static void exit();
311
318 static void exit(cancel_event_args& e);
319
322 static void exit_thread();
323
329 static xtd::forms::style_sheets::style_sheet get_style_sheet_from_name(const xtd::ustring& name);
330
333 static void raise_idle(const event_args& e);
334
338 static void register_message_loop_callback(message_loop_callback callback);
339
343 static void remove_message_filter(const imessage_filter& value);
344
351 static void restart();
352
359 static void run();
360
367 static void run(xtd::forms::application_context& context);
368
376 static void run(const form& main_form);
377
378 /*
384 static void set_unhandled_exception_mode (unhandled_exception_mode mode);
385 */
386
387 /*
396 static void set_unhandled_exception_mode (unhandled_exception_mode mode, bool thread_scope);
397 */
399
400 private:
401 friend class form;
402 friend class input_dialog;
403 friend class message_box;
404
405 static bool close_open_forms();
406 static void on_app_thread_exit(object& sender, const event_args& e);
407 static bool on_app_thread_exception();
408 static void raise_enter_thread_modal(const event_args& e);
409 static void raise_leave_thread_modal(const event_args& e);
410 static intptr wnd_proc_(intptr hwnd, int32 msg, intptr wparam, intptr lparam, intptr handle);
411 static void wnd_proc(message& message);
412 static void wm_activate_app(message& message);
413 static void wm_app_idle(message& message);
414 static void wm_quit(message& message);
415
416 static xtd::forms::application_context internal_context_;
417 static xtd::forms::application_context* context_;
418 static bool use_visual_styles_;
419 static bool use_system_controls_;
420 static bool use_wait_cursor_;
421 static bool message_loop_;
422 static bool raise_idle_;
423 };
424 }
425}
Contains xtd::forms::application_context class.
Represents the base class for classes that contain event data, and provides a value to use for events...
Definition event_args.h:18
Represents an event.
Definition event.h:21
Specifies the contextual information about an application thread.
Definition application_context.h:24
Provides static methods and properties to manage an application, such as methods to start and stop an...
Definition application.h:49
static bool allow_quit() noexcept
Gets a value indicating whether the caller can quit this application.
Provides data for a cancelable event.
Definition cancel_event_args.h:20
Represents a window or dialog box that makes up an application's user interface.
Definition form.h:52
Defines a message filter interface.
Definition imessage_filter.h:22
Represents a common dialog box that displays input dialog.
Definition input_dialog.h:36
Displays a message window, also known as a dialog box, which presents a message to the user....
Definition message_box.h:38
Implements a Windows message.
Definition message.h:26
Creates a use wait cursor class.
Definition use_wait_cursor.h:23
Represents text as a sequence of UTF-8 code units.
Definition ustring.h:47
Contains xtd::forms::form_collection alias.
delegate< bool()> message_loop_callback
Represents a method that will check whether the hosting environment is still sending messages.
Definition message_loop_callback.h:21
#define static_
This keyword is use to represent a static object. A static object can't be instantiated (constructors...
Definition static.h:37
#define forms_export_
Define shared library export.
Definition forms_export.h:13
int_least32_t int32
Represents a 32-bit signed integer.
Definition types.h:131
intmax_t intptr
Represent a pointer or a handle.
Definition types.h:153
std::reference_wrapper< form > form_ref
Represent an xtd::forms::form reference.
Definition form_ref.h:23
std::vector< std::reference_wrapper< form > > form_collection
Represents a collection of form objects.
Definition form_collection.h:22
Contains xtd::forms::imessage_filter interface.
Contains xtd::forms::message class.
Contains xtd::forms::message_loop_callback callback.
The xtd::forms namespace contains classes for creating Windows-based applications that take full adva...
Definition xtd_about_box.h:12
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10
Contains xtd::forms::style_sheets::style_sheet class.