Add select footprint feature to Eeschema field properties dialog.

This commit is contained in:
Mark Roszko 2014-10-14 16:39:25 -04:00 committed by Wayne Stambaugh
parent f8cea8188b
commit 396e7b8ccb
8 changed files with 347 additions and 113 deletions

View File

@ -30,6 +30,7 @@
#include <fctsys.h> #include <fctsys.h>
#include <common.h> #include <common.h>
#include <base_units.h> #include <base_units.h>
#include <kiway.h>
#include <general.h> #include <general.h>
#include <sch_base_frame.h> #include <sch_base_frame.h>
@ -50,8 +51,8 @@ void DIALOG_EDIT_ONE_FIELD::initDlg_base()
m_TextValue->SetFocus(); m_TextValue->SetFocus();
// Disable options for graphic text edition, not existing in fields // Disable options for graphic text edition, not existing in fields
m_CommonConvert->Show(false); m_CommonConvert->Show( false );
m_CommonUnit->Show(false); m_CommonUnit->Show( false );
msg = StringFromValue( g_UserUnit, m_textsize ); msg = StringFromValue( g_UserUnit, m_textsize );
m_TextSize->SetValue( msg ); m_TextSize->SetValue( msg );
@ -99,34 +100,64 @@ void DIALOG_EDIT_ONE_FIELD::initDlg_base()
} }
void DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick( wxCommandEvent& aEvent )
{
// pick a footprint using the footprint picker.
wxString fpid;
KIWAY_PLAYER* frame = Kiway().Player( FRAME_PCB_MODULE_VIEWER_MODAL, true );
if( frame->ShowModal( &fpid, this ) )
{
// DBG( printf( "%s: %s\n", __func__, TO_UTF8( fpid ) ); )
m_TextValue->SetValue( fpid );
}
frame->Destroy();
}
void DIALOG_LIB_EDIT_ONE_FIELD::initDlg() void DIALOG_LIB_EDIT_ONE_FIELD::initDlg()
{ {
m_textsize = m_field->GetSize().x; m_textsize = m_field->GetSize().x;
m_TextValue->SetValue( m_field->GetText() ); m_TextValue->SetValue( m_field->GetText() );
m_textorient = m_field->GetOrientation(); m_textorient = m_field->GetOrientation();
m_text_invisible = m_field->IsVisible() ? false : true; m_text_invisible = m_field->IsVisible() ? false : true;
m_textshape = 0; m_textshape = 0;
if( m_field->IsItalic() ) if( m_field->IsItalic() )
m_textshape = 1; m_textshape = 1;
if( m_field->IsBold() ) if( m_field->IsBold() )
m_textshape |= 2; m_textshape |= 2;
m_textHjustify = m_field->GetHorizJustify(); m_textHjustify = m_field->GetHorizJustify();
m_textVjustify = m_field->GetVertJustify(); m_textVjustify = m_field->GetVertJustify();
if( m_field->GetId() == FOOTPRINT )
{
m_TextValueSelectButton->Show();
m_TextValueSelectButton->Enable();
}
else
{
m_TextValueSelectButton->Hide();
m_TextValueSelectButton->Disable();
}
initDlg_base(); initDlg_base();
} }
wxString DIALOG_LIB_EDIT_ONE_FIELD::GetTextField() wxString DIALOG_LIB_EDIT_ONE_FIELD::GetTextField()
{ {
wxString line = m_TextValue->GetValue(); wxString line = m_TextValue->GetValue();
// Spaces are not allowed in fields, so replace them by '_' // Spaces are not allowed in fields, so replace them by '_'
line.Replace( wxT( " " ), wxT( "_" ) ); line.Replace( wxT( " " ), wxT( "_" ) );
return line; return line;
}; }
void DIALOG_EDIT_ONE_FIELD::TransfertDataToField() void DIALOG_EDIT_ONE_FIELD::TransfertDataToField()
{ {
@ -165,6 +196,7 @@ void DIALOG_EDIT_ONE_FIELD::TransfertDataToField()
} }
} }
void DIALOG_LIB_EDIT_ONE_FIELD::TransfertDataToField() void DIALOG_LIB_EDIT_ONE_FIELD::TransfertDataToField()
{ {
DIALOG_EDIT_ONE_FIELD::TransfertDataToField(); DIALOG_EDIT_ONE_FIELD::TransfertDataToField();
@ -189,14 +221,27 @@ void DIALOG_SCH_EDIT_ONE_FIELD::initDlg()
m_text_invisible = m_field->IsVisible() ? false : true; m_text_invisible = m_field->IsVisible() ? false : true;
m_textshape = 0; m_textshape = 0;
if( m_field->IsItalic() ) if( m_field->IsItalic() )
m_textshape = 1; m_textshape = 1;
if( m_field->IsBold() ) if( m_field->IsBold() )
m_textshape |= 2; m_textshape |= 2;
m_textHjustify = m_field->GetHorizJustify(); m_textHjustify = m_field->GetHorizJustify();
m_textVjustify = m_field->GetVertJustify(); m_textVjustify = m_field->GetVertJustify();
if( m_field->GetId() == FOOTPRINT )
{
m_TextValueSelectButton->Show();
m_TextValueSelectButton->Enable();
}
else
{
m_TextValueSelectButton->Hide();
m_TextValueSelectButton->Disable();
}
initDlg_base(); initDlg_base();
} }
@ -209,6 +254,7 @@ wxString DIALOG_SCH_EDIT_ONE_FIELD::GetTextField()
return line; return line;
}; };
void DIALOG_SCH_EDIT_ONE_FIELD::TransfertDataToField() void DIALOG_SCH_EDIT_ONE_FIELD::TransfertDataToField()
{ {
DIALOG_EDIT_ONE_FIELD::TransfertDataToField(); DIALOG_EDIT_ONE_FIELD::TransfertDataToField();

View File

@ -33,7 +33,15 @@ class SCH_BASE_FRAME;
class LIB_FIELD; class LIB_FIELD;
class SCH_FIELD; class SCH_FIELD;
// Basic class to edit a field: a schematic or a lib component field
/**
* Class DIALOG_EDIT_ONE_FIELD
* is a basic class to edit a field: a schematic or a lib component field
* <p>
* This class is setup in expectation of its children
* possibly using Kiway player so ShowQuasiModal is required when calling
* any subclasses.
*/
class DIALOG_EDIT_ONE_FIELD : public DIALOG_LIB_EDIT_TEXT_BASE class DIALOG_EDIT_ONE_FIELD : public DIALOG_LIB_EDIT_TEXT_BASE
{ {
protected: protected:
@ -55,6 +63,10 @@ public:
// ~DIALOG_EDIT_ONE_FIELD() {}; // ~DIALOG_EDIT_ONE_FIELD() {};
/**
* Function TransfertDataToField
* Converts fields from dialog window to variables to be used by child classes
*/
virtual void TransfertDataToField(); virtual void TransfertDataToField();
void SetTextField( const wxString& aText ) void SetTextField( const wxString& aText )
@ -62,21 +74,49 @@ public:
m_TextValue->SetValue( aText ); m_TextValue->SetValue( aText );
} }
protected: protected:
void initDlg_base( ); /**
* Function initDlg_base
* Common dialog option initialization for the subclasses to call
*/
void initDlg_base();
/**
* Function OnTextValueSelectButtonClick
* Handles the select button next to the text value field. The current assumption
* is that this event will only be enabled for footprint type fields. In the future
* this function may need to be moved to the subclasses to access m_field and check for
* the field type if more select actions are desired.
*
* @param aEvent is the the wX event thrown when the button is clicked, this isn't used
*/
void OnTextValueSelectButtonClick( wxCommandEvent& aEvent );
void OnOkClick( wxCommandEvent& aEvent ) void OnOkClick( wxCommandEvent& aEvent )
{ {
EndModal(wxID_OK); EndQuasiModal( wxID_OK );
} }
void OnCancelClick( wxCommandEvent& aEvent ) void OnCancelClick( wxCommandEvent& event )
{ {
EndModal(wxID_CANCEL); EndQuasiModal( wxID_CANCEL );
}
void OnCloseDialog( wxCloseEvent& aEvent )
{
EndQuasiModal( wxID_CANCEL );
} }
}; };
// Class to edit a lib component field /**
* Class DIALOG_LIB_EDIT_ONE_FIELD
* is a the class to handle editing a single component field
* in the library editor.
* <p>
* Note: Use ShowQuasiModal when calling this class!
*/
class DIALOG_LIB_EDIT_ONE_FIELD : public DIALOG_EDIT_ONE_FIELD class DIALOG_LIB_EDIT_ONE_FIELD : public DIALOG_EDIT_ONE_FIELD
{ {
private: private:
@ -89,21 +129,37 @@ public:
{ {
m_field = aField; m_field = aField;
initDlg(); initDlg();
GetSizer()->SetSizeHints(this); GetSizer()->SetSizeHints( this );
Centre(); Centre();
} }
~DIALOG_LIB_EDIT_ONE_FIELD() {}; ~DIALOG_LIB_EDIT_ONE_FIELD() {};
void TransfertDataToField(); void TransfertDataToField();
/**
* Function GetTextField
* Returns the dialog's text field value with spaces filtered to underscores
*/
wxString GetTextField(); wxString GetTextField();
private: private:
/**
* Function initDlg
* Initializes dialog data using the LIB_FIELD container of data, this function is
* otherwise identical to DIALOG_SCH_EDIT_ONE_FIELD::initDlg()
*/
void initDlg( ); void initDlg( );
}; };
// Class to edit a schematic component field /**
* Class DIALOG_SCH_EDIT_ONE_FIELD
* is a the class to handle editing a single component field
* in the schematic editor.
* <p>
* Note: Use ShowQuasiModal when calling this class!
*/
class DIALOG_SCH_EDIT_ONE_FIELD : public DIALOG_EDIT_ONE_FIELD class DIALOG_SCH_EDIT_ONE_FIELD : public DIALOG_EDIT_ONE_FIELD
{ {
private: private:
@ -116,16 +172,26 @@ public:
{ {
m_field = aField; m_field = aField;
initDlg(); initDlg();
GetSizer()->SetSizeHints(this); GetSizer()->SetSizeHints( this );
Centre(); Centre();
} }
// ~DIALOG_SCH_EDIT_ONE_FIELD() {}; // ~DIALOG_SCH_EDIT_ONE_FIELD() {};
void TransfertDataToField(); void TransfertDataToField();
/**
* Function GetTextField
* Retrieves text field value from dialog with whitespaced on both sides trimmed
*/
wxString GetTextField(); wxString GetTextField();
private: private:
/**
* Function initDlg
* Initializes dialog data using the SCH_FIELD container of data, this function is
* otherwise identical to DIALOG_LIB_EDIT_ONE_FIELD::initDlg()
*/
void initDlg( ); void initDlg( );
}; };

