/********************************************************************** UI_sql.C User interface trigger from within game **********************************************************************/ #include "ui_local.h" typedef struct { menuframework_s menu; menubitmap_s quitmenu; menubitmap_s login; menufield_s user; menufield_s password; char *sUsername; char *sPassword; } sql_t; sql_t s_sql; #define ID_QUIT 10 #define ID_LOGIN 11 /* ================= M_sql_Event ================= */ static void M_sql_Event(void *ptr, int notification) { int id; id = ((menucommon_s*)ptr)->id; switch (id) { case ID_QUIT: if(notification == QM_ACTIVATED) { UI_PopMenu(); } break; case ID_LOGIN: if(notification == QM_ACTIVATED) { // do login } break; default: break; } } /* ================= sqlMenu_Key ================= */ sfxHandle_t sqlMenu_Key (int key) { return ( Menu_DefaultKey( &s_sql.menu, key ) ); } qhandle_t box_rounded; qhandle_t corner_lu; /* ================= M_sqlMenu_Graphics ================= */ static void M_sqlMenu_Graphics (void) { float bg[] = { 0, 0, 0, 0.7 }; trap_R_SetColor(bg); UI_DrawHandlePic(160, 120, 320, 240, box_rounded); trap_R_SetColor(colorTable[CT_LTBLUE1]); UI_DrawHandlePic(164, 124, 64, 64, corner_lu); UI_DrawHandlePic(412, 124, -64, 64, corner_lu); UI_DrawHandlePic(164, 292, 64, -64, corner_lu); UI_DrawHandlePic(412, 292, -64, -64, corner_lu); UI_DrawHandlePic(232, 124, 176, 31.75, uis.whiteShader); UI_DrawHandlePic(232, 324, 176, 31.75, uis.whiteShader); UI_DrawHandlePic(164, 192, 31.75, 96, uis.whiteShader); UI_DrawHandlePic(444, 192, 31.75, 96, uis.whiteShader); UI_DrawString(234, 132, "LCARS AUTH", UI_LEFT|UI_SMALLFONT, colorTable[CT_BLACK], qtrue); // TODO multi lang text // TODO } /* =============== UI_sqlMenu_Cache =============== */ void UI_sqlMenu_Cache (void) { box_rounded = trap_R_RegisterShaderNoMip("menu/common/box_rounded.tga"); corner_lu = trap_R_RegisterShaderNoMip("menu/common/corner_lu.tga"); } /* =============== sqlMenu_Draw =============== */ static void sqlMenu_Draw(void) { // Draw graphics particular to Main Menu M_sqlMenu_Graphics(); Menu_Draw( &s_sql.menu ); } /* =============== msdMenu_Init =============== */ void sqlMenu_Init(void) { s_sql.menu.nitems = 0; s_sql.menu.draw = sqlMenu_Draw; s_sql.menu.key = sqlMenu_Key; s_sql.menu.wrapAround = qtrue; s_sql.menu.descX = -400; s_sql.menu.descY = -400; s_sql.menu.titleX = MENU_TITLE_X; s_sql.menu.titleY = MENU_TITLE_Y; s_sql.menu.fullscreen = qfalse; s_sql.menu.nobackground = qtrue; s_sql.quitmenu.generic.type = MTYPE_BITMAP; s_sql.quitmenu.generic.flags = QMF_HIGHLIGHT_IF_FOCUS; s_sql.quitmenu.generic.x = 490; s_sql.quitmenu.generic.y = 380; s_sql.quitmenu.generic.name = GRAPHIC_BUTTONLEFT; s_sql.quitmenu.generic.id = ID_QUIT; s_sql.quitmenu.generic.callback = M_sql_Event; s_sql.quitmenu.width = MENU_BUTTON_MED_WIDTH-20; s_sql.quitmenu.height = PROP_BIG_HEIGHT; s_sql.quitmenu.color = CT_DKPURPLE1; s_sql.quitmenu.color2 = CT_LTPURPLE1; s_sql.quitmenu.textX = MENU_BUTTON_TEXT_X; s_sql.quitmenu.textY = 12; s_sql.quitmenu.textEnum = MBT_QUIT; // TODO needs own text s_sql.quitmenu.textcolor = CT_BLACK; s_sql.quitmenu.textcolor2 = CT_WHITE; s_sql.quitmenu.textStyle = UI_TINYFONT; s_sql.login.generic.type = MTYPE_BITMAP; s_sql.login.generic.flags = QMF_HIGHLIGHT_IF_FOCUS; s_sql.login.generic.x = 350; s_sql.login.generic.y = 380; s_sql.login.generic.name = GRAPHIC_BUTTONRIGHT; s_sql.login.generic.id = ID_LOGIN; s_sql.login.generic.callback = M_sql_Event; s_sql.login.width = MENU_BUTTON_MED_WIDTH-20; s_sql.login.height = PROP_BIG_HEIGHT; s_sql.login.color = CT_DKPURPLE1; s_sql.login.color2 = CT_LTPURPLE1; s_sql.login.textX = MENU_BUTTON_TEXT_X; s_sql.login.textY = 12; s_sql.login.textEnum = MBT_ACCEPT; // TODO needs own text s_sql.login.textcolor = CT_BLACK; s_sql.login.textcolor2 = CT_WHITE; s_sql.login.textStyle = UI_TINYFONT; s_sql.user.generic.type = MTYPE_FIELD; s_sql.user.field.widthInChars = 16; s_sql.user.field.maxchars = 64; s_sql.user.generic.x = 260; s_sql.user.generic.y = 217; s_sql.user.field.style = UI_SMALLFONT; s_sql.user.field.titleEnum = MBT_ADMIN_ENTITY; // TODO ... needs own text s_sql.user.field.titlecolor = CT_WHITE; s_sql.user.field.textcolor = CT_WHITE; s_sql.user.field.textcolor2 = CT_LTGREY; Menu_AddItem( &s_sql.menu, &s_sql.quitmenu ); Menu_AddItem( &s_sql.menu, &s_sql.login ); Menu_AddItem( &s_sql.menu, &s_sql.user); } /* =============== UI_sqlMenu =============== */ void UI_sqlMenu(void) { memset( &s_sql, 0, sizeof( s_sql ) ); uis.menusp = 0; ingameFlag = qtrue; // true when in game menu is in use Mouse_Show(); UI_sqlMenu_Cache(); sqlMenu_Init(); UI_PushMenu( &s_sql.menu ); Menu_AdjustCursor( &s_sql.menu, 1 ); }