]> git.saurik.com Git - wxWidgets.git/blobdiff - src/dfb/utils.cpp
convert wxImage's mask into alpha channel in wxDFB's wxBitmap for now, until full...
[wxWidgets.git] / src / dfb / utils.cpp
index e9e8d8ebbee36c21d802c25c6a77d5215b3e07b8..3e201ae40ccb626b4f26a5790b323a4532ce1fab 100644 (file)
@@ -16,6 +16,7 @@
 #endif
 
 #include "wx/utils.h"
+#include "wx/evtloop.h"
 #include "wx/apptrait.h"
 #include "wx/unix/execute.h"
 
@@ -38,6 +39,12 @@ wxPortId wxGUIAppTraits::GetToolkitVersion(int *verMaj, int *verMin) const
     return wxPORT_DFB;
 }
 
+
+wxEventLoopBase* wxGUIAppTraits::CreateEventLoop()
+{
+    return new wxEventLoop;
+}
+
 // ----------------------------------------------------------------------------
 // display characteristics
 // ----------------------------------------------------------------------------
@@ -83,78 +90,6 @@ void wxClientDisplayRect(int *x, int *y, int *width, int *height)
     wxDisplaySize(width, height);
 }
 
-//-----------------------------------------------------------------------------
-// surface manipulation helpers
-//-----------------------------------------------------------------------------
-
-IDirectFBSurfacePtr wxDfbCloneSurface(const IDirectFBSurfacePtr& s,
-                                      wxDfbCloneSurfaceMode mode)
-{
-    if ( !s )
-        return NULL;
-
-    DFBSurfaceDescription desc;
-    desc.flags = (DFBSurfaceDescriptionFlags)(
-            DSDESC_CAPS | DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT);
-    s->GetCapabilities(s, &desc.caps);
-    s->GetSize(s, &desc.width, &desc.height);
-    s->GetPixelFormat(s, &desc.pixelformat);
-
-    IDirectFBPtr dfb(wxTheApp->GetDirectFBInterface());
-
-    IDirectFBSurfacePtr snew;
-    if ( !DFB_CALL( dfb->CreateSurface(dfb, &desc, &snew) ) )
-        return NULL;
-
-    IDirectFBPalettePtr pal;
-    if ( s->GetPalette(s, &pal) == DFB_OK )
-    {
-        if ( !DFB_CALL( snew->SetPalette(snew, pal) ) )
-            return NULL;
-    }
-
-    if ( mode == wxDfbCloneSurface_CopyPixels )
-    {
-        if ( !DFB_CALL( snew->SetBlittingFlags(snew, DSBLIT_NOFX) ) )
-            return NULL;
-        if ( !DFB_CALL( snew->Blit(snew, s, NULL, 0, 0) ) )
-            return NULL;
-    }
-
-    return snew;
-}
-
-int wxDfbGetSurfaceDepth(const IDirectFBSurfacePtr& s)
-{
-    wxCHECK_MSG( s, -1, _T("invalid surface") );
-
-    DFBSurfacePixelFormat format = DSPF_UNKNOWN;
-
-    if ( !DFB_CALL( s->GetPixelFormat(s, &format) ) )
-        return -1;
-
-    return DFB_BITS_PER_PIXEL(format);
-}
-
-IDirectFBDisplayLayerPtr wxDfbGetDisplayLayer()
-{
-    IDirectFBPtr dfb(wxTheApp->GetDirectFBInterface());
-
-    IDirectFBDisplayLayerPtr layer;
-    if ( !DFB_CALL( dfb->GetDisplayLayer(dfb, DLID_PRIMARY, &layer) ) )
-        return NULL;
-
-    return layer;
-}
-
-IDirectFBSurfacePtr wxDfbGetPrimarySurface()
-{
-    IDirectFBDisplayLayerPtr layer(wxDfbGetDisplayLayer());
-    IDirectFBSurfacePtr surface;
-    DFB_CALL( layer->GetSurface(layer, &surface) );
-    return surface;
-}
-
 
 //-----------------------------------------------------------------------------
 // mouse
@@ -162,8 +97,9 @@ IDirectFBSurfacePtr wxDfbGetPrimarySurface()
 
 void wxGetMousePosition(int *x, int *y)
 {
-    IDirectFBDisplayLayerPtr layer(wxDfbGetDisplayLayer());
-    DFB_CALL( layer->GetCursorPosition(layer, x, y) );
+    wxIDirectFBDisplayLayerPtr layer(wxIDirectFB::Get()->GetDisplayLayer());
+    if ( layer )
+        layer->GetCursorPosition(x, y);
 }
 
 wxPoint wxGetMousePosition()
@@ -180,7 +116,7 @@ wxPoint wxGetMousePosition()
 bool wxGetKeyState(wxKeyCode key)
 {
     wxASSERT_MSG(key != WXK_LBUTTON && key != WXK_RBUTTON && key != WXK_MBUTTON,
-                 _T("can't use wxGetKeyState() for mouse buttons"));
+                 "can't use wxGetKeyState() for mouse buttons");
 
     return false; // FIXME
 }
@@ -195,6 +131,6 @@ void wxBell()
 
 int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
 {
-    wxFAIL_MSG( _T("wxAddProcessCallback not implemented") );
+    wxFAIL_MSG( "wxAddProcessCallback not implemented" );
     return 0;
 }