#ifndef __creaImageIOWxTreeView_h_INCLUDED__ #define __creaImageIOWxTreeView_h_INCLUDED__ #ifdef USE_WXWIDGETS #include #include #include #include //#include namespace creaImageIO { /** * \ingroup View */ //===================================================================== //===================================================================== /// Abstract class that handles the view of a Tree through its TreeHandler class WxTreeView : public wxPanel, virtual public TreeView { public: /// Ctor WxTreeView(TreeHandler*, wxWindow* parent, const wxWindowID id); /// Virtual destructor virtual ~WxTreeView(); /// Updates the view of a level given the selected items of upper level virtual void UpdateLevel( int ); ///Removes selected nodes on given level virtual void RemoveSelected( int ); /// Callback for selection change void OnSelected(wxListEvent& event); /// Callback for selection change void OnColClick(wxListEvent& event); private: /// The struct holding the data for one level /// Holds the wx control and other data /// such as the vector of attribute keys corresponding to the columns struct LevelType { // The List Control wxListCtrl* wxCtrl; wxSplitterWindow* wxSplitter; std::vector key; }; /// The vector of levels : one for each level of the tree std::vector mLevelList; /// return the wxListCtrl of one level wxListCtrl* GetCtrl(int l) { return mLevelList[l].wxCtrl; } /// return the wxSplitter of one level wxSplitterWindow* GetSplitter(int l) { return mLevelList[l].wxSplitter; } /// Gets the user selected data from the level passed as a parameter std::vector GetSelected(int level); ///Validates the selected images void ValidateSelectedImages(); ///Returns the selected data as vtkImageData vtkImageData* GetSelectedImage(int dim); ///Returns the selected data as vtkImageData void GetSelectedImages(std::vector& s, int dim); // Updates the view of a level given the selected items of upper level // Recursive method virtual void RecursiveUpdateLevel( int ); DECLARE_EVENT_TABLE() }; // EO class WxTreeView //===================================================================== } // EO namespace creaImageIO /* class MyEvent: public wxCommandEvent { public: MyEvent( wxEventType commandType = MyCommandEvent, int id = 0 ) : wxCommandEvent(commandType, id) { } // You *must* copy here the data to be transported MyEvent( const MyEvent &event ) : wxCommandEvent(event) { this->SetText( event.GetText() ); } // Required for sending with wxPostEvent() wxEvent* Clone() const { return new MyEvent(*this); } wxString GetText() const { return m_Text; } void SetText( const wxString& text ) { m_Text = text; } private: wxString m_Text; }; */ #endif // USE_WIDGETS // EOF #endif