rpgxef/code/ui/ui_sql.c

207 lines
4.8 KiB
C
Raw Normal View History

/**********************************************************************
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 );
}