X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1944ad76180a4ef4e65764d456928539561d34b3..4bf45c9ecafa14b167ef0c911a83cd5cc8fba4d2:/include/wx/msw/listctrl.h diff --git a/include/wx/msw/listctrl.h b/include/wx/msw/listctrl.h index fc495d9950..e0d25d8730 100644 --- a/include/wx/msw/listctrl.h +++ b/include/wx/msw/listctrl.h @@ -12,7 +12,7 @@ #ifndef _WX_LISTCTRL_H_ #define _WX_LISTCTRL_H_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "listctrl.h" #endif @@ -63,8 +63,8 @@ class WXDLLEXPORT wxImageList; which item. Each image in an image list can contain a mask, and can be made out of either a bitmap, two bitmaps or an icon. See ImagList.h for more details. - Notifications are passed via the wxWindows 2.0 event system, or using virtual - functions in wxWindows 1.66. + Notifications are passed via the wxWidgets 2.0 event system, or using virtual + functions in wxWidgets 1.66. See the sample wxListCtrl app for API usage. @@ -138,6 +138,9 @@ public: // or small icon view) int GetCountPerPage() const; + // return the total area occupied by all the items (icon/small icon only) + wxRect GetViewRect() const; + // Gets the edit control for editing labels. wxTextCtrl* GetEditControl() const; @@ -186,10 +189,8 @@ public: // Gets the number of columns in the list control int GetColumnCount() const { return m_colCount; } - // Retrieves the spacing between icons in pixels. - // If small is TRUE, gets the spacing for the small icon - // view, otherwise the large icon view. - int GetItemSpacing(bool isSmall) const; + // get the horizontal and vertical components of the item spacing + wxSize GetItemSpacing() const; // Foreground colour of an item. void SetItemTextColour( long item, const wxColour& col); @@ -237,8 +238,11 @@ public: void SetImageList(wxImageList *imageList, int which) ; void AssignImageList(wxImageList *imageList, int which) ; - // returns true if it is a virtual list control - bool IsVirtual() const { return (GetWindowStyle() & wxLC_VIRTUAL) != 0; } + // are we in report mode? + bool InReportView() const { return HasFlag(wxLC_REPORT); } + + // are we in virtual report mode? + bool IsVirtual() const { return HasFlag(wxLC_VIRTUAL); } // refresh items selectively (only useful for virtual list controls) void RefreshItem(long item); @@ -341,17 +345,26 @@ public: // bring the control in sync with current m_windowStyle value void UpdateStyle(); - // Implementation: converts wxWindows style to MSW style. - // Can be a single style flag or a bit list. - // oldStyle is 'normalised' so that it doesn't contain - // conflicting styles. - long ConvertToMSWStyle(long& oldStyle, long style) const; - // Event handlers //////////////////////////////////////////////////////////////////////////// // Necessary for drawing hrules and vrules, if specified void OnPaint(wxPaintEvent& event); + + virtual bool ShouldInheritColours() const { return false; } + + virtual wxVisualAttributes GetDefaultAttributes() const + { + return GetClassDefaultAttributes(GetWindowVariant()); + } + + static wxVisualAttributes + GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); + + + // obsolete stuff, for compatibility only -- don't use + wxDEPRECATED( int GetItemSpacing(bool isSmall) const); + protected: // common part of all ctors void Init(); @@ -359,6 +372,10 @@ protected: // free memory taken by all internal data void FreeAllInternalData(); + // convert our styles to Windows + virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; + + 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 @@ -367,9 +384,11 @@ protected: m_ownsImageListSmall, m_ownsImageListState; - long m_baseStyle; // Basic Windows style flags, for recreation purposes int m_colCount; // Windows doesn't have GetColumnCount so must // keep track of inserted/deleted columns + long m_count; // Keep track of item count to save calls to + // ListView_GetItemCount + bool m_ignoreChangeMessages; // TRUE if we have any internal data (user data & attributes) bool m_AnyInternalData; @@ -390,13 +409,12 @@ protected: virtual wxListItemAttr *OnGetItemAttr(long item) const; private: - bool DoCreateControl(int x, int y, int w, int h); - // process NM_CUSTOMDRAW notification message WXLPARAM OnCustomDraw(WXLPARAM lParam); DECLARE_DYNAMIC_CLASS(wxListCtrl) DECLARE_EVENT_TABLE() + DECLARE_NO_COPY_CLASS(wxListCtrl) }; #endif // wxUSE_LISTCTRL