X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7fa03f04345b620d1a14529b05961116b20a1297..08469b1f18dbf44abd5400ddf83a7c0e1bd65af1:/include/wx/listbase.h diff --git a/include/wx/listbase.h b/include/wx/listbase.h index ef640effcb..84bb31b99f 100644 --- a/include/wx/listbase.h +++ b/include/wx/listbase.h @@ -12,9 +12,7 @@ #ifndef _WX_LISTBASE_H_BASE_ #define _WX_LISTBASE_H_BASE_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -// #pragma interface "listctrlbase.h" -#endif +#include "wx/defs.h" #if wxUSE_LISTCTRL @@ -106,6 +104,9 @@ typedef int (wxCALLBACK *wxListCtrlCompare)(long item1, long item2, long sortDat #define wxLIST_HITTEST_ONITEM (wxLIST_HITTEST_ONITEMICON | wxLIST_HITTEST_ONITEMLABEL | wxLIST_HITTEST_ONITEMSTATEICON) +// GetSubItemRect constants +#define wxLIST_GETSUBITEMRECT_WHOLEITEM -1l + // Flags for GetNextItem (MSW only except wxLIST_NEXT_ALL) enum { @@ -162,6 +163,9 @@ enum // wxListItemAttr: a structure containing the visual attributes of an item // ---------------------------------------------------------------------------- +// TODO: this should be renamed to wxItemAttr or something general like this +// and used as base class for wxTextAttr which duplicates this class +// entirely currently class WXDLLEXPORT wxListItemAttr { public: @@ -170,7 +174,12 @@ public: wxListItemAttr(const wxColour& colText, const wxColour& colBack, const wxFont& font) - : m_colText(colText), m_colBack(colBack), m_font(font) { } + : m_colText(colText), m_colBack(colBack), m_font(font) + { + } + + // default copy ctor, assignment operator and dtor are ok + // setters void SetTextColour(const wxColour& colText) { m_colText = colText; } @@ -186,6 +195,19 @@ public: const wxColour& GetBackgroundColour() const { return m_colBack; } const wxFont& GetFont() const { return m_font; } + + // this is almost like assignment operator except it doesn't overwrite the + // fields unset in the source attribute + void AssignFrom(const wxListItemAttr& source) + { + if ( source.HasTextColour() ) + SetTextColour(source.GetTextColour()); + if ( source.HasBackgroundColour() ) + SetBackgroundColour(source.GetBackgroundColour()); + if ( source.HasFont() ) + SetFont(source.GetFont()); + } + private: wxColour m_colText, m_colBack; @@ -215,7 +237,7 @@ public: m_attr(NULL) { // copy list item attributes - if( item.HasAttributes() ) + if ( item.HasAttributes() ) m_attr = new wxListItemAttr(*item.GetAttributes()); } virtual ~wxListItem() { delete m_attr; } @@ -371,7 +393,7 @@ public: const wxString& GetLabel() const { return m_item.m_text; } const wxString& GetText() const { return m_item.m_text; } int GetImage() const { return m_item.m_image; } - long GetData() const { return m_item.m_data; } + long GetData() const { return wx_static_cast(long, m_item.m_data); } long GetMask() const { return m_item.m_mask; } const wxListItem& GetItem() const { return m_item; } @@ -383,15 +405,6 @@ public: bool IsEditCancelled() const { return m_editCancelled; } void SetEditCanceled(bool editCancelled) { m_editCancelled = editCancelled; } -#if WXWIN_COMPATIBILITY_2_2 - // these methods don't do anything at all - long GetOldIndex() const { return 0; } - long GetOldItem() const { return 0; } - - // this one is superseded by GetKeyCode() - int GetCode() const { return GetKeyCode(); } -#endif // WXWIN_COMPATIBILITY_2_2 - virtual wxEvent *Clone() const { return new wxListEvent(*this); } //protected: -- not for backwards compatibility @@ -444,7 +457,7 @@ END_DECLARE_EVENT_TYPES() typedef void (wxEvtHandler::*wxListEventFunction)(wxListEvent&); #define wxListEventHandler(func) \ - (wxObjectEventFunction)wxStaticCastEvent(wxListEventFunction, &func) + (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxListEventFunction, &func) #define wx__DECLARE_LISTEVT(evt, id, fn) \ wx__DECLARE_EVT1(wxEVT_COMMAND_LIST_ ## evt, id, wxListEventHandler(fn))