📄 ui_local.h
字号:
/*
===========================================================================
Copyright (C) 1999-2005 Id Software, Inc.
This file is part of Quake III Arena source code.
Quake III Arena source code is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
Quake III Arena source code is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Foobar; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
===========================================================================
*/
//
#ifndef __UI_LOCAL_H__
#define __UI_LOCAL_H__
#include "../game/q_shared.h"
#include "../cgame/tr_types.h"
//NOTE: include the ui_public.h from the new UI
#include "../ui/ui_public.h" // bk001205 - yes, do have to use this
//redefine to old API version
#undef UI_API_VERSION
#define UI_API_VERSION 4
#include "keycodes.h"
#include "../game/bg_public.h"
typedef void (*voidfunc_f)(void);
extern vmCvar_t ui_ffa_fraglimit;
extern vmCvar_t ui_ffa_timelimit;
extern vmCvar_t ui_tourney_fraglimit;
extern vmCvar_t ui_tourney_timelimit;
extern vmCvar_t ui_team_fraglimit;
extern vmCvar_t ui_team_timelimit;
extern vmCvar_t ui_team_friendly;
extern vmCvar_t ui_ctf_capturelimit;
extern vmCvar_t ui_ctf_timelimit;
extern vmCvar_t ui_ctf_friendly;
extern vmCvar_t ui_arenasFile;
extern vmCvar_t ui_botsFile;
extern vmCvar_t ui_spScores1;
extern vmCvar_t ui_spScores2;
extern vmCvar_t ui_spScores3;
extern vmCvar_t ui_spScores4;
extern vmCvar_t ui_spScores5;
extern vmCvar_t ui_spAwards;
extern vmCvar_t ui_spVideos;
extern vmCvar_t ui_spSkill;
extern vmCvar_t ui_spSelection;
extern vmCvar_t ui_browserMaster;
extern vmCvar_t ui_browserGameType;
extern vmCvar_t ui_browserSortKey;
extern vmCvar_t ui_browserShowFull;
extern vmCvar_t ui_browserShowEmpty;
extern vmCvar_t ui_brassTime;
extern vmCvar_t ui_drawCrosshair;
extern vmCvar_t ui_drawCrosshairNames;
extern vmCvar_t ui_marks;
extern vmCvar_t ui_server1;
extern vmCvar_t ui_server2;
extern vmCvar_t ui_server3;
extern vmCvar_t ui_server4;
extern vmCvar_t ui_server5;
extern vmCvar_t ui_server6;
extern vmCvar_t ui_server7;
extern vmCvar_t ui_server8;
extern vmCvar_t ui_server9;
extern vmCvar_t ui_server10;
extern vmCvar_t ui_server11;
extern vmCvar_t ui_server12;
extern vmCvar_t ui_server13;
extern vmCvar_t ui_server14;
extern vmCvar_t ui_server15;
extern vmCvar_t ui_server16;
extern vmCvar_t ui_cdkey;
extern vmCvar_t ui_cdkeychecked;
//
// ui_qmenu.c
//
#define RCOLUMN_OFFSET ( BIGCHAR_WIDTH )
#define LCOLUMN_OFFSET (-BIGCHAR_WIDTH )
#define SLIDER_RANGE 10
#define MAX_EDIT_LINE 256
#define MAX_MENUDEPTH 8
#define MAX_MENUITEMS 64
#define MTYPE_NULL 0
#define MTYPE_SLIDER 1
#define MTYPE_ACTION 2
#define MTYPE_SPINCONTROL 3
#define MTYPE_FIELD 4
#define MTYPE_RADIOBUTTON 5
#define MTYPE_BITMAP 6
#define MTYPE_TEXT 7
#define MTYPE_SCROLLLIST 8
#define MTYPE_PTEXT 9
#define MTYPE_BTEXT 10
#define QMF_BLINK 0x00000001
#define QMF_SMALLFONT 0x00000002
#define QMF_LEFT_JUSTIFY 0x00000004
#define QMF_CENTER_JUSTIFY 0x00000008
#define QMF_RIGHT_JUSTIFY 0x00000010
#define QMF_NUMBERSONLY 0x00000020 // edit field is only numbers
#define QMF_HIGHLIGHT 0x00000040
#define QMF_HIGHLIGHT_IF_FOCUS 0x00000080 // steady focus
#define QMF_PULSEIFFOCUS 0x00000100 // pulse if focus
#define QMF_HASMOUSEFOCUS 0x00000200
#define QMF_NOONOFFTEXT 0x00000400
#define QMF_MOUSEONLY 0x00000800 // only mouse input allowed
#define QMF_HIDDEN 0x00001000 // skips drawing
#define QMF_GRAYED 0x00002000 // grays and disables
#define QMF_INACTIVE 0x00004000 // disables any input
#define QMF_NODEFAULTINIT 0x00008000 // skip default initialization
#define QMF_OWNERDRAW 0x00010000
#define QMF_PULSE 0x00020000
#define QMF_LOWERCASE 0x00040000 // edit field is all lower case
#define QMF_UPPERCASE 0x00080000 // edit field is all upper case
#define QMF_SILENT 0x00100000
// callback notifications
#define QM_GOTFOCUS 1
#define QM_LOSTFOCUS 2
#define QM_ACTIVATED 3
typedef struct _tag_menuframework
{
int cursor;
int cursor_prev;
int nitems;
void *items[MAX_MENUITEMS];
void (*draw) (void);
sfxHandle_t (*key) (int key);
qboolean wrapAround;
qboolean fullscreen;
qboolean showlogo;
} menuframework_s;
typedef struct
{
int type;
const char *name;
int id;
int x, y;
int left;
int top;
int right;
int bottom;
menuframework_s *parent;
int menuPosition;
unsigned flags;
void (*callback)( void *self, int event );
void (*statusbar)( void *self );
void (*ownerdraw)( void *self );
} menucommon_s;
typedef struct {
int cursor;
int scroll;
int widthInChars;
char buffer[MAX_EDIT_LINE];
int maxchars;
} mfield_t;
typedef struct
{
menucommon_s generic;
mfield_t field;
} menufield_s;
typedef struct
{
menucommon_s generic;
float minvalue;
float maxvalue;
float curvalue;
float range;
} menuslider_s;
typedef struct
{
menucommon_s generic;
int oldvalue;
int curvalue;
int numitems;
int top;
const char **itemnames;
int width;
int height;
int columns;
int seperation;
} menulist_s;
typedef struct
{
menucommon_s generic;
} menuaction_s;
typedef struct
{
menucommon_s generic;
int curvalue;
} menuradiobutton_s;
typedef struct
{
menucommon_s generic;
char* focuspic;
char* errorpic;
qhandle_t shader;
qhandle_t focusshader;
int width;
int height;
float* focuscolor;
} menubitmap_s;
typedef struct
{
menucommon_s generic;
char* string;
int style;
float* color;
} menutext_s;
extern void Menu_Cache( void );
extern void Menu_Focus( menucommon_s *m );
extern void Menu_AddItem( menuframework_s *menu, void *item );
extern void Menu_AdjustCursor( menuframework_s *menu, int dir );
extern void Menu_Draw( menuframework_s *menu );
extern void *Menu_ItemAtCursor( menuframework_s *m );
extern sfxHandle_t Menu_ActivateItem( menuframework_s *s, menucommon_s* item );
extern void Menu_SetCursor( menuframework_s *s, int cursor );
extern void Menu_SetCursorToItem( menuframework_s *m, void* ptr );
extern sfxHandle_t Menu_DefaultKey( menuframework_s *s, int key );
extern void Bitmap_Init( menubitmap_s *b );
extern void Bitmap_Draw( menubitmap_s *b );
extern void ScrollList_Draw( menulist_s *l );
extern sfxHandle_t ScrollList_Key( menulist_s *l, int key );
extern sfxHandle_t menu_in_sound;
extern sfxHandle_t menu_move_sound;
extern sfxHandle_t menu_out_sound;
extern sfxHandle_t menu_buzz_sound;
extern sfxHandle_t menu_null_sound;
extern sfxHandle_t weaponChangeSound;
extern vec4_t menu_text_color;
extern vec4_t menu_grayed_color;
extern vec4_t menu_dark_color;
extern vec4_t menu_highlight_color;
extern vec4_t menu_red_color;
extern vec4_t menu_black_color;
extern vec4_t menu_dim_color;
extern vec4_t color_black;
extern vec4_t color_white;
extern vec4_t color_yellow;
extern vec4_t color_blue;
extern vec4_t color_orange;
extern vec4_t color_red;
extern vec4_t color_dim;
extern vec4_t name_color;
extern vec4_t list_color;
extern vec4_t listbar_color;
extern vec4_t text_color_disabled;
extern vec4_t text_color_normal;
extern vec4_t text_color_highlight;
extern char *ui_medalNames[];
extern char *ui_medalPicNames[];
extern char *ui_medalSounds[];
//
// ui_mfield.c
//
extern void MField_Clear( mfield_t *edit );
extern void MField_KeyDownEvent( mfield_t *edit, int key );
extern void MField_CharEvent( mfield_t *edit, int ch );
extern void MField_Draw( mfield_t *edit, int x, int y, int style, vec4_t color );
extern void MenuField_Init( menufield_s* m );
extern void MenuField_Draw( menufield_s *f );
extern sfxHandle_t MenuField_Key( menufield_s* m, int* key );
//
// ui_menu.c
//
extern void MainMenu_Cache( void );
extern void UI_MainMenu(void);
extern void UI_RegisterCvars( void );
extern void UI_UpdateCvars( void );
//
// ui_credits.c
//
extern void UI_CreditMenu( void );
//
// ui_ingame.c
//
extern void InGame_Cache( void );
extern void UI_InGameMenu(void);
//
// ui_confirm.c
//
extern void ConfirmMenu_Cache( void );
extern void UI_ConfirmMenu( const char *question, void (*draw)( void ), void (*action)( qboolean result ) );
extern void UI_ConfirmMenu_Style( const char *question, int style, void (*draw)( void ), void (*action)( qboolean result ) );
extern void UI_Message( const char **lines );
//
// ui_setup.c
//
extern void UI_SetupMenu_Cache( void );
extern void UI_SetupMenu(void);
//
// ui_team.c
//
extern void UI_TeamMainMenu( void );
extern void TeamMain_Cache( void );
//
// ui_connect.c
//
extern void UI_DrawConnectScreen( qboolean overlay );
//
// ui_controls2.c
//
extern void UI_ControlsMenu( void );
extern void Controls_Cache( void );
//
// ui_demo2.c
//
extern void UI_DemosMenu( void );
extern void Demos_Cache( void );
//
// ui_cinematics.c
//
extern void UI_CinematicsMenu( void );
extern void UI_CinematicsMenu_f( void );
extern void UI_CinematicsMenu_Cache( void );
//
// ui_mods.c
//
extern void UI_ModsMenu( void );
extern void UI_ModsMenu_Cache( void );
//
// ui_cdkey.c
//
extern void UI_CDKeyMenu( void );
extern void UI_CDKeyMenu_Cache( void );
extern void UI_CDKeyMenu_f( void );
//
// ui_playermodel.c
//
extern void UI_PlayerModelMenu( void );
extern void PlayerModel_Cache( void );
//
// ui_playersettings.c
//
extern void UI_PlayerSettingsMenu( void );
extern void PlayerSettings_Cache( void );
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -