Annotation of quake2/client/qmenu.h, revision 1.1.1.2

1.1.1.2 ! root        1: /*
        !             2: Copyright (C) 1997-2001 Id Software, Inc.
        !             3: 
        !             4: This program is free software; you can redistribute it and/or
        !             5: modify it under the terms of the GNU General Public License
        !             6: as published by the Free Software Foundation; either version 2
        !             7: of the License, or (at your option) any later version.
        !             8: 
        !             9: This program is distributed in the hope that it will be useful,
        !            10: but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            11: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
        !            12: 
        !            13: See the GNU General Public License for more details.
        !            14: 
        !            15: You should have received a copy of the GNU General Public License
        !            16: along with this program; if not, write to the Free Software
        !            17: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
        !            18: 
        !            19: */
1.1       root       20: #ifndef __QMENU_H__
                     21: #define __QMENU_H__
                     22: 
                     23: #define MAXMENUITEMS   64
                     24: 
                     25: #define MTYPE_SLIDER           0
                     26: #define MTYPE_LIST                     1
                     27: #define MTYPE_ACTION           2
                     28: #define MTYPE_SPINCONTROL      3
                     29: #define MTYPE_SEPARATOR        4
                     30: #define MTYPE_FIELD                    5
                     31: 
                     32: #define        K_TAB                   9
                     33: #define        K_ENTER                 13
                     34: #define        K_ESCAPE                27
                     35: #define        K_SPACE                 32
                     36: 
                     37: // normal keys should be passed as lowercased ascii
                     38: 
                     39: #define        K_BACKSPACE             127
                     40: #define        K_UPARROW               128
                     41: #define        K_DOWNARROW             129
                     42: #define        K_LEFTARROW             130
                     43: #define        K_RIGHTARROW    131
                     44: 
                     45: #define QMF_LEFT_JUSTIFY       0x00000001
                     46: #define QMF_GRAYED                     0x00000002
                     47: #define QMF_NUMBERSONLY                0x00000004
                     48: 
                     49: typedef struct _tag_menuframework
                     50: {
                     51:        int x, y;
                     52:        int     cursor;
                     53: 
                     54:        int     nitems;
                     55:        int nslots;
                     56:        void *items[64];
                     57: 
                     58:        const char *statusbar;
                     59: 
                     60:        void (*cursordraw)( struct _tag_menuframework *m );
                     61:        
                     62: } menuframework_s;
                     63: 
                     64: typedef struct
                     65: {
                     66:        int type;
                     67:        const char *name;
                     68:        int x, y;
                     69:        menuframework_s *parent;
                     70:        int cursor_offset;
                     71:        int     localdata[4];
                     72:        unsigned flags;
                     73: 
                     74:        const char *statusbar;
                     75: 
                     76:        void (*callback)( void *self );
                     77:        void (*statusbarfunc)( void *self );
                     78:        void (*ownerdraw)( void *self );
                     79:        void (*cursordraw)( void *self );
                     80: } menucommon_s;
                     81: 
                     82: typedef struct
                     83: {
                     84:        menucommon_s generic;
                     85: 
                     86:        char            buffer[80];
                     87:        int                     cursor;
                     88:        int                     length;
                     89:        int                     visible_length;
                     90:        int                     visible_offset;
                     91: } menufield_s;
                     92: 
                     93: typedef struct 
                     94: {
                     95:        menucommon_s generic;
                     96: 
                     97:        float minvalue;
                     98:        float maxvalue;
                     99:        float curvalue;
                    100: 
                    101:        float range;
                    102: } menuslider_s;
                    103: 
                    104: typedef struct
                    105: {
                    106:        menucommon_s generic;
                    107: 
                    108:        int curvalue;
                    109: 
                    110:        const char **itemnames;
                    111: } menulist_s;
                    112: 
                    113: typedef struct
                    114: {
                    115:        menucommon_s generic;
                    116: } menuaction_s;
                    117: 
                    118: typedef struct
                    119: {
                    120:        menucommon_s generic;
                    121: } menuseparator_s;
                    122: 
                    123: qboolean Field_Key( menufield_s *field, int key );
                    124: 
                    125: void   Menu_AddItem( menuframework_s *menu, void *item );
                    126: void   Menu_AdjustCursor( menuframework_s *menu, int dir );
                    127: void   Menu_Center( menuframework_s *menu );
                    128: void   Menu_Draw( menuframework_s *menu );
                    129: void   *Menu_ItemAtCursor( menuframework_s *m );
                    130: qboolean Menu_SelectItem( menuframework_s *s );
                    131: void   Menu_SetStatusBar( menuframework_s *s, const char *string );
                    132: void   Menu_SlideItem( menuframework_s *s, int dir );
                    133: int            Menu_TallySlots( menuframework_s *menu );
                    134: 
                    135: void    Menu_DrawString( int, int, const char * );
                    136: void    Menu_DrawStringDark( int, int, const char * );
                    137: void    Menu_DrawStringR2L( int, int, const char * );
                    138: void    Menu_DrawStringR2LDark( int, int, const char * );
                    139: 
                    140: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.