View File

@ -131,6 +131,9 @@ void DIALOG_LIB_EDIT_TEXT::initDlg( )
m_TextSizeText->SetLabel( msg ); m_TextSizeText->SetLabel( msg );
m_sdbSizerButtonsOK->SetDefault(); m_sdbSizerButtonsOK->SetDefault();
// Hide the select button as the child dialog classes use this
m_TextValueSelectButton->Hide();
} }

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 6 2013) // C++ code generated with wxFormBuilder (version Jun 5 2014)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
@ -29,11 +29,20 @@ DIALOG_LIB_EDIT_TEXT_BASE::DIALOG_LIB_EDIT_TEXT_BASE( wxWindow* parent, wxWindow
m_staticText1->Wrap( -1 ); m_staticText1->Wrap( -1 );
bTextValueBoxSizer->Add( m_staticText1, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); bTextValueBoxSizer->Add( m_staticText1, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bTextValueOptsSizer;
bTextValueOptsSizer = new wxBoxSizer( wxHORIZONTAL );
m_TextValue = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_TextValue = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_TextValue->SetMaxLength( 0 ); m_TextValue->SetMaxLength( 0 );
m_TextValue->SetMinSize( wxSize( 200,-1 ) ); m_TextValue->SetMinSize( wxSize( 200,-1 ) );
bTextValueBoxSizer->Add( m_TextValue, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); bTextValueOptsSizer->Add( m_TextValue, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
m_TextValueSelectButton = new wxButton( this, wxID_ANY, _("Select"), wxDefaultPosition, wxDefaultSize, 0 );
bTextValueOptsSizer->Add( m_TextValueSelectButton, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
bTextValueBoxSizer->Add( bTextValueOptsSizer, 1, wxEXPAND, 5 );
bUpperBoxSizer->Add( bTextValueBoxSizer, 1, wxEXPAND, 5 ); bUpperBoxSizer->Add( bTextValueBoxSizer, 1, wxEXPAND, 5 );
@ -82,7 +91,7 @@ DIALOG_LIB_EDIT_TEXT_BASE::DIALOG_LIB_EDIT_TEXT_BASE( wxWindow* parent, wxWindow
wxString m_TextShapeOptChoices[] = { _("Normal"), _("Italic"), _("Bold"), _("Bold Italic") }; wxString m_TextShapeOptChoices[] = { _("Normal"), _("Italic"), _("Bold"), _("Bold Italic") };
int m_TextShapeOptNChoices = sizeof( m_TextShapeOptChoices ) / sizeof( wxString ); int m_TextShapeOptNChoices = sizeof( m_TextShapeOptChoices ) / sizeof( wxString );
m_TextShapeOpt = new wxRadioBox( this, wxID_ANY, _("Style"), wxDefaultPosition, wxDefaultSize, m_TextShapeOptNChoices, m_TextShapeOptChoices, 1, wxRA_SPECIFY_COLS ); m_TextShapeOpt = new wxRadioBox( this, wxID_ANY, _("Style"), wxDefaultPosition, wxDefaultSize, m_TextShapeOptNChoices, m_TextShapeOptChoices, 1, wxRA_SPECIFY_COLS );
m_TextShapeOpt->SetSelection( 0 ); m_TextShapeOpt->SetSelection( 3 );
bBottomtBoxSizer->Add( m_TextShapeOpt, 1, wxALL|wxEXPAND, 5 ); bBottomtBoxSizer->Add( m_TextShapeOpt, 1, wxALL|wxEXPAND, 5 );
wxString m_TextHJustificationOptChoices[] = { _("Align left"), _("Align center"), _("Align right") }; wxString m_TextHJustificationOptChoices[] = { _("Align left"), _("Align center"), _("Align right") };
@ -124,6 +133,8 @@ DIALOG_LIB_EDIT_TEXT_BASE::DIALOG_LIB_EDIT_TEXT_BASE( wxWindow* parent, wxWindow
bMainSizer->Fit( this ); bMainSizer->Fit( this );
// Connect Events // Connect Events
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_LIB_EDIT_TEXT_BASE::OnCloseDialog ) );
m_TextValueSelectButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_TEXT_BASE::OnTextValueSelectButtonClick ), NULL, this );
m_sdbSizerButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_TEXT_BASE::OnCancelClick ), NULL, this ); m_sdbSizerButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_TEXT_BASE::OnCancelClick ), NULL, this );
m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_TEXT_BASE::OnOkClick ), NULL, this ); m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_TEXT_BASE::OnOkClick ), NULL, this );
} }
@ -131,6 +142,8 @@ DIALOG_LIB_EDIT_TEXT_BASE::DIALOG_LIB_EDIT_TEXT_BASE( wxWindow* parent, wxWindow
DIALOG_LIB_EDIT_TEXT_BASE::~DIALOG_LIB_EDIT_TEXT_BASE() DIALOG_LIB_EDIT_TEXT_BASE::~DIALOG_LIB_EDIT_TEXT_BASE()
{ {
// Disconnect Events // Disconnect Events
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_LIB_EDIT_TEXT_BASE::OnCloseDialog ) );
m_TextValueSelectButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_TEXT_BASE::OnTextValueSelectButtonClick ), NULL, this );
m_sdbSizerButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_TEXT_BASE::OnCancelClick ), NULL, this ); m_sdbSizerButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_TEXT_BASE::OnCancelClick ), NULL, this );
m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_TEXT_BASE::OnOkClick ), NULL, this ); m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_TEXT_BASE::OnOkClick ), NULL, this );

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<wxFormBuilder_Project> <wxFormBuilder_Project>
<FileVersion major="1" minor="11" /> <FileVersion major="1" minor="13" />
<object class="Project" expanded="1"> <object class="Project" expanded="1">
<property name="class_decoration"></property> <property name="class_decoration"></property>
<property name="code_generation">C++</property> <property name="code_generation">C++</property>
@ -61,7 +61,7 @@
<event name="OnAuiPaneRestore"></event> <event name="OnAuiPaneRestore"></event>
<event name="OnAuiRender"></event> <event name="OnAuiRender"></event>
<event name="OnChar"></event> <event name="OnChar"></event>
<event name="OnClose"></event> <event name="OnClose">OnCloseDialog</event>
<event name="OnEnterWindow"></event> <event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event> <event name="OnEraseBackground"></event>
<event name="OnHibernate"></event> <event name="OnHibernate"></event>
@ -111,11 +111,11 @@
<property name="name">bUpperBoxSizer</property> <property name="name">bUpperBoxSizer</property>
<property name="orient">wxHORIZONTAL</property> <property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property> <property name="permission">none</property>
<object class="sizeritem" expanded="0"> <object class="sizeritem" expanded="1">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxEXPAND</property> <property name="flag">wxEXPAND</property>
<property name="proportion">1</property> <property name="proportion">1</property>
<object class="wxBoxSizer" expanded="0"> <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="name">bTextValueBoxSizer</property> <property name="name">bTextValueBoxSizer</property>
<property name="orient">wxVERTICAL</property> <property name="orient">wxVERTICAL</property>
@ -203,95 +203,194 @@
<event name="OnUpdateUI"></event> <event name="OnUpdateUI"></event>
</object> </object>
</object> </object>
<object class="sizeritem" expanded="0"> <object class="sizeritem" expanded="1">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property> <property name="flag">wxEXPAND</property>
<property name="proportion">1</property> <property name="proportion">1</property>
<object class="wxTextCtrl" expanded="0"> <object class="wxBoxSizer" expanded="1">
<property name="BottomDockable">1</property> <property name="minimum_size"></property>
<property name="LeftDockable">1</property> <property name="name">bTextValueOptsSizer</property>
<property name="RightDockable">1</property> <property name="orient">wxHORIZONTAL</property>
<property name="TopDockable">1</property> <property name="permission">none</property>
<property name="aui_layer"></property> <object class="sizeritem" expanded="0">
<property name="aui_name"></property> <property name="border">5</property>
<property name="aui_position"></property> <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
<property name="aui_row"></property> <property name="proportion">1</property>
<property name="best_size"></property> <object class="wxTextCtrl" expanded="0">
<property name="bg"></property> <property name="BottomDockable">1</property>
<property name="caption"></property> <property name="LeftDockable">1</property>
<property name="caption_visible">1</property> <property name="RightDockable">1</property>
<property name="center_pane">0</property> <property name="TopDockable">1</property>
<property name="close_button">1</property> <property name="aui_layer"></property>
<property name="context_help"></property> <property name="aui_name"></property>
<property name="context_menu">1</property> <property name="aui_position"></property>
<property name="default_pane">0</property> <property name="aui_row"></property>
<property name="dock">Dock</property> <property name="best_size"></property>
<property name="dock_fixed">0</property> <property name="bg"></property>
<property name="docking">Left</property> <property name="caption"></property>
<property name="enabled">1</property> <property name="caption_visible">1</property>
<property name="fg"></property> <property name="center_pane">0</property>
<property name="floatable">1</property> <property name="close_button">1</property>
<property name="font"></property> <property name="context_help"></property>
<property name="gripper">0</property> <property name="context_menu">1</property>
<property name="hidden">0</property> <property name="default_pane">0</property>
<property name="id">wxID_ANY</property> <property name="dock">Dock</property>
<property name="max_size"></property> <property name="dock_fixed">0</property>
<property name="maximize_button">0</property> <property name="docking">Left</property>
<property name="maximum_size"></property> <property name="enabled">1</property>
<property name="maxlength">0</property> <property name="fg"></property>
<property name="min_size"></property> <property name="floatable">1</property>
<property name="minimize_button">0</property> <property name="font"></property>
<property name="minimum_size">200,-1</property> <property name="gripper">0</property>
<property name="moveable">1</property> <property name="hidden">0</property>
<property name="name">m_TextValue</property> <property name="id">wxID_ANY</property>
<property name="pane_border">1</property> <property name="max_size"></property>
<property name="pane_position"></property> <property name="maximize_button">0</property>
<property name="pane_size"></property> <property name="maximum_size"></property>
<property name="permission">protected</property> <property name="maxlength">0</property>
<property name="pin_button">1</property> <property name="min_size"></property>
<property name="pos"></property> <property name="minimize_button">0</property>
<property name="resize">Resizable</property> <property name="minimum_size">200,-1</property>
<property name="show">1</property> <property name="moveable">1</property>
<property name="size"></property> <property name="name">m_TextValue</property>
<property name="style"></property> <property name="pane_border">1</property>
<property name="subclass"></property> <property name="pane_position"></property>
<property name="toolbar_pane">0</property> <property name="pane_size"></property>
<property name="tooltip"></property> <property name="permission">protected</property>
<property name="validator_data_type"></property> <property name="pin_button">1</property>
<property name="validator_style">wxFILTER_NONE</property> <property name="pos"></property>
<property name="validator_type">wxDefaultValidator</property> <property name="resize">Resizable</property>
<property name="validator_variable"></property> <property name="show">1</property>
<property name="value"></property> <property name="size"></property>
<property name="window_extra_style"></property> <property name="style"></property>
<property name="window_name"></property> <property name="subclass"></property>
<property name="window_style"></property> <property name="toolbar_pane">0</property>
<event name="OnChar"></event> <property name="tooltip"></property>
<event name="OnEnterWindow"></event> <property name="validator_data_type"></property>
<event name="OnEraseBackground"></event> <property name="validator_style">wxFILTER_NONE</property>
<event name="OnKeyDown"></event> <property name="validator_type">wxDefaultValidator</property>
<event name="OnKeyUp"></event> <property name="validator_variable"></property>
<event name="OnKillFocus"></event> <property name="value"></property>
<event name="OnLeaveWindow"></event> <property name="window_extra_style"></property>
<event name="OnLeftDClick"></event> <property name="window_name"></property>
<event name="OnLeftDown"></event> <property name="window_style"></property>
<event name="OnLeftUp"></event> <event name="OnChar"></event>
<event name="OnMiddleDClick"></event> <event name="OnEnterWindow"></event>
<event name="OnMiddleDown"></event> <event name="OnEraseBackground"></event>
<event name="OnMiddleUp"></event> <event name="OnKeyDown"></event>
<event name="OnMotion"></event> <event name="OnKeyUp"></event>
<event name="OnMouseEvents"></event> <event name="OnKillFocus"></event>
<event name="OnMouseWheel"></event> <event name="OnLeaveWindow"></event>
<event name="OnPaint"></event> <event name="OnLeftDClick"></event>
<event name="OnRightDClick"></event> <event name="OnLeftDown"></event>
<event name="OnRightDown"></event> <event name="OnLeftUp"></event>
<event name="OnRightUp"></event> <event name="OnMiddleDClick"></event>
<event name="OnSetFocus"></event> <event name="OnMiddleDown"></event>
<event name="OnSize"></event> <event name="OnMiddleUp"></event>
<event name="OnText"></event> <event name="OnMotion"></event>
<event name="OnTextEnter"></event> <event name="OnMouseEvents"></event>
<event name="OnTextMaxLen"></event> <event name="OnMouseWheel"></event>
<event name="OnTextURL"></event> <event name="OnPaint"></event>
<event name="OnUpdateUI"></event> <event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnText"></event>
<event name="OnTextEnter"></event>
<event name="OnTextMaxLen"></event>
<event name="OnTextURL"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALIGN_CENTER_VERTICAL|wxBOTTOM</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default">0</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Select</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_TextValueSelectButton</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnButtonClick">OnTextValueSelectButtonClick</event>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
</object> </object>
</object> </object>
</object> </object>
@ -989,7 +1088,7 @@
<property name="pin_button">1</property> <property name="pin_button">1</property>
<property name="pos"></property> <property name="pos"></property>
<property name="resize">Resizable</property> <property name="resize">Resizable</property>
<property name="selection">0</property> <property name="selection">3</property>
<property name="show">1</property> <property name="show">1</property>
<property name="size"></property> <property name="size"></property>
<property name="style">wxRA_SPECIFY_COLS</property> <property name="style">wxRA_SPECIFY_COLS</property>

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 6 2013) // C++ code generated with wxFormBuilder (version Jun 5 2014)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
@ -21,12 +21,12 @@ class DIALOG_SHIM;
#include <wx/colour.h> #include <wx/colour.h>
#include <wx/settings.h> #include <wx/settings.h>
#include <wx/textctrl.h> #include <wx/textctrl.h>
#include <wx/button.h>
#include <wx/sizer.h> #include <wx/sizer.h>
#include <wx/checkbox.h> #include <wx/checkbox.h>
#include <wx/statline.h> #include <wx/statline.h>
#include <wx/statbox.h> #include <wx/statbox.h>
#include <wx/radiobox.h> #include <wx/radiobox.h>
#include <wx/button.h>
#include <wx/dialog.h> #include <wx/dialog.h>
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
@ -41,6 +41,7 @@ class DIALOG_LIB_EDIT_TEXT_BASE : public DIALOG_SHIM
protected: protected:
wxStaticText* m_staticText1; wxStaticText* m_staticText1;
wxTextCtrl* m_TextValue; wxTextCtrl* m_TextValue;
wxButton* m_TextValueSelectButton;
wxStaticText* m_TextSizeText; wxStaticText* m_TextSizeText;
wxTextCtrl* m_TextSize; wxTextCtrl* m_TextSize;
wxCheckBox* m_Orient; wxCheckBox* m_Orient;
@ -56,6 +57,8 @@ class DIALOG_LIB_EDIT_TEXT_BASE : public DIALOG_SHIM
wxButton* m_sdbSizerButtonsCancel; wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, overide them in your derived class
virtual void OnCloseDialog( wxCloseEvent& event ) { event.Skip(); }
virtual void OnTextValueSelectButtonClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); }

View File

@ -85,7 +85,9 @@ void SCH_EDIT_FRAME::EditComponentFieldText( SCH_FIELD* aField )
DIALOG_SCH_EDIT_ONE_FIELD dlg( this, title, aField ); DIALOG_SCH_EDIT_ONE_FIELD dlg( this, title, aField );
int response = dlg.ShowModal(); //The diag may invoke a kiway player for footprint fields
//so we must use a quasimodal
int response = dlg.ShowQuasiModal();
m_canvas->MoveCursorToCrossHair(); m_canvas->MoveCursorToCrossHair();
m_canvas->SetIgnoreMouseEvents( false ); m_canvas->SetIgnoreMouseEvents( false );

View File

@ -44,7 +44,9 @@ void LIB_EDIT_FRAME::EditField( LIB_FIELD* aField )
DIALOG_LIB_EDIT_ONE_FIELD dlg( this, caption, aField ); DIALOG_LIB_EDIT_ONE_FIELD dlg( this, caption, aField );
if( dlg.ShowModal() != wxID_OK ) //The diag may invoke a kiway player for footprint fields
//so we must use a quasimodal
if( dlg.ShowQuasiModal() != wxID_OK )
return; return;
text = dlg.GetTextField(); text = dlg.GetTextField();