///////////////////////////////////////////////////////////////////////////// // Name: aeinstallerapp.cpp // Purpose: // Author: // Modified by: // Created: 07/05/2009 17:23:39 // RCS-ID: // Copyright: // Licence: ///////////////////////////////////////////////////////////////////////////// #include "boost/thread.hpp" #include #include "boost/filesystem.hpp" // includes all needed Boost.Filesystem declarations #include "boost/lexical_cast.hpp" //int -> string using namespace boost::filesystem; // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ #pragma hdrstop #endif #ifndef WX_PRECOMP #include "wx/wx.h" #endif ////@begin includes ////@end includes #include "aeinstallerapp.h" #include ////@begin XPM images ////@end XPM images /* * Application instance implementation */ ////@begin implement app IMPLEMENT_APP( AEInstallerApp ) ////@end implement app /* * AEInstallerApp type definition */ IMPLEMENT_CLASS( AEInstallerApp, wxApp ) /* * AEInstallerApp event table definition */ BEGIN_EVENT_TABLE( AEInstallerApp, wxApp ) ////@begin AEInstallerApp event table entries ////@end AEInstallerApp event table entries END_EVENT_TABLE() /* * Constructor for AEInstallerApp */ AEInstallerApp::AEInstallerApp() { Init(); } /* * Member initialisation */ void AEInstallerApp::Init() { ////@begin AEInstallerApp member initialisation ////@end AEInstallerApp member initialisation } /* * Initialisation for AEInstallerApp */ bool AEInstallerApp::OnInit() { ////@begin AEInstallerApp initialisation // Remove the comment markers above and below this block // to make permanent changes to the code. #if wxUSE_XPM wxImage::AddHandler(new wxXPMHandler); #endif #if wxUSE_LIBPNG wxImage::AddHandler(new wxPNGHandler); #endif #if wxUSE_LIBJPEG wxImage::AddHandler(new wxJPEGHandler); #endif #if wxUSE_GIF wxImage::AddHandler(new wxGIFHandler); #endif MainWindow* mainWindow = new MainWindow( NULL ); mainWindow->Show(true); ////@end AEInstallerApp initialisation TheWindow = mainWindow; //anything after this is done after the window appears... if ( !exists("../GameDataFolder") ) { wxMessageDialog* YesNoDialog = new wxMessageDialog(TheWindow, "You haven't globalized yet! \nYou must globalize to use the Anniversary Edition framework. \nWould you like to globalize now? (This could take a while...)\n(Selecting \"No\" will exit this program...)", "AE Installer Alert", wxYES_NO | wxICON_EXCLAMATION , wxDefaultPosition); if (YesNoDialog->ShowModal() == wxID_NO) { //if the user said no... TheWindow->Close(); } else { TheWindow->InstallButton->Disable(); TheWindow->ReglobalizeButton->Disable(); #ifdef WIN32 boost::thread thrd3(globalizeData); //globalizeData(); //boost::thread::create_thread(&globalizeData); // boost::thread_group Tg; // Tg.create_thread( &globalizeData(), this ); #else globalizeData(); setProgressBar(1000); setStatusArea("Done!"); #endif TheWindow->InstallButton->Enable(); TheWindow->ReglobalizeButton->Enable(); } } return true; } void setStatusArea( string s ) { wxString wxs(s.c_str(), wxConvUTF8); TheWindow->StatusArea->SetStatusText( wxs ); //TheWindow->StatusArea->SetStatusText(s.c_str()); //StatusArea->SetStatusText(_(s.c_str())); //(*TheStatusBar)->SetStatusText(_(s.c_str())); //AEInstallerApp:: // TheWindow->StatusArea->SetStatusText("hi"); //mainWindow //itemFrame1->StatusArea->SetStatusText(_"lol"); //MainWindow.StatusArea->SetStatusText("hi"); // class AbstractStatusNotifier { public: virtual void NotifyStatus(const wxString &statusString) = 0; }; //class StatusBarStatusNotifier : public AbstractStatusNotifier { wxStatusBar *statusbar; StatusBarStatusNotifier(wxStatusBar *bar) : statusbar(bar) { } ; //void NotifyStatus(const wxString &status) { statusbar->SetStatus(status); } } //MainWindow::StatusArea-> //MainWindow::MainWindow().SetSize(MainWindow::MainWindow().GetRect().GetWidth(), MainWindow::MainWindow().GetRect().GetHeight()+1); //MainWindow::StatusBar->SetLabel("Importing Files..."); //StatusBar->SetLabel(s); //->SetLabel(s); } /* * Cleanup for AEInstallerApp */ int AEInstallerApp::OnExit() { ////@begin AEInstallerApp cleanup return wxApp::OnExit(); ////@end AEInstallerApp cleanup } void doglobalizeData() { //TheWindow->Disable(); globalizeData(); #ifdef WIN32 while(1) Sleep(-1); #endif //TheWindow->Enable(); //setStatusArea((string)"Test1"); }