X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b7cacb43db1e69b87b257a67912b4d52995b070a..dca2fe5daecf9c74f227062d8a9a259b4e5ef1fc:/src/dfb/cursor.cpp diff --git a/src/dfb/cursor.cpp b/src/dfb/cursor.cpp index 5f4ea9114b..96e25b4c2d 100644 --- a/src/dfb/cursor.cpp +++ b/src/dfb/cursor.cpp @@ -3,7 +3,6 @@ // Purpose: wxCursor implementation // Author: Vaclav Slavik // Created: 2006-08-08 -// RCS-ID: $Id$ // Copyright: (c) 2006 REA Elektronik GmbH // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -22,12 +21,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 +51,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::IsOk() 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(); }