22#ifndef MADS_CORE_WINDOW_H
23#define MADS_CORE_WINDOW_H
25#include "mads/core/general.h"
29#define WINDOW_DETECT_VALID 0
30#define WINDOW_DETECT_START -1
31#define WINDOW_DETECT_NOTHING -2
32#define WINDOW_DETECT_SCROLL -3
33#define WINDOW_DETECT_SCROLL_LOWER -4
34#define WINDOW_DETECT_SCROLL_HIGHER -5
35#define WINDOW_DETECT_PAGE_LOWER -6
36#define WINDOW_DETECT_PAGE_HIGHER -7
37#define WINDOW_DETECT_LOWER -8
38#define WINDOW_DETECT_HIGHER -9
42#define window_shadow_color colorbyte(hi_black,black)
43#define abort_color colorbyte(black, white)
45#define ul_corner 0x0da
46#define ur_corner 0x0bf
47#define ll_corner 0x0c0
48#define lr_corner 0x0d9
50#define horiz_frame 0x0c4
51#define vert_frame 0x0b3
53#define upper_join 0x0c2
54#define lower_join 0x0c1
55#define left_join 0x0c3
56#define right_join 0x0b4
62#define scroll_bar 0x0b2
63#define thumb_mark 0x008
65#define down_mark 0x019
66#define left_mark 0x01b
67#define right_mark 0x01a
69#define WINDOW_MAX_TRAP_ROUTINES 8
71#define WINDOW_SINGLE 0x01
72#define WINDOW_DOUBLE 0x02
73#define WINDOW_OBESE 0x03
76 int ul_x, ul_y, lr_x, lr_y;
97extern int window_box_mode;
98extern int window_num_trap_routines;
99extern byte *window_trap_routine[WINDOW_MAX_TRAP_ROUTINES];
100extern char window_trap_string[WINDOW_MAX_TRAP_ROUTINES][80];
102extern byte *window_incoming_string;
103extern int window_display_string;
109extern void window_set(
WindowPtr window,
int ul_x,
int ul_y,
int lr_x,
int lr_y);
114extern void window_line_across(
WindowPtr window,
int line_y);
119extern void window_color(
WindowPtr window,
int new_color);
124extern void window_wipe(
WindowPtr window);
129extern void window_shadow(
WindowPtr window);
132 int left_or_bottom,
long min_value,
long max_value,
long scroll_value,
133 long page_value,
int normal_color,
int select_color);
135extern long window_translate_thumb(
ScrollBarPtr scroll,
long current_value);
136extern long window_make_thumb(
ScrollBarPtr scroll,
long current_value);
137extern long window_draw_thumb(
ScrollBarPtr scroll,
long current_value);
138extern int window_scrollbar_detect(
ScrollBarPtr scroll,
int x,
int y,
139 long value,
long *new_value,
int prior_detect);
140extern int window_detect(
ScrollBarPtr scroll,
int x,
int y,
long value,
long *new_value,
141 int prior_detect,
long base_value,
long value_mult);
142extern int window_vert_detect(
WindowPtr window,
int x,
int y,
143 int tight_vert,
int tight_horiz);
148extern void window_horiz_scrollbar(
WindowPtr window,
int bar_color);
153extern void window_vert_scrollbar(
WindowPtr window,
int bar_color);
158extern void window_title(
WindowPtr window,
const char *title,
int title_color,
int background_color);
159extern void window_abort(
const char *message);
160extern byte *window_create(
WindowPtr window);
161extern void window_destroy(
WindowPtr window);
162extern int window_normal_color(
WindowPtr window);
163extern int window_line_width(
WindowPtr window);
164extern void window_text_setup(
WindowPtr window,
int follow);
165extern void window_init_screen(
WindowPtr main_window,
const char *prog_name,
const char *prog_author,
166 const char *prog_version,
const char *lib_version_no,
const char *compile_date);
167extern void window_draw_box(
WindowPtr window,
int type);
187extern void window_trap_output(
WindowPtr window,
void (*(any_char_routine))(),
188 const char *trap_string, ...);
193extern void window_restore_output();
195extern void window_define(
WindowPtr window,
int x1,
int y1,
int x2,
int y2,
196 int color,
int shadow,
int save);
197extern void window_center(
WindowPtr window,
const char *text,
int line,
int color);
198extern int window_show(
WindowPtr window,
const char *text,
int xx,
int yy);
199extern void window_repeat(
WindowPtr window,
char wipe_item,
int x1,
int x2,
int y1);
200extern void window_wipe_line(
WindowPtr window,
int yy);
201extern int window_printf(
WindowPtr window,
int x,
int y,
const char *
string, ...);
202extern void window_clear(
WindowPtr window);
203extern int window_show_color(
WindowPtr window,
const char *text,
int xx,
int yy,
int color);
204extern void window_10_install();
205extern void window_10_remove();