]> Creatis software - crea.git/blob - lib/creaDevManagerLib/wxCDMLibraryHelpDialog.cpp
455b55935f7b20bbed87cde23c27fb5bc72397a0
[crea.git] / lib / creaDevManagerLib / wxCDMLibraryHelpDialog.cpp
1 /*
2 # ---------------------------------------------------------------------
3 #
4 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
5 #                        pour la Sant�)
6 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
7 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
8 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
9 #
10 #  This software is governed by the CeCILL-B license under French law and 
11 #  abiding by the rules of distribution of free software. You can  use, 
12 #  modify and/ or redistribute the software under the terms of the CeCILL-B 
13 #  license as circulated by CEA, CNRS and INRIA at the following URL 
14 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
15 #  or in the file LICENSE.txt.
16 #
17 #  As a counterpart to the access to the source code and  rights to copy,
18 #  modify and redistribute granted by the license, users are provided only
19 #  with a limited warranty  and the software's author,  the holder of the
20 #  economic rights,  and the successive licensors  have only  limited
21 #  liability. 
22 #
23 #  The fact that you are presently reading this means that you have had
24 #  knowledge of the CeCILL-B license and that you accept its terms.
25 # ------------------------------------------------------------------------ 
26  */
27
28
29 /*
30  * wxCDMLibraryHelpDialog.cpp
31  *
32  *  Created on: 11/1/2013
33  *      Author: Daniel Felipe Gonzalez Obando
34  */
35
36 #include "wxCDMLibraryHelpDialog.h"
37
38 #include "creaDevManagerIds.h"
39
40 BEGIN_EVENT_TABLE(wxCDMLibraryHelpDialog, wxDialog)
41 EVT_BUTTON(ID_BUTTON_CANCEL, wxCDMLibraryHelpDialog::OnFinish)
42 EVT_BUTTON(ID_BUTTON_OPENPROJECT, wxCDMLibraryHelpDialog::OnCMakeLists)
43 EVT_BUTTON(ID_BUTTON_EDIT_CMAKELISTSFILE, wxCDMLibraryHelpDialog::OnCMakeLists)
44 EVT_CHECKBOX(ID_CHECKBOX_DISABLE_HELP, wxCDMLibraryHelpDialog::OnDisableHelp)
45 END_EVENT_TABLE()
46
47 wxCDMLibraryHelpDialog::wxCDMLibraryHelpDialog(
48     wxWindow* parent,
49     modelCDMLibrary* library,
50     wxWindowID id,
51     const wxString& caption,
52     const wxPoint& position,
53     const wxSize& size,
54     long style
55 )
56 {
57   wxCDMLibraryHelpDialog::Create(parent, id, caption, position, size, style);
58   this->library = library;
59 }
60
61 wxCDMLibraryHelpDialog::~wxCDMLibraryHelpDialog()
62 {
63 }
64
65 bool wxCDMLibraryHelpDialog::Create(
66     wxWindow* parent,
67     wxWindowID id,
68     const wxString& caption,
69     const wxPoint& position,
70     const wxSize& size,
71     long int style
72 )
73 {
74   wxDialog::Create(parent, id, caption, position, size, style);
75
76   this->CreateControls();
77
78   return TRUE;
79 }
80
81 void wxCDMLibraryHelpDialog::CreateControls()
82 {
83
84   wxBoxSizer* v_sizer1 = new wxBoxSizer(wxVERTICAL);
85
86
87   wxStaticText* title = new wxStaticText(this, wxID_ANY, wxT("Working with Libraries"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);//new wxRichTextCtrl(this,wxID_ANY, wxString("Create a new project"), wxDefaultPosition, wxDefaultSize, wxRE_READONLY);
88   v_sizer1->Add(title, 0, wxALIGN_LEFT | wxALL | wxALIGN_CENTER_VERTICAL, 5);
89
90   wxStaticText* instruction = new wxStaticText(
91       this,
92       wxID_ANY,
93       crea::std2wx(
94           "Libraries are made to expose the projects' main functionalities to the applications and black boxes of the project. "
95           "The functions and classes available in the libraries are the core of any project, thus they should implement important "
96           "tasks such as image processing algorithms or point cloud processing algorithms."
97           "Libraries are stored in the project's lib folder and each library has its own dedicated folder. Inside these folders "
98           "each library has its classes.\n"
99           "\n"
100           "To start developing a library, go ahead and create a new class with the button \"Create Class\" and implement the main "
101           "functionalities of your project inside the created files.\n"
102           "If you need to separate classes in folders you can do it by creating a folder with the \"Create Folder\" button.\n"
103           "Then, in order to include your libraries in the project correctly you must include them in the lib's folder "
104           "\"CMakeLists.txt\" file. Also, if you create additional folders in your library you should include them in the library's "
105           "\"CMakeLists.txt\" file.\n"
106           "\n"
107           "You can easily edit the CMakeLists files previously mentioned by clicking on the following buttons."),
108           wxDefaultPosition,
109           wxDefaultSize,
110           wxALIGN_LEFT
111   );
112   v_sizer1->Add(instruction, 0,wxEXPAND | wxALL, 5);
113
114   wxButton* editCMakePKGBtn = new wxButton(this, ID_BUTTON_EDIT_CMAKELISTSFILE, wxT("Open Library's directory CMakeLists file"));
115   wxButton* editCMakePRJBtn= new wxButton(this, ID_BUTTON_OPENPROJECT, wxT("Open Lib's directory CMakeLists file"));
116
117   v_sizer1->Add(editCMakePKGBtn, 0, wxEXPAND | wxLEFT | wxRIGHT, 15);
118   v_sizer1->Add(editCMakePRJBtn, 0, wxEXPAND | wxLEFT | wxRIGHT, 15);
119
120   v_sizer1->Add(new wxCheckBox(this, ID_CHECKBOX_DISABLE_HELP, wxT("&Disable help")), 0, wxALIGN_RIGHT | wxRIGHT, 10);
121
122   v_sizer1->Add(new wxButton(this, ID_BUTTON_CANCEL, wxT("Close")), 0, wxALIGN_RIGHT | wxRIGHT | wxBOTTOM | wxALIGN_CENTER_VERTICAL, 30);
123
124   SetSizer(v_sizer1);
125   //v_sizer1->RecalcSizes();
126 }
127
128 void wxCDMLibraryHelpDialog::OnFinish(wxCommandEvent& event)
129 {
130   this->EndDialog(wxID_CANCEL);
131 }
132
133 void wxCDMLibraryHelpDialog::OnCMakeLists(wxCommandEvent& event)
134 {
135   //TODO: implement method
136   std::cout << "OnCMakeLists not implemented yet." << std::endl;
137   event.Skip();
138 }
139
140 void wxCDMLibraryHelpDialog::OnCMakeListsEnter(wxMouseEvent& event)
141 {
142   //TODO: implement method
143   std::cout << "OnCMakeListsEnter not implemented yet." << std::endl;
144   event.Skip();
145 }
146
147 void wxCDMLibraryHelpDialog::OnCMakeListsExit(wxMouseEvent& event)
148 {
149   //TODO: implement method
150   std::cout << "OnCMakeListsExit not implemented yet." << std::endl;
151   event.Skip();
152 }
153
154 void wxCDMLibraryHelpDialog::OnDisableHelp(wxCommandEvent& event)
155 {
156   wxPostEvent(this->GetParent(), event);
157 }