File: select_box.h

package info (click to toggle)
taper 6.9rb-5
  • links: PTS
  • area: main
  • in suites: woody
  • size: 1,444 kB
  • ctags: 1,604
  • sloc: ansic: 15,921; makefile: 248
file content (133 lines) | stat: -rw-r--r-- 4,561 bytes parent folder | download | duplicates (3)
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/*
   Time-stamp: <98/06/07 11:35:55 yusuf>

   $Id: select_box.h,v 1.25 1998/06/07 04:19:42 yusuf Exp $
*/


#ifndef _FROM_MAIN_
#include "config.h"
#include <dirent.h>
#include <errno.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <curses.h>
#include <form.h>
#include <fcntl.h>
#include <sys/stat.h>
#endif

#include "memory.h"
#include "errors.h"

#define MAX_FNAME NAME_MAX

#define MB_OK 0					 /* message box values */
#define MB_YESNO 1
#define MB_WAIT 2
#define MB_OKCANCEL 3
#define MB_APPENDOVERWRITE 4
#define MB_RETRYABORT 5
#define MB_NOYES 6

#define SELECT_ABORT 0
#define SELECT_FINISHED 1
#define SELECT_TAB 2
#define SELECT_ENTER 3
#define SELECT_SEARCH 4
#define SELECT_GOTO 5

#define COLOR_MAIN 1
#define COLOR_DIALOG 2				 /* color of dialog box */
#define COLOR_STATUS 3				 /* status box colors */
#define COLOR_HELP 4
#define COLOR_DIRECTORY 5
#define COLOR_FORM 6


extern char dir_cur_dir[MAX_FNAME];

typedef struct {
    _s32 top_entry, cur_entry;
    int cursor_line;
} select_details;
extern char *make_permstring(char *s, mode_t perms);
extern void clear_sd(select_details *sd);


extern void my_init_windows(void);     
extern WINDOW *my_newwin(int nlines, int ncols, int beginy, int beginx);
extern void my_delwin(WINDOW *win);
extern void my_delwin_all(void);
extern void my_werase(WINDOW *win, int color);
extern _s32 max(_s32 a, _s32 b);
extern _s32 min(_s32 a, _s32 b);
extern void centre(WINDOW *win, int line, char *s, int color);
extern WINDOW *status_box(WINDOW *win, char *s, int line, int create, int no_lines);
extern void close_statusbox(WINDOW *win);
extern int message_box(char *s, int type);
extern int multi_message_box(char lns[][150], int count, int type, int centre);

typedef void (*print_screen) (WINDOW *win, _s32 top, char *p_scroll);
typedef void (*print_line) (WINDOW *win, _s32 cursor_entry, int cursor_line, char refresh);
typedef int (*tag_entry) (_s32 cursor_entry);
typedef void (*delete_entry) (select_details *sd, _s32 *no_sel);
typedef void (*entry_details) (select_details *sd);
typedef void (*refresh_screen) (void);
typedef void (*help_screen) (void);
typedef void (*sr_backupset) (int in_backup);
typedef void (*sr_restoreset) (void);

extern void adjust_cur_entry(WINDOW *win, select_details *sd, print_screen ps, char *p_scroll,
		      _u32 *no_entries, _s32 cur_entry);
extern int select_box(WINDOW *win, _s32 *no_entries,  select_details *sd,
		      print_screen ps, print_line pl, tag_entry te, tag_entry tE,
		      delete_entry de, refresh_screen rs, entry_details ed,
		      WINDOW *sel_win, _s32 *sel_no_entries,
		      select_details *sel_sd, print_screen sel_ps,
		      WINDOW *excl_win, _s32 *excl_no_entries,
		      select_details *excl_sd, print_screen excl_ps,
		      print_screen asterix, select_details *fdetails,
		      char *select_help, sr_backupset save_backupset,
		      sr_restoreset rest_backupset,
		      int allow_search, int allow_goto,
		      tag_entry ee, tag_entry eE, char *unselect_help);
extern void print_scroll_bar(WINDOW *win, _s32 no_entries, select_details *sd,
		      int s_len, int s_width, char *p_scroll);
extern int select_menu(WINDOW *win, char *menu_items[], int *in_op);


/* Stuff for directory selection */
struct direntry {	
    struct stat     info;
    struct stat     org_info;
    struct dirent   entry;
};


extern struct direntry      *directory;		 /* for the select directory */
extern struct direntry *sb_directory;
extern _s32 directory_count;			 /* routines */
extern char *global_cur_dir;
extern select_details dir_sd;
extern int dir_left_width;
extern int dir_screen_ylen;

typedef char (*modify_filename) (struct direntry *x, char *dir_name, char *prefix);
	      
extern void my_strcpy(char *dest, char *src, int maxlen);
extern void find_correct_sd(char *old_dir, select_details *sd, _s32 dir_count,
			    struct direntry *dir);
extern char *convert(char *s, _u32 num);
extern int read_dir(char *dir_name, char *prefix, modify_filename fn,
		    struct direntry **den, _s32 *den_count);
extern void get_file_type(char *s, umode_t mode);
extern void add_perm_string(char *s, char *a, int perm);
extern void print_dir(WINDOW *win, _s32 start, char *p_scroll);
extern void print_dir_line(WINDOW *win, struct direntry *entry, int line, 
			   char ref, int dir_left_width);
extern int select_file(char *start_dir, char *prefix, char *deflt, 
		       modify_filename fn, char change_dir);
extern int get_string(WINDOW *win, char *s, int maxlen, char *prompt);
extern int retryabort(char *s);