1///////////////////////////////////////////////////////////////////////////// 2// Name: src/dfb/utils.cpp 3// Purpose: Miscellaneous utility functions and classes 4// Author: Vaclav Slavik 5// Created: 2006-08-08 6// RCS-ID: $Id: utils.cpp 41154 2006-09-11 09:08:57Z VS $ 7// Copyright: (c) 2006 REA Elektronik GmbH 8// Licence: wxWindows licence 9///////////////////////////////////////////////////////////////////////////// 10 11// For compilers that support precompilation, includes "wx.h". 12#include "wx/wxprec.h" 13 14#ifdef __BORLANDC__ 15 #pragma hdrstop 16#endif 17 18#include "wx/utils.h" 19#include "wx/apptrait.h" 20#include "wx/unix/execute.h" 21 22#ifndef WX_PRECOMP 23 #include "wx/app.h" 24#endif 25 26#include "wx/dfb/private.h" 27#include <directfb_version.h> 28 29// ---------------------------------------------------------------------------- 30// toolkit info 31// ---------------------------------------------------------------------------- 32 33wxPortId wxGUIAppTraits::GetToolkitVersion(int *verMaj, int *verMin) const 34{ 35 if ( verMaj ) *verMaj = DIRECTFB_MAJOR_VERSION; 36 if ( verMin ) *verMaj = DIRECTFB_MINOR_VERSION; 37 38 return wxPORT_DFB; 39} 40 41// ---------------------------------------------------------------------------- 42// display characteristics 43// ---------------------------------------------------------------------------- 44 45bool wxColourDisplay() 46{ 47 #warning "FIXME: wxColourDisplay" 48 return true; 49} 50 51int wxDisplayDepth() 52{ 53 return wxTheApp->GetDisplayMode().bpp; 54} 55 56void wxDisplaySize(int *width, int *height) 57{ 58 wxVideoMode mode(wxTheApp->GetDisplayMode()); 59 if ( width ) *width = mode.w; 60 if ( height ) *height = mode.h; 61} 62 63void wxDisplaySizeMM(int *width, int *height) 64{ 65 // FIXME: there's no way to get physical resolution using the DirectDB 66 // API, we hardcode a commonly used value of 72dpi 67 #define DPI 72.0 68 #define PX_TO_MM(x) (int(((x) / DPI) * inches2mm)) 69 70 wxDisplaySize(width, height); 71 if ( width ) *width = PX_TO_MM(*width); 72 if ( height ) *height = PX_TO_MM(*height); 73 74 #undef DPI 75 #undef PX_TO_MM 76} 77 78void wxClientDisplayRect(int *x, int *y, int *width, int *height) 79{ 80 // return desktop dimensions minus any panels, menus, trays: 81 if (x) *x = 0; 82 if (y) *y = 0; 83 wxDisplaySize(width, height); 84} 85 86 87//----------------------------------------------------------------------------- 88// mouse 89//----------------------------------------------------------------------------- 90 91void wxGetMousePosition(int *x, int *y) 92{ 93 wxIDirectFBDisplayLayerPtr layer(wxIDirectFB::Get()->GetDisplayLayer()); 94 if ( layer ) 95 layer->GetCursorPosition(x, y); 96} 97 98wxPoint wxGetMousePosition() 99{ 100 wxPoint pt; 101 wxGetMousePosition(&pt.x, &pt.y); 102 return pt; 103} 104 105//----------------------------------------------------------------------------- 106// keyboard 107//----------------------------------------------------------------------------- 108 109bool wxGetKeyState(wxKeyCode key) 110{ 111 wxASSERT_MSG(key != WXK_LBUTTON && key != WXK_RBUTTON && key != WXK_MBUTTON, 112 _T("can't use wxGetKeyState() for mouse buttons")); 113 114 return false; // FIXME 115} 116 117//---------------------------------------------------------------------------- 118// misc. 119//---------------------------------------------------------------------------- 120 121void wxBell() 122{ 123} 124 125int wxAddProcessCallback(wxEndProcessData *proc_data, int fd) 126{ 127 wxFAIL_MSG( _T("wxAddProcessCallback not implemented") ); 128 return 0; 129} 130