// wGui Calculator tutorial - bullseye_testapp.cpp #include "wgui.h" #include "bullseye.h" #include using namespace std; using namespace wGui; // View class class CBullseyeTestView : public CView { public: CBullseyeTestView(void); bool HandleMessage(CMessage* pMessage); private: CBullseye* m_pBullseye; CEditBox* m_pScoreBox; }; CBullseyeTestView::CBullseyeTestView(void) : CView(CRect(0, 0, 120, 150), "wGui Bullseye Custom Control Tutorial", false) { CMessageServer::Instance().RegisterMessageClient(this, CMessage::USER); m_pBullseye = new CBullseye(CRect(10, 10, 110, 110), this); m_pScoreBox = new CEditBox(CRect(10, 120, 110, 140), this); m_pScoreBox->SetReadOnly(true); m_pScoreBox->SetWindowText("Ready"); } bool CBullseyeTestView::HandleMessage(CMessage* pMessage) { bool bHandled = false; if (pMessage) { switch (pMessage->MessageType()) { case CMessage::USER: if (pMessage->Destination() == this && pMessage->Source() == m_pBullseye) { TIntMessage* pIntMessage = dynamic_cast(pMessage); m_pScoreBox->SetWindowText(stdex::itoa(pIntMessage->Value()) + " Points"); bHandled = true; } break; default: bHandled = CView::HandleMessage(pMessage); break; } } return bHandled; } // Application class class CBullseyeTestApp : public CApplication { public: CBullseyeTestApp(int argc, char **argv) : CApplication(argc, argv) { } virtual void Init(void) { CApplication::Init(); SetDefaultFontEngine(GetFontEngine("Vera.ttf")); } }; // Main int main(int argc, char **argv) { int iExitCode = EXIT_FAILURE; try { CBullseyeTestApp BullseyeTestApp(argc, argv); BullseyeTestApp.Init(); CBullseyeTestView BullseyeTestView; BullseyeTestApp.Exec(); iExitCode = BullseyeTestApp.ExitCode(); } catch (Wg_Ex_Base& e) { cerr << "Unhandled wGui exception : " << e.what() << endl; exit(EXIT_FAILURE); } catch (exception& e) { cerr << "Unhandled std exception : " << e.what() << endl; exit(EXIT_FAILURE); } catch (...) { cerr << "Unhandled exception." << endl; exit(EXIT_FAILURE); } exit (iExitCode); }