]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/listctrl.h
Added wxCURSOR_ARROWWAIT which is the default arrow+hourglass cursor
[wxWidgets.git] / include / wx / msw / listctrl.h
index 3fb236e0c27dc651269f5a3698517fd926e02845..d9189c5eab69e5f66bc3349a5c38ba2b6b9f1e45 100644 (file)
 
 #include "wx/control.h"
 #include "wx/event.h"
 
 #include "wx/control.h"
 #include "wx/event.h"
-#include "wx/imaglist.h"
+#include "wx/hash.h"
+
+class WXDLLEXPORT wxTextCtrl;
+class WXDLLEXPORT wxImageList;
 
 /*
     The wxListCtrl can show lists of items in four different modes:
 
 /*
     The wxListCtrl can show lists of items in four different modes:
@@ -110,8 +113,8 @@ public:
     // Attributes
     ////////////////////////////////////////////////////////////////////////////
 
     // Attributes
     ////////////////////////////////////////////////////////////////////////////
 
-    // Sets the background colour (GetBackgroundColour already implicit in
-    // wxWindow class)
+    // Set the control colours
+    bool SetForegroundColour(const wxColour& col);
     bool SetBackgroundColour(const wxColour& col);
 
     // Gets information about this column
     bool SetBackgroundColour(const wxColour& col);
 
     // Gets information about this column
@@ -227,6 +230,7 @@ public:
     // So you have to set a NULL small-icon image list to be sure that
     // the wxLC_LIST mode works without icons. Of course, you may want icons...
     void SetImageList(wxImageList *imageList, int which) ;
     // So you have to set a NULL small-icon image list to be sure that
     // the wxLC_LIST mode works without icons. Of course, you may want icons...
     void SetImageList(wxImageList *imageList, int which) ;
+    void AssignImageList(wxImageList *imageList, int which) ;
 
     // Operations
     ////////////////////////////////////////////////////////////////////////////
 
     // Operations
     ////////////////////////////////////////////////////////////////////////////
@@ -326,27 +330,42 @@ public:
     // still exist across 3 callbacks.
     wxChar *AddPool(const wxString& str);
 
     // still exist across 3 callbacks.
     wxChar *AddPool(const wxString& str);
 
+    // Event handlers
+    ////////////////////////////////////////////////////////////////////////////
+    // Necessary for drawing hrules and vrules, if specified
+    void OnPaint(wxPaintEvent& event);
+
 protected:
     // common part of all ctors
     void Init();
 
 protected:
     // common part of all ctors
     void Init();
 
+    // free memory taken by all attributes and recreate the hash table
+    void FreeAllAttrs(bool dontRecreate = FALSE);
+
     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)
     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)
+    bool              m_ownsImageListNormal,
+                      m_ownsImageListSmall,
+                      m_ownsImageListState;
 
     long              m_baseStyle;  // Basic Windows style flags, for recreation purposes
     wxStringList      m_stringPool; // Pool of 3 strings to satisfy Windows callback requirements
     int               m_colCount;   // Windows doesn't have GetColumnCount so must
                                     // keep track of inserted/deleted columns
 
 
     long              m_baseStyle;  // Basic Windows style flags, for recreation purposes
     wxStringList      m_stringPool; // Pool of 3 strings to satisfy Windows callback requirements
     int               m_colCount;   // Windows doesn't have GetColumnCount so must
                                     // keep track of inserted/deleted columns
 
-    // TRUE fi we have any items with custom attributes
+    // the hash table we use for storing pointers to the items attributes
+    wxHashTable m_attrs;
+
+    // TRUE if we have any items with custom attributes
     bool m_hasAnyAttr;
 
 private:
     bool DoCreateControl(int x, int y, int w, int h);
 
     DECLARE_DYNAMIC_CLASS(wxListCtrl)
     bool m_hasAnyAttr;
 
 private:
     bool DoCreateControl(int x, int y, int w, int h);
 
     DECLARE_DYNAMIC_CLASS(wxListCtrl)
+    DECLARE_EVENT_TABLE()
 };
 
 #endif
 };
 
 #endif