]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/emulator/src/emulator.cpp
wxMessageBox off the main thread lost result code.
[wxWidgets.git] / utils / emulator / src / emulator.cpp
index ec983705759f3adde3151e7aa0ca38a5692c2c23..74a2a832b908343a3e39206b961a2fad63c01997 100644 (file)
@@ -1,10 +1,9 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        emulator.cpp
-// Purpose:     Emulator wxWindows sample
+// Purpose:     Emulator wxWidgets sample
 // Author:      Julian Smart
 // Modified by:
 // Created:     04/01/98
-// RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 // declarations
 // ============================================================================
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "emulator.h"
-#endif
-
 // ----------------------------------------------------------------------------
 // headers
 // ----------------------------------------------------------------------------
@@ -29,7 +24,7 @@
 #endif
 
 // for all others, include the necessary headers (this file is usually all you
-// need because it includes almost all "standard" wxWindows headers)
+// need because it includes almost all "standard" wxWidgets headers)
 #ifndef WX_PRECOMP
     #include "wx/wx.h"
 #endif
@@ -38,6 +33,8 @@
 #include "wx/fileconf.h"
 #include "wx/cmdline.h"
 #include "wx/image.h"
+#include "wx/file.h"
+#include "wx/filename.h"
 
 #ifdef __WXX11__
 #include "wx/x11/reparent.h"
 // ----------------------------------------------------------------------------
 
 // the application icon (under Windows and OS/2 it is in resources)
-#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) || defined(__WXMGL__) || defined(__WXX11__)
+#ifndef wxHAS_IMAGES_IN_RESOURCES
     #include "emulator.xpm"
 #endif
 
 // ----------------------------------------------------------------------------
-// event tables and other macros for wxWindows
+// event tables and other macros for wxWidgets
 // ----------------------------------------------------------------------------
 
-// the event tables connect the wxWindows events with the functions (event
+// the event tables connect the wxWidgets events with the functions (event
 // handlers) which process them. It can be also done at run-time, but for the
 // simple menu events like this the static method is much simpler.
 BEGIN_EVENT_TABLE(wxEmulatorFrame, wxFrame)
@@ -67,7 +64,7 @@ BEGIN_EVENT_TABLE(wxEmulatorFrame, wxFrame)
     EVT_CLOSE(wxEmulatorFrame::OnCloseWindow)
 END_EVENT_TABLE()
 
-// Create a new application object: this macro will allow wxWindows to create
+// Create a new application object: this macro will allow wxWidgets to create
 // the application object during program execution (it's better than using a
 // static object for many reasons) and also declares the accessor function
 // wxGetApp() which will return the reference of the right type (i.e. wxEmulatorApp and
