fe604ccddc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@95 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
213 lines
8.7 KiB
TeX
213 lines
8.7 KiB
TeX
\section{Common dialogs overview}\label{commondialogsoverview}
|
|
|
|
Classes: \helpref{wxColourDialog}{wxcolourdialog}, \helpref{wxFontDialog}{wxfontdialog},
|
|
\rtfsp\helpref{wxPrintDialog}{wxprintdialog}, \helpref{wxFileDialog}{wxfiledialog},\rtfsp
|
|
\helpref{wxDirDialog}{wxdirdialog}, \helpref{wxTextEntryDialog}{wxtextentrydialog},\rtfsp
|
|
\helpref{wxMessageDialog}{wxmessagedialog}, \helpref{wxSingleChoiceDialog}{wxsinglechoicedialog},\rtfsp
|
|
\helpref{wxMultipleChoiceDialog}{wxmultiplechoicedialog}
|
|
|
|
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 that 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.
|
|
|
|
\subsection{wxColourDialog overview}\label{wxcolourdialogoverview}
|
|
|
|
Classes: \helpref{wxColourDialog}{wxcolourdialog}, \helpref{wxColourData}{wxcolourdata}
|
|
|
|
The wxColourDialog presents a colour selector to the user, and returns
|
|
with colour information.
|
|
|
|
{\bf 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.
|
|
|
|
{\bf 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 sliders for the user to select a colour from red,
|
|
green and blue 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 colour sliders
|
|
are not optional in the generic colour selector. The generic colour
|
|
selector is also available under MS Windows; use the name
|
|
wxGenericColourDialog.
|
|
|
|
{\bf 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.
|
|
|
|
\begin{verbatim}
|
|
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, wxSOLID);
|
|
myWindow->SetBackground(brush);
|
|
myWindow->Clear();
|
|
myWindow->Refresh();
|
|
}
|
|
\end{verbatim}
|
|
|
|
|
|
\subsection{wxFontDialog overview}\label{wxfontdialogoverview}
|
|
|
|
Classes: \helpref{wxFontDialog}{wxfontdialog}, \helpref{wxFontData}{wxfontdata}
|
|
|
|
The wxFontDialog presents a font selector to the user, and returns
|
|
with font and colour information.
|
|
|
|
{\bf 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 wxWindows 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 full range of Windows fonts cannot be used in wxWindows
|
|
at present.
|
|
|
|
{\bf 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.
|
|
|
|
In both cases, the application is responsible for deleting the
|
|
new font returned from calling wxFontDialog::Show (if any).
|
|
This returned font is guaranteed to be a new object and not
|
|
one currently in use in the application.
|
|
|
|
{\bf 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:
|
|
|
|
\begin{verbatim}
|
|
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();
|
|
}
|
|
\end{verbatim}
|
|
|
|
\subsection{wxPrintDialog overview}\label{wxprintdialogoverview}
|
|
|
|
Classes: \helpref{wxPrintDialog}{wxprintdialog}, \helpref{wxPrintData}{wxprintdata}
|
|
|
|
This class represents the print and print setup common dialogs.
|
|
You may obtain a \helpref{wxPrinterDC}{wxprinterdc} device context from
|
|
a successfully dismissed print dialog.
|
|
|
|
The samples/printing example shows how to use it: see \helpref{Printing overview}{printingoverview} for
|
|
an excerpt from this example.
|
|
|
|
\subsection{wxFileDialog overview}\label{wxfiledialogoverview}
|
|
|
|
Classes: \helpref{wxFileDialog}{wxfiledialog}
|
|
|
|
Pops up a file selector box. In Windows, 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 wxOPEN,
|
|
wxSAVE, wxOVERWRITE\_PROMPT, wxHIDE\_READONLY, or 0. They are only significant
|
|
at present in Windows.
|
|
|
|
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.
|
|
|
|
Under Windows (only), the wildcard may be a specification for multiple
|
|
types of file with a description for each, such as:
|
|
|
|
\begin{verbatim}
|
|
"BMP files (*.bmp) | *.bmp | GIF files (*.gif) | *.gif"
|
|
\end{verbatim}
|
|
|
|
\subsection{wxDirDialog overview}\label{wxdirdialogoverview}
|
|
|
|
Classes: \helpref{wxDirDialog}{wxdirdialog}
|
|
|
|
This dialog shows a directory selector dialog, allowing the user to select a single
|
|
directory.
|
|
|
|
\subsection{wxTextEntryDialog overview}\label{wxtextentrydialogoverview}
|
|
|
|
Classes: \helpref{wxTextEntryDialog}{wxtextentrydialog}
|
|
|
|
This is a dialog with a text entry field. The value that the user
|
|
entered is obtained using \helpref{wxTextEntryDialog::GetValue}{wxtextentrydialoggetvalue}.
|
|
|
|
\subsection{wxMessageDialog overview}\label{wxmessagedialogoverview}
|
|
|
|
Classes: \helpref{wxMessageDialog}{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 \helpref{wxMessageDialog::ShowModal}{wxmessagedialogshowmodal} indicates
|
|
which button the user pressed.
|
|
|
|
\subsection{wxSingleChoiceDialog overview}\label{wxsinglechoicedialogoverview}
|
|
|
|
Classes: \helpref{wxSingleChoiceDialog}{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.
|
|
|
|
\subsection{wxMultipleChoiceDialog overview}\label{wxmultiplechoicedialogoverview}
|
|
|
|
Classes: \helpref{wxMultipleChoiceDialog}{wxmultiplechoicedialog}
|
|
|
|
This dialog shows a list of choices, plus OK and (optionally) Cancel. The user can
|
|
select one or more of them. TODO.
|
|
|