CRefSelDlg::CRefSelDlg(wxWindow* pParent, wxString wxRefType) : wxDialog(pParent, wxID_ANY, wxT("Ref Select"), wxDefaultPosition, wxSize(600, 300), wxDEFAULT_DIALOG_STYLE|wxMINIMIZE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER) { m_pTextCtrl = ZION_NEW wxTextCtrl(this, ID_REF_TEXT, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_LEFT); wxBoxSizer* pSizer2 = ZION_NEW wxBoxSizer(wxHORIZONTAL); pSizer2->AddStretchSpacer(); pSizer2->Add(ZION_NEW wxButton(this, wxID_OK, wxT("Confirm")), 0, wxALIGN_RIGHT | wxALL, 5); pSizer2->Add(ZION_NEW wxButton(this, wxID_CANCEL, wxT("Cancel")), 0, wxALIGN_RIGHT | wxALL, 5); wxBoxSizer* pSizer1 = ZION_NEW wxBoxSizer(wxVERTICAL); pSizer1->Add(m_pTextCtrl, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5); m_pUUIDList = ZION_NEW wxListCtrl(this, ID_REF_LIST, wxDefaultPosition, wxDefaultSize, wxLC_REPORT); pSizer1->Add(m_pUUIDList, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5); pSizer1->Add(pSizer2, 0, wxGROW|wxALIGN_CENTER_VERTICAL); SetSizer(pSizer1); m_strRefType = wxRefType; m_pUUIDList->InsertColumn(0, wxT("Name"), 0, 120); m_pUUIDList->InsertColumn(1, wxT("UUID"), 0, 800); AppendItem(m_strRefType); }
void ScriptSelectorDlg::CreateControls() { ////@begin ScriptSelectorDlg content construction ScriptSelectorDlg* dlg = this; wxBoxSizer* mainSizer = XGC_NEW wxBoxSizer(wxVERTICAL); dlg->SetSizer(mainSizer); mListCtrl = XGC_NEW wxListCtrl( dlg, ID_LISTCTRL, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_SINGLE_SEL ); mainSizer->Add(mListCtrl, 1, wxGROW|wxALL, 5); wxBoxSizer* btnSizer = XGC_NEW wxBoxSizer(wxHORIZONTAL); mainSizer->Add(btnSizer, 0, wxALIGN_RIGHT|wxALL, 5); wxButton* btnConfirm = XGC_NEW wxButton( dlg, ID_BUTTON_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 ); btnSizer->Add(btnConfirm, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); wxButton* btnCancel = XGC_NEW wxButton( dlg, ID_BUTTON_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); btnSizer->Add(btnCancel, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); // Connect events and objects mListCtrl->Connect(ID_LISTCTRL, wxEVT_LEFT_DCLICK, wxMouseEventHandler(ScriptSelectorDlg::OnLeftDClick), NULL, this); ////@end ScriptSelectorDlg content construction mListCtrl->AppendColumn( "Name", wxLIST_FORMAT_LEFT, 80 ); mListCtrl->AppendColumn( "Path", wxLIST_FORMAT_LEFT, 400 ); mListCtrl->AppendColumn( "Version", wxLIST_FORMAT_LEFT, 100 ); auto &loader_path = getConfig().GetLoaderPath(); auto &module_path = getConfig().GetModulePath(); if( !fs::exists( loader_path ) ) return; if( !fs::exists( module_path ) ) return; int i = 0; xgc_string version; for( const auto &entry : fs::directory_iterator { module_path } ) { if( fs::is_directory( entry ) ) { if( entry.path() == fs::path(loader_path) ) continue; if( !fs::exists( entry.path() / "version.py" ) ) continue; if( !getScript().GetModuleVersion( entry.path().filename().string(), version ) ) continue; int item = mListCtrl->InsertItem( i++, entry.path().filename().string(), -1 ); if( item != -1 ) { mListCtrl->SetItem( item, 1, entry.path().string() ); mListCtrl->SetItem( item, 2, version ); } } } }