merged both implementations of wxGenericDirCtrl

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13422 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2002-01-06 23:10:56 +00:00
parent e0fd69f760
commit 748fcded3c
5 changed files with 295 additions and 983 deletions

View File

@@ -4,11 +4,11 @@
// Builds on wxDirCtrl class written by Robert Roebling for the
// wxFile application, modified by Harm van der Heijden.
// Further modified for Windows.
// Author: Julian Smart et al
// Author: Robert Roebling, Harm van der Heijden, Julian Smart et al
// Modified by:
// Created: 21/3/2000
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Copyright: (c) Robert Roebling, Harm van der Heijden, Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
@@ -22,6 +22,7 @@
#if wxUSE_DIRDLG
#include "wx/treectrl.h"
#include "wx/dialog.h"
#include "wx/dirdlg.h"
#include "wx/choice.h"
@@ -29,34 +30,42 @@
// classes
//-----------------------------------------------------------------------------
class WXDLLEXPORT wxTextCtrl;
//-----------------------------------------------------------------------------
// Extra styles for wxGenericDirCtrl
//-----------------------------------------------------------------------------
// Only allow directory viewing/selection, no files
#define wxDIRCTRL_DIR_ONLY 0x0010
// When setting the default path, select the first file in the directory
#define wxDIRCTRL_SELECT_FIRST 0x0020
// Show the filter list
#define wxDIRCTRL_SHOW_FILTERS 0x0040
// Use 3D borders on internal controls
#define wxDIRCTRL_3D_INTERNAL 0x0080
enum
{
// Only allow directory viewing/selection, no files
wxDIRCTRL_DIR_ONLY = 0x0010,
// When setting the default path, select the first file in the directory
wxDIRCTRL_SELECT_FIRST = 0x0020,
// Show the filter list
wxDIRCTRL_SHOW_FILTERS = 0x0040,
// Use 3D borders on internal controls
wxDIRCTRL_3D_INTERNAL = 0x0080
};
//-----------------------------------------------------------------------------
// wxDirItemData
//-----------------------------------------------------------------------------
class WXDLLEXPORT wxDirItemDataEx : public wxTreeItemData
class WXDLLEXPORT wxDirItemData : public wxTreeItemData
{
public:
wxDirItemDataEx(const wxString& path, const wxString& name, bool isDir);
~wxDirItemDataEx();
void SetNewDirName( wxString path );
wxString m_path, m_name;
bool m_isHidden;
bool m_hasSubDirs;
bool m_isExpanded;
bool m_isDir;
wxDirItemData(const wxString& path, const wxString& name, bool isDir);
~wxDirItemData();
void SetNewDirName(const wxString& path);
bool HasSubDirs() const;
bool HasFiles(const wxString& spec = wxEmptyString) const;
wxString m_path, m_name;
bool m_isHidden;
bool m_isExpanded;
bool m_isDir;
};
//-----------------------------------------------------------------------------
@@ -127,7 +136,7 @@ public:
wxTreeCtrl* GetTreeCtrl() const { return m_treeCtrl; }
wxDirFilterListCtrl* GetFilterListCtrl() const { return m_filterListCtrl; }
//// Helpers
//// Helpers
void SetupSections();
// Parse the filter into an array of filters and an array of descriptions
int ParseFilter(const wxString& filterStr, wxArrayString& filters, wxArrayString& descriptions);
@@ -190,10 +199,10 @@ public:
~wxDirFilterListCtrl() {};
//// Operations
//// Operations
void FillFilterList(const wxString& filter, int defaultFilter);
//// Events
//// Events
void OnSelFilter(wxCommandEvent& event);
protected:
@@ -203,51 +212,9 @@ protected:
DECLARE_CLASS(wxDirFilterListCtrl)
};
#define wxID_TREECTRL 7000
#define wxID_FILTERLISTCTRL 7001
//-----------------------------------------------------------------------------
// wxGenericDirDialog
//
//-----------------------------------------------------------------------------
class wxGenericDirDialog: public wxDialog
{
DECLARE_EVENT_TABLE()
public:
wxGenericDirDialog(): wxDialog() {}
wxGenericDirDialog(wxWindow* parent, const wxString& title,
const wxString& defaultPath = wxEmptyString, long style = wxDEFAULT_DIALOG_STYLE, const wxPoint& pos = wxDefaultPosition, const wxSize& sz = wxSize(450, 550), const wxString& name = "dialog");
//// Event handlers
void OnCloseWindow(wxCloseEvent& event);
void OnOK(wxCommandEvent& event);
void OnTreeSelected( wxTreeEvent &event );
void OnTreeKeyDown( wxTreeEvent &event );
void OnNew(wxCommandEvent& event);
//// Accessors
inline void SetMessage(const wxString& message) { m_message = message; }
void SetPath(const wxString& path) ;
inline void SetStyle(long style) { m_dialogStyle = style; }
inline wxString GetMessage(void) const { return m_message; }
wxString GetPath(void) const ;
inline long GetStyle(void) const { return m_dialogStyle; }
wxTextCtrl* GetInputCtrl() const { return m_input; }
//// Overrides
int ShowModal();
protected:
wxString m_message;
long m_dialogStyle;
wxString m_path;
wxGenericDirCtrl* m_dirCtrl;
wxTextCtrl* m_input;
};
#if !defined(__WXMSW__) && !defined(__WXMAC__) && !defined(__WXPM__)
#define wxDirCtrl wxGenericDirCtrl
#endif
#endif // wxUSE_DIRDLG