Main Page | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

ui_rankings.c File Reference

#include "ui_local.h"

Include dependency graph for ui_rankings.c:

Include dependency graph

Go to the source code of this file.

Data Structures

struct  rankings_t

Defines

#define ID_CREATE   102
#define ID_LEAVE   105
#define ID_LOGIN   100
#define ID_LOGOUT   101
#define ID_SETUP   104
#define ID_SPECTATE   103
#define RANKINGS_FRAME   "menu/art/cut_frame"

Functions

void Rankings_Cache (void)
void Rankings_DrawName (void *self)
void Rankings_DrawPassword (void *self)
void Rankings_DrawText (void *self)
void Rankings_MenuEvent (void *ptr, int event)
void Rankings_MenuInit (void)
void UI_RankingsMenu (void)

Variables

rankings_t s_rankings
menuaction_s s_rankings_create
menuaction_s s_rankings_leave
menuaction_s s_rankings_login
menuaction_s s_rankings_logout
menuframework_s s_rankings_menu
menuaction_s s_rankings_setup
menuaction_s s_rankings_spectate


Define Documentation

#define ID_CREATE   102
 

Definition at line 34 of file ui_rankings.c.

Referenced by ArenaServers_Event(), and Rankings_MenuEvent().

#define ID_LEAVE   105
 

Definition at line 37 of file ui_rankings.c.

Referenced by Rankings_MenuEvent().

#define ID_LOGIN   100
 

Definition at line 32 of file ui_rankings.c.

#define ID_LOGOUT   101
 

Definition at line 33 of file ui_rankings.c.

Referenced by Rankings_MenuEvent().

#define ID_SETUP   104
 

Definition at line 36 of file ui_rankings.c.

#define ID_SPECTATE   103
 

Definition at line 35 of file ui_rankings.c.

Referenced by Rankings_MenuEvent(), and TeamMain_MenuEvent().

#define RANKINGS_FRAME   "menu/art/cut_frame"
 

Definition at line 30 of file ui_rankings.c.

Referenced by Rankings_Cache().


Function Documentation

void Rankings_Cache void   ) 
 

Definition at line 405 of file ui_rankings.c.

References RANKINGS_FRAME, and trap_R_RegisterShaderNoMip().

Referenced by Rankings_MenuInit().

00405                             {
00406     trap_R_RegisterShaderNoMip( RANKINGS_FRAME );
00407 }

Here is the call graph for this function:

void Rankings_DrawName void *  self  ) 
 

Definition at line 120 of file ui_rankings.c.

References mfield_t::buffer, mfield_t::cursor, f, menufield_s::field, length(), p, Q_CleanStr(), Q_isalpha(), Rankings_DrawText(), and strlen().

00121 {
00122     menufield_s     *f;
00123     int             length;
00124     char*           p;
00125     
00126     f = (menufield_s*)self;
00127 
00128     // GRANK_FIXME - enforce valid characters
00129     for( p = f->field.buffer; *p != '\0'; p++ )
00130     {
00131         //if( ispunct(*p) || isspace(*p) )
00132         if( !( ( (*p) >= '0' && (*p) <= '9') || Q_isalpha(*p)) )
00133         {
00134             *p = '\0';
00135         }
00136     }
00137     
00138     // strip color codes
00139     Q_CleanStr( f->field.buffer );
00140     length = strlen( f->field.buffer );
00141     if( f->field.cursor > length )
00142     {
00143         f->field.cursor = length;
00144     }   
00145 
00146     Rankings_DrawText( f );
00147 }

Here is the call graph for this function:

void Rankings_DrawPassword void *  self  ) 
 

Definition at line 191 of file ui_rankings.c.

References mfield_t::buffer, mfield_t::cursor, f, menufield_s::field, i, length(), p, Q_isalpha(), Q_strncpyz(), Rankings_DrawText(), and strlen().

