// // Copyright 2005 The Android Open Source Project // // Main window declaration. // #ifndef _SIM_MAINFRAME_H #define _SIM_MAINFRAME_H #include "PhoneWindow.h" #include "DeviceWindow.h" #include "LogWindow.h" #include "ExternalRuntime.h" #include "PropertyServer.h" /* * Main window. */ class MainFrame : public wxFrame { public: /* define a constructor so we can set up menus */ MainFrame(const wxString& title, const wxPoint& pos, const wxSize& size, long style); virtual ~MainFrame(void); /* called by modeless phone window dialog when it closes */ void PhoneWindowClosing(int x, int y); void Vibrate(int vibrateOn) { mpPhoneWindow->Vibrate(vibrateOn); } PropertyServer* GetPropertyServer(void) { return mPropertyServerThread; } private: void ConstructMenu(void); void ConstructControls(void); void OnClose(wxCloseEvent& event); void OnTimer(wxTimerEvent& event); //void OnIdle(wxIdleEvent& event); void OnActivate(wxActivateEvent& event); void OnButton(wxCommandEvent& event); void OnComboBox(wxCommandEvent& event); void OnCheckBox(wxCommandEvent& event); void OnText(wxCommandEvent& event); void OnTextEnter(wxCommandEvent& event); void OnUserEvent(UserEvent& event); void OnSliderChange(wxScrollEvent& event); void OnFilePreferences(wxCommandEvent& event); void OnFileExit(wxCommandEvent& event); void OnUpdateSimStart(wxUpdateUIEvent& event); void OnSimStart(wxCommandEvent& event); void OnUpdateSimStop(wxUpdateUIEvent& event); void OnSimStop(wxCommandEvent& event); void OnUpdateSimReload(wxUpdateUIEvent& event); void OnSimReload(wxCommandEvent& event); void OnUpdateSimRestart(wxUpdateUIEvent& event); void OnSimRestart(wxCommandEvent& event); void OnUpdateSimKill(wxUpdateUIEvent& event); void OnSimKill(wxCommandEvent& event); void OnDeviceSelected(wxCommandEvent& event); void OnDeviceRescan(wxCommandEvent& event); void OnUpdateDebugShowLog(wxUpdateUIEvent& event); void OnDebugShowLog(wxCommandEvent& event); void OnHelpContents(wxCommandEvent& event); void OnHelpAbout(wxCommandEvent& event); wxMenu* CreateDeviceMenu(const char* defaultItemName); void SetCheckFromPref(wxCheckBox* pControl, const char* prefStr, bool defaultVal); void UpdateRuntimeExeStr(void); /* prep the phone UI; "defaultMode" may be NULL */ void SetupPhoneUI(int idx, const char* defaultMode); bool CompatibleDevices(PhoneData* pData1, PhoneData* pData2); void HandleRuntimeStart(void); void HandleRuntimeStop(void); void HandleExternalRuntime(android::Pipe* reader, android::Pipe* writer); int GetSelectedDeviceIndex(void); bool IsRuntimeRunning(void); bool IsRuntimeKillable(void); void BroadcastOnionSkinUpdate(void); bool mSimRunning; bool mRestartRequested; enum { kHalfSecondTimerId = 1000 }; wxString mSimAssetPath; /* if we have a phone running, this points to its state */ PhoneWindow* mpPhoneWindow; /* phone window position */ wxPoint mPhoneWindowPosn; /* window that captures log output */ LogWindow* mpLogWindow; wxTimer mTimer; /* watches for connection from runtime */ ExternalRuntime* mExternalRuntimeThread; /* serve up system properties */ PropertyServer* mPropertyServerThread; DECLARE_EVENT_TABLE() }; #endif // _SIM_MAINFRAME_H