]> git.saurik.com Git - wxWidgets.git/blobdiff - src/dfb/cursor.cpp
Add missing WXK constants for the control keys
[wxWidgets.git] / src / dfb / cursor.cpp
index 5f4ea9114b356b424e6a74f4cff72891ddc1286e..e013a91295a1a78b01c149a02702426ff9ba9308 100644 (file)
 // 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::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<const wxCursorRefData *>(data)->Clone();
 }