Program: bbtk
Module: $RCSfile: bbtkWxGUIPackageBrowser2.cxx,v $
Language: C++
-Date: $Date: 2008/04/04 08:04:05 $
-Version: $Revision: 1.1 $
+Date: $Date: 2008/04/18 12:59:16 $
+Version: $Revision: 1.5 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#endif
}
- void WxGUIBlackBoxList::Insert(BlackBoxDescriptor* d)
+ void WxGUIBlackBoxList::Insert(BlackBoxDescriptor::Pointer d)
{
if (GetColumnCount()!=3)
{
int nID = this->GetItemCount();
kNewItem.SetId(nID);
kNewItem.SetMask(wxLIST_MASK_DATA);
- kNewItem.SetData(d);
- // BlackBoxDescriptor* d2 = (BlackBoxDescriptor*)kNewItem.GetData();
+ // TO DO : STORE SHARED POINTER
+ // kNewItem.SetData(d.get());
+ // BlackBoxDescriptor::Pointer* d2 = (BlackBoxDescriptor::Pointer*)kNewItem.GetData();
// std::cout << "Descr = "<<d<<" = "<<d2<<std::endl;
this->InsertItem(kNewItem);
this->SetItem(nID, 0, std2wx(d->GetPackage()->GetName()) );
info.m_mask = wxLIST_MASK_DATA;
if ( GetItem(info) )
{
- BlackBoxDescriptor* d = (BlackBoxDescriptor*)(info.GetData());
- if (d!=0) mUser->WxGUIBlackBoxListUserOnSelected(d);
+ // TO DO : STORE SHARED
+ // BlackBoxDescriptor* d = (BlackBoxDescriptor*)(info.GetData());
+ // if (d!=0) mUser->WxGUIBlackBoxListUserOnSelected(d);
}
else
{
WxGUIBlackBoxInfo::WxGUIBlackBoxInfo(wxWindow* parent)
:
wxPanel(parent, -1),
- mDescriptor(0)
+ mDescriptor()
{
wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
- mName = new wxStaticText(this,-1,_T(""));
- sizer->Add(mName,0,wxGROW);
+ // mName = new wxStaticText(this,-1,_T(""));
+ // sizer->Add(mName,0,wxGROW);
mDescription = new wxStaticText(this,-1,_T(""));
sizer->Add(mDescription,0,wxGROW);
mAuthor = new wxStaticText(this,-1,_T(""));
| wxSUNKEN_BORDER);
- inputs->Add(mInputList,0,wxGROW);
- sizer->Add(inputs,0,wxGROW);
+ inputs->Add(mInputList,1,wxGROW);
+ sizer->Add(inputs,1,wxGROW);
wxBoxSizer *outputs =
new wxStaticBoxSizer
wxLC_REPORT //wxLC_LIST
| wxSUNKEN_BORDER);
- outputs->Add(mOutputList,0,wxGROW);
- sizer->Add(outputs,0,wxGROW);
+ outputs->Add(mOutputList,1,wxGROW);
+ sizer->Add(outputs,1,wxGROW);
SetSizer(sizer);
//================================================================
- void WxGUIBlackBoxInfo::UpdateInfo(BlackBoxDescriptor* descr)
+ void WxGUIBlackBoxInfo::UpdateInfo(BlackBoxDescriptor::Pointer descr)
{
- std::cout << "UpdateInfo "<<descr<<std::endl;
- mName->SetLabel(std2wx(descr->GetTypeName()));
+
+ // mName->SetLabel(std2wx(descr->GetTypeName()));
mDescription->SetLabel(std2wx(descr->GetDescription()));
mAuthor->SetLabel(std2wx(descr->GetAuthor()));
mCategory->SetLabel(std2wx(descr->GetCategory()));
wxLIST_FORMAT_LEFT, 80 );
mInputList->InsertColumn( 1, _("Type"),
wxLIST_FORMAT_LEFT, 100 );
- mInputList->InsertColumn( 2, _("Description"),
+ mInputList->InsertColumn( 2, _("Nature"),
+ wxLIST_FORMAT_LEFT, 100 );
+ mInputList->InsertColumn( 3, _("Description"),
wxLIST_FORMAT_LEFT, 500 );
mOutputList->ClearAll();
wxLIST_FORMAT_LEFT, 80 );
mOutputList->InsertColumn( 1, _("Type"),
wxLIST_FORMAT_LEFT, 100 );
- mOutputList->InsertColumn( 2, _("Description"),
+ mOutputList->InsertColumn( 2, _("Nature"),
+ wxLIST_FORMAT_LEFT, 100 );
+ mOutputList->InsertColumn( 3, _("Description"),
wxLIST_FORMAT_LEFT, 500 );
wxListItem kNewItem;
kNewItem.SetAlign(wxLIST_FORMAT_LEFT);
int nID = l->GetItemCount();
- std::cout << nID << std::endl;
+ // std::cout << nID << std::endl;
kNewItem.SetId(nID);
// kNewItem.SetMask(wxLIST_MASK_DATA);
// kNewItem.SetData(d);
l->InsertItem(kNewItem);
l->SetItem(nID, 0, std2wx(d->GetName()) );
l->SetItem(nID, 1, std2wx(d->GetTypeName()) );
- l->SetItem(nID, 2, std2wx(d->GetDescription()) );
+ l->SetItem(nID, 2, std2wx(d->GetNature()) );
+ l->SetItem(nID, 3, std2wx(d->GetDescription()) );
}
//================================================================
WxGUIPackageBrowser2User* user )
: wxPanel(parent, -1),
mUser(user),
- mInterpreter(0)
+ mInterpreter()
{
+ m_mgr.SetManagedWindow(this);
- wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
+ // wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
mBoxList = new WxGUIBlackBoxList(this, LIST_CTRL,
wxDefaultPosition,
wxDefaultSize,
| wxSUNKEN_BORDER);
mBoxList->SetUser(this);
mBoxList->SetBackgroundColour(*wxWHITE);
- sizer->Add(mBoxList,5,wxGROW);
- mBoxInfo = new WxGUIBlackBoxInfo(this);
- sizer->Add(mBoxInfo,3,wxGROW);
+ m_mgr.AddPane(mBoxList,
+ wxAuiPaneInfo().Name(wxT("BoxList"))
+ .Caption(wxT("Black Boxes"))
+ .MinimizeButton(true)
+ .MaximizeButton(true)
+ .Center()
+ .MinSize(wxSize(100,100))
+ );
+ // sizer->Add(mBoxList,5,wxGROW);
+ mBoxInfo = new WxGUIBlackBoxInfo(this);
+ // sizer->Add(mBoxInfo,3,wxGROW);
+
+ m_mgr.AddPane(mBoxInfo,
+ wxAuiPaneInfo().Name(wxT("Box"))
+ .Caption(wxT(""))
+ .MinimizeButton(true)
+ .MaximizeButton(true)
+ .Bottom()
+ .MinSize(wxSize(100,300))
+ );
- wxBoxSizer *fsizer = new wxStaticBoxSizer
- ( new wxStaticBox(this, wxID_ANY, _T("Filters")), wxHORIZONTAL );
-
- mPackageFilter = new wxTextCtrl(this,id_f1,_T(""),
+ wxPanel* filters = new wxPanel(this,-1);
+ wxBoxSizer *fsizer = new wxBoxSizer(wxVERTICAL );
+ wxBoxSizer *fpack =
+ new wxStaticBoxSizer
+ ( new wxStaticBox(filters, wxID_ANY, _T("Package")), wxHORIZONTAL );
+ mPackageFilter = new wxTextCtrl(filters,id_f1,_T(""),
wxDefaultPosition,
wxDefaultSize,
wxTE_PROCESS_ENTER);
- fsizer->Add(mPackageFilter,1,wxGROW);
- mNameFilter = new wxTextCtrl(this,id_f2,_T(""),
+ fpack->Add(mPackageFilter,1,wxGROW);
+ fsizer->Add(fpack,0,wxGROW);
+ wxBoxSizer *fname =
+ new wxStaticBoxSizer
+ ( new wxStaticBox(filters, wxID_ANY, _T("Name")), wxHORIZONTAL );
+ mNameFilter = new wxTextCtrl(filters,id_f2,_T(""),
wxDefaultPosition,
wxDefaultSize,
wxTE_PROCESS_ENTER);
- fsizer->Add(mNameFilter,1,wxGROW);
- mDescriptionFilter = new wxTextCtrl(this,id_f3,_T(""),
+ fname->Add(mNameFilter,1,wxGROW);
+ fsizer->Add(fname,0,wxGROW);
+ wxBoxSizer *fdescr =
+ new wxStaticBoxSizer
+ ( new wxStaticBox(filters, wxID_ANY, _T("Description")), wxHORIZONTAL );
+ mDescriptionFilter = new wxTextCtrl(filters,id_f3,_T(""),
wxDefaultPosition,
wxDefaultSize,
wxTE_PROCESS_ENTER);
- fsizer->Add(mDescriptionFilter,1,wxGROW);
- mCategoryFilter = new wxTextCtrl(this,id_f4,_T(""),
+ fdescr->Add(mDescriptionFilter,1,wxGROW);
+ fsizer->Add(fdescr,0,wxGROW);
+ wxBoxSizer *fcat =
+ new wxStaticBoxSizer
+ ( new wxStaticBox(filters, wxID_ANY, _T("Category")), wxHORIZONTAL );
+ mCategoryFilter = new wxTextCtrl(filters,id_f4,_T(""),
wxDefaultPosition,
wxDefaultSize,
wxTE_PROCESS_ENTER);
- fsizer->Add(mCategoryFilter,1,wxGROW);
- mInputTypeFilter = new wxTextCtrl(this,id_f4,_T(""),
+ fcat->Add(mCategoryFilter,1,wxGROW);
+ fsizer->Add(fcat,0,wxGROW);
+ wxBoxSizer *fintype =
+ new wxStaticBoxSizer
+ ( new wxStaticBox(filters, wxID_ANY, _T("Input type")), wxHORIZONTAL );
+ mInputTypeFilter = new wxTextCtrl(filters,id_f4,_T(""),
wxDefaultPosition,
wxDefaultSize,
wxTE_PROCESS_ENTER);
- fsizer->Add(mInputTypeFilter,1,wxGROW);
- mOutputTypeFilter = new wxTextCtrl(this,id_f4,_T(""),
+ fintype->Add(mInputTypeFilter,1,wxGROW);
+ fsizer->Add(fintype,0,wxGROW);
+ wxBoxSizer *fouttype =
+ new wxStaticBoxSizer
+ ( new wxStaticBox(filters, wxID_ANY, _T("Output type")), wxHORIZONTAL );
+ mOutputTypeFilter = new wxTextCtrl(filters,id_f4,_T(""),
wxDefaultPosition,
wxDefaultSize,
wxTE_PROCESS_ENTER);
- fsizer->Add(mOutputTypeFilter,1,wxGROW);
+ fouttype->Add(mOutputTypeFilter,1,wxGROW);
+ fsizer->Add(fouttype,0,wxGROW);
+
+ filters->SetSizer(fsizer);
+
+ m_mgr.AddPane(filters,
+ wxAuiPaneInfo().Name(wxT("Filter"))
+ .Caption(wxT("Filter"))
+ .MinimizeButton(true)
+ .MaximizeButton(true)
+ .Right()
+ .MinSize(wxSize(100,100)) );
- sizer->Add(fsizer,1,wxGROW);
- SetSizer(sizer);
+ // sizer->Add(fsizer,1,wxGROW);
+ m_mgr.Update();
+
+ // SetSizer(sizer);
SetAutoLayout(true);
Layout();
//================================================================
// User callback when a box is selected in the list
- void WxGUIPackageBrowser2::WxGUIBlackBoxListUserOnSelected( BlackBoxDescriptor* d)
+ void WxGUIPackageBrowser2::WxGUIBlackBoxListUserOnSelected( BlackBoxDescriptor::Pointer d)
{
mBoxInfo->UpdateInfo(d);
+ std::string title = d->GetPackage()->GetName()+"::"+d->GetTypeName();
+ m_mgr.GetPane(mBoxInfo).Caption(std2wx(title));
+ m_mgr.Update();
}
//================================================================
//================================================================
WxGUIPackageBrowser2::~WxGUIPackageBrowser2()
{
- std::cout << "del interpreter" << std::endl;
- if (mInterpreter) delete mInterpreter;
- std::cout << "ok" << std::endl;
+
+ // std::cout << "del interpreter" << std::endl;
+ // if (mInterpreter) delete mInterpreter;
+ // std::cout << "ok" << std::endl;
}
//================================================================
//================================================================
void WxGUIPackageBrowser2::IncludeAll()
{
- if (!mInterpreter) mInterpreter = new bbtk::Interpreter();
+ if (!mInterpreter) mInterpreter =bbtk::Interpreter::New();
mInterpreter->SetCommandLine(true);
mInterpreter->InterpretLine("include *");
- Factory* F = mInterpreter->GetExecuter()->GetFactory();
+ Factory::Pointer F = mInterpreter->GetExecuter()->GetFactory();
BuildFromFactory(F);
}
//================================================================
//================================================================
- void WxGUIPackageBrowser2::BuildFromFactory(Factory* F)
+ void WxGUIPackageBrowser2::BuildFromFactory(Factory::Pointer F)
{
mFactory = F;
RebuildList();
Factory::PackageMapType::const_iterator i;
for (i=M.begin();i!=M.end();++i)
{
- Package* P = i->second.mPackage;
+ Package::Pointer P = i->second;
if (P->GetName() == "user") continue;
Package::BlackBoxMapType::iterator j;
//================================================================
//================================================================
- bool WxGUIPackageBrowser2::IsVisible(BlackBoxDescriptor* d)
+ bool WxGUIPackageBrowser2::IsVisible(BlackBoxDescriptor::Pointer d)
{
// std::cout << " '" << wx2std(mPackageFilter->GetValue())<<"'"<<std::endl;
// std::cout << "vs '" << d->GetPackage()->GetName() << "'"<<std::endl;