]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/listctrl.h
wxTreeCtrl::Sort() changed, adapted the sample to show it.
[wxWidgets.git] / include / wx / generic / listctrl.h
index 491b512022c1613a61190e11b6ae3875ab5b9ccc..81c34064dfab389a803c40c9f4b967495a405403 100644 (file)
@@ -190,7 +190,7 @@ class wxListItem: public wxObject
 // wxListEvent
 //-----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxListEvent: public wxCommandEvent
+class WXDLLEXPORT wxListEvent: public wxNotifyEvent
 {
   DECLARE_DYNAMIC_CLASS(wxListEvent)
 
@@ -222,7 +222,9 @@ typedef void (wxEvtHandler::*wxListEventFunction)(wxListEvent&);
 #define EVT_LIST_KEY_DOWN(id, fn) { wxEVT_COMMAND_LIST_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
 #define EVT_LIST_INSERT_ITEM(id, fn) { wxEVT_COMMAND_LIST_INSERT_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
 #define EVT_LIST_COL_CLICK(id, fn) { wxEVT_COMMAND_LIST_COL_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
-
+#define EVT_LIST_ITEM_RIGHT_CLICK(id, fn) { wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
+#define EVT_LIST_ITEM_MIDDLE_CLICK(id, fn) { wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
+#define EVT_LIST_ITEM_ACTIVATED(id, fn) { wxEVT_COMMAND_LIST_ITEM_ACTIVATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
 
 //-----------------------------------------------------------------------------
 //  wxListItemData (internal)
@@ -366,6 +368,7 @@ class wxListHeaderWindow : public wxWindow
 
   public:
     wxListHeaderWindow( void );
+    ~wxListHeaderWindow( void );
     wxListHeaderWindow( wxWindow *win, wxWindowID id, wxListMainWindow *owner,
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
       long style = 0, const wxString &name = "columntitles" );
@@ -460,7 +463,6 @@ class wxListMainWindow: public wxScrolledWindow
     void RefreshLine( wxListLineData *line );
     void OnPaint( wxPaintEvent &event );
     void HilightAll( bool on );
-    void ActivateLine( wxListLineData *line );
     void SendNotify( wxListLineData *line, wxEventType command );
     void FocusLine( wxListLineData *line );
     void UnfocusLine( wxListLineData *line );
@@ -518,7 +520,6 @@ class wxListMainWindow: public wxScrolledWindow
     void InsertColumn( long col, wxListItem &item );
 //    void AddColumn( wxListItem &item );
     void SortItems( wxListCtrlCompare fn, long data );
-    virtual bool OnListNotify( wxListEvent &event );
 
   DECLARE_EVENT_TABLE()
 };
@@ -547,42 +548,44 @@ class wxListCtrl: public wxControl
       long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator,
        const wxString &name = "listctrl" );
     void OnSize( wxSizeEvent &event );
-    bool GetColumn( int col, wxListItem& item );
+    bool GetColumn( int col, wxListItem& item ) const;
     bool SetColumn( int col, wxListItem& item );
-    int GetColumnWidth( int col );
+    int GetColumnWidth( int col ) const;
     bool SetColumnWidth( int col, int width);
-    int GetCountPerPage(void); // not the same in wxGLC as in Windows, I think
+    int GetCountPerPage(void) const; // not the same in wxGLC as in Windows, I think
 //  wxText& GetEditControl(void) const; // not supported in wxGLC
-    bool GetItem( wxListItem& info );
+    bool GetItem( wxListItem& info ) const;
     bool SetItem( wxListItem& info ) ;
     long SetItem( long index, int col, const wxString& label, int imageId = -1 );
-    int  GetItemState( long item, long stateMask );
+    int  GetItemState( long item, long stateMask ) const;
     bool SetItemState( long item, long state, long stateMask);
     bool SetItemImage( long item, int image, int selImage);
-    wxString GetItemText( long item );
+    wxString GetItemText( long item ) const;
     void SetItemText( long item, const wxString& str );
-    long GetItemData( long item );
+    long GetItemData( long item ) const;
     bool SetItemData( long item, long data );
-    bool GetItemRect( long item, wxRectangle& rect, int code = wxLIST_RECT_BOUNDS );
-    bool GetItemPosition( long item, wxPoint& pos );
+    bool GetItemRect( long item, wxRectangle& rect, int code = wxLIST_RECT_BOUNDS ) const;
+    bool GetItemPosition( long item, wxPoint& pos ) const;
     bool SetItemPosition( long item, const wxPoint& pos ); // not supported in wxGLC
-    int GetItemCount(void);
+    int GetItemCount(void) const;
+    int GetColumnCount(void) const;
     void SetItemSpacing( int spacing, bool isSmall = FALSE );
-    int GetItemSpacing( bool isSmall );
-    int GetSelectedItemCount(void);
+    int GetItemSpacing( bool isSmall ) const;
+    int GetSelectedItemCount(void) const;
 //  wxColour GetTextColour(void) const; // wxGLC has colours for every Item (see wxListItem)
 //  void SetTextColour(const wxColour& col);
-    long GetTopItem(void);
+    long GetTopItem(void) const;
     void SetSingleStyle( long style, bool add = TRUE ) ;
     void SetWindowStyleFlag(long style);
     void RecreateWindow(void) {};
     long GetNextItem(long item, int geometry = wxLIST_NEXT_ALL, int state = wxLIST_STATE_DONTCARE) const;
-    wxImageList *GetImageList(int which);
+    wxImageList *GetImageList(int which) const;
     void SetImageList(wxImageList *imageList, int which) ;
     bool Arrange( int flag = wxLIST_ALIGN_DEFAULT ); // always wxLIST_ALIGN_LEFT in wxGLC
+    void ClearAll();
     bool DeleteItem( long item );
-    bool DeleteAllItems(void) ;
-    void DeleteAllColumns(void) ;
+    bool DeleteAllItems(void);
+    bool DeleteAllColumns(void);
     bool DeleteColumn( int col );
 //  wxText& Edit(long item) ;  // not supported in wxGLC
     bool EnsureVisible( long item );
@@ -600,7 +603,6 @@ class wxListCtrl: public wxControl
     bool ScrollList(int dx, int dy);
     bool SortItems(wxListCtrlCompare fn, long data);
     bool Update(long item);
-    virtual bool OnListNotify(wxListEvent& WXUNUSED(event)) { return FALSE; }
     void OnIdle( wxIdleEvent &event );
     
     // We have to hand down a few functions
@@ -614,13 +616,17 @@ class wxListCtrl: public wxControl
     wxDropTarget *GetDropTarget() const
       { return m_mainWin->GetDropTarget(); }
     void SetCursor( const wxCursor &cursor )
-      { m_mainWin->SetCursor( cursor); }
+      { if (m_mainWin) m_mainWin->wxWindow::SetCursor( cursor); }
     wxColour GetBackgroundColour() const
-      { return m_mainWin->GetBackgroundColour(); }
+      { if (m_mainWin) return m_mainWin->GetBackgroundColour();
+        else return wxColour(); }
     wxColour GetForegroundColour() const
-      { return m_mainWin->GetForegroundColour(); }
+      { if (m_mainWin) return m_mainWin->GetForegroundColour();
+        else return wxColour(); }
     bool PopupMenu( wxMenu *menu, int x, int y )
       { return m_mainWin->PopupMenu( menu, x, y ); }
+    void SetFocus()
+      { m_mainWin->SetFocus(); }
 
   // implementation