00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
#ifndef INC_DLGFILESSELECTOR_HPP
00026
#define INC_DLGFILESSELECTOR_HPP
00027
00028
00029
00030
#include <wx/wxprec.h>
00031
00032
#ifdef __BORLANDC__
00033
#pragma hdrstop
00034
#endif
00035
00036
#ifndef WX_PRECOMP
00037
00038
#include <wx/wx.h>
00039
#endif
00040
00041
#include <wx/spinctrl.h>
00042
00043
#include "fdftlmk.hpp"
00044
#include "slstview.hpp"
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 class dlgFilesSelector :
public wxDialog
00057 {
00058
public:
00059
00060
dlgFilesSelector();
00061
00062
00063
dlgFilesSelector(wxWindow* parent,
const bool extendDialog =
false);
00064
00065
00066
virtual void initialize();
00067
00068
00069
virtual ~dlgFilesSelector();
00070
00071
00072
void createControls();
00073
00074
00075
protected:
00076 bool extend;
00077 wxSortableListView*
lvwFiles;
00078 wxArrayString
fileNames;
00079 wxButton*
btnAdd;
00080 wxButton*
btnRemove;
00081 wxRadioBox*
rbxSortBy;
00082 wxRadioBox*
rbxSortOrder;
00083 wxButton*
btnSearchAndAdd;
00084 wxComboBox*
cboNamed;
00085 wxComboBox*
cboLookIn;
00086 wxSpinCtrl*
spnDepth;
00087 wxBoxSizer*
extendSizer;
00088
00089
00090
static long getID();
00091
00092
00093
void btnAddClick(wxCommandEvent& event);
00094
00095
void btnRemoveClick(wxCommandEvent& event);
00096
00097
void btnAddListClick(wxCommandEvent& event);
00098
00099
void btnLoadListClick(wxCommandEvent& event);
00100
00101
void btnSaveListClick(wxCommandEvent& event);
00102
00103
void btnBrowseClick(wxCommandEvent& event);
00104
00105
void btnSearchAndAddClick(wxCommandEvent& event);
00106
00107
00108
void lvwFilesSelectItem(wxListEvent& event);
00109
00110
void lvwFilesDeselectItem(wxListEvent& event);
00111
00112
void lvwFilesKeyDown(wxListEvent& event);
00113
00114
void lvwFilesColumnClick(wxListEvent& event);
00115
00116
00117
void rbxSortBySelect(wxCommandEvent& event);
00118
00119
void rbxSortOrderSelect(wxCommandEvent& event);
00120
00121
00122
void cboSearchTextEnter(wxCommandEvent& event);
00123
00124
00125
void btnOKClick(wxCommandEvent& event);
00126
00127
00128
enum
00129 {
00130 LVW_FILES = wxID_HIGHEST + 1,
00131 BTN_ADD,
00132 BTN_REMOVE,
00133 BTN_ADDLIST,
00134 BTN_LOADLIST,
00135 BTN_SAVELIST,
00136 CBO_NAMED,
00137 CBO_LOOKIN,
00138 BTN_BROWSE,
00139 BTN_SEARCH_AND_ADD,
00140 SPN_DEPTH,
00141 RBX_SORT_BY,
00142 RBX_SORT_ORDER,
00143 BTN_OK,
00144 DLG_FILESSELECTOR_ID_HIGHEST
00145 };
00146
00147
00148
void addFileNamesToListView(
const wxArrayString& fileNames);
00149
00150
00151
class FilesListValidator;
00152
00153
friend class FilesListValidator;
00154
00155 DECLARE_EVENT_TABLE()
00156
00157 private:
00158 DECLARE_DYNAMIC_CLASS(
dlgFilesSelector)
00159
00160 public:
00161
00162
void getFileNames(wxArrayString& names) const;
00163
00164 public:
00165
00166
00167
00168
00169
00170
00171
00172 virtual wxString getRootConfigKey() = 0;
00173
00174
00175 wxString getNamedConfigKey(const
int n);
00176
00177
00178 wxString getLookInConfigKey(const
int n);
00179
00180
00181
int getHistoryMaxSize();
00182
00183 protected:
00184
00185 enum PreferencesKey
00186 {
00187 prGUI_SORT_BY = 0,
00188 prGUI_SORT_ORDER,
00189 prGUI_FILENAME_WIDTH,
00190 prGUI_DIRECTORY_WIDTH,
00191 prGUI_WINDOW_SIZE
00192 };
00193
00194
00195 wxString getConfigKey(
const PreferencesKey pk);
00196
00197
protected:
00198
00199 enum UIStrings
00200 {
00201 uiDialogTitle = 0,
00202 uiBtnOK,
00203 uiFraFilesList,
00204 uiFraSearchFiles,
00205 uiOpenDlgAddFiles,
00206 uiOpenDlgAddList,
00207 uiOpenDlgLoadList,
00208 uiSaveDlgAddList
00209 };
00210
00211
00212
00213
00214
00215
00216
00217
00218
virtual wxString getUIString(UIStrings
id) = 0;
00219
00220
00221
00222
00223
00224
00225
virtual wxFileDialogFilterMaker getFiltersForAddFilesDialog() = 0;
00226
00227
private:
00228
00229
static void addLineToComboBox(wxComboBox* cboBox,
const int maxLines);
00230
00231
00232
void getLastDirectoryAndFilter(
const wxString& configKey, wxString& lastDirKey, wxString& lastDir,
wxFileDialogFilterMaker& fltMaker);
00233 };
00234
00235
00236
#endif // INC_DLGFILESSELECTOR_HPP