2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
11 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
18 char description[100];
19 char * buttontext[17];
22 int function_number[100];
34 struct _gadget * prev; \
35 struct _gadget * next; \
36 struct _gadget * when_tab; \
37 struct _gadget * when_btab; \
38 struct _gadget * when_up; \
39 struct _gadget * when_down; \
40 struct _gadget * when_left; \
41 struct _gadget * when_right; \
42 struct _gadget * parent; \
45 grs_canvas * canvas; \
50 typedef struct _gadget {
52 unsigned char rsvd[256];
59 int (*user_function)(void);
67 short b1_double_clicked;
69 short b1_drag_x1, b1_drag_y1;
70 short b1_drag_x2, b1_drag_y2;
71 short b1_done_dragging;
74 short mouse_x, mouse_y;
85 int (*user_function)(void);
86 int (*user_function1)(void);
88 int dim_if_no_function;
102 } UI_GADGET_INPUTBOX;
125 int (*user_function)(void);
138 } UI_GADGET_CHECKBOX;
152 UI_GADGET_BUTTON * up_button;
153 UI_GADGET_BUTTON * down_button;
154 unsigned int last_scrolled;
155 short drag_x, drag_y;
159 } UI_GADGET_SCROLLBAR;
166 int num_items_displayed;
171 int old_current_item;
172 unsigned int last_scrolled;
175 UI_GADGET_SCROLLBAR * scrollbar;
179 typedef struct _ui_window {
182 short text_x, text_y;
184 grs_canvas * oldcanvas;
185 grs_bitmap * background;
187 UI_GADGET * keyboard_focus_gadget;
188 struct _ui_window * next;
189 struct _ui_window * prev;
193 short new_dx, new_dy;
200 short b1_last_status;
202 short b2_last_status;
204 short b3_last_status;
207 grs_bitmap * background;
208 grs_bitmap * pointer;
209 unsigned int time_lastpressed;
213 #define BUTTON_PRESSED 1
214 #define BUTTON_RELEASED 2
215 #define BUTTON_JUST_PRESSED 4
216 #define BUTTON_JUST_RELEASED 8
217 #define BUTTON_DOUBLE_CLICKED 16
219 #define B1_PRESSED (Mouse.b1_status & BUTTON_PRESSED)
220 #define B1_RELEASED (Mouse.b1_status & BUTTON_RELEASED)
221 #define B1_JUST_PRESSED (Mouse.b1_status & BUTTON_JUST_PRESSED)
222 #define B1_JUST_RELEASED (Mouse.b1_status & BUTTON_JUST_RELEASED)
223 #define B1_DOUBLE_CLICKED (Mouse.b1_status & BUTTON_DOUBLE_CLICKED)
225 extern grs_font * ui_small_font;
227 extern UI_MOUSE Mouse;
228 extern UI_WINDOW * CurWindow;
229 extern UI_WINDOW * FirstWindow;
230 extern UI_WINDOW * LastWindow;
232 extern unsigned char CBLACK,CGREY,CWHITE,CBRIGHT,CRED;
233 extern UI_GADGET * selected_gadget;
234 extern int last_keypress;
236 extern void Hline(short x1, short x2, short y );
237 extern void Vline(short y1, short y2, short x );
238 extern void ui_string_centered( short x, short y, char * s );
239 extern void ui_draw_box_out( short x1, short y1, short x2, short y2 );
240 extern void ui_draw_box_in( short x1, short y1, short x2, short y2 );
241 extern void ui_draw_line_in( short x1, short y1, short x2, short y2 );
246 int ui_messagebox( short x, short y, int NumButtons, char * text, ... );
247 void ui_string_centered( short x, short y, char * s );
248 int PopupMenu( int NumItems, char * text[] );
250 extern void ui_mouse_init(void);
251 extern grs_bitmap * ui_mouse_set_pointer( grs_bitmap * new );
253 extern void ui_mouse_process(void);
254 extern void ui_mouse_hide(void);
255 extern void ui_mouse_show(void);
259 #define WIN_SAVE_BG 4
260 #define WIN_DIALOG (4+2+1)
262 extern UI_WINDOW * ui_open_window( short x, short y, short w, short h, int flags );
263 extern void ui_close_window( UI_WINDOW * wnd );
265 extern UI_GADGET * ui_gadget_add( UI_WINDOW * wnd, short kind, short x1, short y1, short x2, short y2 );
266 extern UI_GADGET_BUTTON * ui_add_gadget_button( UI_WINDOW * wnd, short x, short y, short w, short h, char * text, int (*function_to_call)(void) );
267 extern void ui_gadget_delete_all( UI_WINDOW * wnd );
268 extern void ui_window_do_gadgets( UI_WINDOW * wnd );
269 extern void ui_draw_button( UI_GADGET_BUTTON * button );
271 extern int ui_mouse_on_gadget( UI_GADGET * gadget );
273 extern void ui_button_do( UI_GADGET_BUTTON * button, int keypress );
275 extern void ui_listbox_do( UI_GADGET_LISTBOX * listbox, int keypress );
276 extern void ui_draw_listbox( UI_GADGET_LISTBOX * listbox );
277 extern UI_GADGET_LISTBOX *ui_add_gadget_listbox(UI_WINDOW *wnd, short x, short y, short w, short h, short numitems, char **list);
279 extern void ui_mega_process(void);
281 extern void ui_get_button_size( char * text, int * width, int * height );
283 extern UI_GADGET_SCROLLBAR * ui_add_gadget_scrollbar( UI_WINDOW * wnd, short x, short y, short w, short h, int start, int stop, int position, int window_size );
284 extern void ui_scrollbar_do( UI_GADGET_SCROLLBAR * scrollbar, int keypress );
285 extern void ui_draw_scrollbar( UI_GADGET_SCROLLBAR * scrollbar );
288 extern void ui_wprintf( UI_WINDOW * wnd, char * format, ... );
289 extern void ui_wprintf_at( UI_WINDOW * wnd, short x, short y, char * format, ... );
291 extern void ui_draw_radio( UI_GADGET_RADIO * radio );
292 extern UI_GADGET_RADIO * ui_add_gadget_radio( UI_WINDOW * wnd, short x, short y, short w, short h, short group, char * text );
293 extern void ui_radio_do( UI_GADGET_RADIO * radio, int keypress );
294 extern void ui_radio_set_value(UI_GADGET_RADIO *radio, sbyte value);
296 extern void ui_draw_checkbox( UI_GADGET_CHECKBOX * checkbox );
297 extern UI_GADGET_CHECKBOX * ui_add_gadget_checkbox( UI_WINDOW * wnd, short x, short y, short w, short h, short group, char * text );
298 extern void ui_checkbox_do( UI_GADGET_CHECKBOX * checkbox, int keypress );
299 extern void ui_checkbox_check(UI_GADGET_CHECKBOX * checkbox, sbyte check);
301 extern UI_GADGET * ui_gadget_get_prev( UI_GADGET * gadget );
302 extern UI_GADGET * ui_gadget_get_next( UI_GADGET * gadget );
303 extern void ui_gadget_calc_keys( UI_WINDOW * wnd);
305 extern void ui_listbox_change(UI_WINDOW *wnd, UI_GADGET_LISTBOX *listbox, short numitems, char **list);
308 extern void ui_draw_inputbox( UI_GADGET_INPUTBOX * inputbox );
309 extern UI_GADGET_INPUTBOX * ui_add_gadget_inputbox( UI_WINDOW * wnd, short x, short y, short w, short h, char * text );
310 extern void ui_inputbox_do( UI_GADGET_INPUTBOX * inputbox, int keypress );
311 extern void ui_inputbox_set_text(UI_GADGET_INPUTBOX *inputbox, char *text);
314 extern void ui_userbox_do( UI_GADGET_USERBOX * userbox, int keypress );
315 extern UI_GADGET_USERBOX * ui_add_gadget_userbox( UI_WINDOW * wnd, short x, short y, short w, short h );
316 extern void ui_draw_userbox( UI_GADGET_USERBOX * userbox );
319 extern int MenuX( int x, int y, int NumButtons, char * text[] );
321 char **file_getdirlist(int *NumFiles, char *dir);
322 char **file_getfilelist(int *NumDirs, char *filespec, char *dir);
323 int ui_get_filename( char * filename, char * Filespec, char * message );
326 void * ui_malloc( int size );
327 void ui_free( void * buffer );
329 UI_GADGET_KEYTRAP * ui_add_gadget_keytrap( UI_WINDOW * wnd, int key_to_trap, int (*function_to_call)(void) );
330 void ui_keytrap_do( UI_GADGET_KEYTRAP * keytrap, int keypress );
332 void ui_mouse_close(void);
334 #define UI_RECORD_MOUSE 1
335 #define UI_RECORD_KEYS 2
336 #define UI_STATUS_NORMAL 0
337 #define UI_STATUS_RECORDING 1
338 #define UI_STATUS_PLAYING 2
339 #define UI_STATUS_FASTPLAY 3
341 int ui_record_events( int NumberOfEvents, UI_EVENT * buffer, int Flags );
342 int ui_play_events_realtime( int NumberOfEvents, UI_EVENT * buffer );
343 int ui_play_events_fast( int NumberOfEvents, UI_EVENT * buffer );
344 int ui_recorder_status(void);
345 void ui_set_playback_speed( int speed );
347 extern unsigned int ui_number_of_events;
348 extern unsigned int ui_event_counter;
351 int ui_get_file( char * filename, char * Filespec );
353 int MessageBoxN( short xc, short yc, int NumButtons, char * text, char * Button[] );
355 void ui_draw_icon( UI_GADGET_ICON * icon );
356 void ui_icon_do( UI_GADGET_ICON * icon, int keypress );
357 UI_GADGET_ICON * ui_add_gadget_icon( UI_WINDOW * wnd, char * text, short x, short y, short w, short h, int k,int (*f)(void) );
359 int GetKeyCode(char * text);
360 int DecodeKeyText( char * text );
361 void GetKeyDescription( char * text, int keypress );
363 extern void menubar_init(char * filename );
364 extern void menubar_do( int keypress );
365 extern void menubar_close(void);
366 extern void menubar_hide(void);
367 extern void menubar_show(void);
369 void ui_pad_init(void);
370 void ui_pad_close(void);
371 void ui_pad_activate( UI_WINDOW * wnd, int x, int y );
372 void ui_pad_deactivate(void);
373 void ui_pad_goto(int n);
374 void ui_pad_goto_next(void);
375 void ui_pad_goto_prev(void);
376 void ui_pad_read( int n, char * filename );
377 int ui_pad_get_current(void);
379 void ui_barbox_open( char * text, int length );
380 void ui_barbox_update( int position );
381 void ui_barbox_close(void);
383 void ui_reset_idle_seconds(void);
384 int ui_get_idle_seconds(void);
386 extern int ui_button_any_drawn;