00192 {
00193     menufield_s*    f;
00194     char            password[MAX_EDIT_LINE];
00195     int             length;
00196     int             i;
00197     char*           p;
00198 
00199     f = (menufield_s*)self;
00200     
00201     // GRANK_FIXME - enforce valid characters
00202     for( p = f->field.buffer; *p != '\0'; p++ )
00203     {
00204         //if( ispunct(*p) || isspace(*p) )
00205         if( !( ( (*p) >= '0' && (*p) <= '9') || Q_isalpha(*p)) )
00206         {
00207             *p = '\0';
00208         }
00209     }
00210     
00211     length = strlen( f->field.buffer );
00212     if( f->field.cursor > length )
00213     {
00214         f->field.cursor = length;
00215     }
00216     
00217     // save password
00218     Q_strncpyz( password, f->field.buffer, sizeof(password) );
00219 
00220     // mask password with *
00221     for( i = 0; i < length; i++ )
00222     {
00223         f->field.buffer[i] = '*';
00224     }
00225 
00226     // draw masked password
00227     Rankings_DrawText( f );
00228     //MenuField_Draw( f );
00229 
00230     // restore password
00231     Q_strncpyz( f->field.buffer, password, sizeof(f->field.buffer) );
00232 }

Here is the call graph for this function:

void Rankings_DrawText void *  self  ) 
 

Definition at line 68 of file ui_rankings.c.

References mfield_t::buffer, c, color_white, COLOR_WHITE, ColorIndex, mfield_t::cursor, _tag_menuframework::cursor, f, menufield_s::field, g_color_table, menufield_s::generic, menucommon_s::menuPosition, menucommon_s::parent, qboolean, SMALLCHAR_WIDTH, trap_Key_GetOverstrikeMode(), UI_DrawChar(), UI_LEFT, x, menucommon_s::x, menucommon_s::y, and y.

Referenced by Rankings_DrawName(), and Rankings_DrawPassword().

00069 {
00070     menufield_s     *f;
00071     qboolean        focus;
00072     int             style;
00073     char            *txt;
00074     char            c;
00075     float           *color;
00076     int             basex, x, y;
00077 
00078     f = (menufield_s*)self;
00079     basex = f->generic.x;
00080     y = f->generic.y + 4;
00081     focus = (f->generic.parent->cursor == f->generic.menuPosition);
00082 
00083     style = UI_LEFT|UI_SMALLFONT;
00084     color = text_color_normal;
00085     if( focus ) {
00086         style |= UI_PULSE;
00087         color = text_color_highlight;
00088     }
00089 
00090     // draw the actual text
00091     txt = f->field.buffer;
00092     color = g_color_table[ColorIndex(COLOR_WHITE)];
00093     x = basex;
00094     while ( (c = *txt) != 0 ) {
00095         UI_DrawChar( x, y, c, style, color );
00096         txt++;
00097         x += SMALLCHAR_WIDTH;
00098     }
00099 
00100     // draw cursor if we have focus
00101     if( focus ) {
00102         if ( trap_Key_GetOverstrikeMode() ) {
00103             c = 11;
00104         } else {
00105             c = 10;
00106         }
00107 
00108         style &= ~UI_PULSE;
00109         style |= UI_BLINK;
00110 
00111         UI_DrawChar( basex + f->field.cursor * SMALLCHAR_WIDTH, y, c, style, color_white );
00112     }
00113 }

Here is the call graph for this function:

void Rankings_MenuEvent void *  ptr,
int  event
[static]
 

Definition at line 239 of file ui_rankings.c.

References EXEC_APPEND, ID_CREATE, ID_LEAVE, ID_LOGIN, ID_LOGOUT, ID_SETUP, ID_SPECTATE, trap_Cmd_ExecuteText(), UI_ForceMenuOff(), UI_LoginMenu(), UI_SetupMenu(), and UI_SignupMenu().

00239                                                        {
00240     if( event != QM_ACTIVATED ) {
00241         return;
00242     }
00243 
00244     switch( ((menucommon_s*)ptr)->id ) {
00245     case ID_LOGIN:
00246         UI_LoginMenu();
00247         break;
00248 
00249     case ID_LOGOUT:
00250         // server side masqueraded player logout first
00251         trap_CL_UI_RankUserRequestLogout();
00252         UI_ForceMenuOff();
00253         break;
00254         
00255     case ID_CREATE:
00256         UI_SignupMenu();
00257         break;
00258 
00259     case ID_SPECTATE:
00260         trap_Cmd_ExecuteText( EXEC_APPEND, "cmd rank_spectate\n" );
00261         UI_ForceMenuOff();
00262         break;
00263 
00264     case ID_SETUP:
00265         UI_SetupMenu();
00266         break;
00267         
00268     case ID_LEAVE:
00269         trap_Cmd_ExecuteText( EXEC_APPEND, "disconnect\n" );
00270         UI_ForceMenuOff();
00271         break;
00272 
00273     }
00274 }

Here is the call graph for this function:

void Rankings_MenuInit void   ) 
 

