wxWidgets: Common Dialogs

| Version: 3.2.7

Common Dialogs

Common dialog classes and functions encapsulate commonly-needed dialog box requirements.

They are all 'modal', grabbing the flow of control until the user dismisses the dialog, to make them easy to use within an application.

Some dialogs have both platform-dependent and platform-independent implementations, so that if underlying windowing systems do not provide the required functionality, the generic classes and functions can stand in. For example, under MS Windows, wxColourDialog uses the standard colour selector. There is also an equivalent called wxGenericColourDialog for other platforms, and a macro defines wxColourDialog to be the same as wxGenericColourDialog on non-MS Windows platforms. However, under MS Windows, the generic dialog can also be used, for testing or other purposes.

See also
  Common Dialogs

# wxColourDialog Overview

Classes: wxColourDialog, wxColourData

The wxColourDialog presents a colour selector to the user, and returns with colour information.

## The MS Windows Colour Selector

Under Windows, the native colour selector common dialog is used. This presents a dialog box with three main regions: at the top left, a palette of 48 commonly-used colours is shown. Under this, there is a palette of 16 'custom colours' which can be set by the application if desired. Additionally, the user may open up the dialog box to show a right-hand panel containing controls to select a precise colour, and add it to the custom colour palette.

## The Generic Colour Selector

Under non-MS Windows platforms, the colour selector is a simulation of most of the features of the MS Windows selector. Two palettes of 48 standard and 16 custom colours are presented, with the right-hand area containing three or four sliders for the user to select a colour from red, green, blue and opacity (optionally) components. This colour may be added to the custom colour palette, and will replace either the currently selected custom colour, or the first one in the palette if none is selected. The RGB or ARGB colour sliders are not optional in the generic colour selector. The generic colour selector is also available under MS Windows; use the name wxGenericColourDialog.

## Example

In the samples/dialogs directory, there is an example of using the wxColourDialog class. Here is an excerpt, which sets various parameters of a wxColourData object, including a grey scale for the custom colours. If the user did not cancel the dialog, the application retrieves the selected colour and uses it to set the background of a window.

wxColourData data;
data.SetChooseFull(true);
for (int i = 0; i < 16; i++)
{
wxColour colour(i*16, i*16, i*16);
data.SetCustomColour(i, colour);
}
wxColourDialog dialog(this, &data);
if (dialog.ShowModal() == wxID_OK)
{
wxColourData retData = dialog.GetColourData();
wxColour col = retData.GetColour();
wxBrush brush(col, wxBRUSHSTYLE_SOLID);
myWindow->SetBackground(brush);
myWindow->Clear();
myWindow->Refresh();
}
wxBRUSHSTYLE_SOLID
@ wxBRUSHSTYLE_SOLID
Solid.
Definition: brush.h:15
wxBrush
A brush is a drawing tool for filling in areas.
Definition: brush.h:105
wxColourData
This class holds a variety of information related to colour dialogs.
Definition: colourdata.h:19
wxColourData::SetChooseFull
void SetChooseFull(bool flag)
Under Windows, tells the Windows colour dialog to display the full dialog with custom colour selectio...
wxColourData::GetColour
wxColour & GetColour()
Gets the current colour associated with the colour dialog.
wxColourData::SetCustomColour
void SetCustomColour(int i, const wxColour &colour)
Sets custom colours for the colour dialog.
wxColourDialog
This class represents the colour chooser dialog.
Definition: colordlg.h:55
wxColour
A colour is an object representing a combination of Red, Green, and Blue (RGB) intensity values and a...
Definition: colour.h:69
wxID_OK
@ wxID_OK
Standard button and menu IDs.
Definition: defs.h:664

# wxFontDialog Overview

Classes: wxFontDialog, wxFontData

The wxFontDialog presents a font selector to the user, and returns with font and colour information.

## The MS Windows Font Selector

Under Windows, the native font selector common dialog is used. This presents a dialog box with controls for font name, point size, style, weight, underlining, strikeout and text foreground colour. A sample of the font is shown on a white area of the dialog box. Note that in the translation from full MS Windows fonts to wxWidgets font conventions, strikeout is ignored and a font family (such as Swiss or Modern) is deduced from the actual font name (such as Arial or Courier).

## The Generic Font Selector

Under non-MS Windows platforms, the font selector is simpler. Controls for font family, point size, style, weight, underlining and text foreground colour are provided, and a sample is shown upon a white background. The generic font selector is also available under MS Windows; use the name wxGenericFontDialog.

