per MSW, didn't work. Added DeleteAllItems event and test to listctrl. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5871 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			242 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			242 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        filedlgg.h
 | 
						|
// Purpose:     wxFileDialog
 | 
						|
// Author:      Robert Roebling
 | 
						|
// Modified by:
 | 
						|
// Created:     8/17/99
 | 
						|
// Copyright:   (c) Robert Roebling
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Licence:     wxWindows licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#ifndef _WX_FILEDLGG_H_
 | 
						|
#define _WX_FILEDLGG_H_
 | 
						|
 | 
						|
#ifdef __GNUG__
 | 
						|
#pragma interface "filedlgg.h"
 | 
						|
#endif
 | 
						|
 | 
						|
#include "wx/defs.h"
 | 
						|
 | 
						|
#include "wx/dialog.h"
 | 
						|
#include "wx/checkbox.h"
 | 
						|
#include "wx/listctrl.h"
 | 
						|
#include "wx/textctrl.h"
 | 
						|
#include "wx/choice.h"
 | 
						|
#include "wx/checkbox.h"
 | 
						|
#include "wx/stattext.h"
 | 
						|
 | 
						|
//-----------------------------------------------------------------------------
 | 
						|
// data
 | 
						|
//-----------------------------------------------------------------------------
 | 
						|
 | 
						|
WXDLLEXPORT_DATA(extern const wxChar *)wxFileSelectorPromptStr;
 | 
						|
WXDLLEXPORT_DATA(extern const wxChar *)wxFileSelectorDefaultWildcardStr;
 | 
						|
 | 
						|
//-----------------------------------------------------------------------------
 | 
						|
// classes
 | 
						|
//-----------------------------------------------------------------------------
 | 
						|
 | 
						|
class wxFileData;
 | 
						|
class wxFileCtrl;
 | 
						|
class wxFileDialog;
 | 
						|
 | 
						|
//-----------------------------------------------------------------------------
 | 
						|
//  wxFileData
 | 
						|
//-----------------------------------------------------------------------------
 | 
						|
 | 
						|
class wxFileData : public wxObject
 | 
						|
{
 | 
						|
private:
 | 
						|
    wxString m_name;
 | 
						|
    wxString m_fileName;
 | 
						|
    long     m_size;
 | 
						|
    int      m_hour;
 | 
						|
    int      m_minute;
 | 
						|
    int      m_year;
 | 
						|
    int      m_month;
 | 
						|
    int      m_day;
 | 
						|
    wxString m_permissions;
 | 
						|
    bool     m_isDir;
 | 
						|
    bool     m_isLink;
 | 
						|
    bool     m_isExe;
 | 
						|
 | 
						|
public:
 | 
						|
    wxFileData() { }
 | 
						|
    wxFileData( const wxString &name, const wxString &fname );
 | 
						|
    wxString GetName() const;
 | 
						|
    wxString GetFullName() const;
 | 
						|
    wxString GetHint() const;
 | 
						|
    wxString GetEntry( int num );
 | 
						|
    bool IsDir();
 | 
						|
    bool IsLink();
 | 
						|
    bool IsExe();
 | 
						|
    long GetSize();
 | 
						|
    void MakeItem( wxListItem &item );
 | 
						|
    void SetNewName( const wxString &name, const wxString &fname );
 | 
						|
 | 
						|
private:
 | 
						|
    DECLARE_DYNAMIC_CLASS(wxFileData);
 | 
						|
};
 | 
						|
 | 
						|
//-----------------------------------------------------------------------------
 | 
						|
//  wxFileCtrl
 | 
						|
//-----------------------------------------------------------------------------
 | 
						|
 | 
						|
