mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-09-14 02:03:12 +02:00
Eeschema and pcbnew: Table Cell Properties
This commit is contained in:
parent
5771467ca3
commit
76a3d1c845
@ -33,22 +33,50 @@
|
||||
#include <tool/tool_manager.h>
|
||||
#include <dialog_tablecell_properties.h>
|
||||
|
||||
|
||||
DIALOG_TABLECELL_PROPERTIES::DIALOG_TABLECELL_PROPERTIES( SCH_EDIT_FRAME* aFrame,
|
||||
DIALOG_TABLECELL_PROPERTIES::DIALOG_TABLECELL_PROPERTIES( SCH_EDIT_FRAME* aFrame,
|
||||
std::vector<SCH_TABLECELL*> aCells ) :
|
||||
DIALOG_TABLECELL_PROPERTIES_BASE( aFrame ),
|
||||
m_frame( aFrame ),
|
||||
m_table( nullptr ),
|
||||
DIALOG_TABLECELL_PROPERTIES_BASE( aFrame ), m_frame( aFrame ), m_table( nullptr ),
|
||||
m_cells( std::move( aCells ) ),
|
||||
m_textSize( aFrame, m_textSizeLabel, m_textSizeCtrl, m_textSizeUnits ),
|
||||
m_marginLeft( aFrame, nullptr, m_marginLeftCtrl, nullptr ),
|
||||
m_marginTop( aFrame, nullptr, m_marginTopCtrl, m_marginTopUnits ),
|
||||
m_marginRight( aFrame, nullptr, m_marginRightCtrl, nullptr ),
|
||||
m_marginBottom( aFrame, nullptr, m_marginBottomCtrl, nullptr ),
|
||||
m_scintillaTricks( nullptr ), m_cellText( m_cellTextCtrl ),
|
||||
m_returnValue( TABLECELL_PROPS_CANCEL )
|
||||
{
|
||||
wxASSERT( m_cells.size() > 0 && m_cells[0] );
|
||||
|
||||
m_cellText->SetEOLMode( wxSTC_EOL_LF );
|
||||
|
||||
#ifdef _WIN32
|
||||
// Without this setting, on Windows, some esoteric unicode chars create display issue
|
||||
// in a wxStyledTextCtrl.
|
||||
// for SetTechnology() info, see https://www.scintilla.org/ScintillaDoc.html#SCI_SETTECHNOLOGY
|
||||
m_cellText->SetTechnology( wxSTC_TECHNOLOGY_DIRECTWRITE );
|
||||
#endif
|
||||
|
||||
m_scintillaTricks = new SCINTILLA_TRICKS(
|
||||
m_cellText, wxT( "{}" ), false,
|
||||
// onAcceptFn
|
||||
[this]( wxKeyEvent& aEvent )
|
||||
{
|
||||
wxPostEvent( this, wxCommandEvent( wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK ) );
|
||||
},
|
||||
|
||||
// onCharFn
|
||||
[this]( wxStyledTextEvent& aEvent )
|
||||
{
|
||||
m_scintillaTricks->DoTextVarAutocomplete(
|
||||
// getTokensFn
|
||||
[this]( const wxString& xRef, wxArrayString* tokens )
|
||||
{
|
||||
getContextualTextVars( xRef, tokens );
|
||||
} );
|
||||
} );
|
||||
|
||||
SetInitialFocus( m_cellText );
|
||||
|
||||
m_table = static_cast<SCH_TABLE*>( m_cells[0]->GetParent() );
|
||||
|
||||
if( m_frame->GetColorSettings()->GetOverrideSchItemColors() )
|
||||
@ -86,6 +114,54 @@ DIALOG_TABLECELL_PROPERTIES::DIALOG_TABLECELL_PROPERTIES( SCH_EDIT_FRAME* aFrame
|
||||
finishDialogSettings();
|
||||
}
|
||||
|
||||
DIALOG_TABLECELL_PROPERTIES::~DIALOG_TABLECELL_PROPERTIES()
|
||||
{
|
||||
delete m_scintillaTricks;
|
||||
}
|
||||
|
||||
void DIALOG_TABLECELL_PROPERTIES::getContextualTextVars( const wxString& aCrossRef,
|
||||
wxArrayString* aTokens )
|
||||
{
|
||||
SCHEMATIC* schematic = m_table->Schematic();
|
||||
|
||||
if( !aCrossRef.IsEmpty() )
|
||||
{
|
||||
SCH_SYMBOL* refSymbol = nullptr;
|
||||
|
||||
if( schematic )
|
||||
{
|
||||
SCH_REFERENCE_LIST refs;
|
||||
schematic->Hierarchy().GetSymbols( refs );
|
||||
|
||||
for( int jj = 0; jj < (int) refs.GetCount(); jj++ )
|
||||
{
|
||||
SCH_REFERENCE& ref = refs[jj];
|
||||
|
||||
if( ref.GetSymbol()->GetRef( &ref.GetSheetPath(), true ) == aCrossRef )
|
||||
{
|
||||
refSymbol = ref.GetSymbol();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( refSymbol )
|
||||
refSymbol->GetContextualTextVars( aTokens );
|
||||
}
|
||||
else
|
||||
{
|
||||
if( schematic && schematic->CurrentSheet().Last() )
|
||||
{
|
||||
schematic->CurrentSheet().Last()->GetContextualTextVars( aTokens );
|
||||
}
|
||||
else
|
||||
{
|
||||
for( std::pair<wxString, wxString> entry : Prj().GetTextVars() )
|
||||
aTokens->push_back( entry.first );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool DIALOG_TABLECELL_PROPERTIES::TransferDataToWindow()
|
||||
{
|
||||
@ -98,6 +174,11 @@ bool DIALOG_TABLECELL_PROPERTIES::TransferDataToWindow()
|
||||
|
||||
for( SCH_TABLECELL* cell : m_cells )
|
||||
{
|
||||
wxString text = cell->GetText();
|
||||
|
||||
m_cellText->SetValue( text );
|
||||
m_cellText->EmptyUndoBuffer();
|
||||
|
||||
if( firstCell )
|
||||
{
|
||||
m_fontCtrl->SetFontSelection( cell->GetFont() );
|
||||
@ -258,6 +339,19 @@ bool DIALOG_TABLECELL_PROPERTIES::TransferDataFromWindow()
|
||||
|
||||
for( SCH_TABLECELL* cell : m_cells )
|
||||
{
|
||||
wxString text = m_cellTextCtrl->GetValue();
|
||||
|
||||
#ifdef __WXMAC__
|
||||
// On macOS CTRL+Enter produces '\r' instead of '\n' regardless of EOL setting
|
||||
text.Replace( "\r", "\n" );
|
||||
#elif defined( __WINDOWS__ )
|
||||
// On Windows, a new line is coded as \r\n. We use only \n in KiCad files and in
|
||||
// drawing routines so strip the \r char.
|
||||
text.Replace( "\r", "" );
|
||||
#endif
|
||||
|
||||
cell->SetText( text );
|
||||
|
||||
if( m_bold->Get3StateValue() == wxCHK_CHECKED )
|
||||
cell->SetBold( true );
|
||||
else if( m_bold->Get3StateValue() == wxCHK_UNCHECKED )
|
||||
@ -335,3 +429,11 @@ void DIALOG_TABLECELL_PROPERTIES::onEditTable( wxCommandEvent& aEvent )
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
void DIALOG_TABLECELL_PROPERTIES::onMultiLineTCLostFocus( wxFocusEvent& event )
|
||||
{
|
||||
if( m_scintillaTricks )
|
||||
m_scintillaTricks->CancelAutocomplete();
|
||||
|
||||
event.Skip();
|
||||
}
|
@ -31,7 +31,7 @@
|
||||
class SCH_EDIT_FRAME;
|
||||
class SCH_TABLE;
|
||||
class SCH_TABLECELL;
|
||||
|
||||
class SCINTILLA_TRICKS;
|
||||
|
||||
class DIALOG_TABLECELL_PROPERTIES : public DIALOG_TABLECELL_PROPERTIES_BASE
|
||||
{
|
||||
@ -45,11 +45,15 @@ public:
|
||||
};
|
||||
|
||||
DIALOG_TABLECELL_PROPERTIES( SCH_EDIT_FRAME* aParentFrame, std::vector<SCH_TABLECELL*> aCells );
|
||||
~DIALOG_TABLECELL_PROPERTIES();
|
||||
|
||||
///< @return the value depending on the way the dialog was closed.
|
||||
enum TABLECELL_PROPS_RETVALUE GetReturnValue() { return m_returnValue; }
|
||||
|
||||
private:
|
||||
void getContextualTextVars( const wxString& aCrossRef, wxArrayString* aTokens );
|
||||
void onMultiLineTCLostFocus( wxFocusEvent& event ) override;
|
||||
|
||||
bool TransferDataToWindow() override;
|
||||
bool TransferDataFromWindow() override;
|
||||
|
||||
@ -60,16 +64,21 @@ private:
|
||||
|
||||
void onEditTable( wxCommandEvent& aEvent ) override;
|
||||
|
||||
void OnSystemColourChanged( wxSysColourChangedEvent& event );
|
||||
|
||||
void UpdateTheme( void );
|
||||
private:
|
||||
SCH_EDIT_FRAME* m_frame;
|
||||
SCH_TABLE* m_table;
|
||||
std::vector<SCH_TABLECELL*> m_cells;
|
||||
SCINTILLA_TRICKS* m_scintillaTricks;
|
||||
|
||||
UNIT_BINDER m_textSize;
|
||||
UNIT_BINDER m_marginLeft;
|
||||
UNIT_BINDER m_marginTop;
|
||||
UNIT_BINDER m_marginRight;
|
||||
UNIT_BINDER m_marginBottom;
|
||||
wxStyledTextCtrl* m_cellText;
|
||||
|
||||
enum TABLECELL_PROPS_RETVALUE m_returnValue; // the option that closed the dialog
|
||||
};
|
||||
|
@ -1,5 +1,5 @@
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version 4.1.0-0-g733bf3d)
|
||||
// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||
@ -28,11 +28,70 @@ DIALOG_TABLECELL_PROPERTIES_BASE::DIALOG_TABLECELL_PROPERTIES_BASE( wxWindow* pa
|
||||
|
||||
bMainSizer->Add( m_infoBar, 0, wxEXPAND|wxBOTTOM, 5 );
|
||||
|
||||
wxBoxSizer* bSizer151;
|
||||
bSizer151 = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
wxBoxSizer* bSizer16;
|
||||
bSizer16 = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
wxBoxSizer* bSizer18;
|
||||
bSizer18 = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_cellTextLabel = new wxStaticText( this, wxID_ANY, _("Cell contents:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cellTextLabel->Wrap( -1 );
|
||||
bSizer18->Add( m_cellTextLabel, 0, wxALL, 5 );
|
||||
|
||||
m_cellTextCtrl = new wxStyledTextCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN, wxEmptyString );
|
||||
m_cellTextCtrl->SetUseTabs( false );
|
||||
m_cellTextCtrl->SetTabWidth( 4 );
|
||||
m_cellTextCtrl->SetIndent( 4 );
|
||||
m_cellTextCtrl->SetTabIndents( false );
|
||||
m_cellTextCtrl->SetBackSpaceUnIndents( false );
|
||||
m_cellTextCtrl->SetViewEOL( false );
|
||||
m_cellTextCtrl->SetViewWhiteSpace( false );
|
||||
m_cellTextCtrl->SetMarginWidth( 2, 0 );
|
||||
m_cellTextCtrl->SetIndentationGuides( false );
|
||||
m_cellTextCtrl->SetReadOnly( false );
|
||||
m_cellTextCtrl->SetMarginWidth( 1, 0 );
|
||||
m_cellTextCtrl->SetMarginWidth( 0, 0 );
|
||||
{
|
||||
wxFont font = wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString );
|
||||
m_cellTextCtrl->StyleSetFont( wxSTC_STYLE_DEFAULT, font );
|
||||
}
|
||||
m_cellTextCtrl->MarkerDefine( wxSTC_MARKNUM_FOLDER, wxSTC_MARK_BOXPLUS );
|
||||
m_cellTextCtrl->MarkerSetBackground( wxSTC_MARKNUM_FOLDER, wxColour( wxT("BLACK") ) );
|
||||
m_cellTextCtrl->MarkerSetForeground( wxSTC_MARKNUM_FOLDER, wxColour( wxT("WHITE") ) );
|
||||
m_cellTextCtrl->MarkerDefine( wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_BOXMINUS );
|
||||
m_cellTextCtrl->MarkerSetBackground( wxSTC_MARKNUM_FOLDEROPEN, wxColour( wxT("BLACK") ) );
|
||||
m_cellTextCtrl->MarkerSetForeground( wxSTC_MARKNUM_FOLDEROPEN, wxColour( wxT("WHITE") ) );
|
||||
m_cellTextCtrl->MarkerDefine( wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_EMPTY );
|
||||
m_cellTextCtrl->MarkerDefine( wxSTC_MARKNUM_FOLDEREND, wxSTC_MARK_BOXPLUS );
|
||||
m_cellTextCtrl->MarkerSetBackground( wxSTC_MARKNUM_FOLDEREND, wxColour( wxT("BLACK") ) );
|
||||
m_cellTextCtrl->MarkerSetForeground( wxSTC_MARKNUM_FOLDEREND, wxColour( wxT("WHITE") ) );
|
||||
m_cellTextCtrl->MarkerDefine( wxSTC_MARKNUM_FOLDEROPENMID, wxSTC_MARK_BOXMINUS );
|
||||
m_cellTextCtrl->MarkerSetBackground( wxSTC_MARKNUM_FOLDEROPENMID, wxColour( wxT("BLACK") ) );
|
||||
m_cellTextCtrl->MarkerSetForeground( wxSTC_MARKNUM_FOLDEROPENMID, wxColour( wxT("WHITE") ) );
|
||||
m_cellTextCtrl->MarkerDefine( wxSTC_MARKNUM_FOLDERMIDTAIL, wxSTC_MARK_EMPTY );
|
||||
m_cellTextCtrl->MarkerDefine( wxSTC_MARKNUM_FOLDERTAIL, wxSTC_MARK_EMPTY );
|
||||
m_cellTextCtrl->SetSelBackground( true, wxSystemSettings::GetColour( wxSYS_COLOUR_HIGHLIGHT ) );
|
||||
m_cellTextCtrl->SetSelForeground( true, wxSystemSettings::GetColour( wxSYS_COLOUR_HIGHLIGHTTEXT ) );
|
||||
m_cellTextCtrl->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
|
||||
m_cellTextCtrl->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
|
||||
m_cellTextCtrl->SetMinSize( wxSize( 200,100 ) );
|
||||
|
||||
bSizer18->Add( m_cellTextCtrl, 1, wxEXPAND | wxALL, 5 );
|
||||
|
||||
|
||||
bSizer16->Add( bSizer18, 1, wxEXPAND, 5 );
|
||||
|
||||
wxBoxSizer* bSizer17;
|
||||
bSizer17 = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
wxBoxSizer* bSizer13;
|
||||
bSizer13 = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
wxBoxSizer* bMargins;
|
||||
bMargins = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
bSizer13->Add( 0, 20, 0, 0, 5 );
|
||||
|
||||
wxFlexGridSizer* fgTextStyleSizer;
|
||||
fgTextStyleSizer = new wxFlexGridSizer( 0, 2, 5, 5 );
|
||||
@ -44,7 +103,7 @@ DIALOG_TABLECELL_PROPERTIES_BASE::DIALOG_TABLECELL_PROPERTIES_BASE( wxWindow* pa
|
||||
hAlignLabel->Wrap( -1 );
|
||||
hAlignLabel->SetToolTip( _("Horizontal alignment") );
|
||||
|
||||
fgTextStyleSizer->Add( hAlignLabel, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
fgTextStyleSizer->Add( hAlignLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
|
||||
|
||||
wxBoxSizer* hAlignButtons;
|
||||
hAlignButtons = new wxBoxSizer( wxHORIZONTAL );
|
||||
@ -65,13 +124,13 @@ DIALOG_TABLECELL_PROPERTIES_BASE::DIALOG_TABLECELL_PROPERTIES_BASE( wxWindow* pa
|
||||
hAlignButtons->Add( m_hAlignRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
|
||||
fgTextStyleSizer->Add( hAlignButtons, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
fgTextStyleSizer->Add( hAlignButtons, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
|
||||
|
||||
vAlignLabel = new wxStaticText( this, wxID_ANY, _("Vertical alignment:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
vAlignLabel->Wrap( -1 );
|
||||
vAlignLabel->SetToolTip( _("Vertical alignment") );
|
||||
|
||||
fgTextStyleSizer->Add( vAlignLabel, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
fgTextStyleSizer->Add( vAlignLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
|
||||
|
||||
wxBoxSizer* vAlignButtons;
|
||||
vAlignButtons = new wxBoxSizer( wxHORIZONTAL );
|
||||
@ -95,7 +154,10 @@ DIALOG_TABLECELL_PROPERTIES_BASE::DIALOG_TABLECELL_PROPERTIES_BASE( wxWindow* pa
|
||||
fgTextStyleSizer->Add( vAlignButtons, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
|
||||
bMargins->Add( fgTextStyleSizer, 0, wxEXPAND|wxBOTTOM, 6 );
|
||||
bSizer13->Add( fgTextStyleSizer, 0, wxBOTTOM|wxEXPAND, 6 );
|
||||
|
||||
wxBoxSizer* bMargins;
|
||||
bMargins = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
|
||||
bMargins->Add( 0, 10, 0, wxEXPAND, 5 );
|
||||
@ -108,7 +170,7 @@ DIALOG_TABLECELL_PROPERTIES_BASE::DIALOG_TABLECELL_PROPERTIES_BASE( wxWindow* pa
|
||||
|
||||
m_styleLabel = new wxStaticText( this, wxID_ANY, _("Style:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_styleLabel->Wrap( -1 );
|
||||
gbFontSizer->Add( m_styleLabel, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
gbFontSizer->Add( m_styleLabel, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
wxBoxSizer* bSizer14;
|
||||
bSizer14 = new wxBoxSizer( wxHORIZONTAL );
|
||||
@ -120,21 +182,21 @@ DIALOG_TABLECELL_PROPERTIES_BASE::DIALOG_TABLECELL_PROPERTIES_BASE( wxWindow* pa
|
||||
bSizer14->Add( m_italic, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 45 );
|
||||
|
||||
|
||||
gbFontSizer->Add( bSizer14, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 );
|
||||
gbFontSizer->Add( bSizer14, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 );
|
||||
|
||||
m_fontLabel = new wxStaticText( this, wxID_ANY, _("Font:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_fontLabel->Wrap( -1 );
|
||||
gbFontSizer->Add( m_fontLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 1 );
|
||||
gbFontSizer->Add( m_fontLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 1 );
|
||||
|
||||
wxString m_fontCtrlChoices[] = { _("Default Font"), _("KiCad Font") };
|
||||
int m_fontCtrlNChoices = sizeof( m_fontCtrlChoices ) / sizeof( wxString );
|
||||
m_fontCtrl = new FONT_CHOICE( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_fontCtrlNChoices, m_fontCtrlChoices, 0 );
|
||||
m_fontCtrl->SetSelection( 0 );
|
||||
gbFontSizer->Add( m_fontCtrl, wxGBPosition( 0, 1 ), wxGBSpan( 1, 3 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
|
||||
gbFontSizer->Add( m_fontCtrl, wxGBPosition( 1, 1 ), wxGBSpan( 1, 3 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
|
||||
|
||||
m_textSizeLabel = new wxStaticText( this, wxID_ANY, _("Size:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_textSizeLabel->Wrap( -1 );
|
||||
gbFontSizer->Add( m_textSizeLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
gbFontSizer->Add( m_textSizeLabel, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
wxBoxSizer* bSizer15;
|
||||
bSizer15 = new wxBoxSizer( wxHORIZONTAL );
|
||||
@ -147,7 +209,7 @@ DIALOG_TABLECELL_PROPERTIES_BASE::DIALOG_TABLECELL_PROPERTIES_BASE( wxWindow* pa
|
||||
bSizer15->Add( m_textSizeUnits, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 3 );
|
||||
|
||||
|
||||
gbFontSizer->Add( bSizer15, wxGBPosition( 1, 1 ), wxGBSpan( 1, 3 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
gbFontSizer->Add( bSizer15, wxGBPosition( 2, 1 ), wxGBSpan( 1, 3 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
|
||||
gbFontSizer->AddGrowableCol( 1 );
|
||||
@ -294,7 +356,16 @@ DIALOG_TABLECELL_PROPERTIES_BASE::DIALOG_TABLECELL_PROPERTIES_BASE( wxWindow* pa
|
||||
bSizer13->Add( bMargins, 1, wxEXPAND|wxALL, 5 );
|
||||
|
||||
|
||||
bMainSizer->Add( bSizer13, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
bSizer17->Add( bSizer13, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
|
||||
bSizer16->Add( bSizer17, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
bSizer151->Add( bSizer16, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
bMainSizer->Add( bSizer151, 1, wxEXPAND, 5 );
|
||||
|
||||
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
||||
bMainSizer->Add( m_staticline1, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
@ -328,6 +399,7 @@ DIALOG_TABLECELL_PROPERTIES_BASE::DIALOG_TABLECELL_PROPERTIES_BASE( wxWindow* pa
|
||||
bMainSizer->Fit( this );
|
||||
|
||||
// Connect Events
|
||||
this->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_TABLECELL_PROPERTIES_BASE::onMultiLineTCLostFocus ) );
|
||||
m_textColorPopup->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_TABLECELL_PROPERTIES_BASE::onTextColorPopup ), NULL, this );
|
||||
m_fillColorPopup->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_TABLECELL_PROPERTIES_BASE::onFillColorPopup ), NULL, this );
|
||||
m_editTable->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_TABLECELL_PROPERTIES_BASE::onEditTable ), NULL, this );
|
||||
@ -336,6 +408,7 @@ DIALOG_TABLECELL_PROPERTIES_BASE::DIALOG_TABLECELL_PROPERTIES_BASE( wxWindow* pa
|
||||
DIALOG_TABLECELL_PROPERTIES_BASE::~DIALOG_TABLECELL_PROPERTIES_BASE()
|
||||
{
|
||||
// Disconnect Events
|
||||
this->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_TABLECELL_PROPERTIES_BASE::onMultiLineTCLostFocus ) );
|
||||
m_textColorPopup->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_TABLECELL_PROPERTIES_BASE::onTextColorPopup ), NULL, this );
|
||||
m_fillColorPopup->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_TABLECELL_PROPERTIES_BASE::onFillColorPopup ), NULL, this );
|
||||
m_editTable->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_TABLECELL_PROPERTIES_BASE::onEditTable ), NULL, this );
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version 4.1.0-0-g733bf3d)
|
||||
// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||
@ -23,12 +23,13 @@ class WX_INFOBAR;
|
||||
#include <wx/settings.h>
|
||||
#include <wx/string.h>
|
||||
#include <wx/stattext.h>
|
||||
#include <wx/stc/stc.h>
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/bmpbuttn.h>
|
||||
#include <wx/bitmap.h>
|
||||
#include <wx/image.h>
|
||||
#include <wx/icon.h>
|
||||
#include <wx/button.h>
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/checkbox.h>
|
||||
#include <wx/choice.h>
|
||||
#include <wx/textctrl.h>
|
||||
@ -49,6 +50,8 @@ class DIALOG_TABLECELL_PROPERTIES_BASE : public DIALOG_SHIM
|
||||
|
||||
protected:
|
||||
WX_INFOBAR* m_infoBar;
|
||||
wxStaticText* m_cellTextLabel;
|
||||
wxStyledTextCtrl* m_cellTextCtrl;
|
||||
BITMAP_BUTTON* m_hAlignLeft;
|
||||
BITMAP_BUTTON* m_hAlignCenter;
|
||||
BITMAP_BUTTON* m_hAlignRight;
|
||||
@ -88,6 +91,7 @@ class DIALOG_TABLECELL_PROPERTIES_BASE : public DIALOG_SHIM
|
||||
wxButton* m_sdbSizer1Cancel;
|
||||
|
||||
// Virtual event handlers, override them in your derived class
|
||||
virtual void onMultiLineTCLostFocus( wxFocusEvent& event ) { event.Skip(); }
|
||||
virtual void onTextColorPopup( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void onFillColorPopup( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void onEditTable( wxCommandEvent& event ) { event.Skip(); }
|
||||
|
@ -52,10 +52,44 @@ DIALOG_TABLECELL_PROPERTIES::DIALOG_TABLECELL_PROPERTIES( PCB_BASE_EDIT_FRAME* a
|
||||
m_marginTop( aFrame, nullptr, m_marginTopCtrl, m_marginTopUnits ),
|
||||
m_marginRight( aFrame, nullptr, m_marginRightCtrl, nullptr ),
|
||||
m_marginBottom( aFrame, nullptr, m_marginBottomCtrl, nullptr ),
|
||||
m_cellText( m_cellTextCtrl ),
|
||||
m_returnValue( TABLECELL_PROPS_CANCEL )
|
||||
{
|
||||
wxASSERT( m_cells.size() > 0 && m_cells[0] );
|
||||
|
||||
m_cellText->SetEOLMode( wxSTC_EOL_LF );
|
||||
|
||||
#ifdef _WIN32
|
||||
// Without this setting, on Windows, some esoteric unicode chars create display issue
|
||||
// in a wxStyledTextCtrl.
|
||||
// for SetTechnology() info, see https://www.scintilla.org/ScintillaDoc.html#SCI_SETTECHNOLOGY
|
||||
m_cellText->SetTechnology(wxSTC_TECHNOLOGY_DIRECTWRITE);
|
||||
#endif
|
||||
|
||||
m_scintillaTricks = new SCINTILLA_TRICKS( m_cellText, wxT( "{}" ), false,
|
||||
// onAcceptFn
|
||||
[this]( wxKeyEvent& aEvent )
|
||||
{
|
||||
wxPostEvent( this, wxCommandEvent( wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK ) );
|
||||
},
|
||||
// onCharFn
|
||||
[this]( wxStyledTextEvent& aEvent )
|
||||
{
|
||||
m_scintillaTricks->DoTextVarAutocomplete(
|
||||
// getTokensFn
|
||||
[this]( const wxString& xRef, wxArrayString* tokens )
|
||||
{
|
||||
m_frame->GetContextualTextVars( m_table, xRef, tokens );
|
||||
} );
|
||||
} );
|
||||
|
||||
// A hack which causes Scintilla to auto-size the text editor canvas
|
||||
// See: https://github.com/jacobslusser/ScintillaNET/issues/216
|
||||
m_cellText->SetScrollWidth( 1 );
|
||||
m_cellText->SetScrollWidthTracking( true );
|
||||
|
||||
SetInitialFocus( m_cellText );
|
||||
|
||||
m_table = static_cast<PCB_TABLE*>( m_cells[0]->GetParent() );
|
||||
|
||||
m_hAlignLeft->SetIsRadioButton();
|
||||
@ -75,6 +109,9 @@ DIALOG_TABLECELL_PROPERTIES::DIALOG_TABLECELL_PROPERTIES( PCB_BASE_EDIT_FRAME* a
|
||||
SetupStandardButtons();
|
||||
Layout();
|
||||
|
||||
Connect( wxEVT_CHAR_HOOK, wxKeyEventHandler( DIALOG_TABLECELL_PROPERTIES::OnCharHook ),
|
||||
nullptr, this );
|
||||
|
||||
m_hAlignLeft->Bind( wxEVT_BUTTON, &DIALOG_TABLECELL_PROPERTIES::onHAlignButton, this );
|
||||
m_hAlignCenter->Bind( wxEVT_BUTTON, &DIALOG_TABLECELL_PROPERTIES::onHAlignButton, this );
|
||||
m_hAlignRight->Bind( wxEVT_BUTTON, &DIALOG_TABLECELL_PROPERTIES::onHAlignButton, this );
|
||||
@ -86,6 +123,14 @@ DIALOG_TABLECELL_PROPERTIES::DIALOG_TABLECELL_PROPERTIES( PCB_BASE_EDIT_FRAME* a
|
||||
finishDialogSettings();
|
||||
}
|
||||
|
||||
DIALOG_TABLECELL_PROPERTIES::~DIALOG_TABLECELL_PROPERTIES()
|
||||
{
|
||||
Disconnect( wxEVT_CHAR_HOOK, wxKeyEventHandler( DIALOG_TABLECELL_PROPERTIES::OnCharHook ),
|
||||
nullptr, this );
|
||||
|
||||
delete m_scintillaTricks;
|
||||
}
|
||||
|
||||
|
||||
bool DIALOG_TABLECELL_PROPERTIES::TransferDataToWindow()
|
||||
{
|
||||
@ -98,6 +143,7 @@ bool DIALOG_TABLECELL_PROPERTIES::TransferDataToWindow()
|
||||
|
||||
for( PCB_TABLECELL* cell : m_cells )
|
||||
{
|
||||
m_cellTextCtrl->SetValue( cell->GetText() );
|
||||
if( firstCell )
|
||||
{
|
||||
m_fontCtrl->SetFontSelection( cell->GetFont() );
|
||||
@ -221,6 +267,20 @@ bool DIALOG_TABLECELL_PROPERTIES::TransferDataFromWindow()
|
||||
|
||||
for( PCB_TABLECELL* cell : m_cells )
|
||||
{
|
||||
wxString txt = m_cellTextCtrl->GetValue();
|
||||
|
||||
#ifdef __WXMAC__
|
||||
// On macOS CTRL+Enter produces '\r' instead of '\n' regardless of EOL setting.
|
||||
// Replace it now.
|
||||
txt.Replace( "\r", "\n" );
|
||||
#elif defined( __WINDOWS__ )
|
||||
// On Windows, a new line is coded as \r\n. We use only \n in kicad files and in
|
||||
// drawing routines so strip the \r char.
|
||||
txt.Replace( "\r", "" );
|
||||
#endif
|
||||
|
||||
cell->SetText( txt );
|
||||
|
||||
if( m_bold->Get3StateValue() == wxCHK_CHECKED )
|
||||
cell->SetBold( true );
|
||||
else if( m_bold->Get3StateValue() == wxCHK_UNCHECKED )
|
||||
|
@ -33,7 +33,7 @@
|
||||
class PCB_BASE_EDIT_FRAME;
|
||||
class PCB_TABLE;
|
||||
class PCB_TABLECELL;
|
||||
|
||||
class SCINTILLA_TRICKS;
|
||||
|
||||
class DIALOG_TABLECELL_PROPERTIES : public DIALOG_TABLECELL_PROPERTIES_BASE
|
||||
{
|
||||
@ -48,7 +48,7 @@ public:
|
||||
|
||||
DIALOG_TABLECELL_PROPERTIES( PCB_BASE_EDIT_FRAME* aParentFrame,
|
||||
std::vector<PCB_TABLECELL*> aCells );
|
||||
|
||||
~DIALOG_TABLECELL_PROPERTIES();
|
||||
///< @return the value depending on the way the dialog was closed.
|
||||
enum TABLECELL_PROPS_RETVALUE GetReturnValue() { return m_returnValue; }
|
||||
|
||||
@ -61,6 +61,11 @@ private:
|
||||
|
||||
void onEditTable( wxCommandEvent& aEvent ) override;
|
||||
|
||||
virtual void onMultiLineTCLostFocus( wxFocusEvent& event ) { event.Skip(); }
|
||||
|
||||
void OnSystemColourChanged( wxSysColourChangedEvent& event );
|
||||
void UpdateTheme( void );
|
||||
|
||||
private:
|
||||
PCB_BASE_EDIT_FRAME* m_frame;
|
||||
PCB_TABLE* m_table;
|
||||
@ -73,6 +78,9 @@ private:
|
||||
UNIT_BINDER m_marginTop;
|
||||
UNIT_BINDER m_marginRight;
|
||||
UNIT_BINDER m_marginBottom;
|
||||
|
||||
wxStyledTextCtrl* m_cellText;
|
||||
SCINTILLA_TRICKS* m_scintillaTricks;
|
||||
|
||||
enum TABLECELL_PROPS_RETVALUE m_returnValue; // the option that closed the dialog
|
||||
};
|
||||
|
@ -27,9 +27,60 @@ DIALOG_TABLECELL_PROPERTIES_BASE::DIALOG_TABLECELL_PROPERTIES_BASE( wxWindow* pa
|
||||
|
||||
bMainSizer->Add( m_infoBar, 0, wxEXPAND|wxBOTTOM, 5 );
|
||||
|
||||
wxBoxSizer* bSizer7;
|
||||
bSizer7 = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
wxBoxSizer* bSizer8;
|
||||
bSizer8 = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_cellTextLabel = new wxStaticText( this, wxID_ANY, _("Cell contents:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_cellTextLabel->Wrap( -1 );
|
||||
bSizer8->Add( m_cellTextLabel, 0, wxALL, 5 );
|
||||
|
||||
m_cellTextCtrl = new wxStyledTextCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN, wxEmptyString );
|
||||
m_cellTextCtrl->SetUseTabs( false );
|
||||
m_cellTextCtrl->SetTabWidth( 4 );
|
||||
m_cellTextCtrl->SetIndent( 4 );
|
||||
m_cellTextCtrl->SetTabIndents( false );
|
||||
m_cellTextCtrl->SetBackSpaceUnIndents( false );
|
||||
m_cellTextCtrl->SetViewEOL( false );
|
||||
m_cellTextCtrl->SetViewWhiteSpace( false );
|
||||
m_cellTextCtrl->SetMarginWidth( 2, 0 );
|
||||
m_cellTextCtrl->SetIndentationGuides( false );
|
||||
m_cellTextCtrl->SetReadOnly( false );
|
||||
m_cellTextCtrl->SetMarginWidth( 1, 0 );
|
||||
m_cellTextCtrl->SetMarginWidth( 0, 0 );
|
||||
m_cellTextCtrl->MarkerDefine( wxSTC_MARKNUM_FOLDER, wxSTC_MARK_BOXPLUS );
|
||||
m_cellTextCtrl->MarkerSetBackground( wxSTC_MARKNUM_FOLDER, wxColour( wxT("BLACK") ) );
|
||||
m_cellTextCtrl->MarkerSetForeground( wxSTC_MARKNUM_FOLDER, wxColour( wxT("WHITE") ) );
|
||||
m_cellTextCtrl->MarkerDefine( wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_BOXMINUS );
|
||||
m_cellTextCtrl->MarkerSetBackground( wxSTC_MARKNUM_FOLDEROPEN, wxColour( wxT("BLACK") ) );
|
||||
m_cellTextCtrl->MarkerSetForeground( wxSTC_MARKNUM_FOLDEROPEN, wxColour( wxT("WHITE") ) );
|
||||
m_cellTextCtrl->MarkerDefine( wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_EMPTY );
|
||||
m_cellTextCtrl->MarkerDefine( wxSTC_MARKNUM_FOLDEREND, wxSTC_MARK_BOXPLUS );
|
||||
m_cellTextCtrl->MarkerSetBackground( wxSTC_MARKNUM_FOLDEREND, wxColour( wxT("BLACK") ) );
|
||||
m_cellTextCtrl->MarkerSetForeground( wxSTC_MARKNUM_FOLDEREND, wxColour( wxT("WHITE") ) );
|
||||
m_cellTextCtrl->MarkerDefine( wxSTC_MARKNUM_FOLDEROPENMID, wxSTC_MARK_BOXMINUS );
|
||||
m_cellTextCtrl->MarkerSetBackground( wxSTC_MARKNUM_FOLDEROPENMID, wxColour( wxT("BLACK") ) );
|
||||
m_cellTextCtrl->MarkerSetForeground( wxSTC_MARKNUM_FOLDEROPENMID, wxColour( wxT("WHITE") ) );
|
||||
m_cellTextCtrl->MarkerDefine( wxSTC_MARKNUM_FOLDERMIDTAIL, wxSTC_MARK_EMPTY );
|
||||
m_cellTextCtrl->MarkerDefine( wxSTC_MARKNUM_FOLDERTAIL, wxSTC_MARK_EMPTY );
|
||||
m_cellTextCtrl->SetSelBackground( true, wxSystemSettings::GetColour( wxSYS_COLOUR_HIGHLIGHT ) );
|
||||
m_cellTextCtrl->SetSelForeground( true, wxSystemSettings::GetColour( wxSYS_COLOUR_HIGHLIGHTTEXT ) );
|
||||
bSizer8->Add( m_cellTextCtrl, 1, wxEXPAND | wxALL, 5 );
|
||||
|
||||
|
||||
bSizer7->Add( bSizer8, 1, wxEXPAND, 5 );
|
||||
|
||||
wxBoxSizer* bSizer9;
|
||||
bSizer9 = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
wxBoxSizer* bMargins;
|
||||
bMargins = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
|
||||
bMargins->Add( 0, 15, 0, wxEXPAND, 5 );
|
||||
|
||||
wxFlexGridSizer* fgTextStyleSizer;
|
||||
fgTextStyleSizer = new wxFlexGridSizer( 0, 2, 5, 5 );
|
||||
fgTextStyleSizer->SetFlexibleDirection( wxBOTH );
|
||||
@ -104,17 +155,17 @@ DIALOG_TABLECELL_PROPERTIES_BASE::DIALOG_TABLECELL_PROPERTIES_BASE( wxWindow* pa
|
||||
|
||||
m_fontLabel = new wxStaticText( this, wxID_ANY, _("Font:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_fontLabel->Wrap( -1 );
|
||||
gbFontSizer->Add( m_fontLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 1 );
|
||||
gbFontSizer->Add( m_fontLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 1 );
|
||||
|
||||
wxString m_fontCtrlChoices[] = { _("KiCad Font") };
|
||||
int m_fontCtrlNChoices = sizeof( m_fontCtrlChoices ) / sizeof( wxString );
|
||||
m_fontCtrl = new FONT_CHOICE( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_fontCtrlNChoices, m_fontCtrlChoices, 0 );
|
||||
m_fontCtrl->SetSelection( 0 );
|
||||
gbFontSizer->Add( m_fontCtrl, wxGBPosition( 0, 1 ), wxGBSpan( 1, 3 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
|
||||
gbFontSizer->Add( m_fontCtrl, wxGBPosition( 1, 1 ), wxGBSpan( 1, 3 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
|
||||
|
||||
m_styleLabel = new wxStaticText( this, wxID_ANY, _("Style:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_styleLabel->Wrap( -1 );
|
||||
gbFontSizer->Add( m_styleLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
gbFontSizer->Add( m_styleLabel, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
wxBoxSizer* bSizer14;
|
||||
bSizer14 = new wxBoxSizer( wxHORIZONTAL );
|
||||
@ -126,7 +177,7 @@ DIALOG_TABLECELL_PROPERTIES_BASE::DIALOG_TABLECELL_PROPERTIES_BASE( wxWindow* pa
|
||||
bSizer14->Add( m_italic, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 45 );
|
||||
|
||||
|
||||
gbFontSizer->Add( bSizer14, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 );
|
||||
gbFontSizer->Add( bSizer14, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 );
|
||||
|
||||
|
||||
gbFontSizer->AddGrowableCol( 1 );
|
||||
@ -218,7 +269,13 @@ DIALOG_TABLECELL_PROPERTIES_BASE::DIALOG_TABLECELL_PROPERTIES_BASE( wxWindow* pa
|
||||
bMargins->Add( gMarginsSizer, 0, wxEXPAND, 5 );
|
||||
|
||||
|
||||
bMainSizer->Add( bMargins, 1, wxEXPAND|wxALL, 10 );
|
||||
bSizer9->Add( bMargins, 1, wxEXPAND|wxALL, 10 );
|
||||
|
||||
|
||||
bSizer7->Add( bSizer9, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
bMainSizer->Add( bSizer7, 1, wxEXPAND, 5 );
|
||||
|
||||
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
||||
bMainSizer->Add( m_staticline1, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -22,12 +22,13 @@ class WX_INFOBAR;
|
||||
#include <wx/settings.h>
|
||||
#include <wx/string.h>
|
||||
#include <wx/stattext.h>
|
||||
#include <wx/stc/stc.h>
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/bmpbuttn.h>
|
||||
#include <wx/bitmap.h>
|
||||
#include <wx/image.h>
|
||||
#include <wx/icon.h>
|
||||
#include <wx/button.h>
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/choice.h>
|
||||
#include <wx/checkbox.h>
|
||||
#include <wx/gbsizer.h>
|
||||
@ -46,6 +47,8 @@ class DIALOG_TABLECELL_PROPERTIES_BASE : public DIALOG_SHIM
|
||||
|
||||
protected:
|
||||
WX_INFOBAR* m_infoBar;
|
||||
wxStaticText* m_cellTextLabel;
|
||||
wxStyledTextCtrl* m_cellTextCtrl;
|
||||
BITMAP_BUTTON* m_hAlignLeft;
|
||||
BITMAP_BUTTON* m_hAlignCenter;
|
||||
BITMAP_BUTTON* m_hAlignRight;
|
||||
|
Loading…
x
Reference in New Issue
Block a user