+/* error callback */
+typedef void (*FL_ERROR_FUNC)( const char *, const char *,... );

-FL_EXPORT void fl_add_signal_callback(int, FL_SIGNAL_HANDLER, void *);
+FL_EXPORT void fl_add_signal_callback(int, void (*)(int, void *), void *);

-FL_EXPORT int fl_get_vn_value(FL_VN_PAIR *, const char *);
+FL_EXPORT int fl_get_vn_value(register FL_VN_PAIR *, const char *);

-FL_EXPORT const char *fl_get_vn_name(FL_VN_PAIR *, int);
+FL_EXPORT const char *fl_get_vn_name(register FL_VN_PAIR *, int);

-FL_EXPORT unsigned long fl_msleep(unsigned);
+FL_EXPORT unsigned long fl_msleep(unsigned long);

-FL_EXPORT FL_RAW_CALLBACK fl_register_raw_callback(FL_FORM *, unsigned, FL_RAW_CALLBACK);
+FL_EXPORT FL_RAW_CALLBACK fl_register_raw_callback(FL_FORM *, unsigned long, FL_RAW_CALLBACK);

-FL_EXPORT void fl_drw_text_beside(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, FL_COLOR, int, int, char *);
+FL_EXPORT void fl_drw_text_beside(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, unsigned long, int, int, char *); 
 
-FL_EXPORT void fl_drw_slider(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, FL_COLOR, FL_COLOR, int, double, double, char *, int, int, int);
+FL_EXPORT void fl_drw_slider(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, FL_COLOR, FL_COLOR, int, double, double, char *, int, int, FL_Coord);

-FL_EXPORT void fl_bk_color(FL_COLOR);
+FL_EXPORT void fl_bk_color(unsigned long);

-FL_EXPORT void fl_bk_textcolor(FL_COLOR);
+FL_EXPORT void fl_bk_textcolor(unsigned long);

-FL_EXPORT void fl_set_error_handler(void (*)(const char *, const char *,...));
+FL_EXPORT void fl_set_error_handler(FL_ERROR_FUNC user_func);

-FL_EXPORT void fl_set_error_logfp(FILE * fp);
+FL_EXPORT void fl_set_err_logfp(FILE *);

+enum
+{
+ FL_TRIANGLE_UPBOX1,
+ FL_TRIANGLE_UPBOX2,
+ FL_TRIANGLE_UPBOX3,
+ FL_TRIANGLE_UPBOX4,
+ FL_TRIANGLE_UPBOX6,
+ FL_TRIANGLE_UPBOX7,
+ FL_TRIANGLE_UPBOX8,
+ FL_TRIANGLE_UPBOX9,
+ FL_TRIANGLE_DOWNBOX1,
+ FL_TRIANGLE_DOWNBOX2,
+ FL_TRIANGLE_DOWNBOX3,
+ FL_TRIANGLE_DOWNBOX4,
+ FL_TRIANGLE_DOWNBOX6,
+ FL_TRIANGLE_DOWNBOX7,
+ FL_TRIANGLE_DOWNBOX8,
+ FL_TRIANGLE_DOWNBOX9
+};

+typedef const char *(*FL_VAL_FILTER) (FL_OBJECT *, double, int);

+ * \file XBasic.h
-#ifdef FL_WIN32
-#include <X11/Xwinsock.h>
-#endif
 
-FL_EXPORT void fl_polygon(int, FL_POINT *, int, FL_COLOR);
+FL_EXPORT void fl_polygon(int, FL_POINT *, int, unsigned long);

-FL_EXPORT Window fl_get_mouse(FL_Coord *, FL_Coord *, unsigned int *);
+FL_EXPORT Window fl_get_mouse(FL_Coord *, FL_Coord *, unsigned *);

-FL_EXPORT FL_FORM *fl_win_to_form(Window);
+FL_EXPORT FL_FORM *fl_win_to_form(register Window);

-FL_EXPORT void fl_winmove(Window, FL_Coord, FL_Coord);
+FL_EXPORT void fl_winmove(Window, int, int);

-FL_EXPORT void fl_winreshape(Window, FL_Coord, FL_Coord, FL_Coord, FL_Coord);
+FL_EXPORT void fl_winreshape(Window, int, int, int, int);

-FL_EXPORT void fl_winbackground(Window, unsigned long);
+FL_EXPORT void fl_winbackground(Window, FL_COLOR);

-FL_EXPORT Display *fl_initialize(int *, char *[], const char *, FL_CMD_OPT *, int);
+FL_EXPORT Display *fl_initialize(int *, char *[], const char *, XrmOptionDescList, int);

-FL_EXPORT Pixmap fl_read_bitmapfile(Window, const char *, unsigned *, unsigned *, int *, int *);
+FL_EXPORT Pixmap fl_read_bitmapfile(Window, const char *, unsigned int *, unsigned int *, int *, int *);

-FL_EXPORT Pixmap fl_create_from_pixmapdata(Window, char **, unsigned int *, unsigned int *, Pixmap *, int *, int *, FL_COLOR);
+FL_EXPORT Pixmap fl_create_from_pixmapdata(Window, char **, unsigned *, unsigned *, Pixmap *, int *, int *, FL_COLOR);

-FL_EXPORT FL_OBJECT *fl_create_browser(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, const char *);
+FL_EXPORT FL_OBJECT *fl_create_browser(int, int, int, int, int, const char *);

-FL_EXPORT FL_OBJECT *fl_add_browser(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, const char *);
+FL_EXPORT FL_OBJECT *fl_add_browser(int, int, int, int, int, const char *);

-FL_EXPORT void fl_add_button_class(int, FL_DRAWBUTTON, FL_CLEANUPBUTTON);
+FL_EXPORT void fl_add_button_class(int bclass, FL_DrawButton, FL_CleanupButton);

-/* OpenGL canvases */
-FL_EXPORT FL_OBJECT *fl_create_glcanvas(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, const char *);
-
-FL_EXPORT FL_OBJECT *fl_add_glcanvas(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, const char *);
-
-FL_EXPORT void fl_set_glcanvas_defaults(const int *);
-FL_EXPORT void fl_get_glcanvas_defaults(int *);
-FL_EXPORT void fl_set_glcanvas_attributes(FL_OBJECT *, const int *);
-FL_EXPORT void fl_get_glcanvas_attributes(FL_OBJECT *, int *);
-FL_EXPORT void fl_set_glcanvas_direct(FL_OBJECT *, int);
-FL_EXPORT void fl_activate_glcanvas(FL_OBJECT *);
-FL_EXPORT XVisualInfo *fl_get_glcanvas_xvisualinfo(FL_OBJECT *);
-
-
-#if defined(__GLX_glx_h__) || defined(GLX_H)
-FL_EXPORT GLXContext fl_get_glcanvas_context(FL_OBJECT * ob);
-FL_EXPORT Window fl_glwincreate(int *, GLXContext *, int, int);
-FL_EXPORT Window fl_glwinopen(int *, GLXContext *, int, int);

-#define FL_CHART_MAX 512
+#define FL_CHART_MAX 2048
 
-FL_EXPORT void fl_set_chart_maxnumb(FL_OBJECT *, int);
+FL_EXPORT int fl_set_chart_maxnumb(FL_OBJECT *, int);

+FL_EXPORT void fl_set_chart_baseline(FL_OBJECT *, int);

-FL_EXPORT void fl_set_counter_filter(FL_OBJECT *, const char *(*)(FL_OBJECT *, double, int));
+FL_EXPORT void fl_set_counter_filter(FL_OBJECT *, FL_VAL_FILTER filter);

+/** Functions to set and get the timeout value used by the
+ * counter code to control modification of the counter value.
+ */
+FL_EXPORT int fl_get_counter_repeat(FL_OBJECT * ob);
+FL_EXPORT void fl_set_counter_repeat(FL_OBJECT * ob, int millisec);
 
-FL_EXPORT char *fl_fix_dirname(char *);
+FL_EXPORT char *fl_fix_dirname(char dir[]);

-FL_EXPORT FL_OBJECT *fl_add_formbrowser(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, const char *);
+FL_EXPORT FL_OBJECT *fl_add_formbrowser(int, int, int, int, int, const char *);

