📄 menu.c
字号:
}
//////////////////////////////////////////////////////////////////////////
//显示输入用户名屏幕
//////////////////////////////////////////////////////////////////////////
void DisplayInputNameUI(CJunQi* pApp)
{
//Add code to here...
// IImage *pMenu;
// AEEImageInfo rImageInfo;
IDISPLAY_ClearScreen( pApp->a.m_pIDisplay );
/*
pMenu = ISHELL_LoadResImage( pApp->a.m_pIShell, TWOFLAG_RES_FILE, IDB_HEAD );
if( pMenu )
{
// 获取图像信息
IIMAGE_GetInfo( pMenu, &rImageInfo );
// 在屏幕中心显示图像
IIMAGE_Draw( pMenu, ( pApp->cxScreen - rImageInfo.cx ) / 2 , ( pApp->cyScreen - rImageInfo.cy ) / 2 );
IDISPLAY_Update( pApp->a.m_pIDisplay );
IIMAGE_Release( pMenu );
}
*/
}
//////////////////////////////////////////////////////////////////////////
//输入用户名事件
//////////////////////////////////////////////////////////////////////////
boolean InputNameEvent(CJunQi *pApp,AEEEvent eCode, uint16 wParam,uint32 dwParam)
{
//如果是选择键,则把文本控件中的内容
if (wParam == AVK_SELECT)
{
AECHAR temp[10];
char temp_char[20];
//把文本框中的文本复制temp数组中
ITEXTCTL_GetText(pApp->pText, temp, 10*sizeof(AECHAR));
WSTRTOSTR(temp,temp_char,sizeof(temp));
STRCAT(pApp->m_PacketChar,temp_char);
STRCAT(pApp->m_PacketChar,"#");
FinishInputName(pApp);
InitSelectHeadMenu(pApp);
}else if (ITEXTCTL_HandleEvent(pApp->pText,eCode,wParam,dwParam))//交给ITEXT控件的handleevent去做,如果做了处理,就返回true
return TRUE;
return FALSE;
}
/************************************************************************/
/************************************************************************/
/************************************************************************/
/************************************************************************/
//////////////////////////////////////////////////////////////////////////
//初始化选择头像菜单
//////////////////////////////////////////////////////////////////////////
void InitSelectHeadMenu(CJunQi* pApp)
{
ClrMenuRowCount(pApp);
DisplaySelectHeadMenu(pApp);
DrawCursor(pApp,OFFSET_X_HEAD, OFFSET_Y_HEAD, OFFSET_WIDTH_HEAD, OFFSET_HEIGHT_HEAD,IDB_HEADCURSOR,pApp->nMenuRow,0);
pApp->m_eAppState = APP_STATE_SELECTHEAD;
}
//////////////////////////////////////////////////////////////////////////
//显示选择头像屏幕
//////////////////////////////////////////////////////////////////////////
void DisplaySelectHeadMenu(CJunQi* pApp)
{
//Add code to here...
IImage *pMenu;
AEEImageInfo rImageInfo;
IDISPLAY_ClearScreen( pApp->a.m_pIDisplay );
pMenu = ISHELL_LoadResImage( pApp->a.m_pIShell, TWOFLAG_RES_FILE, IDB_HEAD );
if( pMenu )
{
// 获取图像信息
IIMAGE_GetInfo( pMenu, &rImageInfo );
// 在屏幕中心显示图像
IIMAGE_Draw( pMenu, ( pApp->cxScreen - rImageInfo.cx ) / 2 , ( pApp->cyScreen - rImageInfo.cy ) / 2 );
IDISPLAY_Update( pApp->a.m_pIDisplay );
IIMAGE_Release( pMenu );
}
}
//////////////////////////////////////////////////////////////////////////
//选择头像事件
//////////////////////////////////////////////////////////////////////////
boolean MenuSelectHeadEvent(CJunQi *pApp,AEEEvent eCode, uint16 wParam,uint32 dwParam)
{
switch(wParam)
{
case AVK_UP:
pApp->nMenuRow--;
if(pApp->nMenuRow < 0)
pApp->nMenuRow = 1;
DisplaySelectHeadMenu(pApp);
DrawCursor(pApp, OFFSET_X_HEAD, OFFSET_Y_HEAD, OFFSET_WIDTH_HEAD, OFFSET_HEIGHT_HEAD, IDB_HEADCURSOR, pApp->nMenuRow, pApp->nMenuCol);
break;
case AVK_DOWN:
pApp->nMenuRow++;
if(pApp->nMenuRow > 1)
pApp->nMenuRow = 0;
DisplaySelectHeadMenu(pApp);
DrawCursor(pApp, OFFSET_X_HEAD, OFFSET_Y_HEAD, OFFSET_WIDTH_HEAD, OFFSET_HEIGHT_HEAD, IDB_HEADCURSOR, pApp->nMenuRow, pApp->nMenuCol);
break;
case AVK_LEFT:
pApp->nMenuCol--;
if(pApp->nMenuCol < 0)
pApp->nMenuCol = 3;
DisplaySelectHeadMenu(pApp);
DrawCursor(pApp, OFFSET_X_HEAD, OFFSET_Y_HEAD, OFFSET_WIDTH_HEAD, OFFSET_HEIGHT_HEAD, IDB_HEADCURSOR, pApp->nMenuRow, pApp->nMenuCol);
break;
case AVK_RIGHT:
pApp->nMenuCol++;
if(pApp->nMenuCol > 3)
pApp->nMenuCol = 0;
DisplaySelectHeadMenu(pApp);
DrawCursor(pApp, OFFSET_X_HEAD, OFFSET_Y_HEAD, OFFSET_WIDTH_HEAD, OFFSET_HEIGHT_HEAD, IDB_HEADCURSOR, pApp->nMenuRow, pApp->nMenuCol);
break;
case AVK_CLR:
InitLoginMenu(pApp); //关闭程序
break;
case AVK_SELECT:
{
int num;
char ch[4];
num = pApp->nMenuRow*4+pApp->nMenuCol;
SPRINTF(ch,"%i",num);
STRCAT(ch,"#");
STRCAT(pApp->m_PacketChar,ch);
num=STRLEN(pApp->m_PacketChar);
pApp->m_PacketChar[num++]='\n';
if(!SendCommand(pApp,pApp->m_PacketChar))
return FALSE;
if(ReceivedCommand(pApp,pApp->m_PacketChar,MAXLEN+1)==-1)
return FALSE;
InitMenuNetware(pApp);
break;
}
}
return TRUE;
}
/************************************************************************/
/************************************************************************/
/************************************************************************/
/************************************************************************/
//////////////////////////////////////////////////////////////////////////
//初始化联网游戏菜单
//////////////////////////////////////////////////////////////////////////
void InitMenuNetware( CJunQi* pApp )
{
ClrMenuRowCount(pApp);
DisplayMenuNetware(pApp);
DrawCursor(pApp, OFFSET_X1_CURSOR, OFFSET_Y1_CURSOR, 0, OFFSET_HEIGHT, IDB_MAINMENUCURSOR, pApp->nMenuRow, 0);
pApp->m_eAppState = APP_STATE_NETWARE_MODE; //改变状态至联网游戏状态
}
//////////////////////////////////////////////////////////////////////////
//显示联网游戏菜单
//////////////////////////////////////////////////////////////////////////
void DisplayMenuNetware(CJunQi* pApp)
{
//Add code to here...
IImage *pMenu;
AEEImageInfo rImageInfo;
IDISPLAY_ClearScreen( pApp->a.m_pIDisplay );
pMenu = ISHELL_LoadResImage( pApp->a.m_pIShell, TWOFLAG_RES_FILE, IDB_MENU_NETWARE );
if( pMenu )
{
// 获取图像信息
IIMAGE_GetInfo( pMenu, &rImageInfo );
// 在屏幕中心显示图像
IIMAGE_Draw( pMenu, ( pApp->cxScreen - rImageInfo.cx ) / 2 , ( pApp->cyScreen - rImageInfo.cy ) / 2 );
IDISPLAY_Update( pApp->a.m_pIDisplay );
IIMAGE_Release( pMenu );
}
}
//////////////////////////////////////////////////////////////////////////
//联网游戏菜单事件
//////////////////////////////////////////////////////////////////////////
boolean MenuNetwareEvent(CJunQi *pApp,AEEEvent eCode, uint16 wParam,uint32 dwParam)
{
IDISPLAY_ClearScreen( pApp->a.m_pIDisplay );
switch(wParam)
{
case AVK_UP:
pApp->nMenuRow--;
if(pApp->nMenuRow < 0)
pApp->nMenuRow = 2;
DisplayMenuNetware(pApp);
DrawCursor(pApp, OFFSET_X1_CURSOR, OFFSET_Y1_CURSOR, 0, OFFSET_HEIGHT, IDB_MAINMENUCURSOR, pApp->nMenuRow, 0);
break;
case AVK_DOWN:
pApp->nMenuRow++;
if(pApp->nMenuRow >= 3)
pApp->nMenuRow = 0;
DisplayMenuNetware(pApp);
DrawCursor(pApp, OFFSET_X1_CURSOR, OFFSET_Y1_CURSOR, 0, OFFSET_HEIGHT, IDB_MAINMENUCURSOR, pApp->nMenuRow, 0);
break;
case AVK_CLR:
InitMainMenu(pApp); //返回到主菜单
break;
case AVK_SELECT:
switch(pApp->nMenuRow)
{
case 0:
//add code to here ......
InitMenuLab(pApp); //改变状态至游戏大厅
break;
case 1:
//add code to here ......
// pApp->m_eAppState = APP_STATE_RECORD; //改变状态至排行榜
break;
case 2:
//add code to here ......
InitMainMenu(pApp); //返回到主菜单
break;
default:
break;
}
default:
break;
}
return TRUE;
}
/************************************************************************/
/************************************************************************/
/************************************************************************/
/************************************************************************/
//////////////////////////////////////////////////////////////////////////
//初始化大厅菜单
//////////////////////////////////////////////////////////////////////////
void InitMenuLab( CJunQi* pApp )
{
ClrMenuRowCount(pApp);
DisplayMenuLab(pApp);
DrawCursor(pApp,OFFSET_X2_CURSOR,OFFSET_Y2_CURSOR,OFFSET_WIDTH_ROOM,OFFSET_HEIGHT_ROOM,IDB_LABCURSOR,pApp->nMenuRow,pApp->nMenuCol);
pApp->m_eAppState = APP_STATE_LAB; //改变状态至联网游戏状态
}
//////////////////////////////////////////////////////////////////////////
//显示大厅菜单
//////////////////////////////////////////////////////////////////////////
void DisplayMenuLab(CJunQi* pApp)
{
//Add code to here...
IImage *pMenu;
AEEImageInfo rImageInfo;
IDISPLAY_ClearScreen( pApp->a.m_pIDisplay );
pMenu = ISHELL_LoadResImage( pApp->a.m_pIShell, TWOFLAG_RES_FILE, IDB_MENU_LAB );
if( pMenu )
{
// 获取图像信息
IIMAGE_GetInfo( pMenu, &rImageInfo );
// 在屏幕中心显示图像
IIMAGE_Draw( pMenu, ( pApp->cxScreen - rImageInfo.cx ) / 2 , ( pApp->cyScreen - rImageInfo.cy ) / 2 );
IDISPLAY_Update( pApp->a.m_pIDisplay );
IIMAGE_Release( pMenu );
}
}
//////////////////////////////////////////////////////////////////////////
//大厅菜单事件
//////////////////////////////////////////////////////////////////////////
boolean MenuLabEvent(CJunQi *pApp,AEEEvent eCode, uint16 wParam,uint32 dwParam)
{
IDISPLAY_ClearScreen( pApp->a.m_pIDisplay );
switch(wParam)
{
case AVK_UP:
pApp->nMenuRow--;
if(pApp->nMenuRow < 0)
pApp->nMenuRow = 0;
DisplayMenuLab(pApp);
DrawCursor(pApp, OFFSET_X2_CURSOR, OFFSET_Y2_CURSOR, OFFSET_WIDTH_ROOM, OFFSET_HEIGHT_ROOM, IDB_LABCURSOR, pApp->nMenuRow, pApp->nMenuCol);
break;
case AVK_DOWN:
pApp->nMenuRow++;
if(pApp->nMenuRow > 3)
pApp->nMenuRow = 3;
DisplayMenuLab(pApp);
DrawCursor(pApp, OFFSET_X2_CURSOR, OFFSET_Y2_CURSOR, OFFSET_WIDTH_ROOM, OFFSET_HEIGHT_ROOM, IDB_LABCURSOR, pApp->nMenuRow, pApp->nMenuCol);
break;
case AVK_LEFT:
pApp->nMenuCol--;
if(pApp->nMenuCol < 0)
pApp->nMenuCol = 0;
DisplayMenuLab(pApp);
DrawCursor(pApp, OFFSET_X2_CURSOR, OFFSET_Y2_CURSOR, OFFSET_WIDTH_ROOM, OFFSET_HEIGHT_ROOM, IDB_LABCURSOR, pApp->nMenuRow, pApp->nMenuCol);
break;
case AVK_RIGHT:
pApp->nMenuCol++;
if(pApp->nMenuCol > 1)
pApp->nMenuCol = 1;
DisplayMenuLab(pApp);
DrawCursor(pApp, OFFSET_X2_CURSOR, OFFSET_Y2_CURSOR, OFFSET_WIDTH_ROOM, OFFSET_HEIGHT_ROOM, IDB_LABCURSOR, pApp->nMenuRow, pApp->nMenuCol);
break;
case AVK_CLR:
InitMenuNetware(pApp); //返回到大厅菜单
break;
case AVK_SELECT:
switch(pApp->nMenuRow)
{
case 0:
//add code to here ......
InitMenuTable(pApp); //改变状态至棋桌状态
break;
default:
break;
}
default:
break;
}
return TRUE;
}
/************************************************************************/
/************************************************************************/
/************************************************************************/
/************************************************************************/
//////////////////////////////////////////////////////////////////////////
//初始化棋桌菜单
//////////////////////////////////////////////////////////////////////////
void InitMenuTable( CJunQi* pApp )
{
ClrMenuRowCount(pApp);
DisplayMenuTable(pApp);
DrawCursor(pApp,OFFSET_X3_CURSOR,OFFSET_Y3_CURSOR,OFFSET_X_TABLE,OFFSET_Y_TABLE,IDB_TABLE_CURSOR,pApp->nMenuRow,pApp->nMenuCol);
pApp->m_eAppState = APP_STATE_TABLE; //改变状态至联网游戏状态
}
//////////////////////////////////////////////////////////////////////////
//显示棋桌菜单
//////////////////////////////////////////////////////////////////////////
void DisplayMenuTable(CJunQi* pApp)
{
//Add code to here...
IImage *pMenu;
AEEImageInfo rImageInfo;
AECHAR psTextBuf[ 5 ];
AECHAR psFormat[] = { '%','i','\0' };
int i;
IDISPLAY_ClearScreen( pApp->a.m_pIDisplay );
pMenu = ISHELL_LoadResImage( pApp->a.m_pIShell, TWOFLAG_RES_FILE, IDB_MENUTABLE );
// 设置图片参数,透明 Make the image transparent
IIMAGE_SetParm( pMenu, IPARM_ROP, AEE_RO_TRANSPARENT, 0 );
if( pMenu )
{
// 获取图像信息
IIMAGE_GetInfo( pMenu, &rImageInfo );
// 在屏幕中心显示图像
IIMAGE_Draw( pMenu, ( pApp->cxScreen - rImageInfo.cx ) / 2 , ( pApp->cyScreen - rImageInfo.cy ) / 2 );
IDISPLAY_Update( pApp->a.m_pIDisplay );
IIMAGE_Release( pMenu );
}
for(i = 0; i<6; i++)
{
WSPRINTF( psTextBuf, 5 * sizeof( AECHAR ), psFormat, pApp->nTableCount + i );
IDISPLAY_DrawText( pApp->a.m_pIDisplay, AEE_FONT_NORMAL, psTextBuf,
-1, OFFSET_X_TABLENUMBER + (i%2)*OFFSET_X_TABLE, OFFSET_Y_TABLENUMBER + (i/2)*OFFSET_Y_TABLE, NULL, IDF_TEXT_TRANSPARENT);
}
}
//////////////////////////////////////////////////////////////////////////
//棋桌菜单事件
//////////////////////////////////////////////////////////////////////////
boolean MenuTableEvent(CJunQi *pApp,AEEEvent eCode, uint16 wParam,uint32 dwParam)
{
IDISPLAY_ClearScreen( pApp->a.m_pIDisplay );
switch(wParam)
{
case AVK_UP:
pApp->nMenuRow--;
if(pApp->nMenuRow < 0)
{
pApp->nTableCount -= 2; //向上滚动显示桌号数字
if(pApp->nTableCount<=1)
pApp->nTableCount = 1;
pApp->nMenuRow = 0;
}
DisplayMenuTable(pApp);
DrawCursor(pApp, OFFSET_X3_CURSOR, OFFSET_Y3_CURSOR, OFFSET_X_TABLE, OFFSET_Y_TABLE, IDB_TABLE_CURSOR, pApp->nMenuRow, pApp->nMenuCol);
break;
case AVK_DOWN:
pApp->nMenuRow++;
if(pApp->nMenuRow > 2) //向下滚动显示桌号数字
{
pApp->nTableCount += 2;
if(pApp->nTableCount>=45)
pApp->nTableCount = 45;
pApp->nMenuRow = 2;
}
DisplayMenuTable(pApp);
DrawCursor(pApp, OFFSET_X3_CURSOR, OFFSET_Y3_CURSOR, OFFSET_X_TABLE, OFFSET_Y_TABLE, IDB_TABLE_CURSOR, pApp->nMenuRow, pApp->nMenuCol);
break;
case AVK_LEFT:
pApp->nMenuCol--;
if(pApp->nMenuCol < 0)
pApp->nMenuCol = 0;
DisplayMenuTable(pApp);
DrawCursor(pApp, OFFSET_X3_CURSOR, OFFSET_Y3_CURSOR, OFFSET_X_TABLE, OFFSET_Y_TABLE, IDB_TABLE_CURSOR, pApp->nMenuRow, pApp->nMenuCol);
break;
case AVK_RIGHT:
pApp->nMenuCol++;
if(pApp->nMenuCol > 1)
pApp->nMenuCol = 1;
DisplayMenuTable(pApp);
DrawCursor(pApp, OFFSET_X3_CURSOR, OFFSET_Y3_CURSOR, OFFSET_X_TABLE, OFFSET_Y_TABLE, IDB_TABLE_CURSOR, pApp->nMenuRow, pApp->nMenuCol);
break;
case AVK_CLR:
InitMenuLab(pApp); //返回到大厅菜单
break;
case AVK_SELECT:
switch(pApp->nMenuRow)
{
case 0:
//add code to here ......
InitTwoFlag(pApp); //进入到布局界面
break;
default:
break;
}
default:
break;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -