// Author: Diaa M. Sami
// Modified by:
// Created: Aug-10-2007
-// RCS-ID: $Id$
// Copyright: (c) Diaa M. Sami
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
-#ifndef FILECTRL_H
-#define FILECTRL_H
+
+#ifndef _WX_GTK_FILECTRL_H_
+#define _WX_GTK_FILECTRL_H_
#include "wx/control.h"
+#include "wx/filectrl.h"
-extern WXDLLEXPORT_DATA(const wxChar) wxFileSelectorDefaultWildcardStr[];
+extern WXDLLIMPEXP_DATA_CORE(const char) wxFileSelectorDefaultWildcardStr[];
typedef struct _GtkFileChooser GtkFileChooser;
class WXDLLIMPEXP_CORE wxGtkFileChooser
{
public:
- wxGtkFileChooser() {}
+ wxGtkFileChooser() { m_ignoreNextFilterEvent = false; }
void SetWidget(GtkFileChooser *w);
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
Create( parent, id, defaultDirectory, defaultFilename, wildCard, style, pos, size, name );
}
- virtual ~wxGtkFileCtrl() {};
+ virtual ~wxGtkFileCtrl();
- void Init();
bool Create( wxWindow *parent,
wxWindowID id,
const wxString& defaultDirectory = wxEmptyString,
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;
wxGtkFileChooser m_fc;
wxString m_wildCard;
+private:
+ void Init();
+
DECLARE_DYNAMIC_CLASS( wxGtkFileCtrl )
};
#endif // wxUSE_FILECTRL
-#endif // FILECTRL_H
+#endif // _WX_GTK_FILECTRL_H_