]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/listctrl.h
no message
[wxWidgets.git] / include / wx / generic / listctrl.h
index 227bc96d834a454f11a6104b26aafbfec96fec0b..4fd5c12df3a41830d58081570a9434a223d4c355 100644 (file)
@@ -20,6 +20,7 @@
 #include "wx/imaglist.h"
 #include "wx/control.h"
 #include "wx/timer.h"
+#include "wx/textctrl.h"
 #include "wx/dcclient.h"
 #include "wx/scrolwin.h"
 #include "wx/settings.h"
@@ -208,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 },
 
 
 //-----------------------------------------------------------------------------
@@ -386,8 +387,6 @@ class wxListRenameTimer: public wxTimer
    void Notify();
 };
 
-/*
-
 //-----------------------------------------------------------------------------
 //  wxListTextCtrl (internal)
 //-----------------------------------------------------------------------------
@@ -402,48 +401,19 @@ class wxListTextCtrl: public wxTextCtrl
     wxListMainWindow   *m_owner;
 
   public:
-    wxListTextCtrl(void) : wxTextCtrl() {};
-    wxListTextCtrl(  wxWindow *parent, const char *value = "",
-      bool *accept, wxString *res, wxListMainWindow *owner,
-      int x = -1, int y = -1, int w = -1, int h = -1, int style = 0, char *name = "rawtext" ) :
-      wxTextCtrl( parent, value, x, y, w, h, style, name )
-      {
-        m_res = res;
-        m_accept = accept;
-       m_owner = owner;
-      };
-    void OnChar( wxKeyEvent &event )
-      {
-        if (event.keyCode == WXK_RETURN)
-        {
-          (*m_accept) = TRUE;
-         (*m_res) = GetValue();
-         m_owner->OnRenameAccept();
-//       Show( FALSE );
-          delete this;
-         return;
-       };
-        if (event.keyCode == WXK_ESCAPE)
-        {
-          (*m_accept) = FALSE;
-         (*m_res) = "";
-//       Show( FALSE );
-          delete this;
-         return;
-       };
-      };
-    void OnKillFocus(void)
-      {
-        (*m_accept) = FALSE;
-        (*m_res) = "";
-//      Show( FALSE );
-        delete this;
-        return;
-      };
+    wxListTextCtrl(void) {};
+    wxListTextCtrl( wxWindow *parent, const wxWindowID id, 
+                    bool *accept, wxString *res, wxListMainWindow *owner,
+                    const wxString &value = "",
+                    const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
+                    int style = 0, const wxValidator& validator = wxDefaultValidator,
+                    const wxString &name = "wxListTextCtrlText" );
+    void OnChar( wxKeyEvent &event );
+    void OnKillFocus( wxFocusEvent &event );
+    
+  DECLARE_EVENT_TABLE()
 };
 
-*/
-
 //-----------------------------------------------------------------------------
 //  wxListMainWindow (internal)
 //-----------------------------------------------------------------------------
@@ -494,6 +464,7 @@ class wxListMainWindow: public wxScrolledWindow
     void DeselectLine( wxListLineData *line );
     void DeleteLine( wxListLineData *line );
     void RenameLine( wxListLineData *line, const wxString &newName );
+    void StartLabelEdit( wxListLineData *line );
     void OnRenameTimer(void);
     void OnRenameAccept(void);
     void OnMouse( wxMouseEvent &event );
@@ -568,7 +539,6 @@ class wxListCtrl: public wxControl
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
       long style = 0, 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 );
@@ -598,7 +568,7 @@ class wxListCtrl: public wxControl
     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);
+    long GetNextItem(long item, int geometry = wxLIST_NEXT_ALL, int state = wxLIST_STATE_DONTCARE) const;
     wxImageList *GetImageList(int which);
     void SetImageList(wxImageList *imageList, int which) ;
     bool Arrange( int flag = wxLIST_ALIGN_DEFAULT ); // always wxLIST_ALIGN_LEFT in wxGLC
@@ -622,12 +592,26 @@ class wxListCtrl: public wxControl
     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
+    
     void SetDropTarget( wxDropTarget *dropTarget )
-      { m_mainWin->SetDropTarget( dropTarget ); };
+      { m_mainWin->SetDropTarget( dropTarget ); }
     wxDropTarget *GetDropTarget() const
-      { return m_mainWin->GetDropTarget(); };
-
-    void OnIdle( wxIdleEvent &event );
+      { return m_mainWin->GetDropTarget(); }
+    void SetCursor( const wxCursor &cursor )
+      { m_mainWin->SetCursor( cursor); }
+    wxColour GetBackgroundColour() const
+      { return m_mainWin->GetBackgroundColour(); }
+    void SetBackgroundColour( const wxColour &colour )
+      { m_mainWin->SetBackgroundColour( colour ); }
+    wxColour GetForegroundColour() const
+      { return m_mainWin->GetForegroundColour(); }
+    void SetForegroundColour( const wxColour &colour )
+      { m_mainWin->SetForegroundColour( colour ); }
+    bool PopupMenu( wxMenu *menu, int x, int y )
+      { return m_mainWin->PopupMenu( menu, x, y ); }
 
   protected: