1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/gtk/filectrl.h
3 // Purpose: wxGtkFileCtrl Header
4 // Author: Diaa M. Sami
6 // Created: Aug-10-2007
8 // Copyright: (c) Diaa M. Sami
9 // Licence: wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
13 #ifndef _WX_GTK_FILECTRL_H_
14 #define _WX_GTK_FILECTRL_H_
16 #include "wx/control.h"
17 #include "wx/filectrl.h"
19 extern WXDLLIMPEXP_DATA_CORE(const char) wxFileSelectorDefaultWildcardStr
[];
21 typedef struct _GtkFileChooser GtkFileChooser
;
23 // [GTK] current problems:
24 // All methods(e.g. SetFilename(), SetPath(), etc) which change the state of
25 // the control result in events fired, such events should be suppressed.
27 // Sometimes a selection event(with 0 files) is fired before
28 // wxEVT_FILECTRL_FOLDERCHANGED, unfortunately this can hardly be detected!
30 // A wx wrapper for any Gtk object implementing the interface GtkFileChooser
32 class WXDLLIMPEXP_CORE wxGtkFileChooser
37 void SetWidget(GtkFileChooser
*w
);
39 wxString
GetPath() const;
40 void GetPaths( wxArrayString
& paths
) const;
41 wxString
GetDirectory() const;
42 wxString
GetFilename() const;
43 void GetFilenames( wxArrayString
& files
) const;
44 int GetFilterIndex() const;
46 bool SetPath( const wxString
& path
);
47 bool SetDirectory( const wxString
& dir
);
48 void SetWildcard( const wxString
& wildCard
);
49 void SetFilterIndex( int filterIndex
);
51 wxString
GetCurrentWildCard() const
52 { return m_wildcards
[GetFilterIndex()]; }
55 GtkFileChooser
*m_widget
;
56 // First wildcard in filter, to be used when the user
57 // saves a file without giving an extension.
58 wxArrayString m_wildcards
;
63 class WXDLLIMPEXP_CORE wxGtkFileCtrl
: public wxControl
,
67 wxGtkFileCtrl () { Init(); }
69 wxGtkFileCtrl ( wxWindow
*parent
,
71 const wxString
& defaultDirectory
= wxEmptyString
,
72 const wxString
& defaultFilename
= wxEmptyString
,
73 const wxString
& wildCard
= wxFileSelectorDefaultWildcardStr
,
74 long style
= wxFC_DEFAULT_STYLE
,
75 const wxPoint
& pos
= wxDefaultPosition
,
76 const wxSize
& size
= wxDefaultSize
,
77 const wxString
& name
= wxFileCtrlNameStr
)
80 Create( parent
, id
, defaultDirectory
, defaultFilename
, wildCard
, style
, pos
, size
, name
);
83 virtual ~wxGtkFileCtrl() {};
86 bool Create( wxWindow
*parent
,
88 const wxString
& defaultDirectory
= wxEmptyString
,
89 const wxString
& defaultFileName
= wxEmptyString
,
90 const wxString
& wildCard
= wxFileSelectorDefaultWildcardStr
,
91 long style
= wxFC_DEFAULT_STYLE
,
92 const wxPoint
& pos
= wxDefaultPosition
,
93 const wxSize
& size
= wxDefaultSize
,
94 const wxString
& name
= wxFileCtrlNameStr
);
96 virtual void SetWildcard( const wxString
& wildCard
);
97 virtual void SetFilterIndex( int filterIndex
);
98 virtual bool SetDirectory( const wxString
& dir
);
99 virtual bool SetFilename( const wxString
& name
);
100 virtual bool SetPath( const wxString
& path
);
102 virtual wxString
GetFilename() const;
103 virtual wxString
GetDirectory() const;
104 virtual wxString
GetWildcard() const { return this->m_wildCard
; }
105 virtual wxString
GetPath() const;
106 virtual void GetPaths( wxArrayString
& paths
) const;
107 virtual void GetFilenames( wxArrayString
& files
) const;
108 virtual int GetFilterIndex() const { return m_fc
.GetFilterIndex(); }
110 virtual bool HasMultipleFileSelection() const { return HasFlag( wxFC_MULTIPLE
); }
111 virtual void ShowHidden(bool show
);
113 bool m_checkNextSelEvent
;
114 bool m_ignoreNextFolderChangeEvent
;
117 GtkFileChooser
*m_fcWidget
;
118 wxGtkFileChooser m_fc
;
121 DECLARE_DYNAMIC_CLASS( wxGtkFileCtrl
)
124 #endif // wxUSE_FILECTRL
126 #endif // _WX_GTK_FILECTRL_H_