@@ -76,14 +73,14 @@ IMPLEMENT_APP(wxEmulatorApp)
 
 static const wxCmdLineEntryDesc sg_cmdLineDesc[] =
 {
-    { wxCMD_LINE_OPTION, _T("u"), _T("use-display"),   _T("display number to use (default 100)") },
+    { wxCMD_LINE_OPTION, "u", "use-display", "display number to use (default 100)" },
 
-    { wxCMD_LINE_SWITCH, _T("h"), _T("help"),   _T("displays help on the command line parameters") },
-    { wxCMD_LINE_SWITCH, _T("v"), _T("version"),    _T("print version") },
+    { wxCMD_LINE_SWITCH, "h", "help", "displays help on the command line parameters" },
+    { wxCMD_LINE_SWITCH, "v", "version", "print version" },
 
-    { wxCMD_LINE_PARAM,  NULL, NULL, _T("config file 1"), wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
+    { wxCMD_LINE_PARAM,  NULL, NULL, "config file 1", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
 
-    { wxCMD_LINE_NONE }
+    wxCMD_LINE_DESC_END
 };
 
 
@@ -107,7 +104,9 @@ wxEmulatorApp::wxEmulatorApp()
 // 'Main program' equivalent: the program execution "starts" here
 bool wxEmulatorApp::OnInit()
 {
-    wxLog::SetTimestamp(NULL);
+#if wxUSE_LOG
+    wxLog::DisableTimestamp();
+#endif // wxUSE_LOG
     wxInitAllImageHandlers();
 
     wxString currentDir = wxGetCwd();
@@ -117,10 +116,10 @@ bool wxEmulatorApp::OnInit()
 
     // If the development version, go up a directory.
 #ifdef __WXMSW__
-    if ((m_appDir.Right(5).CmpNoCase(_T("DEBUG")) == 0) ||
-        (m_appDir.Right(11).CmpNoCase(_T("DEBUGSTABLE")) == 0) ||
-        (m_appDir.Right(7).CmpNoCase(_T("RELEASE")) == 0) ||
-        (m_appDir.Right(13).CmpNoCase(_T("RELEASESTABLE")) == 0)
+    if ((m_appDir.Right(5).CmpNoCase(wxT("DEBUG")) == 0) ||
+        (m_appDir.Right(11).CmpNoCase(wxT("DEBUGSTABLE")) == 0) ||
+        (m_appDir.Right(7).CmpNoCase(wxT("RELEASE")) == 0) ||
+        (m_appDir.Right(13).CmpNoCase(wxT("RELEASESTABLE")) == 0)
         )
         m_appDir = wxPathOnly(m_appDir);
 #endif
@@ -146,7 +145,7 @@ bool wxEmulatorApp::OnInit()
         wxLog::SetActiveTarget(new wxLogStderr);
 #endif
         wxString msg;
-        msg.Printf(wxT("wxWindows PDA Emulator (c) Julian Smart, 2002 Version %.2f, %s"), wxEMULATOR_VERSION, __DATE__);
+        msg.Printf(wxT("wxWidgets PDA Emulator (c) Julian Smart, 2002 Version %.2f, %s"), wxEMULATOR_VERSION, __DATE__);
         wxLogMessage(msg);
         return false;
     }
@@ -176,15 +175,17 @@ bool wxEmulatorApp::OnInit()
     }
 
     // create the main application window
-    wxEmulatorFrame *frame = new wxEmulatorFrame(_T("wxEmulator"),
+    wxEmulatorFrame *frame = new wxEmulatorFrame(wxT("wxEmulator"),
                                  wxPoint(50, 50), wxSize(450, 340));
 
+#if wxUSE_STATUSBAR
     frame->SetStatusText(m_emulatorInfo.m_emulatorTitle, 0);
 
     wxString sizeStr;
     sizeStr.Printf(wxT("Screen: %dx%d"), (int) m_emulatorInfo.m_emulatorScreenSize.x,
             (int) m_emulatorInfo.m_emulatorScreenSize.y);
     frame->SetStatusText(sizeStr, 1);
+#endif // wxUSE_STATUSBAR
 
     m_containerWindow = new wxEmulatorContainer(frame, wxID_ANY);
 
@@ -272,14 +273,14 @@ wxEmulatorFrame::wxEmulatorFrame(const wxString& title,
 
     // the "About" item should be in the help menu
     wxMenu *helpMenu = new wxMenu;
-    helpMenu->Append(Emulator_About, _T("&About...\tF1"), _T("Show about dialog"));
+    helpMenu->Append(Emulator_About, wxT("&About\tF1"), wxT("Show about dialog"));
 
-    menuFile->Append(Emulator_Quit, _T("E&xit\tAlt-X"), _T("Quit this program"));
+    menuFile->Append(Emulator_Quit, wxT("E&xit\tAlt-X"), wxT("Quit this program"));
 
     // now append the freshly created menu to the menu bar...
     wxMenuBar *menuBar = new wxMenuBar();
-    menuBar->Append(menuFile, _T("&File"));
-    menuBar->Append(helpMenu, _T("&Help"));
+    menuBar->Append(menuFile, wxT("&File"));
+    menuBar->Append(helpMenu, wxT("&Help"));
 
     // ... and attach this menu bar to the frame
     SetMenuBar(menuBar);
@@ -303,9 +304,9 @@ void wxEmulatorFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
 void wxEmulatorFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 {
     wxString msg;
-    msg.Printf( _T("wxEmulator is an environment for testing embedded X11 apps.\n"));
+    msg.Printf( wxT("wxEmulator is an environment for testing embedded X11 apps.\n"));
 
-    wxMessageBox(msg, _T("About wxEmulator"), wxOK | wxICON_INFORMATION, this);
+    wxMessageBox(msg, wxT("About wxEmulator"), wxOK | wxICON_INFORMATION, this);
 }
 
 void wxEmulatorFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event))
@@ -347,7 +348,7 @@ void wxEmulatorContainer::DoResize()
     wxSize sz = GetClientSize();
     if (wxGetApp().m_xnestWindow
 #ifdef __WXX11__
-        && wxGetApp().m_xnestWindow->GetMainWindow()
+        && wxGetApp().m_xnestWindow->X11GetMainWindow()
 #endif
         )
     {
@@ -370,7 +371,7 @@ void wxEmulatorContainer::OnPaint(wxPaintEvent& WXUNUSED(event))
     wxPaintDC dc(this);
 
     wxSize sz = GetClientSize();
-    if (wxGetApp().m_emulatorInfo.m_emulatorBackgroundBitmap.Ok())
+    if (wxGetApp().m_emulatorInfo.m_emulatorBackgroundBitmap.IsOk())
     {
         int deviceWidth = wxGetApp().m_emulatorInfo.m_emulatorDeviceSize.x;
         int deviceHeight = wxGetApp().m_emulatorInfo.m_emulatorDeviceSize.y;
@@ -453,7 +454,7 @@ bool wxEmulatorInfo::Load(const wxString& appDir)
     wxString rootPath = wxPathOnly(absoluteConfigPath);
 
     {
-        wxFileConfig config(wxT("wxEmulator"), wxT("wxWindows"),
+        wxFileConfig config(wxT("wxEmulator"), wxT("wxWidgets"),
             absoluteConfigPath, wxEmptyString, wxCONFIG_USE_LOCAL_FILE);
 
         config.Read(wxT("/General/title"), & m_emulatorTitle);
@@ -482,7 +483,7 @@ bool wxEmulatorInfo::Load(const wxString& appDir)
         m_emulatorScreenSize = wxSize(w, h);
     }
 
-    if (!m_emulatorBackgroundBitmapName.IsEmpty())
+    if (!m_emulatorBackgroundBitmapName.empty())
     {
         wxString absoluteBackgroundBitmapName = rootPath + wxString(wxFILE_SEP_PATH) + m_emulatorBackgroundBitmapName;
         if ( !wxFile::Exists(absoluteBackgroundBitmapName) )
@@ -518,21 +519,21 @@ wxBitmapType wxDetermineImageType(const wxString& filename)
 {
     wxString path, name, ext;
 
-    wxSplitPath(filename, & path, & name, & ext);
+    wxFileName::SplitPath(filename, & path, & name, & ext);
 
     ext.MakeLower();
-    if (ext == _T("jpg") || ext == _T("jpeg"))
+    if (ext == wxT("jpg") || ext == wxT("jpeg"))
         return wxBITMAP_TYPE_JPEG;
-    if (ext == _T("gif"))
+    if (ext == wxT("gif"))
         return wxBITMAP_TYPE_GIF;
-    if (ext == _T("bmp"))
+    if (ext == wxT("bmp"))
         return wxBITMAP_TYPE_BMP;
-    if (ext == _T("png"))
+    if (ext == wxT("png"))
         return wxBITMAP_TYPE_PNG;
-    if (ext == _T("pcx"))
+    if (ext == wxT("pcx"))
         return wxBITMAP_TYPE_PCX;
-    if (ext == _T("tif") || ext == _T("tiff"))
-        return wxBITMAP_TYPE_TIF;
+    if (ext == wxT("tif") || ext == wxT("tiff"))
+        return wxBITMAP_TYPE_TIFF;
 
     return wxBITMAP_TYPE_INVALID;
 }
@@ -552,9 +553,9 @@ wxString wxColourToHexString(const wxColour& col)
 // Convert 6-digit hex string to a colour
 wxColour wxHexStringToColour(const wxString& hex)
 {
-    unsigned int r = wxHexToDec(hex.Mid(0, 2));
-    unsigned int g = wxHexToDec(hex.Mid(2, 2));
-    unsigned int b = wxHexToDec(hex.Mid(4, 2));
+    unsigned char r = (unsigned char)wxHexToDec(hex.Mid(0, 2));
+    unsigned char g = (unsigned char)wxHexToDec(hex.Mid(2, 2));
+    unsigned char b = (unsigned char)wxHexToDec(hex.Mid(4, 2));
 
     return wxColour(r, g, b);
 }
@@ -570,10 +571,10 @@ wxString wxFindAppPath(const wxString& argv0, const wxString& cwd, const wxStrin
     wxString str;
 
     // Try appVariableName
-    if (!appVariableName.IsEmpty())
+    if (!appVariableName.empty())
     {
         str = wxGetenv(appVariableName);
-        if (!str.IsEmpty())
+        if (!str.empty())
             return str;
     }
 
@@ -597,7 +598,7 @@ wxString wxFindAppPath(const wxString& argv0, const wxString& cwd, const wxStrin
     wxPathList pathList;
     pathList.AddEnvList(wxT("PATH"));
     str = pathList.FindAbsoluteValidPath(argv0);
-    if (!str.IsEmpty())
+    if (!str.empty())
         return wxPathOnly(str);
 
     // Failed