void HeeksObjDlg::AddControlsAndCreate() { m_ignore_event_functions = true; wxBoxSizer *sizerMain = new wxBoxSizer(wxHORIZONTAL); // add left sizer wxBoxSizer *sizerLeft = new wxBoxSizer(wxVERTICAL); sizerMain->Add( sizerLeft, 0, wxALL, control_border ); // add left controls for(std::list<HControl>::iterator It = leftControls.begin(); It != leftControls.end(); It++) { HControl c = *It; c.AddToSizer(sizerLeft); } // add right sizer wxBoxSizer *sizerRight = new wxBoxSizer(wxVERTICAL); sizerMain->Add( sizerRight, 0, wxALL, control_border ); // add OK and Cancel to right side rightControls.push_back(MakeOkAndCancel(wxHORIZONTAL)); // add right controls for(std::list<HControl>::iterator It = rightControls.begin(); It != rightControls.end(); It++) { HControl c = *It; c.AddToSizer(sizerRight); } SetFromData(m_object); SetSizer( sizerMain ); sizerMain->SetSizeHints(this); sizerMain->Fit(this); m_ignore_event_functions = false; HeeksObjDlg::SetPicture(); }
COptionsDlg(wxWindow *parent):HDialog(parent) { m_ignore_event_functions = true; wxBoxSizer *sizerMain = new wxBoxSizer(wxVERTICAL); m_options_canvas = new COptionsCanvas(this); m_options_canvas->RefreshByRemovingAndAddingAll2(); m_options_canvas->SetSize(0, 0, 400, 300); sizerMain->Add( m_options_canvas, 0, wxALL, control_border ); // add OK and Cancel to bottom side wxBoxSizer *sizerOKCancel = MakeOkAndCancel(wxHORIZONTAL); sizerMain->Add( sizerOKCancel, 0, wxALL | wxALIGN_CENTER_HORIZONTAL, control_border ); SetSizer( sizerMain ); sizerMain->SetSizeHints(this); sizerMain->Fit(this); m_options_canvas->SetFocus(); m_ignore_event_functions = false; }
AngleAndPlaneDlg(wxWindow *parent, double angle, const double* axis, int axis_type, const double* pos, int *number_of_copies):HDialog(parent) { m_ignore_event_functions = true; m_axis_type = axis_type; wxBoxSizer *sizerMain = new wxBoxSizer(wxVERTICAL); if(number_of_copies) { AddLabelAndControl(sizerMain, _("number of copies"), txt_num_copies = new wxTextCtrl(this, wxID_ANY, wxString::Format(_T("%d"), *number_of_copies))); } wxBoxSizer *sizerPosAndAxis = new wxBoxSizer(wxHORIZONTAL); sizerMain->Add(sizerPosAndAxis, 0, wxGROW); if(pos) { wxBoxSizer *sizerPos = new wxBoxSizer(wxVERTICAL); sizerPosAndAxis->Add(sizerPos, 0, wxGROW); if(m_axis_type == 0)sizerPos->Add( new wxStaticText(this, wxID_ANY, _("Position to rotate about")), 0, wxEXPAND | wxALL, control_border ); else AddLabelAndControl(sizerPos, _("Position to rotate about"), new wxButton(this, ID_BUTTON_PICK, _("Select"))); AddLabelAndControl(sizerPos, _("X"), posx = new CLengthCtrl(this, ID_POSX)); AddLabelAndControl(sizerPos, _("Y"), posy = new CLengthCtrl(this, ID_POSY)); AddLabelAndControl(sizerPos, _("Z"), posz = new CLengthCtrl(this, ID_POSZ)); if(m_axis_type == 0)sizerPos->Add( new wxButton(this, ID_BUTTON_PICK, _("Select")), 0, wxEXPAND | wxALL, control_border ); posx->SetValue( pos[0] ); posy->SetValue( pos[1] ); posz->SetValue( pos[2] ); } if(axis) { // add picture m_picture = new PictureWindow(this, wxSize(150, 100)); wxBoxSizer *pictureSizer = new wxBoxSizer(wxHORIZONTAL); pictureSizer->Add(m_picture, 1, wxGROW); sizerMain->Add( pictureSizer, 0, wxALL, control_border ); wxBoxSizer *sizerPlane = new wxBoxSizer(wxVERTICAL); pictureSizer->Add(sizerPlane, 0, wxGROW); if(axis_type == 0) { // not standard axis wxBoxSizer *sizerAxis = new wxBoxSizer(wxVERTICAL); sizerPosAndAxis->Add(sizerAxis, 0, wxGROW); sizerAxis->Add( new wxStaticText(this, wxID_ANY, _("Axis to rotate about")), 0, wxEXPAND | wxALL, control_border ); AddLabelAndControl(sizerAxis, _("X"), vectorx = new CDoubleCtrl(this, ID_VECTORX)); AddLabelAndControl(sizerAxis, _("Y"), vectory = new CDoubleCtrl(this, ID_VECTORY)); AddLabelAndControl(sizerAxis, _("Z"), vectorz = new CDoubleCtrl(this, ID_VECTORZ)); sizerAxis->Add( new wxButton(this, ID_BUTTON_VECTOR_PICK, _("Select a line")), 0, wxEXPAND | wxALL, control_border ); vectorx->SetValue( axis[0] ); vectory->SetValue( axis[1] ); vectorz->SetValue( axis[2] ); } rbXy = new wxRadioButton( this, ID_RADIO1, _T("XY"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP ); rbXz = new wxRadioButton( this, ID_RADIO2, _T("XZ") ); rbYz = new wxRadioButton( this, ID_RADIO3, _T("YZ") ); rbOther = new wxRadioButton( this, ID_RADIO_OTHER, _T("Other") ); sizerPlane->Add( rbXy, 0, wxALL, control_border ); sizerPlane->Add( rbXz, 0, wxALL, control_border ); sizerPlane->Add( rbYz, 0, wxALL, control_border ); sizerPlane->Add( rbOther, 0, wxALL, control_border ); rbXy->SetValue( axis_type == 1 ); rbXz->SetValue( axis_type == 2 ); rbYz->SetValue( axis_type == 3 ); rbOther->SetValue( axis_type == 0 ); } else { rbXy = NULL; rbXz = NULL; rbYz = NULL; rbOther = NULL; } AddLabelAndControl(sizerMain, _("angle"), angle_ctrl = new CDoubleCtrl(this)); angle_ctrl->SetValue(angle); // add OK and Cancel to right side wxBoxSizer *sizerOKCancel = MakeOkAndCancel(wxHORIZONTAL); sizerMain->Add( sizerOKCancel, 0, wxALL | wxALIGN_RIGHT | wxALIGN_BOTTOM, control_border ); SetSizer( sizerMain ); sizerMain->SetSizeHints(this); sizerMain->Fit(this); if(number_of_copies)txt_num_copies->SetFocus(); else angle_ctrl->SetFocus(); SetPicture(); m_ignore_event_functions = false; }
CToolDlg::CToolDlg(wxWindow *parent, CTool* object) : HDialog(parent, wxID_ANY, wxString(_T("Tool Definition"))) { m_ignore_event_functions = true; wxBoxSizer *sizerMain = new wxBoxSizer(wxHORIZONTAL); // add left sizer wxBoxSizer *sizerLeft = new wxBoxSizer(wxVERTICAL); sizerMain->Add( sizerLeft, 0, wxALL, control_border ); // add right sizer wxBoxSizer *sizerRight = new wxBoxSizer(wxVERTICAL); sizerMain->Add( sizerRight, 0, wxALL, control_border ); // add picture to right side m_picture = new PictureWindow(this, wxSize(300, 200)); wxBoxSizer *pictureSizer = new wxBoxSizer(wxVERTICAL); pictureSizer->Add(m_picture, 1, wxGROW); sizerRight->Add( pictureSizer, 0, wxALL, control_border ); // add some of the controls to the right side // The following are for extrusion and should be hidden for all others wxString extrusionmaterials[] = {_("ABS Plastic"),_("PLA Plastic"),_("HDPE Plastic"),_("Other") }; AddLabelAndControl(sizerRight, _("Extrusion Material"),m_cmbExtrusionMaterial = new wxComboBox(this, ID_EXTRUSIONMATERIAL, _T(""), wxDefaultPosition, wxDefaultSize, 4, extrusionmaterials)); AddLabelAndControl(sizerRight, _("Feed Rate"),m_dblFeedRate = new CDoubleCtrl(this, ID_MAX_ADVANCE_PER_REVOLUTION)); AddLabelAndControl(sizerRight, _("Layer Height"),m_dblLayerHeight = new CDoubleCtrl(this, ID_MAX_ADVANCE_PER_REVOLUTION)); AddLabelAndControl(sizerRight, _("Width Over Thickness ratio"),m_dblWidthOverThickness = new CDoubleCtrl(this, ID_MAX_ADVANCE_PER_REVOLUTION)); AddLabelAndControl(sizerRight, _("Temperature"),m_dblTemperature = new CDoubleCtrl(this, ID_MAX_ADVANCE_PER_REVOLUTION)); AddLabelAndControl(sizerRight, _("Flow Rate"),m_dblFlowrate = new CDoubleCtrl(this, ID_MAX_ADVANCE_PER_REVOLUTION)); AddLabelAndControl(sizerRight, _("Filament Diameter"),m_dblFilamentDiameter = new CDoubleCtrl(this, ID_MAX_ADVANCE_PER_REVOLUTION)); AddLabelAndControl(sizerRight, _("Title"), m_txtTitle = new wxTextCtrl(this, ID_TITLE)); sizerRight->Add( m_chkVisible = new wxCheckBox( this, ID_VISIBLE, _("Visible") ), 0, wxALL, control_border ); // The following are for taps and should be hidden for all others AddLabelAndControl(sizerRight, _("Pitch"),m_dblPitch = new CDoubleCtrl(this, ID_PITCH)); wxString tapdirections[] = {_("right hand"),_("left hand") }; AddLabelAndControl(sizerRight, _("Tap direction"),m_cmbDirection = new wxComboBox(this, ID_DIRECTION, _T(""), wxDefaultPosition, wxDefaultSize, 2, tapdirections)); // add OK and Cancel to right side wxBoxSizer *sizerOKCancel = MakeOkAndCancel(wxHORIZONTAL); sizerRight->Add( sizerOKCancel, 0, wxALL | wxALIGN_RIGHT | wxALIGN_BOTTOM, control_border ); // add all the controls to the left side wxString title_choices[] = {_("Leave manually assigned title"), _("Automatically Generate Title")}; AddLabelAndControl(sizerLeft, _("Title Type"), m_cmbTitleType = new wxComboBox(this, ID_TITLE_TYPE, _T(""), wxDefaultPosition, wxDefaultSize, 2, title_choices)); wxString materials[] = {_("High Speed Steel"),_("Carbide") }; AddLabelAndControl(sizerLeft, _("Tool Material"), m_cmbMaterial = new wxComboBox(this, ID_MATERIAL, _T(""), wxDefaultPosition, wxDefaultSize, 2, materials)); wxString tool_types[] = {_("Drill Bit"), _("Centre Drill Bit"), _("End Mill"), _("Slot Cutter"), _("Ball End Mill"), _("Chamfer"), _("Turning Tool"), _("Touch Probe"), _("Tool Length Switch"), _("Extrusion"),_("Tap Tool")}; AddLabelAndControl(sizerLeft, _("Tool Type"), m_cmbToolType = new wxComboBox(this, ID_TOOL_TYPE, _T(""), wxDefaultPosition, wxDefaultSize, 11, tool_types)); AddLabelAndControl(sizerLeft, _("Max advance per revolution"), m_dblMaxAdvancePerRevolution = new CDoubleCtrl(this, ID_MAX_ADVANCE_PER_REVOLUTION)); AddLabelAndControl(sizerLeft, _("Diameter"), m_dblDiameter = new CDoubleCtrl(this, ID_DIAMETER)); AddLabelAndControl(sizerLeft, _("Tool length offset"), m_dblToolLengthOffset = new CDoubleCtrl(this, ID_TOOL_LENGTH_OFFSET)); AddLabelAndControl(sizerLeft, _("Flat radius"), m_dblFlatRadius = new CDoubleCtrl(this, ID_FLAT_RADIUS)); AddLabelAndControl(sizerLeft, _("Corner radius"), m_dblCornerRadius = new CDoubleCtrl(this, ID_CORNER_RADIUS)); AddLabelAndControl(sizerLeft, _("Cutting edge angle"), m_dblCuttingEdgeAngle = new CDoubleCtrl(this, ID_CUTTING_EDGE_ANGLE)); AddLabelAndControl(sizerLeft, _("Cutting edge height"), m_dblCuttingEdgeHeight = new CDoubleCtrl(this, ID_CUTTING_EDGE_HEIGHT)); AddLabelAndControl(sizerLeft, _("gradient"), m_dblGradient = new CDoubleCtrl(this, ID_GRADIENT)); // The following are all for lathe tools and should be hidden for all others AddLabelAndControl(sizerLeft, _("X Offset"),m_dblXOffset = new CDoubleCtrl(this, ID_MAX_ADVANCE_PER_REVOLUTION)); AddLabelAndControl(sizerLeft, _("Front Angle"),m_dblFrontAngle = new CDoubleCtrl(this, ID_MAX_ADVANCE_PER_REVOLUTION)); AddLabelAndControl(sizerLeft, _("Tool Angle"),m_dblToolAngle = new CDoubleCtrl(this, ID_MAX_ADVANCE_PER_REVOLUTION)); AddLabelAndControl(sizerLeft, _("Back Angle"),m_dblBackAngle = new CDoubleCtrl(this, ID_MAX_ADVANCE_PER_REVOLUTION)); AddLabelAndControl(sizerLeft, _("Orientation"),m_lgthorientation = new CLengthCtrl(this, ID_MAX_ADVANCE_PER_REVOLUTION)); // The following are for probe tools and should be hidden for all others AddLabelAndControl(sizerLeft, _("Probe Offset X"),m_dblProbeOffsetX = new CDoubleCtrl(this, ID_MAX_ADVANCE_PER_REVOLUTION)); AddLabelAndControl(sizerLeft, _("Probe Offset Y"),m_dblProbeOffsetY = new CDoubleCtrl(this, ID_MAX_ADVANCE_PER_REVOLUTION)); SetFromData(object); SetSizer( sizerMain ); sizerMain->SetSizeHints(this); sizerMain->Fit(this); m_cmbTitleType->SetFocus(); m_ignore_event_functions = false; SetPicture(); }