Definition at line 282 of file ui_rankings.c.

References menucommon_s::callback, menutext_s::color, rankings_t::create, menucommon_s::flags, rankings_t::frame, _tag_menuframework::fullscreen, menutext_s::generic, menubitmap_s::generic, menubitmap_s::height, menucommon_s::id, rankings_t::leave, rankings_t::login, rankings_t::logout, memset(), rankings_t::menu, Menu_AddItem(), menucommon_s::name, QMF_CENTER_JUSTIFY, QMF_HIDDEN, QMF_INACTIVE, Rankings_Cache(), s_rankings, rankings_t::setup, rankings_t::spectate, menutext_s::string, menutext_s::style, trap_Cvar_VariableValue(), menucommon_s::type, UI_CENTER, menubitmap_s::width, _tag_menuframework::wrapAround, menucommon_s::x, y, and menucommon_s::y.

Referenced by UI_RankingsMenu().

00282                                {
00283     grank_status_t  status;
00284     int             y;
00285 
00286     memset( &s_rankings, 0, sizeof(s_rankings) );
00287 
00288     Rankings_Cache();
00289 
00290     s_rankings.menu.wrapAround = qtrue;
00291     s_rankings.menu.fullscreen = qfalse;
00292 
00293     s_rankings.frame.generic.type       = MTYPE_BITMAP;
00294     s_rankings.frame.generic.flags      = QMF_INACTIVE;
00295     s_rankings.frame.generic.name       = RANKINGS_FRAME;
00296     s_rankings.frame.generic.x          = 142;
00297     s_rankings.frame.generic.y          = 118;
00298     s_rankings.frame.width              = 359;
00299     s_rankings.frame.height             = 256;
00300 
00301     y = 194;
00302 
00303     s_rankings.login.generic.type       = MTYPE_PTEXT;
00304     s_rankings.login.generic.flags      = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
00305     s_rankings.login.generic.id         = ID_LOGIN;
00306     s_rankings.login.generic.callback   = Rankings_MenuEvent;
00307     s_rankings.login.generic.x          = 320;
00308     s_rankings.login.generic.y          = y;
00309     s_rankings.login.string             = "LOGIN";
00310     s_rankings.login.style              = UI_CENTER|UI_SMALLFONT;
00311     s_rankings.login.color              = colorRed;
00312     y += 20;
00313 
00314     s_rankings.logout.generic.type      = MTYPE_PTEXT;
00315     s_rankings.logout.generic.flags     = QMF_HIDDEN|QMF_INACTIVE|QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
00316     s_rankings.logout.generic.id        = ID_LOGOUT;
00317     s_rankings.logout.generic.callback  = Rankings_MenuEvent;
00318     s_rankings.logout.generic.x         = 320;
00319     s_rankings.logout.generic.y         = y;
00320     s_rankings.logout.string                = "LOGOUT";
00321     s_rankings.logout.style             = UI_CENTER|UI_SMALLFONT;
00322     s_rankings.logout.color             = colorRed;
00323 
00324     s_rankings.create.generic.type      = MTYPE_PTEXT;
00325     s_rankings.create.generic.flags     = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
00326     s_rankings.create.generic.id        = ID_CREATE;
00327     s_rankings.create.generic.callback  = Rankings_MenuEvent;
00328     s_rankings.create.generic.x         = 320;
00329     s_rankings.create.generic.y         = y;
00330     s_rankings.create.string            = "SIGN UP";
00331     s_rankings.create.style             = UI_CENTER|UI_SMALLFONT;
00332     s_rankings.create.color             = colorRed;
00333     y += 20;
00334 
00335     s_rankings.spectate.generic.type        = MTYPE_PTEXT;
00336     s_rankings.spectate.generic.flags       = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
00337     s_rankings.spectate.generic.id          = ID_SPECTATE;
00338     s_rankings.spectate.generic.callback    = Rankings_MenuEvent;
00339     s_rankings.spectate.generic.x           = 320;
00340     s_rankings.spectate.generic.y           = y;
00341     s_rankings.spectate.string              = "SPECTATE";
00342     s_rankings.spectate.style               = UI_CENTER|UI_SMALLFONT;
00343     s_rankings.spectate.color               = colorRed;
00344     y += 20;
00345 
00346     s_rankings.setup.generic.type       = MTYPE_PTEXT;
00347     s_rankings.setup.generic.flags      = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
00348     s_rankings.setup.generic.id         = ID_SETUP;
00349     s_rankings.setup.generic.callback   = Rankings_MenuEvent;
00350     s_rankings.setup.generic.x          = 320;
00351     s_rankings.setup.generic.y          = y;
00352     s_rankings.setup.string             = "SETUP";
00353     s_rankings.setup.style              = UI_CENTER|UI_SMALLFONT;
00354     s_rankings.setup.color              = colorRed;
00355     y += 20;
00356 
00357     s_rankings.leave.generic.type       = MTYPE_PTEXT;
00358     s_rankings.leave.generic.flags      = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
00359     s_rankings.leave.generic.id         = ID_LEAVE;
00360     s_rankings.leave.generic.callback   = Rankings_MenuEvent;
00361     s_rankings.leave.generic.x          = 320;
00362     s_rankings.leave.generic.y          = y;
00363     s_rankings.leave.string             = "LEAVE ARENA";
00364     s_rankings.leave.style              = UI_CENTER|UI_SMALLFONT;
00365     s_rankings.leave.color              = colorRed;
00366     y += 20;
00367 
00368     status = (grank_status_t)trap_Cvar_VariableValue("client_status");
00369     if( (status != QGR_STATUS_NEW) && (status != QGR_STATUS_SPECTATOR) )
00370     {
00371         s_rankings.login.generic.flags |= QMF_HIDDEN | QMF_INACTIVE;    
00372         s_rankings.create.generic.flags |= QMF_HIDDEN | QMF_INACTIVE;
00373         s_rankings.spectate.generic.flags |= QMF_HIDDEN | QMF_INACTIVE;
00374 
00375         s_rankings.logout.generic.flags &= ~(QMF_HIDDEN | QMF_INACTIVE);
00376     }
00377     
00378     if ( (status == QGR_STATUS_VALIDATING) ||
00379          (status == QGR_STATUS_PENDING) ||
00380          (status == QGR_STATUS_LEAVING) )
00381     {
00382         s_rankings.login.generic.flags  |= QMF_GRAYED;
00383         s_rankings.create.generic.flags |= QMF_GRAYED;
00384         s_rankings.logout.generic.flags |= QMF_GRAYED;
00385     }
00386     
00387     //GRank FIXME -- don't need setup option any more
00388     s_rankings.setup.generic.flags |= QMF_HIDDEN | QMF_INACTIVE;
00389 
00390     Menu_AddItem( &s_rankings.menu, (void*) &s_rankings.frame );
00391     Menu_AddItem( &s_rankings.menu, (void*) &s_rankings.login );
00392     Menu_AddItem( &s_rankings.menu, (void*) &s_rankings.logout );
00393     Menu_AddItem( &s_rankings.menu, (void*) &s_rankings.create );
00394     Menu_AddItem( &s_rankings.menu, (void*) &s_rankings.spectate );
00395     Menu_AddItem( &s_rankings.menu, (void*) &s_rankings.setup );
00396     Menu_AddItem( &s_rankings.menu, (void*) &s_rankings.leave );
00397 }

