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