#ifndef START_MENU_H
#define START_MENU_H
#include <apps.h>
#include <loader.h>
#include "INIparser.h"
#include <ATI.h>
#include <paint.h>
#include <mem.h>
#include <utilities.h>
#include <charset_conv.h>

#define  ELF_NAME				"Start_Menu"
#define  ELF_NAME_W			   L"Start_Menu"

#define  ELF_VER				"v3.0"
#define  ELF_VER_W			   L"v3.0"
#define  DEBUG_APP_NAME			ELF_NAME
#define  LOG_FILE  				L"file://b/"ELF_NAME".log"

#include <tadbg.h> 	// Отладчик

typedef struct
{
	WCHAR  name[32]; //Имя
	WCHAR  isfolder[4];
	WCHAR  path[128]; //Путь
	WCHAR  icon_name[32]; //Имя иконки
	char   fullname[256];
} LINE;

typedef enum 
{
    PARSE_NAME,
    PARSE_PARAM1,
    PARSE_PARAM2,
	PARSE_PARAM3
	
} PARSE_MODE_T;

/* Эта структура идентифицирует приложение. Передаётся в любой обработчик событий */
typedef struct
{ 
    APPLICATION_T           apt; /* Должно обязательно присутствовать, причём первым */

} APP_START_MENU_T;

/* Состояния приложения */
typedef enum
{
    SM_STATE_ANY, /* ANY-state всегда первым */
	SM_STATE_MAIN,
    SM_STATE_MAX /* Для удобства */
} SM_STATES_T;

typedef struct
{
	WCHAR   ini[256];
	WCHAR   menu[256];
	WCHAR   autorun[256];
	
    
} FILE_T;// файлы

typedef struct
{
	UINT32				Background;
	UINT32				Cursor;
	UINT32				Lines;
	UINT32				Text;
	UINT32				Line1;
	UINT32				Line2;
	UINT32				Line3;
	UINT32				Line4;
} COLOR; // цвета


ldrElf* _start( WCHAR *uri, WCHAR *params );

static UINT32 startApp( EVENT_STACK_T *ev_st,  REG_ID_T reg_id,  UINT32 param2 );
static UINT32 destroyApp( EVENT_STACK_T *ev_st,  APPLICATION_T *app );

static UINT32 MainStateEnter( EVENT_STACK_T *ev_st,  APPLICATION_T *app,  ENTER_STATE_TYPE_T type );
static UINT32 HandleKeypress( EVENT_STACK_T *ev_st,  APPLICATION_T *app );

static UINT32 LoadSkin( WCHAR *file );
static UINT32 DrawMenu( void );

static UINT32 Select( EVENT_STACK_T *ev_st,  APPLICATION_T *app );
static UINT32 Back( EVENT_STACK_T *ev_st,  APPLICATION_T *app );

static UINT32 ReadMenu(char * begin, char * end);
static UINT32 FindPattern(UINT32 start_offset, char *pattern);
#endif