-FL_EXPORT void fl_show_oneliner(const char *, FL_Coord, FL_Coord);
+FL_EXPORT void fl_show_oneliner(const char *, int, int);

-FL_EXPORT FL_PID_T fl_exe_command(const char *, int);
+FL_EXPORT long fl_exe_command(const char *, int);

-FL_EXPORT int fl_end_command(FL_PID_T);
+FL_EXPORT int fl_end_command(long);

-FL_EXPORT int fl_check_command(FL_PID_T);
+FL_EXPORT int fl_check_command(long);

-FL_EXPORT void fl_set_fselector_callback(int (*)(const char *, void *), void *);
+FL_EXPORT void fl_set_fselector_callback(FL_FSCB fscb, void *);

+FL_EXPORT int fl_goodies_atclose(FL_FORM *, void *);

-FL_EXPORT int fl_setpup_mode(int, int, unsigned);
+FL_EXPORT int fl_setpup_mode(int, int, unsigned int);

-FL_EXPORT FL_OBJECT *fl_create_scrollbar(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, const char *l);
+FL_EXPORT FL_OBJECT *fl_create_scrollbar(int, int, int, int, int, const char *);

-FL_EXPORT FL_OBJECT *fl_add_scrollbar(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, const char *l);
+FL_EXPORT FL_OBJECT *fl_add_scrollbar(int, int, int, int, int, const char *);

-FL_EXPORT void fl_set_slider_filter(FL_OBJECT *, const char *(*)(FL_OBJECT *, double, int));
+FL_EXPORT void fl_set_slider_filter(FL_OBJECT *, FL_VAL_FILTER filter);

+/** Functions to set and get the timeout value used by the
+ slider code to increment the position of the knob.
+ */
+FL_EXPORT int fl_get_slider_repeat(FL_OBJECT *);
+FL_EXPORT void fl_set_slider_repeat(FL_OBJECT *, int);

-FL_EXPORT FL_OBJECT *fl_add_tabfolder(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, const char *);
+FL_EXPORT FL_OBJECT *fl_add_tabfolder(int, int, int, int, int, const char *);
 
-FL_EXPORT void fl_get_folder_area(FL_OBJECT *, FL_Coord *, FL_Coord *, FL_Coord *, FL_Coord *);
+FL_EXPORT void fl_get_folder_area(FL_OBJECT *, int *, int *, int *, int *);
 
-FL_EXPORT void fl_set_xyplot_data(FL_OBJECT *, float *, float *, int, const char *, const char *, const char *);
+FL_EXPORT int fl_set_xyplot_data(FL_OBJECT *, float *, float *, int, const char *, const char *, const char *);

+FL_EXPORT int fl_set_xyplot_data_double(FL_OBJECT *, double *, double *, int, const char *, const char *, const char *);

+/* Replace the value of a particular point in dataset setID, 
+ * where setID=0 is the first data set.
+ * This routine is an extension of fl_replace_xyplot_point
+ * which acts on the first dataset only.
+ */
+FL_EXPORT void fl_replace_xyplot_point_in_overlay(FL_OBJECT *, int, int, double, double);

+/* the following (fl_fheight) etc. were never documented and were
+ removed from V0.89, but apparently this broke some applications that
+ were using them. Put them back in 10/22/00 */
+
+#define fl_textgc fl_textgc_()
+#define fl_gc fl_gc_()
+#define fl_cur_win fl_cur_win_()
+#define fl_fheight fl_fheight_()
+#define fl_fdesc fl_fdesc_()
+#define fl_cur_fs fl_cur_fs_()
+
+extern GC fl_gc_(void), fl_textgc_(void);
+extern int fl_fheight_(void), fl_fdesc_(void);
+extern Window fl_cur_win_(void);
+extern XFontStruct* fl_cur_fs_(void);
+extern Display* fl_display_(void);
+
+#if !defined(TRUE) && !defined(FALSE)
+#define FALSE 0
+#define TRUE (!FALSE)
+#endif




-FL_EXPORT void fl_get_glcanvas_defaults(int *);
+FL_EXPORT void fl_get_glcanvas_defaults(int[]);
