//
// Square.c
//
#include "AEEModGen.h" // モジュール インターフェイスの宣言
#include "AEEAppGen.h" // アプレット インターフェイスの宣言
#include "AEEShell.h" // シェル インターフェイスの宣言
#include "Square.bid" // SquareアプレットのクラスIDをインクルード
// 前方宣言
static boolean Square_HandleEvent(IApplet * pi, AEEEvent eCode,
uint16 wParam, uint32 dwParam);
static void Square_OnAppStart(AEEApplet* app);
//
// BREWアプレットを作成する関数。
//
int AEEClsCreateInstance(
AEECLSID ClsId, // 作成するアプレットのクラスID
IShell * pIShell, // シェル オブジェクト
IModule * po, // モジュール オブジェクト
void ** ppObj) // 作成したアプレットを返す
{
*ppObj = NULL;
if (ClsId == AEECLSID_SQUARE) {
if (AEEApplet_New(sizeof(AEEApplet), ClsId, pIShell, po, (IApplet**)ppObj,
(AEEHANDLER)Square_HandleEvent,NULL) == TRUE) {
return (AEE_SUCCESS);
}
}
return (EFAILED);
}
//
// Square アプレットのイベント ハンドラ
//
static boolean Square_HandleEvent(IApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
switch (eCode)
{
case EVT_APP_START:
Square_OnAppStart((AEEApplet*) pi);
return TRUE;
case EVT_APP_STOP:
return TRUE;
default:
break;
}
return FALSE;
}
//
// アプリケーション開始時に呼び出される。
//
static void Square_OnAppStart(AEEApplet* app)
{
IShell* shell;
IDisplay* disp;
AEEDeviceInfo devinfo;
AEERect whole_rect;
AEERect red_rect;
RGBVAL light_blue = MAKE_RGB(200, 200, 255);
RGBVAL red = MAKE_RGB(255, 0, 0);
// IShell オブジェクトを取得する。
shell = app->m_pIShell;
// IDisplay オブジェクトを取得する。
disp = app->m_pIDisplay;
// 携帯電話の画面の大きさを取得する。
ISHELL_GetDeviceInfo(shell, &devinfo);
// 画面の大きさの長方形を作成
whole_rect.x = 0; // 左上のX座標
whole_rect.y = 0; // 左上のY座標
whole_rect.dx = devinfo.cxScreen; // 幅
whole_rect.dy = devinfo.cyScreen; // 高さ
// 画面全体を淡い青で塗りつぶす
IDISPLAY_FillRect(disp, &whole_rect, light_blue);
// 赤い四角形の枠を描画する
red_rect.x = 20;
red_rect.y = 20;
red_rect.dx = 40;
red_rect.dy = 30;
IDISPLAY_DrawRect(disp, &red_rect, red, 0, IDF_RECT_FRAME);
// 画面ビットマップへの描画を実際に表示する
IDISPLAY_Update(disp);
}
|