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
This commit is contained in:
Kevin Ollivier 2006-09-18 04:41:09 +00:00
parent f418332658
commit 8a3e173a02
7 changed files with 55 additions and 137 deletions

View File

@ -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__

View File

@ -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;

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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.

View File

@ -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 )