//
// Copyright 2005 The Android Open Source Project
//
// Application class.
//
#ifndef _SIM_APPMAIN_H
#define _SIM_APPMAIN_H
#include "wx/help.h"
#include "wx/html/helpctrl.h"
#include "MainFrame.h"
#include "DeviceManager.h"
#include "Preferences.h"
#include <utils/AssetManager.h>
/* flag set from signal handler */
extern bool gWantToKill;
/*
* Class representing the application.
*/
class MyApp : public wxApp {
public:
MyApp(void)
: mHelpController(NULL), mpMainFrame(NULL), mpAssetManager(NULL),
mResetPaths(false) // configurable; reset prefs with paths
{}
~MyApp(void)
{
delete mpAssetManager;
delete mHelpController;
}
virtual bool OnInit(void);
virtual int OnExit(void);
wxHtmlHelpController* GetHelpController(void) const {
return mHelpController;
}
Preferences* GetPrefs(void) { return &mPrefs; }
/* return a pointer to the main window */
wxWindow* GetMainFrame(void) { return mpMainFrame; }
/* get a pointer to our Asset Manager */
android::AssetManager* GetAssetManager(void) { return mpAssetManager; }
/* change the asset dir; requires re-creating Asset Manager */
void ChangeAssetDirectory(const wxString& dir);
const wxString& GetConfigFileName(void) const { return mConfigFile; }
wxString GetSimAssetPath() { return mSimAssetPath; }
wxString GetAndroidRoot() { return mAndroidRoot; }
wxString GetRuntimeExe() { return mRuntimeExe; }
bool GetDebuggerOption() { return mDebuggerOption; }
wxString GetDebuggerScript() { return mDebuggerScript; }
wxString GetAutoRunApp() { return mAutoRunApp; }
void Vibrate(int vibrateOn) { ((MainFrame*)mpMainFrame)->Vibrate(vibrateOn); }
private:
void SetDefaults();
bool ParseArgs(int argc, char** argv);
void AbsifyPath(wxString& dir);
bool ProcessConfigFile(void);
static void FindExe(const wxString& exeName, const wxString paths[],
const wxString& defaultPath, wxString* pOut);
wxHtmlHelpController* mHelpController;
wxWindow* mpMainFrame;
android::AssetManager* mpAssetManager;
wxString mAndroidRoot;
wxString mSimAssetPath;
wxString mRuntimeExe;
/* command-line options */
wxString mConfigFile;
bool mResetPaths;
bool mDebuggerOption;
wxString mDebuggerScript;
wxString mAutoRunApp;
Preferences mPrefs;
};
#endif // _SIM_APPMAIN_H