wxNotebookPage* PreferencesWindow::CreateGeneralPage() { wxNotebookPage* general_page = newd wxPanel(book, wxID_ANY); wxSizer* sizer = newd wxBoxSizer(wxVERTICAL); wxStaticText* tmptext; sizer->Add(always_make_backup_chkbox = newd wxCheckBox(general_page, wxID_ANY, wxT("Always make map backup"))); always_make_backup_chkbox->SetValue(settings.getInteger(Config::ALWAYS_MAKE_BACKUP) == 1); sizer->Add(create_on_startup_chkbox = newd wxCheckBox(general_page, wxID_ANY, wxT("Create map on startup"))); create_on_startup_chkbox->SetValue(settings.getInteger(Config::CREATE_MAP_ON_STARTUP) == 1); sizer->Add(update_check_on_startup_chkbox = newd wxCheckBox(general_page, wxID_ANY, wxT("Check for updates on startup"))); update_check_on_startup_chkbox->SetValue(settings.getInteger(Config::USE_UPDATER) == 1); sizer->Add(only_one_instance_chkbox = newd wxCheckBox(general_page, wxID_ANY, wxT("Open all maps in the same instance"))); only_one_instance_chkbox->SetValue(settings.getInteger(Config::ONLY_ONE_INSTANCE) == 1); only_one_instance_chkbox->SetToolTip(wxT("When checked, maps opened using the shell will all be opened in the same instance.")); wxFlexGridSizer* grid_sizer = newd wxFlexGridSizer(2, 10, 10); grid_sizer->AddGrowableCol(1); grid_sizer->Add(tmptext = newd wxStaticText(general_page, wxID_ANY, wxT("Undo queue size: ")), 0); undo_size_spin = newd wxSpinCtrl(general_page, wxID_ANY, i2ws(settings.getInteger(Config::UNDO_SIZE)), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 0x10000000); grid_sizer->Add(undo_size_spin, 0); SetWindowToolTip(tmptext, undo_size_spin, wxT("How many action you can undo, be aware that a high value will increase memory usage.")); grid_sizer->Add(tmptext = newd wxStaticText(general_page, wxID_ANY, wxT("Undo maximum memory size (MB): ")), 0); undo_mem_size_spin = newd wxSpinCtrl(general_page, wxID_ANY, i2ws(settings.getInteger(Config::UNDO_MEM_SIZE)), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 4096); grid_sizer->Add(undo_mem_size_spin, 0); SetWindowToolTip(tmptext, undo_mem_size_spin, wxT("The approximite limit for the memory usage of the undo queue.")); grid_sizer->Add(tmptext = newd wxStaticText(general_page, wxID_ANY, wxT("Worker Threads: ")), 0); worker_threads_spin = newd wxSpinCtrl(general_page, wxID_ANY, i2ws(settings.getInteger(Config::WORKER_THREADS)), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 64); grid_sizer->Add(worker_threads_spin, 0); SetWindowToolTip(tmptext, worker_threads_spin, wxT("How many threads the editor will use for intensive operations. This should be equivalent to the amount of logical processors in your system.")); sizer->Add(20,10); sizer->Add(grid_sizer); general_page->SetSizerAndFit(sizer); return general_page; }
wxWindow* PropertiesWindow::createGeneralPanel(wxWindow* parent) { wxPanel* panel = newd wxPanel(parent, ITEM_PROPERTIES_GENERAL_TAB); wxFlexGridSizer* gridsizer = newd wxFlexGridSizer(2, 10, 10); gridsizer->AddGrowableCol(1); gridsizer->Add(newd wxStaticText(panel, wxID_ANY, "ID " + i2ws(edit_item->getID()))); gridsizer->Add(newd wxStaticText(panel, wxID_ANY, "\"" + wxstr(edit_item->getName()) + "\"")); gridsizer->Add(newd wxStaticText(panel, wxID_ANY, "Action ID")); wxSpinCtrl* action_id_field = newd wxSpinCtrl(panel, wxID_ANY, i2ws(edit_item->getActionID()), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 0xFFFF, edit_item->getActionID()); gridsizer->Add(action_id_field, wxSizerFlags(1).Expand()); gridsizer->Add(newd wxStaticText(panel, wxID_ANY, "Unique ID")); wxSpinCtrl* unique_id_field = newd wxSpinCtrl(panel, wxID_ANY, i2ws(edit_item->getUniqueID()), wxDefaultPosition, wxSize(-1, 20), wxSP_ARROW_KEYS, 0, 0xFFFF, edit_item->getUniqueID()); gridsizer->Add(unique_id_field, wxSizerFlags(1).Expand()); panel->SetSizerAndFit(gridsizer); return panel; }
wxNotebookPage* PreferencesWindow::CreateGeneralPage() { wxNotebookPage* general_page = newd wxPanel(book, wxID_ANY); wxSizer* sizer = newd wxBoxSizer(wxVERTICAL); wxStaticText* tmptext; always_make_backup_chkbox = newd wxCheckBox(general_page, wxID_ANY, "Always make map backup"); always_make_backup_chkbox->SetValue(g_settings.getInteger(Config::ALWAYS_MAKE_BACKUP) == 1); sizer->Add(always_make_backup_chkbox, 0, wxLEFT | wxTOP, 5); create_on_startup_chkbox = newd wxCheckBox(general_page, wxID_ANY, "Create map on startup"); create_on_startup_chkbox->SetValue(g_settings.getInteger(Config::CREATE_MAP_ON_STARTUP) == 1); sizer->Add(create_on_startup_chkbox, 0, wxLEFT | wxTOP, 5); update_check_on_startup_chkbox = newd wxCheckBox(general_page, wxID_ANY, "Check for updates on startup"); update_check_on_startup_chkbox->SetValue(g_settings.getInteger(Config::USE_UPDATER) == 1); sizer->Add(update_check_on_startup_chkbox, 0, wxLEFT | wxTOP, 5); only_one_instance_chkbox = newd wxCheckBox(general_page, wxID_ANY, "Open all maps in the same instance"); only_one_instance_chkbox->SetValue(g_settings.getInteger(Config::ONLY_ONE_INSTANCE) == 1); only_one_instance_chkbox->SetToolTip("When checked, maps opened using the shell will all be opened in the same instance."); sizer->Add(only_one_instance_chkbox, 0, wxLEFT | wxTOP, 5); sizer->AddSpacer(10); wxFlexGridSizer* grid_sizer = newd wxFlexGridSizer(2, 10, 10); grid_sizer->AddGrowableCol(1); grid_sizer->Add(tmptext = newd wxStaticText(general_page, wxID_ANY, "Undo queue size: "), 0); undo_size_spin = newd wxSpinCtrl(general_page, wxID_ANY, i2ws(g_settings.getInteger(Config::UNDO_SIZE)), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 0x10000000); grid_sizer->Add(undo_size_spin, 0); SetWindowToolTip(tmptext, undo_size_spin, "How many action you can undo, be aware that a high value will increase memory usage."); grid_sizer->Add(tmptext = newd wxStaticText(general_page, wxID_ANY, "Undo maximum memory size (MB): "), 0); undo_mem_size_spin = newd wxSpinCtrl(general_page, wxID_ANY, i2ws(g_settings.getInteger(Config::UNDO_MEM_SIZE)), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 4096); grid_sizer->Add(undo_mem_size_spin, 0); SetWindowToolTip(tmptext, undo_mem_size_spin, "The approximite limit for the memory usage of the undo queue."); grid_sizer->Add(tmptext = newd wxStaticText(general_page, wxID_ANY, "Worker Threads: "), 0); worker_threads_spin = newd wxSpinCtrl(general_page, wxID_ANY, i2ws(g_settings.getInteger(Config::WORKER_THREADS)), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 64); grid_sizer->Add(worker_threads_spin, 0); SetWindowToolTip(tmptext, worker_threads_spin, "How many threads the editor will use for intensive operations. This should be equivalent to the amount of logical processors in your system."); grid_sizer->Add(tmptext = newd wxStaticText(general_page, wxID_ANY, "Replace count: "), 0); replace_size_spin = newd wxSpinCtrl(general_page, wxID_ANY, i2ws(g_settings.getInteger(Config::REPLACE_SIZE)), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100000); grid_sizer->Add(replace_size_spin, 0); SetWindowToolTip(tmptext, replace_size_spin, "How many items you can replace on the map using the Replace Item tool."); sizer->Add(grid_sizer, 0, wxALL, 5); sizer->AddSpacer(10); wxString position_choices[] = { " {x = 0, y = 0, z = 0}", " {\"x\":0,\"y\":0,\"z\":0}", " x, y, z", " (x, y, z)", " Position(x, y, z)" }; int radio_choices = sizeof(position_choices) / sizeof(wxString); position_format = newd wxRadioBox(general_page, wxID_ANY, "Copy Position Format", wxDefaultPosition, wxDefaultSize, radio_choices, position_choices, 1, wxRA_SPECIFY_COLS); position_format->SetSelection(g_settings.getInteger(Config::COPY_POSITION_FORMAT)); sizer->Add(position_format, 0, wxALL | wxEXPAND, 5); SetWindowToolTip(tmptext, position_format, "The position format when copying from the map."); general_page->SetSizerAndFit(sizer); return general_page; }
void TreeGeneratorFrame::createWxCtrls() { // menu SetIcon(wxIcon(L"./Assets/Icons/Zee.xpm", wxBITMAP_TYPE_XPM)); wxMenu* menuFile = New wxMenu; menuFile->Append(ID_MENU_OPEN, L"&Open"); menuFile->Append(ID_MENU_SAVE, L"&Save"); wxMenuBar* menuBar = New wxMenuBar; menuBar->Append(menuFile, L"&File"); SetMenuBar(menuBar); // wnd wxBoxSizer* boxSizer1 = New wxBoxSizer(wxHORIZONTAL); // left mCtrlsPanel = New wxScrolledWindow(this, -1, wxDefaultPosition, wxDefaultSize, wxVSCROLL); mCtrlsPanel->SetScrollRate(0, 5); wxBoxSizer* boxSizer2 = New wxBoxSizer(wxVERTICAL); // -- generalParams mPanelGeneralParams = New wxCollapsiblePane(mCtrlsPanel, ID_GENERAL_PARAMS, L"General Params"); wxWindow* generalParamsWnd = mPanelGeneralParams->GetPane(); wxFlexGridSizer* fgSizer1 = New wxFlexGridSizer(2, 2, 0, 0); fgSizer1->SetFlexibleDirection(wxBOTH); fgSizer1->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED); wxStaticText* textLevels = New wxStaticText(generalParamsWnd, -1, L"Levels"); mSpinLevels = New wxSpinCtrl(generalParamsWnd, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 5, 1); wxStaticText* textScale = New wxStaticText(generalParamsWnd, -1, L"Scale"); mTextScale = New wxTextCtrl(generalParamsWnd, -1, L"10.0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textScaleV = New wxStaticText(generalParamsWnd, -1, L"ScaleV"); mTextScaleV = New wxTextCtrl(generalParamsWnd, -1, L"0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textBaseSize = New wxStaticText(generalParamsWnd, -1, L"BaseSize"); mTextBaseSize = New wxTextCtrl(generalParamsWnd, -1, L"0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textRadiusRatio = New wxStaticText(generalParamsWnd, -1, L"RadiusRatio"); mTextRadiusRatio = New wxTextCtrl(generalParamsWnd, -1, L"0.02", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textRatioPower = New wxStaticText(generalParamsWnd, -1, L"RatioPower"); mTextRatioPower = New wxTextCtrl(generalParamsWnd, -1, L"1", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textShape = New wxStaticText(generalParamsWnd, -1, L"Shape"); mSpinShape = New wxSpinCtrl(generalParamsWnd, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0); wxStaticText* textBaseSplits = New wxStaticText(generalParamsWnd, -1, L"BaseSplits"); mSpinBaseSplits = New wxSpinCtrl(generalParamsWnd, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0); fgSizer1->Add(textLevels, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(mSpinLevels, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(textScale, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(mTextScale, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(textScaleV, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(mTextScaleV, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(textBaseSize, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(mTextBaseSize, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(textRadiusRatio, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(mTextRadiusRatio, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(textRatioPower, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(mTextRatioPower, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(textShape, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(mSpinShape, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(textBaseSplits, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer1->Add(mSpinBaseSplits, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); generalParamsWnd->SetSizer(fgSizer1); generalParamsWnd->Layout(); generalParamsWnd->Fit(); // -- LevelParams mPanelLevelParmas0 = New wxCollapsiblePane(mCtrlsPanel, ID_GENERAL_PARAMS, L"Level Params"); wxWindow* levelParamsWnd = mPanelLevelParmas0->GetPane(); wxFlexGridSizer* fgSizer2 = New wxFlexGridSizer(2, 2, 0, 0); fgSizer2->SetFlexibleDirection(wxBOTH); fgSizer2->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED); wxStaticText* textLevel = New wxStaticText(levelParamsWnd, -1, L"Level"); //mSpinLevel = new wxSpinCtrl(levelParamsWnd0, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, // wxSP_ARROW_KEYS, 0, 10, 0); wxArrayString choices; choices.Add(wxT("0")); mChoiceLevel = New wxChoice(levelParamsWnd, -1, wxDefaultPosition, wxDefaultSize, choices); mChoiceLevel->SetSelection(0); mSelectedLevel = 0; wxStaticText* textSegSegsW = New wxStaticText(levelParamsWnd, -1, L"SegSegsW"); mSpinSegSegsW = New wxSpinCtrl(levelParamsWnd, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 8); wxStaticText* textSegSegsH = New wxStaticText(levelParamsWnd, -1, L"SegSegsH"); mSpinSegSegsH = New wxSpinCtrl(levelParamsWnd, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 4); wxStaticText* textLength = New wxStaticText(levelParamsWnd, -1, L"Length"); mTextLength = New wxTextCtrl(levelParamsWnd, -1, L"1.0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textLengthV = New wxStaticText(levelParamsWnd, -1, L"LengthV"); mTextLengthV = New wxTextCtrl(levelParamsWnd, -1, L"0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textTaper = New wxStaticText(levelParamsWnd, -1, L"Taper"); mTextTaper = New wxTextCtrl(levelParamsWnd, -1, L"1", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textCurveRes = New wxStaticText(levelParamsWnd, -1, L"CurveRes"); mSpinCurveRes = New wxSpinCtrl(levelParamsWnd, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 3); wxStaticText* textCurve = New wxStaticText(levelParamsWnd, -1, L"Curve"); mTextCurve = New wxTextCtrl(levelParamsWnd, -1, L"0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textCurveV = New wxStaticText(levelParamsWnd, -1, L"CurveV"); mTextCurveV = New wxTextCtrl(levelParamsWnd, -1, L"0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textCurveBack = New wxStaticText(levelParamsWnd, -1, L"CurveBack"); mTextCurveBack = New wxTextCtrl(levelParamsWnd, -1, L"0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textSegSplits = New wxStaticText(levelParamsWnd, -1, L"SegSplits"); mTextSegSplits = New wxTextCtrl(levelParamsWnd, -1, L"0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textSplitAngle = New wxStaticText(levelParamsWnd, -1, L"SplitAngle"); mTextSplitAngle = New wxTextCtrl(levelParamsWnd, -1, L"0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textSplitAngleV = New wxStaticText(levelParamsWnd, -1, L"SplitAngleV"); mTextSplitAngleV = New wxTextCtrl(levelParamsWnd, -1, L"0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textBranches = New wxStaticText(levelParamsWnd, -1, L"Branches"); mSpinBranches = New wxSpinCtrl(levelParamsWnd, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 0); wxStaticText* textDownAngle = New wxStaticText(levelParamsWnd, -1, L"DownAngle"); mTextDownAngle = New wxTextCtrl(levelParamsWnd, -1, L"0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textDownAngleV = New wxStaticText(levelParamsWnd, -1, L"DownAngleV"); mTextDownAngleV = New wxTextCtrl(levelParamsWnd, -1, L"0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textRotateAngle = New wxStaticText(levelParamsWnd, -1, L"RotateAngle"); mTextRotateAngle = New wxTextCtrl(levelParamsWnd, -1, L"0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); wxStaticText* textRotateAngleV = New wxStaticText(levelParamsWnd, -1, L"RotateAngleV"); mTextRotateAngleV = New wxTextCtrl(levelParamsWnd, -1, L"0", wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_NUMERIC)); fgSizer2->Add(textLevel, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mChoiceLevel, 0, wxALL | wxALIGN_CENTER_VERTICAL | wxEXPAND, 5); fgSizer2->Add(textSegSegsW, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mSpinSegSegsW, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textSegSegsH, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mSpinSegSegsH, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textLength, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mTextLength, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textLengthV, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mTextLengthV, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textTaper, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mTextTaper, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textCurveRes, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mSpinCurveRes, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textCurve, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mTextCurve, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textCurveV, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mTextCurveV, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textCurveBack, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mTextCurveBack, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textSegSplits, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mTextSegSplits, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textSplitAngle, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mTextSplitAngle, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textSplitAngleV, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mTextSplitAngleV, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textBranches, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mSpinBranches, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textDownAngle, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mTextDownAngle, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textDownAngleV, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mTextDownAngleV, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textRotateAngle, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mTextRotateAngle, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(textRotateAngleV, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); fgSizer2->Add(mTextRotateAngleV, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5); levelParamsWnd->SetSizer(fgSizer2); levelParamsWnd->Layout(); levelParamsWnd->Fit(); // button mButtonGenerate = New wxButton(mCtrlsPanel, ID_BUTTON_GENERATE, L"Generate"); boxSizer2->Add(mPanelGeneralParams, 0, wxALL, 5); boxSizer2->Add(mPanelLevelParmas0, 0, wxALL, 5); boxSizer2->Add(mButtonGenerate, 0, wxALL, 5); mCtrlsPanel->SetSizer(boxSizer2); mCtrlsPanel->SetMinSize(wxSize(240, 600)); mCtrlsPanel->FitInside(); mCtrlsPanel->Layout(); // right mCanvasPanel = New wxPanel(this, -1); mCanvasPanel->SetMinSize(wxSize(480, 600)); boxSizer1->Add(mCtrlsPanel, 0, wxALL, 5); boxSizer1->Add(mCanvasPanel, 0, wxALL, 5); this->SetSizer(boxSizer1); this->Layout(); this->Fit(); mSpinLevels->Connect(wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler(TreeGeneratorFrame::OnSpinLevels), NULL, this); mChoiceLevel->Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(TreeGeneratorFrame::OnChoiceLevel), NULL, this); }
HistoryWindow::HistoryWindow(AudacityProject *parent, UndoManager *manager): wxDialogWrapper((wxWindow*)parent, wxID_ANY, wxString(_("History")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER ) { SetName(GetTitle()); mManager = manager; mProject = parent; mSelected = 0; mAudioIOBusy = false; auto imageList = std::make_unique<wxImageList>(9, 16); imageList->Add(wxIcon(empty9x16_xpm)); imageList->Add(wxIcon(arrow_xpm)); //------------------------- Main section -------------------- // Construct the GUI. ShuttleGui S(this, eIsCreating); S.SetBorder(5); S.StartVerticalLay(true); { S.StartStatic(_("&Manage History"), 1); { mList = S.AddListControlReportMode(); // Do this BEFORE inserting the columns. On the Mac at least, the // columns are deleted and later InsertItem()s will cause Audacity to crash. mList->SetSingleStyle(wxLC_SINGLE_SEL); mList->InsertColumn(0, _("Action"), wxLIST_FORMAT_LEFT, 300); mList->InsertColumn(1, _("Size"), wxLIST_FORMAT_LEFT, 85); //Assign rather than set the image list, so that it is deleted later. // AssignImageList takes ownership mList->AssignImageList(imageList.release(), wxIMAGE_LIST_SMALL); S.StartMultiColumn(3, wxCENTRE); { // FIXME: Textbox labels have inconsistent capitalization mTotal = S.Id(ID_TOTAL).AddTextBox(_("&Total space used"), wxT("0"), 10); mTotal->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(HistoryWindow::OnChar)); S.AddVariableText(wxT(""))->Hide(); mAvail = S.Id(ID_AVAIL).AddTextBox(_("&Undo Levels Available"), wxT("0"), 10); mAvail->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(HistoryWindow::OnChar)); S.AddVariableText(wxT(""))->Hide(); S.AddPrompt(_("&Levels To Discard")); mLevels = safenew wxSpinCtrl(this, ID_LEVELS, wxT("1"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, mManager->GetCurrentState() - 1, 0); S.AddWindow(mLevels); /* i18n-hint: (verb)*/ mDiscard = S.Id(ID_DISCARD).AddButton(_("&Discard")); mClipboard = S.AddTextBox(_("Clipboard space used"), wxT("0"), 10); mClipboard->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(HistoryWindow::OnChar)); S.Id(ID_DISCARD_CLIPBOARD).AddButton(_("Discard")); } S.EndMultiColumn(); } S.EndStatic(); S.StartHorizontalLay(wxALIGN_RIGHT, false); { S.SetBorder(10); S.Id(wxID_OK).AddButton(_("&OK"))->SetDefault(); } S.EndHorizontalLay(); } S.EndVerticalLay(); // ----------------------- End of main section -------------- DoUpdate(); mList->SetMinSize(mList->GetSize()); Fit(); SetMinSize(GetSize()); mList->SetColumnWidth(0, mList->GetClientSize().x - mList->GetColumnWidth(1)); mList->SetTextColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)); wxTheApp->Connect(EVT_AUDIOIO_PLAYBACK, wxCommandEventHandler(HistoryWindow::OnAudioIO), NULL, this); wxTheApp->Connect(EVT_AUDIOIO_CAPTURE, wxCommandEventHandler(HistoryWindow::OnAudioIO), NULL, this); }