]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/listctrl.h
wxSize/wxPoint/wxRect versions of functions added to wxMSW, wxMotif;
[wxWidgets.git] / include / wx / generic / listctrl.h
index 6656631d388d99da10cc1d2646ae13beb9b6dcfb..235d41695858049a9b94feaf7adab932d2f6a9c2 100644 (file)
@@ -209,19 +209,19 @@ class WXDLLEXPORT wxListEvent: public wxCommandEvent
 
 typedef void (wxEvtHandler::*wxListEventFunction)(wxListEvent&);
 
-#define EVT_LIST_BEGIN_DRAG(id, fn) { wxEVT_COMMAND_LIST_BEGIN_DRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL },
-#define EVT_LIST_BEGIN_RDRAG(id, fn) { wxEVT_COMMAND_LIST_BEGIN_RDRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL },
-#define EVT_LIST_BEGIN_LABEL_EDIT(id, fn) { wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL },
-#define EVT_LIST_END_LABEL_EDIT(id, fn) { wxEVT_COMMAND_LIST_END_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL },
-#define EVT_LIST_DELETE_ITEM(id, fn) { wxEVT_COMMAND_LIST_DELETE_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL },
-#define EVT_LIST_DELETE_ALL_ITEMS(id, fn) { wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL },
-#define EVT_LIST_GET_INFO(id, fn) { wxEVT_COMMAND_LIST_GET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL },
-#define EVT_LIST_SET_INFO(id, fn) { wxEVT_COMMAND_LIST_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL },
-#define EVT_LIST_ITEM_SELECTED(id, fn) { wxEVT_COMMAND_LIST_ITEM_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL },
-#define EVT_LIST_ITEM_DESELECTED(id, fn) { wxEVT_COMMAND_LIST_ITEM_DESELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL },
-#define EVT_LIST_KEY_DOWN(id, fn) { wxEVT_COMMAND_LIST_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL },
-#define EVT_LIST_INSERT_ITEM(id, fn) { wxEVT_COMMAND_LIST_INSERT_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL },
-#define EVT_LIST_COL_CLICK(id, fn) { wxEVT_COMMAND_LIST_COL_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL },
+#define EVT_LIST_BEGIN_DRAG(id, fn) { wxEVT_COMMAND_LIST_BEGIN_DRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
+#define EVT_LIST_BEGIN_RDRAG(id, fn) { wxEVT_COMMAND_LIST_BEGIN_RDRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
+#define EVT_LIST_BEGIN_LABEL_EDIT(id, fn) { wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
+#define EVT_LIST_END_LABEL_EDIT(id, fn) { wxEVT_COMMAND_LIST_END_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
+#define EVT_LIST_DELETE_ITEM(id, fn) { wxEVT_COMMAND_LIST_DELETE_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
+#define EVT_LIST_DELETE_ALL_ITEMS(id, fn) { wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
+#define EVT_LIST_GET_INFO(id, fn) { wxEVT_COMMAND_LIST_GET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
+#define EVT_LIST_SET_INFO(id, fn) { wxEVT_COMMAND_LIST_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
+#define EVT_LIST_ITEM_SELECTED(id, fn) { wxEVT_COMMAND_LIST_ITEM_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
+#define EVT_LIST_ITEM_DESELECTED(id, fn) { wxEVT_COMMAND_LIST_ITEM_DESELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
+#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 },
 
 
 //-----------------------------------------------------------------------------
@@ -232,7 +232,7 @@ class wxListItemData : public wxObject
 {
   DECLARE_DYNAMIC_CLASS(wxListItemData);
 
-  protected:
+  public:
     wxString   m_text;
     int        m_image;
     long       m_data;
@@ -306,7 +306,7 @@ class wxListLineData : public wxObject
 {
   DECLARE_DYNAMIC_CLASS(wxListLineData);
 
-  protected:
+  public:
     wxList              m_items;
     wxRectangle         m_bound_all;
     wxRectangle         m_bound_label;
@@ -359,6 +359,10 @@ class wxListHeaderWindow : public wxWindow
     wxListMainWindow  *m_owner;
     wxCursor          *m_currentCursor;
     wxCursor          *m_resizeCursor;
+    bool               m_isDraging;
+    int                m_column;
+    int                m_minX;
+    int                m_currentX;
 
   public:
     wxListHeaderWindow( void );
@@ -367,6 +371,7 @@ class wxListHeaderWindow : public wxWindow
       long style = 0, const wxString &name = "columntitles" );
     void DoDrawRect( wxPaintDC *dc, int x, int y, int w, int h );
     void OnPaint( wxPaintEvent &event );
+    void DrawCurrent();
     void OnMouse( wxMouseEvent &event );
     void OnSetFocus( wxFocusEvent &event );
 
@@ -430,7 +435,6 @@ class wxListMainWindow: public wxScrolledWindow
     int                  m_visibleLines;
     wxBrush             *m_hilightBrush;
     wxColour            *m_hilightColour;
-    wxFont              *m_myFont;
     int                  m_xScroll,m_yScroll;
     bool                 m_dirty;
     wxImageList         *m_small_image_list;
@@ -474,7 +478,6 @@ class wxListMainWindow: public wxScrolledWindow
     void OnSetFocus( wxFocusEvent &event );
     void OnKillFocus( wxFocusEvent &event );
     void OnSize( wxSizeEvent &event );
-    wxFont *GetMyFont( void );
     void DrawImage( int index, wxPaintDC *dc, int x, int y );
     void GetImageSize( int index, int &width, int &height );
     int GetIndexOfLine( const wxListLineData *line );
@@ -531,15 +534,19 @@ class wxListCtrl: public wxControl
   public:
 
     wxListCtrl(void);
-    wxListCtrl( wxWindow *parent, wxWindowID id,
+    wxListCtrl( wxWindow *parent, wxWindowID id = -1,
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
-      long style = 0, const wxString &name = "listctrl" );
+      long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator,
+       const wxString &name = "listctrl" )
+    {
+      Create(parent, id, pos, size, style, validator, name);
+    }
     ~wxListCtrl(void);
-    bool Create( wxWindow *parent, wxWindowID id,
+    bool Create( wxWindow *parent, wxWindowID id = -1,
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
-      long style = 0, const wxString &name = "listctrl" );
+      long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator,
+       const wxString &name = "listctrl" );
     void OnSize( wxSizeEvent &event );
-    void SetBackgroundColour( const wxColour& col );
     bool GetColumn( int col, wxListItem& item );
     bool SetColumn( int col, wxListItem& item );
     int GetColumnWidth( int col );
@@ -597,6 +604,10 @@ class wxListCtrl: public wxControl
     
     // We have to hand down a few functions
     
+    void SetBackgroundColour( const wxColour &colour );
+    void SetForegroundColour( const wxColour &colour );
+    void SetFont( const wxFont &font );
+    
     void SetDropTarget( wxDropTarget *dropTarget )
       { m_mainWin->SetDropTarget( dropTarget ); }
     wxDropTarget *GetDropTarget() const
@@ -605,16 +616,12 @@ class wxListCtrl: public wxControl
       { m_mainWin->SetCursor( cursor); }
     wxColour GetBackgroundColour() const
       { return m_mainWin->GetBackgroundColour(); }
-    void SetBackgroundColour( const wxColour &colour )
-      { m_mainWin->SetBackgroundColour(); }
     wxColour GetForegroundColour() const
       { return m_mainWin->GetForegroundColour(); }
-    void SetForegroundColour( const wxColour &colour )
-      { return m_mainWin->GetForegroundColour(); }
     bool PopupMenu( wxMenu *menu, int x, int y )
-      { m_mainWin->PopupMenu( menu, x, y ); }
+      { return m_mainWin->PopupMenu( menu, x, y ); }
 
-  protected:
+  // implementation
 
 //  wxListTextCtrl       m_textCtrl;
     wxImageList         *m_imageListNormal;