]> git.saurik.com Git - wxWidgets.git/blob - src/palmos/utils.cpp
applying OSAF patch for "toolbar selection not correct on Mac after calling Realize...
[wxWidgets.git] / src / palmos / utils.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/palmos/utils.cpp
3 // Purpose: Various utilities
4 // Author: William Osborne - minimal working wxPalmOS port
5 // Modified by: Wlodzimierz ABX Skiba - real functionality
6 // Created: 10/13/04
7 // RCS-ID: $Id$
8 // Copyright: (c) William Osborne, Wlodzimierz Skiba
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 // ============================================================================
13 // declarations
14 // ============================================================================
15
16 // ----------------------------------------------------------------------------
17 // headers
18 // ----------------------------------------------------------------------------
19
20 // For compilers that support precompilation, includes "wx.h".
21 #include "wx/wxprec.h"
22
23 #ifdef __BORLANDC__
24 #pragma hdrstop
25 #endif
26
27 #ifndef WX_PRECOMP
28 #include "wx/utils.h"
29 #include "wx/app.h"
30 #include "wx/intl.h"
31 #include "wx/log.h"
32 #endif //WX_PRECOMP
33
34 #include "wx/apptrait.h"
35 #include "wx/dynload.h"
36 #include "wx/confbase.h"
37 #include "wx/timer.h"
38
39 #include <MemoryMgr.h>
40 #include <DLServer.h>
41 #include <SoundMgr.h>
42
43 // ============================================================================
44 // implementation
45 // ============================================================================
46
47 // ----------------------------------------------------------------------------
48 // get host name and related
49 // ----------------------------------------------------------------------------
50
51 // Get hostname only (without domain name)
52 bool wxGetHostName(wxChar *buf, int maxSize)
53 {
54 return false;
55 }
56
57 // get full hostname (with domain name if possible)
58 bool wxGetFullHostName(wxChar *buf, int maxSize)
59 {
60 return false;
61 }
62
63 // Get user ID e.g. jacs
64 bool wxGetUserId(wxChar *buf, int maxSize)
65 {
66 return wxGetUserName(buf, maxSize);
67 }
68
69 // Get user name e.g. Julian Smart
70 bool wxGetUserName(wxChar *buf, int maxSize)
71 {
72 *buf = wxT('\0');
73
74 // buffer allocation
75 MemHandle handle = MemHandleNew(maxSize-1);
76 if( handle == NULL )
77 return false;
78
79 // lock the buffer
80 char *id = (char *)MemHandleLock(handle);
81 if( id == NULL )
82 return false;
83
84 // get user's name
85 if( DlkGetSyncInfo(NULL, NULL, NULL, id, NULL, NULL) != errNone )
86 {
87 MemPtrUnlock(id);
88 return false;
89 }
90
91 wxStrncpy (buf, wxConvertMB2WX(id), maxSize - 1);
92
93 // free the buffer
94 MemPtrUnlock(id);
95
96 return true;
97 }
98
99 const wxChar* wxGetHomeDir(wxString *pstr)
100 {
101 return NULL;
102 }
103
104 wxChar *wxGetUserHome(const wxString& WXUNUSED(user))
105 {
106 return NULL;
107 }
108
109 bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree)
110 {
111 return false;
112 }
113
114 // ----------------------------------------------------------------------------
115 // env vars
116 // ----------------------------------------------------------------------------
117
118 bool wxGetEnv(const wxString& var, wxString *value)
119 {
120 return false;
121 }
122
123 bool wxSetEnv(const wxString& var, const wxChar *value)
124 {
125 return false;
126 }
127
128 // ----------------------------------------------------------------------------
129 // process management
130 // ----------------------------------------------------------------------------
131
132 int wxKill(long pid, wxSignal sig, wxKillError *krc, int flags)
133 {
134 return 0;
135 }
136
137 // Execute a program in an Interactive Shell
138 bool wxShell(const wxString& command)
139 {
140 return false;
141 }
142
143 // Shutdown or reboot the PC
144 bool wxShutdown(wxShutdownFlags wFlags)
145 {
146 return false;
147 }
148
149 wxPowerType wxGetPowerType()
150 {
151 return wxPOWER_BATTERY;
152 }
153
154 wxBatteryState wxGetBatteryState()
155 {
156 // TODO
157 return wxBATTERY_UNKNOWN_STATE;
158 }
159
160 // ----------------------------------------------------------------------------
161 // misc
162 // ----------------------------------------------------------------------------
163
164 // Get free memory in bytes, or -1 if cannot determine amount (e.g. on UNIX)
165 wxMemorySize wxGetFreeMemory()
166 {
167 uint32_t freeTotal = 0;
168 uint32_t freeHeap;
169 uint32_t freeChunk;
170
171 // executed twice: for the dynamic heap, and for the non-secure RAM storage heap
172 for ( uint16_t i=0; i<MemNumRAMHeaps(); i++)
173 {
174 status_t err = MemHeapFreeBytes(i, &freeHeap, &freeChunk);
175 if( err != errNone )
176 return -1;
177 freeTotal+=freeHeap;
178 }
179
180 return (wxMemorySize)freeTotal;
181 }
182
183 unsigned long wxGetProcessId()
184 {
185 return 0;
186 }
187
188 // Emit a beeeeeep
189 void wxBell()
190 {
191 SndPlaySystemSound(sndWarning);
192 }
193
194 wxString wxGetOsDescription()
195 {
196 wxString strOS = _T("PalmOS");
197
198 char *version = SysGetOSVersionString();
199 if(version)
200 {
201 wxString str = wxString::FromAscii(version);
202 MemPtrFree(version);
203 if(!str.empty())
204 {
205 strOS << _(" ") << str;
206 }
207 }
208
209 return strOS;
210 }
211
212 wxToolkitInfo& wxAppTraits::GetToolkitInfo()
213 {
214 static wxToolkitInfo info;
215 info.name = _T("wxBase");
216 return info;
217 }
218
219 // ----------------------------------------------------------------------------
220 // sleep functions
221 // ----------------------------------------------------------------------------
222
223 void wxMilliSleep(unsigned long milliseconds)
224 {
225 }
226
227 void wxMicroSleep(unsigned long microseconds)
228 {
229 }
230
231 void wxSleep(int nSecs)
232 {
233 }
234
235 // ----------------------------------------------------------------------------
236 // font encoding <-> Win32 codepage conversion functions
237 // ----------------------------------------------------------------------------
238
239 extern WXDLLIMPEXP_BASE long wxEncodingToCharset(wxFontEncoding encoding)
240 {
241 return 0;
242 }
243
244 // we have 2 versions of wxCharsetToCodepage(): the old one which directly
245 // looks up the vlaues in the registry and the new one which is more
246 // politically correct and has more chances to work on other Windows versions
247 // as well but the old version is still needed for !wxUSE_FONTMAP case
248 #if wxUSE_FONTMAP
249
250 #include "wx/fontmap.h"
251
252 extern WXDLLIMPEXP_BASE long wxEncodingToCodepage(wxFontEncoding encoding)
253 {
254 return 0;
255 }
256
257 extern long wxCharsetToCodepage(const wxChar *name)
258 {
259 return 0;
260 }
261
262 #else // !wxUSE_FONTMAP
263
264 // this should work if Internet Exploiter is installed
265 extern long wxCharsetToCodepage(const wxChar *name)
266 {
267 return 0;
268 }
269
270 #endif // wxUSE_FONTMAP/!wxUSE_FONTMAP
271