linux-bk/scripts/lxdialog/dialog.h
<<
>>
Prefs
   1
   2/*
   3 *  dialog.h -- common declarations for all dialog modules
   4 *
   5 *  AUTHOR: Savio Lam (lam836@cs.cuhk.hk)
   6 *
   7 *  This program is free software; you can redistribute it and/or
   8 *  modify it under the terms of the GNU General Public License
   9 *  as published by the Free Software Foundation; either version 2
  10 *  of the License, or (at your option) any later version.
  11 *
  12 *  This program is distributed in the hope that it will be useful,
  13 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  14 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15 *  GNU General Public License for more details.
  16 *
  17 *  You should have received a copy of the GNU General Public License
  18 *  along with this program; if not, write to the Free Software
  19 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  20 */
  21
  22#include <sys/types.h>
  23#include <fcntl.h>
  24#include <unistd.h>
  25#include <ctype.h>
  26#include <stdlib.h>
  27#include <string.h>
  28
  29#ifdef __sun__
  30#define CURS_MACROS
  31#endif
  32#include CURSES_LOC
  33
  34/*
  35 * Colors in ncurses 1.9.9e do not work properly since foreground and
  36 * background colors are OR'd rather than separately masked.  This version
  37 * of dialog was hacked to work with ncurses 1.9.9e, making it incompatible
  38 * with standard curses.  The simplest fix (to make this work with standard
  39 * curses) uses the wbkgdset() function, not used in the original hack.
  40 * Turn it off if we're building with 1.9.9e, since it just confuses things.
  41 */
  42#if defined(NCURSES_VERSION) && defined(_NEED_WRAP) && !defined(GCC_PRINTFLIKE)
  43#define OLD_NCURSES 1
  44#undef  wbkgdset
  45#define wbkgdset(w,p) /*nothing*/
  46#else
  47#define OLD_NCURSES 0
  48#endif
  49
  50#define TR(params) _tracef params
  51
  52#define ESC 27
  53#define TAB 9
  54#define MAX_LEN 2048
  55#define BUF_SIZE (10*1024)
  56#define MIN(x,y) (x < y ? x : y)
  57#define MAX(x,y) (x > y ? x : y)
  58
  59
  60#ifndef ACS_ULCORNER
  61#define ACS_ULCORNER '+'
  62#endif
  63#ifndef ACS_LLCORNER
  64#define ACS_LLCORNER '+'
  65#endif
  66#ifndef ACS_URCORNER
  67#define ACS_URCORNER '+'
  68#endif
  69#ifndef ACS_LRCORNER
  70#define ACS_LRCORNER '+'
  71#endif
  72#ifndef ACS_HLINE
  73#define ACS_HLINE '-'
  74#endif
  75#ifndef ACS_VLINE
  76#define ACS_VLINE '|'
  77#endif
  78#ifndef ACS_LTEE
  79#define ACS_LTEE '+'
  80#endif
  81#ifndef ACS_RTEE
  82#define ACS_RTEE '+'
  83#endif
  84#ifndef ACS_UARROW
  85#define ACS_UARROW '^'
  86#endif
  87#ifndef ACS_DARROW
  88#define ACS_DARROW 'v'
  89#endif
  90
  91/* 
  92 * Attribute names
  93 */
  94#define screen_attr                   attributes[0]
  95#define shadow_attr                   attributes[1]
  96#define dialog_attr                   attributes[2]
  97#define title_attr                    attributes[3]
  98#define border_attr                   attributes[4]
  99#define button_active_attr            attributes[5]
 100#define button_inactive_attr          attributes[6]
 101#define button_key_active_attr        attributes[7]
 102#define button_key_inactive_attr      attributes[8]
 103#define button_label_active_attr      attributes[9]
 104#define button_label_inactive_attr    attributes[10]
 105#define inputbox_attr                 attributes[11]
 106#define inputbox_border_attr          attributes[12]
 107#define searchbox_attr                attributes[13]
 108#define searchbox_title_attr          attributes[14]
 109#define searchbox_border_attr         attributes[15]
 110#define position_indicator_attr       attributes[16]
 111#define menubox_attr                  attributes[17]
 112#define menubox_border_attr           attributes[18]
 113#define item_attr                     attributes[19]
 114#define item_selected_attr            attributes[20]
 115#define tag_attr                      attributes[21]
 116#define tag_selected_attr             attributes[22]
 117#define tag_key_attr                  attributes[23]
 118#define tag_key_selected_attr         attributes[24]
 119#define check_attr                    attributes[25]
 120#define check_selected_attr           attributes[26]
 121#define uarrow_attr                   attributes[27]
 122#define darrow_attr                   attributes[28]
 123
 124/* number of attributes */
 125#define ATTRIBUTE_COUNT               29
 126
 127/*
 128 * Global variables
 129 */
 130extern bool use_colors;
 131extern bool use_shadow;
 132
 133extern chtype attributes[];
 134
 135extern const char *backtitle;
 136
 137/*
 138 * Function prototypes
 139 */
 140extern void create_rc (const char *filename);
 141extern int parse_rc (void);
 142
 143
 144void init_dialog (void);
 145void end_dialog (void);
 146void attr_clear (WINDOW * win, int height, int width, chtype attr);
 147void dialog_clear (void);
 148void color_setup (void);
 149void print_autowrap (WINDOW * win, const char *prompt, int width, int y, int x);
 150void print_button (WINDOW * win, const char *label, int y, int x, int selected);
 151void draw_box (WINDOW * win, int y, int x, int height, int width, chtype box,
 152                chtype border);
 153void draw_shadow (WINDOW * win, int y, int x, int height, int width);
 154
 155int first_alpha (const char *string, const char *exempt);
 156int dialog_yesno (const char *title, const char *prompt, int height, int width);
 157int dialog_msgbox (const char *title, const char *prompt, int height,
 158                int width, int pause);
 159int dialog_textbox (const char *title, const char *file, int height, int width);
 160int dialog_menu (const char *title, const char *prompt, int height, int width,
 161                int menu_height, const char *choice, int item_no, 
 162                const char * const * items);
 163int dialog_checklist (const char *title, const char *prompt, int height,
 164                int width, int list_height, int item_no,
 165                const char * const * items, int flag);
 166extern unsigned char dialog_input_result[];
 167int dialog_inputbox (const char *title, const char *prompt, int height,
 168                int width, const char *init);
 169
 170/*
 171 * This is the base for fictitious keys, which activate
 172 * the buttons.
 173 *
 174 * Mouse-generated keys are the following:
 175 *   -- the first 32 are used as numbers, in addition to '0'-'9'
 176 *   -- the lowercase are used to signal mouse-enter events (M_EVENT + 'o')
 177 *   -- uppercase chars are used to invoke the button (M_EVENT + 'O')
 178 */
 179#define M_EVENT (KEY_MAX+1)
 180
 181
 182/*
 183 * The `flag' parameter in checklist is used to select between
 184 * radiolist and checklist
 185 */
 186#define FLAG_CHECK 1
 187#define FLAG_RADIO 0
 188
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.