class wxFileCtrl : public wxListCtrl
 | 
						|
{
 | 
						|
private:
 | 
						|
    wxString      m_dirName;
 | 
						|
    bool          m_showHidden;
 | 
						|
    wxString      m_wild;
 | 
						|
 | 
						|
public:
 | 
						|
    wxFileCtrl();
 | 
						|
    wxFileCtrl( wxWindow *win,
 | 
						|
                wxWindowID id,
 | 
						|
                const wxString &dirName,
 | 
						|
                const wxString &wild,
 | 
						|
                const wxPoint &pos = wxDefaultPosition,
 | 
						|
                const wxSize &size = wxDefaultSize,
 | 
						|
                long style = wxLC_LIST,
 | 
						|
                const wxValidator &validator = wxDefaultValidator,
 | 
						|
                const wxString &name = wxT("filelist") );
 | 
						|
    void ChangeToListMode();
 | 
						|
    void ChangeToReportMode();
 | 
						|
    void ChangeToIconMode();
 | 
						|
    void ShowHidden( bool show = TRUE );
 | 
						|
    long Add( wxFileData *fd, wxListItem &item );
 | 
						|
    void Update();
 | 
						|
    virtual void StatusbarText( wxChar *WXUNUSED(text) ) {};
 | 
						|
    void MakeDir();
 | 
						|
    void GoToParentDir();
 | 
						|
    void GoToHomeDir();
 | 
						|
    void GoToDir( const wxString &dir );
 | 
						|
    void SetWild( const wxString &wild );
 | 
						|
    void GetDir( wxString &dir );
 | 
						|
    void OnListDeleteItem( wxListEvent &event );
 | 
						|
    void OnListDeleteAllItems( wxListEvent &event );
 | 
						|
    void OnListEndLabelEdit( wxListEvent &event );
 | 
						|
 | 
						|
private:
 | 
						|
    DECLARE_DYNAMIC_CLASS(wxFileCtrl);
 | 
						|
    DECLARE_EVENT_TABLE()
 | 
						|
};
 | 
						|
 | 
						|
//-------------------------------------------------------------------------
 | 
						|
// File selector
 | 
						|
//-------------------------------------------------------------------------
 | 
						|
 | 
						|
class wxFileDialog: public wxDialog
 | 
						|
{
 | 
						|
public:
 | 
						|
    wxFileDialog() { }
 | 
						|
 | 
						|
    wxFileDialog(wxWindow *parent,
 | 
						|
                 const wxString& message = wxFileSelectorPromptStr,
 | 
						|
                 const wxString& defaultDir = "",
 | 
						|
                 const wxString& defaultFile = "",
 | 
						|
                 const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
 | 
						|
                 long style = 0,
 | 
						|
                 const wxPoint& pos = wxDefaultPosition);
 | 
						|
    ~wxFileDialog();
 | 
						|
 | 
						|
    void SetMessage(const wxString& message) { m_message = message; }
 | 
						|
    void SetPath(const wxString& path);
 | 
						|
    void SetDirectory(const wxString& dir) { m_dir = dir; }
 | 
						|
    void SetFilename(const wxString& name) { m_fileName = name; }
 | 
						|
    void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; }
 | 
						|
    void SetStyle(long style) { m_dialogStyle = style; }
 | 
						|
    void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; }
 | 
						|
 | 
						|
    wxString GetMessage() const { return m_message; }
 | 
						|
    wxString GetPath() const { return m_path; }
 | 
						|
    wxString GetDirectory() const { return m_dir; }
 | 
						|
    wxString GetFilename() const { return m_fileName; }
 | 
						|
    wxString GetWildcard() const { return m_wildCard; }
 | 
						|
    long GetStyle() const { return m_dialogStyle; }
 | 
						|
    int GetFilterIndex() const { return m_filterIndex; }
 | 
						|
 | 
						|
    // for multiple file selection
 | 
						|
    void GetPaths(wxArrayString& paths) const;
 | 
						|
    void GetFilenames(wxArrayString& files) const;
 | 
						|
 | 
						|
    void OnSelected( wxListEvent &event );
 | 
						|
    void OnActivated( wxListEvent &event );
 | 
						|
    void OnList( wxCommandEvent &event );
 | 
						|
    void OnReport( wxCommandEvent &event );
 | 
						|
    void OnUp( wxCommandEvent &event );
 | 
						|
    void OnHome( wxCommandEvent &event );
 | 
						|
    void OnListOk( wxCommandEvent &event );
 | 
						|
    void OnNew( wxCommandEvent &event );
 | 
						|
    void OnChoice( wxCommandEvent &event );
 | 
						|
    void OnTextEnter( wxCommandEvent &event );
 | 
						|
    void OnCheck( wxCommandEvent &event );
 | 
						|
 | 
						|
    void HandleAction( const wxString &fn );
 | 
						|
 | 
						|
