xtd - Reference Guide  0.1.1
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
font_dialog.h
Go to the documentation of this file.
1 #pragma once
5 #include <xtd/drawing/color.h>
6 #include <xtd/drawing/font.h>
9 #include <xtd/forms/choose_font_flags.h>
10 #include "common_dialog.h"
11 
13 namespace xtd {
15  namespace forms {
28  public:
47  font_dialog() = default;
48 
52  bool allow_script_change() const {return !get_option(CF_SELECTSCRIPT);}
57  font_dialog& allow_script_change(bool allow_script_change) {
58  set_option(CF_SELECTSCRIPT, !allow_script_change);
59  return *this;
60  }
61 
64  bool allow_simulation() const {return !get_option(CF_NOSIMULATIONS);}
68  font_dialog& allow_simulation(bool allow_simulation) {
69  set_option(CF_NOSIMULATIONS, !allow_simulation);
70  return *this;
71  }
72 
75  bool allow_vector_fonts() const {return !get_option(CF_NOVECTORFONTS);}
79  font_dialog& allow_vector_fonts(bool allow_vector_fonts) {
80  set_option(CF_NOVECTORFONTS, !allow_vector_fonts);
81  return *this;
82  }
83 
86  bool allow_vertical_fonts() const {return !get_option(CF_NOVERTFONTS);}
90  font_dialog& allow_vertical_fonts(bool allow_vertical_fonts) {
91  set_option(CF_NOVERTFONTS, !allow_vertical_fonts);
92  return *this;
93  }
94 
97  drawing::color color() const {return color_;}
102  color_ = color;
103  return *this;
104  }
105 
108  bool fixed_pitch_only() const {return get_option(CF_FIXEDPITCHONLY);}
112  font_dialog& fixed_pitch_only(bool fixed_pitch_only) {
113  set_option(CF_FIXEDPITCHONLY, fixed_pitch_only);
114  return *this;
115  }
116 
119  drawing::font font() const {return font_;}
124  font_ = font;
125  return *this;
126  }
127 
130  bool font_must_exist() const {return get_option(CF_FORCEFONTEXIST);}
134  font_dialog& font_must_exist(bool font_must_exist) {
135  set_option(CF_FORCEFONTEXIST, font_must_exist);
136  return *this;
137  }
138 
141  size_t max_size() const {return max_size_;}
145  font_dialog& max_size(size_t max_size) {
146  max_size_ = max_size;
147  return *this;
148  }
149 
152  size_t min_size() const {return min_size_;}
156  font_dialog& min_size(size_t min_size) {
157  min_size_ = min_size;
158  return *this;
159  }
160 
164  size_t options() const {return options_;}
165 
168  bool script_only() const {return get_option(CF_SCRIPTSONLY);}
172  font_dialog& script_only(bool script_only) {
173  set_option(CF_SCRIPTSONLY, script_only);
174  return *this;
175  }
176 
179  bool show_apply() const {return get_option(CF_APPLY);}
183  font_dialog& show_apply(bool show_apply) {
184  set_option(CF_APPLY, show_apply);
185  return *this;
186  }
187 
190  bool show_color() const {return show_color_;}
194  font_dialog& show_color(bool show_color) {
195  show_color_ = show_color;
196  return *this;
197  }
198 
201  bool show_effect() const {return get_option(CF_EFFECTS);}
205  font_dialog& show_effect(bool show_effect) {
206  set_option(CF_EFFECTS, show_effect);
207  return *this;
208  }
209 
212  bool show_help() const {return get_option(CF_SHOWHELP);}
216  font_dialog& show_help(bool show_help) {
217  set_option(CF_SHOWHELP, show_help);
218  return *this;
219  }
220 
225 
228  void reset() override;
229 
230  protected:
236  virtual void on_apply(const event_args& e);
237 
242  bool run_dialog(intptr_t owner) override;
243 
246  void run_sheet(intptr_t owner) override;
247 
248  private:
249  bool get_option(size_t flag) const {return (options_ & flag) == flag;}
250  void set_option(size_t flag, bool value) {options_ = value ? options_ | flag : options_ & ~flag;}
251 
252  drawing::color color_ = xtd::forms::theme_colors::current_theme().control_text();
254  size_t max_size_ = 0;
255  size_t min_size_ = 0;
256  size_t options_ = CF_TTONLY;
257  bool show_color_ = false;
258  };
259  }
260 }
Represents an ARGB (alpha, red, green, blue) color.
Definition: color.h:39
Defines a particular format for text, including font face, size, and style attributes....
Definition: font.h:39
static xtd::drawing::font default_font()
Gets the default font that applications can use for dialog boxes and forms.
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 base class used for displaying dialog boxes on the screen.
Definition: common_dialog.h:31
Prompts the user to choose a font from among those installed on the local computer.
Definition: font_dialog.h:27
bool show_help() const
Gets a value indicating whether the dialog box displays a Help button.
Definition: font_dialog.h:212
size_t max_size() const
Gets the maximum point size a user can select.
Definition: font_dialog.h:141
void reset() override
Resets all dialog box options to their default values.
font_dialog & fixed_pitch_only(bool fixed_pitch_only)
Sets a value indicating whether the dialog box allows only the selection of fixed-pitch fonts.
Definition: font_dialog.h:112
size_t options() const
Gets values to initialize the font_dialog.
Definition: font_dialog.h:164
virtual void on_apply(const event_args &e)
Raises the font_dialog::apply event.
font_dialog & color(const drawing::color &color)
Sets the selected font color.
Definition: font_dialog.h:101
bool script_only() const
Gets a value indicating whether the dialog box allows selection of fonts for all non-OEM and Symbol c...
Definition: font_dialog.h:168
bool run_dialog(intptr_t owner) override
font_dialog & show_color(bool show_color)
Sets a value indicating whether the dialog box displays the color choice.
Definition: font_dialog.h:194
drawing::color color() const
Gets the selected font color.
Definition: font_dialog.h:97
font_dialog & show_help(bool show_help)
Sets a value indicating whether the dialog box displays a Help button.
Definition: font_dialog.h:216
bool show_effect() const
Gets a value indicating whether the dialog box contains controls that allow the user to specify strik...
Definition: font_dialog.h:201
bool show_apply() const
Gets a value indicating whether the dialog box contains an Apply button.
Definition: font_dialog.h:179
font_dialog & font(const drawing::font &font)
Sets the selected font.
Definition: font_dialog.h:123
font_dialog()=default
Initializes a new instance of the font_dialog class.
bool allow_script_change() const
Gets a value indicating whether the user can change the character set specified in the Script combo b...
Definition: font_dialog.h:52
bool allow_vertical_fonts() const
Gets a value indicating whether the dialog box displays both vertical and horizontal fonts or only ho...
Definition: font_dialog.h:86
size_t min_size() const
Gets the minimum point size a user can select.
Definition: font_dialog.h:152
void run_sheet(intptr_t owner) override
When overridden in a derived class, specifies a common dialog box.
font_dialog & allow_vertical_fonts(bool allow_vertical_fonts)
Sets a value indicating whether the dialog box displays both vertical and horizontal fonts or only ho...
Definition: font_dialog.h:90
font_dialog & min_size(size_t min_size)
Sets the minimum point size a user can select.
Definition: font_dialog.h:156
font_dialog & allow_script_change(bool allow_script_change)
Sets a value indicating whether the user can change the character set specified in the Script combo b...
Definition: font_dialog.h:57
font_dialog & show_effect(bool show_effect)
Sets a value indicating whether the dialog box contains controls that allow the user to specify strik...
Definition: font_dialog.h:205
font_dialog & allow_simulation(bool allow_simulation)
Sets a value indicating whether the dialog box allows graphics device interface (GDI) font simulation...
Definition: font_dialog.h:68
font_dialog & show_apply(bool show_apply)
Sets a value indicating whether the dialog box contains an Apply button.
Definition: font_dialog.h:183
bool allow_simulation() const
Gets a value indicating whether the dialog box allows graphics device interface (GDI) font simulation...
Definition: font_dialog.h:64
font_dialog & font_must_exist(bool font_must_exist)
Sets a value indicating whether the dialog box specifies an error condition if the user attempts to s...
Definition: font_dialog.h:134
bool allow_vector_fonts() const
Gets a value indicating whether the dialog box allows vector font selections.
Definition: font_dialog.h:75
bool fixed_pitch_only() const
Gets a value indicating whether the dialog box allows only the selection of fixed-pitch fonts.
Definition: font_dialog.h:108
bool show_color() const
Gets a value indicating whether the dialog box displays the color choice.
Definition: font_dialog.h:190
bool font_must_exist() const
Gets a value indicating whether the dialog box specifies an error condition if the user attempts to s...
Definition: font_dialog.h:130
font_dialog & allow_vector_fonts(bool allow_vector_fonts)
Sets a value indicating whether the dialog box allows vector font selections.
Definition: font_dialog.h:79
font_dialog & max_size(size_t max_size)
Sets the maximum point size a user can select.
Definition: font_dialog.h:145
drawing::font font() const
Gets the selected font.
Definition: font_dialog.h:119
font_dialog & script_only(bool script_only)
Sets a value indicating whether the dialog box allows selection of fonts for all non-OEM and Symbol c...
Definition: font_dialog.h:172
Contains xtd::drawing::color class.
Contains xtd::forms::common_dialog class.
Contains xtd::drawing::font class.
event< font_dialog, event_handler > apply
Occurs when the user clicks the Apply button in the font dialog box.
Definition: font_dialog.h:224
#define forms_export_
Define shared library export.
Definition: forms_export.h:13
@ show_help
A Help button appears in the color dialog box.
The xtd::forms namespace contains classes for creating Windows-based applications that take full adva...
Definition: about_box.h:13
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition: system_report.h:17
Contains xtd::drawing::system_colors factory.
Contains xtd::drawing::system_fonts factory.