]> git.saurik.com Git - wxWidgets.git/blob - src/dfb/utils.cpp
avoid assert in DoGetBestSize() for an empty tree
[wxWidgets.git] / src / dfb / utils.cpp
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$
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
33 wxPortId 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
45 bool wxColourDisplay()
46 {
47     #warning "FIXME: wxColourDisplay"
48     return true;
49 }
50
51 int wxDisplayDepth()
52 {
53     return wxTheApp->GetDisplayMode().bpp;
54 }
55
56 void 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
63 void 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
78 void 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
91 void wxGetMousePosition(int *x, int *y)
92 {
93     wxIDirectFBDisplayLayerPtr layer(wxIDirectFB::Get()->GetDisplayLayer());
94     if ( layer )
95         layer->GetCursorPosition(x, y);
96 }
97
98 wxPoint wxGetMousePosition()
99 {
100     wxPoint pt;
101     wxGetMousePosition(&pt.x, &pt.y);
102     return pt;
103 }
104
105 //-----------------------------------------------------------------------------
106 // keyboard
107 //-----------------------------------------------------------------------------
108
109 bool 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
121 void wxBell()
122 {
123 }
124
125 int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
126 {
127     wxFAIL_MSG( _T("wxAddProcessCallback not implemented") );
128     return 0;
129 }