// Name: filectrl.h
// Purpose: interface of wxFileCtrl
// Author: wxWidgets team
-// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
+enum
+{
+ wxFC_OPEN = 0x0001,
+ wxFC_SAVE = 0x0002,
+ wxFC_MULTIPLE = 0x0004,
+ wxFC_NOSHOWHIDDEN = 0x0008
+};
+
+#define wxFC_DEFAULT_STYLE wxFC_OPEN
+
/**
@class wxFileCtrl
This control allows the user to select a file.
- Two implemetations exist, one for Gtk and another generic one for anything
- other than Gtk. It is only available if @c wxUSE_FILECTRL is set to 1.
+ Two implementations of this class exist, one for Gtk and another generic
+ one for all the other ports.
+
+ This class is only available if @c wxUSE_FILECTRL is set to 1.
@beginStyleTable
@style{wxFC_DEFAULT_STYLE}
Hides the "Show Hidden Files" checkbox (Generic only)
@endStyleTable
-
- @beginEventTable{wxFileCtrlEvent}
+ @beginEventEmissionTable{wxFileCtrlEvent}
@event{EVT_FILECTRL_FILEACTIVATED(id, func)}
The user activated a file(by double-clicking or pressing Enter)
@event{EVT_FILECTRL_SELECTIONCHANGED(id, func)}
The user changed the current selection(by selecting or deselecting a file)
@event{EVT_FILECTRL_FOLDERCHANGED(id, func)}
The current folder of the file control has been changed
+ @event{EVT_FILECTRL_FILTERCHANGED(id, func)}
+ The current file filter of the file control has been changed.
+ @since 2.9.1.
+
@endEventTable
- @nativeimpl{gtk}
+ @library{wxcore}
+ @category{ctrl}
+ @appearance{filectrl}
- @library{wxbase}
- @category{miscwnd}
+ @nativeimpl{wxgtk}
@see wxGenericDirCtrl
*/
-class wxFileCtrl : public wxWindow
+class wxFileCtrl : public wxControl
{
public:
wxFileCtrl();
@param id
The identifier for the control.
@param defaultDirectory
- The initial directory shown in the control. Must be
- a valid path to a directory or the empty string.
+ The initial directory shown in the control.
+ Must be a valid path to a directory or the empty string.
In case it is the empty string, the current working directory is used.
@param defaultFilename
The default filename, or the empty string.
- @param wildcard
+ @param wildCard
A wildcard specifying which files can be selected,
such as "*.*" or "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif".
@param style
wxFileCtrl(wxWindow* parent, wxWindowID id,
const wxString& defaultDirectory = wxEmptyString,
const wxString& defaultFilename = wxEmptyString,
- const wxPoint& wildCard = wxFileSelectorDefaultWildcardStr,
+ const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
long style = wxFC_DEFAULT_STYLE,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
- const wxString& name = "filectrl");
+ const wxString& name = wxFileCtrlNameStr);
/**
Create function for two-step construction. See wxFileCtrl() for details.
bool Create(wxWindow* parent, wxWindowID id,
const wxString& defaultDirectory = wxEmptyString,
const wxString& defaultFilename = wxEmptyString,
- const wxPoint& wildCard = wxFileSelectorDefaultWildcardStr,
- long style = wxFC_DEFAULT_STYLE,
- const wxPoint& pos = wxDefaultPosition,
+ const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
+ long style = wxFC_DEFAULT_STYLE, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
- const wxString& name = "filectrl");
+ const wxString& name = wxFileCtrlNameStr);
/**
- Returns the current directory of the file control (i.e. the directory shown by it).
+ Returns the current directory of the file control (i.e.\ the directory shown by it).
*/
- wxString GetDirectory() const;
+ virtual wxString GetDirectory() const;
/**
Returns the currently selected filename.
For the controls having the @c wxFC_MULTIPLE style, use GetFilenames() instead.
*/
- wxString GetFilename() const;
+ virtual wxString GetFilename() const;
/**
Fills the array @a filenames with the filenames only of selected items.
@remarks filenames is emptied first.
*/
- void GetFilenames(wxArrayString& filenames) const;
+ virtual void GetFilenames(wxArrayString& filenames) const;
/**
Returns the zero-based index of the currently selected filter.
*/
- int GetFilterIndex() const;
+ virtual int GetFilterIndex() const;
/**
Returns the full path (directory and filename) of the currently selected file.
For the controls having the @c wxFC_MULTIPLE style, use GetPaths() instead.
*/
- wxString GetPath() const;
+ virtual wxString GetPath() const;
/**
Fills the array @a paths with the full paths of the files chosen.
@remarks paths is emptied first.
*/
- void GetPaths(wxArrayString& paths) const;
+ virtual void GetPaths(wxArrayString& paths) const;
/**
Returns the current wildcard.
*/
- wxString GetWildcard() const;
+ virtual wxString GetWildcard() const;
/**
Sets(changes) the current directory displayed in the control.
@return Returns @true on success, @false otherwise.
*/
- bool SetDirectory(const wxString& directory);
+ virtual bool SetDirectory(const wxString& directory);
/**
Selects a certain file.
@return Returns @true on success, @false otherwise
*/
- bool SetFilename(const wxString& filename);
+ virtual bool SetFilename(const wxString& filename);
+
+ /**
+ Changes to a certain directory and selects a certain file.
+
+ In case the filename specified isn't found/couldn't be shown with
+ currently selected filter, false is returned.
+
+ @return Returns @true on success, @false otherwise
+ */
+ virtual bool SetPath(const wxString& path);
/**
Sets the current filter index, starting from zero.
*/
- void SetFilterIndex(int filterIndex);
+ virtual void SetFilterIndex(int filterIndex);
/**
Sets the wildcard, which can contain multiple file types, for example:
"BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"
*/
- void SetWildcard(const wxString& wildCard);
+ virtual void SetWildcard(const wxString& wildCard);
/**
Sets whether hidden files and folders are shown or not.
*/
- void ShowHidden(const bool show);
+ virtual void ShowHidden(bool show);
};
+wxEventType wxEVT_FILECTRL_SELECTIONCHANGED;
+wxEventType wxEVT_FILECTRL_FILEACTIVATED;
+wxEventType wxEVT_FILECTRL_FOLDERCHANGED;
+wxEventType wxEVT_FILECTRL_FILTERCHANGED;
+
/**
@class wxFileCtrlEvent
The user changed the current selection(by selecting or deselecting a file)
@event{EVT_FILECTRL_FOLDERCHANGED(id, func)}
The current folder of the file control has been changed
+ @event{EVT_FILECTRL_FILTERCHANGED(id, func)}
+ The current file filter of the file control has been changed
@endEventTable
- @library{wxbase}
+ @library{wxcore}
@category{events}
*/
class wxFileCtrlEvent : public wxCommandEvent
/**
Constructor.
*/
- wxFileCtrlEvent(wxEventType type, wxObject evtObject, int id);
+ wxFileCtrlEvent(wxEventType type, wxObject *evtObject, int id);
/**
Returns the current directory.
*/
wxArrayString GetFiles() const;
+ /**
+ Returns the current file filter index.
+
+ For a @b EVT_FILECTRL_FILTERCHANGED event, this method returns the new
+ file filter index.
+
+ @since 2.9.1
+ */
+ int GetFilterIndex() const;
+
/**
Sets the files changed by this event.
*/
- void SetFiles(const wxArrayString files);
+ void SetFiles(const wxArrayString& files);
/**
Sets the directory of this event.
*/
void SetDirectory( const wxString &directory );
+
+ /**
+ Sets the filter index changed by this event.
+
+ @since 2.9.1
+ */
+ void SetFilterIndex(int index);
};