示例#1
0
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);
}
示例#2
0
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 );
			}
		}
	}
}