| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- ///////////////////////////////////////////////////////////////////////////////
- // Name: wx/gtk/filectrl.h
- // Purpose: wxGtkFileCtrl Header
- // Author: Diaa M. Sami
- // Modified by:
- // Created: Aug-10-2007
- // Copyright: (c) Diaa M. Sami
- // Licence: wxWindows licence
- ///////////////////////////////////////////////////////////////////////////////
- #ifndef _WX_GTK_FILECTRL_H_
- #define _WX_GTK_FILECTRL_H_
- #include "wx/control.h"
- #include "wx/filectrl.h"
- extern WXDLLIMPEXP_DATA_CORE(const char) wxFileSelectorDefaultWildcardStr[];
- typedef struct _GtkFileChooser GtkFileChooser;
- // [GTK] current problems:
- // All methods(e.g. SetFilename(), SetPath(), etc) which change the state of
- // the control result in events fired, such events should be suppressed.
- // ------
- // Sometimes a selection event(with 0 files) is fired before
- // wxEVT_FILECTRL_FOLDERCHANGED, unfortunately this can hardly be detected!
- // A wx wrapper for any Gtk object implementing the interface GtkFileChooser
- class WXDLLIMPEXP_CORE wxGtkFileChooser
- {
- public:
- wxGtkFileChooser() { m_ignoreNextFilterEvent = false; }
- void SetWidget(GtkFileChooser *w);
- wxString GetPath() const;
- void GetPaths( wxArrayString& paths ) const;
- wxString GetDirectory() const;
- wxString GetFilename() const;
- void GetFilenames( wxArrayString& files ) const;
- int GetFilterIndex() const;
- bool SetPath( const wxString& path );
- bool SetDirectory( const wxString& dir );
- void SetWildcard( const wxString& wildCard );
- void SetFilterIndex( int filterIndex );
- bool HasFilterChoice() const;
- bool ShouldIgnoreNextFilterEvent() const { return m_ignoreNextFilterEvent; }
- wxString GetCurrentWildCard() const
- { return m_wildcards[GetFilterIndex()]; }
- private:
- GtkFileChooser *m_widget;
- // First wildcard in filter, to be used when the user
- // saves a file without giving an extension.
- wxArrayString m_wildcards;
- // If true, ignore the next event because it was generated by us and not
- // the user.
- bool m_ignoreNextFilterEvent;
- };
- #if wxUSE_FILECTRL
- class WXDLLIMPEXP_CORE wxGtkFileCtrl: public wxControl,
- public wxFileCtrlBase
- {
- public:
- wxGtkFileCtrl () { Init(); }
- wxGtkFileCtrl ( wxWindow *parent,
- wxWindowID id,
- const wxString& defaultDirectory = wxEmptyString,
- const wxString& defaultFilename = wxEmptyString,
- const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
- long style = wxFC_DEFAULT_STYLE,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- const wxString& name = wxFileCtrlNameStr )
- {
- Init();
- Create( parent, id, defaultDirectory, defaultFilename, wildCard, style, pos, size, name );
- }
- virtual ~wxGtkFileCtrl();
- bool Create( wxWindow *parent,
- wxWindowID id,
- const wxString& defaultDirectory = wxEmptyString,
- const wxString& defaultFileName = wxEmptyString,
- const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
- long style = wxFC_DEFAULT_STYLE,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- const wxString& name = wxFileCtrlNameStr );
- virtual void SetWildcard( const wxString& wildCard );
- virtual void SetFilterIndex( int filterIndex );
- virtual bool SetDirectory( const wxString& dir );
- virtual bool SetFilename( const wxString& name );
- virtual bool SetPath( const wxString& path );
- virtual wxString GetFilename() const;
- virtual wxString GetDirectory() const;
- virtual wxString GetWildcard() const { return this->m_wildCard; }
- virtual wxString GetPath() const;
- virtual void GetPaths( wxArrayString& paths ) const;
- virtual void GetFilenames( wxArrayString& files ) const;
- virtual int GetFilterIndex() const { return m_fc.GetFilterIndex(); }
- virtual bool HasMultipleFileSelection() const { return HasFlag( wxFC_MULTIPLE ); }
- virtual void ShowHidden(bool show);
- virtual bool HasFilterChoice() const
- { return m_fc.HasFilterChoice(); }
- // Implementation only from now on.
- bool GTKShouldIgnoreNextFilterEvent() const
- { return m_fc.ShouldIgnoreNextFilterEvent(); }
- bool m_checkNextSelEvent;
- bool m_ignoreNextFolderChangeEvent;
- protected:
- GtkFileChooser *m_fcWidget;
- wxGtkFileChooser m_fc;
- wxString m_wildCard;
- private:
- void Init();
- DECLARE_DYNAMIC_CLASS( wxGtkFileCtrl )
- };
- #endif // wxUSE_FILECTRL
- #endif // _WX_GTK_FILECTRL_H_
|