//--------------------------------------------------------- CData_Source_Files::CData_Source_Files(wxWindow *pParent) : wxPanel(pParent) { m_pControl = new wxGenericDirCtrl(this, wxID_ANY, wxDirDialogDefaultFolderStr, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER); m_pControl->GetTreeCtrl()->SetId(ID_WND_DATA_SOURCE_FILES); m_pControl->Connect(m_pControl->GetTreeCtrl()->GetId(), wxEVT_COMMAND_TREE_ITEM_EXPANDING , wxTreeEventHandler(wxGenericDirCtrl::OnExpandItem)); m_pControl->Connect(m_pControl->GetTreeCtrl()->GetId(), wxEVT_COMMAND_TREE_ITEM_COLLAPSING, wxTreeEventHandler(wxGenericDirCtrl::OnCollapseItem)); Connect(m_pControl->GetTreeCtrl()->GetId(), wxEVT_COMMAND_TREE_ITEM_ACTIVATED , wxTreeEventHandler(CData_Source_Files::On_TreeEvent)); Connect(m_pControl->GetTreeCtrl()->GetId(), wxEVT_COMMAND_TREE_ITEM_MENU , wxTreeEventHandler(CData_Source_Files::On_TreeEvent)); //----------------------------------------------------- wxString Filter(DLG_Get_FILE_Filter(ID_DLG_FILES_OPEN)); wxArrayString Choices; while( Filter.Length() > 0 ) { Choices.Add(Filter.BeforeFirst('|')); Filter = Filter.AfterFirst('|').AfterFirst('|'); } m_pFilter = new wxChoice(this, ID_WND_DATA_SOURCE_FILES, wxDefaultPosition, wxDefaultSize, Choices); m_pFilter ->Select(0); m_pControl ->SetFilter(DLG_Get_FILE_Filter(ID_DLG_FILES_OPEN)); m_pControl ->SetFilterIndex(m_pFilter->GetSelection()); m_pControl ->ReCreateTree(); //----------------------------------------------------- wxBoxSizer *Sizer = new wxBoxSizer(wxVERTICAL); Sizer->Add(m_pControl, wxSizerFlags(1).Expand()); Sizer->Add(m_pFilter , wxSizerFlags(0).Expand()); SetSizerAndFit(Sizer); }
bool DLG_Open(wxArrayString &File_Paths, int ID_DLG) { wxString def_Dir; CONFIG_Read(CONFIG_GROUP_FILE_DLG, DLG_Get_FILE_Config(ID_DLG), def_Dir); if( DLG_Open(File_Paths, DLG_Get_FILE_Caption(ID_DLG), def_Dir, DLG_Get_FILE_Filter(ID_DLG)) ) { CONFIG_Write(CONFIG_GROUP_FILE_DLG, DLG_Get_FILE_Config(ID_DLG), SG_File_Get_Path(File_Paths[0]).w_str()); return( true ); } return( false ); }
bool DLG_Save(wxString &File_Path, int ID_DLG) { wxString def_Dir, def_Name; def_Name = SG_File_Get_Name(File_Path, true).w_str(); def_Dir = SG_File_Get_Path(File_Path).w_str(); if( !wxDirExists(def_Dir) ) { CONFIG_Read(CONFIG_GROUP_FILE_DLG, DLG_Get_FILE_Config(ID_DLG), def_Dir); } if( DLG_Save(File_Path, DLG_Get_FILE_Caption(ID_DLG), def_Dir, def_Name, DLG_Get_FILE_Filter(ID_DLG)) ) { CONFIG_Write(CONFIG_GROUP_FILE_DLG, DLG_Get_FILE_Config(ID_DLG), SG_File_Get_Path(File_Path).w_str()); return( true ); } return( false ); }