1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
/*
menu.h
Copyright (C) 2010-2019 Amf
This program 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.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define MENU_GREY 1
#define MENU_NOTE 2
#define MENU_RIGHT 4
#define MENU_CENTRE 8
#define MENU_DOUBLE 16
#define MENU_SORT 32
#define MENU_TOPSORT 64
#define MENU_DELETABLE 128
#define MENU_BOLD 256
#define MENU_INVISIBLE 512
#define MENU_SCROLLABLE 1024
#define MENU_EDITABLE 2048
#define MENU_EDITING 4096
#define MENU_SPACE 8192
#define MENU_TEXT 16384
#define MENU_NULL 0
#define MENU_QUIT 1
#define MENU_SELECT 2
#define MENU_DELETE 3
#define MENU_SCROLLLEFT 4
#define MENU_SCROLLRIGHT 5
#define MENU_RESIZE 6
#define LEVELMENU_RETURN 1
#define LEVELMENU_NEW 2
#define LEVELMENU_FILENAMES 4
#define LEVELMENU_DELETE 8
#define LEVELMENU_MAIN 16
#define LEVELMENU_MOVES 32
#define LEVELMENU_SAVED 64
#define LEVELMENU_SOLVED 128
#define LEVELMENU_CREATE 256
#define LEVELMENU_GAME 512
#define LEVELMENU_IMPORT 1024
#define LEVELMENU_FILTER 2048
#define MENU_KEY_ANY 1
enum {
MENUREDRAW_NONE,
MENUREDRAW_CHANGED,
MENUREDRAW_ENTRIES,
MENUREDRAW_ALL,
};
struct menuentry
{
struct menuentry *next;
struct menuentry *previous;
char *text;
char *text2;
char *text3;
char *text4;
char *value;
int redraw;
int flags;
char key;
};
struct menu
{
char *title;
struct menuentry *entry_first;
struct menuentry *entry_last;
struct menuentry *entry_selected;
struct menuentry *display_first;
struct menuentry *display_last;
int offset;
int redraw;
int logo;
};
/* menu.c */
struct menu *menu_new(char *);
struct menuentry *menuentry_new(struct menu *, char *, char, int);
struct menuentry *menuentry_newwithvalue(struct menu *, char *, char, int, char *);
void menu_delete(struct menu *);
void menu_unsort(struct menu *);
void menu_assignletters(struct menu *);
void menuentry_text(struct menuentry* pentry, char *text);
void menuentry_value(struct menuentry* pentry, char *value);
void menuentry_extratext(struct menuentry* pentry, char *text2, char *text3, char *text4);
int menu_levelselector(char *directory, char *chosen, char *title, int flags);
int menu_colourselector(char *directory, char *chosen, char *title, int flags);
/* $DISPLAYmenudisplay.c */
void menu_display(struct menu *, int);
int menu_process(struct menu *);
int menu_addfile(struct menu *, char *);
|