This is forms.h in view mode; [Download] [Up]
/************************************************************************ * * * Forms is a library for building up dialogue and interaction boxes. * * It is based of the Silicon Graphics Graphical Library. * * * * This software is public domain. It may not be resold. * * * * Written by: Mark Overmars * * Department of Computer Science * * University of Utrecht * * P.O. Box 80.089 * * 3508 TB Utrecht, the Netherlands * * Email: markov@cs.ruu.nl * * * * Version 2.0 a * * Date: Nov 26, 1991 * ************************************************************************/ #ifndef __FORMS_H__ #define __FORMS_H__ #if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) extern "C" { #endif #include <stddef.h> #include <gl/gl.h> /************ The type OBJECT ************/ #define FL_LABEL_SIZE 64 #define FL_SHORTCUT_SIZE 32 struct forms; typedef struct objs { int objclass; /* What type of object */ int type; /* The type within the class */ int boxtype; /* The type of the bounding box */ float x,y,w,h; /* The bounding box */ int col1,col2; /* Two possible colors */ char label[FL_LABEL_SIZE]; /* The label */ int align; /* Label or text alignment */ int lcol; /* Color of the label */ float lsize; /* Size of the label */ int lstyle; /* Style of the text label */ char shortcut[FL_SHORTCUT_SIZE]; /* The list of shortcuts */ int (*handle)(struct objs *, int, float, float, char); /* Handling procedure. */ int *spec; /* pointer to special stuff for object */ int pushed; /* wheter pushed */ int focus; /* wheter focussed */ int belowmouse; /* Whether currently below the mouse */ int frozen; /* Whether it will be redrawn */ int active; /* Whether active */ int input; /* Whether receiving input */ int visible; /* Whether being displayed */ int radio; /* Whether a radio object */ int automatic; /* Whether this object gets timer events */ void (*object_call_back)(struct objs *, long); /* The call-back routine */ long argument; /* Its argument */ struct objs *next; /* Next object in the form */ struct objs *prev; /* Previous object in the form */ struct forms *form; /* Form to which object belong */ } FL_OBJECT; /************ The type FORM ************/ typedef struct forms { long window; /* Window of the form */ float w,h; /* The size of the form */ long x,y; /* Position of form on screen */ int deactivated; /* Whether deactivated */ int visible; /* Whether being displayed */ int frozen; /* When true no redraws are performed */ int doublebuf; /* Whether in double buffer mode */ void (*form_call_back)(struct objs *); /* The call-back routine */ struct objs *first; /* First object in the form */ struct objs *last; /* Last object in the form */ struct objs *focusobj; /* Object to which input is directed */ } FL_FORM; /************ General Constants ************/ #ifndef NULL #define NULL 0 #endif #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE 1 #endif /***** Placement *****/ #define FL_PLACE_FREE 0 #define FL_PLACE_SIZE 1 #define FL_PLACE_ASPECT 2 #define FL_PLACE_MOUSE 3 #define FL_PLACE_CENTER 4 #define FL_PLACE_POSITION 5 /***** Finds *****/ #define FL_FIND_INPUT 0 #define FL_FIND_AUTOMATIC 1 #define FL_FIND_MOUSE 2 /***** Special Objects *****/ #define FL_BEGIN_GROUP 10000 #define FL_END_GROUP 20000 /***** Alignments *****/ #define FL_ALIGN_TOP 0 #define FL_ALIGN_BOTTOM 1 #define FL_ALIGN_LEFT 2 #define FL_ALIGN_RIGHT 3 #define FL_ALIGN_CENTER 4 /***** Bounding boxes *****/ #define FL_NO_BOX 0 #define FL_UP_BOX 1 #define FL_DOWN_BOX 2 #define FL_FLAT_BOX 3 #define FL_BORDER_BOX 4 #define FL_SHADOW_BOX 5 #define FL_FRAME_BOX 6 #define FL_ROUNDED_BOX 7 #define FL_RFLAT_BOX 8 #define FL_RSHADOW_BOX 9 /***** Boundary Colors *****/ #define FL_TOP_BOUND_COL 51 #define FL_LEFT_BOUND_COL 55 #define FL_BOT_BOUND_COL 40 #define FL_RIGHT_BOUND_COL 35 #define FL_COL1 47 #define FL_MCOL 49 #define FL_LCOL 0 #define FL_BOUND_WIDTH 3.0 /***** Events *****/ #define FL_DRAW 0 #define FL_PUSH 1 #define FL_RELEASE 2 #define FL_ENTER 3 #define FL_LEAVE 4 #define FL_MOUSE 5 #define FL_FOCUS 6 #define FL_UNFOCUS 7 #define FL_KEYBOARD 8 #define FL_STEP 9 #define FL_MOVE 10 /***** Font *****/ #define FL_FONT_NAME "Helvetica" #define FL_FONT_BOLDNAME "Helvetica-Bold" #define FL_FONT_ITALICNAME "Helvetica-Oblique" #define FL_FONT_FIXEDNAME "Courier" #define FL_FONT_ICONNAME "Icon" #define FL_SMALL_FONT 8.0 #define FL_NORMAL_FONT 11.0 #define FL_LARGE_FONT 20.0 #define FL_NORMAL_STYLE 0 #define FL_BOLD_STYLE 1 #define FL_ITALIC_STYLE 2 #define FL_FIXED_STYLE 3 #define FL_ENGRAVED_STYLE 4 #define FL_ICON_STYLE 5 /************ General Routines ************/ /***** In objects.c *****/ typedef int (*FL_HANDLEPTR)(FL_OBJECT *, int , float, float, char); FL_FORM *fl_make_form(float,float); FL_OBJECT *fl_make_object(int,int,float,float,float,float,char [], FL_HANDLEPTR); void fl_free_object(FL_OBJECT *); void fl_free_form(FL_FORM *); void fl_add_object(FL_FORM *, FL_OBJECT*); void fl_insert_object(FL_OBJECT *, FL_OBJECT*); void fl_delete_object(FL_OBJECT *); void fl_set_object_align(FL_OBJECT *, int); void fl_set_object_boxtype(FL_OBJECT *, int); void fl_set_object_color(FL_OBJECT *, int, int); void fl_set_object_label(FL_OBJECT *, char []); void fl_set_object_lcol(FL_OBJECT *, int); void fl_set_object_lsize(FL_OBJECT *, float ); void fl_set_object_lstyle(FL_OBJECT *, int); void fl_show_object(FL_OBJECT *); void fl_hide_object(FL_OBJECT *); void fl_set_object_focus(FL_FORM *, FL_OBJECT *); void fl_set_object_shortcut(FL_OBJECT *, char []); FL_OBJECT *fl_find_object(FL_OBJECT *, int, float, float); FL_OBJECT *fl_find_first(FL_FORM *, int, float, float); FL_OBJECT *fl_find_last(FL_FORM *, int, float, float); void fl_redraw_object(FL_OBJECT *); void fl_redraw_form(FL_FORM *); void fl_freeze_object(FL_OBJECT *); void fl_unfreeze_object(FL_OBJECT *); void fl_freeze_form(FL_FORM *); void fl_unfreeze_form(FL_FORM *); void fl_handle_object(FL_OBJECT *, int, float, float, char); int fl_handle_object_direct(FL_OBJECT *, int, float, float, char); /***** In forms.c *****/ extern FL_FORM *fl_current_form; FL_FORM *fl_bgn_form(int, float, float); void fl_end_form(void); void fl_addto_form(FL_FORM *); FL_OBJECT *fl_bgn_group(void); FL_OBJECT *fl_end_group(void); void fl_set_form_position(FL_FORM *, long, long); long fl_show_form(FL_FORM *, int, int, char *); void fl_hide_form(FL_FORM *); FL_OBJECT *fl_do_forms(void); FL_OBJECT *fl_check_forms(void); FL_OBJECT *fl_do_only_forms(void); FL_OBJECT *fl_check_only_forms(void); void fl_activate_form(FL_FORM *); void fl_deactivate_form(FL_FORM *); void fl_activate_all_forms(); void fl_deactivate_all_forms(); /***** In events.c *****/ extern FL_OBJECT *FL_EVENT; typedef void (*FL_CALLBACKPTR)(FL_OBJECT *, long); typedef void (*FL_FORMCALLBACKPTR)(FL_OBJECT *); typedef void (*FL_EVENTCALLBACKPTR)(short, short); void fl_init_events(); void fl_set_call_back(FL_OBJECT *, FL_CALLBACKPTR, long); void fl_set_event_call_back(FL_EVENTCALLBACKPTR); void fl_set_form_call_back(FL_FORM *, FL_FORMCALLBACKPTR); void fl_qdevice(Device); void fl_unqdevice(Device); int fl_isqueued(Device); long fl_qtest(void); long fl_qread(short *); long fl_blkqread(short *, short); void fl_qreset(void); void fl_qenter(short,short); void fl_tie(Device, Device, Device); void fl_treat_user_event(void); FL_OBJECT *fl_object_qtest(void); FL_OBJECT *fl_object_qread(void); void fl_object_qenter(FL_OBJECT *); /***** In goodies.c *****/ long fl_show_buttonbox(void); void fl_hide_buttonbox(void); void fl_set_buttonbox_label(int, char []); void fl_show_message(char [], char[], char []); int fl_show_question(char [], char[], char []); int fl_show_choice(char [], char[], char [], int,char [], char[], char []); char *fl_show_input(char[], char[]); int fl_show_colormap(int); /***** In fselect.c *****/ char *fl_show_file_selector(char [], char [], char [], char []); char *fl_get_directory(); char *fl_get_pattern(); char *fl_get_filename(); /***** In draw.c *****/ void fl_get_mouse(float *, float *); void fl_set_clipping(float, float, float, float); void fl_unset_clipping(void); void fl_init_fonts(); void fl_set_font(char [], char [], char [], char[]); float fl_get_char_height(float, int); float fl_get_char_width(float, int, char); float fl_get_string_width(float, int, char []); void fl_init_colormap(); void fl_color(int); void fl_mapcolor(int, short, short, short); void fl_getmcolor(int, short *, short *, short *); void fl_line(float, float, float, float, int); void fl_rect(float, float, float, float, int); void fl_bound(float, float, float, float, int); void fl_rectbound(float, float, float, float, int); void fl_drw_box(int ,float, float, float, float, int,float); void fl_drw_text(int, float, float, float, float, int, float, int, char[]); void fl_drw_text_beside(int, float, float, float, float, int, float, int, char[]); void fl_drw_text_cursor(int, float, float, float, float, int, float, int, char[], int, int); /***** In symbols.c *****/ typedef void (*FL_DRAWPTR)(int); void fl_init_symbols(); int fl_add_symbol(char [], FL_DRAWPTR, int); int fl_draw_symbol(char [], float, float, float,float, int); /***** In support.c *****/ extern int fl_rgbmode; extern int fl_doublebuf; void fl_init(); void fl_set_graphics_mode(int, int); void fl_show_errors(int); void fl_error(char [], char []); void *fl_malloc(size_t); /************************* The Classes ***********************/ /************ Object Class: Bitmap ************/ /***** Class *****/ #define FL_BITMAP 3 /***** Types *****/ #define FL_NORMAL_BITMAP 0 /***** Defaults *****/ #define FL_BITMAP_BOXTYPE FL_NO_BOX #define FL_BITMAP_COL1 0 #define FL_BITMAP_COL2 FL_COL1 #define FL_BITMAP_LCOL FL_LCOL #define FL_BITMAP_ALIGN FL_ALIGN_BOTTOM /***** Others *****/ #define FL_BITMAP_MAXSIZE 128*128 #define FL_BITMAP_BW FL_BOUND_WIDTH /***** Routines *****/ FL_OBJECT *fl_create_bitmap(int, float, float, float, float, char []); FL_OBJECT *fl_add_bitmap(int, float, float, float, float, char []); void fl_set_bitmap(FL_OBJECT *, int, int, char *); /************ Object Class: Box ************/ /***** Class *****/ #define FL_BOX 1 /***** Types *****/ /* See the bouding boxes */ /***** Defaults *****/ #define FL_BOX_BOXTYPE FL_UP_BOX #define FL_BOX_COL1 FL_COL1 #define FL_BOX_LCOL FL_LCOL #define FL_BOX_ALIGN FL_ALIGN_CENTER /***** Others *****/ #define FL_BOX_BW FL_BOUND_WIDTH /***** Routines *****/ FL_OBJECT *fl_create_box(int, float, float, float, float, char []); FL_OBJECT *fl_add_box(int, float, float, float, float, char []); /************ Object Class: Browser ************/ /***** Class *****/ #define FL_BROWSER 71 /***** Types *****/ #define FL_NORMAL_BROWSER 0 #define FL_SELECT_BROWSER 1 #define FL_HOLD_BROWSER 2 #define FL_MULTI_BROWSER 3 /***** Defaults *****/ #define FL_BROWSER_BOXTYPE FL_DOWN_BOX #define FL_BROWSER_COL1 FL_COL1 #define FL_BROWSER_COL2 3 #define FL_BROWSER_LCOL FL_LCOL #define FL_BROWSER_ALIGN FL_ALIGN_BOTTOM /***** Others *****/ #define FL_BROWSER_SLCOL FL_COL1 #define FL_BROWSER_BW FL_BOUND_WIDTH #define FL_BROWSER_LINELENGTH 128 #define FL_BROWSER_MAXLINE 512 /***** Routines *****/ FL_OBJECT *fl_create_browser(int, float, float, float, float, char []); FL_OBJECT *fl_add_browser(int, float, float, float, float, char []); void fl_set_browser_topline(FL_OBJECT *, int); void fl_clear_browser(FL_OBJECT *); void fl_add_browser_line(FL_OBJECT *, char []); void fl_addto_browser(FL_OBJECT *, char []); void fl_insert_browser_line(FL_OBJECT *, int , char []); void fl_delete_browser_line(FL_OBJECT *, int ); void fl_replace_browser_line(FL_OBJECT *, int , char []); char *fl_get_browser_line(FL_OBJECT *, int); int fl_load_browser(FL_OBJECT *, char []); int fl_get_browser_maxline(FL_OBJECT *); void fl_select_browser_line(FL_OBJECT *, int ); void fl_deselect_browser_line(FL_OBJECT *, int ); void fl_deselect_browser(FL_OBJECT *); int fl_isselected_browser_line(FL_OBJECT *, int ); int fl_get_browser(FL_OBJECT *); void fl_set_browser_fontsize(FL_OBJECT *, float); void fl_set_browser_fontstyle(FL_OBJECT *, int); void fl_set_browser_specialkey(FL_OBJECT *, char); /************ Object Class: Button ************/ /***** Class *****/ #define FL_BUTTON 11 /***** Types *****/ #define FL_NORMAL_BUTTON 0 #define FL_PUSH_BUTTON 1 #define FL_RADIO_BUTTON 2 #define FL_HIDDEN_BUTTON 3 #define FL_TOUCH_BUTTON 4 #define FL_INOUT_BUTTON 5 #define FL_RETURN_BUTTON 6 #define FL_HIDDEN_RET_BUTTON 7 /***** Defaults *****/ #define FL_BUTTON_BOXTYPE FL_UP_BOX #define FL_BUTTON_COL1 FL_COL1 #define FL_BUTTON_COL2 FL_COL1 #define FL_BUTTON_LCOL FL_LCOL #define FL_BUTTON_ALIGN FL_ALIGN_CENTER /***** Others *****/ #define FL_BUTTON_MCOL1 FL_MCOL #define FL_BUTTON_MCOL2 FL_MCOL #define FL_BUTTON_BW FL_BOUND_WIDTH /***** Routines *****/ FL_OBJECT *fl_create_button(int, float, float, float, float, char []); FL_OBJECT *fl_add_button(int, float, float, float, float, char []); int fl_get_button(FL_OBJECT *); void fl_set_button(FL_OBJECT *, int); void fl_set_button_shortcut(FL_OBJECT *, char []); /************ Object Class: Chart ************/ /***** Class *****/ #define FL_CHART 4 /***** Types *****/ #define FL_BAR_CHART 0 #define FL_HORBAR_CHART 1 #define FL_LINE_CHART 2 #define FL_FILLED_CHART 3 #define FL_SPIKE_CHART 4 #define FL_PIE_CHART 5 #define FL_SPECIALPIE_CHART 6 /***** Defaults *****/ #define FL_CHART_BOXTYPE FL_BORDER_BOX #define FL_CHART_COL1 FL_COL1 #define FL_CHART_LCOL FL_LCOL #define FL_CHART_ALIGN FL_ALIGN_BOTTOM /***** Others *****/ #define FL_CHART_BW FL_BOUND_WIDTH #define FL_CHART_MAX 128 /***** Routines *****/ FL_OBJECT *fl_create_chart(int, float, float, float, float, char []); FL_OBJECT *fl_add_chart(int, float, float, float, float, char []); void fl_clear_chart(FL_OBJECT *); void fl_add_chart_value(FL_OBJECT *, float, char [], int); void fl_insert_chart_value(FL_OBJECT *, int, float, char [], int); void fl_replace_chart_value(FL_OBJECT *, int, float, char [], int); void fl_set_chart_bounds(FL_OBJECT *, float, float); void fl_set_chart_maxnumb(FL_OBJECT *, int); void fl_set_chart_autosize(FL_OBJECT *, int); /************ Object Class: Choice ************/ /***** Class *****/ #define FL_CHOICE 42 /***** Types *****/ #define FL_NORMAL_CHOICE 0 /***** Defaults *****/ #define FL_CHOICE_BOXTYPE FL_DOWN_BOX #define FL_CHOICE_COL1 FL_COL1 #define FL_CHOICE_COL2 FL_LCOL #define FL_CHOICE_LCOL FL_LCOL #define FL_CHOICE_ALIGN FL_ALIGN_LEFT /***** Others *****/ #define FL_CHOICE_BW FL_BOUND_WIDTH #define FL_CHOICE_MCOL FL_MCOL #define FL_CHOICE_MAXITEMS 128 #define FL_CHOICE_MAXSTR 64 /***** Routines *****/ FL_OBJECT *fl_create_choice(int ,float ,float ,float ,float ,char []); FL_OBJECT *fl_add_choice(int ,float ,float ,float ,float ,char []); void fl_clear_choice(FL_OBJECT *); void fl_addto_choice(FL_OBJECT *, char []); void fl_replace_choice(FL_OBJECT *, int , char []); void fl_delete_choice(FL_OBJECT *, int ); void fl_set_choice(FL_OBJECT *, int ); int fl_get_choice(FL_OBJECT *); char *fl_get_choice_text(FL_OBJECT *); void fl_set_choice_fontsize(FL_OBJECT *, float); void fl_set_choice_fontstyle(FL_OBJECT *, int); /************ Object Class: Clock ************/ /***** Class *****/ #define FL_CLOCK 61 /***** Types *****/ #define FL_SQUARE_CLOCK 0 #define FL_ROUND_CLOCK 1 /***** Defaults *****/ #define FL_CLOCK_BOXTYPE FL_UP_BOX #define FL_CLOCK_COL1 37 #define FL_CLOCK_COL2 42 #define FL_CLOCK_LCOL FL_LCOL #define FL_CLOCK_ALIGN FL_ALIGN_BOTTOM /***** Others *****/ #define FL_CLOCK_TOPCOL FL_COL1 #define FL_CLOCK_BW FL_BOUND_WIDTH /***** Routines *****/ FL_OBJECT *fl_create_clock(int, float, float, float, float, char []); FL_OBJECT *fl_add_clock(int, float, float, float, float, char []); void fl_get_clock(FL_OBJECT *,int * ,int *, int *); #ifndef COLORWHEEL_H #define COLORWHEEL_H #define FL_COLORWHEEL_BW FL_BUTTON_BW #define FL_COLORWHEEL_CURSOR .025 #define FL_COLORWHEEL 1492 #define FL_NORMAL_COLORWHEEL 0 FL_OBJECT *fl_create_colorwheel(int type, float x, float y, float w, float h, char label[]); FL_OBJECT *fl_add_colorwheel(int type, float x, float y, float w, float h, char label[]); void fl_set_colorwheel(FL_OBJECT *obj, float *color); void fl_set_colorwheel_intensity(FL_OBJECT *obj, float intensity); void fl_set_colorwheel_alpha(FL_OBJECT *obj, float alpha); void fl_get_colorwheel(FL_OBJECT *obj, float *color); float fl_get_colorwheel_intensity(FL_OBJECT *obj); float fl_get_colorwheel_alpha(FL_OBJECT *obj); #endif /************ Object Class: Counter ************/ /***** Class *****/ #define FL_COUNTER 25 /***** Types *****/ #define FL_NORMAL_COUNTER 0 #define FL_SIMPLE_COUNTER 1 /***** Defaults *****/ #define FL_COUNTER_BOXTYPE FL_UP_BOX #define FL_COUNTER_COL1 FL_COL1 #define FL_COUNTER_COL2 4 #define FL_COUNTER_LCOL FL_LCOL #define FL_COUNTER_ALIGN FL_ALIGN_BOTTOM /***** Others *****/ #define FL_COUNTER_BW FL_BOUND_WIDTH /***** Routines *****/ FL_OBJECT *fl_create_counter(int, float, float, float, float, char []); FL_OBJECT *fl_add_counter(int, float, float, float, float, char []); void fl_set_counter_value(FL_OBJECT *, float); void fl_set_counter_bounds(FL_OBJECT *, float, float); void fl_set_counter_step(FL_OBJECT *, float, float); void fl_set_counter_precision(FL_OBJECT *, int); float fl_get_counter_value(FL_OBJECT *); void fl_set_counter_return(FL_OBJECT *, int); /************ Object Class: Dial ************/ /***** Class *****/ #define FL_DIAL 22 /***** Types *****/ #define FL_NORMAL_DIAL 0 #define FL_LINE_DIAL 1 /***** Defaults *****/ #define FL_DIAL_BOXTYPE FL_NO_BOX #define FL_DIAL_COL1 FL_COL1 #define FL_DIAL_COL2 37 #define FL_DIAL_LCOL FL_LCOL #define FL_DIAL_ALIGN FL_ALIGN_BOTTOM /***** Others *****/ #define FL_DIAL_TOPCOL FL_COL1 #define FL_DIAL_BW FL_BOUND_WIDTH /***** Routines *****/ FL_OBJECT *fl_create_dial(int ,float, float, float, float, char []); FL_OBJECT *fl_add_dial(int ,float, float, float, float, char []); void fl_set_dial_value(FL_OBJECT *, float); float fl_get_dial_value(FL_OBJECT *); void fl_set_dial_bounds(FL_OBJECT *, float, float); void fl_get_dial_bounds(FL_OBJECT *, float *, float*); void fl_set_dial_step(FL_OBJECT *, float); void fl_set_dial_return(FL_OBJECT *, int); #ifndef FL_EDIT /************ Object Class: edit ************/ /***** Class *****/ #define FL_EDIT 1026 /***** Types *****/ #define FL_NORMAL_EDIT 0 /***** Defaults *****/ #define FL_EDIT_BOXTYPE FL_DOWN_BOX #define FL_EDIT_COL1 13 #define FL_EDIT_COL2 5 #define FL_EDIT_LCOL FL_LCOL #define FL_EDIT_ALIGN FL_ALIGN_LEFT #define FL_EDIT_FONT FL_FIXED_STYLE /***** Others *****/ #define FL_EDIT_TCOL FL_LCOL #define FL_EDIT_CCOL 4 #define FL_EDIT_BW FL_BOUND_WIDTH #define FL_EDIT_MAX 128 /***** Routines *****/ extern FL_OBJECT *fl_create_edit(int, float, float, float, float, char []); extern FL_OBJECT *fl_add_edit(int, float, float, float, float, char []); extern void fl_set_edit_color(FL_OBJECT *, int, int); extern char *fl_get_edit_line(FL_OBJECT *,int); extern void fl_set_edit_return(FL_OBJECT *, int); extern void fl_add_edit_line(FL_OBJECT *, char *); extern void fl_addto_edit(FL_OBJECT *, char *); extern void fl_insert_edit_line(FL_OBJECT *, char *); extern void fl_load_edit(FL_OBJECT *, char *); #endif /* FL_EDIT */ /************ Object Class: Fouraxis (unit vector in 4-space) ************/ /***** Class *****/ #define FL_FOURAXIS 1034 /***** Types *****/ #define FL_NORMAL_FOURAXIS 0 #define FL_CIRCLE_FOURAXIS 1 #define FL_SPOKED_FOURAXIS 2 /***** Defaults *****/ #define FL_FOURAXIS_BOXTYPE FL_DOWN_BOX #define FL_FOURAXIS_COL1 FL_COL1 #define FL_FOURAXIS_COL2 1 #define FL_FOURAXIS_LCOL FL_LCOL #define FL_FOURAXIS_ALIGN FL_ALIGN_BOTTOM /***** Others *****/ #define FL_FOURAXIS_BW FL_BOUND_WIDTH /***** Routines *****/ FL_OBJECT *fl_create_fouraxis(int, float, float, float, float, char []); FL_OBJECT *fl_add_fouraxis(int, float, float, float, float, char []); /* Set direction vector. w chosen to form unit vector */ void fl_set_fouraxis(FL_OBJECT *, float x, float y, float z); void fl_get_fouraxis(FL_OBJECT *, float *xp, float *yp, float *zp, float *wp); /* Also maintains an orthonormal basis matrix, with column 3 * (w) a unit vector in the chosen direction * and other columns chosen appropriately. */ void fl_get_fouraxis_basis(FL_OBJECT *, float * /* really float[4][4] */); void fl_set_fouraxis_basis(FL_OBJECT *, float * /* really float[4][4] */); void fl_set_fouraxis_return(FL_OBJECT *, int); #ifndef FL_FRACT /************ Object Class: Impcount ************/ /***** Class *****/ #define FL_FRACT 1025 /***** Types *****/ #define FL_NORMAL_FRACT 0 #define FL_SIMPLE_FRACT 1 /***** Defaults *****/ #define FL_FRACT_BOXTYPE FL_UP_BOX #define FL_FRACT_COL1 FL_COL1 #define FL_FRACT_COL2 4 #define FL_FRACT_LCOL FL_LCOL #define FL_FRACT_ALIGN FL_ALIGN_BOTTOM /***** Others *****/ #define FL_FRACT_COL3 13 #define FL_FRACT_COL4 5 #define FL_FRACT_BW FL_BOUND_WIDTH #define FL_FRACT_MAX 128 /***** Routines *****/ FL_OBJECT *fl_create_fract(int, float, float, float, float, char []); FL_OBJECT *fl_add_fract(int, float, float, float, float, char []); void fl_set_fract_value(FL_OBJECT *, float); void fl_set_fract_bounds(FL_OBJECT *, float, float); void fl_set_fract_step(FL_OBJECT *, float, float); void fl_set_fract_precision(FL_OBJECT *, int); float fl_get_fract_value(FL_OBJECT *); void fl_set_fract_color(FL_OBJECT *, int, int); void fl_set_fract_return(FL_OBJECT *, int); #endif /************ Object Class: Free ************/ /***** Class *****/ #define FL_FREE 101 /***** Types *****/ #define FL_NORMAL_FREE 1 #define FL_SLEEPING_FREE 2 #define FL_INPUT_FREE 3 #define FL_CONTINUOUS_FREE 4 #define FL_ALL_FREE 5 /***** Defaults *****/ /***** Others *****/ /***** Routines *****/ FL_OBJECT *fl_create_free(int, float, float, float, float, char [], FL_HANDLEPTR); FL_OBJECT *fl_add_free(int, float, float, float, float, char [], FL_HANDLEPTR); /************ Object Class: Input ************/ /***** Class *****/ #define FL_INPUT 31 /***** Types *****/ #define FL_NORMAL_INPUT 0 #define FL_FLOAT_INPUT 1 #define FL_INT_INPUT 2 #define FL_HIDDEN_INPUT 3 /***** Defaults *****/ #define FL_INPUT_BOXTYPE FL_DOWN_BOX #define FL_INPUT_COL1 13 #define FL_INPUT_COL2 5 #define FL_INPUT_LCOL FL_LCOL #define FL_INPUT_ALIGN FL_ALIGN_LEFT /***** Others *****/ #define FL_INPUT_TCOL FL_LCOL #define FL_INPUT_CCOL 4 #define FL_INPUT_BW FL_BOUND_WIDTH #define FL_INPUT_MAX 128 /***** Routines *****/ FL_OBJECT *fl_create_input(int, float, float, float, float, char []); FL_OBJECT *fl_add_input(int, float, float, float, float, char []); void fl_set_input(FL_OBJECT *, char []); void fl_set_input_color(FL_OBJECT *, int, int); char *fl_get_input(FL_OBJECT *); void fl_set_input_return(FL_OBJECT *, int); /************ Object Class: Lightbutton ************/ /***** Class *****/ #define FL_LIGHTBUTTON 12 /***** Types *****/ /* Same types as for buttons */ /***** Defaults *****/ #define FL_LIGHTBUTTON_BOXTYPE FL_UP_BOX #define FL_LIGHTBUTTON_COL1 39 #define FL_LIGHTBUTTON_COL2 3 #define FL_LIGHTBUTTON_LCOL FL_LCOL #define FL_LIGHTBUTTON_ALIGN FL_ALIGN_CENTER /***** Others *****/ #define FL_LIGHTBUTTON_TOPCOL FL_COL1 #define FL_LIGHTBUTTON_MCOL FL_MCOL #define FL_LIGHTBUTTON_BW1 FL_BOUND_WIDTH #define FL_LIGHTBUTTON_BW2 FL_BOUND_WIDTH/2.0 #define FL_LIGHTBUTTON_MINSIZE 12.0 /***** Routines *****/ FL_OBJECT *fl_create_lightbutton(int, float, float, float, float, char []); FL_OBJECT *fl_add_lightbutton(int, float, float, float, float, char []); /************ Object Class: Menu ************/ /***** Class *****/ #define FL_MENU 41 /***** Types *****/ #define FL_TOUCH_MENU 0 #define FL_PUSH_MENU 1 /***** Defaults *****/ #define FL_MENU_BOXTYPE FL_BORDER_BOX #define FL_MENU_COL1 55 #define FL_MENU_COL2 37 #define FL_MENU_LCOL FL_LCOL #define FL_MENU_ALIGN FL_ALIGN_CENTER /***** Others *****/ #define FL_MENU_BW FL_BOUND_WIDTH #define FL_MENU_MAX 300 /***** Routines *****/ FL_OBJECT *fl_create_menu(int, float, float, float, float, char []); FL_OBJECT *fl_add_menu(int, float, float, float, float, char []); void fl_set_menu(FL_OBJECT *, char []); void fl_addto_menu(FL_OBJECT *, char []); long fl_get_menu(FL_OBJECT *); /************ Object Class: Positioner ************/ /***** Class *****/ #define FL_POSITIONER 23 /***** Types *****/ #define FL_NORMAL_POSITIONER 0 /***** Defaults *****/ #define FL_POSITIONER_BOXTYPE FL_DOWN_BOX #define FL_POSITIONER_COL1 FL_COL1 #define FL_POSITIONER_COL2 1 #define FL_POSITIONER_LCOL FL_LCOL #define FL_POSITIONER_ALIGN FL_ALIGN_BOTTOM /***** Others *****/ #define FL_POSITIONER_BW FL_BOUND_WIDTH /***** Routines *****/ FL_OBJECT *fl_create_positioner(int, float, float, float, float, char []); FL_OBJECT *fl_add_positioner(int, float, float, float, float, char []); void fl_set_positioner_xvalue(FL_OBJECT *, float); float fl_get_positioner_xvalue(FL_OBJECT *); void fl_set_positioner_xbounds(FL_OBJECT *, float, float); void fl_get_positioner_xbounds(FL_OBJECT *, float *, float *); void fl_set_positioner_yvalue(FL_OBJECT *, float); float fl_get_positioner_yvalue(FL_OBJECT *); void fl_set_positioner_ybounds(FL_OBJECT *, float, float); void fl_get_positioner_ybounds(FL_OBJECT *, float *, float *); void fl_set_positioner_xstep(FL_OBJECT *, float); void fl_set_positioner_ystep(FL_OBJECT *, float); void fl_set_positioner_return(FL_OBJECT *, int); /************ Object Class: Roundbutton ************/ /***** Class *****/ #define FL_ROUNDBUTTON 13 /***** Types *****/ /* Same types as for buttons */ /***** Defaults *****/ #define FL_ROUNDBUTTON_BOXTYPE FL_NO_BOX #define FL_ROUNDBUTTON_COL1 7 #define FL_ROUNDBUTTON_COL2 3 #define FL_ROUNDBUTTON_LCOL FL_LCOL #define FL_ROUNDBUTTON_ALIGN FL_ALIGN_CENTER /***** Others *****/ #define FL_ROUNDBUTTON_TOPCOL FL_COL1 #define FL_ROUNDBUTTON_MCOL FL_MCOL #define FL_ROUNDBUTTON_BW FL_BOUND_WIDTH /***** Routines *****/ FL_OBJECT *fl_create_roundbutton(int, float, float, float, float, char []); FL_OBJECT *fl_add_roundbutton(int, float, float, float, float, char []); /************ Object Class: Slider ************/ /***** Class *****/ #define FL_SLIDER 21 #define FL_VALSLIDER 24 /***** Types *****/ #define FL_VERT_SLIDER 0 #define FL_HOR_SLIDER 1 #define FL_VERT_FILL_SLIDER 2 #define FL_HOR_FILL_SLIDER 3 #define FL_VERT_NICE_SLIDER 4 #define FL_HOR_NICE_SLIDER 5 /***** Defaults *****/ #define FL_SLIDER_BOXTYPE FL_DOWN_BOX #define FL_SLIDER_COL1 FL_COL1 #define FL_SLIDER_COL2 FL_COL1 #define FL_SLIDER_LCOL FL_LCOL #define FL_SLIDER_ALIGN FL_ALIGN_BOTTOM /***** Others *****/ #define FL_SLIDER_BW1 FL_BOUND_WIDTH #define FL_SLIDER_BW2 FL_BOUND_WIDTH*0.75 #define FL_SLIDER_FINE 0.05 #define FL_SLIDER_WIDTH 0.08 /***** Routines *****/ FL_OBJECT *fl_create_slider(int, float, float, float, float, char []); FL_OBJECT *fl_add_slider(int, float, float, float, float, char []); FL_OBJECT *fl_create_valslider(int, float, float, float, float, char []); FL_OBJECT *fl_add_valslider(int, float, float, float, float, char []); void fl_set_slider_value(FL_OBJECT *, float); float fl_get_slider_value(FL_OBJECT *); void fl_set_slider_bounds(FL_OBJECT *, float, float); void fl_get_slider_bounds(FL_OBJECT *, float *, float *); void fl_set_slider_return(FL_OBJECT *, int); void fl_set_slider_step(FL_OBJECT *, float); void fl_set_slider_size(FL_OBJECT *, float); void fl_set_slider_precision(FL_OBJECT *, int); /************ Object Class: Text ************/ /***** Class *****/ #define FL_TEXT 2 /***** Types *****/ #define FL_NORMAL_TEXT 0 /***** Defaults *****/ #define FL_TEXT_BOXTYPE FL_NO_BOX #define FL_TEXT_COL1 FL_COL1 #define FL_TEXT_LCOL FL_LCOL #define FL_TEXT_ALIGN FL_ALIGN_LEFT /***** Others *****/ #define FL_TEXT_BW FL_BOUND_WIDTH /***** Routines *****/ FL_OBJECT *fl_create_text(int, float, float, float, float, char []); FL_OBJECT *fl_add_text(int, float, float, float, float, char []); /************ Object Class: Timer ************/ /***** Class *****/ #define FL_TIMER 62 /***** Types *****/ #define FL_NORMAL_TIMER 0 #define FL_VALUE_TIMER 1 #define FL_HIDDEN_TIMER 2 /***** Defaults *****/ #define FL_TIMER_BOXTYPE FL_DOWN_BOX #define FL_TIMER_COL1 FL_COL1 #define FL_TIMER_COL2 1 #define FL_TIMER_LCOL FL_LCOL #define FL_TIMER_ALIGN FL_ALIGN_CENTER /***** Others *****/ #define FL_TIMER_BW FL_BOUND_WIDTH #define FL_TIMER_BLINKRATE 0.2 /***** Routines *****/ FL_OBJECT *fl_create_timer(int, float, float, float, float, char []); FL_OBJECT *fl_add_timer(int, float, float, float, float, char []); void fl_set_timer(FL_OBJECT *, float); float fl_get_timer(FL_OBJECT *); #if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) } #endif #endif /* define __FORMS_H__ */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.