7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2024-11-22 10:55:01 +00:00
kicad/pcbnew/dialogs/dialog_create_array_base.h
John Beard 2391e5ecdc Pcbnew array: allow selecting the center point interactively
This involves recasting the array tool from the slightly
eccentric ARRAY_CREATOR class into a full-blown TOOL, which
allows it to usefuly store state asd the dialog hides. This
is modelled on the POSITION_RELATIVE_TOOL strategy.

The by-radius-and-point mechanism is removed entirely,
as it's very fiddly and hard to describe in the UI,
and what you probably really want to do is get your
item onto the circle with tools like "move exact",
and then define the circle origin (now using the picker
tool)

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16783
2024-10-28 22:01:14 +08:00

135 lines
4.3 KiB
C++

///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#pragma once
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class TEXT_CTRL_EVAL;
#include "dialog_shim.h"
#include <wx/string.h>
#include <wx/stattext.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/textctrl.h>
#include <wx/sizer.h>
#include <wx/statbox.h>
#include <wx/radiobut.h>
#include <wx/radiobox.h>
#include <wx/checkbox.h>
#include <wx/choice.h>
#include <wx/panel.h>
#include <wx/bitmap.h>
#include <wx/image.h>
#include <wx/icon.h>
#include <wx/button.h>
#include <wx/notebook.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
#define wxID_DIALOG_CREATE_ARRAY 10000
///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_CREATE_ARRAY_BASE
///////////////////////////////////////////////////////////////////////////////
class DIALOG_CREATE_ARRAY_BASE : public DIALOG_SHIM
{
private:
protected:
wxNotebook* m_gridTypeNotebook;
wxPanel* m_gridPanel;
wxStaticText* m_labelNx;
TEXT_CTRL_EVAL* m_entryNx;
wxStaticText* m_labelNy;
TEXT_CTRL_EVAL* m_entryNy;
wxStaticText* m_labelDx;
wxTextCtrl* m_entryDx;
wxStaticText* m_unitLabelDx;
wxStaticText* m_labelDy;
wxTextCtrl* m_entryDy;
wxStaticText* m_unitLabelDy;
wxStaticText* m_labelOffsetX;
wxTextCtrl* m_entryOffsetX;
wxStaticText* m_unitLabelOffsetX;
wxStaticText* m_labelOffsetY;
wxTextCtrl* m_entryOffsetY;
wxStaticText* m_unitLabelOffsetY;
wxStaticText* m_labelStagger;
TEXT_CTRL_EVAL* m_entryStagger;
wxRadioButton* m_staggerRows;
wxRadioButton* m_staggerCols;
wxRadioButton* m_rbItemsRemainInPlace;
wxRadioButton* m_rbCentreOnSource;
wxPanel* m_gridPadNumberingPanel;
wxBoxSizer* m_gridPadNumberingSizer;
wxRadioBox* m_radioBoxGridNumberingAxis;
wxCheckBox* m_checkBoxGridReverseNumbering;
wxRadioBox* m_rbGridStartNumberingOpt;
wxRadioBox* m_radioBoxGridNumberingScheme;
wxStaticText* m_labelPriAxisNumbering;
wxChoice* m_choicePriAxisNumbering;
wxStaticText* m_labelSecAxisNumbering;
wxChoice* m_choiceSecAxisNumbering;
wxStaticText* m_labelGridNumberingOffset;
wxTextCtrl* m_entryGridPriNumberingOffset;
wxTextCtrl* m_entryGridSecNumberingOffset;
wxStaticText* m_labelGridNumberingStep;
wxTextCtrl* m_entryGridPriNumberingStep;
wxTextCtrl* m_entryGridSecNumberingStep;
wxPanel* m_circularPanel;
wxStaticText* m_labelCentreX;
wxTextCtrl* m_entryCentreX;
wxStaticText* m_unitLabelCentreX;
wxStaticText* m_labelCentreY;
wxTextCtrl* m_entryCentreY;
wxStaticText* m_unitLabelCentreY;
wxButton* m_btnSelectCenterPoint;
wxButton* m_btnSelectCenterItem;
wxCheckBox* m_checkBoxFullCircle;
wxStaticText* m_labelCircAngle;
wxTextCtrl* m_entryCircAngle;
wxStaticText* m_unitLabelCircAngle;
wxStaticText* m_labelCircCount;
TEXT_CTRL_EVAL* m_entryCircCount;
wxCheckBox* m_entryRotateItemsCb;
wxPanel* m_circularPadNumberingPanel;
wxStaticBoxSizer* m_circPadNumberingSizer;
wxRadioBox* m_rbCircStartNumberingOpt;
wxStaticText* m_labelCircNumbering;
wxChoice* m_choiceCircNumbering;
wxStaticText* m_labelCircNumStart;
wxTextCtrl* m_entryCircNumberingStart;
wxStaticText* m_labelCircNumStep;
wxTextCtrl* m_entryCircNumberingStep;
wxPanel* m_footprintReannotatePanel;
wxRadioButton* m_radioBtnKeepRefs;
wxRadioButton* m_radioBtnUniqueRefs;
wxStdDialogButtonSizer* m_stdButtons;
wxButton* m_stdButtonsOK;
wxButton* m_stdButtonsCancel;
// Virtual event handlers, override them in your derived class
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
virtual void OnParameterChanged( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSelectCenterButton( wxCommandEvent& event ) { event.Skip(); }
public:
DIALOG_CREATE_ARRAY_BASE( wxWindow* parent, wxWindowID id = wxID_DIALOG_CREATE_ARRAY, const wxString& title = _("Create Array"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_CREATE_ARRAY_BASE();
};