]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dragimag.cpp
Use the data scheme to load resources in the WebKitGTK+ implementation, rather than...
[wxWidgets.git] / src / msw / dragimag.cpp
index 469d3954b028dd0fa960d960e8a5d63bd6801f41..7e06613e362042d6addcd3a50d898d2366b74e95 100644 (file)
@@ -92,7 +92,7 @@ void wxDragImage::Init()
 #if !wxUSE_SIMPLER_DRAGIMAGE
     m_hCursorImageList = 0;
 #endif
-    m_window = (wxWindow*) NULL;
+    m_window = NULL;
     m_fullScreen = false;
 }
 
@@ -182,9 +182,8 @@ bool wxDragImage::Create(const wxIcon& image, const wxCursor& cursor)
     else
         flags = ILC_COLOR32;
 #endif
-    bool mask = true;
-    if ( mask )
-        flags |= ILC_MASK;
+
+    flags |= ILC_MASK;
 
     m_hImageList = (WXHIMAGELIST) ImageList_Create(image.GetWidth(), image.GetHeight(), flags, 1, 1);
 
@@ -206,7 +205,7 @@ bool wxDragImage::Create(const wxString& str, const wxCursor& cursor)
 {
     wxFont font(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
 
-    long w = 0, h = 0;
+    wxCoord w = 0, h = 0;
     wxScreenDC dc;
     dc.SetFont(font);
     dc.GetTextExtent(str, & w, & h);
@@ -219,7 +218,7 @@ bool wxDragImage::Create(const wxString& str, const wxCursor& cursor)
 
     dc2.SetBackground(* wxWHITE_BRUSH);
     dc2.Clear();
-    dc2.SetBackgroundMode(wxTRANSPARENT);
+    dc2.SetBackgroundMode(wxBRUSHSTYLE_TRANSPARENT);
     dc2.SetTextForeground(* wxLIGHT_GREY);
     dc2.DrawText(str, 0, 0);
     dc2.DrawText(str, 1, 0);
@@ -251,7 +250,13 @@ bool wxDragImage::Create(const wxTreeCtrl& treeCtrl, wxTreeItemId& id)
         ImageList_Destroy(GetHimageList());
     m_hImageList = (WXHIMAGELIST)
         TreeView_CreateDragImage(GetHwndOf(&treeCtrl), (HTREEITEM) id.m_pItem);
-    return m_hImageList != 0;
+    if ( !m_hImageList )
+    {
+        // fall back on just the item text if there is no image
+        return Create(treeCtrl.GetItemText(id));
+    }
+
+    return true;
 }
 #endif
 
@@ -262,8 +267,17 @@ bool wxDragImage::Create(const wxListCtrl& listCtrl, long id)
     if ( m_hImageList )
         ImageList_Destroy(GetHimageList());
     POINT pt;
-    pt.x = 0; pt.y = 0;
-    m_hImageList = (WXHIMAGELIST) ListView_CreateDragImage((HWND) listCtrl.GetHWND(), id, & pt);
+    pt.x =
+    pt.y = 0;
+    m_hImageList = (WXHIMAGELIST)
+        ListView_CreateDragImage(GetHwndOf(&listCtrl), id, &pt);
+
+    if ( !m_hImageList )
+    {
+        // as for wxTreeCtrl, fall back on dragging just the item text
+        return Create(listCtrl.GetItemText(id));
+    }
+
     return true;
 }
 #endif
@@ -282,12 +296,12 @@ bool wxDragImage::BeginDrag(const wxPoint& hotspot, wxWindow* window, bool fullS
 
     if (!ret)
     {
-        wxFAIL_MSG( _T("BeginDrag failed.") );
+        wxFAIL_MSG( wxT("BeginDrag failed.") );
 
         return false;
     }
 
-    if (m_cursor.Ok())
+    if (m_cursor.IsOk())
     {
 #if wxUSE_SIMPLER_DRAGIMAGE
         m_oldCursor = window->GetCursor();
@@ -338,7 +352,7 @@ bool wxDragImage::BeginDrag(const wxPoint& hotspot, wxWindow* window, bool fullS
     }
 
 #if !wxUSE_SIMPLER_DRAGIMAGE
-    if (m_cursor.Ok())
+    if (m_cursor.IsOk())
         ::ShowCursor(FALSE);
 #endif
 
@@ -383,13 +397,13 @@ bool wxDragImage::EndDrag()
     }
 
 #if wxUSE_SIMPLER_DRAGIMAGE
-    if (m_cursor.Ok() && m_oldCursor.Ok())
+    if (m_cursor.IsOk() && m_oldCursor.IsOk())
         m_window->SetCursor(m_oldCursor);
 #else
     ::ShowCursor(TRUE);
 #endif
 
-    m_window = (wxWindow*) NULL;
+    m_window = NULL;
 
     return true;
 }