1 /*=========================================================================
4 Module: $RCSfile: bbtkWxGUIPackageBrowser.cxx,v $
6 Date: $Date: 2008/03/28 13:42:18 $
7 Version: $Revision: 1.1 $
9 Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10 l'Image). All rights reserved. See Doc/License.txt or
11 http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details.
13 This software is distributed WITHOUT ANY WARRANTY; without even
14 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 PURPOSE. See the above copyright notices for more information.
17 =========================================================================*//**
18 * \brief Short description in one line
20 * Long description which
21 * can span multiple lines
33 #ifdef _USE_WXWIDGETS_
35 #include "bbtkWxGUIPackageBrowser.h"
36 #include "ThirdParty/wx/treemultictrl/wxTreeMultiCtrl.h"
37 #include "bbtkInterpreter.h"
41 //================================================================
42 WxGUIPackageBrowserBlackBox::WxGUIPackageBrowserBlackBox(wxWindow* parent,
43 WxGUIPackageBrowser* browser,
44 BlackBoxDescriptor* descr) :
49 wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
51 wxStaticText* s = new wxStaticText(this,-1,
52 std2wx(descr->GetTypeName()));
54 sizer->Add(s,1,wxGROW);
60 //================================================================
63 //================================================================
64 WxGUIPackageBrowserBlackBox::~WxGUIPackageBrowserBlackBox()
67 //================================================================
70 //================================================================
71 WxGUIPackageBrowser::WxGUIPackageBrowser( wxWindow *parent,
72 WxGUIPackageBrowserUser* user )
73 : wxPanel(parent, -1),
77 std::cout << "WxGUIPackageBrowser::WxGUIPackageBrowser"<<std::endl;
78 wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
79 mTree = new wxTreeMultiCtrl(this, -1);
81 mTree->SetBackgroundColour(*wxWHITE);
82 sizer->Add(mTree,1,wxGROW);
85 wxTreeMultiWindowInfo wndinfo(wxTMC_BG_ADJUST_CNT, 8, 0);
87 wxTreeMultiWindowInfo wndinfo(wxTMC_BG_ADJUST_ALL, 8, 0);
90 // make it a bit bigger
92 somefont = mTree->GetCaptionFont();
93 somefont.SetFamily(wxMODERN);
94 somefont.SetWeight(wxBOLD);
95 somefont.SetPointSize(somefont.GetPointSize()+1);
96 mTree->SetCaptionFont(somefont);
98 mTree->SetSpacingY(1);
105 //================================================================
107 //================================================================
108 WxGUIPackageBrowser::~WxGUIPackageBrowser()
110 if (mInterpreter) delete mInterpreter;
112 //================================================================
114 //================================================================
115 void WxGUIPackageBrowser::IncludeAll()
118 wxTreeMultiWindowInfo wndinfo(wxTMC_BG_ADJUST_CNT, 8, 0);
120 wxTreeMultiWindowInfo wndinfo(wxTMC_BG_ADJUST_ALL, 8, 0);
123 if (!mInterpreter) mInterpreter = new bbtk::Interpreter();
124 mInterpreter->SetCommandLine(true);
125 mInterpreter->InterpretLine("include *");
127 Factory* F = mInterpreter->GetExecuter()->GetFactory();
129 const Factory::PackageMapType& M = F->GetPackageMap();
130 Factory::PackageMapType::const_iterator i;
131 for (i=M.begin();i!=M.end();++i)
133 Package* P = i->second.mPackage;
134 wxString packname = std2wx(P->GetName());
135 if (packname==_T("user")) continue;
136 wxTreeMultiItem pack = mTree->AddRoot(packname,packname);
138 Package::BlackBoxMapType::iterator j;
139 for (j=P->GetBlackBoxMap().begin();
140 j!=P->GetBlackBoxMap().end();
143 wxString boxname = std2wx(j->second->GetTypeName());
144 wxTreeMultiItem box = mTree->AppendNode(pack,boxname,boxname);
145 WxGUIPackageBrowserBlackBox* boxdescr
146 = new WxGUIPackageBrowserBlackBox(mTree,this,j->second);
147 mTree->AppendWindow(box, boxdescr, _T(""),
148 wndinfo, wxTMC_SPAN_WIDTH);
152 mTree->CollapseNodes(true);
155 // wxTreeMultiItem item = mTree->FindItem(_T("Add"));
156 // if(item.IsOk()) mTree->Exclude(item);
158 //================================================================
160 //================================================================
161 WxGUIPackageBrowserWindow::WxGUIPackageBrowserWindow( wxWindow *parent,
164 : wxFrame((wxFrame *)parent, -1, title, wxDefaultPosition, size)
168 wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
170 mBrowser = new WxGUIPackageBrowser(this);
171 mBrowser->IncludeAll();
172 sizer->Add(mBrowser,1,wxGROW);
174 // WxGUICommand* com = new WxGUICommand(this,this);
179 // Creates and sets the parent window of all bbtk windows
180 wxWindow* top = new wxPanel(this,-1);
183 Wx::SetTopWindow(top);
188 //================================================================
190 //================================================================
191 WxGUIPackageBrowserWindow::~WxGUIPackageBrowserWindow()
194 //================================================================
199 #endif //_USE_WXWIDGETS_