From 567028f33d052a54225024906cce14dc1558162f Mon Sep 17 00:00:00 2001 From: corredor <> Date: Tue, 9 Oct 2012 16:13:52 +0000 Subject: [PATCH] Feature #1665 . RaC - Create dialog box to edit diagram properties. By now, it doesn't load correctly the saved properties. --- data/icons/wxart_editProperties.xpm | 36 +++++ .../bbsKernelEditorGraphic/GlobalConstants.h | 2 + .../bbtkwxGUIEditorGraphicBBS.cxx | 58 ++++++++ .../bbtkwxGUIEditorGraphicBBS.h | 13 +- .../wxDiagramPropertiesEditionDialog.cxx | 138 ++++++++++++++++++ .../wxDiagramPropertiesEditionDialog.h | 98 +++++++++++++ .../wxTabPanelsManager.h | 1 + .../wxVtkSceneManager.cxx | 2 +- 8 files changed, 346 insertions(+), 2 deletions(-) create mode 100644 data/icons/wxart_editProperties.xpm create mode 100755 lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.cxx create mode 100755 lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.h diff --git a/data/icons/wxart_editProperties.xpm b/data/icons/wxart_editProperties.xpm new file mode 100644 index 0000000..2c54498 --- /dev/null +++ b/data/icons/wxart_editProperties.xpm @@ -0,0 +1,36 @@ +/* XPM */ +static char * editProperties_xpm[] = { +"16 16 17 1", +" c None", +". c #383838", +"+ c #484848", +"@ c #888888", +"# c #121212", +"$ c #4C4C4C", +"% c #3A3A3A", +"& c #474747", +"* c #535353", +"= c #515151", +"- c #919191", +"; c #525252", +"> c #8F8F8F", +", c #8C8C8C", +"' c #4D4D4D", +") c #838383", +"! c #3C3C3C", +" .+@ ", +" ###$ ", +" ###% ", +" && ", +" *=== ", +" ##### ", +" #### ", +" ### ", +" ## ", +" ## ", +" ## ", +" ##= ", +" ##= ", +" -;##*>,@ ", +" #######') ", +" #######! "}; diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GlobalConstants.h b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GlobalConstants.h index 2cd1106..b21f7ab 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GlobalConstants.h +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GlobalConstants.h @@ -197,6 +197,8 @@ namespace bbtk { const int ID_UNDO = 1024; // FCY const int ID_REDO = 1025; // FCY const int ID_CHANGENAME = 1026; + + const int ID_EDIT = 1027; // RaC } // namespace bbtk #endif diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx index 1699a9f..3b6641e 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx @@ -110,6 +110,7 @@ void wxGUIEditorGraphicBBS::initToolbar() { wxBitmap bmp_complexoutputport(complexoutputport_xpm); wxBitmap bmp_undo(undo_xpm); wxBitmap bmp_redo(redo_xpm); + wxBitmap bmp_editProperties(editProperties_xpm); wxToolBar *toolbar = new wxToolBar(this, wxID_ANY); //Adds a tool btn to the toolbar @@ -149,6 +150,8 @@ void wxGUIEditorGraphicBBS::initToolbar() { toolbar->AddSeparator(); toolbar->AddTool(ID_UNDO, _T("Undo"),bmp_undo, wxNullBitmap, wxITEM_NORMAL, _T("Undo"), _T("Undo")); toolbar->AddTool(ID_REDO, _T("Redo"),bmp_redo, wxNullBitmap, wxITEM_NORMAL, _T("Redo"), _T("Redo")); + toolbar->AddSeparator(); + toolbar->AddTool(ID_EDIT, _T("Edit diagram properties"),bmp_editProperties, wxNullBitmap, wxITEM_NORMAL, _T("Edit diagram properties"), _T("Edit diagram properties")); toolbar->EnableTool(ID_UNDO, false); toolbar->EnableTool(ID_REDO, false); @@ -194,6 +197,8 @@ void wxGUIEditorGraphicBBS::initToolbar() { Connect(ID_UNDO,wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(wxGUIEditorGraphicBBS::OnUndo)); Connect(ID_REDO,wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(wxGUIEditorGraphicBBS::OnRedo)); Connect(ID_CHANGENAME, wxEVT_COMMAND_RIGHT_CLICK, wxCommandEventHandler(wxGUIEditorGraphicBBS::OnChangeName)); + Connect(ID_EDIT,wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(wxGUIEditorGraphicBBS::OnEditDiagramProperties)); + } //========================================================================= void wxGUIEditorGraphicBBS::initHelpHTMLBrowser() { @@ -518,6 +523,8 @@ void wxGUIEditorGraphicBBS::OnUndo(wxCommandEvent& event) { refreshGUIControls(); } +//========================================================================= + void wxGUIEditorGraphicBBS::OnRedo(wxCommandEvent& event) { unsigned short disable; std::string stundo; @@ -537,6 +544,16 @@ void wxGUIEditorGraphicBBS::OnRedo(wxCommandEvent& event) { void wxGUIEditorGraphicBBS::OnChangeName(wxCommandEvent& event){ } + +//========================================================================= + +void wxGUIEditorGraphicBBS::OnEditDiagramProperties(wxCommandEvent& event) +{ + wxDiagramPropertiesEditionDialog* dialog = + new wxDiagramPropertiesEditionDialog(this); + dialog->Show(); +} + //========================================================================= void wxGUIEditorGraphicBBS::OnExecuteActualDiagram(wxCommandEvent& event) { @@ -1031,10 +1048,51 @@ void wxGUIEditorGraphicBBS::OnExit(wxCommandEvent& event) { Close(true); } +//========================================================================= + + +void wxGUIEditorGraphicBBS::setCurrentDiagramDescription(std::string description) +{ + _tabsMgr->SetDescription(description); +} + +//========================================================================= + +void wxGUIEditorGraphicBBS::setCurrentDiagramAuthor(std::string author) +{ + _tabsMgr->SetAuthor(author); +} + +//========================================================================= + +void wxGUIEditorGraphicBBS::setCurrentDiagramCategory(std::string category) +{ + _tabsMgr->SetCategory(category); +} + +//========================================================================= + +std::string wxGUIEditorGraphicBBS::getCurrentDiagramDescription() +{ + return _tabsMgr->GetDescription(); +} + +//========================================================================= +std::string wxGUIEditorGraphicBBS::getCurrentDiagramAuthor() +{ + return _tabsMgr->GetAuthor(); +} //========================================================================= + +std::string wxGUIEditorGraphicBBS::getCurrentDiagramCategory() +{ + return _tabsMgr->GetCategory(); +} + + } // EO namespace bbtk // EOF diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h index ee35ab0..3095472 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h @@ -47,6 +47,7 @@ //Includes same project #include "wxTabPanelsManager.h" #include "wxBlackBoxEditionDialog.h" +#include "wxDiagramPropertiesEditionDialog.h" #include "wxVtkSceneManager.h" #include "GlobalConstants.h" @@ -64,6 +65,7 @@ #include "wxart_complexoutputport.xpm" #include "wxart_undo.xpm" #include "wxart_redo.xpm" +#include "wxart_editProperties.xpm" //Includes creaMaracasVisu @@ -166,6 +168,7 @@ namespace bbtk void OnUndo(wxCommandEvent& event); void OnRedo(wxCommandEvent& event); void OnChangeName(wxCommandEvent& event); + void OnEditDiagramProperties(wxCommandEvent& event); // Edit menu events void OnCopySelectedToComplexDiagram(wxCommandEvent& event); @@ -179,7 +182,15 @@ namespace bbtk void OnShowHTMLDoc(wxCommandEvent& event); void OnCreateIndex(wxCommandEvent& event); - + // Getters and Setters of current diagram properties + // RaC-2012 + void setCurrentDiagramDescription(std::string description); + void setCurrentDiagramAuthor(std::string author); + void setCurrentDiagramCategory(std::string category); + + std::string getCurrentDiagramDescription(); + std::string getCurrentDiagramAuthor(); + std::string getCurrentDiagramCategory(); private: diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.cxx new file mode 100755 index 0000000..c9479f1 --- /dev/null +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.cxx @@ -0,0 +1,138 @@ +/*========================================================================= +Program: bbtkGEditor +Module: $RCSfile$ +Language: C++ +Date: $Date$ +Version: $Revision$ +=========================================================================*/ + +/* --------------------------------------------------------------------- + +* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) +* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux, Ricardo A Corredor +* +* This software is governed by the CeCILL-B license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL-B +* license as circulated by CEA, CNRS and INRIA at the following URL +* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +* or in the file LICENSE.txt. +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited +* liability. +* +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL-B license and that you accept its terms. +* ------------------------------------------------------------------------ */ + +/** +* \file +* \brief Class bbtk::wxDiagramPropertiesEditionDialog . +*/ + +#include "wxDiagramPropertiesEditionDialog.h" +#include "creaWx.h" + +namespace bbtk +{ + //========================================================================= + + wxDiagramPropertiesEditionDialog::wxDiagramPropertiesEditionDialog(wxGUIEditorGraphicBBS *parent):wxDialog(parent,wxID_ANY,_T("Diagram Properties"), wxDefaultPosition, wxSize(520, 640),wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) + { + _parent = parent; + constructDiagramPropertiesEditionDialog(); + } + + //========================================================================= + + + wxDiagramPropertiesEditionDialog::~wxDiagramPropertiesEditionDialog() + { + + } + + //========================================================================= + + void wxDiagramPropertiesEditionDialog::constructDiagramPropertiesEditionDialog() + { + + wxPanel *panel = new wxPanel(this, -1); + wxBoxSizer *hbox = new wxBoxSizer(wxHORIZONTAL); + wxFlexGridSizer *fgsizer = new wxFlexGridSizer(4, 2, 9, 25); + + wxStaticText *author = new wxStaticText(panel, -1, wxT("Author")); + wxStaticText *category = new wxStaticText(panel, -1, wxT("Category")); + wxStaticText *description = new wxStaticText(panel, -1, wxT("Description")); + + _txtAuthor = new wxTextCtrl(panel, -1); + _txtCategory = new wxTextCtrl(panel, -1); + _txtDescription = new wxTextCtrl(panel, -1, wxT(""), wxPoint(-1, -1), wxSize(-1, -1), wxTE_MULTILINE); + wxButton *okButton = new wxButton(panel, -1, _T("Ok"),wxDefaultPosition, wxSize(-1, -1)); + wxButton *closeButton = new wxButton(panel, -1, _T("Close"), wxDefaultPosition, wxSize(-1, -1)); + + // connect command event handlers + Connect(okButton->GetId(),wxEVT_COMMAND_BUTTON_CLICKED,wxCommandEventHandler(wxDiagramPropertiesEditionDialog::onClickOk)); + Connect(closeButton->GetId(),wxEVT_COMMAND_BUTTON_CLICKED,wxCommandEventHandler(wxDiagramPropertiesEditionDialog::onClickClose)); + + + fgsizer->Add(author); + fgsizer->Add(_txtAuthor, 1, wxEXPAND); + fgsizer->Add(category); + fgsizer->Add(_txtCategory, 1, wxEXPAND); + fgsizer->Add(description, 1, wxEXPAND); + fgsizer->Add(_txtDescription, 1, wxEXPAND); + fgsizer->Add(okButton, 1, wxEXPAND); + fgsizer->Add(closeButton, 1, wxEXPAND); + + fgsizer->AddGrowableRow(2, 1); + fgsizer->AddGrowableCol(1, 1); + + hbox->Add(fgsizer, 1, wxALL | wxEXPAND, 15); + panel->SetSizer(hbox); + Centre(); + + ShowModal(); + Destroy(); + + // Assign loaded values + + _txtAuthor->SetValue(crea::std2wx(_parent->getCurrentDiagramAuthor())); + _txtCategory->SetValue(crea::std2wx(_parent->getCurrentDiagramCategory())); + _txtDescription->SetValue(crea::std2wx(_parent->getCurrentDiagramDescription())); + } + + //========================================================================= + + void wxDiagramPropertiesEditionDialog::onClickOk(wxCommandEvent& event) + { + + std::string txtAuthor = wx2std(_txtAuthor->GetValue()); + std::string txtCategory = wx2std(_txtCategory->GetValue()); + std::string txtDescription = wx2std(_txtDescription->GetValue()); + _parent->setCurrentDiagramAuthor(txtAuthor); + _parent->setCurrentDiagramCategory(txtCategory); + _parent->setCurrentDiagramDescription(txtDescription); + Close(true); + } + + //========================================================================= + + void wxDiagramPropertiesEditionDialog::onClickClose(wxCommandEvent& event) + { + printf("RaC wxDiagramPropertiesEditionDialog::onClickClose\n"); + Close(true); + } + + //========================================================================= + + //========================================================================= + + + + +} // EO namespace bbtk + + diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.h b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.h new file mode 100755 index 0000000..4e2008e --- /dev/null +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.h @@ -0,0 +1,98 @@ +/*========================================================================= +Program: bbtkGEditor +Module: $RCSfile$ +Language: C++ +Date: $Date$ +Version: $Revision$ +=========================================================================*/ + +/* --------------------------------------------------------------------- + +* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) +* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux, Ricardo A Corredor +* +* This software is governed by the CeCILL-B license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL-B +* license as circulated by CEA, CNRS and INRIA at the following URL +* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +* or in the file LICENSE.txt. +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited +* liability. +* +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL-B license and that you accept its terms. +* ------------------------------------------------------------------------ */ + + + +/** +* \file +* \brief Class bbtk::wxDiagramPropertiesEditionDialog +*/ + +/**** +* BBTK GEditor Improvements - 2nd HackFest +* Ricardo A Corredor J Ricardo.Corredor@creatis.insa-lyon.fr +* RaC - 2012 +****/ + +#ifndef __wxDiagramPropertiesEditionDialog_h__ +#define __wxDiagramPropertiesEditionDialog_h__ + +//Includes same project +#include "bbtkwxGUIEditorGraphicBBS.h" +#include "wxVtkSceneManager.h" + +//Includes wxWidgets +#include +#include + +//Includes creaMaracasVisu + +//Includes std +#include + + +namespace bbtk +{ + + //RaC: It is important if it exists a double relation + //e.g. wxBlackBoxEditionDialog includes wxGUIEditorGraphicBBS, and wxGUIEditorGraphicBBS includes wxBlackBoxEditionDialog + class wxGUIEditorGraphicBBS; + //class wxVtkSceneManager; + + class wxDiagramPropertiesEditionDialog : public wxDialog + { + public: + wxDiagramPropertiesEditionDialog(wxGUIEditorGraphicBBS *parent); + ~wxDiagramPropertiesEditionDialog(); + + void constructDiagramPropertiesEditionDialog(); + + void onClickOk(wxCommandEvent& event); + void onClickClose(wxCommandEvent& event); + + private: + wxAuiManager *_dialogAUIMgr; + wxPanel *_panel; + wxGUIEditorGraphicBBS *_parent; + wxTextCtrl *_txtAuthor; + wxTextCtrl *_txtCategory; + wxTextCtrl *_txtDescription; + + + + protected: + + }; + + +} +// namespace bbtk +#endif + diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxTabPanelsManager.h b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxTabPanelsManager.h index 39a77fc..64cef9c 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxTabPanelsManager.h +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxTabPanelsManager.h @@ -108,6 +108,7 @@ namespace bbtk void VerifyLastTabPanel(); + // Getters and Setters of current diagram void SetCbName(std::string cbName); void SetCbPackageName(std::string packagename); void SetAuthor(std::string author); diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx index 557a2b0..afaa01b 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx @@ -819,7 +819,7 @@ bool wxVtkSceneManager::OnMouseMove() // FillPortText px = px - 33; - py = py; + //py = py; _fillObjectActor->SetScale(1); _fillObjectActor->GetProperty()->SetOpacity(0.50); _fillObjectActor->SetPosition(px, py, 1); -- 2.45.0