36 changed files with 6520 additions and 2729 deletions
-
3common/common.cpp
-
20eeschema/schematic_undo_redo.cpp
-
2include/base_struct.h
-
7include/wxBasePcbFrame.h
-
6include/wxPcbStruct.h
-
BINinternat/fr/kicad.mo
-
3206internat/fr/kicad.po
-
5pcbnew/CMakeLists.txt
-
12pcbnew/board_undo_redo.cpp
-
31pcbnew/class_text_mod.cpp
-
860pcbnew/dialog_edit_module.cpp
-
99pcbnew/dialog_edit_module.h
-
525pcbnew/dialog_edit_module_for_BoardEditor.cpp
-
51pcbnew/dialog_edit_module_for_BoardEditor.h
-
221pcbnew/dialog_edit_module_for_BoardEditor_base.cpp
-
1765pcbnew/dialog_edit_module_for_BoardEditor_base.fbp
-
107pcbnew/dialog_edit_module_for_BoardEditor_base.h
-
371pcbnew/dialog_edit_module_for_Modedit.cpp
-
52pcbnew/dialog_edit_module_for_Modedit.h
-
183pcbnew/dialog_edit_module_for_Modedit_base.cpp
-
1345pcbnew/dialog_edit_module_for_Modedit_base.fbp
-
93pcbnew/dialog_edit_module_for_Modedit_base.h
-
27pcbnew/dialog_edit_module_text.cpp
-
23pcbnew/dialog_graphic_item_properties.cpp
-
2pcbnew/dialog_graphic_item_properties_base.cpp
-
4pcbnew/dialog_graphic_item_properties_base.fbp
-
3pcbnew/dialog_graphic_item_properties_base.h
-
7pcbnew/edit.cpp
-
30pcbnew/editedge.cpp
-
58pcbnew/editmod.cpp
-
54pcbnew/edtxtmod.cpp
-
2pcbnew/mirepcb.cpp
-
22pcbnew/modedit.cpp
-
14pcbnew/modedit_onclick.cpp
-
2pcbnew/onleftclick.cpp
-
37pcbnew/onrightclick.cpp
3206
internat/fr/kicad.po
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,860 +0,0 @@ |
|||
/************************************************/ |
|||
/* Module editor: Dialog box for editing module */ |
|||
/* properties and carateristics */ |
|||
/* include in modedit.cpp */ |
|||
/************************************************/ |
|||
|
|||
#include "fctsys.h"
|
|||
#include "common.h"
|
|||
#include "class_drawpanel.h"
|
|||
#include "confirm.h"
|
|||
#include "pcbnew.h"
|
|||
#include "bitmaps.h"
|
|||
#include "appl_wxstruct.h"
|
|||
#include "gestfich.h"
|
|||
#include "3d_struct.h"
|
|||
#include "3d_viewer.h"
|
|||
#include "wxPcbStruct.h"
|
|||
#include "dialog_edit_module.h"
|
|||
|
|||
extern bool GoToEditor; |
|||
|
|||
/**************************************/ |
|||
/* class WinEDA_ModulePropertiesFrame */ |
|||
/**************************************/ |
|||
|
|||
BEGIN_EVENT_TABLE( WinEDA_ModulePropertiesFrame, wxDialog ) |
|||
EVT_BUTTON( wxID_OK, WinEDA_ModulePropertiesFrame::OnOkClick ) |
|||
EVT_BUTTON( wxID_CANCEL, WinEDA_ModulePropertiesFrame::OnCancelClick ) |
|||
EVT_BUTTON( ID_MODULE_EDIT_ADD_TEXT, WinEDA_ModulePropertiesFrame::CreateTextModule ) |
|||
EVT_BUTTON( ID_MODULE_EDIT_EDIT_TEXT, WinEDA_ModulePropertiesFrame::EditOrDelTextModule ) |
|||
EVT_BUTTON( ID_MODULE_EDIT_DELETE_TEXT, WinEDA_ModulePropertiesFrame::EditOrDelTextModule ) |
|||
EVT_BUTTON( ID_MODULE_PROPERTIES_EXCHANGE, WinEDA_ModulePropertiesFrame::ExchangeModule ) |
|||
EVT_KICAD_CHOICEBOX( ID_MODULE_LISTBOX_SELECT, WinEDA_ModulePropertiesFrame::SelectTextListBox ) |
|||
EVT_RADIOBOX( ID_LISTBOX_ORIENT_SELECT, WinEDA_ModulePropertiesFrame::ModuleOrientEvent ) |
|||
EVT_BUTTON( ID_GOTO_MODULE_EDITOR, WinEDA_ModulePropertiesFrame::GotoModuleEditor ) |
|||
END_EVENT_TABLE() |
|||
|
|||
/**********************/ |
|||
/* class Panel3D_Ctrl */ |
|||
/**********************/ |
|||
BEGIN_EVENT_TABLE( Panel3D_Ctrl, wxPanel ) |
|||
EVT_BUTTON( ID_BROWSE_3D_LIB, Panel3D_Ctrl::Browse3DLib ) |
|||
EVT_BUTTON( ID_ADD_3D_SHAPE, Panel3D_Ctrl::AddOrRemove3DShape ) |
|||
EVT_BUTTON( ID_REMOVE_3D_SHAPE, Panel3D_Ctrl::AddOrRemove3DShape ) |
|||
END_EVENT_TABLE() |
|||
|
|||
|
|||
/**************************************************************************************/ |
|||
WinEDA_ModulePropertiesFrame::WinEDA_ModulePropertiesFrame( WinEDA_BasePcbFrame* parent, |
|||
MODULE* Module, wxDC* DC ) : |
|||
wxDialog( parent, -1, _( "Module properties" ), wxDefaultPosition, wxDefaultSize, DIALOG_STYLE ) |
|||
/**************************************************************************************/ |
|||
{ |
|||
wxString number; |
|||
|
|||
SetIcon( wxICON( icon_modedit ) ); // Give an icon
|
|||
|
|||
m_Parent = parent; |
|||
m_DC = DC; |
|||
|
|||
m_LayerCtrl = NULL; |
|||
m_OrientCtrl = NULL; |
|||
m_OrientValue = NULL; |
|||
m_Doc = m_Keyword = NULL; |
|||
|
|||
m_CurrentModule = Module; |
|||
m_DeleteFieddButton = NULL; |
|||
|
|||
if( m_CurrentModule ) |
|||
{ |
|||
} |
|||
|
|||
CreateControls(); |
|||
|
|||
GetSizer()->Fit( this ); |
|||
GetSizer()->SetSizeHints( this ); |
|||
Centre(); |
|||
} |
|||
|
|||
|
|||
/*****************************************************/ |
|||
void WinEDA_ModulePropertiesFrame::CreateControls() |
|||
/*****************************************************/ |
|||
{ |
|||
wxPoint pos; |
|||
wxButton* Button; |
|||
bool FullOptions = FALSE; |
|||
|
|||
if( m_Parent->m_Ident == PCB_FRAME ) |
|||
FullOptions = TRUE; |
|||
|
|||
m_GeneralBoxSizer = new wxBoxSizer( wxVERTICAL ); |
|||
SetSizer( m_GeneralBoxSizer ); |
|||
|
|||
m_NoteBook = new wxNotebook( this, ID_NOTEBOOK ); |
|||
m_GeneralBoxSizer->Add( m_NoteBook, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
// Add panels
|
|||
m_PanelProperties = new wxPanel( m_NoteBook, -1 ); |
|||
m_PanelPropertiesBoxSizer = new wxBoxSizer( wxHORIZONTAL ); |
|||
m_PanelProperties->SetSizer( m_PanelPropertiesBoxSizer ); |
|||
BuildPanelModuleProperties( FullOptions ); |
|||
m_NoteBook->AddPage( m_PanelProperties, _( "Properties" ), TRUE ); |
|||
|
|||
m_Panel3D = new Panel3D_Ctrl( this, m_NoteBook, -1, |
|||
m_CurrentModule->m_3D_Drawings ); |
|||
m_NoteBook->AddPage( m_Panel3D, _( "3D settings" ), FALSE ); |
|||
|
|||
/* creation des autres formes 3D */ |
|||
Panel3D_Ctrl* panel3D = m_Panel3D, * nextpanel3D; |
|||
S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings; |
|||
if( draw3D ) |
|||
{ |
|||
draw3D = (S3D_MASTER*) draw3D->Next(); |
|||
for( ; draw3D != NULL; draw3D = (S3D_MASTER*) draw3D->Next() ) |
|||
{ |
|||
nextpanel3D = new Panel3D_Ctrl( this, m_NoteBook, -1, draw3D ); |
|||
m_NoteBook->AddPage( nextpanel3D, _( "3D settings" ), FALSE ); |
|||
panel3D->m_Pnext = nextpanel3D; |
|||
nextpanel3D->m_Pback = panel3D; |
|||
panel3D = nextpanel3D; |
|||
} |
|||
} |
|||
|
|||
/* Creation des boutons de commande */ |
|||
wxBoxSizer* ButtonsBoxSizer = new wxBoxSizer( wxHORIZONTAL ); |
|||
m_GeneralBoxSizer->Add( ButtonsBoxSizer, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 5 ); |
|||
|
|||
Button = new wxButton( this, wxID_OK, _( "OK" ) ); |
|||
ButtonsBoxSizer->Add( Button, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); |
|||
|
|||
Button = new wxButton( this, wxID_CANCEL, _( "Cancel" ) ); |
|||
ButtonsBoxSizer->Add( Button, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); |
|||
} |
|||
|
|||
|
|||
/***********************************************************/ |
|||
void Panel3D_Ctrl::AddOrRemove3DShape( wxCommandEvent& event ) |
|||
/***********************************************************/ |
|||
{ |
|||
if( event.GetId() == ID_ADD_3D_SHAPE ) |
|||
{ |
|||
Panel3D_Ctrl* panel3D = new Panel3D_Ctrl( m_ParentFrame, m_Parent, |
|||
-1, NULL ); |
|||
m_Parent->InsertPage( m_Parent->GetSelection() + 1, |
|||
panel3D, _( "3D settings" ), TRUE ); |
|||
panel3D->m_Pback = this; |
|||
panel3D->m_Pnext = m_Pnext; |
|||
if( m_Pnext ) |
|||
m_Pnext->m_Pback = panel3D; |
|||
m_Pnext = panel3D; |
|||
} |
|||
|
|||
if( event.GetId() == ID_REMOVE_3D_SHAPE ) |
|||
{ |
|||
if( m_Pback ) |
|||
{ |
|||
m_Pback->m_Pnext = m_Pnext; |
|||
if( m_Pnext ) |
|||
m_Pnext->m_Pback = m_Pback; |
|||
m_Parent->DeletePage( m_Parent->GetSelection() ); |
|||
m_ParentFrame->Refresh( TRUE ); |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
/***************************************************************************/ |
|||
void WinEDA_ModulePropertiesFrame::BuildPanelModuleProperties( bool FullOptions ) |
|||
/***************************************************************************/ |
|||
|
|||
/* creation du panel d'edition des proprietes du module
|
|||
*/ |
|||
{ |
|||
wxButton* Button; |
|||
wxStaticText* StaticText; |
|||
wxBoxSizer* PropLeftSizer; |
|||
wxBoxSizer* PropRightSizer; |
|||
wxString msg; |
|||
|
|||
m_ModPositionX = NULL; |
|||
m_ModPositionY = NULL; |
|||
|
|||
/* Create a sizer for controls in the left column */ |
|||
PropLeftSizer = new wxBoxSizer( wxVERTICAL ); |
|||
m_PanelPropertiesBoxSizer->Add( PropLeftSizer, 0, wxGROW | wxALL, 5 ); |
|||
/* Create a sizer for controls in the right column */ |
|||
PropRightSizer = new wxBoxSizer( wxVERTICAL ); |
|||
m_PanelPropertiesBoxSizer->Add( PropRightSizer, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
if( FullOptions ) // Module is on a board
|
|||
{ |
|||
wxStaticText* XPositionStatic = new wxStaticText(m_PanelProperties, -1, _("X")); |
|||
wxStaticText* YPositionStatic = new wxStaticText(m_PanelProperties, -1, _("Y")); |
|||
Button = new wxButton( m_PanelProperties, ID_MODULE_PROPERTIES_EXCHANGE, |
|||
_( "Change module(s)" ) ); |
|||
PropRightSizer->Add( Button, 0, wxGROW | wxALL, 5 ); |
|||
Button = new wxButton( m_PanelProperties, ID_GOTO_MODULE_EDITOR, |
|||
_( "Edit Module" ) ); |
|||
PropRightSizer->Add( Button, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
wxStaticBox* positionBox = new wxStaticBox(m_PanelProperties, -1, _("Position") ); |
|||
wxStaticBoxSizer* positionBoxSizer = new wxStaticBoxSizer( positionBox, wxVERTICAL ); |
|||
PropRightSizer->Add(positionBoxSizer, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
m_ModPositionX = new wxTextCtrl( m_PanelProperties, ID_MODULE_EDIT_X_POSITION, wxT(""), |
|||
wxDefaultPosition, wxDefaultSize, 0, |
|||
wxTextValidator(wxFILTER_NUMERIC, NULL), wxTextCtrlNameStr); |
|||
|
|||
PutValueInLocalUnits( *m_ModPositionX, m_CurrentModule->GetPosition().x, PCB_INTERNAL_UNIT ); |
|||
AddUnitSymbol( *XPositionStatic, g_UnitMetric ); |
|||
positionBoxSizer->Add( XPositionStatic, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 ); |
|||
positionBoxSizer->Add( m_ModPositionX, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); |
|||
|
|||
m_ModPositionY = new wxTextCtrl( m_PanelProperties, ID_MODULE_EDIT_Y_POSITION, |
|||
wxT(""), wxDefaultPosition, wxDefaultSize, 0, |
|||
wxTextValidator(wxFILTER_NUMERIC, NULL), wxTextCtrlNameStr); |
|||
|
|||
PutValueInLocalUnits( *m_ModPositionY, m_CurrentModule->GetPosition().y, PCB_INTERNAL_UNIT ); |
|||
AddUnitSymbol( *YPositionStatic, g_UnitMetric ); |
|||
positionBoxSizer->Add( YPositionStatic, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 ); |
|||
positionBoxSizer->Add( m_ModPositionY, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); |
|||
} |
|||
else // Module is edited in libedit
|
|||
{ |
|||
StaticText = new wxStaticText( m_PanelProperties, wxID_STATIC, _( |
|||
"Doc" ), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
PropLeftSizer->Add( StaticText, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 5 ); |
|||
m_Doc = new wxTextCtrl( m_PanelProperties, -1, |
|||
m_CurrentModule->m_Doc ); |
|||
PropLeftSizer->Add( m_Doc, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); |
|||
|
|||
StaticText = new wxStaticText( m_PanelProperties, wxID_STATIC, _( |
|||
"Keywords" ), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
PropLeftSizer->Add( StaticText, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 5 ); |
|||
m_Keyword = new wxTextCtrl( m_PanelProperties, -1, |
|||
m_CurrentModule->m_KeyWord ); |
|||
PropLeftSizer->Add( m_Keyword, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); |
|||
} |
|||
|
|||
wxStaticBox* box = new wxStaticBox( m_PanelProperties, -1, _( "Fields:" ) ); |
|||
m_TextListBox = new WinEDAChoiceBox( m_PanelProperties, ID_MODULE_LISTBOX_SELECT ); |
|||
ReCreateFieldListBox(); |
|||
m_TextListBox->SetSelection( 0 ); |
|||
|
|||
wxStaticBoxSizer* StaticBoxSizer = new wxStaticBoxSizer( box, wxVERTICAL ); |
|||
PropLeftSizer->Add( StaticBoxSizer, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 5 ); |
|||
StaticBoxSizer->Add( m_TextListBox, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
Button = new wxButton( m_PanelProperties, ID_MODULE_EDIT_ADD_TEXT, |
|||
_( "Add Field" ) ); |
|||
StaticBoxSizer->Add( Button, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 ); |
|||
|
|||
Button = new wxButton( m_PanelProperties, ID_MODULE_EDIT_EDIT_TEXT, |
|||
_( "Edit Field" ) ); |
|||
StaticBoxSizer->Add( Button, 0, wxGROW | wxLEFT | wxRIGHT, 5 ); |
|||
|
|||
m_DeleteFieddButton = Button = new wxButton( m_PanelProperties, ID_MODULE_EDIT_DELETE_TEXT, |
|||
_( "Delete Field" ) ); |
|||
m_DeleteFieddButton->Enable( FALSE ); // Enable pour fields autres que ref et valeur
|
|||
StaticBoxSizer->Add( Button, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); |
|||
|
|||
if( FullOptions ) |
|||
{ |
|||
wxString layer_list[2] = { _( "Component" ), _( "Copper" ) }; |
|||
m_LayerCtrl = new wxRadioBox( m_PanelProperties, -1, _( "Layer" ), wxDefaultPosition, |
|||
wxSize( -1, -1 ), 2, layer_list, 1 ); |
|||
m_LayerCtrl->SetSelection( (m_CurrentModule->GetLayer() == COPPER_LAYER_N) ? 1 : 0 ); |
|||
PropLeftSizer->Add( m_LayerCtrl, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
bool select = FALSE; |
|||
|
|||
wxString orient_list[5] = { |
|||
_( "Normal" ), wxT( "+ 90.0" ), wxT( "- 90.0" ), wxT( "180.0" ), _( "User" ) |
|||
}; |
|||
|
|||
m_OrientCtrl = new wxRadioBox( m_PanelProperties, ID_LISTBOX_ORIENT_SELECT, _( "Orient" ), |
|||
wxDefaultPosition, wxSize( -1, -1 ), 5, orient_list, 1 ); |
|||
PropLeftSizer->Add( m_OrientCtrl, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
switch( m_CurrentModule->m_Orient ) |
|||
{ |
|||
case 0: |
|||
m_OrientCtrl->SetSelection( 0 ); |
|||
break; |
|||
|
|||
case 900: |
|||
case -2700: |
|||
m_OrientCtrl->SetSelection( 1 ); |
|||
break; |
|||
|
|||
case -900: |
|||
case 2700: |
|||
m_OrientCtrl->SetSelection( 2 ); |
|||
break; |
|||
|
|||
case -1800: |
|||
case 1800: |
|||
m_OrientCtrl->SetSelection( 3 ); |
|||
break; |
|||
|
|||
default: |
|||
m_OrientCtrl->SetSelection( 4 ); |
|||
select = TRUE; |
|||
break; |
|||
} |
|||
|
|||
StaticText = new wxStaticText( m_PanelProperties, |
|||
wxID_STATIC, _( |
|||
"Orientation (in 0.1 degrees)" ), wxDefaultPosition, wxDefaultSize, |
|||
0 ); |
|||
PropLeftSizer->Add( StaticText, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 5 ); |
|||
msg << m_CurrentModule->m_Orient; |
|||
m_OrientValue = new wxTextCtrl( m_PanelProperties, -1, msg ); |
|||
m_OrientValue->Enable( select ); |
|||
PropLeftSizer->Add( m_OrientValue, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); |
|||
} |
|||
|
|||
/* Controls on right side of the dialog */ |
|||
wxString attribut_list[3] = { _( "Normal" ), _( "Normal+Insert" ), _( "Virtual" ) }; |
|||
m_AttributsCtrl = new wxRadioBox( m_PanelProperties, -1, _( "Attributes" ), wxDefaultPosition, |
|||
wxSize( -1, -1 ), 3, attribut_list, 1 ); |
|||
#if wxCHECK_VERSION( 2, 8, 0 )
|
|||
m_AttributsCtrl->SetItemToolTip( 0, _( "Use this attribute for most non smd components" ) ); |
|||
m_AttributsCtrl->SetItemToolTip( 1, |
|||
_("Use this attribute for smd components.\nOnly components with this option are put in the footprint position list file")); |
|||
m_AttributsCtrl->SetItemToolTip( 2, |
|||
_("Use this attribute for \"virtual\" components drawn on board (like a old ISA PC bus connector)" )); |
|||
#endif
|
|||
PropRightSizer->Add( m_AttributsCtrl, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
switch( m_CurrentModule->m_Attributs & 255 ) |
|||
{ |
|||
case 0: |
|||
m_AttributsCtrl->SetSelection( 0 ); |
|||
break; |
|||
|
|||
case MOD_CMS: |
|||
m_AttributsCtrl->SetSelection( 1 ); |
|||
break; |
|||
|
|||
case MOD_VIRTUAL: |
|||
m_AttributsCtrl->SetSelection( 2 ); |
|||
break; |
|||
|
|||
default: |
|||
m_AttributsCtrl->SetSelection( 0 ); |
|||
break; |
|||
} |
|||
|
|||
|
|||
wxString properties_list[2] = { _( "Free" ), _( "Locked" ) }; |
|||
m_AutoPlaceCtrl = new wxRadioBox( m_PanelProperties, -1, _( |
|||
"Move and Auto Place" ), wxDefaultPosition, |
|||
wxSize( -1, -1 ), 2, properties_list, 1 ); |
|||
m_AutoPlaceCtrl->SetSelection( |
|||
(m_CurrentModule->m_ModuleStatus & MODULE_is_LOCKED) ? 1 : 0 ); |
|||
#if wxCHECK_VERSION( 2, 8, 0 )
|
|||
m_AutoPlaceCtrl->SetItemToolTip( 0, _( "Enable hotkey move commands and Auto Placement" ) ); |
|||
m_AutoPlaceCtrl->SetItemToolTip( 1, _( "Disable hotkey move commands and Auto Placement" ) ); |
|||
#endif
|
|||
PropRightSizer->Add( m_AutoPlaceCtrl, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
StaticText = new wxStaticText( m_PanelProperties, -1, _( "Rotation 90 degree" ) ); |
|||
PropRightSizer->Add( StaticText, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 5 ); |
|||
m_CostRot90Ctrl = new wxSlider( m_PanelProperties, -1, |
|||
m_CurrentModule->m_CntRot90, 0, 10, wxDefaultPosition, |
|||
wxSize( 100, -1 ), |
|||
wxSL_HORIZONTAL + wxSL_AUTOTICKS + wxSL_LABELS ); |
|||
PropRightSizer->Add( m_CostRot90Ctrl, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); |
|||
|
|||
StaticText = new wxStaticText( m_PanelProperties, -1, _( "Rotation 180 degree" ) ); |
|||
PropRightSizer->Add( StaticText, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 5 ); |
|||
m_CostRot180Ctrl = new wxSlider( m_PanelProperties, |
|||
-1, |
|||
m_CurrentModule->m_CntRot180, |
|||
0, |
|||
10, |
|||
wxDefaultPosition, |
|||
wxSize( 100, -1 ), |
|||
wxSL_HORIZONTAL + wxSL_AUTOTICKS + wxSL_LABELS ); |
|||
PropRightSizer->Add( m_CostRot180Ctrl, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); |
|||
} |
|||
|
|||
|
|||
/**************************************************************/ |
|||
Panel3D_Ctrl::Panel3D_Ctrl( WinEDA_ModulePropertiesFrame* parentframe, |
|||
wxNotebook* parent, |
|||
int id, S3D_MASTER* struct3D ) : |
|||
wxPanel( parent, id ) |
|||
/**************************************************************/ |
|||
|
|||
/* create the dialog panel managing 3D shape infos
|
|||
*/ |
|||
{ |
|||
wxButton* button; |
|||
S3D_Vertex dummy_vertex; |
|||
wxBoxSizer* PropLeftSizer; |
|||
wxBoxSizer* PropRightSizer; |
|||
|
|||
m_Pnext = m_Pback = NULL; |
|||
|
|||
m_Parent = parent; |
|||
m_ParentFrame = parentframe; |
|||
wxBoxSizer* Panel3DBoxSizer = new wxBoxSizer( wxVERTICAL ); |
|||
SetSizer( Panel3DBoxSizer ); |
|||
|
|||
wxStaticText* StaticText = new wxStaticText( this, wxID_STATIC, _( "3D Shape Name" ), |
|||
wxDefaultPosition, wxDefaultSize, 0 ); |
|||
Panel3DBoxSizer->Add( StaticText, 0, wxGROW | wxALL | wxADJUST_MINSIZE, 5 ); |
|||
m_3D_ShapeName = new wxTextCtrl( this, -1, _T( "" ), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
if( struct3D ) |
|||
m_3D_ShapeName->SetValue( struct3D->m_Shape3DName ); |
|||
Panel3DBoxSizer->Add( m_3D_ShapeName, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
wxBoxSizer* LowerBoxSizer = new wxBoxSizer( wxHORIZONTAL ); |
|||
Panel3DBoxSizer->Add( LowerBoxSizer, 0, wxGROW | wxALL, 5 ); |
|||
/* Create a sizer for controls in the left column */ |
|||
PropLeftSizer = new wxBoxSizer( wxVERTICAL ); |
|||
LowerBoxSizer->Add( PropLeftSizer, 0, wxGROW | wxALL, 5 ); |
|||
/* Create a sizer for controls in the right column */ |
|||
PropRightSizer = new wxBoxSizer( wxVERTICAL ); |
|||
LowerBoxSizer->Add( PropRightSizer, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
button = new wxButton( this, ID_BROWSE_3D_LIB, _( "Browse" ) ); |
|||
PropRightSizer->Add( button, 0, wxGROW | wxLEFT | wxRIGHT, 5 ); |
|||
|
|||
button = new wxButton( this, ID_ADD_3D_SHAPE, _( "Add 3D Shape" ) ); |
|||
PropRightSizer->Add( button, 0, wxGROW | wxLEFT | wxRIGHT, 5 ); |
|||
|
|||
if( (struct3D == NULL) || (struct3D->Back() != NULL) ) |
|||
{ |
|||
button = new wxButton( this, ID_REMOVE_3D_SHAPE, _( "Remove 3D Shape" ) ); |
|||
PropRightSizer->Add( button, 0, wxGROW | wxLEFT | wxRIGHT, 5 ); |
|||
} |
|||
|
|||
wxBoxSizer* BoxSizer = new wxBoxSizer( wxVERTICAL ); |
|||
m_3D_Scale = new WinEDA_VertexCtrl( this, _( "Shape Scale:" ), BoxSizer, |
|||
2, 1 ); |
|||
if( struct3D ) |
|||
m_3D_Scale->SetValue( struct3D->m_MatScale ); |
|||
PropLeftSizer->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
BoxSizer = new wxBoxSizer( wxVERTICAL ); |
|||
m_3D_Offset = new WinEDA_VertexCtrl( this, _( "Shape Offset:" ), BoxSizer, |
|||
2, 1 ); |
|||
if( struct3D ) |
|||
m_3D_Offset->SetValue( struct3D->m_MatPosition ); |
|||
else |
|||
m_3D_Offset->SetValue( dummy_vertex ); |
|||
PropLeftSizer->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
BoxSizer = new wxBoxSizer( wxVERTICAL ); |
|||
m_3D_Rotation = new WinEDA_VertexCtrl( this, _( "Shape Rotation:" ), BoxSizer, |
|||
2, 1 ); |
|||
if( struct3D ) |
|||
m_3D_Rotation->SetValue( struct3D->m_MatRotation ); |
|||
else |
|||
m_3D_Rotation->SetValue( dummy_vertex ); |
|||
PropLeftSizer->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
if( struct3D == NULL ) |
|||
{ |
|||
dummy_vertex.x = dummy_vertex.y = dummy_vertex.z = 1.0; |
|||
m_3D_Scale->SetValue( dummy_vertex ); |
|||
} |
|||
} |
|||
|
|||
|
|||
/********************************/ |
|||
Panel3D_Ctrl::~Panel3D_Ctrl() |
|||
/********************************/ |
|||
{ |
|||
delete m_3D_ShapeName; |
|||
delete m_3D_Scale; |
|||
delete m_3D_Offset; |
|||
delete m_3D_Rotation; |
|||
} |
|||
|
|||
|
|||
/***************************************************/ |
|||
void Panel3D_Ctrl::Browse3DLib( wxCommandEvent& event ) |
|||
/***************************************************/ |
|||
{ |
|||
wxString fullfilename, shortfilename; |
|||
wxString fullpath; |
|||
wxString mask = wxT( "*" ); |
|||
|
|||
fullpath = wxGetApp().ReturnLastVisitedLibraryPath(LIB3D_PATH); |
|||
mask += g_Shapes3DExtBuffer; |
|||
#ifdef __WINDOWS__
|
|||
fullpath.Replace( wxT( "/" ), wxT( "\\" ) ); |
|||
#endif
|
|||
fullfilename = EDA_FileSelector( _( "3D Shape:" ), |
|||
fullpath, /* Chemin par defaut */ |
|||
wxEmptyString, /* nom fichier par defaut */ |
|||
g_Shapes3DExtBuffer, /* extension par defaut */ |
|||
mask, /* Masque d'affichage */ |
|||
this, |
|||
wxFD_OPEN, |
|||
TRUE |
|||
); |
|||
|
|||
if( fullfilename == wxEmptyString ) |
|||
return; |
|||
|
|||
wxFileName fn = fullfilename; |
|||
wxGetApp().SaveLastVisitedLibraryPath( fn.GetPath() ); |
|||
|
|||
/* If the file path is already in the library search paths
|
|||
* list, just add the library name to the list. Otherwise, add |
|||
* the library name with the full or relative path. |
|||
* the relative path, when possible is preferable, |
|||
* because it preserve use of default libraries paths, when the path is a sub path of these default paths |
|||
*/ |
|||
shortfilename = wxGetApp().ReturnFilenameWithRelativePathInLibPath(fullfilename); |
|||
m_3D_ShapeName->SetValue( shortfilename ); |
|||
} |
|||
|
|||
|
|||
/**********************************************************************/ |
|||
void WinEDA_ModulePropertiesFrame::OnCancelClick( wxCommandEvent& WXUNUSED (event) ) |
|||
/**********************************************************************/ |
|||
{ |
|||
EndModal( -1 ); |
|||
} |
|||
|
|||
|
|||
/******************************************************************************/ |
|||
void WinEDA_ModulePropertiesFrame::OnOkClick( wxCommandEvent& event ) |
|||
/******************************************************************************/ |
|||
{ |
|||
bool change_layer = FALSE; |
|||
wxPoint modpos; |
|||
|
|||
if( m_CurrentModule->m_Flags == 0 ) // this is a simple edition, we must create an undo entry
|
|||
{ |
|||
if( m_Parent->m_Ident == PCB_FRAME ) |
|||
m_Parent->SaveCopyInUndoList( m_CurrentModule, UR_CHANGED ); |
|||
else |
|||
m_Parent->SaveCopyInUndoList( m_CurrentModule, UR_MODEDIT ); |
|||
} |
|||
|
|||
if( m_DC ) |
|||
{ |
|||
m_Parent->DrawPanel->CursorOff( m_DC ); |
|||
m_CurrentModule->Draw( m_Parent->DrawPanel, m_DC, GR_XOR ); |
|||
} |
|||
|
|||
// Set Module Position, if the dialog is called from the board editor
|
|||
// if the dialog is called from the footprint editor, do nothing because the footprint is always in position 0,0
|
|||
if ( m_ModPositionX && m_ModPositionY ) |
|||
{ |
|||
modpos.x = ReturnValueFromTextCtrl( *m_ModPositionX, PCB_INTERNAL_UNIT ); |
|||
modpos.y = ReturnValueFromTextCtrl( *m_ModPositionY, PCB_INTERNAL_UNIT ); |
|||
m_CurrentModule->SetPosition(modpos); |
|||
} |
|||
|
|||
if( m_OrientValue ) |
|||
{ |
|||
long orient = 0; wxString msg = m_OrientValue->GetValue(); |
|||
msg.ToLong( &orient ); |
|||
if( m_CurrentModule->m_Orient != orient ) |
|||
m_Parent->Rotate_Module( m_DC, m_CurrentModule, |
|||
orient, FALSE ); |
|||
} |
|||
|
|||
if( m_LayerCtrl ) |
|||
{ |
|||
if( m_LayerCtrl->GetSelection() == 0 ) // layer req = COMPONENT
|
|||
{ |
|||
if( m_CurrentModule->GetLayer() == COPPER_LAYER_N ) |
|||
change_layer = TRUE; |
|||
} |
|||
else if( m_CurrentModule->GetLayer() == CMP_N ) |
|||
change_layer = TRUE; |
|||
} |
|||
|
|||
if( change_layer ) |
|||
{ |
|||
((WinEDA_PcbFrame*)m_Parent)->Change_Side_Module( m_CurrentModule, m_DC ); |
|||
} |
|||
|
|||
if( m_AutoPlaceCtrl->GetSelection() == 1 ) |
|||
m_CurrentModule->m_ModuleStatus |= MODULE_is_LOCKED; |
|||
else |
|||
m_CurrentModule->m_ModuleStatus &= ~MODULE_is_LOCKED; |
|||
|
|||
switch( m_AttributsCtrl->GetSelection() ) |
|||
{ |
|||
case 0: |
|||
m_CurrentModule->m_Attributs = 0; |
|||
break; |
|||
|
|||
case 1: |
|||
m_CurrentModule->m_Attributs = MOD_CMS; |
|||
break; |
|||
|
|||
case 2: |
|||
m_CurrentModule->m_Attributs = MOD_VIRTUAL; |
|||
break; |
|||
} |
|||
|
|||
m_CurrentModule->m_CntRot90 = m_CostRot90Ctrl->GetValue(); |
|||
m_CurrentModule->m_CntRot180 = m_CostRot180Ctrl->GetValue(); |
|||
if( m_Doc ) |
|||
m_CurrentModule->m_Doc = m_Doc->GetValue(); |
|||
if( m_Keyword ) |
|||
m_CurrentModule->m_KeyWord = m_Keyword->GetValue(); |
|||
|
|||
/* Update 3D shape list */ |
|||
Panel3D_Ctrl* panel3D = m_Panel3D; |
|||
S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings; |
|||
for( ; panel3D != NULL; panel3D = panel3D->m_Pnext ) |
|||
{ |
|||
wxString name3D = panel3D->m_3D_ShapeName->GetValue();; |
|||
if( name3D.IsEmpty() ) |
|||
continue; |
|||
if( draw3D == NULL ) |
|||
{ |
|||
draw3D = new S3D_MASTER( draw3D ); |
|||
m_CurrentModule->m_3D_Drawings.Append( draw3D ); |
|||
} |
|||
|
|||
draw3D->m_Shape3DName = name3D; |
|||
draw3D->m_MatScale = panel3D->m_3D_Scale->GetValue(); |
|||
draw3D->m_MatRotation = panel3D->m_3D_Rotation->GetValue(); |
|||
draw3D->m_MatPosition = panel3D->m_3D_Offset->GetValue(); |
|||
|
|||
draw3D = (S3D_MASTER*) draw3D->Next(); |
|||
} |
|||
|
|||
// Remove old extra 3D shapes
|
|||
S3D_MASTER* nextdraw3D; |
|||
for( ; draw3D != NULL; draw3D = nextdraw3D ) |
|||
{ |
|||
nextdraw3D = (S3D_MASTER*) draw3D->Next(); |
|||
delete m_CurrentModule->m_3D_Drawings.Remove( draw3D ); |
|||
} |
|||
|
|||
// Fill shape list with one void entry, if no entry
|
|||
if( m_CurrentModule->m_3D_Drawings == NULL ) |
|||
m_CurrentModule->m_3D_Drawings.PushBack( new S3D_MASTER( m_CurrentModule ) ); |
|||
|
|||
|
|||
|
|||
m_CurrentModule->Set_Rectangle_Encadrement(); |
|||
|
|||
m_Parent->GetScreen()->SetModify(); |
|||
|
|||
EndModal( 1 ); |
|||
|
|||
if( m_DC ) |
|||
{ |
|||
m_CurrentModule->Draw( m_Parent->DrawPanel, m_DC, GR_OR ); |
|||
m_Parent->DrawPanel->CursorOn( m_DC ); |
|||
} |
|||
} |
|||
|
|||
|
|||
/************************************************************************/ |
|||
void WinEDA_ModulePropertiesFrame::GotoModuleEditor( wxCommandEvent& event ) |
|||
/************************************************************************/ |
|||
{ |
|||
GoToEditor = TRUE; |
|||
if( m_CurrentModule->m_TimeStamp == 0 ) // Module Editor needs a non null timestamp
|
|||
{ |
|||
m_CurrentModule->m_TimeStamp = GetTimeStamp(); |
|||
m_Parent->GetScreen()->SetModify(); |
|||
} |
|||
|
|||
Close( TRUE ); |
|||
} |
|||
|
|||
|
|||
/**********************************************************************/ |
|||
void WinEDA_ModulePropertiesFrame::ExchangeModule( wxCommandEvent& event ) |
|||
/**********************************************************************/ |
|||
{ |
|||
((WinEDA_PcbFrame*)m_Parent)->InstallExchangeModuleFrame( m_CurrentModule ); |
|||
|
|||
// Attention: si il y a eu echange, m_CurrentModule a été delete!
|
|||
m_Parent->SetCurItem( NULL ); |
|||
Close( TRUE ); |
|||
} |
|||
|
|||
|
|||
/*************************************************************************/ |
|||
void WinEDA_ModulePropertiesFrame::ModuleOrientEvent( wxCommandEvent& event ) |
|||
/*************************************************************************/ |
|||
{ |
|||
switch( m_OrientCtrl->GetSelection() ) |
|||
{ |
|||
case 0: |
|||
m_OrientValue->Enable( FALSE ); |
|||
m_OrientValue->SetValue( wxT( "0" ) ); |
|||
break; |
|||
|
|||
case 1: |
|||
m_OrientValue->Enable( FALSE ); |
|||
m_OrientValue->SetValue( wxT( "900" ) ); |
|||
break; |
|||
|
|||
case 2: |
|||
m_OrientValue->Enable( FALSE ); |
|||
m_OrientValue->SetValue( wxT( "2700" ) ); |
|||
break; |
|||
|
|||
case 3: |
|||
m_OrientValue->Enable( FALSE ); |
|||
m_OrientValue->SetValue( wxT( "1800" ) ); |
|||
break; |
|||
|
|||
default: |
|||
m_OrientValue->Enable( FALSE ); |
|||
m_OrientValue->Enable( TRUE ); |
|||
break; |
|||
} |
|||
} |
|||
|
|||
|
|||
/*************************************************************************/ |
|||
void WinEDA_ModulePropertiesFrame::SelectTextListBox( wxCommandEvent& event ) |
|||
/*************************************************************************/ |
|||
{ |
|||
SetTextListButtons(); |
|||
} |
|||
|
|||
|
|||
/*************************************************************************/ |
|||
void WinEDA_ModulePropertiesFrame::SetTextListButtons() |
|||
/*************************************************************************/ |
|||
{ |
|||
int choice = m_TextListBox->GetChoice(); |
|||
|
|||
if( m_DeleteFieddButton == NULL ) |
|||
return; |
|||
|
|||
if( choice > 1 ) // Texte autre que ref ou valeur selectionne
|
|||
{ |
|||
m_DeleteFieddButton->Enable( TRUE ); |
|||
} |
|||
else |
|||
m_DeleteFieddButton->Enable( FALSE ); |
|||
} |
|||
|
|||
|
|||
/***********************************************************/ |
|||
void WinEDA_ModulePropertiesFrame::ReCreateFieldListBox() |
|||
/***********************************************************/ |
|||
{ |
|||
m_TextListBox->Clear(); |
|||
|
|||
m_TextListBox->Append( m_CurrentModule->m_Reference->m_Text ); |
|||
m_TextListBox->Append( m_CurrentModule->m_Value->m_Text ); |
|||
|
|||
EDA_BaseStruct* item = m_CurrentModule->m_Drawings; |
|||
while( item ) |
|||
{ |
|||
if( item->Type() == TYPE_TEXTE_MODULE ) |
|||
m_TextListBox->Append( ( (TEXTE_MODULE*) item )->m_Text ); |
|||
item = item->Next(); |
|||
} |
|||
|
|||
SetTextListButtons(); |
|||
} |
|||
|
|||
|
|||
/************************************************************************/ |
|||
void WinEDA_ModulePropertiesFrame::CreateTextModule( wxCommandEvent& event ) |
|||
/************************************************************************/ |
|||
|
|||
/* Cree un nouveau texte sur le module actif
|
|||
* Le texte sera mis en fonction Move |
|||
*/ |
|||
{ |
|||
TEXTE_MODULE* Text; |
|||
|
|||
/* Creation de la place en memoire : */ |
|||
Text = m_Parent->CreateTextModule( m_CurrentModule, m_DC ); |
|||
|
|||
ReCreateFieldListBox(); |
|||
m_TextListBox->SetSelection( 2 ); |
|||
SetTextListButtons(); |
|||
} |
|||
|
|||
|
|||
/****************************************************************************/ |
|||
void WinEDA_ModulePropertiesFrame::EditOrDelTextModule( wxCommandEvent& event ) |
|||
/****************************************************************************/ |
|||
{ |
|||
int TextType = m_TextListBox->GetChoice(); |
|||
TEXTE_MODULE* Text = NULL; |
|||
|
|||
if( TextType < 0 ) |
|||
return; //No selection
|
|||
|
|||
|
|||
if( m_DC ) |
|||
m_Parent->DrawPanel->CursorOff( m_DC ); |
|||
|
|||
|
|||
// Get a pointer on the field
|
|||
if( TextType == 0 ) |
|||
Text = m_CurrentModule->m_Reference; |
|||
else if( TextType == 1 ) |
|||
Text = m_CurrentModule->m_Value; |
|||
else // Search the field 2 or more, because field 0 and 1 are ref and value
|
|||
{ |
|||
EDA_BaseStruct* item = m_CurrentModule->m_Drawings; |
|||
int jj = 2; |
|||
while( item ) |
|||
{ |
|||
if( item->Type() == TYPE_TEXTE_MODULE ) |
|||
{ |
|||
if( jj == TextType ) // Texte trouvé
|
|||
{ |
|||
Text = (TEXTE_MODULE*) item; |
|||
break; |
|||
} |
|||
} |
|||
item = item->Next(); jj++; |
|||
} |
|||
} |
|||
|
|||
if( Text ) |
|||
{ |
|||
if( event.GetId() == ID_MODULE_EDIT_DELETE_TEXT ) |
|||
{ |
|||
if( TextType < 2 ) // Ref or Value cannot be deleted
|
|||
{ |
|||
DisplayError( this, _( "Reference or Value cannot be deleted" ) ); |
|||
goto out; |
|||
} |
|||
wxString Line; |
|||
Line.Printf( _( "Delete [%s]" ), Text->m_Text.GetData() ); |
|||
if( !IsOK( this, Line ) ) |
|||
goto out; |
|||
m_Parent->DeleteTextModule( Text ); |
|||
ReCreateFieldListBox(); |
|||
m_TextListBox->SetSelection( 0 ); |
|||
} |
|||
else // Edition du champ
|
|||
{ |
|||
m_Parent->InstallTextModOptionsFrame( Text, m_DC, wxPoint( -1, -1 ) ); |
|||
ReCreateFieldListBox(); |
|||
m_TextListBox->SetSelection( TextType ); |
|||
} |
|||
} |
|||
else |
|||
DisplayError( this, |
|||
wxT( |
|||
"WinEDA_ModulePropertiesFrame::EditOrDelTextModule() error: Field not found" ) |
|||
); |
|||
|
|||
out: |
|||
if( m_DC ) |
|||
m_Parent->DrawPanel->CursorOn( m_DC ); |
|||
SetTextListButtons(); |
|||
} |
|||
@ -1,99 +0,0 @@ |
|||
/************************************************/ |
|||
/* Module editor: Dialog box for editing module */ |
|||
/* properties and carateristics */ |
|||
/************************************************/ |
|||
|
|||
enum id_Module_properties |
|||
{ |
|||
ID_GOTO_MODULE_EDITOR =1900, |
|||
ID_MODULE_PROPERTIES_EXCHANGE, |
|||
ID_MODULE_EDIT_ADD_TEXT, |
|||
ID_MODULE_EDIT_EDIT_TEXT, |
|||
ID_MODULE_EDIT_DELETE_TEXT, |
|||
ID_MODULE_LISTBOX_SELECT, |
|||
ID_LISTBOX_ORIENT_SELECT, |
|||
ID_BROWSE_3D_LIB, |
|||
ID_ADD_3D_SHAPE, |
|||
ID_REMOVE_3D_SHAPE, |
|||
ID_NOTEBOOK, |
|||
ID_MODULE_EDIT_X_POSITION, |
|||
ID_MODULE_EDIT_Y_POSITION |
|||
}; |
|||
|
|||
class Panel3D_Ctrl; |
|||
|
|||
/**************************************/ |
|||
/* class WinEDA_ModulePropertiesFrame */ |
|||
/**************************************/ |
|||
|
|||
class WinEDA_ModulePropertiesFrame: public wxDialog |
|||
{ |
|||
private: |
|||
|
|||
WinEDA_BasePcbFrame * m_Parent; |
|||
wxDC * m_DC; |
|||
MODULE * m_CurrentModule; |
|||
wxNotebook* m_NoteBook; |
|||
wxPanel * m_PanelProperties; |
|||
Panel3D_Ctrl * m_Panel3D; |
|||
WinEDAChoiceBox * m_TextListBox; |
|||
wxRadioBox * m_LayerCtrl; |
|||
wxRadioBox * m_OrientCtrl; |
|||
wxTextCtrl * m_OrientValue; |
|||
wxRadioBox * m_AttributsCtrl; |
|||
wxRadioBox * m_AutoPlaceCtrl; |
|||
wxSlider * m_CostRot90Ctrl, * m_CostRot180Ctrl; |
|||
wxButton * m_DeleteFieddButton; |
|||
wxTextCtrl *m_Doc, *m_Keyword; |
|||
wxBoxSizer * m_GeneralBoxSizer; |
|||
wxBoxSizer* m_PanelPropertiesBoxSizer; |
|||
wxTextCtrl *m_ModPositionX, *m_ModPositionY; |
|||
wxString *m_ModPosXStr, *m_ModPosYStr; |
|||
|
|||
|
|||
public: |
|||
// Constructor and destructor |
|||
WinEDA_ModulePropertiesFrame(WinEDA_BasePcbFrame *parent, |
|||
MODULE * Module, wxDC * DC); |
|||
~WinEDA_ModulePropertiesFrame() |
|||
{ |
|||
} |
|||
|
|||
private: |
|||
void CreateControls(); |
|||
void OnCancelClick(wxCommandEvent& event); |
|||
void OnOkClick(wxCommandEvent& event); |
|||
void CreateTextModule(wxCommandEvent& event); |
|||
void EditOrDelTextModule(wxCommandEvent& event); |
|||
void SelectTextListBox(wxCommandEvent& event); |
|||
void ReCreateFieldListBox(); |
|||
void SetTextListButtons(); |
|||
void BuildPanelModuleProperties(bool FullOptions); |
|||
void ModuleOrientEvent(wxCommandEvent& event); |
|||
void ExchangeModule(wxCommandEvent& event); |
|||
void GotoModuleEditor(wxCommandEvent& event); |
|||
DECLARE_EVENT_TABLE() |
|||
}; |
|||
|
|||
|
|||
/*********************************/ |
|||
class Panel3D_Ctrl: public wxPanel |
|||
/*********************************/ |
|||
/* panel d'entree des caract 3D */ |
|||
{ |
|||
public: |
|||
Panel3D_Ctrl * m_Pnext, * m_Pback; // Chainage |
|||
wxNotebook * m_Parent; |
|||
WinEDA_ModulePropertiesFrame * m_ParentFrame; |
|||
wxBoxSizer* m_Panel3DBoxSizer; |
|||
wxTextCtrl * m_3D_ShapeName; |
|||
WinEDA_VertexCtrl *m_3D_Scale, *m_3D_Offset, *m_3D_Rotation; |
|||
public: |
|||
Panel3D_Ctrl(WinEDA_ModulePropertiesFrame * parentframe, |
|||
wxNotebook * parent, int id, S3D_MASTER * struct3D); |
|||
~Panel3D_Ctrl(); |
|||
void Browse3DLib(wxCommandEvent& event); |
|||
void AddOrRemove3DShape(wxCommandEvent& event); |
|||
DECLARE_EVENT_TABLE() |
|||
}; |
|||
|
|||
@ -0,0 +1,525 @@ |
|||
/************************************************
|
|||
* Module editor: Dialog box for editing module |
|||
* properties for the Board Editor |
|||
************************************************/ |
|||
|
|||
#include "fctsys.h"
|
|||
#include "common.h"
|
|||
#include "class_drawpanel.h"
|
|||
#include "confirm.h"
|
|||
#include "pcbnew.h"
|
|||
#include "bitmaps.h"
|
|||
#include "appl_wxstruct.h"
|
|||
#include "gestfich.h"
|
|||
#include "3d_struct.h"
|
|||
#include "3d_viewer.h"
|
|||
#include "wxPcbStruct.h"
|
|||
#include "dialog_edit_module_for_BoardEditor.h"
|
|||
|
|||
|
|||
/**************************************************************************************/ |
|||
DIALOG_MODULE_BOARD_EDITOR::DIALOG_MODULE_BOARD_EDITOR( WinEDA_PcbFrame* aParent, |
|||
MODULE* aModule, wxDC* aDC ) : |
|||
DIALOG_MODULE_BOARD_EDITOR_BASE( aParent ) |
|||
/**************************************************************************************/ |
|||
{ |
|||
m_Parent = aParent; |
|||
m_DC = aDC; |
|||
m_CurrentModule = aModule; |
|||
|
|||
SetIcon( wxICON( icon_modedit ) ); // Give an icon
|
|||
|
|||
InitModeditProperties(); |
|||
InitBoardProperties(); |
|||
|
|||
GetSizer()->Fit( this ); |
|||
GetSizer()->SetSizeHints( this ); |
|||
Centre(); |
|||
} |
|||
|
|||
DIALOG_MODULE_BOARD_EDITOR::~DIALOG_MODULE_BOARD_EDITOR() |
|||
{ |
|||
for( unsigned ii = 0; ii < m_Shapes3D_list.size(); ii++ ) |
|||
delete m_Shapes3D_list[ii]; |
|||
|
|||
m_Shapes3D_list.clear(); |
|||
|
|||
delete m_ReferenceCopy; |
|||
delete m_ValueCopy; |
|||
delete m_3D_Scale; |
|||
delete m_3D_Offset; |
|||
delete m_3D_Rotation; |
|||
} |
|||
|
|||
|
|||
/***************************************************************************/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::InitBoardProperties( ) |
|||
/***************************************************************************/ |
|||
|
|||
/* creation du panel d'edition des proprietes du module
|
|||
*/ |
|||
{ |
|||
PutValueInLocalUnits( *m_ModPositionX, m_CurrentModule->GetPosition().x, PCB_INTERNAL_UNIT ); |
|||
AddUnitSymbol( *XPositionStatic, g_UnitMetric ); |
|||
|
|||
PutValueInLocalUnits( *m_ModPositionY, m_CurrentModule->GetPosition().y, PCB_INTERNAL_UNIT ); |
|||
AddUnitSymbol( *YPositionStatic, g_UnitMetric ); |
|||
|
|||
m_LayerCtrl->SetSelection( (m_CurrentModule->GetLayer() == COPPER_LAYER_N) ? 1 : 0 ); |
|||
|
|||
bool select = FALSE; |
|||
switch( m_CurrentModule->m_Orient ) |
|||
{ |
|||
case 0: |
|||
m_OrientCtrl->SetSelection( 0 ); |
|||
break; |
|||
|
|||
case 900: |
|||
case -2700: |
|||
m_OrientCtrl->SetSelection( 1 ); |
|||
break; |
|||
|
|||
case -900: |
|||
case 2700: |
|||
m_OrientCtrl->SetSelection( 2 ); |
|||
break; |
|||
|
|||
case -1800: |
|||
case 1800: |
|||
m_OrientCtrl->SetSelection( 3 ); |
|||
break; |
|||
|
|||
default: |
|||
m_OrientCtrl->SetSelection( 4 ); |
|||
select = TRUE; |
|||
break; |
|||
} |
|||
wxString msg; |
|||
msg << m_CurrentModule->m_Orient; |
|||
m_OrientValue->SetValue( msg ); |
|||
m_OrientValue->Enable( select ); |
|||
} |
|||
|
|||
|
|||
|
|||
/**********************************************************************/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::OnCancelClick( wxCommandEvent& WXUNUSED (event) ) |
|||
/**********************************************************************/ |
|||
{ |
|||
EndModal( -1 ); |
|||
} |
|||
|
|||
|
|||
/************************************************************************/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::GotoModuleEditor( wxCommandEvent& event ) |
|||
/************************************************************************/ |
|||
{ |
|||
if( m_CurrentModule->m_TimeStamp == 0 ) // Module Editor needs a non null timestamp
|
|||
{ |
|||
m_CurrentModule->m_TimeStamp = GetTimeStamp(); |
|||
m_Parent->GetScreen()->SetModify(); |
|||
} |
|||
|
|||
EndModal( 2 ); |
|||
} |
|||
|
|||
|
|||
/**********************************************************************/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::ExchangeModule( wxCommandEvent& event ) |
|||
/**********************************************************************/ |
|||
{ |
|||
m_Parent->InstallExchangeModuleFrame( m_CurrentModule ); |
|||
|
|||
// Warning: m_CurrentModule was deleted by exchange module
|
|||
m_Parent->SetCurItem( NULL ); |
|||
EndModal( 0 ); |
|||
} |
|||
|
|||
|
|||
/*************************************************************************/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::ModuleOrientEvent( wxCommandEvent& event ) |
|||
/*************************************************************************/ |
|||
{ |
|||
switch( m_OrientCtrl->GetSelection() ) |
|||
{ |
|||
case 0: |
|||
m_OrientValue->Enable( FALSE ); |
|||
m_OrientValue->SetValue( wxT( "0" ) ); |
|||
break; |
|||
|
|||
case 1: |
|||
m_OrientValue->Enable( FALSE ); |
|||
m_OrientValue->SetValue( wxT( "900" ) ); |
|||
break; |
|||
|
|||
case 2: |
|||
m_OrientValue->Enable( FALSE ); |
|||
m_OrientValue->SetValue( wxT( "2700" ) ); |
|||
break; |
|||
|
|||
case 3: |
|||
m_OrientValue->Enable( FALSE ); |
|||
m_OrientValue->SetValue( wxT( "1800" ) ); |
|||
break; |
|||
|
|||
default: |
|||
m_OrientValue->Enable( FALSE ); |
|||
m_OrientValue->Enable( TRUE ); |
|||
break; |
|||
} |
|||
} |
|||
|
|||
|
|||
/*******************************************************/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::InitModeditProperties() |
|||
/*******************************************************/ |
|||
{ |
|||
SetFocus(); |
|||
|
|||
m_LastSelected3DShapeIndex = -1; |
|||
|
|||
/* Init 3D shape list */ |
|||
S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings; |
|||
|
|||
while( draw3D ) |
|||
{ |
|||
S3D_MASTER* draw3DCopy = new S3D_MASTER(NULL); |
|||
draw3DCopy->Copy( draw3D ); |
|||
m_Shapes3D_list.push_back( draw3DCopy ); |
|||
m_3D_ShapeNameListBox->Append(draw3DCopy->m_Shape3DName); |
|||
|
|||
draw3D = (S3D_MASTER*) draw3D->Next(); |
|||
} |
|||
|
|||
m_ReferenceCopy = new TEXTE_MODULE(NULL); |
|||
m_ValueCopy = new TEXTE_MODULE(NULL); |
|||
m_ReferenceCopy->Copy(m_CurrentModule->m_Reference); |
|||
m_ValueCopy->Copy(m_CurrentModule->m_Value); |
|||
m_ReferenceCtrl->SetValue( m_ReferenceCopy->m_Text ); |
|||
m_ValueCtrl->SetValue( m_ValueCopy->m_Text ); |
|||
|
|||
|
|||
#if wxCHECK_VERSION( 2, 8, 0 )
|
|||
m_AttributsCtrl->SetItemToolTip( 0, _( "Use this attribute for most non smd components" ) ); |
|||
m_AttributsCtrl->SetItemToolTip( 1, |
|||
_( |
|||
"Use this attribute for smd components.\nOnly components with this option are put in the footprint position list file" ) ); |
|||
m_AttributsCtrl->SetItemToolTip( 2, |
|||
_( |
|||
"Use this attribute for \"virtual\" components drawn on board (like a old ISA PC bus connector)" ) ); |
|||
#endif
|
|||
|
|||
/* Controls on right side of the dialog */ |
|||
switch( m_CurrentModule->m_Attributs & 255 ) |
|||
{ |
|||
case 0: |
|||
m_AttributsCtrl->SetSelection( 0 ); |
|||
break; |
|||
|
|||
case MOD_CMS: |
|||
m_AttributsCtrl->SetSelection( 1 ); |
|||
break; |
|||
|
|||
case MOD_VIRTUAL: |
|||
m_AttributsCtrl->SetSelection( 2 ); |
|||
break; |
|||
|
|||
default: |
|||
m_AttributsCtrl->SetSelection( 0 ); |
|||
break; |
|||
} |
|||
|
|||
m_AutoPlaceCtrl->SetSelection( |
|||
(m_CurrentModule->m_ModuleStatus & MODULE_is_LOCKED) ? 1 : 0 ); |
|||
#if wxCHECK_VERSION( 2, 8, 0 )
|
|||
m_AutoPlaceCtrl->SetItemToolTip( 0, _( "Enable hotkey move commands and Auto Placement" ) ); |
|||
m_AutoPlaceCtrl->SetItemToolTip( 1, _( "Disable hotkey move commands and Auto Placement" ) ); |
|||
#endif
|
|||
m_CostRot90Ctrl->SetValue( m_CurrentModule->m_CntRot90 ); |
|||
|
|||
m_CostRot180Ctrl->SetValue( m_CurrentModule->m_CntRot180 ); |
|||
|
|||
// Initialize 3D parameters
|
|||
|
|||
wxBoxSizer* BoxSizer = new wxBoxSizer( wxVERTICAL ); |
|||
m_3D_Scale = new WinEDA_VertexCtrl( m_Panel3D, _( "Shape Scale:" ), BoxSizer, 2, 1 ); |
|||
m_Sizer3DValues->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
BoxSizer = new wxBoxSizer( wxVERTICAL ); |
|||
m_3D_Offset = new WinEDA_VertexCtrl( m_Panel3D, _( "Shape Offset:" ), BoxSizer, 2, 1 ); |
|||
m_Sizer3DValues->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
BoxSizer = new wxBoxSizer( wxVERTICAL ); |
|||
m_3D_Rotation = new WinEDA_VertexCtrl( m_Panel3D, _( "Shape Rotation:" ), BoxSizer, 2, 1 ); |
|||
m_Sizer3DValues->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); |
|||
} |
|||
|
|||
|
|||
/* Initialize 3D info displayed in dialog box from values in aStruct3DSource
|
|||
*/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::Transfert3DValuesToDisplay( S3D_MASTER * aStruct3DSource ) |
|||
{ |
|||
if( aStruct3DSource ) |
|||
{ |
|||
m_3D_Scale->SetValue( aStruct3DSource->m_MatScale ); |
|||
|
|||
m_3D_Offset->SetValue( aStruct3DSource->m_MatPosition ); |
|||
|
|||
m_3D_Rotation->SetValue( aStruct3DSource->m_MatRotation ); |
|||
} |
|||
else |
|||
{ |
|||
S3D_Vertex dummy_vertex; |
|||
dummy_vertex.x = dummy_vertex.y = dummy_vertex.z = 1.0; |
|||
m_3D_Scale->SetValue( dummy_vertex ); |
|||
} |
|||
} |
|||
|
|||
/** Copy 3D info displayed in dialog box to values in a item in m_Shapes3D_list
|
|||
* @param aIndexSelection = item index in m_Shapes3D_list |
|||
*/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::TransfertDisplayTo3DValues( int aIndexSelection ) |
|||
{ |
|||
if( aIndexSelection >= (int)m_Shapes3D_list.size() ) |
|||
return; |
|||
|
|||
S3D_MASTER * struct3DDest = m_Shapes3D_list[aIndexSelection]; |
|||
struct3DDest->m_MatScale = m_3D_Scale->GetValue(); |
|||
struct3DDest->m_MatRotation = m_3D_Rotation->GetValue(); |
|||
struct3DDest->m_MatPosition = m_3D_Offset->GetValue(); |
|||
} |
|||
|
|||
/***********************************************************/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::On3DShapeNameSelected(wxCommandEvent& event) |
|||
/***********************************************************/ |
|||
{ |
|||
if( m_LastSelected3DShapeIndex >= 0 ) |
|||
TransfertDisplayTo3DValues( m_LastSelected3DShapeIndex ); |
|||
m_LastSelected3DShapeIndex = m_3D_ShapeNameListBox->GetSelection(); |
|||
Transfert3DValuesToDisplay( m_Shapes3D_list[m_LastSelected3DShapeIndex] ); |
|||
} |
|||
|
|||
/***********************************************************/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::Add3DShape(wxCommandEvent& event) |
|||
/***********************************************************/ |
|||
{ |
|||
Browse3DLib( event ); |
|||
} |
|||
|
|||
/***********************************************************/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::Remove3DShape(wxCommandEvent& event) |
|||
/***********************************************************/ |
|||
{ |
|||
if( m_LastSelected3DShapeIndex >= 0 ) |
|||
TransfertDisplayTo3DValues( m_LastSelected3DShapeIndex ); |
|||
|
|||
int ii = m_3D_ShapeNameListBox->GetSelection(); |
|||
if( ii < 0 ) |
|||
return; |
|||
|
|||
m_Shapes3D_list.erase(m_Shapes3D_list.begin() + ii ); |
|||
m_3D_ShapeNameListBox->Delete(ii); |
|||
|
|||
if( m_3D_ShapeNameListBox->GetCount() == 0) |
|||
Transfert3DValuesToDisplay( NULL ); |
|||
else |
|||
{ |
|||
m_LastSelected3DShapeIndex = 0; |
|||
m_3D_ShapeNameListBox->SetSelection(m_LastSelected3DShapeIndex); |
|||
Transfert3DValuesToDisplay( m_Shapes3D_list[m_LastSelected3DShapeIndex] ); |
|||
} |
|||
} |
|||
|
|||
|
|||
/*********************************************************************/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::Browse3DLib( wxCommandEvent& event ) |
|||
/*********************************************************************/ |
|||
{ |
|||
wxString fullfilename, shortfilename; |
|||
wxString fullpath; |
|||
wxString mask = wxT( "*" ); |
|||
|
|||
fullpath = wxGetApp().ReturnLastVisitedLibraryPath( LIB3D_PATH ); |
|||
mask += g_Shapes3DExtBuffer; |
|||
#ifdef __WINDOWS__
|
|||
fullpath.Replace( wxT( "/" ), wxT( "\\" ) ); |
|||
#endif
|
|||
fullfilename = EDA_FileSelector( _( "3D Shape:" ), |
|||
fullpath, /* Chemin par defaut */ |
|||
wxEmptyString, /* nom fichier par defaut */ |
|||
g_Shapes3DExtBuffer, /* extension par defaut */ |
|||
mask, /* Masque d'affichage */ |
|||
this, |
|||
wxFD_OPEN, |
|||
TRUE |
|||
); |
|||
|
|||
if( fullfilename == wxEmptyString ) |
|||
return; |
|||
|
|||
wxFileName fn = fullfilename; |
|||
wxGetApp().SaveLastVisitedLibraryPath( fn.GetPath() ); |
|||
|
|||
/* If the file path is already in the library search paths
|
|||
* list, just add the library name to the list. Otherwise, add |
|||
* the library name with the full or relative path. |
|||
* the relative path, when possible is preferable, |
|||
* because it preserve use of default libraries paths, when the path is a sub path of these default paths |
|||
*/ |
|||
shortfilename = wxGetApp().ReturnFilenameWithRelativePathInLibPath( fullfilename ); |
|||
S3D_MASTER* new3DShape = new S3D_MASTER(NULL); |
|||
new3DShape->m_Shape3DName = shortfilename; |
|||
m_Shapes3D_list.push_back( new3DShape ); |
|||
m_3D_ShapeNameListBox->Append( shortfilename ); |
|||
|
|||
if( m_LastSelected3DShapeIndex >= 0 ) |
|||
TransfertDisplayTo3DValues( m_LastSelected3DShapeIndex ); |
|||
|
|||
m_LastSelected3DShapeIndex = m_3D_ShapeNameListBox->GetCount() - 1; |
|||
m_3D_ShapeNameListBox->SetSelection(m_LastSelected3DShapeIndex); |
|||
Transfert3DValuesToDisplay( m_Shapes3D_list[m_LastSelected3DShapeIndex] ); |
|||
|
|||
} |
|||
|
|||
|
|||
/******************************************************************************/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event ) |
|||
/******************************************************************************/ |
|||
{ |
|||
bool change_layer = FALSE; |
|||
wxPoint modpos; |
|||
|
|||
if( m_CurrentModule->m_Flags == 0 ) // this is a simple edition, we must create an undo entry
|
|||
m_Parent->SaveCopyInUndoList( m_CurrentModule, UR_CHANGED ); |
|||
|
|||
if( m_DC ) |
|||
{ |
|||
m_Parent->DrawPanel->CursorOff( m_DC ); |
|||
m_CurrentModule->Draw( m_Parent->DrawPanel, m_DC, GR_XOR ); |
|||
} |
|||
|
|||
// Set Module Position
|
|||
modpos.x = ReturnValueFromTextCtrl( *m_ModPositionX, PCB_INTERNAL_UNIT ); |
|||
modpos.y = ReturnValueFromTextCtrl( *m_ModPositionY, PCB_INTERNAL_UNIT ); |
|||
m_CurrentModule->SetPosition(modpos); |
|||
|
|||
// Set orienta tion
|
|||
long orient = 0; |
|||
wxString msg = m_OrientValue->GetValue(); |
|||
msg.ToLong( &orient ); |
|||
if( m_CurrentModule->m_Orient != orient ) |
|||
m_CurrentModule->Rotate( m_CurrentModule->m_Pos, orient - m_CurrentModule->m_Orient ); |
|||
|
|||
if( m_LayerCtrl->GetSelection() == 0 ) // layer req = COMPONENT
|
|||
{ |
|||
if( m_CurrentModule->GetLayer() == COPPER_LAYER_N ) |
|||
change_layer = TRUE; |
|||
} |
|||
else if( m_CurrentModule->GetLayer() == CMP_N ) |
|||
change_layer = TRUE; |
|||
|
|||
if( change_layer ) |
|||
m_CurrentModule->Flip(m_CurrentModule->m_Pos); |
|||
|
|||
if( m_AutoPlaceCtrl->GetSelection() == 1 ) |
|||
m_CurrentModule->m_ModuleStatus |= MODULE_is_LOCKED; |
|||
else |
|||
m_CurrentModule->m_ModuleStatus &= ~MODULE_is_LOCKED; |
|||
|
|||
switch( m_AttributsCtrl->GetSelection() ) |
|||
{ |
|||
case 0: |
|||
m_CurrentModule->m_Attributs = 0; |
|||
break; |
|||
|
|||
case 1: |
|||
m_CurrentModule->m_Attributs = MOD_CMS; |
|||
break; |
|||
|
|||
case 2: |
|||
m_CurrentModule->m_Attributs = MOD_VIRTUAL; |
|||
break; |
|||
} |
|||
|
|||
m_CurrentModule->m_CntRot90 = m_CostRot90Ctrl->GetValue(); |
|||
m_CurrentModule->m_CntRot180 = m_CostRot180Ctrl->GetValue(); |
|||
|
|||
// Init Fields:
|
|||
m_CurrentModule->m_Reference->Copy(m_ReferenceCopy ); |
|||
m_CurrentModule->m_Value->Copy(m_ValueCopy ); |
|||
|
|||
/* Update 3D shape list */ |
|||
int ii = m_3D_ShapeNameListBox->GetSelection(); |
|||
if ( ii >= 0 ) |
|||
TransfertDisplayTo3DValues( ii ); |
|||
S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings; |
|||
for( unsigned ii = 0; ii < m_Shapes3D_list.size(); ii++ ) |
|||
{ |
|||
S3D_MASTER* draw3DCopy = m_Shapes3D_list[ii]; |
|||
if( draw3DCopy->m_Shape3DName.IsEmpty() ) |
|||
continue; |
|||
if( draw3D == NULL ) |
|||
{ |
|||
draw3D = new S3D_MASTER( draw3D ); |
|||
m_CurrentModule->m_3D_Drawings.Append( draw3D ); |
|||
} |
|||
|
|||
draw3D->m_Shape3DName = draw3DCopy->m_Shape3DName; |
|||
draw3D->m_MatScale = draw3DCopy->m_MatScale; |
|||
draw3D->m_MatRotation = draw3DCopy->m_MatRotation; |
|||
draw3D->m_MatPosition = draw3DCopy->m_MatPosition; |
|||
|
|||
draw3D = draw3D->Next(); |
|||
} |
|||
|
|||
// Remove old extra 3D shapes
|
|||
S3D_MASTER* nextdraw3D; |
|||
for( ; draw3D != NULL; draw3D = nextdraw3D ) |
|||
{ |
|||
nextdraw3D = (S3D_MASTER*) draw3D->Next(); |
|||
delete m_CurrentModule->m_3D_Drawings.Remove( draw3D ); |
|||
} |
|||
|
|||
// Fill shape list with one void entry, if no entry
|
|||
if( m_CurrentModule->m_3D_Drawings == NULL ) |
|||
m_CurrentModule->m_3D_Drawings.PushBack( new S3D_MASTER( m_CurrentModule ) ); |
|||
|
|||
|
|||
m_CurrentModule->Set_Rectangle_Encadrement(); |
|||
|
|||
m_Parent->GetScreen()->SetModify(); |
|||
|
|||
EndModal( 1 ); |
|||
|
|||
if( m_DC ) |
|||
{ |
|||
m_CurrentModule->Draw( m_Parent->DrawPanel, m_DC, GR_OR ); |
|||
m_Parent->DrawPanel->CursorOn( m_DC ); |
|||
} |
|||
} |
|||
|
|||
|
|||
/***********************************************************************/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::OnEditReference(wxCommandEvent& event) |
|||
/***********************************************************************/ |
|||
{ |
|||
wxPoint tmp = m_Parent->GetScreen()->m_Curseur; |
|||
m_Parent->GetScreen()->m_Curseur = m_ReferenceCopy->m_Pos; |
|||
m_ReferenceCopy->SetParent(m_CurrentModule); |
|||
m_Parent->InstallTextModOptionsFrame( m_ReferenceCopy, NULL ); |
|||
m_Parent->GetScreen()->m_Curseur = tmp; |
|||
m_ReferenceCtrl->SetValue(m_ReferenceCopy->m_Text); |
|||
} |
|||
|
|||
/***********************************************************/ |
|||
void DIALOG_MODULE_BOARD_EDITOR::OnEditValue(wxCommandEvent& event) |
|||
/***********************************************************/ |
|||
{ |
|||
wxPoint tmp = m_Parent->GetScreen()->m_Curseur; |
|||
m_Parent->GetScreen()->m_Curseur = m_ValueCopy->m_Pos; |
|||
m_ValueCopy->SetParent(m_CurrentModule); |
|||
m_Parent->InstallTextModOptionsFrame( m_ValueCopy, NULL ); |
|||
m_Parent->GetScreen()->m_Curseur = tmp; |
|||
m_ValueCtrl->SetValue(m_ValueCopy->m_Text); |
|||
} |
|||
|
|||
@ -0,0 +1,51 @@ |
|||
/************************************************/ |
|||
/* Module editor: Dialog box for editing module */ |
|||
/* properties and carateristics */ |
|||
/************************************************/ |
|||
|
|||
#include "dialog_edit_module_for_BoardEditor_base.h" |
|||
|
|||
/**************************************/ |
|||
/* class DIALOG_MODULE_BOARD_EDITOR */ |
|||
/**************************************/ |
|||
|
|||
class DIALOG_MODULE_BOARD_EDITOR: public DIALOG_MODULE_BOARD_EDITOR_BASE |
|||
{ |
|||
private: |
|||
|
|||
WinEDA_PcbFrame * m_Parent; |
|||
wxDC * m_DC; |
|||
MODULE* m_CurrentModule; |
|||
TEXTE_MODULE* m_ReferenceCopy; |
|||
TEXTE_MODULE* m_ValueCopy; |
|||
std::vector <S3D_MASTER*> m_Shapes3D_list; |
|||
int m_LastSelected3DShapeIndex; |
|||
WinEDA_VertexCtrl * m_3D_Scale; |
|||
WinEDA_VertexCtrl * m_3D_Offset; |
|||
WinEDA_VertexCtrl * m_3D_Rotation; |
|||
|
|||
public: |
|||
|
|||
// Constructor and destructor |
|||
DIALOG_MODULE_BOARD_EDITOR( WinEDA_PcbFrame* aParent, MODULE* aModule, wxDC* aDC ); |
|||
~DIALOG_MODULE_BOARD_EDITOR(); |
|||
|
|||
private: |
|||
void InitBoardProperties(); |
|||
void InitModeditProperties(); |
|||
void Transfert3DValuesToDisplay( S3D_MASTER * aStruct3DSource ); |
|||
void TransfertDisplayTo3DValues( int aIndexSelection ); |
|||
void OnEditValue( wxCommandEvent& event ); |
|||
void OnEditReference( wxCommandEvent& event ); |
|||
void On3DShapeSelection( wxCommandEvent& event ); |
|||
void On3DShapeNameSelected( wxCommandEvent& event ); |
|||
void Browse3DLib( wxCommandEvent& event ); |
|||
void Add3DShape( wxCommandEvent& event ); |
|||
void Remove3DShape( wxCommandEvent& event ); |
|||
void OnCancelClick( wxCommandEvent& event ); |
|||
void OnOkClick( wxCommandEvent& event ); |
|||
void GotoModuleEditor( wxCommandEvent& event ); |
|||
void ExchangeModule( wxCommandEvent& event ); |
|||
void ModuleOrientEvent( wxCommandEvent& event ); |
|||
}; |
|||
|
|||
@ -0,0 +1,221 @@ |
|||
///////////////////////////////////////////////////////////////////////////
|
|||
// C++ code generated with wxFormBuilder (version Apr 16 2008)
|
|||
// http://www.wxformbuilder.org/
|
|||
//
|
|||
// PLEASE DO "NOT" EDIT THIS FILE!
|
|||
///////////////////////////////////////////////////////////////////////////
|
|||
|
|||
#include "dialog_edit_module_for_BoardEditor_base.h"
|
|||
|
|||
///////////////////////////////////////////////////////////////////////////
|
|||
|
|||
DIALOG_MODULE_BOARD_EDITOR_BASE::DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) |
|||
{ |
|||
this->SetSizeHints( wxDefaultSize, wxDefaultSize ); |
|||
|
|||
m_GeneralBoxSizer = new wxBoxSizer( wxVERTICAL ); |
|||
|
|||
m_NoteBook = new wxNotebook( this, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_PanelProperties = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); |
|||
wxBoxSizer* m_PanelPropertiesBoxSizer; |
|||
m_PanelPropertiesBoxSizer = new wxBoxSizer( wxHORIZONTAL ); |
|||
|
|||
wxStaticBoxSizer* PropLeftSizer; |
|||
PropLeftSizer = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Fields:") ), wxVERTICAL ); |
|||
|
|||
wxStaticBoxSizer* sbSizerRef; |
|||
sbSizerRef = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Reference") ), wxHORIZONTAL ); |
|||
|
|||
m_ReferenceCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); |
|||
sbSizerRef->Add( m_ReferenceCtrl, 1, 0, 5 ); |
|||
|
|||
m_button4 = new wxButton( m_PanelProperties, wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); |
|||
sbSizerRef->Add( m_button4, 0, 0, 5 ); |
|||
|
|||
PropLeftSizer->Add( sbSizerRef, 0, wxEXPAND, 5 ); |
|||
|
|||
wxStaticBoxSizer* sbSizerValue; |
|||
sbSizerValue = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Value") ), wxHORIZONTAL ); |
|||
|
|||
m_ValueCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); |
|||
sbSizerValue->Add( m_ValueCtrl, 1, 0, 5 ); |
|||
|
|||
m_button5 = new wxButton( m_PanelProperties, wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); |
|||
sbSizerValue->Add( m_button5, 0, 0, 5 ); |
|||
|
|||
PropLeftSizer->Add( sbSizerValue, 0, wxEXPAND, 5 ); |
|||
|
|||
wxString m_LayerCtrlChoices[] = { _("Top"), _("Bottom") }; |
|||
int m_LayerCtrlNChoices = sizeof( m_LayerCtrlChoices ) / sizeof( wxString ); |
|||
m_LayerCtrl = new wxRadioBox( m_PanelProperties, wxID_ANY, _("Side Select"), wxDefaultPosition, wxDefaultSize, m_LayerCtrlNChoices, m_LayerCtrlChoices, 1, wxRA_SPECIFY_COLS ); |
|||
m_LayerCtrl->SetSelection( 0 ); |
|||
PropLeftSizer->Add( m_LayerCtrl, 0, wxALL|wxEXPAND, 5 ); |
|||
|
|||
wxStaticBoxSizer* sbSizerOrientation; |
|||
sbSizerOrientation = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Orientation") ), wxVERTICAL ); |
|||
|
|||
wxString m_OrientCtrlChoices[] = { _("Normal"), _("+ 90.0"), _("- 90.0"), _("180.0"), _("User") }; |
|||
int m_OrientCtrlNChoices = sizeof( m_OrientCtrlChoices ) / sizeof( wxString ); |
|||
m_OrientCtrl = new wxRadioBox( m_PanelProperties, ID_LISTBOX_ORIENT_SELECT, _("Orientation"), wxDefaultPosition, wxDefaultSize, m_OrientCtrlNChoices, m_OrientCtrlChoices, 1, wxRA_SPECIFY_COLS ); |
|||
m_OrientCtrl->SetSelection( 0 ); |
|||
sbSizerOrientation->Add( m_OrientCtrl, 0, wxALL|wxEXPAND, 5 ); |
|||
|
|||
m_staticText4 = new wxStaticText( m_PanelProperties, wxID_ANY, _("Orientation (in 0.1 degrees)"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_staticText4->Wrap( -1 ); |
|||
sbSizerOrientation->Add( m_staticText4, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_OrientValue = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); |
|||
sbSizerOrientation->Add( m_OrientValue, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
PropLeftSizer->Add( sbSizerOrientation, 0, wxEXPAND, 5 ); |
|||
|
|||
wxStaticBoxSizer* sbSizerPosition; |
|||
sbSizerPosition = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Position") ), wxVERTICAL ); |
|||
|
|||
XPositionStatic = new wxStaticText( m_PanelProperties, wxID_ANY, _("X"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
XPositionStatic->Wrap( -1 ); |
|||
sbSizerPosition->Add( XPositionStatic, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_ModPositionX = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); |
|||
sbSizerPosition->Add( m_ModPositionX, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
YPositionStatic = new wxStaticText( m_PanelProperties, wxID_ANY, _("Y"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
YPositionStatic->Wrap( -1 ); |
|||
sbSizerPosition->Add( YPositionStatic, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_ModPositionY = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); |
|||
sbSizerPosition->Add( m_ModPositionY, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
PropLeftSizer->Add( sbSizerPosition, 0, wxEXPAND, 5 ); |
|||
|
|||
m_PanelPropertiesBoxSizer->Add( PropLeftSizer, 1, wxEXPAND, 5 ); |
|||
|
|||
m_PropRightSizer = new wxBoxSizer( wxVERTICAL ); |
|||
|
|||
m_buttonExchange = new wxButton( m_PanelProperties, ID_MODULE_PROPERTIES_EXCHANGE, _("Change Module(s)"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_PropRightSizer->Add( m_buttonExchange, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); |
|||
|
|||
m_buttonModuleEditor = new wxButton( m_PanelProperties, ID_GOTO_MODULE_EDITOR, _("Module Editor"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_PropRightSizer->Add( m_buttonModuleEditor, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); |
|||
|
|||
|
|||
m_PropRightSizer->Add( 0, 20, 0, 0, 5 ); |
|||
|
|||
wxString m_AttributsCtrlChoices[] = { _("Normal"), _("Normal+Insert"), _("Virtual") }; |
|||
int m_AttributsCtrlNChoices = sizeof( m_AttributsCtrlChoices ) / sizeof( wxString ); |
|||
m_AttributsCtrl = new wxRadioBox( m_PanelProperties, wxID_ANY, _("Attributs:"), wxDefaultPosition, wxDefaultSize, m_AttributsCtrlNChoices, m_AttributsCtrlChoices, 1, wxRA_SPECIFY_COLS ); |
|||
m_AttributsCtrl->SetSelection( 0 ); |
|||
m_PropRightSizer->Add( m_AttributsCtrl, 0, wxALL|wxEXPAND, 5 ); |
|||
|
|||
wxString m_AutoPlaceCtrlChoices[] = { _("Free"), _("Locked") }; |
|||
int m_AutoPlaceCtrlNChoices = sizeof( m_AutoPlaceCtrlChoices ) / sizeof( wxString ); |
|||
m_AutoPlaceCtrl = new wxRadioBox( m_PanelProperties, wxID_ANY, _("Move and Auto Place"), wxDefaultPosition, wxDefaultSize, m_AutoPlaceCtrlNChoices, m_AutoPlaceCtrlChoices, 1, wxRA_SPECIFY_COLS ); |
|||
m_AutoPlaceCtrl->SetSelection( 0 ); |
|||
m_PropRightSizer->Add( m_AutoPlaceCtrl, 0, wxALL|wxEXPAND, 5 ); |
|||
|
|||
wxStaticBoxSizer* sbSizerAutoplace; |
|||
sbSizerAutoplace = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Auto Move and Place") ), wxVERTICAL ); |
|||
|
|||
m_staticText11 = new wxStaticText( m_PanelProperties, wxID_ANY, _("Rotation 90 degree"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_staticText11->Wrap( -1 ); |
|||
sbSizerAutoplace->Add( m_staticText11, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_CostRot90Ctrl = new wxSlider( m_PanelProperties, wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS ); |
|||
sbSizerAutoplace->Add( m_CostRot90Ctrl, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_staticText12 = new wxStaticText( m_PanelProperties, wxID_ANY, _("Rotation 180 degree"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_staticText12->Wrap( -1 ); |
|||
sbSizerAutoplace->Add( m_staticText12, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_CostRot180Ctrl = new wxSlider( m_PanelProperties, wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS ); |
|||
sbSizerAutoplace->Add( m_CostRot180Ctrl, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_PropRightSizer->Add( sbSizerAutoplace, 1, wxEXPAND, 5 ); |
|||
|
|||
m_PanelPropertiesBoxSizer->Add( m_PropRightSizer, 0, 0, 5 ); |
|||
|
|||
m_PanelProperties->SetSizer( m_PanelPropertiesBoxSizer ); |
|||
m_PanelProperties->Layout(); |
|||
m_PanelPropertiesBoxSizer->Fit( m_PanelProperties ); |
|||
m_NoteBook->AddPage( m_PanelProperties, _("Properties"), true ); |
|||
m_Panel3D = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); |
|||
wxBoxSizer* bSizerMain3D; |
|||
bSizerMain3D = new wxBoxSizer( wxVERTICAL ); |
|||
|
|||
m_staticText3Dname = new wxStaticText( m_Panel3D, wxID_ANY, _("3D Shape Name"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_staticText3Dname->Wrap( -1 ); |
|||
bSizerMain3D->Add( m_staticText3Dname, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_3D_ShapeNameListBox = new wxListBox( m_Panel3D, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_SINGLE ); |
|||
bSizerMain3D->Add( m_3D_ShapeNameListBox, 0, wxALL|wxEXPAND, 5 ); |
|||
|
|||
wxBoxSizer* bLowerSizer3D; |
|||
bLowerSizer3D = new wxBoxSizer( wxHORIZONTAL ); |
|||
|
|||
m_Sizer3DValues = new wxStaticBoxSizer( new wxStaticBox( m_Panel3D, wxID_ANY, _("3D Scale and Pos") ), wxVERTICAL ); |
|||
|
|||
bLowerSizer3D->Add( m_Sizer3DValues, 1, wxEXPAND, 5 ); |
|||
|
|||
wxBoxSizer* bSizer3DButtons; |
|||
bSizer3DButtons = new wxBoxSizer( wxVERTICAL ); |
|||
|
|||
m_buttonBrowse = new wxButton( m_Panel3D, ID_BROWSE_3D_LIB, _("Browse Shapes"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
bSizer3DButtons->Add( m_buttonBrowse, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); |
|||
|
|||
m_buttonAdd = new wxButton( m_Panel3D, ID_ADD_3D_SHAPE, _("Add 3D Shape"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
bSizer3DButtons->Add( m_buttonAdd, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); |
|||
|
|||
m_buttonRemove = new wxButton( m_Panel3D, ID_REMOVE_3D_SHAPE, _("Remove 3D Shape"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
bSizer3DButtons->Add( m_buttonRemove, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); |
|||
|
|||
bLowerSizer3D->Add( bSizer3DButtons, 0, wxALIGN_CENTER_VERTICAL, 5 ); |
|||
|
|||
bSizerMain3D->Add( bLowerSizer3D, 1, wxEXPAND, 5 ); |
|||
|
|||
m_Panel3D->SetSizer( bSizerMain3D ); |
|||
m_Panel3D->Layout(); |
|||
bSizerMain3D->Fit( m_Panel3D ); |
|||
m_NoteBook->AddPage( m_Panel3D, _("3D settings"), false ); |
|||
|
|||
m_GeneralBoxSizer->Add( m_NoteBook, 1, wxEXPAND | wxALL, 5 ); |
|||
|
|||
m_sdbSizerStdButtons = new wxStdDialogButtonSizer(); |
|||
m_sdbSizerStdButtonsOK = new wxButton( this, wxID_OK ); |
|||
m_sdbSizerStdButtons->AddButton( m_sdbSizerStdButtonsOK ); |
|||
m_sdbSizerStdButtonsCancel = new wxButton( this, wxID_CANCEL ); |
|||
m_sdbSizerStdButtons->AddButton( m_sdbSizerStdButtonsCancel ); |
|||
m_sdbSizerStdButtons->Realize(); |
|||
m_GeneralBoxSizer->Add( m_sdbSizerStdButtons, 0, wxEXPAND|wxALIGN_RIGHT, 5 ); |
|||
|
|||
this->SetSizer( m_GeneralBoxSizer ); |
|||
this->Layout(); |
|||
|
|||
// Connect Events
|
|||
m_button4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnEditReference ), NULL, this ); |
|||
m_button5->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnEditValue ), NULL, this ); |
|||
m_OrientCtrl->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::ModuleOrientEvent ), NULL, this ); |
|||
m_buttonExchange->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::ExchangeModule ), NULL, this ); |
|||
m_buttonModuleEditor->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::GotoModuleEditor ), NULL, this ); |
|||
m_3D_ShapeNameListBox->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::On3DShapeNameSelected ), NULL, this ); |
|||
m_buttonBrowse->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::Browse3DLib ), NULL, this ); |
|||
m_buttonAdd->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::Add3DShape ), NULL, this ); |
|||
m_buttonRemove->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::Remove3DShape ), NULL, this ); |
|||
m_sdbSizerStdButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnCancelClick ), NULL, this ); |
|||
m_sdbSizerStdButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnOkClick ), NULL, this ); |
|||
} |
|||
|
|||
DIALOG_MODULE_BOARD_EDITOR_BASE::~DIALOG_MODULE_BOARD_EDITOR_BASE() |
|||
{ |
|||
// Disconnect Events
|
|||
m_button4->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnEditReference ), NULL, this ); |
|||
m_button5->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnEditValue ), NULL, this ); |
|||
m_OrientCtrl->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::ModuleOrientEvent ), NULL, this ); |
|||
m_buttonExchange->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::ExchangeModule ), NULL, this ); |
|||
m_buttonModuleEditor->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::GotoModuleEditor ), NULL, this ); |
|||
m_3D_ShapeNameListBox->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::On3DShapeNameSelected ), NULL, this ); |
|||
m_buttonBrowse->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::Browse3DLib ), NULL, this ); |
|||
m_buttonAdd->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::Add3DShape ), NULL, this ); |
|||
m_buttonRemove->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::Remove3DShape ), NULL, this ); |
|||
m_sdbSizerStdButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnCancelClick ), NULL, this ); |
|||
m_sdbSizerStdButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnOkClick ), NULL, this ); |
|||
} |
|||
1765
pcbnew/dialog_edit_module_for_BoardEditor_base.fbp
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,107 @@ |
|||
/////////////////////////////////////////////////////////////////////////// |
|||
// C++ code generated with wxFormBuilder (version Apr 16 2008) |
|||
// http://www.wxformbuilder.org/ |
|||
// |
|||
// PLEASE DO "NOT" EDIT THIS FILE! |
|||
/////////////////////////////////////////////////////////////////////////// |
|||
|
|||
#ifndef __dialog_edit_module_for_BoardEditor_base__ |
|||
#define __dialog_edit_module_for_BoardEditor_base__ |
|||
|
|||
#include <wx/intl.h> |
|||
|
|||
#include <wx/string.h> |
|||
#include <wx/textctrl.h> |
|||
#include <wx/gdicmn.h> |
|||
#include <wx/font.h> |
|||
#include <wx/colour.h> |
|||
#include <wx/settings.h> |
|||
#include <wx/button.h> |
|||
#include <wx/sizer.h> |
|||
#include <wx/statbox.h> |
|||
#include <wx/radiobox.h> |
|||
#include <wx/stattext.h> |
|||
#include <wx/slider.h> |
|||
#include <wx/panel.h> |
|||
#include <wx/bitmap.h> |
|||
#include <wx/image.h> |
|||
#include <wx/icon.h> |
|||
#include <wx/listbox.h> |
|||
#include <wx/notebook.h> |
|||
#include <wx/dialog.h> |
|||
|
|||
/////////////////////////////////////////////////////////////////////////// |
|||
|
|||
#define ID_NOTEBOOK 1000 |
|||
#define ID_LISTBOX_ORIENT_SELECT 1001 |
|||
#define ID_MODULE_PROPERTIES_EXCHANGE 1002 |
|||
#define ID_GOTO_MODULE_EDITOR 1003 |
|||
#define ID_BROWSE_3D_LIB 1004 |
|||
#define ID_ADD_3D_SHAPE 1005 |
|||
#define ID_REMOVE_3D_SHAPE 1006 |
|||
|
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
/// Class DIALOG_MODULE_BOARD_EDITOR_BASE |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
class DIALOG_MODULE_BOARD_EDITOR_BASE : public wxDialog |
|||
{ |
|||
private: |
|||
wxBoxSizer* m_GeneralBoxSizer; |
|||
wxBoxSizer* m_PropRightSizer; |
|||
|
|||
protected: |
|||
wxNotebook* m_NoteBook; |
|||
wxPanel* m_PanelProperties; |
|||
wxTextCtrl* m_ReferenceCtrl; |
|||
wxButton* m_button4; |
|||
wxTextCtrl* m_ValueCtrl; |
|||
wxButton* m_button5; |
|||
wxRadioBox* m_LayerCtrl; |
|||
wxRadioBox* m_OrientCtrl; |
|||
wxStaticText* m_staticText4; |
|||
wxTextCtrl* m_OrientValue; |
|||
wxStaticText* XPositionStatic; |
|||
wxTextCtrl* m_ModPositionX; |
|||
wxStaticText* YPositionStatic; |
|||
wxTextCtrl* m_ModPositionY; |
|||
wxButton* m_buttonExchange; |
|||
wxButton* m_buttonModuleEditor; |
|||
|
|||
wxRadioBox* m_AttributsCtrl; |
|||
wxRadioBox* m_AutoPlaceCtrl; |
|||
wxStaticText* m_staticText11; |
|||
wxSlider* m_CostRot90Ctrl; |
|||
wxStaticText* m_staticText12; |
|||
wxSlider* m_CostRot180Ctrl; |
|||
wxPanel* m_Panel3D; |
|||
wxStaticText* m_staticText3Dname; |
|||
wxListBox* m_3D_ShapeNameListBox; |
|||
wxButton* m_buttonBrowse; |
|||
wxButton* m_buttonAdd; |
|||
wxButton* m_buttonRemove; |
|||
wxStdDialogButtonSizer* m_sdbSizerStdButtons; |
|||
wxButton* m_sdbSizerStdButtonsOK; |
|||
wxButton* m_sdbSizerStdButtonsCancel; |
|||
|
|||
// Virtual event handlers, overide them in your derived class |
|||
virtual void OnEditReference( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void OnEditValue( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void ModuleOrientEvent( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void ExchangeModule( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void GotoModuleEditor( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void On3DShapeNameSelected( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void Browse3DLib( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void Add3DShape( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void Remove3DShape( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); } |
|||
|
|||
|
|||
public: |
|||
wxStaticBoxSizer* m_Sizer3DValues; |
|||
DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Module properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 422,583 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); |
|||
~DIALOG_MODULE_BOARD_EDITOR_BASE(); |
|||
|
|||
}; |
|||
|
|||
#endif //__dialog_edit_module_for_BoardEditor_base__ |
|||
@ -0,0 +1,371 @@ |
|||
/*******************************************************************************************/ |
|||
/* Dialog box for editing module properties and carateristics in module editor (modedit)*/ |
|||
/*******************************************************************************************/ |
|||
|
|||
#include "fctsys.h"
|
|||
#include "common.h"
|
|||
#include "class_drawpanel.h"
|
|||
#include "confirm.h"
|
|||
#include "pcbnew.h"
|
|||
#include "bitmaps.h"
|
|||
#include "appl_wxstruct.h"
|
|||
#include "gestfich.h"
|
|||
#include "3d_struct.h"
|
|||
#include "3d_viewer.h"
|
|||
#include "wxPcbStruct.h"
|
|||
#include "dialog_edit_module_for_modedit.h"
|
|||
|
|||
/**************************************************************************************/ |
|||
DIALOG_MODULE_MODULE_EDITOR::DIALOG_MODULE_MODULE_EDITOR( WinEDA_ModuleEditFrame* aParent, |
|||
MODULE* aModule ) : |
|||
DIALOG_MODULE_MODULE_EDITOR_BASE( aParent ) |
|||
/**************************************************************************************/ |
|||
{ |
|||
m_Parent = aParent; |
|||
m_CurrentModule = aModule; |
|||
SetIcon( wxICON( icon_modedit ) ); // Give an icon
|
|||
InitModeditProperties(); |
|||
GetSizer()->Fit( this ); |
|||
GetSizer()->SetSizeHints( this ); |
|||
Centre(); |
|||
} |
|||
|
|||
|
|||
DIALOG_MODULE_MODULE_EDITOR::~DIALOG_MODULE_MODULE_EDITOR() |
|||
{ |
|||
for( unsigned ii = 0; ii < m_Shapes3D_list.size(); ii++ ) |
|||
delete m_Shapes3D_list[ii]; |
|||
|
|||
m_Shapes3D_list.clear(); |
|||
|
|||
delete m_ReferenceCopy; |
|||
delete m_ValueCopy; |
|||
delete m_3D_Scale; |
|||
delete m_3D_Offset; |
|||
delete m_3D_Rotation; |
|||
} |
|||
|
|||
|
|||
/***************************************/ |
|||
void DIALOG_MODULE_MODULE_EDITOR::InitModeditProperties() |
|||
/***************************************/ |
|||
{ |
|||
SetFocus(); |
|||
|
|||
m_LastSelected3DShapeIndex = -1; |
|||
|
|||
/* Init 3D shape list */ |
|||
S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings; |
|||
|
|||
while( draw3D ) |
|||
{ |
|||
S3D_MASTER* draw3DCopy = new S3D_MASTER(NULL); |
|||
draw3DCopy->Copy( draw3D ); |
|||
m_Shapes3D_list.push_back( draw3DCopy ); |
|||
m_3D_ShapeNameListBox->Append(draw3DCopy->m_Shape3DName); |
|||
|
|||
draw3D = (S3D_MASTER*) draw3D->Next(); |
|||
} |
|||
|
|||
m_DocCtrl->SetValue( m_CurrentModule->m_Doc ); |
|||
m_KeywordCtrl->SetValue( m_CurrentModule->m_KeyWord); |
|||
m_ReferenceCopy = new TEXTE_MODULE(NULL); |
|||
m_ValueCopy = new TEXTE_MODULE(NULL); |
|||
m_ReferenceCopy->Copy(m_CurrentModule->m_Reference); |
|||
m_ValueCopy->Copy(m_CurrentModule->m_Value); |
|||
m_ReferenceCtrl->SetValue( m_ReferenceCopy->m_Text ); |
|||
m_ValueCtrl->SetValue( m_ValueCopy->m_Text ); |
|||
|
|||
|
|||
#if wxCHECK_VERSION( 2, 8, 0 )
|
|||
m_AttributsCtrl->SetItemToolTip( 0, _( "Use this attribute for most non smd components" ) ); |
|||
m_AttributsCtrl->SetItemToolTip( 1, |
|||
_( |
|||
"Use this attribute for smd components.\nOnly components with this option are put in the footprint position list file" ) ); |
|||
m_AttributsCtrl->SetItemToolTip( 2, |
|||
_( |
|||
"Use this attribute for \"virtual\" components drawn on board (like a old ISA PC bus connector)" ) ); |
|||
#endif
|
|||
|
|||
/* Controls on right side of the dialog */ |
|||
switch( m_CurrentModule->m_Attributs & 255 ) |
|||
{ |
|||
case 0: |
|||
m_AttributsCtrl->SetSelection( 0 ); |
|||
break; |
|||
|
|||
case MOD_CMS: |
|||
m_AttributsCtrl->SetSelection( 1 ); |
|||
break; |
|||
|
|||
case MOD_VIRTUAL: |
|||
m_AttributsCtrl->SetSelection( 2 ); |
|||
break; |
|||
|
|||
default: |
|||
m_AttributsCtrl->SetSelection( 0 ); |
|||
break; |
|||
} |
|||
|
|||
m_AutoPlaceCtrl->SetSelection( |
|||
(m_CurrentModule->m_ModuleStatus & MODULE_is_LOCKED) ? 1 : 0 ); |
|||
#if wxCHECK_VERSION( 2, 8, 0 )
|
|||
m_AutoPlaceCtrl->SetItemToolTip( 0, _( "Enable hotkey move commands and Auto Placement" ) ); |
|||
m_AutoPlaceCtrl->SetItemToolTip( 1, _( "Disable hotkey move commands and Auto Placement" ) ); |
|||
#endif
|
|||
m_CostRot90Ctrl->SetValue( m_CurrentModule->m_CntRot90 ); |
|||
|
|||
m_CostRot180Ctrl->SetValue( m_CurrentModule->m_CntRot180 ); |
|||
|
|||
// Initialize 3D parameters
|
|||
|
|||
wxBoxSizer* BoxSizer = new wxBoxSizer( wxVERTICAL ); |
|||
m_3D_Scale = new WinEDA_VertexCtrl( m_Panel3D, _( "Shape Scale:" ), BoxSizer, 2, 1 ); |
|||
m_Sizer3DValues->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
BoxSizer = new wxBoxSizer( wxVERTICAL ); |
|||
m_3D_Offset = new WinEDA_VertexCtrl( m_Panel3D, _( "Shape Offset:" ), BoxSizer, 2, 1 ); |
|||
m_Sizer3DValues->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
BoxSizer = new wxBoxSizer( wxVERTICAL ); |
|||
m_3D_Rotation = new WinEDA_VertexCtrl( m_Panel3D, _( "Shape Rotation:" ), BoxSizer, 2, 1 ); |
|||
m_Sizer3DValues->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); |
|||
} |
|||
|
|||
|
|||
/* Initialize 3D info displayed in dialog box from values in aStruct3DSource
|
|||
*/ |
|||
void DIALOG_MODULE_MODULE_EDITOR::Transfert3DValuesToDisplay( S3D_MASTER * aStruct3DSource ) |
|||
{ |
|||
if( aStruct3DSource ) |
|||
{ |
|||
m_3D_Scale->SetValue( aStruct3DSource->m_MatScale ); |
|||
|
|||
m_3D_Offset->SetValue( aStruct3DSource->m_MatPosition ); |
|||
|
|||
m_3D_Rotation->SetValue( aStruct3DSource->m_MatRotation ); |
|||
} |
|||
else |
|||
{ |
|||
S3D_Vertex dummy_vertex; |
|||
dummy_vertex.x = dummy_vertex.y = dummy_vertex.z = 1.0; |
|||
m_3D_Scale->SetValue( dummy_vertex ); |
|||
} |
|||
} |
|||
|
|||
/** Copy 3D info displayed in dialog box to values in a item in m_Shapes3D_list
|
|||
* @param aIndexSelection = item index in m_Shapes3D_list |
|||
*/ |
|||
void DIALOG_MODULE_MODULE_EDITOR::TransfertDisplayTo3DValues( int aIndexSelection ) |
|||
{ |
|||
if( aIndexSelection >= (int)m_Shapes3D_list.size() ) |
|||
return; |
|||
|
|||
S3D_MASTER * struct3DDest = m_Shapes3D_list[aIndexSelection]; |
|||
struct3DDest->m_MatScale = m_3D_Scale->GetValue(); |
|||
struct3DDest->m_MatRotation = m_3D_Rotation->GetValue(); |
|||
struct3DDest->m_MatPosition = m_3D_Offset->GetValue(); |
|||
} |
|||
|
|||
/***********************************************************/ |
|||
void DIALOG_MODULE_MODULE_EDITOR::On3DShapeNameSelected(wxCommandEvent& event) |
|||
/***********************************************************/ |
|||
{ |
|||
if( m_LastSelected3DShapeIndex >= 0 ) |
|||
TransfertDisplayTo3DValues( m_LastSelected3DShapeIndex ); |
|||
m_LastSelected3DShapeIndex = m_3D_ShapeNameListBox->GetSelection(); |
|||
Transfert3DValuesToDisplay( m_Shapes3D_list[m_LastSelected3DShapeIndex] ); |
|||
} |
|||
|
|||
/***********************************************************/ |
|||
void DIALOG_MODULE_MODULE_EDITOR::Add3DShape(wxCommandEvent& event) |
|||
/***********************************************************/ |
|||
{ |
|||
Browse3DLib( event ); |
|||
} |
|||
|
|||
/***********************************************************/ |
|||
void DIALOG_MODULE_MODULE_EDITOR::Remove3DShape(wxCommandEvent& event) |
|||
/***********************************************************/ |
|||
{ |
|||
if( m_LastSelected3DShapeIndex >= 0 ) |
|||
TransfertDisplayTo3DValues( m_LastSelected3DShapeIndex ); |
|||
|
|||
int ii = m_3D_ShapeNameListBox->GetSelection(); |
|||
if( ii < 0 ) |
|||
return; |
|||
|
|||
m_Shapes3D_list.erase(m_Shapes3D_list.begin() + ii ); |
|||
m_3D_ShapeNameListBox->Delete(ii); |
|||
|
|||
if( m_3D_ShapeNameListBox->GetCount() == 0) |
|||
Transfert3DValuesToDisplay( NULL ); |
|||
else |
|||
{ |
|||
m_LastSelected3DShapeIndex = 0; |
|||
m_3D_ShapeNameListBox->SetSelection(m_LastSelected3DShapeIndex); |
|||
Transfert3DValuesToDisplay( m_Shapes3D_list[m_LastSelected3DShapeIndex] ); |
|||
} |
|||
} |
|||
|
|||
|
|||
/*********************************************************************/ |
|||
void DIALOG_MODULE_MODULE_EDITOR::Browse3DLib( wxCommandEvent& event ) |
|||
/*********************************************************************/ |
|||
{ |
|||
wxString fullfilename, shortfilename; |
|||
wxString fullpath; |
|||
wxString mask = wxT( "*" ); |
|||
|
|||
fullpath = wxGetApp().ReturnLastVisitedLibraryPath( LIB3D_PATH ); |
|||
mask += g_Shapes3DExtBuffer; |
|||
#ifdef __WINDOWS__
|
|||
fullpath.Replace( wxT( "/" ), wxT( "\\" ) ); |
|||
#endif
|
|||
fullfilename = EDA_FileSelector( _( "3D Shape:" ), |
|||
fullpath, /* Chemin par defaut */ |
|||
wxEmptyString, /* nom fichier par defaut */ |
|||
g_Shapes3DExtBuffer, /* extension par defaut */ |
|||
mask, /* Masque d'affichage */ |
|||
this, |
|||
wxFD_OPEN, |
|||
TRUE |
|||
); |
|||
|
|||
if( fullfilename == wxEmptyString ) |
|||
return; |
|||
|
|||
wxFileName fn = fullfilename; |
|||
wxGetApp().SaveLastVisitedLibraryPath( fn.GetPath() ); |
|||
|
|||
/* If the file path is already in the library search paths
|
|||
* list, just add the library name to the list. Otherwise, add |
|||
* the library name with the full or relative path. |
|||
* the relative path, when possible is preferable, |
|||
* because it preserve use of default libraries paths, when the path is a sub path of these default paths |
|||
*/ |
|||
shortfilename = wxGetApp().ReturnFilenameWithRelativePathInLibPath( fullfilename ); |
|||
S3D_MASTER* new3DShape = new S3D_MASTER(NULL); |
|||
new3DShape->m_Shape3DName = shortfilename; |
|||
m_Shapes3D_list.push_back( new3DShape ); |
|||
m_3D_ShapeNameListBox->Append( shortfilename ); |
|||
|
|||
if( m_LastSelected3DShapeIndex >= 0 ) |
|||
TransfertDisplayTo3DValues( m_LastSelected3DShapeIndex ); |
|||
|
|||
m_LastSelected3DShapeIndex = m_3D_ShapeNameListBox->GetCount() - 1; |
|||
m_3D_ShapeNameListBox->SetSelection(m_LastSelected3DShapeIndex); |
|||
Transfert3DValuesToDisplay( m_Shapes3D_list[m_LastSelected3DShapeIndex] ); |
|||
|
|||
} |
|||
|
|||
|
|||
/**********************************************************************/ |
|||
void DIALOG_MODULE_MODULE_EDITOR::OnCancelClick( wxCommandEvent& WXUNUSED (event) ) |
|||
/**********************************************************************/ |
|||
{ |
|||
EndModal( -1 ); |
|||
} |
|||
|
|||
|
|||
/******************************************************************************/ |
|||
void DIALOG_MODULE_MODULE_EDITOR::OnOkClick( wxCommandEvent& event ) |
|||
/******************************************************************************/ |
|||
{ |
|||
m_Parent->SaveCopyInUndoList( m_CurrentModule, UR_MODEDIT ); |
|||
|
|||
if( m_AutoPlaceCtrl->GetSelection() == 1 ) |
|||
m_CurrentModule->m_ModuleStatus |= MODULE_is_LOCKED; |
|||
else |
|||
m_CurrentModule->m_ModuleStatus &= ~MODULE_is_LOCKED; |
|||
|
|||
switch( m_AttributsCtrl->GetSelection() ) |
|||
{ |
|||
case 0: |
|||
m_CurrentModule->m_Attributs = 0; |
|||
break; |
|||
|
|||
case 1: |
|||
m_CurrentModule->m_Attributs = MOD_CMS; |
|||
break; |
|||
|
|||
case 2: |
|||
m_CurrentModule->m_Attributs = MOD_VIRTUAL; |
|||
break; |
|||
} |
|||
|
|||
m_CurrentModule->m_CntRot90 = m_CostRot90Ctrl->GetValue(); |
|||
m_CurrentModule->m_CntRot180 = m_CostRot180Ctrl->GetValue(); |
|||
m_CurrentModule->m_Doc = m_DocCtrl->GetValue(); |
|||
m_CurrentModule->m_KeyWord = m_KeywordCtrl->GetValue(); |
|||
|
|||
// Init Fields:
|
|||
m_CurrentModule->m_Reference->Copy(m_ReferenceCopy ); |
|||
m_CurrentModule->m_Value->Copy(m_ValueCopy ); |
|||
|
|||
/* Update 3D shape list */ |
|||
int ii = m_3D_ShapeNameListBox->GetSelection(); |
|||
if ( ii >= 0 ) |
|||
TransfertDisplayTo3DValues( ii ); |
|||
S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings; |
|||
for( unsigned ii = 0; ii < m_Shapes3D_list.size(); ii++ ) |
|||
{ |
|||
S3D_MASTER* draw3DCopy = m_Shapes3D_list[ii]; |
|||
if( draw3DCopy->m_Shape3DName.IsEmpty() ) |
|||
continue; |
|||
if( draw3D == NULL ) |
|||
{ |
|||
draw3D = new S3D_MASTER( draw3D ); |
|||
m_CurrentModule->m_3D_Drawings.Append( draw3D ); |
|||
} |
|||
|
|||
draw3D->m_Shape3DName = draw3DCopy->m_Shape3DName; |
|||
draw3D->m_MatScale = draw3DCopy->m_MatScale; |
|||
draw3D->m_MatRotation = draw3DCopy->m_MatRotation; |
|||
draw3D->m_MatPosition = draw3DCopy->m_MatPosition; |
|||
|
|||
draw3D = draw3D->Next(); |
|||
} |
|||
|
|||
// Remove old extra 3D shapes
|
|||
S3D_MASTER* nextdraw3D; |
|||
for( ; draw3D != NULL; draw3D = nextdraw3D ) |
|||
{ |
|||
nextdraw3D = (S3D_MASTER*) draw3D->Next(); |
|||
delete m_CurrentModule->m_3D_Drawings.Remove( draw3D ); |
|||
} |
|||
|
|||
// Fill shape list with one void entry, if no entry
|
|||
if( m_CurrentModule->m_3D_Drawings == NULL ) |
|||
m_CurrentModule->m_3D_Drawings.PushBack( new S3D_MASTER( m_CurrentModule ) ); |
|||
|
|||
|
|||
m_CurrentModule->Set_Rectangle_Encadrement(); |
|||
|
|||
m_Parent->GetScreen()->SetModify(); |
|||
|
|||
EndModal( 1 ); |
|||
} |
|||
|
|||
|
|||
/***********************************************************************/ |
|||
void DIALOG_MODULE_MODULE_EDITOR::OnEditReference(wxCommandEvent& event) |
|||
/***********************************************************************/ |
|||
{ |
|||
wxPoint tmp = m_Parent->GetScreen()->m_Curseur; |
|||
m_Parent->GetScreen()->m_Curseur = m_ReferenceCopy->m_Pos; |
|||
m_Parent->InstallTextModOptionsFrame( m_ReferenceCopy, NULL ); |
|||
m_Parent->GetScreen()->m_Curseur = tmp; |
|||
m_ReferenceCtrl->SetValue(m_ReferenceCopy->m_Text); |
|||
} |
|||
|
|||
/***********************************************************/ |
|||
void DIALOG_MODULE_MODULE_EDITOR::OnEditValue(wxCommandEvent& event) |
|||
/***********************************************************/ |
|||
{ |
|||
wxPoint tmp = m_Parent->GetScreen()->m_Curseur; |
|||
m_Parent->GetScreen()->m_Curseur = m_ValueCopy->m_Pos; |
|||
m_Parent->InstallTextModOptionsFrame( m_ValueCopy, NULL ); |
|||
m_Parent->GetScreen()->m_Curseur = tmp; |
|||
m_ValueCtrl->SetValue(m_ValueCopy->m_Text); |
|||
} |
|||
@ -0,0 +1,52 @@ |
|||
/*****************************************************************************/ |
|||
/* Module editor: Dialog box for editing module properties and carateristics */ |
|||
/*****************************************************************************/ |
|||
|
|||
#ifndef __DIALOG_EDIT_MODULE_FOR_MODEDIT__ |
|||
#define __DIALOG_EDIT_MODULE_FOR_MODEDIT__ |
|||
|
|||
// Include the wxFormBuider header base: |
|||
#include <vector> |
|||
#include "dialog_edit_module_for_modedit_base.h" |
|||
|
|||
/**************************************/ |
|||
/* class DIALOG_MODULE_MODULE_EDITOR */ |
|||
/**************************************/ |
|||
|
|||
class DIALOG_MODULE_MODULE_EDITOR : public DIALOG_MODULE_MODULE_EDITOR_BASE |
|||
{ |
|||
private: |
|||
|
|||
WinEDA_ModuleEditFrame* m_Parent; |
|||
MODULE* m_CurrentModule; |
|||
TEXTE_MODULE* m_ReferenceCopy; |
|||
TEXTE_MODULE* m_ValueCopy; |
|||
std::vector <S3D_MASTER*> m_Shapes3D_list; |
|||
int m_LastSelected3DShapeIndex; |
|||
WinEDA_VertexCtrl * m_3D_Scale; |
|||
WinEDA_VertexCtrl * m_3D_Offset; |
|||
WinEDA_VertexCtrl * m_3D_Rotation; |
|||
|
|||
public: |
|||
|
|||
// Constructor and destructor |
|||
DIALOG_MODULE_MODULE_EDITOR( WinEDA_ModuleEditFrame* aParent, MODULE* aModule ); |
|||
~DIALOG_MODULE_MODULE_EDITOR(); |
|||
|
|||
private: |
|||
void InitModeditProperties(); |
|||
void Transfert3DValuesToDisplay( S3D_MASTER * aStruct3DSource ); |
|||
void TransfertDisplayTo3DValues( int aIndexSelection ); |
|||
void OnEditValue( wxCommandEvent& event ); |
|||
void OnEditReference( wxCommandEvent& event ); |
|||
void On3DShapeSelection( wxCommandEvent& event ); |
|||
void On3DShapeNameSelected( wxCommandEvent& event ); |
|||
void Browse3DLib( wxCommandEvent& event ); |
|||
void Add3DShape( wxCommandEvent& event ); |
|||
void Remove3DShape( wxCommandEvent& event ); |
|||
void OnCancelClick( wxCommandEvent& event ); |
|||
void OnOkClick( wxCommandEvent& event ); |
|||
}; |
|||
|
|||
|
|||
#endif // __DIALOG_EDIT_MODULE_FOR_MODEDIT__ |
|||
@ -0,0 +1,183 @@ |
|||
///////////////////////////////////////////////////////////////////////////
|
|||
// C++ code generated with wxFormBuilder (version Apr 16 2008)
|
|||
// http://www.wxformbuilder.org/
|
|||
//
|
|||
// PLEASE DO "NOT" EDIT THIS FILE!
|
|||
///////////////////////////////////////////////////////////////////////////
|
|||
|
|||
#include "dialog_edit_module_for_Modedit_base.h"
|
|||
|
|||
///////////////////////////////////////////////////////////////////////////
|
|||
|
|||
DIALOG_MODULE_MODULE_EDITOR_BASE::DIALOG_MODULE_MODULE_EDITOR_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) |
|||
{ |
|||
this->SetSizeHints( wxDefaultSize, wxDefaultSize ); |
|||
|
|||
m_GeneralBoxSizer = new wxBoxSizer( wxVERTICAL ); |
|||
|
|||
m_NoteBook = new wxNotebook( this, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_PanelProperties = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); |
|||
wxBoxSizer* m_PanelPropertiesBoxSizer; |
|||
m_PanelPropertiesBoxSizer = new wxBoxSizer( wxHORIZONTAL ); |
|||
|
|||
wxStaticBoxSizer* PropLeftSizer; |
|||
PropLeftSizer = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Fields:") ), wxVERTICAL ); |
|||
|
|||
wxStaticBoxSizer* sbSizerDoc; |
|||
sbSizerDoc = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Doc") ), wxHORIZONTAL ); |
|||
|
|||
sbSizerDoc->SetMinSize( wxSize( 300,-1 ) ); |
|||
m_DocCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); |
|||
sbSizerDoc->Add( m_DocCtrl, 1, 0, 5 ); |
|||
|
|||
PropLeftSizer->Add( sbSizerDoc, 0, wxEXPAND, 5 ); |
|||
|
|||
wxStaticBoxSizer* sbSizerKeysW; |
|||
sbSizerKeysW = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Keywords") ), wxHORIZONTAL ); |
|||
|
|||
m_KeywordCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); |
|||
sbSizerKeysW->Add( m_KeywordCtrl, 1, 0, 5 ); |
|||
|
|||
PropLeftSizer->Add( sbSizerKeysW, 0, wxEXPAND, 5 ); |
|||
|
|||
|
|||
PropLeftSizer->Add( 0, 20, 0, 0, 5 ); |
|||
|
|||
wxStaticBoxSizer* sbSizerRef; |
|||
sbSizerRef = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Reference") ), wxHORIZONTAL ); |
|||
|
|||
m_ReferenceCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); |
|||
sbSizerRef->Add( m_ReferenceCtrl, 1, 0, 5 ); |
|||
|
|||
m_button4 = new wxButton( m_PanelProperties, wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); |
|||
sbSizerRef->Add( m_button4, 0, 0, 5 ); |
|||
|
|||
PropLeftSizer->Add( sbSizerRef, 0, wxEXPAND, 5 ); |
|||
|
|||
wxStaticBoxSizer* sbSizerValue; |
|||
sbSizerValue = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Value") ), wxHORIZONTAL ); |
|||
|
|||
m_ValueCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); |
|||
sbSizerValue->Add( m_ValueCtrl, 1, 0, 5 ); |
|||
|
|||
m_button5 = new wxButton( m_PanelProperties, wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); |
|||
sbSizerValue->Add( m_button5, 0, 0, 5 ); |
|||
|
|||
PropLeftSizer->Add( sbSizerValue, 0, wxEXPAND, 5 ); |
|||
|
|||
m_PanelPropertiesBoxSizer->Add( PropLeftSizer, 1, wxEXPAND, 5 ); |
|||
|
|||
m_PropRightSizer = new wxBoxSizer( wxVERTICAL ); |
|||
|
|||
wxString m_AttributsCtrlChoices[] = { _("Normal"), _("Normal+Insert"), _("Virtual") }; |
|||
int m_AttributsCtrlNChoices = sizeof( m_AttributsCtrlChoices ) / sizeof( wxString ); |
|||
m_AttributsCtrl = new wxRadioBox( m_PanelProperties, wxID_ANY, _("Attributs:"), wxDefaultPosition, wxDefaultSize, m_AttributsCtrlNChoices, m_AttributsCtrlChoices, 1, wxRA_SPECIFY_COLS ); |
|||
m_AttributsCtrl->SetSelection( 0 ); |
|||
m_PropRightSizer->Add( m_AttributsCtrl, 0, wxALL|wxEXPAND, 5 ); |
|||
|
|||
wxString m_AutoPlaceCtrlChoices[] = { _("Free"), _("Locked") }; |
|||
int m_AutoPlaceCtrlNChoices = sizeof( m_AutoPlaceCtrlChoices ) / sizeof( wxString ); |
|||
m_AutoPlaceCtrl = new wxRadioBox( m_PanelProperties, wxID_ANY, _("Move and Auto Place"), wxDefaultPosition, wxDefaultSize, m_AutoPlaceCtrlNChoices, m_AutoPlaceCtrlChoices, 1, wxRA_SPECIFY_COLS ); |
|||
m_AutoPlaceCtrl->SetSelection( 0 ); |
|||
m_PropRightSizer->Add( m_AutoPlaceCtrl, 0, wxALL|wxEXPAND, 5 ); |
|||
|
|||
wxStaticBoxSizer* sbSizerAutoplace; |
|||
sbSizerAutoplace = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Auto Move and Place") ), wxVERTICAL ); |
|||
|
|||
m_staticText11 = new wxStaticText( m_PanelProperties, wxID_ANY, _("Rotation 90 degree"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_staticText11->Wrap( -1 ); |
|||
sbSizerAutoplace->Add( m_staticText11, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_CostRot90Ctrl = new wxSlider( m_PanelProperties, wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS ); |
|||
sbSizerAutoplace->Add( m_CostRot90Ctrl, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_staticText12 = new wxStaticText( m_PanelProperties, wxID_ANY, _("Rotation 180 degree"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_staticText12->Wrap( -1 ); |
|||
sbSizerAutoplace->Add( m_staticText12, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_CostRot180Ctrl = new wxSlider( m_PanelProperties, wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS ); |
|||
sbSizerAutoplace->Add( m_CostRot180Ctrl, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_PropRightSizer->Add( sbSizerAutoplace, 1, wxEXPAND, 5 ); |
|||
|
|||
m_PanelPropertiesBoxSizer->Add( m_PropRightSizer, 0, 0, 5 ); |
|||
|
|||
m_PanelProperties->SetSizer( m_PanelPropertiesBoxSizer ); |
|||
m_PanelProperties->Layout(); |
|||
m_PanelPropertiesBoxSizer->Fit( m_PanelProperties ); |
|||
m_NoteBook->AddPage( m_PanelProperties, _("Properties"), true ); |
|||
m_Panel3D = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); |
|||
wxBoxSizer* bSizerMain3D; |
|||
bSizerMain3D = new wxBoxSizer( wxVERTICAL ); |
|||
|
|||
m_staticText3Dname = new wxStaticText( m_Panel3D, wxID_ANY, _("3D Shape Name"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
m_staticText3Dname->Wrap( -1 ); |
|||
bSizerMain3D->Add( m_staticText3Dname, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); |
|||
|
|||
m_3D_ShapeNameListBox = new wxListBox( m_Panel3D, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_SINGLE ); |
|||
bSizerMain3D->Add( m_3D_ShapeNameListBox, 0, wxALL|wxEXPAND, 5 ); |
|||
|
|||
wxBoxSizer* bLowerSizer3D; |
|||
bLowerSizer3D = new wxBoxSizer( wxHORIZONTAL ); |
|||
|
|||
m_Sizer3DValues = new wxStaticBoxSizer( new wxStaticBox( m_Panel3D, wxID_ANY, _("3D Scale and Pos") ), wxVERTICAL ); |
|||
|
|||
bLowerSizer3D->Add( m_Sizer3DValues, 1, wxEXPAND, 5 ); |
|||
|
|||
wxBoxSizer* bSizer3DButtons; |
|||
bSizer3DButtons = new wxBoxSizer( wxVERTICAL ); |
|||
|
|||
m_buttonBrowse = new wxButton( m_Panel3D, ID_BROWSE_3D_LIB, _("Browse Shapes"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
bSizer3DButtons->Add( m_buttonBrowse, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); |
|||
|
|||
m_buttonAdd = new wxButton( m_Panel3D, ID_ADD_3D_SHAPE, _("Add 3D Shape"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
bSizer3DButtons->Add( m_buttonAdd, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); |
|||
|
|||
m_buttonRemove = new wxButton( m_Panel3D, ID_REMOVE_3D_SHAPE, _("Remove 3D Shape"), wxDefaultPosition, wxDefaultSize, 0 ); |
|||
bSizer3DButtons->Add( m_buttonRemove, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); |
|||
|
|||
bLowerSizer3D->Add( bSizer3DButtons, 0, wxALIGN_CENTER_VERTICAL, 5 ); |
|||
|
|||
bSizerMain3D->Add( bLowerSizer3D, 1, wxEXPAND, 5 ); |
|||
|
|||
m_Panel3D->SetSizer( bSizerMain3D ); |
|||
m_Panel3D->Layout(); |
|||
bSizerMain3D->Fit( m_Panel3D ); |
|||
m_NoteBook->AddPage( m_Panel3D, _("3D settings"), false ); |
|||
|
|||
m_GeneralBoxSizer->Add( m_NoteBook, 1, wxEXPAND | wxALL, 5 ); |
|||
|
|||
m_sdbSizerStdButtons = new wxStdDialogButtonSizer(); |
|||
m_sdbSizerStdButtonsOK = new wxButton( this, wxID_OK ); |
|||
m_sdbSizerStdButtons->AddButton( m_sdbSizerStdButtonsOK ); |
|||
m_sdbSizerStdButtonsCancel = new wxButton( this, wxID_CANCEL ); |
|||
m_sdbSizerStdButtons->AddButton( m_sdbSizerStdButtonsCancel ); |
|||
m_sdbSizerStdButtons->Realize(); |
|||
m_GeneralBoxSizer->Add( m_sdbSizerStdButtons, 0, wxEXPAND|wxALIGN_RIGHT, 5 ); |
|||
|
|||
this->SetSizer( m_GeneralBoxSizer ); |
|||
this->Layout(); |
|||
|
|||
// Connect Events
|
|||
m_button4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnEditReference ), NULL, this ); |
|||
m_button5->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnEditValue ), NULL, this ); |
|||
m_3D_ShapeNameListBox->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::On3DShapeNameSelected ), NULL, this ); |
|||
m_buttonBrowse->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::Browse3DLib ), NULL, this ); |
|||
m_buttonAdd->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::Add3DShape ), NULL, this ); |
|||
m_buttonRemove->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::Remove3DShape ), NULL, this ); |
|||
m_sdbSizerStdButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnCancelClick ), NULL, this ); |
|||
m_sdbSizerStdButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnOkClick ), NULL, this ); |
|||
} |
|||
|
|||
DIALOG_MODULE_MODULE_EDITOR_BASE::~DIALOG_MODULE_MODULE_EDITOR_BASE() |
|||
{ |
|||
// Disconnect Events
|
|||
m_button4->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnEditReference ), NULL, this ); |
|||
m_button5->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnEditValue ), NULL, this ); |
|||
m_3D_ShapeNameListBox->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::On3DShapeNameSelected ), NULL, this ); |
|||
m_buttonBrowse->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::Browse3DLib ), NULL, this ); |
|||
m_buttonAdd->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::Add3DShape ), NULL, this ); |
|||
m_buttonRemove->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::Remove3DShape ), NULL, this ); |
|||
m_sdbSizerStdButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnCancelClick ), NULL, this ); |
|||
m_sdbSizerStdButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnOkClick ), NULL, this ); |
|||
} |
|||
1345
pcbnew/dialog_edit_module_for_Modedit_base.fbp
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,93 @@ |
|||
/////////////////////////////////////////////////////////////////////////// |
|||
// C++ code generated with wxFormBuilder (version Apr 16 2008) |
|||
// http://www.wxformbuilder.org/ |
|||
// |
|||
// PLEASE DO "NOT" EDIT THIS FILE! |
|||
/////////////////////////////////////////////////////////////////////////// |
|||
|
|||
#ifndef __dialog_edit_module_for_Modedit_base__ |
|||
#define __dialog_edit_module_for_Modedit_base__ |
|||
|
|||
#include <wx/intl.h> |
|||
|
|||
#include <wx/string.h> |
|||
#include <wx/textctrl.h> |
|||
#include <wx/gdicmn.h> |
|||
#include <wx/font.h> |
|||
#include <wx/colour.h> |
|||
#include <wx/settings.h> |
|||
#include <wx/sizer.h> |
|||
#include <wx/statbox.h> |
|||
#include <wx/button.h> |
|||
#include <wx/radiobox.h> |
|||
#include <wx/stattext.h> |
|||
#include <wx/slider.h> |
|||
#include <wx/panel.h> |
|||
#include <wx/bitmap.h> |
|||
#include <wx/image.h> |
|||
#include <wx/icon.h> |
|||
#include <wx/listbox.h> |
|||
#include <wx/notebook.h> |
|||
#include <wx/dialog.h> |
|||
|
|||
/////////////////////////////////////////////////////////////////////////// |
|||
|
|||
#define ID_NOTEBOOK 1000 |
|||
#define ID_BROWSE_3D_LIB 1001 |
|||
#define ID_ADD_3D_SHAPE 1002 |
|||
#define ID_REMOVE_3D_SHAPE 1003 |
|||
|
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
/// Class DIALOG_MODULE_MODULE_EDITOR_BASE |
|||
/////////////////////////////////////////////////////////////////////////////// |
|||
class DIALOG_MODULE_MODULE_EDITOR_BASE : public wxDialog |
|||
{ |
|||
private: |
|||
wxBoxSizer* m_GeneralBoxSizer; |
|||
wxBoxSizer* m_PropRightSizer; |
|||
|
|||
protected: |
|||
wxNotebook* m_NoteBook; |
|||
wxPanel* m_PanelProperties; |
|||
wxTextCtrl* m_DocCtrl; |
|||
wxTextCtrl* m_KeywordCtrl; |
|||
|
|||
wxTextCtrl* m_ReferenceCtrl; |
|||
wxButton* m_button4; |
|||
wxTextCtrl* m_ValueCtrl; |
|||
wxButton* m_button5; |
|||
wxRadioBox* m_AttributsCtrl; |
|||
wxRadioBox* m_AutoPlaceCtrl; |
|||
wxStaticText* m_staticText11; |
|||
wxSlider* m_CostRot90Ctrl; |
|||
wxStaticText* m_staticText12; |
|||
wxSlider* m_CostRot180Ctrl; |
|||
wxPanel* m_Panel3D; |
|||
wxStaticText* m_staticText3Dname; |
|||
wxListBox* m_3D_ShapeNameListBox; |
|||
wxButton* m_buttonBrowse; |
|||
wxButton* m_buttonAdd; |
|||
wxButton* m_buttonRemove; |
|||
wxStdDialogButtonSizer* m_sdbSizerStdButtons; |
|||
wxButton* m_sdbSizerStdButtonsOK; |
|||
wxButton* m_sdbSizerStdButtonsCancel; |
|||
|
|||
// Virtual event handlers, overide them in your derived class |
|||
virtual void OnEditReference( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void OnEditValue( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void On3DShapeNameSelected( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void Browse3DLib( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void Add3DShape( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void Remove3DShape( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); } |
|||
virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); } |
|||
|
|||
|
|||
public: |
|||
wxStaticBoxSizer* m_Sizer3DValues; |
|||
DIALOG_MODULE_MODULE_EDITOR_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Module properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 422,422 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); |
|||
~DIALOG_MODULE_MODULE_EDITOR_BASE(); |
|||
|
|||
}; |
|||
|
|||
#endif //__dialog_edit_module_for_Modedit_base__ |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue