]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/listctrl.h
added wxFrame::Command()
[wxWidgets.git] / include / wx / msw / listctrl.h
index 95f7a899568ce125b70b21818e274ce0aec6df62..12bc6f41494f6d642422e2aca81bfc62fa438f0a 100644 (file)
@@ -5,12 +5,12 @@
 // Modified by:
 // Created:     01/02/97
 // RCS-ID:      $Id$
 // Modified by:
 // Created:     01/02/97
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:    wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef __LISTCTRLH__
-#define __LISTCTRLH__
+#ifndef _WX_LISTCTRL_H_
+#define _WX_LISTCTRL_H_
 
 #ifdef __GNUG__
 #pragma interface "listctrl.h"
 
 #ifdef __GNUG__
 #pragma interface "listctrl.h"
 #define wxLIST_HITTEST_TOLEFT           0x0400  // To the left of the client area.
 #define wxLIST_HITTEST_TORIGHT          0x0800  // To the right of the client area.
 
 #define wxLIST_HITTEST_TOLEFT           0x0400  // To the left of the client area.
 #define wxLIST_HITTEST_TORIGHT          0x0800  // To the right of the client area.
 
-#define wxLIST_HITTEST_ONITEM (wxLIST_HITTEST_ONITEMICON | wxLIST_HITTEST_ONITEMLABEL wxLIST_HITTEST_ONITEMSTATEICON)
+#define wxLIST_HITTEST_ONITEM (wxLIST_HITTEST_ONITEMICON | wxLIST_HITTEST_ONITEMLABEL wxLIST_HITTEST_ONITEMSTATEICON)
 
 // Flags for GetNextItem
 enum {
 
 // Flags for GetNextItem
 enum {
@@ -171,7 +171,7 @@ public:
     int             m_format;   // left, right, centre
     int             m_width;    // width of column
 
     int             m_format;   // left, right, centre
     int             m_width;    // width of column
 
-    wxListItem(void);
+    wxListItem();
 };
 
 // type of compare function for wxListCtrl sort operation
 };
 
 // type of compare function for wxListCtrl sort operation
@@ -185,7 +185,7 @@ class WXDLLEXPORT wxListCtrl: public wxControl
    * Public interface
    */
 
    * Public interface
    */
 
-  wxListCtrl(void);
+  wxListCtrl();
 
   inline wxListCtrl(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
             long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator,
 
   inline wxListCtrl(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
             long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator,
@@ -193,7 +193,7 @@ class WXDLLEXPORT wxListCtrl: public wxControl
   {
     Create(parent, id, pos, size, style, validator, name);
   }
   {
     Create(parent, id, pos, size, style, validator, name);
   }
-  ~wxListCtrl(void);
+  ~wxListCtrl();
 
   bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
             long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, const wxString& name = "wxListCtrl");
 
   bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
             long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, const wxString& name = "wxListCtrl");
@@ -222,10 +222,10 @@ class WXDLLEXPORT wxListCtrl: public wxControl
   // visible area of the list control (list or report view)
   // or the total number of items in the list control (icon
   // or small icon view)
   // visible area of the list control (list or report view)
   // or the total number of items in the list control (icon
   // or small icon view)
-  int GetCountPerPage(void) const;
+  int GetCountPerPage() const;
 
   // Gets the edit control for editing labels.
 
   // Gets the edit control for editing labels.
-  wxTextCtrl& GetEditControl(void) const;
+  wxTextCtrl* GetEditControl() const;
 
   // Gets information about the item
   bool GetItem(wxListItem& info) const ;
 
   // Gets information about the item
   bool GetItem(wxListItem& info) const ;
@@ -258,7 +258,7 @@ class WXDLLEXPORT wxListCtrl: public wxControl
   bool SetItemData(long item, long data) ;
 
   // Gets the item rectangle
   bool SetItemData(long item, long data) ;
 
   // Gets the item rectangle
-  bool GetItemRect(long item, wxRectangle& rect, int code = wxLIST_RECT_BOUNDS) const ;
+  bool GetItemRect(long item, wxRect& rect, int code = wxLIST_RECT_BOUNDS) const ;
 
   // Gets the item position
   bool GetItemPosition(long item, wxPoint& pos) const ;
 
   // Gets the item position
   bool GetItemPosition(long item, wxPoint& pos) const ;
@@ -267,10 +267,10 @@ class WXDLLEXPORT wxListCtrl: public wxControl
   bool SetItemPosition(long item, const wxPoint& pos) ;
 
   // Gets the number of items in the list control
   bool SetItemPosition(long item, const wxPoint& pos) ;
 
   // Gets the number of items in the list control
-  int GetItemCount(void) const;
+  int GetItemCount() const;
 
   // Gets the number of columns in the list control
 
   // Gets the number of columns in the list control
-  int GetColumnCount(void) const;
+  int GetColumnCount() const { return m_colCount; }
 
   // Retrieves the spacing between icons in pixels.
   // If small is TRUE, gets the spacing for the small icon
 
   // Retrieves the spacing between icons in pixels.
   // If small is TRUE, gets the spacing for the small icon
@@ -278,17 +278,17 @@ class WXDLLEXPORT wxListCtrl: public wxControl
   int GetItemSpacing(bool isSmall) const;
 
   // Gets the number of selected items in the list control
   int GetItemSpacing(bool isSmall) const;
 
   // Gets the number of selected items in the list control
-  int GetSelectedItemCount(void) const;
+  int GetSelectedItemCount() const;
 
   // Gets the text colour of the listview
 
   // Gets the text colour of the listview
-  wxColour GetTextColour(void) const;
+  wxColour GetTextColour() const;
 
   // Sets the text colour of the listview
   void SetTextColour(const wxColour& col);
 
   // Gets the index of the topmost visible item when in
   // list or report view
 
   // Sets the text colour of the listview
   void SetTextColour(const wxColour& col);
 
   // Gets the index of the topmost visible item when in
   // list or report view
-  long GetTopItem(void) const ;
+  long GetTopItem() const ;
 
   // Add or remove a single window style
   void SetSingleStyle(long style, bool add = TRUE) ;
 
   // Add or remove a single window style
   void SetSingleStyle(long style, bool add = TRUE) ;
@@ -330,19 +330,22 @@ class WXDLLEXPORT wxListCtrl: public wxControl
   bool DeleteItem(long item);
 
   // Deletes all items
   bool DeleteItem(long item);
 
   // Deletes all items
-  bool DeleteAllItems(void) ;
+  bool DeleteAllItems() ;
 
   // Deletes a column
   bool DeleteColumn(int col);
 
   // Deletes all columns
 
   // Deletes a column
   bool DeleteColumn(int col);
 
   // Deletes all columns
-  bool DeleteAllColumns(void);
+  bool DeleteAllColumns();
 
   // Clears items, and columns if there are any.
 
   // Clears items, and columns if there are any.
-  void ClearAll(void);
+  void ClearAll();
 
 
-  // Edits a label
-  wxTextCtrl& Edit(long item) ;
+  // Edit the label
+  wxTextCtrl* EditLabel(long item, wxClassInfo* textControlClass = CLASSINFO(wxTextCtrl));
+
+  // End label editing, optionally cancelling the edit
+  bool EndEditLabel(bool cancel);
 
   // Ensures this item is visible
   bool EnsureVisible(long item) ;
 
   // Ensures this item is visible
   bool EnsureVisible(long item) ;
@@ -415,18 +418,18 @@ class WXDLLEXPORT wxListCtrl: public wxControl
   void Command(wxCommandEvent& event) { ProcessCommand(event); };
 
   // IMPLEMENTATION
   void Command(wxCommandEvent& event) { ProcessCommand(event); };
 
   // IMPLEMENTATION
-  bool MSWCommand(WXUINT param, WXWORD id);
-  bool MSWNotify(WXWPARAM wParam, WXLPARAM lParam);
+  virtual bool MSWCommand(WXUINT param, WXWORD id);
+  virtual bool MSWNotify(WXWPARAM wParam, WXLPARAM lParam, WXLPARAM *result);
 
   // Recreate window - seems to be necessary when changing a style.
 
   // Recreate window - seems to be necessary when changing a style.
-  void RecreateWindow(void);
+  void RecreateWindow();
 
   // Add to pool: necessary because Windows needs to have a string
   // still exist across 3 callbacks.
   char *AddPool(const wxString& str);
 
 protected:
 
   // Add to pool: necessary because Windows needs to have a string
   // still exist across 3 callbacks.
   char *AddPool(const wxString& str);
 
 protected:
-  wxTextCtrl        m_textCtrl;        // The control used for editing a label
+  wxTextCtrl*       m_textCtrl;        // The control used for editing a label
   wxImageList *     m_imageListNormal; // The image list for normal icons
   wxImageList *     m_imageListSmall;  // The image list for small icons
   wxImageList *     m_imageListState;  // The image list state icons (not implemented yet)
   wxImageList *     m_imageListNormal; // The image list for normal icons
   wxImageList *     m_imageListSmall;  // The image list for small icons
   wxImageList *     m_imageListState;  // The image list state icons (not implemented yet)
@@ -439,11 +442,9 @@ protected:
 
 };
 
 
 };
 
-class WXDLLEXPORT wxListEvent: public wxCommandEvent
+class WXDLLEXPORT wxListEvent : public wxNotifyEvent
 {
 {
-  DECLARE_DYNAMIC_CLASS(wxListEvent)
-
- public:
+public:
   wxListEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
 
   int           m_code;
   wxListEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
 
   int           m_code;
@@ -454,6 +455,8 @@ class WXDLLEXPORT wxListEvent: public wxCommandEvent
   wxPoint       m_pointDrag;
 
   wxListItem    m_item;
   wxPoint       m_pointDrag;
 
   wxListItem    m_item;
+
+  DECLARE_DYNAMIC_CLASS(wxListEvent)
 };
 
 typedef void (wxEvtHandler::*wxListEventFunction)(wxListEvent&);
 };
 
 typedef void (wxEvtHandler::*wxListEventFunction)(wxListEvent&);
@@ -471,6 +474,7 @@ typedef void (wxEvtHandler::*wxListEventFunction)(wxListEvent&);
 #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_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_ITEM_ACTIVATED(id, fn) { wxEVT_COMMAND_LIST_ITEM_ACTIVATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL },
 
 #endif
 
 #endif
-    // __LISTCTRLH__
+    // _WX_LISTCTRL_H_