From 4be8ebafbc64c91131e1732ea4feaf205b8303f6 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Sun, 12 Sep 2021 11:02:17 +0200 Subject: [PATCH] Pl_editor: add a small help about variable texts in text properties. --- .../dialogs/properties_frame.cpp | 34 +++++++++ pagelayout_editor/dialogs/properties_frame.h | 1 + .../dialogs/properties_frame_base.cpp | 5 ++ .../dialogs/properties_frame_base.fbp | 75 ++++++++++++++++++- .../dialogs/properties_frame_base.h | 12 +-- 5 files changed, 121 insertions(+), 6 deletions(-) diff --git a/pagelayout_editor/dialogs/properties_frame.cpp b/pagelayout_editor/dialogs/properties_frame.cpp index f4adadbaf3..9f2fc24b6e 100644 --- a/pagelayout_editor/dialogs/properties_frame.cpp +++ b/pagelayout_editor/dialogs/properties_frame.cpp @@ -35,6 +35,9 @@ #include "pl_editor_frame.h" #include "tools/pl_selection_tool.h" +#include + + PROPERTIES_FRAME::PROPERTIES_FRAME( PL_EDITOR_FRAME* aParent ) : PANEL_PROPERTIES_BASE( aParent ), m_scintillaTricks( nullptr ), @@ -299,6 +302,7 @@ void PROPERTIES_FRAME::CopyPrmsFromItemToPanel( DS_DATA_ITEM* aItem ) m_SizerItemProperties->Show( true ); m_SizerTextOptions->Show( aItem->GetType() == DS_DATA_ITEM::DS_TEXT ); + m_buttonHelp->Show( aItem->GetType() == DS_DATA_ITEM::DS_TEXT ); m_sbSizerEndPosition->Show( aItem->GetType() == DS_DATA_ITEM::DS_SEGMENT || aItem->GetType() == DS_DATA_ITEM::DS_RECT ); @@ -542,3 +546,33 @@ void PROPERTIES_FRAME::onScintillaCharAdded( wxStyledTextEvent &aEvent ) m_scintillaTricks->DoAutocomplete( partial, autocompleteTokens ); m_stcText->SetFocus(); } + + +void PROPERTIES_FRAME::onHelp( wxCommandEvent& aEvent ) +{ + // Show the system variables for worksheet text: + HTML_MESSAGE_BOX dlg( this, _( "Predefined Keywords" ) ); + wxString message; + + message << _( "Texts can include keywords." ) << "
"; + message << _( "Keyword notation is ${keyword}" ) << "
"; + message << _( "Keywords are replaced by they actual value in strings" ) << "

"; + message << _( "These build-in keywords are always available:" ) << "

"; + dlg.AddHTML_Text( message ); + + message = "KICAD_VERSION\n"; + message << "# " << _( "(sheet number)" ) << "\n"; + message << "## " << _( "(sheet count)" ) << "\n"; + message << "COMMENT1 … COMMENT9\n"; + message << "COMPANY\n"; + message << "FILENAME\n"; + message << "ISSUE_DATE\n"; + message << "LAYER\n"; + message << "PAPER " << _( "(paper size)" ) << "\n"; + message << "REVISION\n"; + message << "SHEETNAME\n"; + message << "TITLE\n"; + + dlg.ListSet( message ); + dlg.ShowModal(); +} diff --git a/pagelayout_editor/dialogs/properties_frame.h b/pagelayout_editor/dialogs/properties_frame.h index f3c234cc83..9f3ebff54c 100644 --- a/pagelayout_editor/dialogs/properties_frame.h +++ b/pagelayout_editor/dialogs/properties_frame.h @@ -83,6 +83,7 @@ public: void OnAcceptPrms( wxCommandEvent& event ) override; void OnSetDefaultValues( wxCommandEvent& event ) override; void onScintillaCharAdded( wxStyledTextEvent &aEvent ); + void onHelp( wxCommandEvent& aEvent ) override; // Data transfer from general properties to widgets void CopyPrmsFromGeneralToPanel(); diff --git a/pagelayout_editor/dialogs/properties_frame_base.cpp b/pagelayout_editor/dialogs/properties_frame_base.cpp index 865965417a..568704140e 100644 --- a/pagelayout_editor/dialogs/properties_frame_base.cpp +++ b/pagelayout_editor/dialogs/properties_frame_base.cpp @@ -28,6 +28,9 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c bSizerButt->Add( m_staticTextType, 1, wxALL|wxALIGN_CENTER_VERTICAL, 4 ); + m_buttonHelp = new wxButton( m_swItemProperties, wxID_ANY, _("Help"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + bSizerButt->Add( m_buttonHelp, 0, wxALL, 5 ); + wxString m_choicePageOptChoices[] = { _("Show on all pages"), _("First page only"), _("Subsequent pages only") }; int m_choicePageOptNChoices = sizeof( m_choicePageOptChoices ) / sizeof( wxString ); m_choicePageOpt = new wxChoice( m_swItemProperties, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choicePageOptNChoices, m_choicePageOptChoices, 0 ); @@ -579,6 +582,7 @@ PANEL_PROPERTIES_BASE::PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, c // Connect Events m_notebook->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( PANEL_PROPERTIES_BASE::OnPageChanged ), NULL, this ); + m_buttonHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_PROPERTIES_BASE::onHelp ), NULL, this ); m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_PROPERTIES_BASE::OnAcceptPrms ), NULL, this ); m_buttonDefault->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_PROPERTIES_BASE::OnSetDefaultValues ), NULL, this ); m_buttonGeneralOptsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_PROPERTIES_BASE::OnAcceptPrms ), NULL, this ); @@ -588,6 +592,7 @@ PANEL_PROPERTIES_BASE::~PANEL_PROPERTIES_BASE() { // Disconnect Events m_notebook->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( PANEL_PROPERTIES_BASE::OnPageChanged ), NULL, this ); + m_buttonHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_PROPERTIES_BASE::onHelp ), NULL, this ); m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_PROPERTIES_BASE::OnAcceptPrms ), NULL, this ); m_buttonDefault->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_PROPERTIES_BASE::OnSetDefaultValues ), NULL, this ); m_buttonGeneralOptsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_PROPERTIES_BASE::OnAcceptPrms ), NULL, this ); diff --git a/pagelayout_editor/dialogs/properties_frame_base.fbp b/pagelayout_editor/dialogs/properties_frame_base.fbp index 2271ad1cad..c10520c386 100644 --- a/pagelayout_editor/dialogs/properties_frame_base.fbp +++ b/pagelayout_editor/dialogs/properties_frame_base.fbp @@ -43,7 +43,7 @@ PANEL_PROPERTIES_BASE - 309,888 + 333,888 @@ -244,6 +244,79 @@ -1 + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + + 0 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_ANY + Help + + 0 + + 0 + + + 0 + + 1 + m_buttonHelp + 1 + + + protected + 1 + + + + Resizable + 1 + + wxBU_EXACTFIT + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + onHelp + + 4 wxALL|wxEXPAND diff --git a/pagelayout_editor/dialogs/properties_frame_base.h b/pagelayout_editor/dialogs/properties_frame_base.h index 5ab1c4052d..d6d187f86e 100644 --- a/pagelayout_editor/dialogs/properties_frame_base.h +++ b/pagelayout_editor/dialogs/properties_frame_base.h @@ -16,6 +16,10 @@ #include #include #include +#include +#include +#include +#include #include #include #include @@ -24,10 +28,6 @@ #include #include #include -#include -#include -#include -#include #include #include #include @@ -46,6 +46,7 @@ class PANEL_PROPERTIES_BASE : public wxPanel wxScrolledWindow* m_swItemProperties; wxBoxSizer* m_SizerItemProperties; wxStaticText* m_staticTextType; + wxButton* m_buttonHelp; wxChoice* m_choicePageOpt; wxBoxSizer* m_SizerTextOptions; wxStyledTextCtrl* m_stcText; @@ -136,13 +137,14 @@ class PANEL_PROPERTIES_BASE : public wxPanel // Virtual event handlers, overide them in your derived class virtual void OnPageChanged( wxNotebookEvent& event ) { event.Skip(); } + virtual void onHelp( wxCommandEvent& event ) { event.Skip(); } virtual void OnAcceptPrms( wxCommandEvent& event ) { event.Skip(); } virtual void OnSetDefaultValues( wxCommandEvent& event ) { event.Skip(); } public: - PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 309,888 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString ); + PANEL_PROPERTIES_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 333,888 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString ); ~PANEL_PROPERTIES_BASE(); };