fltkhs-0.5.4.1: c-src/Fl_Types.h
#ifndef __FL_TYPES_H
#define __FL_TYPES_H
#include "FL/fl_types.h"
#include "Fl_EnumerationsC.h"
#if defined(WIN32) && !defined(__CYGWIN__)
# if defined(_WIN64)
# define FL_SOCKET unsigned __int64
# else
# define FL_SOCKET int
# endif
#else
# define FL_SOCKET int
#endif
#ifdef _WIN64
#ifdef __GNUC__
#include <stdint.h>
#else
#include <stddef.h> // M$VC
#endif
typedef intptr_t fl_intptr_t;
typedef uintptr_t fl_uintptr_t;
#else
typedef long fl_intptr_t;
typedef unsigned long fl_uintptr_t;
#endif
#ifdef __cplusplus
class DerivedText_Editor;
EXPORT {
#endif
// values for type(), lowest bit indicate horizontal:
#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
#define FL_NORMAL_BROWSER 0 /**< type() of Fl_Browser */
#define FL_SELECT_BROWSER 1 /**< type() of FL_Select_Browser */
#define FL_HOLD_BROWSER 2 /**< type() of Fl_Hold_Browser */
#define FL_MULTI_BROWSER 3 /**< type() of Fl_Multi_Browser */
#define FL_NORMAL_TIMER 0
#define FL_VALUE_TIMER 1
#define FL_HIDDEN_TIMER 2
#define FL_SORT_ASCENDING 0 /**< sort browser items in ascending alphabetic order. */
#define FL_SORT_DESCENDING 1 /**< sort in descending order */
#ifndef INTERNAL_LINKAGE
#include "../config.h"
enum { FL_FILE_BROWSER_FILES, FL_FILE_BROWSER_DIRECTORIES };
enum
{
FL_FILE_ICON_ANY,
FL_FILE_ICON_PLAIN,
FL_FILE_ICON_FIFO,
FL_FILE_ICON_DEVICE,
FL_FILE_ICON_LINK,
FL_FILE_ICON_DIRECTORY
};
enum
{
FL_FILE_ICON_END,
FL_FILE_ICON_COLOR,
FL_FILE_ICON_LINE,
FL_FILE_ICON_CLOSEDLINE,
FL_FILE_ICON_POLYGON,
FL_FILE_ICON_OUTLINEPOLYGON,
FL_FILE_ICON_VERTEX
};
enum {
FL_FILE_CHOOSER_SINGLE = 0,
FL_FILE_CHOOSER_MULTI = 1,
FL_FILE_CHOOSER_CREATE = 2,
FL_FILE_CHOOSER_DIRECTORY = 4
};
#define FL_RESERVED_TYPE 100
#define FL_NORMAL_BUTTON 0
#define FL_TOGGLE_BUTTON 1
#define FL_RADIO_BUTTON (FL_RESERVED_TYPE+2)
#define FL_HIDDEN_BUTTON 3
typedef enum {
FL_TREE_REASON_NONE=0,
FL_TREE_REASON_SELECTED,
FL_TREE_REASON_DESELECTED,
#if FLTK_ABI_VERSION >= 10302
FL_TREE_REASON_RESELECTED,
#endif
FL_TREE_REASON_OPENED,
FL_TREE_REASON_CLOSED,
FL_TREE_REASON_DRAGGED
} Fl_Tree_Reason;
enum {
FL_MENU_INACTIVE = 1,
FL_MENU_TOGGLE= 2,
FL_MENU_VALUE = 4,
FL_MENU_RADIO = 8,
FL_MENU_INVISIBLE = 0x10,
FL_SUBMENU_POINTER = 0x20,
FL_SUBMENU = 0x40,
FL_MENU_DIVIDER = 0x80,
FL_MENU_HORIZONTAL = 0x100
};
enum {
HORIZONTAL = 1,
VERTICAL = 2,
BOTH = 3,
ALWAYS_ON = 4,
HORIZONTAL_ALWAYS = 5,
VERTICAL_ALWAYS = 6,
BOTH_ALWAYS = 7
};
enum { // values for type(int)
PACK_VERTICAL = 0,
PACK_HORIZONTAL = 1
};
enum {
NORMAL_CURSOR,
CARET_CURSOR,
DIM_CURSOR,
BLOCK_CURSOR,
HEAVY_CURSOR,
SIMPLE_CURSOR
};
enum {
CURSOR_POS,
CHARACTER_POS
};
enum {
DRAG_NONE = -2,
DRAG_START_DND = -1,
DRAG_CHAR = 0,
DRAG_WORD = 1,
DRAG_LINE = 2
};
enum {
WRAP_NONE,
WRAP_AT_COLUMN,
WRAP_AT_PIXEL,
WRAP_AT_BOUNDS
};
enum Page_Format {
A0 = 0,
A1,
A2,
A3,
A4,
A5,
A6,
A7,
A8,
A9,
B0,
B1,
B2,
B3,
B4,
B5,
B6,
B7,
B8,
B9,
B10,
C5E,
DLE,
EXECUTIVE,
FOLIO,
LEDGER,
LEGAL,
LETTER,
TABLOID,
ENVELOPE,
MEDIA = 0x1000
};
enum Page_Layout {
PORTRAIT = 0,
LANDSCAPE = 0x100,
REVERSED = 0x200,
ORIENTATION = 0x300
};
typedef struct page_format {
int width;
int height;
const char *name;
} page_format;
#ifdef HAVE_GL
# ifdef __APPLE__
# include <OpenGL/gl.h>
# else
# include <GL/gl.h>
# endif
typedef void (*GLUTproc)();
void (*glut_idle_function)();
void (*glut_menustate_function)(int);
void (*glut_menustatus_function)(int,int,int);
# define GLUT_RGB FL_RGB
# define GLUT_RGBA FL_RGB
# define GLUT_INDEX FL_INDEX
# define GLUT_SINGLE FL_SINGLE
# define GLUT_DOUBLE FL_DOUBLE
# define GLUT_ACCUM FL_ACCUM
# define GLUT_ALPHA FL_ALPHA
# define GLUT_DEPTH FL_DEPTH
# define GLUT_STENCIL FL_STENCIL
# define GLUT_MULTISAMPLE FL_MULTISAMPLE
# define GLUT_STEREO FL_STEREO
# define GLUT_CURSOR_RIGHT_ARROW ((Fl_Cursor)2)
# define GLUT_CURSOR_LEFT_ARROW ((Fl_Cursor)67)
# define GLUT_CURSOR_INFO FL_CURSOR_HAND
# define GLUT_CURSOR_DESTROY ((Fl_Cursor)45)
# define GLUT_CURSOR_HELP FL_CURSOR_HELP
# define GLUT_CURSOR_CYCLE ((Fl_Cursor)26)
# define GLUT_CURSOR_SPRAY ((Fl_Cursor)63)
# define GLUT_CURSOR_WAIT FL_CURSOR_WAIT
# define GLUT_CURSOR_TEXT FL_CURSOR_INSERT
# define GLUT_CURSOR_CROSSHAIR FL_CURSOR_CROSS
# define GLUT_CURSOR_UP_DOWN FL_CURSOR_NS
# define GLUT_CURSOR_LEFT_RIGHT FL_CURSOR_WE
# define GLUT_CURSOR_TOP_SIDE FL_CURSOR_N
# define GLUT_CURSOR_BOTTOM_SIDE FL_CURSOR_S
# define GLUT_CURSOR_LEFT_SIDE FL_CURSOR_W
# define GLUT_CURSOR_RIGHT_SIDE FL_CURSOR_E
# define GLUT_CURSOR_TOP_LEFT_CORNER FL_CURSOR_NW
# define GLUT_CURSOR_TOP_RIGHT_CORNER FL_CURSOR_NE
# define GLUT_CURSOR_BOTTOM_RIGHT_CORNER FL_CURSOR_SE
# define GLUT_CURSOR_BOTTOM_LEFT_CORNER FL_CURSOR_SW
# define GLUT_CURSOR_INHERIT FL_CURSOR_DEFAULT
# define GLUT_CURSOR_NONE FL_CURSOR_NONE
# define GLUT_CURSOR_FULL_CROSSHAIR FL_CURSOR_CROSS
enum {GLUT_NORMAL, GLUT_OVERLAY};
# define GLUT_LEFT_BUTTON 0
# define GLUT_MIDDLE_BUTTON 1
# define GLUT_RIGHT_BUTTON 2
# define GLUT_DOWN 0
# define GLUT_UP 1
enum {GLUT_NOT_VISIBLE, GLUT_VISIBLE};
enum {GLUT_MENU_NOT_IN_USE, GLUT_MENU_IN_USE};
enum {GLUT_LEFT, GLUT_ENTERED};
# define GLUT_KEY_F1 1
# define GLUT_KEY_F2 2
# define GLUT_KEY_F3 3
# define GLUT_KEY_F4 4
# define GLUT_KEY_F5 5
# define GLUT_KEY_F6 6
# define GLUT_KEY_F7 7
# define GLUT_KEY_F8 8
# define GLUT_KEY_F9 9
# define GLUT_KEY_F10 10
# define GLUT_KEY_F11 11
# define GLUT_KEY_F12 12
// WARNING: Different values than GLUT uses:
# define GLUT_KEY_LEFT FL_Left
# define GLUT_KEY_UP FL_Up
# define GLUT_KEY_RIGHT FL_Right
# define GLUT_KEY_DOWN FL_Down
# define GLUT_KEY_PAGE_UP FL_Page_Up
# define GLUT_KEY_PAGE_DOWN FL_Page_Down
# define GLUT_KEY_HOME FL_Home
# define GLUT_KEY_END FL_End
# define GLUT_KEY_INSERT FL_Insert
enum {
GLUT_RETURN_ZERO = 0,
GLUT_WINDOW_X,
GLUT_WINDOW_Y,
GLUT_WINDOW_WIDTH,
GLUT_WINDOW_HEIGHT,
GLUT_WINDOW_PARENT,
GLUT_SCREEN_WIDTH,
GLUT_SCREEN_HEIGHT,
GLUT_MENU_NUM_ITEMS,
GLUT_DISPLAY_MODE_POSSIBLE,
GLUT_INIT_WINDOW_X,
GLUT_INIT_WINDOW_Y,
GLUT_INIT_WINDOW_WIDTH,
GLUT_INIT_WINDOW_HEIGHT,
GLUT_INIT_DISPLAY_MODE,
GLUT_WINDOW_BUFFER_SIZE,
GLUT_VERSION
};
# define GLUT_WINDOW_STENCIL_SIZE GL_STENCIL_BITS
# define GLUT_WINDOW_DEPTH_SIZE GL_DEPTH_BITS
# define GLUT_WINDOW_RED_SIZE GL_RED_BITS
# define GLUT_WINDOW_GREEN_SIZE GL_GREEN_BITS
# define GLUT_WINDOW_BLUE_SIZE GL_BLUE_BITS
# define GLUT_WINDOW_ALPHA_SIZE GL_ALPHA_BITS
# define GLUT_WINDOW_ACCUM_RED_SIZE GL_ACCUM_RED_BITS
# define GLUT_WINDOW_ACCUM_GREEN_SIZE GL_ACCUM_GREEN_BITS
# define GLUT_WINDOW_ACCUM_BLUE_SIZE GL_ACCUM_BLUE_BITS
# define GLUT_WINDOW_ACCUM_ALPHA_SIZE GL_ACCUM_ALPHA_BITS
# define GLUT_WINDOW_DOUBLEBUFFER GL_DOUBLEBUFFER
# define GLUT_WINDOW_RGBA GL_RGBA
# define GLUT_WINDOW_COLORMAP_SIZE GL_INDEX_BITS
# ifdef GL_SAMPLES_SGIS
# define GLUT_WINDOW_NUM_SAMPLES GL_SAMPLES_SGIS
# else
# define GLUT_WINDOW_NUM_SAMPLES GLUT_RETURN_ZERO
# endif
# define GLUT_WINDOW_STEREO GL_STEREO
# define GLUT_HAS_KEYBOARD 600
# define GLUT_HAS_MOUSE 601
# define GLUT_HAS_SPACEBALL 602
# define GLUT_HAS_DIAL_AND_BUTTON_BOX 603
# define GLUT_HAS_TABLET 604
# define GLUT_NUM_MOUSE_BUTTONS 605
# define GLUT_NUM_SPACEBALL_BUTTONS 606
# define GLUT_NUM_BUTTON_BOX_BUTTONS 607
# define GLUT_NUM_DIALS 608
# define GLUT_NUM_TABLET_BUTTONS 609
# define GLUT_ACTIVE_SHIFT FL_SHIFT
# define GLUT_ACTIVE_CTRL FL_CTRL
# define GLUT_ACTIVE_ALT FL_ALT
# define GLUT_OVERLAY_POSSIBLE 800
# define GLUT_TRANSPARENT_INDEX 803
# define GLUT_NORMAL_DAMAGED 804
# define GLUT_OVERLAY_DAMAGED 805
typedef struct Fl_Glut_Bitmap_Font {Fl_Font font; Fl_Fontsize size;} Fl_Glut_Bitmap_Font;
struct Fl_Glut_Bitmap_Font
glutBitmap9By15, glutBitmap8By13, glutBitmapTimesRoman10,
glutBitmapTimesRoman24, glutBitmapHelvetica10, glutBitmapHelvetica12,
glutBitmapHelvetica18;
# define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15)
# define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13)
# define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10)
# define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24)
# define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10)
# define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12)
# define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18)
typedef struct Fl_Glut_StrokeVertex {
GLfloat X, Y;
} Fl_Glut_StrokeVertex;
typedef struct Fl_Glut_StrokeStrip {
int Number;
const Fl_Glut_StrokeVertex* Vertices;
} Fl_Glut_StrokeStrip;
typedef struct Fl_Glut_StrokeChar {
GLfloat Right;
int Number;
const Fl_Glut_StrokeStrip* Strips;
} Fl_Glut_StrokeChar;
typedef struct Fl_Glut_StrokeFont {
char* Name; // The source font name
int Quantity; // Number of chars in font
GLfloat Height; // Height of the characters
const Fl_Glut_StrokeChar** Characters;// The characters mapping
} Fl_Glut_StrokeFont;
Fl_Glut_StrokeFont glutStrokeRoman;
Fl_Glut_StrokeFont glutStrokeMonoRoman;
# define GLUT_STROKE_ROMAN (&glutStrokeRoman)
# define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman)
#endif /* HAVE_GL */
typedef ulong Fl_Bitmask;
typedef unsigned int Fl_Char;
#endif /* INTERNAL_LINKAGE */
typedef void* ID;
typedef void* fl_Window;
typedef void* fl_Group;
typedef void* fl_Label;
typedef void* fl_Adjuster;
typedef void* fl_Bitmap;
typedef void* fl_BMP_Image;
typedef void* fl_Box;
typedef void* fl_Browser_;
typedef void* fl_Browser;
typedef void* fl_Button;
typedef void* fl_Cairo;
typedef void* fl_Cairo_Window;
typedef void* fl_Chart;
typedef void* fl_Check_Browser;
typedef void* fl_Check_Button;
typedef void* fl_Choice;
typedef void* fl_Clock;
typedef void* fl_Color_Chooser;
typedef void* fl_Copy_Surface;
typedef void* fl_Counter;
typedef void* fl_Simple_Counter;
typedef void* fl_Device;
typedef void* fl_Dial;
typedef void* fl_Double_Window;
typedef void* fl_Export;
typedef void* fl_File_Browser;
typedef void* fl_File_Chooser;
typedef void* fl_File_Icon;
typedef void* fl_File_Input;
typedef void* fl_Fill_Dial;
typedef void* fl_Fill_Slider;
typedef void* fl_Float_Input;
typedef void* fl_Font_Descriptor;
typedef void* fl_FormsBitmap;
typedef void* fl_FormsPixmap;
typedef void* fl_Free;
typedef void* fl_GIF_Image;
typedef void* fl_Gl_Window;
typedef void* fl_Glut_Window;
typedef void* fl_Graphics_Driver;
typedef void* fl_Surface_Device;
typedef void* fl_Display_Device;
typedef void* fl_Device_Plugin;
typedef void* fl_Help_Dialog;
typedef void* fl_Help_View;
typedef void* fl_Hold_Browser;
typedef void* fl_Hor_Fill_Slider;
typedef void* fl_Hor_Nice_Slider;
typedef void* fl_Hor_Slider;
typedef void* fl_Hor_Value_Slider;
typedef void* fl_Image;
typedef void* fl_Image_Surface;
typedef void* fl_Input_Choice;
typedef void* fl_Input_;
typedef void* fl_Input;
typedef void* fl_Int_Input;
typedef void* fl_JPEG_Image;
typedef void* fl_Light_Button;
typedef void* fl_Line_Dial;
typedef void* fl_Menu_Button;
typedef void* fl_Menu_;
typedef void* fl_Menu;
typedef void* fl_Menu_Item;
typedef void* fl_Menu_Window;
typedef void* fl_Multi_Browser;
typedef void* fl_Multi_Label;
typedef void* fl_Multiline_Input;
typedef void* fl_Multiline_Output;
typedef void* fl_Native_File_Chooser;
typedef void* fl_Nice_Slider;
typedef void* fl_Object;
typedef void* fl_Output;
typedef void* fl_Overlay_Window;
typedef void* fl_Pack;
typedef void* fl_Paged_Device;
typedef void* fl_Pixmap;
typedef void* fl_Plugin;
typedef void* fl_PNG_Image;
typedef void* fl_PNM_Image;
typedef void* fl_Positioner;
typedef void* fl_PostScript;
typedef void* fl_Preferences;
typedef void* fl_Printer;
typedef void* fl_Progress;
typedef void* fl_Radio_Button;
typedef void* fl_Radio_Light_Button;
typedef void* fl_Radio_Round_Button;
typedef void* fl_Repeat_Button;
typedef void* fl_Return_Button;
typedef void* fl_RGB_Image;
typedef void* fl_Roller;
typedef void* fl_Round_Button;
typedef void* fl_Round_Clock;
typedef void* fl_Scrollbar;
typedef void* fl_Scroll;
typedef void* fl_Secret_Input;
typedef void* fl_Select_Browser;
typedef void* fl_Shared_Image;
typedef void* fl_show_input;
typedef void* fl_Simple_Counter;
typedef void* fl_Single_Window;
typedef void* fl_Slider;
typedef void* fl_Spinner;
typedef void* fl_Menu_Bar;
typedef void* fl_Sys_Menu_Bar;
typedef void* fl_Table;
typedef void* fl_Table_Row;
typedef void* fl_Tabs;
typedef void* fl_Text_Buffer;
typedef void* fl_Text_Display;
typedef void* fl_Text_Editor;
typedef void* fl_Text_Selection;
typedef void* fl_Tiled_Image;
typedef void* fl_Tile;
typedef void* fl_Timer;
typedef void* fl_Toggle_Button;
typedef void* fl_Toggle_Light_Button;
typedef void* fl_Toggle_Round_Button;
typedef void* fl_Tooltip;
typedef void* fl_Tree;
typedef void* fl_Tree_Item_Array;
typedef void* fl_Tree_Item;
typedef void* fl_Tree_Prefs;
typedef void* fl_Valuator;
typedef void* fl_Value_Input;
typedef void* fl_Value_Output;
typedef void* fl_Value_Slider;
typedef void* fl_Widget;
typedef void* fl_Wizard;
typedef void* fl_XBM_Image;
typedef void* fl_XPM_Image;
typedef void* fl_Region;
typedef void* fl_Window_Handle;
typedef void (fl_Callback )(fl_Widget, void*);
typedef void (fl_Text_Buffer_Callback)(fl_Text_Buffer);
typedef void (*Unfinished_Style_Cb)(int, void *);
typedef void (fl_File_Chooser_Callback)(fl_File_Chooser,void*);
typedef fl_Image (fl_Shared_Image_Handler)(const char *name, uchar *header,int headerlen);
typedef struct Style_Table_Entry {
Fl_Color color;
Fl_Font font;
Fl_Fontsize size;
unsigned attr;
}Style_Table_Entry;
/** Key function binding callback type */
typedef int (fl_Key_Func)(int key, fl_Text_Editor Editor);
/** Simple linked list associating a key/state to a function */
typedef struct Key_BindingC {
int key;
int state;
fl_Key_Func* function;
struct Key_BindingC* next;
} Key_BindingC;
typedef enum {
SELECT_NONEC,
SELECT_SINGLEC,
SELECT_MULTIC
}TableRowSelectModeC;
typedef enum {
CONTEXT_NONEC = 0,
CONTEXT_STARTPAGEC = 0x01,
CONTEXT_ENDPAGEC = 0x02,
CONTEXT_ROW_HEADERC = 0x04,
CONTEXT_COL_HEADERC = 0x08,
CONTEXT_CELLC = 0x10,
CONTEXT_TABLEC = 0x20,
CONTEXT_RC_RESIZEC = 0x40
}TableContextC ;
typedef struct {
int maxw;
int maxh;
int dw;
int dh;
int aspect;
}fl_Window_size_range_args;
typedef enum { TOP, BOTTOM, MIDDLE } Fl_Line_Position;
typedef struct {
int R;
int C;
int X;
int Y;
}fl_Window_draw_cell_default_args;
typedef struct {
/* From Fl_Widget */
void (*draw )(fl_Table table);
int (*handle )(fl_Table table,int event);
void (*resize )(fl_Table table,int x, int y, int w, int h);
void (*show )(fl_Table table);
void (*hide )(fl_Table table);
fl_Window (*as_window )(fl_Table table);
fl_Gl_Window (*as_gl_window)(fl_Table table);
/* From Fl_Group */
fl_Group (*as_group )(fl_Table table);
/* From Fl_Table */
void (*draw_cell )(fl_Table table,TableContextC context,int R, int C, int X, int Y, int W, int H);
void (*clear )(fl_Table table);
void (*set_rows )(fl_Table table, int val);
void (*set_cols )(fl_Table table, int val);
/* Clean up */
void (*destroy_data)(fl_Table table);
} fl_Table_Virtual_Funcs;
typedef struct {
void (*draw )(fl_Widget widget);
int (*handle )(fl_Widget widget,int event);
void (*resize )(fl_Widget widget,int x, int y, int w, int h);
void (*show )(fl_Widget widget);
void (*hide )(fl_Widget widget);
fl_Window (*as_window )(fl_Widget widget);
fl_Gl_Window (*as_gl_window)(fl_Widget widget);
fl_Group (*as_group )(fl_Widget widget);
/* Clean up */
void (*destroy_data)(fl_Widget widget);
} fl_Widget_Virtual_Funcs;
typedef struct {
/* From Fl_Widget */
void (*draw )(fl_Group group);
int (*handle )(fl_Group group,int event);
void (*resize )(fl_Group group,int x, int y, int w, int h);
void (*show )(fl_Group group);
void (*hide )(fl_Group group);
fl_Window (*as_window )(fl_Group group);
fl_Gl_Window (*as_gl_window)(fl_Group group);
/* From Fl_Group */
fl_Group (*as_group )(fl_Group group);
/* Clean up */
void (*destroy_data)(fl_Group group);
} fl_Group_Virtual_Funcs;
typedef struct {
/* From Fl_Widget */
void (*draw )(fl_Window window);
int (*handle )(fl_Window window,int event);
void (*resize )(fl_Window window,int x, int y, int w, int h);
void (*show )(fl_Window window);
void (*hide )(fl_Window window);
fl_Window (*as_window )(fl_Window window);
fl_Gl_Window (*as_gl_window)(fl_Window window);
/* From Fl_Group */
fl_Window (*as_group )(fl_Window window);
/* Fl_Browser Specific */
void (*flush )(fl_Window window);
/* Clean up */
void (*destroy_data)(fl_Window window);
} fl_Window_Virtual_Funcs;
typedef struct {
/* From Fl_Widget */
void (*draw )(fl_Browser browser);
int (*handle )(fl_Browser browser,int event);
void (*resize )(fl_Browser browser,int x, int y, int w, int h);
fl_Window (*as_window )(fl_Browser browser);
fl_Gl_Window (*as_gl_window )(fl_Browser browser);
/* From Fl_Group */
fl_Group (*as_group )(fl_Browser browser);
/* Fl_Browser Specific */
void (*show )(fl_Browser browser);
void (*show_with_line)(fl_Browser browser, int line);
void (*hide )(fl_Browser browser);
void (*hide_with_line)(fl_Browser browser, int line);
/* Clean up */
void (*destroy_data)(fl_Browser browser);
} fl_Browser_Virtual_Funcs;
typedef struct {
void (*color_average)(fl_Image image, Fl_Color c, float i);
fl_Image (*copy )(fl_Image image, int W, int H);
void (*desaturate )(fl_Image image);
void (*draw )(fl_Image image, int X, int Y, int W, int H, int cx, int cy);
void (*uncache )(fl_Image image);
void (*destroy_data )(fl_Image image);
} fl_Image_Virtual_Funcs;
typedef struct {
void (*draw )(fl_Valuator valuator);
int (*handle )(fl_Valuator valuator,int event);
void (*resize )(fl_Valuator valuator,int x, int y, int w, int h);
void (*show )(fl_Valuator valuator);
void (*hide )(fl_Valuator valuator);
fl_Window (*as_window )(fl_Valuator valuator);
fl_Gl_Window (*as_gl_window)(fl_Valuator valuator);
fl_Group (*as_group )(fl_Valuator valuator);
/* Clean up */
void (*destroy_data)(fl_Valuator valuator);
/* Fl_Valuator specific */
int (*format )(fl_Valuator valuator, char* format);
} fl_Valuator_Virtual_Funcs;
typedef fl_Table_Virtual_Funcs fl_Table_Row_Virtual_Funcs;
typedef fl_Widget_Virtual_Funcs fl_Button_Virtual_Funcs;
typedef fl_Widget_Virtual_Funcs fl_Int_Input_Virtual_Funcs;
typedef fl_Browser_Virtual_Funcs fl_Multi_Browser_Virtual_Funcs;
typedef fl_Widget_Virtual_Funcs fl_Menu__Virtual_Funcs;
typedef fl_Widget_Virtual_Funcs fl_Menu_Bar_Virtual_Funcs;
typedef fl_Widget_Virtual_Funcs fl_Box_Virtual_Funcs;
typedef fl_Window_Virtual_Funcs fl_Gl_Window_Virtual_Funcs;
typedef fl_Window_Virtual_Funcs fl_Double_Window_Virtual_Funcs;
typedef fl_Window_Virtual_Funcs fl_Single_Window_Virtual_Funcs;
#ifdef __cplusplus
}
#endif
#endif /* #ifndef __FL_TYPES_H */