/[LeafOK_CVS]/lbbs/include/menu.h
ViewVC logotype

Contents of /lbbs/include/menu.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.13 - (show annotations)
Thu May 8 08:05:58 2025 UTC (10 months, 1 week ago) by sysadm
Branch: MAIN
Changes since 1.12: +1 -1 lines
Content type: text/x-chdr
Refact bbs_menu

1 /***************************************************************************
2 menu.h - description
3 -------------------
4 Copyright : (C) 2004-2025 by Leaflet
5 Email : leaflet@leafok.com
6 ***************************************************************************/
7
8 /***************************************************************************
9 * *
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 3 of the License, or *
13 * (at your option) any later version. *
14 * *
15 ***************************************************************************/
16
17 #ifndef _MENU_H_
18 #define _MENU_H_
19
20 #include "common.h"
21
22 #define MAX_MENUITEM_LENGTH 50
23 #define MAX_MENUITEMS 30
24 #define MAX_MENUNAME_LENGTH 256
25 #define MAX_MENUACTION_LENGTH 20
26 #define MAX_MENUTITLE_LENGTH 50
27 #define MAX_MENUS 256
28 #define MAX_MENU_DEPTH 50
29
30 struct _menu_item
31 {
32 int row, col, r_row, r_col;
33 char action[MAX_MENUACTION_LENGTH];
34 int submenu;
35 int priv, level, display;
36 char name[MAX_MENUNAME_LENGTH];
37 char text[MAX_MENUITEM_LENGTH];
38 };
39 typedef struct _menu_item MENU_ITEM;
40
41 struct _menu_title
42 {
43 int row, col, show;
44 char text[MAX_MENUTITLE_LENGTH];
45 };
46 typedef struct _menu_title MENU_TITLE;
47
48 struct _menu_screen
49 {
50 int row, col, show;
51 char filename[FILE_PATH_LEN];
52 };
53 typedef struct _menu_screen MENU_SCREEN;
54
55 struct _menu
56 {
57 char name[MAX_MENUNAME_LENGTH];
58 MENU_TITLE title;
59 MENU_SCREEN screen;
60 MENU_ITEM *items[MAX_MENUITEMS];
61 int item_count, item_cur_pos;
62 };
63 typedef struct _menu MENU;
64
65 struct _menu_set
66 {
67 char conf_file[FILE_PATH_LEN];
68 MENU *p_menu[MAX_MENUS];
69 MENU *p_menu_select[MAX_MENU_DEPTH];
70 int menu_count;
71 int menu_select_depth;
72 };
73 typedef struct _menu_set MENU_SET;
74
75 extern MENU_SET bbs_menu;
76
77 extern int load_menu(MENU_SET *p_menu_set, const char *conf_file);
78
79 extern void unload_menu(MENU_SET *p_menu_set);
80
81 extern int reload_menu(MENU_SET *p_menu_set);
82
83 extern int menu_control(MENU_SET *p_menu_set, int key);
84
85 extern int display_menu(MENU *p_menu);
86
87 extern int display_current_menu(MENU_SET *p_menu_set);
88
89 extern MENU *get_menu(MENU_SET *p_menu_set, const char *menu_name);
90
91 #endif //_MENU_H_

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1