2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: filedlg.h
|
2008-03-10 11:24:38 -04:00
|
|
|
// Purpose: interface of wxFileDialog
|
2008-03-08 08:52:38 -05:00
|
|
|
// Author: wxWidgets team
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Licence: wxWindows license
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/**
|
|
|
|
@class wxFileDialog
|
|
|
|
@wxheader{filedlg.h}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
This class represents the file chooser dialog.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@beginStyleTable
|
|
|
|
@style{wxFD_DEFAULT_STYLE}:
|
|
|
|
Equivalent to wxFD_OPEN.
|
|
|
|
@style{wxFD_OPEN}:
|
|
|
|
This is an open dialog; usually this means that the default
|
|
|
|
button's label of the dialog is "Open". Cannot be combined with
|
|
|
|
wxFD_SAVE.
|
|
|
|
@style{wxFD_SAVE}:
|
|
|
|
This is a save dialog; usually this means that the default button's
|
|
|
|
label of the dialog is "Save". Cannot be combined with wxFD_OPEN.
|
|
|
|
@style{wxFD_OVERWRITE_PROMPT}:
|
|
|
|
For save dialog only: prompt for a confirmation if a file will be
|
|
|
|
overwritten.
|
|
|
|
@style{wxFD_FILE_MUST_EXIST}:
|
|
|
|
For open dialog only: the user may only select files that actually
|
|
|
|
exist.
|
|
|
|
@style{wxFD_MULTIPLE}:
|
|
|
|
For open dialog only: allows selecting multiple files.
|
|
|
|
@style{wxFD_CHANGE_DIR}:
|
|
|
|
Change the current working directory to the directory where the
|
|
|
|
file(s) chosen by the user are.
|
|
|
|
@style{wxFD_PREVIEW}:
|
|
|
|
Show the preview of the selected files (currently only supported by
|
|
|
|
wxGTK using GTK+ 2.4 or later).
|
|
|
|
@endStyleTable
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@library{wxcore}
|
|
|
|
@category{cmndlg}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-10 11:24:38 -04:00
|
|
|
@see @ref overview_wxfiledialogoverview "wxFileDialog overview",
|
|
|
|
wxFileSelector()
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
class wxFileDialog : public wxDialog
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
Constructor. Use ShowModal() to show the dialog.
|
|
|
|
|
2008-03-08 09:43:31 -05:00
|
|
|
@param parent
|
2008-03-09 08:33:59 -04:00
|
|
|
Parent window.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param message
|
2008-03-09 08:33:59 -04:00
|
|
|
Message to show on the dialog.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param defaultDir
|
2008-03-09 08:33:59 -04:00
|
|
|
The default directory, or the empty string.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param defaultFile
|
2008-03-09 08:33:59 -04:00
|
|
|
The default filename, or the empty string.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param wildcard
|
2008-03-09 08:33:59 -04:00
|
|
|
A wildcard, such as "*.*" or "BMP files (*.bmp)|*.bmp|GIF files
|
|
|
|
(*.gif)|*.gif".
|
|
|
|
Note that the native Motif dialog has some limitations with respect to
|
|
|
|
wildcards; see the Remarks section above.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param style
|
2008-03-09 08:33:59 -04:00
|
|
|
A dialog style. See wxFD_* styles for more info.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param pos
|
2008-03-09 08:33:59 -04:00
|
|
|
Dialog position. Not implemented.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param size
|
2008-03-09 08:33:59 -04:00
|
|
|
Dialog size. Not implemented.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param name
|
2008-03-09 08:33:59 -04:00
|
|
|
Dialog name. Not implemented.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
wxFileDialog(wxWindow* parent,
|
|
|
|
const wxString& message = "Choose a file",
|
|
|
|
const wxString& defaultDir = "",
|
|
|
|
const wxString& defaultFile = "",
|
|
|
|
const wxString& wildcard = ".",
|
|
|
|
long style = wxFD_DEFAULT_STYLE,
|
|
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
|
|
const wxSize& sz = wxDefaultSize,
|
|
|
|
const wxString& name = "filedlg");
|
|
|
|
|
|
|
|
/**
|
|
|
|
Destructor.
|
|
|
|
*/
|
|
|
|
~wxFileDialog();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the default directory.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetDirectory() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-03-08 09:43:31 -05:00
|
|
|
If functions
|
2008-03-08 08:52:38 -05:00
|
|
|
SetExtraControlCreator()
|
|
|
|
and ShowModal() were called,
|
|
|
|
returns the extra window. Otherwise returns @NULL.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxWindow* GetExtraControl() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the default filename.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetFilename() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-03-09 08:33:59 -04:00
|
|
|
Fills the array @a filenames with the names of the files chosen. This
|
2008-03-08 08:52:38 -05:00
|
|
|
function should only be used with the dialogs which have @c wxFD_MULTIPLE style,
|
|
|
|
use GetFilename() for the others.
|
|
|
|
Note that under Windows, if the user selects shortcuts, the filenames
|
|
|
|
include paths, since the application cannot determine the full path
|
|
|
|
of each referenced file by appending the directory containing the shortcuts
|
|
|
|
to the filename.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
void GetFilenames(wxArrayString& filenames) const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the index into the list of filters supplied, optionally, in the
|
|
|
|
wildcard parameter.
|
|
|
|
Before the dialog is shown, this is the index which will be used when the
|
|
|
|
dialog is first displayed.
|
|
|
|
After the dialog is shown, this is the index selected by the user.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
int GetFilterIndex() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the message that will be displayed on the dialog.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetMessage() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the full path (directory and filename) of the selected file.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetPath() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-03-09 08:33:59 -04:00
|
|
|
Fills the array @a paths with the full paths of the files chosen. This
|
2008-03-08 08:52:38 -05:00
|
|
|
function should only be used with the dialogs which have @c wxFD_MULTIPLE style,
|
|
|
|
use GetPath() for the others.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
void GetPaths(wxArrayString& paths) const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the file dialog wildcard.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetWildcard() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the default directory.
|
|
|
|
*/
|
|
|
|
void SetDirectory(const wxString& directory);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Customize file dialog by adding extra window, which is typically placed
|
|
|
|
below the list of files and above the buttons.
|
|
|
|
SetExtraControlCreator can be called only once, before calling
|
|
|
|
ShowModal().
|
|
|
|
The @c creator function should take pointer to parent window (file dialog)
|
|
|
|
and should return a window allocated with operator new.
|
|
|
|
Supported platforms: wxGTK, wxUniv.
|
|
|
|
*/
|
|
|
|
bool SetExtraControlCreator(t_extraControlCreator creator);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the default filename.
|
|
|
|
*/
|
|
|
|
void SetFilename(const wxString& setfilename);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the default filter index, starting from zero.
|
|
|
|
*/
|
|
|
|
void SetFilterIndex(int filterIndex);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the message that will be displayed on the dialog.
|
|
|
|
*/
|
|
|
|
void SetMessage(const wxString& message);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the path (the combined directory and filename that will be returned when
|
|
|
|
the dialog is dismissed).
|
|
|
|
*/
|
|
|
|
void SetPath(const wxString& path);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the wildcard, which can contain multiple file types, for example:
|
|
|
|
"BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"
|
|
|
|
Note that the native Motif dialog has some limitations with respect to
|
|
|
|
wildcards; see the Remarks section above.
|
|
|
|
*/
|
|
|
|
void SetWildcard(const wxString& wildCard);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Shows the dialog, returning wxID_OK if the user pressed OK, and wxID_CANCEL
|
|
|
|
otherwise.
|
|
|
|
*/
|
|
|
|
int ShowModal();
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2008-03-10 11:24:38 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
// ============================================================================
|
|
|
|
// Global functions/macros
|
|
|
|
// ============================================================================
|
|
|
|
|
|
|
|
/**
|
|
|
|
Pops up a file selector box. In Windows, this is the common file selector
|
|
|
|
dialog. In X, this is a file selector box with the same functionality.
|
|
|
|
The path and filename are distinct elements of a full file pathname.
|
|
|
|
If path is empty, the current directory will be used. If filename is empty,
|
|
|
|
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 or wxFD_FILE_MUST_EXIST. Note that
|
|
|
|
wxFD_MULTIPLE
|
|
|
|
can only be used with wxFileDialog and not here as this
|
|
|
|
function only returns a single file name.
|
|
|
|
Both the Unix 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.
|
|
|
|
The wildcard may be a specification for multiple types of file
|
|
|
|
with a description for each, such as:
|
2008-03-09 08:33:59 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@code
|
|
|
|
"BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"
|
|
|
|
@endcode
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
The application must check for an empty return value (the user pressed
|
|
|
|
Cancel). For example:
|
2008-03-09 08:33:59 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@code
|
|
|
|
wxString filename = wxFileSelector("Choose a file to open");
|
|
|
|
if ( !filename.empty() )
|
|
|
|
{
|
|
|
|
// work with the file
|
|
|
|
...
|
|
|
|
}
|
|
|
|
//else: cancelled by user
|
|
|
|
@endcode
|
|
|
|
*/
|
|
|
|
wxString wxFileSelector(const wxString& message,
|
|
|
|
const wxString& default_path = "",
|
|
|
|
const wxString& default_filename = "",
|
|
|
|
const wxString& default_extension = "",
|
|
|
|
const wxString& wildcard = ".",
|
|
|
|
int flags = 0,
|
2008-03-09 08:33:59 -04:00
|
|
|
wxWindow* parent = NULL,
|
2008-03-08 08:52:38 -05:00
|
|
|
int x = -1,
|
|
|
|
int y = -1);
|
|
|
|
|