Quake-2

Quake 2 GPL Source Release
Log | Files | Refs

p_menu.h (1427B)


      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 */
     20 
     21 enum {
     22 	PMENU_ALIGN_LEFT,
     23 	PMENU_ALIGN_CENTER,
     24 	PMENU_ALIGN_RIGHT
     25 };
     26 
     27 typedef struct pmenuhnd_s {
     28 	struct pmenu_s *entries;
     29 	int cur;
     30 	int num;
     31 	void *arg;
     32 } pmenuhnd_t;
     33 
     34 typedef void (*SelectFunc_t)(edict_t *ent, pmenuhnd_t *hnd);
     35 
     36 typedef struct pmenu_s {
     37 	char *text;
     38 	int align;
     39 	SelectFunc_t SelectFunc;
     40 } pmenu_t;
     41 
     42 pmenuhnd_t *PMenu_Open(edict_t *ent, pmenu_t *entries, int cur, int num, void *arg);
     43 void PMenu_Close(edict_t *ent);
     44 void PMenu_UpdateEntry(pmenu_t *entry, const char *text, int align, SelectFunc_t SelectFunc);
     45 void PMenu_Do_Update(edict_t *ent);
     46 void PMenu_Update(edict_t *ent);
     47 void PMenu_Next(edict_t *ent);
     48 void PMenu_Prev(edict_t *ent);
     49 void PMenu_Select(edict_t *ent);