]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/dataview.h
added support for wxCAL_SHOW_WEEK_NUMBERS to generic version of wxCalendarCtrl (...
[wxWidgets.git] / interface / wx / dataview.h
index 9fd9063146514d8bab802a9d75df79b713924720..c4ac26a10b3385d9e618a8027ec756d284bb3da4 100644 (file)
@@ -485,8 +485,12 @@ public:
 
     wxDataViewCtrl is a control to display data either in a tree like fashion or
     in a tabular form or both.
+    
     If you only need to display a simple tree structure with an API more like the
     older wxTreeCtrl class, then the specialized wxDataViewTreeCtrl can be used.
+    Likewise, if you only want to display simple table structure you can use 
+    the specialized wxDataViewListCtrl class. Both wxDataViewTreeCtrl and
+    wxDataViewListCtrl can be used without defining  your own wxDataViewModel.
 
     A wxDataViewItem is used to represent a (visible) item in the control.
 
@@ -550,6 +554,12 @@ public:
            Process a wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED event.
     @event{EVT_DATAVIEW_COLUMN_REORDERED(id, func)}
            Process a wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED event.
+    @event{EVT_DATAVIEW_ITEM_BEGIN_DRAG(id, func)}
+           Process a wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG event.
+    @event{EVT_DATAVIEW_ITEM_DROP_POSSIBLE(id, func)}
+           Process a wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE event.
+    @event{EVT_DATAVIEW_ITEM_DROP(id, func)}
+           Process a wxEVT_COMMAND_DATAVIEW_ITEM_DROP event.
     @endEventTable
 
     @library{wxadv}
@@ -759,6 +769,16 @@ public:
     */
     virtual bool DeleteColumn(wxDataViewColumn* column);
 
+    /**
+       Enable drag operations using the given @a format.
+    */
+    virtual bool EnableDragSource( const wxDataFormat &format );
+    
+    /**
+       Enable drop operations using the given @a format.
+    */
+    virtual bool EnableDropTarget( const wxDataFormat &format );
+    
     /**
         Call this to ensure that the given item is visible.
     */
@@ -1477,6 +1497,212 @@ public:
 
 
 
+/**
+    @class wxDataViewListCtrl
+
+    This class is a wxDataViewCtrl which internally uses a wxDataViewListStore
+    and forwards most of its API to that class.
+
+    The purpose of this class is to offer a simple way to display and
+    edit a small table of data without having to write your own wxDataViewModel.
+
+    @code
+       wxDataViewListCtrl *listctrl = new wxDataViewListCtrl( parent, -1 );
+        
+       listctrl->AppendToggleColumn( "Toggle" );
+       listctrl->AppendTextColumn( "Text" );
+    
+       wxVector<wxVariant> data;
+       data.push_back( true );
+       data.push_back( "row 1" );
+       listctrl->AppendItem( data );
+    
+       data.clear();
+       data.push_back( false );
+       data.push_back( "row 3" );
+       listctrl->AppendItem( data );
+    @endcode
+
+
+    @library{wxadv}
+    @category{ctrl,dvc}
+*/
+class wxDataViewListCtrl: public wxDataViewCtrl
+{
+public:
+    /**
+        Default ctor.
+    */
+    wxDataViewListCtrl();
+    
+    /**
+        Constructor. Calls Create().
+    */
+    wxDataViewListCtrl( wxWindow *parent, wxWindowID id,
+           const wxPoint& pos = wxDefaultPosition,
+           const wxSize& size = wxDefaultSize, long style = wxDV_ROW_LINES,
+           const wxValidator& validator = wxDefaultValidator );
+           
+    /**
+        Destructor. Deletes the image list if any.
+    */
+    ~wxDataViewListCtrl();
+
+    /**
+        Creates the control and a wxDataViewListStore as its internal model.
+    */
+    bool Create( wxWindow *parent, wxWindowID id,
+           const wxPoint& pos = wxDefaultPosition,
+           const wxSize& size = wxDefaultSize, long style = wxDV_ROW_LINES,
+           const wxValidator& validator = wxDefaultValidator );
+
+    //@{
+    /**
+        Returns the store.
+    */
+    wxDataViewListStore *GetStore();
+    const wxDataViewListStore *GetStore() const;
+    //@}
+
+    /**
+        Appends a column to the control and additonally appends a
+        column to the store with the type @a varianttype.
+    */
+    void AppendColumn( wxDataViewColumn *column, const wxString &varianttype );
+    
+    /**
+        Prepends a column to the control and additonally prepends a
+        column to the store with the type @a varianttype.
+    */
+    void PrependColumn( wxDataViewColumn *column, const wxString &varianttype );
+    
+    /**
+        Inserts a column to the control and additonally inserts a
+        column to the store with the type @a varianttype.
+    */
+    void InsertColumn( unsigned int pos, wxDataViewColumn *column, const wxString &varianttype );
+                    
+    /**
+        Overridden from wxDataViewCtrl
+        
+        Appends a column to the control and additonally appends a
+        column to the store with the type string.
+    */
+    virtual void AppendColumn( wxDataViewColumn *column );
+    
+    /**
+        Overridden from wxDataViewCtrl
+        
+        Prepends a column to the control and additonally prepends a
+        column to the store with the type string.
+    */
+    virtual void PrependColumn( wxDataViewColumn *column );
+    
+    /**
+        Overridden from wxDataViewCtrl
+        
+        Inserts a column to the control and additonally inserts a
+        column to the store with the type string.
+    */
+    virtual void InsertColumn( unsigned int pos, wxDataViewColumn *column );
+                    
+    /**
+        Inserts a text column to the control and the store.
+    */
+    wxDataViewColumn *AppendTextColumn( const wxString &label, 
+          wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, 
+          int width = -1, wxAlignment align = wxALIGN_LEFT, int flags = wxDATAVIEW_COL_RESIZABLE );
+                    
+    /**
+        Inserts a toggle column to the control and the store.
+    */
+    wxDataViewColumn *AppendToggleColumn( const wxString &label, 
+          wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, 
+          int width = -1, wxAlignment align = wxALIGN_LEFT, int flags = wxDATAVIEW_COL_RESIZABLE );
+                    
+    /**
+        Inserts a progress column to the control and the store.
+    */
+    wxDataViewColumn *AppendProgressColumn( const wxString &label, 
+          wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, 
+          int width = -1, wxAlignment align = wxALIGN_LEFT, int flags = wxDATAVIEW_COL_RESIZABLE );
+                    
+    /**
+        Inserts a icon and text column to the control and the store.
+    */
+    wxDataViewColumn *AppendIconTextColumn( const wxString &label, 
+          wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, 
+          int width = -1, wxAlignment align = wxALIGN_LEFT, int flags = wxDATAVIEW_COL_RESIZABLE );
+
+    /**
+        Appends an item (=row) to the control and store.
+    */
+    void AppendItem( const wxVector<wxVariant> &values, wxClientData *data = NULL );
+
+    /**
+        Prepends an item (=row) to the control and store.
+    */
+    void PrependItem( const wxVector<wxVariant> &values, wxClientData *data = NULL );
+
+    /**
+        Inserts an item (=row) to the control and store.
+    */
+    void InsertItem(  unsigned int row, const wxVector<wxVariant> &values, wxClientData *data = NULL );
+    
+    /**
+        Delete the row at position @a row.
+    */
+    void DeleteItem( unsigned row );
+    
+    /**
+        Delete all items (= all rows).
+    */
+    void DeleteAllItems();
+    
+    /**
+         Sets the value in the store and update the control.
+    */
+    void SetValue( const wxVariant &value, unsigned int row, unsigned int col );
+    
+    /**
+         Returns the value from the store.
+    */
+    void GetValue( wxVariant &value, unsigned int row, unsigned int col );
+    
+    /**
+         Sets the value in the store and update the control. 
+         
+         This method assumes that the a string is stored in respective
+         column.
+    */
+    void SetTextValue( const wxString &value, unsigned int row, unsigned int col );
+    
+    /**
+         Returns the value from the store.
+         
+         This method assumes that the a string is stored in respective
+         column.
+    */
+    wxString GetTextValue( unsigned int row, unsigned int col ) const;
+    
+    /**
+         Sets the value in the store and update the control. 
+         
+         This method assumes that the a boolean value is stored in
+         respective column.
+    */
+    void SetToggleValue( bool value, unsigned int row, unsigned int col );
+    
+    /**
+         Returns the value from the store.
+         
+         This method assumes that the a boolean value is stored in
+         respective column.
+    */
+    bool GetToggleValue( unsigned int row, unsigned int col ) const;
+};
+
+
 /**
     @class wxDataViewTreeCtrl
 
@@ -1514,7 +1740,7 @@ public:
     virtual ~wxDataViewTreeCtrl();
 
     /**
-        @todo docme
+        Appends a container to the given @a parent.
     */
     wxDataViewItem AppendContainer(const wxDataViewItem& parent,
                                    const wxString& text,
@@ -1523,7 +1749,7 @@ public:
                                    wxClientData* data = NULL);
 
     /**
-        @todo docme
+        Appends an item to the given @a parent.
     */
     wxDataViewItem AppendItem(const wxDataViewItem& parent,
                               const wxString& text,
@@ -1987,14 +2213,11 @@ public:
 class wxDataViewEvent : public wxNotifyEvent
 {
 public:
-    //@{
     /**
         Constructor. Typically used by wxWidgets internals only.
     */
     wxDataViewEvent(wxEventType commandType = wxEVT_NULL,
                     int winid = 0);
-    wxDataViewEvent(const wxDataViewEvent& event);
-    //@}
 
     /**
         Returns the position of the column in the control or -1
@@ -2042,5 +2265,46 @@ public:
         Sets the value associated with this event.
     */
     void SetValue(const wxVariant& value);
+    
+    /**
+        Set wxDataObject for data transfer within a drag operation.
+    */
+    void SetDataObject( wxDataObject *obj );
+            
+    /**
+        Used internally. Gets associated wxDataObject for data transfer
+        within a drag operation.
+    */
+    wxDataObject *GetDataObject() const;
+    
+    /**
+        Used internally. Sets the wxDataFormat during a drop operation.
+    */
+    void SetDataFormat( const wxDataFormat &format );
+    
+    /**
+        Gets the wxDataFormat during a drop operation.
+    */
+    wxDataFormat GetDataFormat() const;
+    
+    /**
+        Used internally. Sets the data size for a drop data transfer.
+    */
+    void SetDataSize( size_t size );
+    
+    /**
+        Gets the data size for a drop data transfer.
+    */
+    size_t GetDataSize() const;
+    
+    /**
+        Used internally. Sets the data buffer for a drop data transfer.
+    */
+    void SetDataBuffer( void* buf );
+    
+    /**
+        Gets the data buffer for a drop data transfer.
+    */
+    void *GetDataBuffer() const;
 };