00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
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
00071
00072
00073 static void Signup_MenuEvent( void* ptr, int event ) {
00074
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
00086 break;
00087 }
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
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
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;
00137 s_signup.frame.generic.y = 118;
00138 s_signup.frame.width = 359;
00139 s_signup.frame.height = 256;
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
00269
00270
00271 void Signup_Cache( void ) {
00272 trap_R_RegisterShaderNoMip( SIGNUP_FRAME );
00273 }
00274
00275
00276
00277
00278
00279
00280
00281 void UI_SignupMenu( void ) {
00282 Signup_MenuInit();
00283 UI_PushMenu ( &s_signup.menu );
00284 }
00285
00286