![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0 |
SophiaFramework AppWizard が生成したコードを元に、アプリの起動から終了までを解説します。
SophiaFramework のアプリは SFCApplet::Boot() 関数と、Factory() 関数を実装する必要があります。
//
// HelloWorld.cpp
//
#include "HelloWorld.hpp"
// ブート ローダ
SFCApplet::FactorySPP SFCApplet::Boot(AEECLSID id, SFXAnsiStringPtr license)
{
*license = "heap://"
"TIXDRQXNU5WHU8Y3Z9WOHWQR6Z3VPSDHDV5CR1S4XASPWLUHWAS7Z5Z2TGS3XMSAT3UPUQTLTARCYPSF"
"UEJZ6ROSJWGUQSEYKR6V2U4VESMTQLHKZ6X7Y2VKXHWIX3XBU0Z7VHWHXIZBSGT5SPU3XLX0Z1Y4R3TC"
"U6WGT9WHWIVNYHYCUCR9T3SMTEWPRNVAX1Y4VPW2YCY9YQV5R7Z9UIVHT6SDUPU2SIW6VCRCWBR2S4WQ"
"UPYFWCYGT4VIT1WHXGYPTQSFYPWNV3ULRNWFW7RBRFVKUKS2YQSQYHW1TPUPXBZ6UEY2WOYKR7S3TAU4"
"TQS6UHVFVEVLU3R5SDSKW7RPTNTPVQU2T4R8Z4VLUGEW3U98TLDR8/";
return (id == AEECLSID_HELLOWORLD) ? (&HelloWorld::Factory) : (null);
}
// ファクトリ関数
SFCInvokerPtr HelloWorld::Factory(Void)
{
return ::new HelloWorld;
}
GUI フレームワークを使わないので、HelloWorld クラスは SFCApplication クラスを継承します。
//
// HelloWorld.hpp
//
#ifndef __HELLOWORLD_HPP
#define __HELLOWORLD_HPP
#define TARGET_BUILD_DEBUG
#include <SophiaFramework.hpp>
#include "HelloWorld.bid"
//
// HelloWorld アプリケーション クラス
//
SFMTYPEDEFCLASS(HelloWorld)
class HelloWorld : public SFCApplication {
SFMSEALCOPY(HelloWorld)
public:
static SFCInvokerPtr Factory(Void);
private:
HelloWorld(Void);
virtual ~HelloWorld(Void);
virtual Bool Invoke(SFXEventConstRef event);
Bool OnKey(UInt16 key);
};
#endif // __HELLOWORLD_HPP //
イベントハンドラは、アプリ開始や、キー押下などのイベントが発生した時に然るべき処理をする関数です。アプリウィザードによって、キーハンドラが設定されています。
// イベント ハンドラ
Bool HelloWorld::Invoke(SFXEventConstRef event)
{
Bool result(false);
switch (event.GetType()) {
case SFEVT_KEY: // キーが押されたことを表すイベント
result = OnKey(event.GetP16());
break;
}
if (!result) {
result = SFCApplication::Invoke(event);
}
return result;
}
キーハンドラにはキー押下時の処理を記述します。
// キー ハンドラ
Bool HelloWorld::OnKey(UInt16 key)
{
// ここにキーが押されたときの処理を記述します。
switch (key) {
case AVK_SELECT: // セレクトキーが押されたら
Terminate(); // アプリを終了する
return true;
}
return false;
}
|
Copyright (C) 2002 - 2009 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|