Merge branch 'explicit-image-from-xpm'
Make wxImage ctor from XPM data explicit to avoid surprising behaviour. See https://github.com/wxWidgets/wxWidgets/pull/2332 Closes #19149.
This commit is contained in:
@@ -183,6 +183,9 @@ Changes in behaviour which may result in build errors
|
|||||||
|
|
||||||
- wxGridEvent methods GetRow() and GetCol() are no longer virtual.
|
- wxGridEvent methods GetRow() and GetCol() are no longer virtual.
|
||||||
|
|
||||||
|
- wxImage constructor from XPM data is now explicit, write "wxImage(xpmData)"
|
||||||
|
instead of just "xpmData" if you really need to use it.
|
||||||
|
|
||||||
|
|
||||||
3.1.6: (released 2021-06-??)
|
3.1.6: (released 2021-06-??)
|
||||||
----------------------------
|
----------------------------
|
||||||
|
@@ -11,6 +11,7 @@
|
|||||||
#define _WX_DFB_CURSOR_H_
|
#define _WX_DFB_CURSOR_H_
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxBitmap;
|
class WXDLLIMPEXP_FWD_CORE wxBitmap;
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxImage;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// wxCursor
|
// wxCursor
|
||||||
@@ -24,6 +25,10 @@ public:
|
|||||||
#if WXWIN_COMPATIBILITY_2_8
|
#if WXWIN_COMPATIBILITY_2_8
|
||||||
wxCursor(int id) { InitFromStock((wxStockCursor)id); }
|
wxCursor(int id) { InitFromStock((wxStockCursor)id); }
|
||||||
#endif
|
#endif
|
||||||
|
#if wxUSE_IMAGE
|
||||||
|
wxCursor(const wxImage& image);
|
||||||
|
wxCursor(const char* const* xpmData);
|
||||||
|
#endif // wxUSE_IMAGE
|
||||||
wxCursor(const wxString& name,
|
wxCursor(const wxString& name,
|
||||||
wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
|
wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
|
||||||
int hotSpotX = 0, int hotSpotY = 0);
|
int hotSpotX = 0, int hotSpotY = 0);
|
||||||
|
@@ -25,10 +25,11 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
#if wxUSE_IMAGE
|
#if wxUSE_IMAGE
|
||||||
wxCursor( const wxImage & image );
|
wxCursor( const wxImage & image );
|
||||||
|
wxCursor(const char* const* xpmData);
|
||||||
|
#endif // wxUSE_IMAGE
|
||||||
wxCursor(const wxString& name,
|
wxCursor(const wxString& name,
|
||||||
wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
|
wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
|
||||||
int hotSpotX = 0, int hotSpotY = 0);
|
int hotSpotX = 0, int hotSpotY = 0);
|
||||||
#endif
|
|
||||||
wxCursor( const char bits[], int width, int height,
|
wxCursor( const char bits[], int width, int height,
|
||||||
int hotSpotX = -1, int hotSpotY = -1,
|
int hotSpotX = -1, int hotSpotY = -1,
|
||||||
const char maskBits[] = NULL,
|
const char maskBits[] = NULL,
|
||||||
|
@@ -310,7 +310,7 @@ public:
|
|||||||
{ LoadFile( name, type, index ); }
|
{ LoadFile( name, type, index ); }
|
||||||
wxImage( const wxString& name, const wxString& mimetype, int index = -1 )
|
wxImage( const wxString& name, const wxString& mimetype, int index = -1 )
|
||||||
{ LoadFile( name, mimetype, index ); }
|
{ LoadFile( name, mimetype, index ); }
|
||||||
wxImage( const char* const* xpmData )
|
explicit wxImage( const char* const* xpmData )
|
||||||
{ Create(xpmData); }
|
{ Create(xpmData); }
|
||||||
|
|
||||||
#if wxUSE_STREAMS
|
#if wxUSE_STREAMS
|
||||||
|
@@ -32,6 +32,7 @@ public:
|
|||||||
|
|
||||||
#if wxUSE_IMAGE
|
#if wxUSE_IMAGE
|
||||||
wxCursor(const wxImage& image);
|
wxCursor(const wxImage& image);
|
||||||
|
wxCursor(const char* const* xpmData);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wxCursor(wxStockCursor id) { InitFromStock(id); }
|
wxCursor(wxStockCursor id) { InitFromStock(id); }
|
||||||
@@ -52,6 +53,10 @@ protected:
|
|||||||
private:
|
private:
|
||||||
void InitFromStock(wxStockCursor);
|
void InitFromStock(wxStockCursor);
|
||||||
|
|
||||||
|
#if wxUSE_IMAGE
|
||||||
|
void InitFromImage(const wxImage& image);
|
||||||
|
#endif
|
||||||
|
|
||||||
void Create(const char bits[], int width, int height,
|
void Create(const char bits[], int width, int height,
|
||||||
int hotSpotX = -1, int hotSpotY = -1,
|
int hotSpotX = -1, int hotSpotY = -1,
|
||||||
const char maskBits[] = NULL);
|
const char maskBits[] = NULL);
|
||||||
|
@@ -19,7 +19,10 @@ class WXDLLIMPEXP_CORE wxCursor : public wxCursorBase
|
|||||||
public:
|
public:
|
||||||
// constructors
|
// constructors
|
||||||
wxCursor();
|
wxCursor();
|
||||||
|
#if wxUSE_IMAGE
|
||||||
wxCursor(const wxImage& image);
|
wxCursor(const wxImage& image);
|
||||||
|
wxCursor(const char* const* xpmData);
|
||||||
|
#endif // wxUSE_IMAGE
|
||||||
wxCursor(const wxString& name,
|
wxCursor(const wxString& name,
|
||||||
wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
|
wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
|
||||||
int hotSpotX = 0, int hotSpotY = 0);
|
int hotSpotX = 0, int hotSpotY = 0);
|
||||||
@@ -42,6 +45,10 @@ protected:
|
|||||||
virtual wxGDIImageRefData *CreateData() const wxOVERRIDE;
|
virtual wxGDIImageRefData *CreateData() const wxOVERRIDE;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
#if wxUSE_IMAGE
|
||||||
|
void InitFromImage(const wxImage& image);
|
||||||
|
#endif // wxUSE_IMAGE
|
||||||
|
|
||||||
wxDECLARE_DYNAMIC_CLASS(wxCursor);
|
wxDECLARE_DYNAMIC_CLASS(wxCursor);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -19,7 +19,10 @@ class WXDLLIMPEXP_CORE wxCursor : public wxCursorBase
|
|||||||
public:
|
public:
|
||||||
wxCursor();
|
wxCursor();
|
||||||
|
|
||||||
|
#if wxUSE_IMAGE
|
||||||
wxCursor(const wxImage & image) ;
|
wxCursor(const wxImage & image) ;
|
||||||
|
wxCursor(const char* const* xpmData);
|
||||||
|
#endif // wxUSE_IMAGE
|
||||||
wxCursor(const wxString& name,
|
wxCursor(const wxString& name,
|
||||||
wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
|
wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
|
||||||
int hotSpotX = 0, int hotSpotY = 0);
|
int hotSpotX = 0, int hotSpotY = 0);
|
||||||
@@ -42,7 +45,9 @@ protected:
|
|||||||
private:
|
private:
|
||||||
void InitFromStock(wxStockCursor);
|
void InitFromStock(wxStockCursor);
|
||||||
|
|
||||||
void CreateFromImage(const wxImage & image) ;
|
#if wxUSE_IMAGE
|
||||||
|
void InitFromImage(const wxImage & image) ;
|
||||||
|
#endif // wxUSE_IMAGE
|
||||||
|
|
||||||
wxDECLARE_DYNAMIC_CLASS(wxCursor);
|
wxDECLARE_DYNAMIC_CLASS(wxCursor);
|
||||||
};
|
};
|
||||||
|
@@ -22,10 +22,11 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
#if wxUSE_IMAGE
|
#if wxUSE_IMAGE
|
||||||
wxCursor( const wxImage & image );
|
wxCursor( const wxImage & image );
|
||||||
|
wxCursor(const char* const* xpmData);
|
||||||
|
#endif // wxUSE_IMAGE
|
||||||
wxCursor(const wxString& name,
|
wxCursor(const wxString& name,
|
||||||
wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
|
wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
|
||||||
int hotSpotX = 0, int hotSpotY = 0);
|
int hotSpotX = 0, int hotSpotY = 0);
|
||||||
#endif
|
|
||||||
|
|
||||||
virtual wxPoint GetHotSpot() const wxOVERRIDE;
|
virtual wxPoint GetHotSpot() const wxOVERRIDE;
|
||||||
QCursor &GetHandle() const;
|
QCursor &GetHandle() const;
|
||||||
|
@@ -29,6 +29,7 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
#if wxUSE_IMAGE
|
#if wxUSE_IMAGE
|
||||||
wxCursor( const wxImage & image );
|
wxCursor( const wxImage & image );
|
||||||
|
wxCursor(const char* const* xpmData);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wxCursor(const wxString& name,
|
wxCursor(const wxString& name,
|
||||||
|
@@ -190,6 +190,17 @@ public:
|
|||||||
*/
|
*/
|
||||||
wxCursor(const wxImage& image);
|
wxCursor(const wxImage& image);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Constructs a cursor from XPM data.
|
||||||
|
|
||||||
|
In versions of wxWidgets until 3.1.6 constructing wxCursor from XPM
|
||||||
|
data implicitly used wxImage constructor from XPM data and wxCursor
|
||||||
|
constructor from wxImage. Since 3.1.6 this constructor overload is
|
||||||
|
available to allow constructing wxCursor from XPM to still work, even
|
||||||
|
though wxImage constructor from XPM is now @c explicit.
|
||||||
|
*/
|
||||||
|
wxCursor(const char* const* xpmData);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Copy constructor, uses @ref overview_refcount "reference counting".
|
Copy constructor, uses @ref overview_refcount "reference counting".
|
||||||
|
|
||||||
|
@@ -611,8 +611,10 @@ public:
|
|||||||
@beginWxPerlOnly
|
@beginWxPerlOnly
|
||||||
Not supported by wxPerl.
|
Not supported by wxPerl.
|
||||||
@endWxPerlOnly
|
@endWxPerlOnly
|
||||||
|
|
||||||
|
This constructor has become @c explicit in wxWidgets 3.1.6.
|
||||||
*/
|
*/
|
||||||
wxImage(const char* const* xpmData);
|
explicit wxImage(const char* const* xpmData);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Creates an image from a file.
|
Creates an image from a file.
|
||||||
|
@@ -53,6 +53,20 @@ void wxCursor::InitFromStock(wxStockCursor cursorId)
|
|||||||
#warning "FIXME -- implement the cursor as bitmaps (that's what DFB uses)"
|
#warning "FIXME -- implement the cursor as bitmaps (that's what DFB uses)"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if wxUSE_IMAGE
|
||||||
|
|
||||||
|
wxCursor::wxCursor(const wxImage& image)
|
||||||
|
{
|
||||||
|
#warning "FIXME"
|
||||||
|
}
|
||||||
|
|
||||||
|
wxCursor::wxCursor(const char* const* xpmData)
|
||||||
|
{
|
||||||
|
#warning "FIXME"
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // wxUSE_IMAGE
|
||||||
|
|
||||||
wxCursor::wxCursor(const wxString& cursor_file,
|
wxCursor::wxCursor(const wxString& cursor_file,
|
||||||
wxBitmapType type,
|
wxBitmapType type,
|
||||||
int WXUNUSED(hotSpotX), int WXUNUSED(hotSpotY))
|
int WXUNUSED(hotSpotX), int WXUNUSED(hotSpotY))
|
||||||
|
@@ -72,11 +72,11 @@ wxCursor::wxCursor()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
#if wxUSE_IMAGE
|
|
||||||
wxCursor::wxCursor(const wxString& cursor_file,
|
wxCursor::wxCursor(const wxString& cursor_file,
|
||||||
wxBitmapType type,
|
wxBitmapType type,
|
||||||
int hotSpotX, int hotSpotY)
|
int hotSpotX, int hotSpotY)
|
||||||
{
|
{
|
||||||
|
#if wxUSE_IMAGE
|
||||||
wxImage img;
|
wxImage img;
|
||||||
if (!img.LoadFile(cursor_file, type))
|
if (!img.LoadFile(cursor_file, type))
|
||||||
return;
|
return;
|
||||||
@@ -88,13 +88,20 @@ wxCursor::wxCursor(const wxString& cursor_file,
|
|||||||
img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, hotSpotY);
|
img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, hotSpotY);
|
||||||
|
|
||||||
InitFromImage(img);
|
InitFromImage(img);
|
||||||
|
#endif // wxUSE_IMAGE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if wxUSE_IMAGE
|
||||||
wxCursor::wxCursor(const wxImage& img)
|
wxCursor::wxCursor(const wxImage& img)
|
||||||
{
|
{
|
||||||
InitFromImage(img);
|
InitFromImage(img);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
wxCursor::wxCursor(const char* const* xpmData)
|
||||||
|
{
|
||||||
|
InitFromImage(wxImage(xpmData));
|
||||||
|
}
|
||||||
|
#endif // wxUSE_IMAGE
|
||||||
|
|
||||||
wxCursor::wxCursor(const char bits[], int width, int height,
|
wxCursor::wxCursor(const char bits[], int width, int height,
|
||||||
int hotSpotX, int hotSpotY,
|
int hotSpotX, int hotSpotY,
|
||||||
|
@@ -93,7 +93,7 @@ wxCursor::wxCursor()
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if wxUSE_IMAGE
|
#if wxUSE_IMAGE
|
||||||
wxCursor::wxCursor(const wxImage & image)
|
void wxCursor::InitFromImage(const wxImage & image)
|
||||||
{
|
{
|
||||||
unsigned char * rgbBits = image.GetData();
|
unsigned char * rgbBits = image.GetData();
|
||||||
int w = image.GetWidth() ;
|
int w = image.GetWidth() ;
|
||||||
@@ -174,6 +174,16 @@ wxCursor::wxCursor(const wxImage & image)
|
|||||||
delete[] bits;
|
delete[] bits;
|
||||||
delete[] maskBits;
|
delete[] maskBits;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxCursor::wxCursor(const wxImage& image)
|
||||||
|
{
|
||||||
|
InitFromImage(image);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxCursor::wxCursor(const char* const* xpmData)
|
||||||
|
{
|
||||||
|
InitFromImage(wxImage(xpmData));
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void wxCursor::Create(const char bits[], int width, int height,
|
void wxCursor::Create(const char bits[], int width, int height,
|
||||||
|
@@ -153,6 +153,16 @@ wxCursor::wxCursor()
|
|||||||
|
|
||||||
#if wxUSE_IMAGE
|
#if wxUSE_IMAGE
|
||||||
wxCursor::wxCursor(const wxImage& image)
|
wxCursor::wxCursor(const wxImage& image)
|
||||||
|
{
|
||||||
|
InitFromImage(image);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxCursor::wxCursor(const char* const* xpmData)
|
||||||
|
{
|
||||||
|
InitFromImage(wxImage(xpmData));
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxCursor::InitFromImage(const wxImage& image)
|
||||||
{
|
{
|
||||||
// image has to be of the standard cursor size, otherwise we won't be able
|
// image has to be of the standard cursor size, otherwise we won't be able
|
||||||
// to create it
|
// to create it
|
||||||
|
@@ -225,13 +225,18 @@ wxCursor::wxCursor()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if wxUSE_IMAGE
|
||||||
wxCursor::wxCursor( const wxImage &image )
|
wxCursor::wxCursor( const wxImage &image )
|
||||||
{
|
{
|
||||||
#if wxUSE_IMAGE
|
InitFromImage( image ) ;
|
||||||
CreateFromImage( image ) ;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxCursor::wxCursor(const char* const* xpmData)
|
||||||
|
{
|
||||||
|
InitFromImage( wxImage(xpmData) ) ;
|
||||||
|
}
|
||||||
|
#endif // wxUSE_IMAGE
|
||||||
|
|
||||||
wxGDIRefData *wxCursor::CreateGDIRefData() const
|
wxGDIRefData *wxCursor::CreateGDIRefData() const
|
||||||
{
|
{
|
||||||
return new wxCursorRefData;
|
return new wxCursorRefData;
|
||||||
@@ -249,7 +254,7 @@ WXHCURSOR wxCursor::GetHCURSOR() const
|
|||||||
|
|
||||||
#if wxUSE_IMAGE
|
#if wxUSE_IMAGE
|
||||||
|
|
||||||
void wxCursor::CreateFromImage(const wxImage & image)
|
void wxCursor::InitFromImage(const wxImage & image)
|
||||||
{
|
{
|
||||||
m_refData = new wxCursorRefData;
|
m_refData = new wxCursorRefData;
|
||||||
int hotSpotX = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X);
|
int hotSpotX = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X);
|
||||||
@@ -287,7 +292,7 @@ wxCursor::wxCursor(const wxString& cursor_file, wxBitmapType flags, int hotSpotX
|
|||||||
image.SetOption( wxIMAGE_OPTION_CUR_HOTSPOT_Y, hotSpotY ) ;
|
image.SetOption( wxIMAGE_OPTION_CUR_HOTSPOT_Y, hotSpotY ) ;
|
||||||
m_refData->DecRef() ;
|
m_refData->DecRef() ;
|
||||||
m_refData = NULL ;
|
m_refData = NULL ;
|
||||||
CreateFromImage( image ) ;
|
InitFromImage( image ) ;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@@ -59,11 +59,11 @@ public:
|
|||||||
wxIMPLEMENT_DYNAMIC_CLASS(wxCursor, wxGDIObject);
|
wxIMPLEMENT_DYNAMIC_CLASS(wxCursor, wxGDIObject);
|
||||||
|
|
||||||
|
|
||||||
#if wxUSE_IMAGE
|
|
||||||
wxCursor::wxCursor(const wxString& cursor_file,
|
wxCursor::wxCursor(const wxString& cursor_file,
|
||||||
wxBitmapType type,
|
wxBitmapType type,
|
||||||
int hotSpotX, int hotSpotY)
|
int hotSpotX, int hotSpotY)
|
||||||
{
|
{
|
||||||
|
#if wxUSE_IMAGE
|
||||||
wxImage img;
|
wxImage img;
|
||||||
if (!img.LoadFile(cursor_file, type))
|
if (!img.LoadFile(cursor_file, type))
|
||||||
return;
|
return;
|
||||||
@@ -75,13 +75,20 @@ wxCursor::wxCursor(const wxString& cursor_file,
|
|||||||
img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, hotSpotY);
|
img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, hotSpotY);
|
||||||
|
|
||||||
InitFromImage(img);
|
InitFromImage(img);
|
||||||
|
#endif // wxUSE_IMAGE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if wxUSE_IMAGE
|
||||||
wxCursor::wxCursor(const wxImage& img)
|
wxCursor::wxCursor(const wxImage& img)
|
||||||
{
|
{
|
||||||
InitFromImage(img);
|
InitFromImage(img);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
wxCursor::wxCursor(const char* const* xpmData)
|
||||||
|
{
|
||||||
|
InitFromImage(wxImage(xpmData));
|
||||||
|
}
|
||||||
|
#endif // wxUSE_IMAGE
|
||||||
|
|
||||||
wxPoint wxCursor::GetHotSpot() const
|
wxPoint wxCursor::GetHotSpot() const
|
||||||
{
|
{
|
||||||
|
@@ -140,6 +140,11 @@ wxCursor::wxCursor( const wxImage & WXUNUSED(image) )
|
|||||||
{
|
{
|
||||||
wxFAIL_MSG( wxT("wxCursor creation from wxImage not yet implemented") );
|
wxFAIL_MSG( wxT("wxCursor creation from wxImage not yet implemented") );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxCursor::wxCursor(const char* const* WXUNUSED(xpmData))
|
||||||
|
{
|
||||||
|
wxFAIL_MSG( wxT("wxCursor creation from XPM not yet implemented") );
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wxCursor::~wxCursor()
|
wxCursor::~wxCursor()
|
||||||
|
@@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include "wx/anidecod.h" // wxImageArray
|
#include "wx/anidecod.h" // wxImageArray
|
||||||
#include "wx/bitmap.h"
|
#include "wx/bitmap.h"
|
||||||
|
#include "wx/cursor.h"
|
||||||
|
#include "wx/icon.h"
|
||||||
#include "wx/palette.h"
|
#include "wx/palette.h"
|
||||||
#include "wx/url.h"
|
#include "wx/url.h"
|
||||||
#include "wx/log.h"
|
#include "wx/log.h"
|
||||||
@@ -2164,6 +2166,40 @@ TEST_CASE("wxImage::InitAlpha", "[image][initalpha]")
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("wxImage::XPM", "[image][xpm]")
|
||||||
|
{
|
||||||
|
static const char * dummy_xpm[] = {
|
||||||
|
"16 16 2 1",
|
||||||
|
"@ c Black",
|
||||||
|
" c None",
|
||||||
|
"@ ",
|
||||||
|
" @ ",
|
||||||
|
" @ ",
|
||||||
|
" @ ",
|
||||||
|
" @ ",
|
||||||
|
" @ ",
|
||||||
|
" @ ",
|
||||||
|
" @ ",
|
||||||
|
" @ ",
|
||||||
|
" @ ",
|
||||||
|
" @ ",
|
||||||
|
" @ ",
|
||||||
|
" @ ",
|
||||||
|
" @ ",
|
||||||
|
" @ ",
|
||||||
|
" @"
|
||||||
|
};
|
||||||
|
|
||||||
|
wxImage image(dummy_xpm);
|
||||||
|
CHECK( image.IsOk() );
|
||||||
|
|
||||||
|
// The goal here is mostly just to check that this code compiles, i.e. that
|
||||||
|
// creating all these classes from XPM works.
|
||||||
|
CHECK( wxBitmap(dummy_xpm).IsOk() );
|
||||||
|
CHECK( wxCursor(dummy_xpm).IsOk() );
|
||||||
|
CHECK( wxIcon(dummy_xpm).IsOk() );
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
TODO: add lots of more tests to wxImage functions
|
TODO: add lots of more tests to wxImage functions
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user