## wxFontPickerCtrl

This control allows the user to select a font. The generic implementation is a button which brings up a wxFontDialog when clicked. Native implementation may differ but this is usually a (small) widget which give access to the font-chooser dialog. It is only available if `wxUSE_FONTPICKERCTRL` is set to 1 (the default).

Derived from

wxPickerBase
wxControl
wxWindow
wxEvtHandler
wxObject

Include files

<wx/fontpicker.h>

Window styles

wxFNTP_DEFAULT_STYLE | The default style: wxFNTP_FONTDESC_AS_LABEL | wxFNTP_USEFONT_FOR_LABEL.
wxFNTP_USE_TEXTCTRL | Creates a text control to the left of the picker button which is completely managed by the wxFontPickerCtrl and which can be used by the user to specify a font (see SetSelectedFont). The text control is automatically synchronized with button's value. Use functions defined in wxPickerBase to modify the text control.
wxFNTP_FONTDESC_AS_LABEL | Keeps the label of the button updated with the fontface name and the font size. E.g. choosing "Times New Roman bold, italic with size 10" from the fontdialog, will update the label (overwriting any previous label) with the "Times New Roman, 10" text.
wxFNTP_USEFONT_FOR_LABEL | Uses the currently selected font to draw the label of the button.

Event handling

To process a font picker event, use these event handler macros to direct input to member functions that take a wxFontPickerEvent argument.

EVT_FONTPICKER_CHANGED(id, func) | The user changed the font selected in the control either using the button or using text control (see wxFNTP_USE_TEXTCTRL; note that in this case the event is fired only if the user's input is valid, i.e. recognizable).

See also

wxFontDialog,
wxFontPickerEvent

Members

wxFontPickerCtrl::wxFontPickerCtrl
wxFontPickerCtrl::Create
wxFontPickerCtrl::GetSelectedFont
wxFontPickerCtrl::SetSelectedFont
wxFontPickerCtrl::GetMaxPointSize
wxFontPickerCtrl::SetMaxPointSize

### wxFontPickerCtrl::wxFontPickerCtrl

wxFontPickerCtrl(wxWindow *parent, wxWindowID id, const wxFont& font = wxNullFont, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxFNTP_DEFAULT_STYLE, const wxValidator& validator = wxDefaultValidator, const wxString& name = "fontpickerctrl")

Initializes the object and calls Create with all the parameters.

### wxFontPickerCtrl::Create

bool Create(wxWindow *parent, wxWindowID id, const wxFont& font = wxNullFont, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxFNTP_DEFAULT_STYLE, const wxValidator& validator = wxDefaultValidator, const wxString& name = "fontpickerctrl")

Parameters

parent

Parent window, must not be non-`NULL`.

id

The identifier for the control.

font

The initial font shown in the control. If `wxNullFont` is given, the default font is used.

pos

Initial position.

size

Initial size.

style

The window style, see `wxFNTP_*` flags.

validator

Validator which can be used for additional date checks.

name

Control name.

Return value

`true` if the control was successfully created or `false` if creation failed.

### wxFontPickerCtrl::GetSelectedFont

wxFont GetSelectedFont() const

Returns the currently selected font. Note that this function is completely different from wxWindow::GetFont.

### wxFontPickerCtrl::SetSelectedFont

void SetSelectedFont(const wxFont &font)

Sets the currently selected font. Note that this function is completely different from wxWindow::SetFont.

### wxFontPickerCtrl::GetMaxPointSize

unsigned int GetMaxPointSize() const

Returns the maximum point size value allowed for the user-chosen font.

### wxFontPickerCtrl::SetMaxPointSize

void GetMaxPointSize(unsigned int max)

Sets the maximum point size value allowed for the user-chosen font. The default value is 100. Note that big fonts can require a lot of memory and CPU time both for creation and for rendering; thus, specially because the user has the option to specify the fontsize through a text control (see wxFNTP_USE_TEXTCTRL), it's a good idea to put a limit to the maximum font size when huge fonts do not make much sense.