## Example

In the samples/dialogs directory, there is an example of using the wxFontDialog class. The application uses the returned font and colour for drawing text on a canvas. Here is an excerpt:

wxFontData data;
data.SetInitialFont(canvasFont);
data.SetColour(canvasTextColour);
wxFontDialog dialog(this, &data);
if (dialog.ShowModal() == wxID_OK)
{
wxFontData retData = dialog.GetFontData();
canvasFont = retData.GetChosenFont();
canvasTextColour = retData.GetColour();
myWindow->Refresh();
}
wxFontData
This class holds a variety of information related to font dialogs.
Definition: fontdata.h:19
wxFontData::GetChosenFont
wxFont GetChosenFont() const
Gets the font chosen by the user if the user pressed OK (wxFontDialog::ShowModal() returned wxID_OK).
wxFontData::SetInitialFont
void SetInitialFont(const wxFont &font)
Sets the font that will be initially used by the font dialog.
wxFontData::SetColour
void SetColour(const wxColour &colour)
Sets the colour that will be used for the font foreground colour.
wxFontData::GetColour
const wxColour & GetColour() const
Gets the colour associated with the font dialog.
wxFontDialog
This class represents the font chooser dialog.
Definition: fontdlg.h:19

# wxPrintDialog Overview

Classes: wxPrintDialog, wxPrintData

This class represents the print and print setup common dialogs. You may obtain a wxPrinterDC device context from a successfully dismissed print dialog.

The samples/printing example shows how to use it: see Printing Framework Overview for an excerpt from this example.

# wxFileDialog Overview

Classes: wxFileDialog

Pops up a file selector box. On Windows and GTK 2.4+, this is the common file selector dialog. In X, this is a file selector box with somewhat less functionality. The path and filename are distinct elements of a full file pathname.

If path is "", the current directory will be used. If filename is "", no default filename will be supplied. The wildcard determines what files are displayed in the file selector, and file extension supplies a type extension for the required filename. Flags may be a combination of wxFD_OPEN, wxFD_SAVE, wxFD_OVERWRITE_PROMPT, wxFD_HIDE_READONLY, wxFD_FILE_MUST_EXIST, wxFD_MULTIPLE, wxFD_CHANGE_DIR or 0.

Both the X and Windows versions implement a wildcard filter. Typing a filename containing wildcards (*, ?) in the filename text item, and clicking on Ok, will result in only those files matching the pattern being displayed. In the X version, supplying no default name will result in the wildcard filter being inserted in the filename text item; the filter is ignored if a default name is supplied.

The wildcard may be a specification for multiple types of file with a description for each, such as:

    "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"

# wxDirDialog Overview

Classes: wxDirDialog

This dialog shows a directory selector dialog, allowing the user to select a single directory.

# wxTextEntryDialog Overview

Classes: wxTextEntryDialog

This is a dialog with a text entry field. The value that the user entered is obtained using wxTextEntryDialog::GetValue().

# wxPasswordEntryDialog Overview

Classes: wxPasswordEntryDialog

This is a dialog with a password entry field. The value that the user entered is obtained using wxTextEntryDialog::GetValue().

# wxNumberEntryDialog Overview

Classes: wxNumberEntryDialog

This is a dialog with a numeric entry field. The value that the user entered is obtained using wxNumberEntryDialog::GetValue().

# wxCredentialEntryDialog Overview

Classes: wxCredentialEntryDialog

This is a dialog with user and password entry fields. The values that the user entered are obtained using wxCredentialEntryDialog::GetUser() and wxCredentialEntryDialog::GetPassword().

# wxMessageDialog Overview

Classes: wxMessageDialog

This dialog shows a message, plus buttons that can be chosen from OK, Cancel, Yes, and No. Under Windows, an optional icon can be shown, such as an exclamation mark or question mark.

The return value of wxMessageDialog::ShowModal() indicates which button the user pressed.

# wxSingleChoiceDialog Overview

Classes: wxSingleChoiceDialog

This dialog shows a list of choices, plus OK and (optionally) Cancel. The user can select one of them. The selection can be obtained from the dialog as an index, a string or client data.

# wxMultiChoiceDialog Overview

Classes: wxMultiChoiceDialog

This dialog shows a list of choices, plus OK and (optionally) Cancel. The user can select one or more of them.