X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b3c861501a451503b31c075ccb59d16b0ae01e99..a6982a3882f976f5764c0bac808cc3fd64c9a7f3:/src/dfb/utils.cpp diff --git a/src/dfb/utils.cpp b/src/dfb/utils.cpp index e9e8d8ebbe..da9e2baa9d 100644 --- a/src/dfb/utils.cpp +++ b/src/dfb/utils.cpp @@ -16,8 +16,10 @@ #endif #include "wx/utils.h" +#include "wx/evtloop.h" #include "wx/apptrait.h" #include "wx/unix/execute.h" +#include "wx/unix/private/timer.h" #ifndef WX_PRECOMP #include "wx/app.h" @@ -38,6 +40,17 @@ wxPortId wxGUIAppTraits::GetToolkitVersion(int *verMaj, int *verMin) const return wxPORT_DFB; } + +wxEventLoopBase* wxGUIAppTraits::CreateEventLoop() +{ + return new wxEventLoop; +} + +wxTimerImpl *wxGUIAppTraits::CreateTimerImpl(wxTimer *timer) +{ + return new wxUnixTimerImpl(timer); +} + // ---------------------------------------------------------------------------- // display characteristics // ---------------------------------------------------------------------------- @@ -83,78 +96,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 +103,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 +122,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 } @@ -192,9 +134,3 @@ bool wxGetKeyState(wxKeyCode key) void wxBell() { } - -int wxAddProcessCallback(wxEndProcessData *proc_data, int fd) -{ - wxFAIL_MSG( _T("wxAddProcessCallback not implemented") ); - return 0; -}