wxGTK1 : adding missing ctors foe wxCursor & wxBitmap

This commit is contained in:
Jouk
2021-05-03 08:04:00 +02:00
parent 43beca8196
commit 0943beb241
4 changed files with 44 additions and 8 deletions

View File

@@ -25,6 +25,7 @@ class WXDLLIMPEXP_FWD_CORE wxPixelDataBase;
class WXDLLIMPEXP_FWD_CORE wxMask;
class WXDLLIMPEXP_FWD_CORE wxBitmap;
class WXDLLIMPEXP_FWD_CORE wxImage;
class WXDLLIMPEXP_FWD_CORE wxCursor;
//-----------------------------------------------------------------------------
// wxMask
@@ -72,6 +73,7 @@ public:
wxBitmap( const char* const* bits );
wxBitmap( const wxString &filename, wxBitmapType type = wxBITMAP_DEFAULT_TYPE );
wxBitmap( const wxImage& image, int depth = -1, double WXUNUSED(scale) = 1.0 ) { (void)CreateFromImage(image, depth); }
explicit wxBitmap(const wxCursor& cursor);
virtual ~wxBitmap();
bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH);

View File

@@ -29,19 +29,16 @@ public:
#endif
#if wxUSE_IMAGE
wxCursor( const wxImage & image );
wxCursor(const char* const* xpmData);
#endif
wxCursor(const wxString& name,
wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
int hotSpotX = 0, int hotSpotY = 0);
wxCursor( const char bits[], int width, int height,
int hotSpotX=-1, int hotSpotY=-1,
const char maskBits[] = NULL,
const wxColour* fg = NULL, const wxColour* bg = NULL);
/* WARNING: the following ctor is missing:
wxCursor(const wxString& name,
wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
int hotSpotX = 0, int hotSpotY = 0);
*/
virtual ~wxCursor();
// implementation
@@ -50,6 +47,9 @@ public:
protected:
void InitFromStock(wxStockCursor);
#if wxUSE_IMAGE
void InitFromImage(const wxImage& image);
#endif
virtual wxGDIRefData *CreateGDIRefData() const;
virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const;

View File

@@ -18,6 +18,7 @@
#include "wx/icon.h"
#include "wx/math.h"
#include "wx/image.h"
#include "wx/cursor.h"
#endif // WX_PRECOMP
#include "wx/filefn.h"
@@ -1144,6 +1145,11 @@ wxBitmap::wxBitmap( const char bits[], int width, int height, int WXUNUSED(depth
}
}
wxBitmap::wxBitmap(const wxCursor& cursor)
{
wxUnusedVar(cursor);
}
wxBitmap::~wxBitmap()
{
}

View File

@@ -159,9 +159,38 @@ wxCursor::wxCursor(const char bits[], int width, int height,
gdk_bitmap_unref( mask );
}
wxCursor::wxCursor(const wxString& cursor_file,
wxBitmapType type,
int hotSpotX, int hotSpotY)
{
#if wxUSE_IMAGE
wxImage img;
if (!img.LoadFile(cursor_file, type))
return;
// eventually set the hotspot:
if (!img.HasOption(wxIMAGE_OPTION_CUR_HOTSPOT_X))
img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, hotSpotX);
if (!img.HasOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y))
img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, hotSpotY);
InitFromImage(img);
#endif // wxUSE_IMAGE
}
#if wxUSE_IMAGE
wxCursor::wxCursor( const wxImage & image )
{
InitFromImage(image);
}
wxCursor::wxCursor(const char* const* xpmData)
{
InitFromImage(wxImage(xpmData));
}
void wxCursor::InitFromImage( const wxImage & image )
{
unsigned char * rgbBits = image.GetData();
int w = image.GetWidth() ;
@@ -312,7 +341,6 @@ wxCursor::wxCursor( const wxImage & image )
delete [] bits;
delete [] maskBits;
}
#endif // wxUSE_IMAGE
wxCursor::~wxCursor()