git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			145 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // 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 ) wxOVERRIDE;
 | |
|     virtual void SetFilterIndex( int filterIndex ) wxOVERRIDE;
 | |
|     virtual bool SetDirectory( const wxString& dir ) wxOVERRIDE;
 | |
|     virtual bool SetFilename( const wxString& name ) wxOVERRIDE;
 | |
|     virtual bool SetPath( const wxString& path ) wxOVERRIDE;
 | |
| 
 | |
|     virtual wxString GetFilename() const wxOVERRIDE;
 | |
|     virtual wxString GetDirectory() const wxOVERRIDE;
 | |
|     virtual wxString GetWildcard() const wxOVERRIDE { return this->m_wildCard; }
 | |
|     virtual wxString GetPath() const wxOVERRIDE;
 | |
|     virtual void GetPaths( wxArrayString& paths ) const wxOVERRIDE;
 | |
|     virtual void GetFilenames( wxArrayString& files ) const wxOVERRIDE;
 | |
|     virtual int GetFilterIndex() const wxOVERRIDE { return m_fc.GetFilterIndex(); }
 | |
| 
 | |
|     virtual bool HasMultipleFileSelection() const wxOVERRIDE { return HasFlag( wxFC_MULTIPLE ); }
 | |
|     virtual void ShowHidden(bool show) wxOVERRIDE;
 | |
| 
 | |
|     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_
 | |
| 
 |