hc
2024-08-16 a24a44ff9ca902811b99aa9663d697cf452e08ef
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
/*
 * Copyright (C) 2008 Nir Tzachar <nir.tzachar@gmail.com?
 * Released under the terms of the GNU GPL v2.0.
 *
 * Derived from menuconfig.
 *
 */
 
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <locale.h>
#include <curses.h>
#include <menu.h>
#include <panel.h>
#include <form.h>
 
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
 
#include "ncurses.h"
 
#define max(a, b) ({\
       typeof(a) _a = a;\
       typeof(b) _b = b;\
       _a > _b ? _a : _b; })
 
#define min(a, b) ({\
       typeof(a) _a = a;\
       typeof(b) _b = b;\
       _a < _b ? _a : _b; })
 
typedef enum {
   NORMAL = 1,
   MAIN_HEADING,
   MAIN_MENU_BOX,
   MAIN_MENU_FORE,
   MAIN_MENU_BACK,
   MAIN_MENU_GREY,
   MAIN_MENU_HEADING,
   SCROLLWIN_TEXT,
   SCROLLWIN_HEADING,
   SCROLLWIN_BOX,
   DIALOG_TEXT,
   DIALOG_MENU_FORE,
   DIALOG_MENU_BACK,
   DIALOG_BOX,
   INPUT_BOX,
   INPUT_HEADING,
   INPUT_TEXT,
   INPUT_FIELD,
   FUNCTION_TEXT,
   FUNCTION_HIGHLIGHT,
   ATTR_MAX
} attributes_t;
extern attributes_t attributes[];
 
typedef enum {
   F_HELP = 1,
   F_SYMBOL = 2,
   F_INSTS = 3,
   F_CONF = 4,
   F_BACK = 5,
   F_SAVE = 6,
   F_LOAD = 7,
   F_SEARCH = 8,
   F_EXIT = 9,
} function_key;
 
void set_colors(void);
 
/* this changes the windows attributes !!! */
void print_in_middle(WINDOW *win,
       int starty,
       int startx,
       int width,
       const char *string,
       chtype color);
int get_line_length(const char *line);
int get_line_no(const char *text);
const char *get_line(const char *text, int line_no);
void fill_window(WINDOW *win, const char *text);
int btn_dialog(WINDOW *main_window, const char *msg, int btn_num, ...);
int dialog_inputbox(WINDOW *main_window,
       const char *title, const char *prompt,
       const char *init, char **resultp, int *result_len);
void refresh_all_windows(WINDOW *main_window);
void show_scroll_win(WINDOW *main_window,
       const char *title,
       const char *text);