X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b3c861501a451503b31c075ccb59d16b0ae01e99..7198c3368055d88249a338eb33b21f051f674806:/src/dfb/cursor.cpp?ds=inline diff --git a/src/dfb/cursor.cpp b/src/dfb/cursor.cpp index 58417b3d3b..e013a91295 100644 --- a/src/dfb/cursor.cpp +++ b/src/dfb/cursor.cpp @@ -22,12 +22,23 @@ // wxCursorRefData //----------------------------------------------------------------------------- -class wxCursorRefData: public wxObjectRefData +class wxCursorRefData : public wxGDIRefData { public: wxCursorRefData(const wxBitmap& bmp = wxNullBitmap, int id = -1) : m_id(id), m_bitmap(bmp) {} + virtual bool IsOk() const { return m_bitmap.IsOk(); } + + // Create a deep copy of this object. + wxCursorRefData *Clone() const + { + wxBitmap bitmapCopy(m_bitmap); + bitmapCopy.UnShare(); + + return new wxCursorRefData(bitmapCopy, m_id); + } + int m_id; wxBitmap m_bitmap; }; @@ -41,60 +52,26 @@ public: IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxObject) -wxCursor::wxCursor(int cursorId) +void wxCursor::InitFromStock(wxStockCursor cursorId) { #warning "FIXME -- implement the cursor as bitmaps (that's what DFB uses)" } -wxCursor::wxCursor(const char WXUNUSED(bits)[], - int WXUNUSED(width), - int WXUNUSED(height), - int WXUNUSED(hotSpotX), int WXUNUSED(hotSpotY), - const char WXUNUSED(maskBits)[], - wxColour * WXUNUSED(fg), wxColour * WXUNUSED(bg) ) -{ -#warning "FIXME" -} - wxCursor::wxCursor(const wxString& cursor_file, - long flags, + wxBitmapType type, int WXUNUSED(hotSpotX), int WXUNUSED(hotSpotY)) { #warning "FIXME" } -bool wxCursor::Ok() const -{ - return m_refData && M_CURSOR->m_bitmap.Ok(); -} - -bool wxCursor::operator==(const wxCursor& cursor) const -{ - if ( Ok() ) - { - if ( !cursor.Ok() ) - return false; - else if ( M_CURSOR->m_id != M_CURSOR_OF(cursor)->m_id ) - return false; - else if ( M_CURSOR->m_id == -1 ) // non-stock cursor - return (m_refData == cursor.m_refData); - else - return true; // IDs != -1 and are the same - } - else - { - return !cursor.Ok(); - } -} - -wxObjectRefData *wxCursor::CreateRefData() const +wxGDIRefData *wxCursor::CreateGDIRefData() const { return new wxCursorRefData; } -wxObjectRefData *wxCursor::CloneRefData(const wxObjectRefData *data) const +wxGDIRefData *wxCursor::CloneGDIRefData(const wxGDIRefData *data) const { - return new wxCursorRefData(*(wxCursorRefData *)data); + return static_cast(data)->Clone(); }