From 8a3e173a02857f1f2e166e068331d1a42b85f391 Mon Sep 17 00:00:00 2001 From: Kevin Ollivier Date: Mon, 18 Sep 2006 04:41:09 +0000 Subject: [PATCH] Remove duplication in wxImageList defines and always default to using the native wxImageList when available, even for wxGenericListCtrl. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/generic/imaglist.h | 34 ++----------------------------- include/wx/generic/listctrl.h | 35 +++++++------------------------- include/wx/imaglist.h | 31 ++++++++++++++++++++++++++-- include/wx/mac/carbon/imaglist.h | 31 ---------------------------- include/wx/msw/imaglist.h | 27 ------------------------ src/generic/imaglist.cpp | 4 ++-- src/generic/listctrl.cpp | 30 +++++++++++++-------------- 7 files changed, 55 insertions(+), 137 deletions(-) diff --git a/include/wx/generic/imaglist.h b/include/wx/generic/imaglist.h index 32870b1cad..157a6ff05c 100644 --- a/include/wx/generic/imaglist.h +++ b/include/wx/generic/imaglist.h @@ -19,36 +19,6 @@ class WXDLLEXPORT wxDC; class WXDLLEXPORT wxBitmap; class WXDLLEXPORT wxColour; -/* - * wxImageList is used for wxListCtrl, wxTreeCtrl. These controls refer to - * images for their items by an index into an image list. - * A wxImageList is capable of creating images with optional masks from - * a variety of sources - a single bitmap plus a colour to indicate the mask, - * two bitmaps, or an icon. - * - * Image lists can also create and draw images used for drag and drop functionality. - * This is not yet implemented in wxImageList. We need to discuss a generic API - * for doing drag and drop and see whether it ties in with the Win95 view of it. - * See below for candidate functions and an explanation of how they might be - * used. - */ - -#if !defined(wxIMAGELIST_DRAW_NORMAL) - -// Flags for Draw -#define wxIMAGELIST_DRAW_NORMAL 0x0001 -#define wxIMAGELIST_DRAW_TRANSPARENT 0x0002 -#define wxIMAGELIST_DRAW_SELECTED 0x0004 -#define wxIMAGELIST_DRAW_FOCUSED 0x0008 - -// Flag values for Set/GetImageList -enum { - wxIMAGE_LIST_NORMAL, // Normal icons - wxIMAGE_LIST_SMALL, // Small icons - wxIMAGE_LIST_STATE // State icons: unimplemented (see WIN32 documentation) -}; - -#endif class WXDLLEXPORT wxGenericImageList: public wxObject { @@ -87,7 +57,7 @@ private: DECLARE_DYNAMIC_CLASS(wxGenericImageList) }; -#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__) +#if !defined(__WXMSW__) && !defined(__WXMAC__) /* * wxImageList has to be a real class or we have problems with * the run-time information. @@ -105,7 +75,7 @@ public: { } }; -#endif // !__WXMSW__ || __WXUNIVERSAL__ +#endif // !HAVE_NATIVE_IMAGELIST #endif // __IMAGELISTH_G__ diff --git a/include/wx/generic/listctrl.h b/include/wx/generic/listctrl.h index 3231d60f07..f48222289a 100644 --- a/include/wx/generic/listctrl.h +++ b/include/wx/generic/listctrl.h @@ -13,18 +13,14 @@ #include "wx/defs.h" #include "wx/object.h" -#ifdef __WXMAC__ #include "wx/imaglist.h" -#else -#include "wx/generic/imaglist.h" -#endif #include "wx/control.h" #include "wx/timer.h" #include "wx/dcclient.h" #include "wx/scrolwin.h" #include "wx/settings.h" -#include "wx/listbase.h" +#include "wx/listctrl.h" #include "wx/textctrl.h" #if wxUSE_DRAG_AND_DROP @@ -37,23 +33,6 @@ class WXDLLEXPORT wxDropTarget; extern WXDLLEXPORT_DATA(const wxChar) wxGenericListCtrlNameStr[]; - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxListItem; -class WXDLLEXPORT wxListEvent; - -#if (!defined(__WXMSW__) || defined(__WXUNIVERSAL__)) -#ifndef __WXMAC__ -class WXDLLEXPORT wxListCtrl; -#endif -#define wxImageListType wxImageList -#else -#define wxImageListType wxGenericImageList -#endif - //----------------------------------------------------------------------------- // internal classes //----------------------------------------------------------------------------- @@ -136,9 +115,9 @@ public: void SetWindowStyleFlag( long style ); void RecreateWindow() {} long GetNextItem( long item, int geometry = wxLIST_NEXT_ALL, int state = wxLIST_STATE_DONTCARE ) const; - wxImageListType *GetImageList( int which ) const; - void SetImageList( wxImageListType *imageList, int which ); - void AssignImageList( wxImageListType *imageList, int which ); + wxImageList *GetImageList( int which ) const; + void SetImageList( wxImageList *imageList, int which ); + void AssignImageList( wxImageList *imageList, int which ); bool Arrange( int flag = wxLIST_ALIGN_DEFAULT ); // always wxLIST_ALIGN_LEFT in wxGLC void ClearAll(); @@ -230,9 +209,9 @@ public: // implementation // -------------- - wxImageListType *m_imageListNormal; - wxImageListType *m_imageListSmall; - wxImageListType *m_imageListState; // what's that ? + wxImageList *m_imageListNormal; + wxImageList *m_imageListSmall; + wxImageList *m_imageListState; // what's that ? bool m_ownsImageListNormal, m_ownsImageListSmall, m_ownsImageListState; diff --git a/include/wx/imaglist.h b/include/wx/imaglist.h index 1b2c2c4cc2..2e928484fa 100644 --- a/include/wx/imaglist.h +++ b/include/wx/imaglist.h @@ -12,12 +12,39 @@ #ifndef _WX_IMAGLIST_H_BASE_ #define _WX_IMAGLIST_H_BASE_ +/* + * wxImageList is used for wxListCtrl, wxTreeCtrl. These controls refer to + * images for their items by an index into an image list. + * A wxImageList is capable of creating images with optional masks from + * a variety of sources - a single bitmap plus a colour to indicate the mask, + * two bitmaps, or an icon. + * + * Image lists can also create and draw images used for drag and drop functionality. + * This is not yet implemented in wxImageList. We need to discuss a generic API + * for doing drag and drop and see whether it ties in with the Win95 view of it. + * See below for candidate functions and an explanation of how they might be + * used. + */ + +// Flag values for Set/GetImageList +enum { + wxIMAGE_LIST_NORMAL, // Normal icons + wxIMAGE_LIST_SMALL, // Small icons + wxIMAGE_LIST_STATE // State icons: unimplemented (see WIN32 documentation) +}; + +// Flags for Draw +#define wxIMAGELIST_DRAW_NORMAL 0x0001 +#define wxIMAGELIST_DRAW_TRANSPARENT 0x0002 +#define wxIMAGELIST_DRAW_SELECTED 0x0004 +#define wxIMAGELIST_DRAW_FOCUSED 0x0008 + +#include "wx/generic/imaglist.h" + #if defined(__WIN32__) && !defined(__WXUNIVERSAL__) #include "wx/msw/imaglist.h" #elif defined(__WXMAC_CARBON__) #include "wx/mac/imaglist.h" -#else - #include "wx/generic/imaglist.h" #endif #endif diff --git a/include/wx/mac/carbon/imaglist.h b/include/wx/mac/carbon/imaglist.h index acc2c42ec1..0d4caa8468 100644 --- a/include/wx/mac/carbon/imaglist.h +++ b/include/wx/mac/carbon/imaglist.h @@ -19,37 +19,6 @@ class WXDLLEXPORT wxDC; class WXDLLEXPORT wxBitmap; class WXDLLEXPORT wxColour; -/* - * wxImageList is used for wxListCtrl, wxTreeCtrl. These controls refer to - * images for their items by an index into an image list. - * A wxImageList is capable of creating images with optional masks from - * a variety of sources - a single bitmap plus a colour to indicate the mask, - * two bitmaps, or an icon. - * - * Image lists can also create and draw images used for drag and drop functionality. - * This is not yet implemented in wxImageList. We need to discuss a generic API - * for doing drag and drop and see whether it ties in with the Win95 view of it. - * See below for candidate functions and an explanation of how they might be - * used. - */ - -#if !defined(wxIMAGELIST_DRAW_NORMAL) - -// Flags for Draw -#define wxIMAGELIST_DRAW_NORMAL 0x0001 -#define wxIMAGELIST_DRAW_TRANSPARENT 0x0002 -#define wxIMAGELIST_DRAW_SELECTED 0x0004 -#define wxIMAGELIST_DRAW_FOCUSED 0x0008 - -// Flag values for Set/GetImageList -enum { - wxIMAGE_LIST_NORMAL, // Normal icons - wxIMAGE_LIST_SMALL, // Small icons - wxIMAGE_LIST_STATE // State icons: unimplemented (see WIN32 documentation) -}; - -#endif - class WXDLLEXPORT wxImageList: public wxObject { public: diff --git a/include/wx/msw/imaglist.h b/include/wx/msw/imaglist.h index b2cedac507..2da13484ac 100644 --- a/include/wx/msw/imaglist.h +++ b/include/wx/msw/imaglist.h @@ -14,33 +14,6 @@ #include "wx/bitmap.h" -/* - * wxImageList is used for wxListCtrl, wxTreeCtrl. These controls refer to - * images for their items by an index into an image list. - * A wxImageList is capable of creating images with optional masks from - * a variety of sources - a single bitmap plus a colour to indicate the mask, - * two bitmaps, or an icon. - * - * Image lists can also create and draw images used for drag and drop functionality. - * This is not yet implemented in wxImageList. We need to discuss a generic API - * for doing drag and drop and see whether it ties in with the Win95 view of it. - * See below for candidate functions and an explanation of how they might be - * used. - */ - -// Flags for Draw -#define wxIMAGELIST_DRAW_NORMAL 0x0001 -#define wxIMAGELIST_DRAW_TRANSPARENT 0x0002 -#define wxIMAGELIST_DRAW_SELECTED 0x0004 -#define wxIMAGELIST_DRAW_FOCUSED 0x0008 - -// Flag values for Set/GetImageList -enum { - wxIMAGE_LIST_NORMAL, // Normal icons - wxIMAGE_LIST_SMALL, // Small icons - wxIMAGE_LIST_STATE // State icons: unimplemented (see WIN32 documentation) -}; - // Eventually we'll make this a reference-counted wxGDIObject. For // now, the app must take care of ownership issues. That is, the // image lists must be explicitly deleted after the control(s) that uses them diff --git a/src/generic/imaglist.cpp b/src/generic/imaglist.cpp index 4fbf79d9df..d31386bbb5 100644 --- a/src/generic/imaglist.cpp +++ b/src/generic/imaglist.cpp @@ -18,7 +18,7 @@ #ifndef __WXPALMOS__ -#include "wx/generic/imaglist.h" +#include "wx/imaglist.h" #ifndef WX_PRECOMP #include "wx/dc.h" @@ -32,7 +32,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxGenericImageList, wxObject) -#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__) +#if !HAVE_NATIVE_IMAGELIST /* * wxImageList has to be a real class or we have problems with * the run-time information. diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index 9467a18a5b..b6ca0aa425 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -618,7 +618,7 @@ public: void GetImageSize( int index, int &width, int &height ) const; int GetTextLength( const wxString &s ) const; - void SetImageList( wxImageListType *imageList, int which ); + void SetImageList( wxImageList *imageList, int which ); void SetItemSpacing( int spacing, bool isSmall = false ); int GetItemSpacing( bool isSmall = false ); @@ -750,8 +750,8 @@ public: bool m_dirty; wxColour *m_highlightColour; - wxImageListType *m_small_image_list; - wxImageListType *m_normal_image_list; + wxImageList *m_small_image_list; + wxImageList *m_normal_image_list; int m_small_spacing; int m_normal_spacing; bool m_hasFocus; @@ -1745,7 +1745,7 @@ void wxListHeaderWindow::OnPaint( wxPaintEvent &WXUNUSED(event) ) static const int MARGIN_BETWEEN_TEXT_AND_ICON = 2; int ix = 0, iy = 0; // init them just to suppress the compiler warnings const int image = item.m_image; - wxImageListType *imageList; + wxImageList *imageList; if ( image != -1 ) { imageList = m_owner->m_small_image_list; @@ -2147,8 +2147,8 @@ void wxListMainWindow::Init() m_headerWidth = m_lineHeight = 0; - m_small_image_list = (wxImageListType *) NULL; - m_normal_image_list = (wxImageListType *) NULL; + m_small_image_list = (wxImageList *) NULL; + m_normal_image_list = (wxImageList *) NULL; m_small_spacing = 30; m_normal_spacing = 40; @@ -3453,7 +3453,7 @@ int wxListMainWindow::GetTextLength( const wxString &s ) const return lw + AUTOSIZE_COL_MARGIN; } -void wxListMainWindow::SetImageList( wxImageListType *imageList, int which ) +void wxListMainWindow::SetImageList( wxImageList *imageList, int which ) { m_dirty = true; @@ -4688,9 +4688,9 @@ END_EVENT_TABLE() wxGenericListCtrl::wxGenericListCtrl() { - m_imageListNormal = (wxImageListType *) NULL; - m_imageListSmall = (wxImageListType *) NULL; - m_imageListState = (wxImageListType *) NULL; + m_imageListNormal = (wxImageList *) NULL; + m_imageListSmall = (wxImageList *) NULL; + m_imageListState = (wxImageList *) NULL; m_ownsImageListNormal = m_ownsImageListSmall = @@ -4760,7 +4760,7 @@ bool wxGenericListCtrl::Create(wxWindow *parent, { m_imageListNormal = m_imageListSmall = - m_imageListState = (wxImageListType *) NULL; + m_imageListState = (wxImageList *) NULL; m_ownsImageListNormal = m_ownsImageListSmall = m_ownsImageListState = false; @@ -5126,7 +5126,7 @@ long wxGenericListCtrl::GetNextItem( long item, int geom, int state ) const return m_mainWin->GetNextItem( item, geom, state ); } -wxImageListType *wxGenericListCtrl::GetImageList(int which) const +wxImageList *wxGenericListCtrl::GetImageList(int which) const { if (which == wxIMAGE_LIST_NORMAL) return m_imageListNormal; @@ -5135,10 +5135,10 @@ wxImageListType *wxGenericListCtrl::GetImageList(int which) const else if (which == wxIMAGE_LIST_STATE) return m_imageListState; - return (wxImageListType *) NULL; + return (wxImageList *) NULL; } -void wxGenericListCtrl::SetImageList( wxImageListType *imageList, int which ) +void wxGenericListCtrl::SetImageList( wxImageList *imageList, int which ) { if ( which == wxIMAGE_LIST_NORMAL ) { @@ -5165,7 +5165,7 @@ void wxGenericListCtrl::SetImageList( wxImageListType *imageList, int which ) m_mainWin->SetImageList( imageList, which ); } -void wxGenericListCtrl::AssignImageList(wxImageListType *imageList, int which) +void wxGenericListCtrl::AssignImageList(wxImageList *imageList, int which) { SetImageList(imageList, which); if ( which == wxIMAGE_LIST_NORMAL ) -- 2.45.2