]> Creatis software - bbtkGEditor.git/commitdiff
Feature #1665 . RaC - Create dialog box to edit diagram properties. By now, it doesn...
authorcorredor <>
Tue, 9 Oct 2012 16:13:52 +0000 (16:13 +0000)
committercorredor <>
Tue, 9 Oct 2012 16:13:52 +0000 (16:13 +0000)
data/icons/wxart_editProperties.xpm [new file with mode: 0644]
lib/EditorGraphicBBS/bbsKernelEditorGraphic/GlobalConstants.h
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.cxx [new file with mode: 0755]
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxDiagramPropertiesEditionDialog.h [new file with mode: 0755]
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxTabPanelsManager.h
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx

diff --git a/data/icons/wxart_editProperties.xpm b/data/icons/wxart_editProperties.xpm
new file mode 100644 (file)
index 0000000..2c54498
--- /dev/null
@@ -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",
+"       .+@      ",
+"      ###$      ",
+"      ###%      ",
+"       &&       ",
+"     *===       ",
+"    #####       ",
+"     ####       ",
+"      ###       ",
+"       ##       ",
+"       ##       ",
+"       ##       ",
+"       ##=      ",
+"       ##=      ",
+"     -;##*>,@   ",
+"    #######')   ",
+"    #######!    "};
index 2cd1106b5c52ed706685b3b694e2f8f0192548ff..b21f7abf18dc82dc31f1e0ee003e3752c1e4c707 100644 (file)
@@ -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
index 1699a9fa559793590a496b8e5ea5b344fd56e9bc..3b6641effcea4a1e27d372e08e8f952c36781e2e 100644 (file)
@@ -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
index ee35ab0f39ae0c921b19dbb1e34635f221e16e5c..3095472384d836174ff197575401b14668e1c497 100644 (file)
@@ -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 (executable)
index 0000000..c9479f1
--- /dev/null
@@ -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 (executable)
index 0000000..4e2008e
--- /dev/null
@@ -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 <wx/wx.h>
+#include <wx/aui/aui.h>
+
+//Includes creaMaracasVisu
+
+//Includes std
+#include <iostream>
+
+
+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
+
index 39a77fc053c6065e6d7c86566bc9cbb099342c1f..64cef9c8abd562e174c77d39c14da2eab1f2b2a4 100644 (file)
@@ -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);
index 557a2b0e7aa8cbb2c1dc184373baca3c74b72ed9..afaa01b68be3a006d4ae539e6be8285583ec1239 100644 (file)
@@ -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);