第1例また、tarea1のフォアグラウンドの色を color.blue に設定します。 17...
TRANSCRIPT
1
第1例第1例第1例第1例 このドキュメントの目的は、EmPresent を用いてアプリケーションを作成するための手順をステップごと
に説明することです。
ウィジェットを 2 つもつシンプルなアプリケーションから始めます。これら2つのウィジェットにおいては、
基本的なプロパティをいくつか変更し、その他はデフォルトのままにしておきます。後で、次の段階で、
さらにいくつかウィジェットおよびウィンドウのプロパティを変更します。
本ドキュメントで述べる事柄は以下のとおりです。
- プッシュボタンとテキスト領域の付いた簡単なアプリケーション
- アプリケーションを NORTi でコンパイルし、EmPresent ライブラリにリンクし、バイナリデータをター
ゲット・プラットフォームにダウンロードする
- アプリケーションを修正し、再生成し、再生成したソースファイルのノーティフィケーションを処理す
る
- フォント選択 - フォントに生成する範囲を選択する
- シミュレータ上で同じアプリケーションを稼動する
- メイン・アプリケーションに EmPresent GUIをライブラリとして追加する
アプリケーションの生成についての詳細説明及びヘルプは、以下を参照してください。
EmPresent_User_Manual_J.pdf $(EMPRESENT_PATH)¥Docs
2
EmPresent が、付属の CD からすでにインストール済みで、コンピュータを再起動して環境変数が
設定されていることを前提とします。また、NORTi Version4 及び少なくとも SHC6、SHC7、または
SHC8のいずれかがマシンにインストールされており、それに EmPresent 2.00のライブラリが提供
されているものとします。
以下のステップに従って EmPresentを使用して新しい例を構築してください。
1.11.11.11.1 VE VE VE VE を起動するを起動するを起動するを起動する
ビジュアル・エディタ(VE)を、スタートスタートスタートスタート->プログラムプログラムプログラムプログラム->EmPresentEmPresentEmPresentEmPresent->veveveve から実行します。
1.2 1.2 1.2 1.2 リソース・ブラウザリソース・ブラウザリソース・ブラウザリソース・ブラウザ
リソース・ブラウザ画面が開きます。
3
1.3 1.3 1.3 1.3 新規アプリケーション新規アプリケーション新規アプリケーション新規アプリケーション
ファイルファイルファイルファイル->アプリケーション新規作成アプリケーション新規作成アプリケーション新規作成アプリケーション新規作成 で、新しいアプリケーションの作成を開始します。
1.4 app11.4 app11.4 app11.4 app1
新規のアプリケーション app1 を作ります。
4
1.5 1.5 1.5 1.5 アプリケーションのディレクトリを作成するアプリケーションのディレクトリを作成するアプリケーションのディレクトリを作成するアプリケーションのディレクトリを作成する
ディレクトリがまだ存在しない場合は、新規ディレクトリ app1 を作成します。
1.6 1.6 1.6 1.6 リソース・ブラウザでのアプリケーションのレイアウトリソース・ブラウザでのアプリケーションのレイアウトリソース・ブラウザでのアプリケーションのレイアウトリソース・ブラウザでのアプリケーションのレイアウト
リソース・ブラウザには、以下の構造が作成されます。
1.7 1.7 1.7 1.7 ウィンドウ・エディタウィンドウ・エディタウィンドウ・エディタウィンドウ・エディタ
ここで「ウィンドウ・エディタ」の画面が開きます。
5
1.8 1.8 1.8 1.8 ウィジェット・セットウィジェット・セットウィジェット・セットウィジェット・セット
ウィジェット・リストから、「プッシュボタン」を選んで、画面上をマウスでドラッグしてボタンを配置し
ます。
6
1.9 1.9 1.9 1.9 最初のウィジェットを選択して配置する最初のウィジェットを選択して配置する最初のウィジェットを選択して配置する最初のウィジェットを選択して配置する
このボタンの座標を設定します。
7
1.10 1.10 1.10 1.10 プッシュボタンのラベルを設定するプッシュボタンのラベルを設定するプッシュボタンのラベルを設定するプッシュボタンのラベルを設定する
プッシュボタンをダブルクリックして、プロパティ画面を開けて、ウィジェットのラベルを変更します。
1.11 TArea1.11 TArea1.11 TArea1.11 TArea(テキスト領域)を画面に配置する。(テキスト領域)を画面に配置する。(テキスト領域)を画面に配置する。(テキスト領域)を画面に配置する。
同様に、テキスト領域も画面に配置します。
TAreaの座標を設定します。
1.12 TArea1.12 TArea1.12 TArea1.12 TAreaのラベルを設定するのラベルを設定するのラベルを設定するのラベルを設定する
TAreaをダブルクリックして、プロパティ画面を開き、ウィジェットのラベルを設定します。
8
ここで、ウィンドウ・エディタは以下のように表示されています。
9
1.13 GUI1.13 GUI1.13 GUI1.13 GUI をテストするをテストするをテストするをテストする
さて、GUIをテストできますので、「テスト」ボタンを押してください。
テスト画面が表れ、現在の GUIを表示します。.
リソース・ブラウザは以下のようになります。
1.14 1.14 1.14 1.14 アプリケーションを保存するアプリケーションを保存するアプリケーションを保存するアプリケーションを保存する
ファイルファイルファイルファイル->保存保存保存保存 のメニュー・オプションを選択します。
10
設定を保存するダイアログ・ボックスが表れます。
1.15 1.15 1.15 1.15 画面にコードを生成する画面にコードを生成する画面にコードを生成する画面にコードを生成する
ターゲット選択ボックス(Target)から「Target」を選択します。
そしてアクション選択ボックス(Action)から「生成」を選択します。
11
1.16 1.16 1.16 1.16 フォント範囲を選択するフォント範囲を選択するフォント範囲を選択するフォント範囲を選択する
デフォルトでは、この時点までにGUIに使用される文字だけが、フォント・ファイルに生成されます。
フォントの文字範囲も、この画面から生成することができます。これは、テキスト編集フィールドが
あったり、ユーザがランタイムでテストを動的に設定したい場合のアプリケーションに便利です。
12
1.171.171.171.17 ターゲットに特化したコードを生成ターゲットに特化したコードを生成ターゲットに特化したコードを生成ターゲットに特化したコードを生成・保存する・保存する・保存する・保存する
画面の生成がうまく行くと、以下の画面が表れます。
13
1.18 ビジュアル・エディタで以下のファイルが生成ビジュアル・エディタで以下のファイルが生成ビジュアル・エディタで以下のファイルが生成ビジュアル・エディタで以下のファイルが生成
アプリケーション・ファイルアプリケーション・ファイルアプリケーション・ファイルアプリケーション・ファイル app1.c、app1.h
GUI GUI GUI GUI ファイルファイルファイルファイル app1.rc、app1.dat
フォント・ファイルフォント・ファイルフォント・ファイルフォント・ファイル MSGOTHIC12.c、MSMincho13
EmPresentEmPresentEmPresentEmPresent初期化ファイル初期化ファイル初期化ファイル初期化ファイル Initemp.c
メイクファイルメイクファイルメイクファイルメイクファイル makefile.pc (デスクトップ)
Demolib.mak Demoexe.mak
アプリケーションをテストする準備ができました。
SE27CPF 向け NORTi のサンプル BSP を用いて、アプリケーションの生成手順についてご案内し
ましょう。
タッチ・パネル、キーボード、およびファイル・システムのインターフェースは、すでに NOGUI 及び
SE27CPF フォルダで定義されています。
ユーザは、このサンプル・プログラムに基づいてデバイスをマップすることができます。
initemp.c ファイルは、NORTi用 EmPresentの初期化ファイルです。
EmPresentのタスク・スタックのサイズ、優先度、メモリ・プールのサイズを設定します。
const T_CTSK ctsk_emp = { TA_HLNG, NULL, EmpTask, 6, 64*1024, NULL, (B *)"EmpTask" }; const T_CMPL cmpl = {TA_TFIFO, 0xF000, NULL, (B *)""}; ここで、NORTi¥SMP¥SH¥SE27CPF¥gui7727.c ファイルを開きます。
14
Main Task()で
TASK MainTask(void)
{
ER ercd;
int n;
…………………..
…………………..
…………………..
…………………..
…………………..
/* Initialize GUI-EmPresent*/
ercd = emp_ini() ;
if (ercd != E_OK)
goto END;
}
EmPresent GUIは、このようにしてメイン・プログラムから呼び起こされます。
1.20 1.20 1.20 1.20 コンパイルの環境を設定するコンパイルの環境を設定するコンパイルの環境を設定するコンパイルの環境を設定する
アプリケーション・ファイル(app1.c、initemp.c msgothic12.c、msgothic13.c )を変更して、メイン・ア
プリケーションの作業領域のメイクファイルに追加します。
INCLUDE と LIB PATHを EMPRESENTのために設定する必要があります。
EmPresentのヘッダファイルは以下に保存されます。
$(EMPRESENT_PATH)¥C¥INC
EmPresent LIBSは以下に保存されます。
$(EMPRESENT_PATH)¥C¥LIB¥$(cpu-family)¥$(comp)
EMPRESENT_PATHは、EmPresentがインストールされているパスです。
$(cpu-family) は、SH、ARM といった CPUファミリです。 $(comp) は、コンパイラです。
Emp_main()Main.c Initemp.c App.c
Emp_ini()
15
メインの作業領域に含む必要がある EmPresent ライブラリは以下です。
Awin 、al 及び gl
例: SH3 CPU、SHC7 コンパイラ、LITTLE_ENDIANフォーマットの条件でアプリケーションをコンパ
イルする場合は、以下の 3つのライブラリを含む必要があります。
Awinsh3l.libAwinsh3l.libAwinsh3l.libAwinsh3l.lib Alsh3l.libAlsh3l.libAlsh3l.libAlsh3l.lib Glsh3l.lGlsh3l.lGlsh3l.lGlsh3l.libibibib さて、アプリケーションのコンパイルの準備ができました。
この基本的アプリケーションをまずターゲットにコンパイルしてダウンロードしてください。これは、
さらにシーケンスを理解するのに役立ちます。
1.21 1.21 1.21 1.21 アプリケーションの修正とノーティフィケーションの処理アプリケーションの修正とノーティフィケーションの処理アプリケーションの修正とノーティフィケーションの処理アプリケーションの修正とノーティフィケーションの処理
PBut1 をダブルクリックします。
グラフィックス ボタンを選択します。
PBut1 の座標を 10、90、55、40(x、y、幅、高さ)に変更します。
バックグラウンドの色のボタンを選択し、バックグラウンドの色を Color.Greenに設定します。
16
ウィンドウ・エディタは以下のように表示されます。
PBut1 の隣に新しいボタンを追加します。
名前は、PBut_Cancel とします。
座標を 90、90、55、40に設定します。
ラベルを Cancel とします。
バックグラウンドの色を Color.Yellowに設定します。
また、Tarea1 のフォアグラウンドの色を Color.Blueに設定します。
17
するとウィンドウ・エディタは以下のようになります。
修正を確認して、OKOKOKOKボタンを押します。
18
1.22 1.22 1.22 1.22 コードを保存して再生成コードを保存して再生成コードを保存して再生成コードを保存して再生成するするするする
アプリケーションを保存する際、Action選択ボックスから再生成を選択します。
1.23 1.23 1.23 1.23 ノーティフィケーションを処理するノーティフィケーションを処理するノーティフィケーションを処理するノーティフィケーションを処理する
生成した app1.c ファイルには、各プッシュボタンに生成されるデフォルトのノーティフィケーション
が1つあります。 TBUT_NFYHIT
PBut1 のノーティフィケーション・ハンドラは、S_Win1_HitPBut1 です。
PBut_Cancelのノーティフィケーション・ハンドラは、S_Win1_HitPBut_Cancelです。 static void C_NEAR S_Win1_Construct L1(App1Win1Ptr, win)
{
………………….
………………….
………………….
WIN_SetWgtNfyHandler((WinPtr)win, (WgtPtr)win->PBut1PBut1PBut1PBut1, TBUT_NFYHIT,
(WinWgtNfyHandlerProc)S_Win1_HitPBut1S_Win1_HitPBut1S_Win1_HitPBut1S_Win1_HitPBut1);
WIN_SetWgtNfyHandler((WinPtr)win, (WgtPtr)win->PBut_CancelPBut_CancelPBut_CancelPBut_Cancel, TBUT_NFYHIT,
(WinWgtNfyHandlerProc)S_Win1_HitPBut_CancelS_Win1_HitPBut_CancelS_Win1_HitPBut_CancelS_Win1_HitPBut_Cancel);
}
ユーザは、コンストラクト関数にもデフォルト以外にノーティフィケーションを追加することができま
す。
では、これらのハンドラに小さなロジックを追加しましょう。
これらの 2つの関数を以下のように変更します。
19
/* (( CodeGen: WgtNfyHandler HitPBut1 */
static void C_FAR S_Win1_HitPBut1 L1(App1Win1Ptr, win)
{
TAREA_SetLabel( win->TArea1 , "おはよございますおはよございますおはよございますおはよございます");
/* -- 開発者のコードをここに挿入... */
}
/* )) CodeGen: WgtNfyHandler HitPBut1 */
/* (( CodeGen: WgtNfyHandler HitPBut_Cancel */
static void C_FAR S_Win1_HitPBut_Cancel L1(App1Win1Ptr, win)
{
TAREA_SetLabel( win->TArea1 , "");
/* -- 開発者のコードをここに挿入... */
}
/* )) CodeGen: WgtNfyHandler HitPBut_Cancel */
これは、TArea1 ラベルの設定とリセットを交互に行います。
EMPRESENT_PATH\C\INC に置いた EmPresent のパブリック・ヘッダファイル(*pub.h)からさらに API
を探索することが可能です。
例: テキスト領域ウィジェットは、tareapub.h
プッシュボタン・ウィジェットは、tbutpub.h
ウィンドウは、winpub.h
ウィジェットは、wgtpub.h
注意:注意:注意:注意: デフォルトでは、、、、.dat ファイルに使われる文字のみがフォント・ファイルに生成されます。よ
って、ランタイムで表示する(テキストの動的作成)必要のある文字が他にもある場合は、以下の
いずれかを行う必要があります。
a. 該当ウィジェットに設定されたフォント用に生成される文字の範囲を選択します。
b. もしアプリケーションに使用される文字、ことば、文章がすでに分かっていて固定されていれ
ば、フォントにこれらの文字を生成する賢い代替方法は、まずダミーTArea ウィジェットを選択
して、文字を全てそこに設定し、コードを保存することです。こうすると、フォント・ファイルに文
字が生成されます。しかし、ダミー・ウィジェットは表示したくありません。PANEL_RemoveWgtPANEL_RemoveWgtPANEL_RemoveWgtPANEL_RemoveWgt()()()()
APIを使ってウィジェットを終了させましょう。
20
2.1 2.1 2.1 2.1 シミュレータ上でアプリケーションを実行するシミュレータ上でアプリケーションを実行するシミュレータ上でアプリケーションを実行するシミュレータ上でアプリケーションを実行する
Microsoft Visual Editor(VC++ 6.0)がデスクトップにインストールされていれば、同じアプリケーショ
ンをデスクトップでもテストして稼動することができます。 このためには、Target選択ボックスからSimulatorSimulatorSimulatorSimulatorオプションを選択して、コードを生成(或いは、前
の部分で追加したロジックを保存する必要があれば、再生成)する必要があります。
コマンド・プロンプトからメイクファイルを
! nmake /f makefile.pc nmake /f makefile.pc nmake /f makefile.pc nmake /f makefile.pc としてコンパイルし、app1.exeを生成します。
3.1 EmPresent GUIをメイン・アプリケーションのライブラリとして追加するをメイン・アプリケーションのライブラリとして追加するをメイン・アプリケーションのライブラリとして追加するをメイン・アプリケーションのライブラリとして追加する 各ソースファイルをメイン・アプリケーションに追加する代わりに、EmPresent GUI をライブラリとし
て追加することも可能です。
このためには、アプリケーション app1は、app1lib.makapp1lib.makapp1lib.makapp1lib.makメイクファイルでコンパイルする必要がありま
す。
ライブラリの構築に必要なコマンドライン引数は以下です。
CPU
COMPILER
ENDIAN
可能な組み合わせは、EMPRESENT_PATH\\\\VisualEditor¥mkinc¥c¥pltfmdef.inc ファイル
に定義されています。
例: 同じ例を同じ環境(SH3、SHC7、Little)でコンパイルするには、
21
> nmake > nmake > nmake > nmake ––––f app1lib.mak CPU=sh3 COMPILER=shc7 ENDIANf app1lib.mak CPU=sh3 COMPILER=shc7 ENDIANf app1lib.mak CPU=sh3 COMPILER=shc7 ENDIANf app1lib.mak CPU=sh3 COMPILER=shc7 ENDIAN=l =l =l =l
となり、EMPRESENT_PATHEMPRESENT_PATHEMPRESENT_PATHEMPRESENT_PATH及び TGTOS_PATHTGTOS_PATHTGTOS_PATHTGTOS_PATH環境変数をこのために定義する必要があります。