/*========================================================================= 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(320, 280),wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) { _parent = parent; constructDiagramPropertiesEditionDialog(); } //========================================================================= wxDiagramPropertiesEditionDialog::~wxDiagramPropertiesEditionDialog() { } //========================================================================= void wxDiagramPropertiesEditionDialog::constructDiagramPropertiesEditionDialog() { const int ID_COMBO = 1; wxPanel *panel = new wxPanel(this, -1); wxBoxSizer *hbox = new wxBoxSizer(wxHORIZONTAL); wxFlexGridSizer *fgsizer = new wxFlexGridSizer(5, 2, 9, 25); // SELECTION CONSTANTS // 0 - Application // 1 - Complex box _diagramType = new wxComboBox(panel, -1, wxEmptyString, wxDefaultPosition, wxSize(100,-1) ); _diagramType->Append (wxT("Application")); _diagramType->Append (wxT("Complex box")); _diagramType->SetEditable(false); //_diagramType->Enable(false); Connect(ID_COMBO, wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler(wxDiagramPropertiesEditionDialog::OnComboBoxSelected)); int currentType = (_parent->isCurrentDiagramComplexBox()==false)? 0 : 1; _diagramType->Select(currentType); wxStaticText *type = new wxStaticText(panel, -1, wxT("Type")); 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)); // Assign loaded values _txtAuthor->SetValue(crea::std2wx(_parent->getCurrentDiagramAuthor())); _txtCategory->SetValue(crea::std2wx(_parent->getCurrentDiagramCategory())); _txtDescription->SetValue(crea::std2wx(_parent->getCurrentDiagramDescription())); fgsizer->Add(type); fgsizer->Add(_diagramType, 1, wxEXPAND); 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(3, 1); fgsizer->AddGrowableCol(1, 1); hbox->Add(fgsizer, 1, wxALL | wxEXPAND, 15); panel->SetSizerAndFit(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); // SELECTION CONSTANTS // 0 - Application // 1 - Complex box int selection = _diagramType->GetSelection(); if(selection == 0) _parent->disableComplexBox(); else if (selection == 1) _parent->enableComplexBox(); Close(true); } //========================================================================= void wxDiagramPropertiesEditionDialog::onClickClose(wxCommandEvent& event) { printf("RaC wxDiagramPropertiesEditionDialog::onClickClose\n"); Close(true); } //========================================================================= void wxDiagramPropertiesEditionDialog::OnComboBoxSelected(wxCommandEvent& event) { // TODO Show info to edit complex boxes } //========================================================================= } // EO namespace bbtk