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

ui_signup.c

Go to the documentation of this file.
00001 /*
00002 ===========================================================================
00003 Copyright (C) 1999-2005 Id Software, Inc.
00004 
00005 This file is part of Quake III Arena source code.
00006 
00007 Quake III Arena source code is free software; you can redistribute it
00008 and/or modify it under the terms of the GNU General Public License as
00009 published by the Free Software Foundation; either version 2 of the License,
00010 or (at your option) any later version.
00011 
00012 Quake III Arena source code is distributed in the hope that it will be
00013 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015 GNU General Public License for more details.
00016 
00017 You should have received a copy of the GNU General Public License
00018 along with Foobar; if not, write to the Free Software
00019 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00020 ===========================================================================
00021 */
00022 //
00023 //
00024 // ui_signup.c
00025 //
00026 
00027 #include "ui_local.h"
00028 
00029 
00030 #define SIGNUP_FRAME        "menu/art/cut_frame"
00031 
00032 #define ID_NAME         100
00033 #define ID_NAME_BOX     101
00034 #define ID_PASSWORD     102
00035 #define ID_PASSWORD_BOX 103
00036 #define ID_AGAIN        104
00037 #define ID_AGAIN_BOX    105
00038 #define ID_EMAIL        106
00039 #define ID_EMAIL_BOX    107
00040 #define ID_SIGNUP       108
00041 #define ID_CANCEL       109
00042 
00043 
00044 typedef struct
00045 {
00046     menuframework_s menu;
00047     menubitmap_s    frame;
00048     menutext_s      name;
00049     menufield_s     name_box;
00050     menutext_s      password;
00051     menufield_s     password_box;
00052     menutext_s      again;
00053     menufield_s     again_box;
00054     menutext_s      email;
00055     menufield_s     email_box;
00056     menutext_s      signup;
00057     menutext_s      cancel;
00058 } signup_t;
00059 
00060 static signup_t s_signup;
00061 
00062 static menuframework_s  s_signup_menu;
00063 static menuaction_s     s_signup_signup;
00064 static menuaction_s     s_signup_cancel;
00065 
00066 static vec4_t s_signup_color_prompt  = {1.00, 0.43, 0.00, 1.00};
00067 
00068 /*
00069 ===============
00070 Signup_MenuEvent
00071 ===============
00072 */
00073 static void Signup_MenuEvent( void* ptr, int event ) {
00074     //char  cmd[1024];
00075     
00076     if( event != QM_ACTIVATED ) {
00077         return;
00078     }
00079 
00080     switch( ((menucommon_s*)ptr)->id ) {
00081     case ID_SIGNUP:
00082         if( strcmp(s_signup.password_box.field.buffer, 
00083             s_signup.again_box.field.buffer) != 0 )
00084         {
00085             // GRANK_FIXME - password mismatch
00086             break;
00087         }
00088         // set name
00089         //trap_Cvar_Set( "name", s_signup.name_box.field.buffer );
00090         /*
00091         trap_Cvar_Set( "rank_name", s_signup.name_box.field.buffer );
00092         trap_Cvar_Set( "rank_pwd", s_signup.password_box.field.buffer );
00093         */
00094 
00095         // create account
00096         /*
00097         sprintf( cmd, "cmd rank_create \"%s\" \"%s\" \"%s\"\n", 
00098             s_signup.name_box.field.buffer, 
00099             s_signup.password_box.field.buffer, 
00100             s_signup.email_box.field.buffer );
00101         trap_Cmd_ExecuteText( EXEC_APPEND, cmd );
00102         */
00103         trap_CL_UI_RankUserCreate(
00104             s_signup.name_box.field.buffer, 
00105             s_signup.password_box.field.buffer, 
00106             s_signup.email_box.field.buffer );
00107 
00108         UI_ForceMenuOff();
00109         break;
00110         
00111     case ID_CANCEL:
00112         UI_PopMenu();
00113         break;
00114     }
00115 }
00116 
00117 /*
00118 ===============
00119 Signup_MenuInit
00120 ===============
00121 */
00122 void Signup_MenuInit( void ) {
00123     grank_status_t  status;
00124     int             y;
00125 
00126     memset( &s_signup, 0, sizeof(s_signup) );
00127 
00128     Signup_Cache();
00129 
00130     s_signup.menu.wrapAround = qtrue;
00131     s_signup.menu.fullscreen = qfalse;
00132 
00133     s_signup.frame.generic.type             = MTYPE_BITMAP;
00134     s_signup.frame.generic.flags            = QMF_INACTIVE;
00135     s_signup.frame.generic.name             = SIGNUP_FRAME;
00136     s_signup.frame.generic.x                = 142; //320-233;
00137     s_signup.frame.generic.y                = 118; //240-166;
00138     s_signup.frame.width                    = 359; //466;
00139     s_signup.frame.height                   = 256; //332;
00140 
00141     y = 194;
00142 
00143     s_signup.name.generic.type              = MTYPE_PTEXT;
00144     s_signup.name.generic.flags             = QMF_RIGHT_JUSTIFY|QMF_INACTIVE;
00145     s_signup.name.generic.id                = ID_NAME;
00146     s_signup.name.generic.x                 = 310;
00147     s_signup.name.generic.y                 = y;
00148     s_signup.name.string                    = "NAME";
00149     s_signup.name.style                     = UI_RIGHT|UI_SMALLFONT;
00150     s_signup.name.color                     = s_signup_color_prompt;
00151 
00152     s_signup.name_box.generic.type          = MTYPE_FIELD;
00153     s_signup.name_box.generic.ownerdraw     = Rankings_DrawName;
00154     s_signup.name_box.generic.name          = "";
00155     s_signup.name_box.generic.flags         = 0;
00156     s_signup.name_box.generic.x             = 330;
00157     s_signup.name_box.generic.y             = y;
00158     s_signup.name_box.field.widthInChars    = 16;
00159     s_signup.name_box.field.maxchars        = 16;
00160     y += 20;
00161     
00162     s_signup.password.generic.type          = MTYPE_PTEXT;
00163     s_signup.password.generic.flags         = QMF_RIGHT_JUSTIFY|QMF_INACTIVE;
00164     s_signup.password.generic.id            = ID_PASSWORD;
00165     s_signup.password.generic.x             = 310;
00166     s_signup.password.generic.y             = y;
00167     s_signup.password.string                = "PASSWORD";
00168     s_signup.password.style                 = UI_RIGHT|UI_SMALLFONT;
00169     s_signup.password.color                 = s_signup_color_prompt;
00170 
00171     s_signup.password_box.generic.type          = MTYPE_FIELD;
00172     s_signup.password_box.generic.ownerdraw     = Rankings_DrawPassword;
00173     s_signup.password_box.generic.name          = "";
00174     s_signup.password_box.generic.flags         = 0;
00175     s_signup.password_box.generic.x             = 330;
00176     s_signup.password_box.generic.y             = y;
00177     s_signup.password_box.field.widthInChars    = 16;
00178     s_signup.password_box.field.maxchars        = 16;
00179     y += 20;
00180 
00181     s_signup.again.generic.type             = MTYPE_PTEXT;
00182     s_signup.again.generic.flags            = QMF_RIGHT_JUSTIFY|QMF_INACTIVE;
00183     s_signup.again.generic.id               = ID_AGAIN;
00184     s_signup.again.generic.x                = 310;
00185     s_signup.again.generic.y                = y;
00186     s_signup.again.string                   = "(AGAIN)";
00187     s_signup.again.style                    = UI_RIGHT|UI_SMALLFONT;
00188     s_signup.again.color                    = s_signup_color_prompt;
00189 
00190     s_signup.again_box.generic.type         = MTYPE_FIELD;
00191     s_signup.again_box.generic.ownerdraw    = Rankings_DrawPassword;
00192     s_signup.again_box.generic.name         = "";
00193     s_signup.again_box.generic.flags        = 0;
00194     s_signup.again_box.generic.x            = 330;
00195     s_signup.again_box.generic.y            = y;
00196     s_signup.again_box.field.widthInChars   = 16;
00197     s_signup.again_box.field.maxchars       = 16;
00198     y += 20;
00199 
00200     s_signup.email.generic.type             = MTYPE_PTEXT;
00201     s_signup.email.generic.flags            = QMF_RIGHT_JUSTIFY|QMF_INACTIVE;
00202     s_signup.email.generic.id               = ID_EMAIL;
00203     s_signup.email.generic.x                = 310;
00204     s_signup.email.generic.y                = y;
00205     s_signup.email.string                   = "EMAIL";
00206     s_signup.email.style                    = UI_RIGHT|UI_SMALLFONT;
00207     s_signup.email.color                    = s_signup_color_prompt;
00208 
00209     s_signup.email_box.generic.type         = MTYPE_FIELD;
00210     s_signup.email_box.generic.ownerdraw    = Rankings_DrawText;
00211     s_signup.email_box.generic.name         = "";
00212     s_signup.email_box.generic.flags        = 0;
00213     s_signup.email_box.generic.x            = 330;
00214     s_signup.email_box.generic.y            = y;
00215     s_signup.email_box.field.widthInChars   = 16;
00216     s_signup.email_box.field.maxchars       = MAX_EDIT_LINE;
00217     y += 40;
00218 
00219     s_signup.signup.generic.type            = MTYPE_PTEXT;
00220     s_signup.signup.generic.flags           = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
00221     s_signup.signup.generic.id              = ID_SIGNUP;
00222     s_signup.signup.generic.callback        = Signup_MenuEvent;
00223     s_signup.signup.generic.x               = 310;
00224     s_signup.signup.generic.y               = y;
00225     s_signup.signup.string                  = "SIGN UP";
00226     s_signup.signup.style                   = UI_RIGHT|UI_SMALLFONT;
00227     s_signup.signup.color                   = colorRed;
00228 
00229     s_signup.cancel.generic.type            = MTYPE_PTEXT;
00230     s_signup.cancel.generic.flags           = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
00231     s_signup.cancel.generic.id              = ID_CANCEL;
00232     s_signup.cancel.generic.callback        = Signup_MenuEvent;
00233     s_signup.cancel.generic.x               = 330;
00234     s_signup.cancel.generic.y               = y;
00235     s_signup.cancel.string                  = "CANCEL";
00236     s_signup.cancel.style                   = UI_LEFT|UI_SMALLFONT;
00237     s_signup.cancel.color                   = colorRed;
00238     y += 20;
00239 
00240     status = (grank_status_t)trap_Cvar_VariableValue("client_status");
00241     if( (status != QGR_STATUS_NEW) && (status != QGR_STATUS_SPECTATOR) )
00242     {
00243         s_signup.name_box.generic.flags |= QMF_INACTIVE;    
00244         s_signup.password_box.generic.flags |= QMF_INACTIVE;    
00245         s_signup.again_box.generic.flags |= QMF_INACTIVE;   
00246         s_signup.email_box.generic.flags |= QMF_INACTIVE;   
00247         s_signup.signup.generic.flags |= QMF_INACTIVE;
00248         
00249         s_signup.signup.color = colorMdGrey;
00250     }
00251     
00252     Menu_AddItem( &s_signup.menu, (void*) &s_signup.frame );
00253     Menu_AddItem( &s_signup.menu, (void*) &s_signup.name );
00254     Menu_AddItem( &s_signup.menu, (void*) &s_signup.name_box );
00255     Menu_AddItem( &s_signup.menu, (void*) &s_signup.password );
00256     Menu_AddItem( &s_signup.menu, (void*) &s_signup.password_box );
00257     Menu_AddItem( &s_signup.menu, (void*) &s_signup.again );
00258     Menu_AddItem( &s_signup.menu, (void*) &s_signup.again_box );
00259     Menu_AddItem( &s_signup.menu, (void*) &s_signup.email );
00260     Menu_AddItem( &s_signup.menu, (void*) &s_signup.email_box );
00261     Menu_AddItem( &s_signup.menu, (void*) &s_signup.signup );
00262     Menu_AddItem( &s_signup.menu, (void*) &s_signup.cancel );
00263 }
00264 
00265 
00266 /*
00267 ===============
00268 Signup_Cache
00269 ===============
00270 */
00271 void Signup_Cache( void ) {
00272     trap_R_RegisterShaderNoMip( SIGNUP_FRAME );
00273 }
00274 
00275 
00276 /*
00277 ===============
00278 UI_SignupMenu
00279 ===============
00280 */
00281 void UI_SignupMenu( void ) {
00282     Signup_MenuInit();
00283     UI_PushMenu ( &s_signup.menu );
00284 }
00285 
00286 

Generated on Thu Aug 25 12:37:44 2005 for Quake III Arena by  doxygen 1.3.9.1