C H A P T E R
8
Using Standard Dialogs
This chapter describes the set of standard dialogs that wxWidgets provides for
displaying information or getting data from users with just a few lines of code.
Becoming familiar with the available standard dialogs is going to save you a
lot of coding time, and it will help give your applications a professional feel.
Where possible, wxWidgets uses the native dialogs implemented by each win-
dowing  system, but  some, such  as 
wxTextEntryDialog
, are  implemented  in
wxWidgets itself, and these are referred to as “generic” dialogs. In this chap-
ter, we will show pictures of dialogs on more than one platform where there are
significant visual differences.
We will divide the dialogs into the categories Informative Dialogs, File
and Directory Dialogs, Choice and Selection Dialogs, and Entry Dialogs.
I
NFORMATIVE
D
IALOGS
In this section, we’ll look at dialogs that present information:
wxMessageDialog
,
wxProgressDialog
,
wxBusyInfo,
and 
wxShowTip
.
wxMessageDialog
This dialog shows a message plus buttons that can be chosen from OK, Cancel,
Yes, and No. An optional icon can be shown, such as an exclamation mark or
question mark. The message text can contain newlines (“
\n
”).
The return value of 
wxMessageDialog::ShowModal
indicates which button
the user pressed.
205
Pdf image extractor c# - Select, copy, paste PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
extract images pdf; online pdf image extractor
Pdf image extractor c# - VB.NET PDF Image Extract Library: Select, copy, paste PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
extract photo from pdf; some pdf image extractor
To create this dialog, pass a parent window, message, and optional cap-
tion, style, and position. Then call 
ShowModal
to display the window, and test
the returned value.
The style is a bit-list of the values shown in Table 8-1.
Table 8-1
wxMessageDialog
Styles
wxOK
Shows an OK button.
wxCANCEL
Shows a Cancel button.
wxYES_NO
Shows Yes and No buttons.
wxYES_DEFAULT
Sets 
Yes
as the default. Use with 
wxYES_NO
.
This is the default behavior for 
wxYES_NO
.
wxNO_DEFAULT
Sets 
No
as the default. Use with 
wxYES_NO
.
wxICON_EXCLAMATION
Shows an exclamation mark.
Figure 8-2
wxMessageDialog
under GTK+
206
Using Standard Dialogs Chapter 8
Figure 8-1
wxMessageDialog
under Windows
Figure 8-3
wxMessageDialog
under Mac OS X
Figure 8-1 shows how the dialog looks under Windows, Figure 8-2 shows
it under GTK+, and Figure 8-3 is the same dialog on Mac OS X.
VB.NET TIFF: TIFF Text Extractor SDK; Extract Text Content from
Please get the latest XDoc.Tiff C# Developer Guide here. Standalone VB.NET TIFF text extractor SDK that extracts control SDK into VB.NET image application by
extract pictures pdf; how to extract images from pdf file
VB.NET PowerPoint: Extract & Collect PPT Slide(s) Using VB Sample
demo code using RasterEdge VB.NET PowerPoint extractor library toolkit. provide powerful & profession imaging controls, PDF document, image to pdf files and
extract image from pdf acrobat; how to extract images from pdf files
wxICON_ERROR
Shows an error icon.
wxICON_HAND
Shows an error icon. The same as 
wxICON_ERROR
.
wxICON_QUESTION
Shows a question mark.
wxICON_INFORMATION
Shows an information icon.
wxSTAY_ON_TOP
On Windows, the message box will stay on top of 
all other windows, even those of other applications.
wxMessageDialog Example
Here’s an example of using 
wxMessageDialog
:
#include “wx/msgdlg.h”
wxMessageDialog dialog( NULL, wxT(“Message box caption”),
wxT(“Message box text”),
wxNO_DEFAULT|wxYES_NO|wxCANCEL|wxICON_INFORMATION);
switch ( dialog.ShowModal() )
{
case wxID_YES:
wxLogStatus(wxT(“You pressed \”Yes\””));
break;
case wxID_NO:
wxLogStatus(wxT(“You pressed \”No\””));
break;
case wxID_CANCEL:
wxLogStatus(wxT(“You pressed \”Cancel\””));
break;
default:
wxLogError(wxT(“Unexpected wxMessageDialog return code!”));
}
wxMessageBox
You can also use the convenience function 
wxMessageBox
,which takes a mes-
sage string, caption string, style, and parent window. For example:
if (wxYES == wxMessageBox(wxT(“Message box text”),
wxT(“Message box caption”),
wxNO_DEFAULT|wxYES_NO|wxCANCEL|wxICON_INFORMATION,
parent))
{
return true;
}
Be  aware  that 
wxMessageBox
returns  values  that  are  different  from  those
returned by 
wxMessageDialog::ShowModal
.
wxMessageBox
returns 
wxOK
,
wxCANCEL
,
wxYES
, and 
wxNO
, whereas 
wxMessageDialog::ShowModal
returns 
wxID_OK
,
wxID_CANCEL
,
wxID_YES
,and 
wxID_NO
.
Informative Dialogs
207
VB.NET Word: Extract Word Pages, DOCX Page Extraction SDK
on also owns high compatibility with Visual C# .NET code. feature, this VB.NET Word page extractor add-on page, sort Word page order or insert image into Word
some pdf image extract; extract images from pdf c#
VB.NET TIFF: TIFF to Text (TXT) Converter SDK; Convert TIFF to
NET developers to interpret and decode TIFF image file. But different from TIFF text extractor add-on powerful & profession imaging controls, PDF document, tiff
extract text from pdf image; extract image from pdf online
wxPD_APP_MODAL
Makes the progress dialog modal. If this style is not 
given, it is only “locally”modal—that is, the input to the 
parent window is disabled, but not to the other ones.
wxPD_AUTO_HIDE
Causes the progress dialog to disappear from the screen 
as soon as the maximum value of the progress meter has
been reached.
wxPD_CAN_ABORT
Tells the dialog that it should have a 
Cancel
button that 
the user may press. If this happens, the next call to 
Update
will return 
false
.
wxPD_ELAPSED_TIME
Tells the dialog that it should show the elapsed time since
creating the dialog.
wxPD_ESTIMATED_TIME
Tells the dialog that it should show the estimated time.
wxPD_REMAINING_TIME
Tells the dialog that it should show the remaining time.
wxProgressDialog
wxProgressDialog
shows a short message and a progress bar representing how
long the user has to wait. It can display a Cancel button to abort the task in
progress, and  it  can  also  display  elapsed  time, estimated  total  time, and
remaining time. This dialog is implemented by wxWidgets on all platforms.
Figure 8-4 shows 
wxProgressDialog
under Windows.
208
Using Standard Dialogs Chapter 8
Figure 8-4
wxProgressDialog
under Windows
You can create the dialog object on the stack or dynamically. Pass the fol-
lowing parameters: a caption string, a message string to be displayed above
the progress bar, the maximum value for the progress bar, a parent window,
and a style.
The style is a bit-list of the values listed in Table 8-2.
Table 8-2
wxProgressDialog
Styles
After dialog creation, the program flow continues, but the parent window is
disabled for input. If 
wxPD_APP_MODAL
is specified, then all other windows in the
application are disabled as well. The application should  call 
Update
with  a
C# Word: How to Extract Text from C# Word in .NET Project
you can rest assured because this Word text extractor preserves both to provide powerful & profession imaging controls, PDF document, image to pdf files and
extract images from pdf file; how to extract images from pdf
value  (between  zero  and  the  maximum  specified  in  the  constructor)  and,
optionally, a new message to display in the dialog. If specified, the elapsed,
estimated, and remaining times are all calculated automatically by the dialog.
If 
wxPD_AUTO_HIDE
is specified, the progress dialog will be hidden (but not
destroyed) as soon as the  maximum value has been  passed  to 
Update
.The
application should destroy the dialog. You can call 
Resume
if you need to resume
an aborted progress dialog.
wxProgressDialog Example
Here’s an example of using the progress dialog:
#include “wx/progdlg.h”
void MyFrame::ShowProgress()
{
static const int max = 10;
wxProgressDialog dialog(wxT(“Progress dialog example”),
wxT(“An informative message”),
max,    // range
this,   // parent
wxPD_CAN_ABORT |
wxPD_APP_MODAL |
wxPD_ELAPSED_TIME |
wxPD_ESTIMATED_TIME |
wxPD_REMAINING_TIME);
bool cont = true;
for ( int i = 0; i <= max; i++ )
{
wxSleep(1);
if ( i == max )
cont = dialog.Update(i, wxT(“That’s all, folks!”));
else if ( i == max / 2 )
cont = dialog.Update(i, wxT(“Only a half left (very 
long message)!”));
else
cont = dialog.Update(i);
if ( !cont )
{
if ( wxMessageBox(wxT(“Do you really want to cancel?”),
wxT(“Progress dialog question”),
wxYES_NO | wxICON_QUESTION) == wxYES )
break;
dialog.Resume();
}
}
if ( !cont )
wxLogStatus(wxT(“Progress dialog aborted!”));
else
wxLogStatus(wxT(“Countdown from %d finished”), max);
}
Informative Dialogs
209
wxBusyInfo
wxBusyInfo
isn’t actually a dialog—it’s derived from 
wxObject
—but it behaves in
a similar way. It shows a window displaying a message for as long as the object
exists, and it is useful for asking the user to wait while the application is work-
ing on something. On Windows, it looks like the window in Figure 8-5.
Create a 
wxBusyInfo
object on the stack or dynamically,passing a message
and a window parent.
210
Using Standard Dialogs Chapter 8
Figure 8-5
wxBusyInfo
dialog under Windows
wxBusyInfo Example
Here’s an example of using 
wxBusyInfo
,first using 
wxWindowDisabler
to disable
all windows currently open in the application.
#include “wx/busyinfo.h”
wxWindowDisabler disableAll;
wxBusyInfo info(wxT(“Counting, please wait...”), parent);
for (int i = 0; i < 1000; i++)
{
DoCalculation();
}
wxShowTip
Many  applications show a tip on startup to  give you extra  insights into
using the application. Tips can be a good way to learn an application in
small, easily digested doses, especially for users who find it tedious to read
documentation.
Counting, please wait...
The startup tip dialog under Windows is shown in Figure 8-6.
Informative Dialogs
211
Figure 8-6 Tip dialog under Windows
Unlike most of the standard dialogs, startup tips are shown by calling a
function:
wxShowTip
.Pass a parent window, a pointer to a 
wxTipProvider
object,
and optionally a boolean value specifying whether to show the Show Tips at
Startup check box.The return value is the value of this check box.
You must derive a new class from 
wxTipProvider
and override the 
GetTip
function to return a 
wxString
containing the tip. Fortunately, wxWidgets pro-
vides an implementation already:
wxCreateFileTipProvider
,which takes the
name of a file of tips (one per line) and an index into the tips.
The application is responsible for deleting the 
wxTipProvider
object when
it is no longer needed.
wxShowTip Example
Here’s a function that shows a startup tip using the standard tip provider:
#include “wx/tipdlg.h”
void MyFrame::ShowTip()
{
static size_t s_index = (size_t)-1;
if ( s_index == (size_t)-1 )
{
// randomize...
srand(time(NULL));
// ...and pick a new tip
s_index = rand() % 5;
}
// pass a tips file and tip index
wxTipProvider *tipProvider =
wxCreateFileTipProvider(wxT(“tips.txt”), s_index);
m_showAtStartup = wxShowTip(this, tipProvider, true);
delete tipProvider;
}
F
ILE AND
D
IRECTORY
D
IALOGS
There are two dialogs you can use to get file and directory information from
the user:
wxFileDialog
and 
wxDirDialog
.
wxFileDialog
wxFileDialog
can handle the selection of one file or several files, and it has
variants for opening and saving files.
Figure 8-7 shows the file dialog under Windows.
212
Using Standard Dialogs Chapter 8
Figure 8-7
wxFileDialog
under Windows
File and Directory Dialogs
213
Figure 8-8 and Figure 8-9 show the file dialog under Linux using GTK+
versions 1 and 2, respectively.
Figure 8-8 Generic 
wxFileDialog
under GTK+
Figure 8-9 Native 
wxFileDialog
under GTK+2.4 and above
214
Using Standard Dialogs Chapter 8
The file dialog appearance under Mac OS X is shown in Figure 8-10.
To create a 
wxFileDialog
,pass a parent window, a message to display in
the dialog caption, a default directory, a default file name, a wildcard, the dia-
log style, and a position (ignored on some platforms). Call 
ShowModal
and test
for a 
wxID_OK
return value, which is returned if the user confirms a selection.
Directory and file name are distinct elements of a full path name. If the
directory is empty,the current directory will be used. If the file name is empty,
no default file name will be supplied.
The wildcard determines what files are displayed in the file selector.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”
Typing a file name containing wildcards (“*”,“?”) in the file name text item and
clicking  on  OK will  result  in  only  those  files  matching the  pattern being 
displayed.
wxFileDialog Styles
The file dialog has the styles shown in Table 8-3.
Figure 8-10
wxFileDialog
under Mac OS X
Documents you may be interested
Documents you may be interested