Here is the call graph for this function:

void UI_RankingsMenu void   ) 
 

Definition at line 415 of file ui_rankings.c.

References rankings_t::menu, Rankings_MenuInit(), s_rankings, and UI_PushMenu().

Referenced by RankStatus_MenuEvent().

00415                              {
00416     Rankings_MenuInit();
00417     UI_PushMenu ( &s_rankings.menu );
00418 }

Here is the call graph for this function:


Variable Documentation

rankings_t s_rankings [static]
 

Definition at line 52 of file ui_rankings.c.

Referenced by Rankings_MenuInit(), and UI_RankingsMenu().

menuaction_s s_rankings_create [static]
 

Definition at line 57 of file ui_rankings.c.

menuaction_s s_rankings_leave [static]
 

Definition at line 60 of file ui_rankings.c.

menuaction_s s_rankings_login [static]
 

Definition at line 55 of file ui_rankings.c.

menuaction_s s_rankings_logout [static]
 

Definition at line 56 of file ui_rankings.c.

menuframework_s s_rankings_menu [static]
 

Definition at line 54 of file ui_rankings.c.

menuaction_s s_rankings_setup [static]
 

Definition at line 59 of file ui_rankings.c.

menuaction_s s_rankings_spectate [static]
 

Definition at line 58 of file ui_rankings.c.


Generated on Thu Aug 25 14:33:56 2005 for Quake III Arena by  doxygen 1.3.9.1