#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>

char	*guiEgbPtr ;			/*	EGB のワークアドレス	*/

void main()
{
	extern int APL_init() ;

	/*	致命的エラーハンドラの登録	*/
	FM_SetVector() ;

	/*	初期化処理	*/
	if (MMI_Open( NULL ) == NOERR)
	{
		/*	初期化に成功すればメインループに入る.	*/
		if (APL_init() == NOERR)
			MMI_ExecSystem() ;
	}

	/*	終了処理	*/
	MMI_Close() ;

	/*	致命的エラーハンドラの復帰	*/
	FM_ResetVector() ;
}

int APL_init()
{
	extern MMIINIT	initDataZABOUT ;
	extern MMIINIT	initDataZALERT ;
	extern MMIINIT	initDataZDESKTOP ;
	extern MMIINIT	initDataZIMSTORE ;
	extern MMIINIT	initDataZMORPHGO ;
	extern MMIINIT	initDataZMOVFILE ;
	extern MMIINIT	initDataZMOVIE ;
	extern MMIINIT	initDataZPOINTS ;

	register int	ret ;

	/*	EGB ワークアドレスの取得.	*/
	guiEgbPtr = MMI_GetEgbPtr() ;

	/*	ハイパ型部品の初期化			*/
	if ((ret = MMI_initHyper()) < 0)
		return ret ;
	/*	ダイアログ型部品の初期化		*/
	if ((ret = MMI_initDialogL40()) < 0)
		return ret ;
	/*	ウインドウ型部品の初期化		*/
	if ((ret = MMI_initWindowL40()) < 0)
		return ret ;
	/*	メッセージ型部品の初期化		*/
	if ((ret = MMI_initMessageL40()) < 0)
		return ret ;
	/*	メニュー型部品の初期化			*/
	if ((ret = MMI_initMenuL40()) < 0)
		return ret ;
	/*	ボタン型部品の初期化			*/
	if ((ret = MMI_initButtonL40()) < 0)
		return ret ;
	/*	ドロウボタン型部品の初期化		*/
	if ((ret = MMI_initDrawButtonL40()) < 0)
		return ret ;
	/*	アイコンボタン型部品の初期化	*/
	if ((ret = MMI_initIconL40()) < 0)
		return ret ;
	/*	トグルアイコン型部品の初期化	*/
	if ((ret = MMI_initToggleIconL40()) < 0)
		return ret ;
	/*	メニューアイテム型部品の初期化	*/
	if ((ret = MMI_initMenuItemL40()) < 0)
		return ret ;
	/*	スクロール型部品の初期化		*/
	if ((ret = MMI_initScrollBarL40()) < 0)
		return ret ;
	/*	数値入力型部品の初期化			*/
	if ((ret = MMI_initNumBoxL40()) < 0)
		return ret ;

	/*	デフォルトビジュアルエフェクトの登録	*/
	MMI_SetUpVisualEffect() ;

	/*	背景データの初期化						*/

	/*	データの登録		*/
	if ((ret = MMI_Init(&initDataZABOUT)) < 0)
		return ret ;

	if ((ret = MMI_Init(&initDataZALERT)) < 0)
		return ret ;

	if ((ret = MMI_Init(&initDataZDESKTOP)) < 0)
		return ret ;

	if ((ret = MMI_Init(&initDataZIMSTORE)) < 0)
		return ret ;

	if ((ret = MMI_Init(&initDataZMORPHGO)) < 0)
		return ret ;

	if ((ret = MMI_Init(&initDataZMOVFILE)) < 0)
		return ret ;

	if ((ret = MMI_Init(&initDataZMOVIE)) < 0)
		return ret ;

	if ((ret = MMI_Init(&initDataZPOINTS)) < 0)
		return ret ;

	/*	背景を表示する							*/
	MMI_SendMessage(MMI_GetBaseObj(), MM_SHOW, 0) ;

	return NOERR ;
}

