![]() ![]() ![]()
|
SophiaFramework UNIVERSE 5.0 |
基礎的な HelloWorld アプレットの開発方法やサスペンド / レジュームへの対応方法などについて解説します。
アプリケーションウィザードを利用して作成した最大のアプリケーションクラスのコードです。
例 9.33. 宣言
// // USRApplication.hpp // // This source code was automatically // generated by SophiaFramework 5.0. // #ifndef __USRAPPLICATION_HPP #define __USRAPPLICATION_HPP #define TARGET_BUILD_DEBUG #include <SophiaFramework.hpp> #include "USRApplication.bid" SFMTYPEDEFCLASS(USRApplication) class USRApplication : public SFYApplication { SFMSEALCOPY(USRApplication) public: static SFCInvokerPtr Factory(Void); private: explicit USRApplication(Void) static_throws; virtual ~USRApplication(Void); XANDLER_DECLARE_VOIDRENDER(OnRenderRequest) XANDLER_DECLARE_VOIDSTART(OnAppStart) XANDLER_DECLARE_VOIDSTOP(OnAppStop) XANDLER_DECLARE_VOIDRESUME(OnAppResume) XANDLER_DECLARE_VOIDSUSPEND(OnAppSuspend) XANDLER_DECLARE_BOOLVOID(OnAppNoClose) XANDLER_DECLARE_BOOLVOID(OnAppNoSleep) XANDLER_DECLARE_BOOLEVENT(OnKey) XANDLER_DECLARE_BOOLEVENT(OnKeyPress) XANDLER_DECLARE_BOOLEVENT(OnKeyRelease) }; #endif // __USRAPPLICATION_HPP //
例 9.34. 実装
// // USRApplication.cpp // // This source code was automatically // generated by SophiaFramework 5.0. // #include "USRApplication.hpp" // ブートローダ SFCApplet::FactorySPP SFCApplet::Boot(AEECLSID id, SFXAnsiStringPtr license) { // ここにライセンスコードを記述する *license = "heap://"; return (id == AEECLSID_USRAPPLICATION) ? (&USRApplication::Factory) : (null); } // ファクトリ関数 : ユーザー定義アプリケーションクラスのインスタンスを生成する関数 SFCInvokerPtr USRApplication::Factory(Void) { return ::new USRApplication; } // コンストラクタ USRApplication::USRApplication(Void) static_throws { // ここに各種ハンドラの登録を記述する if (static_try()) { // 描画ハンドラの登録 static_throw(RegisterHandler( SFXEventRange(SFEVT_RESPONDER_RENDER, SFEVT_RESPONDER_RENDER, SFP16_RENDER_REQUEST, SFP16_RENDER_REQUEST), XANDLER_INTERNAL(OnRenderRequest) )); } if (static_try()) { // アプレット開始ハンドラの登録 static_throw(RegisterHandler( SFXEventRange(SFEVT_APP_START, SFEVT_APP_START, SFP16_BEGIN, SFP16_END), XANDLER_INTERNAL(OnAppStart) )); } if (static_try()) { // アプレット終了ハンドラの登録 static_throw(RegisterHandler( SFXEventRange(SFEVT_APP_STOP, SFEVT_APP_STOP, SFP16_BEGIN, SFP16_END), XANDLER_INTERNAL(OnAppStop) )); } if (static_try()) { // アプレット再開ハンドラの登録 static_throw(RegisterHandler( SFXEventRange(SFEVT_APP_RESUME, SFEVT_APP_RESUME, SFP16_BEGIN, SFP16_END), XANDLER_INTERNAL(OnAppResume) )); } if (static_try()) { // アプレット中断ハンドラの登録 static_throw(RegisterHandler( SFXEventRange(SFEVT_APP_SUSPEND, SFEVT_APP_SUSPEND, SFP16_BEGIN, SFP16_END), XANDLER_INTERNAL(OnAppSuspend) )); } if (static_try()) { // アプレット終了確認ハンドラの登録 static_throw(RegisterHandler( SFXEventRange(SFEVT_APP_NO_CLOSE, SFEVT_APP_NO_CLOSE, SFP16_BEGIN, SFP16_END), XANDLER_INTERNAL(OnAppNoClose) )); } if (static_try()) { // アプレットスリープ確認ハンドラの登録 static_throw(RegisterHandler( SFXEventRange(SFEVT_APP_NO_SLEEP, SFEVT_APP_NO_SLEEP, SFP16_BEGIN, SFP16_END), XANDLER_INTERNAL(OnAppNoSleep) )); } if (static_try()) { // キーハンドラの登録 static_throw(RegisterHandler( SFXEventRange(SFEVT_KEY, SFEVT_KEY, SFP16_BEGIN, SFP16_END), XANDLER_INTERNAL(OnKey) )); } if (static_try()) { // キー押下ハンドラの登録 static_throw(RegisterHandler( SFXEventRange(SFEVT_KEY_PRESS, SFEVT_KEY_PRESS, SFP16_BEGIN, SFP16_END), XANDLER_INTERNAL(OnKeyPress) )); } if (static_try()) { // キー解放ハンドラの登録 static_throw(RegisterHandler( SFXEventRange(SFEVT_KEY_RELEASE, SFEVT_KEY_RELEASE, SFP16_BEGIN, SFP16_END), XANDLER_INTERNAL(OnKeyRelease) )); } } // デストラクタ USRApplication::~USRApplication(Void) { } // 描画ハンドラ XANDLER_IMPLEMENT_VOIDRENDER(USRApplication, OnRenderRequest, invoker, reason, graphics) { // 未使用変数のワーニングを回避する unused(invoker); unused(reason); // ここに描画時の処理を記述する // 画面に描画を行う graphics->DrawSingleText("Hello World", GetLocalBound(), SFXRGBColor(0x00, 0x00, 0x00, 0x00)); return; } // アプレット開始ハンドラ XANDLER_IMPLEMENT_VOIDSTART(USRApplication, OnAppStart, invoker, environment) { // 未使用変数のワーニングを回避する unused(invoker); unused(environment); // ここにアプレット開始時の処理を記述する return; } // アプレット終了ハンドラ XANDLER_IMPLEMENT_VOIDSTOP(USRApplication, OnAppStop, invoker, quitable) { // 未使用変数のワーニングを回避する unused(invoker); unused(quitable); // ここにアプレット終了時の処理を記述する return; } // アプレット再開ハンドラ XANDLER_IMPLEMENT_VOIDRESUME(USRApplication, OnAppResume, invoker, environment) { // 未使用変数のワーニングを回避する unused(invoker); unused(environment); // ここにアプレット再開時の処理を記述する return; } // アプレット中断ハンドラ XANDLER_IMPLEMENT_VOIDSUSPEND(USRApplication, OnAppSuspend, invoker, reason, info) { // 未使用変数のワーニングを回避する unused(invoker); unused(reason); unused(info); // ここにアプレット中断時の処理を記述する return; } // アプレット終了確認ハンドラ XANDLER_IMPLEMENT_BOOLVOID(USRApplication, OnAppNoClose, invoker) { // 未使用変数のワーニングを回避する unused(invoker); // アプレットの終了を拒否する場合は true を返す return false; } // アプレットスリープ確認ハンドラ XANDLER_IMPLEMENT_BOOLVOID(USRApplication, OnAppNoSleep, invoker) { // 未使用変数のワーニングを回避する unused(invoker); // アプレットのスリープを拒否する場合は true を返す return false; } // キーハンドラ XANDLER_IMPLEMENT_BOOLEVENT(USRApplication, OnKey, invoker, event) { // 未使用変数のワーニングを回避する unused(invoker); // ここにキーが押されたときの処理を記述する // セレクトキーが押されたらアプレットを終了する switch (event.GetP16()) { case AVK_SELECT: Terminate(); return true; } return false; } // キー押下ハンドラ XANDLER_IMPLEMENT_BOOLEVENT(USRApplication, OnKeyPress, invoker, event) { // 未使用変数のワーニングを回避する unused(invoker); unused(event); // ここにキーが押下状態になったときの処理を記述する return false; } // キー解放ハンドラ XANDLER_IMPLEMENT_BOOLEVENT(USRApplication, OnKeyRelease, invoker, event) { // 未使用変数のワーニングを回避する unused(invoker); unused(event); // ここにキーが解放状態になったときの処理を記述する return false; }
アプリケーションウィザードを利用して作成した最小のアプリケーションクラスのコードです。
例 9.35. 宣言
// // USRApplication.hpp // // This source code was automatically // generated by SophiaFramework 5.0. // #ifndef __USRAPPLICATION_HPP #define __USRAPPLICATION_HPP #define TARGET_BUILD_DEBUG #include <SophiaFramework.hpp> #include "USRApplication.bid" SFMTYPEDEFCLASS(USRApplication) class USRApplication : public SFYApplication { SFMSEALCOPY(USRApplication) public: static SFCInvokerPtr Factory(Void); private: explicit USRApplication(Void) static_throws; virtual ~USRApplication(Void); }; #endif // __USRAPPLICATION_HPP //
例 9.36. 実装
// // USRApplication.cpp // // This source code was automatically // generated by SophiaFramework 5.0. // #include "USRApplication.hpp" // ブートローダ SFCApplet::FactorySPP SFCApplet::Boot(AEECLSID id, SFXAnsiStringPtr license) { // ここにライセンスコードを記述する *license = "heap://"; return (id == AEECLSID_USRAPPLICATION) ? (&USRApplication::Factory) : (null); } // ファクトリ関数 : ユーザー定義アプリケーションクラスのインスタンスを生成する関数 SFCInvokerPtr USRApplication::Factory(Void) { return ::new USRApplication; } // コンストラクタ USRApplication::USRApplication(Void) static_throws { // ここに各種ハンドラの登録を記述する } // デストラクタ USRApplication::~USRApplication(Void) { }
|
Copyright(c) 2002 - 2009 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|