xtd 0.2.0
Loading...
Searching...
No Matches
form.h
Go to the documentation of this file.
1
4#pragma once
5#include "const_form_ref.h"
6#include "form_border_style.h"
9#include "form_ref.h"
10#include "form_start_position.h"
11#include "form_window_state.h"
12#include "container_control.h"
13#include "dialog_result.h"
14#include "ibutton_control.h"
15#include "main_menu.h"
16#include "screen.h"
17#include "status_bar.h"
18#include "tool_bar.h"
19#include <xtd/drawing/icon>
20#include <xtd/io/path>
21#include <cstddef>
22
24namespace xtd {
26 namespace forms {
28 class application;
29 class application_context;
30 class form;
32
53 struct data;
54
55 public:
57
60 using ibutton_control_ref = std::reference_wrapper<xtd::forms::ibutton_control>;
61
63 using main_menu_ref = std::reference_wrapper<xtd::forms::main_menu>;
64
66 using status_bar_ref = std::reference_wrapper<xtd::forms::status_bar>;
67
69 using tool_bar_ref = std::reference_wrapper<xtd::forms::tool_bar>;
71
73
79
81
85 std::optional<ibutton_control_ref> accept_button() const noexcept;
89 form& accept_button(const ibutton_control& value);
93 form& accept_button(std::nullptr_t);
94
97 virtual forms::auto_size_mode auto_size_mode() const noexcept;
102
105 std::optional<ibutton_control_ref> cancel_button() const noexcept;
109 form& cancel_button(const ibutton_control& value);
113 form& cancel_button(std::nullptr_t);
114
117 virtual bool close_box() const noexcept;
121 virtual form& close_box(bool value);
122
125 virtual bool control_box() const noexcept;
129 virtual form& control_box(bool value);
130
133 virtual forms::dialog_result dialog_result() const noexcept;
138
140 using container_control::font;
141 control& font(std::nullptr_t) override;
143
146 virtual forms::form_border_style form_border_style() const noexcept;
151
154 virtual bool help_button() const;
158 virtual form& help_button(bool value);
159
162 virtual const xtd::drawing::icon& icon() const noexcept;
166 virtual form& icon(const xtd::drawing::icon& value);
167
170 virtual bool maximize_box() const noexcept;
174 virtual form& maximize_box(bool value);
175
178 virtual std::optional<main_menu_ref> menu() const noexcept;
182 virtual form& menu(const forms::main_menu& value);
186 virtual form& menu(std::nullptr_t);
187
190 virtual bool minimize_box() const noexcept;
194 virtual form& minimize_box(bool value);
195
198 bool modal() const noexcept;
199
202 virtual double opacity() const noexcept;
205 virtual form& opacity(double opacity);
206
209 virtual std::optional<control_ref> owner() const noexcept;
213 virtual form& owner(const control& value);
217 virtual form& owner(std::nullptr_t);
218
219 using container_control::parent;
222 control& parent(const control& value) override;
223
226 virtual bool show_icon() const noexcept;
230 virtual form& show_icon(bool value);
231
237 virtual bool show_in_taskbar() const noexcept;
244 virtual form& show_in_taskbar(bool value);
245
248 virtual form_start_position start_position() const noexcept;
252 virtual form& start_position(form_start_position value);
253
256 virtual std::optional<status_bar_ref> status_bar() const noexcept;
260 virtual form& status_bar(const forms::status_bar& value);
264 virtual form& status_bar(std::nullptr_t);
265
268 virtual std::optional<tool_bar_ref> tool_bar() const noexcept;
272 virtual form& tool_bar(const forms::tool_bar& value);
276 virtual form& tool_bar(std::nullptr_t);
277
282 virtual bool top_level() const noexcept;
287 virtual form& top_level(bool top_level);
288
291 virtual bool top_most() const noexcept;
295 virtual form& top_most(bool value);
296
297 using container_control::visible;
301 control& visible(bool visible) override;
302
305 virtual form_window_state window_state() const noexcept;
309 virtual form& window_state(form_window_state value);
311
313
317 static std::optional<form_ref> active_form() noexcept;
319
321
325 void activate();
326
327 void bring_to_front() override;
328
332 void center_to_screen();
333
336 void close();
337
338 bool pre_process_message(const xtd::forms::message& message) override;
339
342 virtual forms::dialog_result show_dialog();
346 virtual forms::dialog_result show_dialog(const iwin32_window& owner);
347
351 virtual void show_sheet(const iwin32_window& owner);
352
356 virtual forms::dialog_result show_sheet_dialog(const iwin32_window& owner);
358
360
364 static form create();
368 static form create(const xtd::ustring& text);
373 static form create(const xtd::ustring& text, const drawing::point& location);
379 static form create(const xtd::ustring& text, const drawing::point& location, const drawing::size& size);
386 static form create(const xtd::ustring& text, const drawing::point& location, const drawing::size& size, const xtd::ustring& name);
391 static form create(const xtd::ustring& text, const drawing::size& size);
397 static form create(const xtd::ustring& text, const drawing::size& size, const xtd::ustring& name);
402 static form create(const xtd::ustring& text, form_start_position start_position);
408 static form create(const xtd::ustring& text, form_start_position start_position, const drawing::point& location);
415 static form create(const xtd::ustring& text, form_start_position start_position, const drawing::point& location, const drawing::size& size);
423 static form create(const xtd::ustring& text, form_start_position start_position, const drawing::point& location, const drawing::size& size, const xtd::ustring& name);
429 static form create(const xtd::ustring& text, form_start_position start_position, const drawing::size& size);
436 static form create(const xtd::ustring& text, form_start_position start_position, const drawing::size& size, const xtd::ustring& name);
438
440
445
449
453
458
459 protected:
460 friend class application;
461
463
465 forms::create_params create_params() const noexcept override;
466 drawing::size default_size() const noexcept override;
468
470
476 std::unique_ptr<xtd::object> clone() const override;
477
480 virtual void on_activated(const event_args& e);
481
484 virtual void on_deactivate(const event_args& e);
485
486 void on_handle_created(const event_args& e) override;
487 void on_handle_destroyed(const event_args& e) override;
488
491 virtual void on_form_closed(const form_closed_event_args& e);
492
495 virtual void on_form_closing(form_closing_event_args& e);
496
497 void on_layout(const event_args& e) override;
498 void on_location_changed(const event_args& e) override;
499 void on_paint(paint_event_args& e) override;
500 void on_region_changed(const event_args& e) override;
501
502 void on_resize(const event_args& e) override;
503 void wnd_proc(message& message) override;
505
506 private:
507 friend class application_context;
508 bool closed_() const noexcept;
509 void internal_set_window_state();
510
511 void create_system_menu();
512 void destroy_system_menu();
513
514 void fill_in_create_params_border_icons(xtd::forms::create_params& cp) const;
515 void fill_in_create_params_border_styles(xtd::forms::create_params& cp) const;
516 void fill_in_create_params_start_position(xtd::forms::create_params& cp) const;
517 void fill_in_create_params_window_state(xtd::forms::create_params& cp) const;
518
519 void wm_activate(message& message);
520 void wm_close(message& message);
521 void wm_recreate(message& message);
522 void wm_syscolor_change(message& message);
523
524 std::shared_ptr<data> data_;
525 static std::optional<form_ref> active_form_;
526 };
527 }
528}
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
Provides focus-management functionality for controls that can function as a container for other contr...
Definition container_control.h:23
Defines the base class for controls, which are components with visual representation.
Definition control.h:79
Encapsulates the information needed when creating a control.
Definition create_params.h:27
Provides data for the form_closed event.
Definition form_closed_event_args.h:20
Provides data for the form_closing event.
Definition form_closing_event_args.h:20
Represents a window or dialog box that makes up an application's user interface.
Definition form.h:52
std::reference_wrapper< xtd::forms::main_menu > main_menu_ref
Represent an xtd::forms::main_menu reference.
Definition form.h:63
form()
Initializes a new instance of the Form class.
std::reference_wrapper< xtd::forms::ibutton_control > ibutton_control_ref
Represent an xtd::forms::ibutton_control reference.
Definition form.h:60
std::reference_wrapper< xtd::forms::tool_bar > tool_bar_ref
Represent an xtd::forms::tool_bar reference.
Definition form.h:69
std::reference_wrapper< xtd::forms::status_bar > status_bar_ref
Represent an xtd::forms::status_bar reference.
Definition form.h:66
std::optional< ibutton_control_ref > accept_button() const noexcept
Gets the button on the form that is clicked when the user presses the ENTER key.
Allows a control to act like a button on a form.
Definition ibutton_control.h:24
Provides an interface to expose Win32 HWND handles.
Definition iwin32_window.h:21
Represents the menu structure of a form.
Definition main_menu.h:39
Represents the base functionality for all menus. Although tool_strip_drop_down and tool_strip_drop_do...
Definition menu.h:35
Implements a Windows message.
Definition message.h:26
Provides data for the xtd::forms::control::paint event.
Definition paint_event_args.h:28
Represents a Windows status bar control.
Definition status_bar.h:46
Represents a Windows toolbar.
Definition tool_bar.h:50
Represents text as a sequence of UTF-8 code units.
Definition ustring.h:47
Contains xtd::forms::form_ref alias.
Contains xtd::forms::container_control class.
Contains xtd::forms::dialog_result enum class.
Contains xtd::forms::form_border_style enum class.
Contains xtd::forms::form_closed_event_args event handler.
Contains xtd::forms::form_closing_event_handler event handler.
Contains xtd::forms::form_ref alias.
Contains xtd::forms::form_start_position enum class.
Contains xtd::forms::form_window_state enum class.
generic_event_handler<> event_handler
Represents the method that will handle an event that has no event data.
Definition event_handler.h:32
delegate< void(object &sender, form_closing_event_args &e)> form_closing_event_handler
Represents the method that handles a form_closing event.
Definition form_closing_event_handler.h:22
delegate< void(object &sender, const form_closed_event_args &e)> form_closed_event_handler
Represents the method that handles a form_closed event.
Definition form_closed_event_handler.h:23
#define forms_export_
Define shared library export.
Definition forms_export.h:13
xtd::forms::style_sheets::control form
The form data allows you to specify the box of a form control.
Definition form.h:21
size_t size
Represents a size of any object in bytes.
Definition types.h:197
std::reference_wrapper< form > form_ref
Represent an xtd::forms::form reference.
Definition form_ref.h:23
dialog_result
Specifies identifiers to indicate the return value of a dialog box.
Definition dialog_result.h:41
form_window_state
Specifies how a form window is displayed.
Definition form_window_state.h:20
auto_size_mode
Specifies how a control will behave when its auto_size property is enabled.
Definition auto_size_mode.h:20
form_start_position
Specifies the initial position of a form.
Definition form_start_position.h:20
form_border_style
Specifies the border styles for a form.
Definition form_border_style.h:20
std::reference_wrapper< control > control_ref
Represents a control reference.
Definition control_ref.h:23
Contains xtd::forms::ibutton_control interface.
Contains xtd::forms::main_menu menu.
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::screen component.
Contains xtd::forms::style_sheets::status_bar class.
Contains xtd::forms::tool_bar container.