git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46029 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
136 lines
3.5 KiB
C++
136 lines
3.5 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: src/dfb/utils.cpp
|
|
// Purpose: Miscellaneous utility functions and classes
|
|
// Author: Vaclav Slavik
|
|
// Created: 2006-08-08
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) 2006 REA Elektronik GmbH
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// For compilers that support precompilation, includes "wx.h".
|
|
#include "wx/wxprec.h"
|
|
|
|
#ifdef __BORLANDC__
|
|
#pragma hdrstop
|
|
#endif
|
|
|
|
#include "wx/utils.h"
|
|
#include "wx/evtloop.h"
|
|
#include "wx/apptrait.h"
|
|
#include "wx/unix/execute.h"
|
|
|
|
#ifndef WX_PRECOMP
|
|
#include "wx/app.h"
|
|
#endif
|
|
|
|
#include "wx/dfb/private.h"
|
|
#include <directfb_version.h>
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// toolkit info
|
|
// ----------------------------------------------------------------------------
|
|
|
|
wxPortId wxGUIAppTraits::GetToolkitVersion(int *verMaj, int *verMin) const
|
|
{
|
|
if ( verMaj ) *verMaj = DIRECTFB_MAJOR_VERSION;
|
|
if ( verMin ) *verMaj = DIRECTFB_MINOR_VERSION;
|
|
|
|
return wxPORT_DFB;
|
|
}
|
|
|
|
|
|
wxEventLoop* wxGUIAppTraits::CreateEventLoop()
|
|
{
|
|
return new wxEventLoop;
|
|
};
|
|
// ----------------------------------------------------------------------------
|
|
// display characteristics
|
|
// ----------------------------------------------------------------------------
|
|
|
|
bool wxColourDisplay()
|
|
{
|
|
#warning "FIXME: wxColourDisplay"
|
|
return true;
|
|
}
|
|
|
|
int wxDisplayDepth()
|
|
{
|
|
return wxTheApp->GetDisplayMode().bpp;
|
|
}
|
|
|
|
void wxDisplaySize(int *width, int *height)
|
|
{
|
|
wxVideoMode mode(wxTheApp->GetDisplayMode());
|
|
if ( width ) *width = mode.w;
|
|
if ( height ) *height = mode.h;
|
|
}
|
|
|
|
void wxDisplaySizeMM(int *width, int *height)
|
|
{
|
|
// FIXME: there's no way to get physical resolution using the DirectDB
|
|
// API, we hardcode a commonly used value of 72dpi
|
|
#define DPI 72.0
|
|
#define PX_TO_MM(x) (int(((x) / DPI) * inches2mm))
|
|
|
|
wxDisplaySize(width, height);
|
|
if ( width ) *width = PX_TO_MM(*width);
|
|
if ( height ) *height = PX_TO_MM(*height);
|
|
|
|
#undef DPI
|
|
#undef PX_TO_MM
|
|
}
|
|
|
|
void wxClientDisplayRect(int *x, int *y, int *width, int *height)
|
|
{
|
|
// return desktop dimensions minus any panels, menus, trays:
|
|
if (x) *x = 0;
|
|
if (y) *y = 0;
|
|
wxDisplaySize(width, height);
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// mouse
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void wxGetMousePosition(int *x, int *y)
|
|
{
|
|
wxIDirectFBDisplayLayerPtr layer(wxIDirectFB::Get()->GetDisplayLayer());
|
|
if ( layer )
|
|
layer->GetCursorPosition(x, y);
|
|
}
|
|
|
|
wxPoint wxGetMousePosition()
|
|
{
|
|
wxPoint pt;
|
|
wxGetMousePosition(&pt.x, &pt.y);
|
|
return pt;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// keyboard
|
|
//-----------------------------------------------------------------------------
|
|
|
|
bool wxGetKeyState(wxKeyCode key)
|
|
{
|
|
wxASSERT_MSG(key != WXK_LBUTTON && key != WXK_RBUTTON && key != WXK_MBUTTON,
|
|
_T("can't use wxGetKeyState() for mouse buttons"));
|
|
|
|
return false; // FIXME
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
// misc.
|
|
//----------------------------------------------------------------------------
|
|
|
|
void wxBell()
|
|
{
|
|
}
|
|
|
|
int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
|
|
{
|
|
wxFAIL_MSG( _T("wxAddProcessCallback not implemented") );
|
|
return 0;
|
|
}
|