protected:
 | 
						|
    wxString       m_message;
 | 
						|
    long           m_dialogStyle;
 | 
						|
    wxString       m_dir;
 | 
						|
    wxString       m_path; // Full path
 | 
						|
    wxString       m_fileName;
 | 
						|
    wxString       m_wildCard;
 | 
						|
    int            m_filterIndex;
 | 
						|
    wxString       m_filterExtension;
 | 
						|
    wxChoice      *m_choice;
 | 
						|
    wxTextCtrl    *m_text;
 | 
						|
    wxFileCtrl    *m_list;
 | 
						|
    wxCheckBox    *m_check;
 | 
						|
    wxStaticText  *m_static;
 | 
						|
 | 
						|
private:
 | 
						|
    DECLARE_DYNAMIC_CLASS(wxFileDialog)
 | 
						|
    DECLARE_EVENT_TABLE()
 | 
						|
 | 
						|
    static long   s_lastViewStyle;  // list or report?
 | 
						|
    static bool   s_lastShowHidden; 
 | 
						|
};
 | 
						|
 | 
						|
// File selector - backward compatibility
 | 
						|
WXDLLEXPORT wxString
 | 
						|
wxFileSelector(const wxChar *message = wxFileSelectorPromptStr,
 | 
						|
               const wxChar *default_path = NULL,
 | 
						|
               const wxChar *default_filename = NULL,
 | 
						|
               const wxChar *default_extension = NULL,
 | 
						|
               const wxChar *wildcard = wxFileSelectorDefaultWildcardStr,
 | 
						|
               int flags = 0,
 | 
						|
               wxWindow *parent = NULL,
 | 
						|
               int x = -1, int y = -1);
 | 
						|
 | 
						|
// An extended version of wxFileSelector
 | 
						|
WXDLLEXPORT wxString
 | 
						|
wxFileSelectorEx(const wxChar *message = wxFileSelectorPromptStr,
 | 
						|
                 const wxChar *default_path = NULL,
 | 
						|
                 const wxChar *default_filename = NULL,
 | 
						|
                 int *indexDefaultExtension = NULL,
 | 
						|
                 const wxChar *wildcard = wxFileSelectorDefaultWildcardStr,
 | 
						|
                 int flags = 0,
 | 
						|
                 wxWindow *parent = NULL,
 | 
						|
                 int x = -1, int y = -1);
 | 
						|
 | 
						|
// Ask for filename to load
 | 
						|
WXDLLEXPORT wxString
 | 
						|
wxLoadFileSelector(const wxChar *what,
 | 
						|
                   const wxChar *extension,
 | 
						|
                   const wxChar *default_name = (const wxChar *)NULL,
 | 
						|
                   wxWindow *parent = (wxWindow *) NULL);
 | 
						|
 | 
						|
// Ask for filename to save
 | 
						|
WXDLLEXPORT wxString
 | 
						|
wxSaveFileSelector(const wxChar *what,
 | 
						|
                   const wxChar *extension,
 | 
						|
                   const wxChar *default_name = (const wxChar *) NULL,
 | 
						|
                   wxWindow *parent = (wxWindow *) NULL);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#endif
 | 
						|
    // _WX_DIRDLGG_H_
 | 
						|
 |