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: utils.cpp 40789 2006-08-24 14:27:41Z ABX $ 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 #include "wx/timer.h" 33#endif //WX_PRECOMP 34 35#include "wx/apptrait.h" 36#include "wx/dynload.h" 37#include "wx/confbase.h" 38#include "wx/power.h" 39 40#include <MemoryMgr.h> 41#include <DLServer.h> 42#include <SoundMgr.h> 43#include <SysUtils.h> 44 45// ============================================================================ 46// implementation 47// ============================================================================ 48 49// ---------------------------------------------------------------------------- 50// get host name and related 51// ---------------------------------------------------------------------------- 52 53// Get hostname only (without domain name) 54bool wxGetHostName(wxChar *buf, int maxSize) 55{ 56 return false; 57} 58 59// get full hostname (with domain name if possible) 60bool wxGetFullHostName(wxChar *buf, int maxSize) 61{ 62 return false; 63} 64 65// Get user ID e.g. jacs 66bool wxGetUserId(wxChar *buf, int maxSize) 67{ 68 return wxGetUserName(buf, maxSize); 69} 70 71// Get user name e.g. Julian Smart 72bool wxGetUserName(wxChar *buf, int maxSize) 73{ 74 *buf = wxT('\0'); 75 76 // buffer allocation 77 MemHandle handle = MemHandleNew(maxSize-1); 78 if( handle == NULL ) 79 return false; 80 81 // lock the buffer 82 char *id = (char *)MemHandleLock(handle); 83 if( id == NULL ) 84 return false; 85 86 // get user's name 87 if( DlkGetSyncInfo(NULL, NULL, NULL, id, NULL, NULL) != errNone ) 88 { 89 MemPtrUnlock(id); 90 return false; 91 } 92 93 wxStrncpy (buf, wxConvertMB2WX(id), maxSize - 1); 94 95 // free the buffer 96 MemPtrUnlock(id); 97 98 return true; 99} 100 101const wxChar* wxGetHomeDir(wxString *pstr) 102{ 103 return NULL; 104} 105 106wxChar *wxGetUserHome(const wxString& WXUNUSED(user)) 107{ 108 return NULL; 109} 110 111bool wxGetDiskSpace(const wxString& path, wxDiskspaceSize_t *pTotal, wxDiskspaceSize_t *pFree) 112{ 113 return false; 114} 115 116// ---------------------------------------------------------------------------- 117// env vars 118// ---------------------------------------------------------------------------- 119 120bool wxGetEnv(const wxString& var, wxString *value) 121{ 122 return false; 123} 124 125bool wxSetEnv(const wxString& var, const wxChar *value) 126{ 127 return false; 128} 129 130// ---------------------------------------------------------------------------- 131// process management 132// ---------------------------------------------------------------------------- 133 134int wxKill(long pid, wxSignal sig, wxKillError *krc, int flags) 135{ 136 return 0; 137} 138 139// Execute a program in an Interactive Shell 140bool wxShell(const wxString& command) 141{ 142 return false; 143} 144 145// Shutdown or reboot the PC 146bool wxShutdown(wxShutdownFlags wFlags) 147{ 148 return false; 149} 150 151// ---------------------------------------------------------------------------- 152// power management 153// ---------------------------------------------------------------------------- 154 155wxPowerType wxGetPowerType() 156{ 157 return wxPOWER_BATTERY; 158} 159 160wxBatteryState wxGetBatteryState() 161{ 162 // TODO 163 return wxBATTERY_UNKNOWN_STATE; 164} 165 166// ---------------------------------------------------------------------------- 167// misc 168// ---------------------------------------------------------------------------- 169 170// Get free memory in bytes, or -1 if cannot determine amount (e.g. on UNIX) 171wxMemorySize wxGetFreeMemory() 172{ 173 uint32_t freeTotal = 0; 174 uint32_t freeHeap; 175 uint32_t freeChunk; 176 177 // executed twice: for the dynamic heap, and for the non-secure RAM storage heap 178 for ( uint16_t i=0; i<MemNumRAMHeaps(); i++) 179 { 180 status_t err = MemHeapFreeBytes(i, &freeHeap, &freeChunk); 181 if( err != errNone ) 182 return -1; 183 freeTotal+=freeHeap; 184 } 185 186 return (wxMemorySize)freeTotal; 187} 188 189unsigned long wxGetProcessId() 190{ 191 return 0; 192} 193 194// Emit a beeeeeep 195void wxBell() 196{ 197 SndPlaySystemSound(sndWarning); 198} 199 200bool wxIsPlatform64Bit() 201{ 202 return false; 203} 204 205wxString wxGetOsDescription() 206{ 207 wxString strOS = _T("PalmOS"); 208 209 char *version = SysGetOSVersionString(); 210 if(version) 211 { 212 wxString str = wxString::FromAscii(version); 213 MemPtrFree(version); 214 if(!str.empty()) 215 { 216 strOS << _(" ") << str; 217 } 218 } 219 220 return strOS; 221} 222 223wxOperatingSystemId wxGetOsVersion(int *verMaj, int *verMin) 224{ 225 // TODO 226 227 return wxOS_UNKNOWN; 228} 229 230// ---------------------------------------------------------------------------- 231// sleep functions 232// ---------------------------------------------------------------------------- 233 234void wxMilliSleep(unsigned long milliseconds) 235{ 236} 237 238void wxMicroSleep(unsigned long microseconds) 239{ 240} 241 242void wxSleep(int nSecs) 243{ 244} 245 246// ---------------------------------------------------------------------------- 247// font encoding <-> Win32 codepage conversion functions 248// ---------------------------------------------------------------------------- 249 250extern WXDLLIMPEXP_BASE long wxEncodingToCharset(wxFontEncoding encoding) 251{ 252 return 0; 253} 254 255// we have 2 versions of wxCharsetToCodepage(): the old one which directly 256// looks up the vlaues in the registry and the new one which is more 257// politically correct and has more chances to work on other Windows versions 258// as well but the old version is still needed for !wxUSE_FONTMAP case 259#if wxUSE_FONTMAP 260 261#include "wx/fontmap.h" 262 263extern WXDLLIMPEXP_BASE long wxEncodingToCodepage(wxFontEncoding encoding) 264{ 265 return 0; 266} 267 268extern long wxCharsetToCodepage(const wxChar *name) 269{ 270 return 0; 271} 272 273#else // !wxUSE_FONTMAP 274 275// this should work if Internet Exploiter is installed 276extern long wxCharsetToCodepage(const wxChar *name) 277{ 278 return 0; 279} 280 281#endif // wxUSE_FONTMAP/!wxUSE_FONTMAP 282