1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: fontpicker.h 3 // Purpose: interface of wxFontPickerCtrl 4 // Author: wxWidgets team 5 // Licence: wxWindows licence 6 ///////////////////////////////////////////////////////////////////////////// 7 8 9 #define wxFNTP_FONTDESC_AS_LABEL 0x0008 10 #define wxFNTP_USEFONT_FOR_LABEL 0x0010 11 #define wxFONTBTN_DEFAULT_STYLE (wxFNTP_FONTDESC_AS_LABEL | wxFNTP_USEFONT_FOR_LABEL) 12 #define wxFNTP_USE_TEXTCTRL (wxPB_USE_TEXTCTRL) 13 #define wxFNTP_DEFAULT_STYLE (wxFNTP_FONTDESC_AS_LABEL|wxFNTP_USEFONT_FOR_LABEL) 14 15 wxEventType wxEVT_FONTPICKER_CHANGED; 16 17 18 /** 19 @class wxFontPickerCtrl 20 21 This control allows the user to select a font. The generic implementation is 22 a button which brings up a wxFontDialog when clicked. Native implementation 23 may differ but this is usually a (small) widget which give access to the 24 font-chooser dialog. 25 It is only available if @c wxUSE_FONTPICKERCTRL is set to 1 (the default). 26 27 @beginStyleTable 28 @style{wxFNTP_DEFAULT_STYLE} 29 The default style: wxFNTP_FONTDESC_AS_LABEL | wxFNTP_USEFONT_FOR_LABEL. 30 @style{wxFNTP_USE_TEXTCTRL} 31 Creates a text control to the left of the picker button which is 32 completely managed by the wxFontPickerCtrl and which can be used by 33 the user to specify a font (see SetSelectedFont). The text control 34 is automatically synchronized with button's value. Use functions 35 defined in wxPickerBase to modify the text control. 36 @style{wxFNTP_FONTDESC_AS_LABEL} 37 Keeps the label of the button updated with the fontface name and 38 the font size. E.g. choosing "Times New Roman bold, italic with 39 size 10" from the fontdialog, will update the label (overwriting 40 any previous label) with the "Times New Roman, 10" text. 41 @style{wxFNTP_USEFONT_FOR_LABEL} 42 Uses the currently selected font to draw the label of the button. 43 @endStyleTable 44 45 @beginEventEmissionTable{wxFontPickerEvent} 46 @event{EVT_FONTPICKER_CHANGED(id, func)} 47 The user changed the font selected in the control either using the button 48 or using text control (see wxFNTP_USE_TEXTCTRL; note that in this case the 49 event is fired only if the user's input is valid, i.e. recognizable). 50 @endEventTable 51 52 @library{wxcore} 53 @category{pickers} 54 @appearance{fontpickerctrl} 55 56 @see wxFontDialog, wxFontPickerEvent 57 */ 58 class wxFontPickerCtrl : public wxPickerBase 59 { 60 public: 61 wxFontPickerCtrl(); 62 63 /** 64 Initializes the object and calls Create() with 65 all the parameters. 66 */ 67 wxFontPickerCtrl(wxWindow* parent, wxWindowID id, 68 const wxFont& font = wxNullFont, 69 const wxPoint& pos = wxDefaultPosition, 70 const wxSize& size = wxDefaultSize, 71 long style = wxFNTP_DEFAULT_STYLE, 72 const wxValidator& validator = wxDefaultValidator, 73 const wxString& name = wxFontPickerCtrlNameStr); 74 75 /** 76 Creates this widget with given parameters. 77 78 @param parent 79 Parent window, must not be non-@NULL. 80 @param id 81 The identifier for the control. 82 @param font 83 The initial font shown in the control. 84 If ::wxNullFont is given, the default font is used. 85 @param pos 86 Initial position. 87 @param size 88 Initial size. 89 @param style 90 The window style, see wxFNTP_* flags. 91 @param validator 92 Validator which can be used for additional date checks. 93 @param name 94 Control name. 95 96 @return @true if the control was successfully created or @false if 97 creation failed. 98 */ 99 bool Create(wxWindow* parent, wxWindowID id, 100 const wxFont& font = wxNullFont, 101 const wxPoint& pos = wxDefaultPosition, 102 const wxSize& size = wxDefaultSize, 103 long style = wxFNTP_DEFAULT_STYLE, 104 const wxValidator& validator = wxDefaultValidator, 105 const wxString& name = wxFontPickerCtrlNameStr); 106 107 /** 108 Returns the maximum point size value allowed for the user-chosen font. 109 */ 110 unsigned int GetMaxPointSize() const; 111 112 /** 113 Returns the currently selected font. 114 Note that this function is completely different from wxWindow::GetFont. 115 */ 116 wxFont GetSelectedFont() const; 117 118 /** 119 Sets the maximum point size value allowed for the user-chosen font. 120 121 The default value is 100. Note that big fonts can require a lot of memory and 122 CPU time both for creation and for rendering; thus, specially because the user 123 has the option to specify the fontsize through a text control 124 (see wxFNTP_USE_TEXTCTRL), it's a good idea to put a limit to the maximum 125 font size when huge fonts do not make much sense. 126 */ 127 void SetMaxPointSize(unsigned int max); 128 129 /** 130 Sets the currently selected font. 131 Note that this function is completely different from wxWindow::SetFont. 132 */ 133 void SetSelectedFont(const wxFont& font); 134 }; 135 136 137 138 /** 139 @class wxFontPickerEvent 140 141 This event class is used for the events generated by 142 wxFontPickerCtrl. 143 144 @beginEventTable{wxFontPickerEvent} 145 @event{EVT_FONTPICKER_CHANGED(id, func)} 146 Generated whenever the selected font changes. 147 @endEventTable 148 149 @library{wxcore} 150 @category{events} 151 152 @see wxFontPickerCtrl 153 */ 154 class wxFontPickerEvent : public wxCommandEvent 155 { 156 public: 157 /** 158 The constructor is not normally used by the user code. 159 */ 160 wxFontPickerEvent(wxObject* generator, int id, 161 const wxFont& font); 162 163 /** 164 Retrieve the font the user has just selected. 165 */ 166 wxFont GetFont() const; 167 168 /** 169 Set the font associated with the event. 170 */ 171 void SetFont(const wxFont& f); 172 }; 173 174