26 #ifdef FLTK_HAVE_CAIRO
27 # include <FL/Fl_Cairo.H>
33 # define Fl_Object Fl_Widget
47 #if defined(WIN32) && !defined(__CYGWIN__)
49 # define FL_SOCKET unsigned __int64
51 # define FL_SOCKET int
54 # define FL_SOCKET int
136 static int e_is_click;
148 static int compose_state;
149 static void call_screen_init();
168 OPTION_ARROW_FOCUS = 0,
198 static unsigned char options_[OPTION_LAST];
199 static unsigned char options_read_;
206 static bool option(Fl_Option opt);
211 static void option(Fl_Option opt,
bool val);
220 static void (*idle)();
224 static void **awake_data_;
225 static int awake_ring_size_;
226 static int awake_ring_head_;
227 static int awake_ring_tail_;
228 static const char* scheme_;
231 static int e_original_keysym;
232 static int scrollbar_size_;
242 static double version();
245 static int arg(
int argc,
char **argv,
int& i);
246 static int args(
int argc,
char **argv,
int& i,
Fl_Args_Handler cb = 0);
247 static void args(
int argc,
char **argv);
255 static void display(
const char*);
256 static int visual(
int);
266 static int gl_visual(
int,
int *alist=0);
267 static void own_colormap();
268 static void get_system_colors();
274 static int scheme(
const char*);
276 static const char*
scheme() {
return scheme_;}
282 static int reload_scheme();
283 static int scrollbar_size();
284 static void scrollbar_size(
int W);
288 static double wait(
double time);
365 static void add_fd(
int fd,
int when,
Fl_FD_Handler cb,
void* = 0);
369 static void remove_fd(
int,
int when);
371 static void remove_fd(
int);
378 static void redraw();
400 static void (*warning)(
const char*, ...);
415 static void (*error)(
const char*, ...);
432 static void (*fatal)(
const char*, ...);
495 static int event() {
return e_number;}
538 static void get_mouse(
int &,
int &);
663 static int event_key(
int key);
669 static int get_key(
int key);
693 static int compose(
int &del);
694 static void compose_reset();
695 static int event_inside(
int,
int,
int,
int);
696 static int event_inside(
const Fl_Widget*);
732 static void copy(
const char* stuff,
int len,
int destination = 0);
750 static void paste(
Fl_Widget &receiver,
int source );
780 static void selection(
Fl_Widget &owner,
const char*,
int len);
797 static int screen_count();
806 screen_xywh(X, Y, W, H, x, y);
808 static void screen_xywh(
int &X,
int &Y,
int &W,
int &H,
int mx,
int my);
809 static void screen_xywh(
int &X,
int &Y,
int &W,
int &H,
int n);
810 static void screen_xywh(
int &X,
int &Y,
int &W,
int &H,
int mx,
int my,
int mw,
int mh);
811 static void screen_dpi(
float &h,
float &v,
int n=0);
812 static void screen_work_area(
int &X,
int &Y,
int &W,
int &H,
int mx,
int my);
813 static void screen_work_area(
int &X,
int &Y,
int &W,
int &H,
int n);
822 screen_work_area(X, Y, W, H, x, y);
838 static void set_color(
Fl_Color i,
unsigned c);
839 static unsigned get_color(
Fl_Color i);
846 static void free_color(
Fl_Color i,
int overlay = 0);
849 static const char* get_font(
Fl_Font);
862 static const char* get_font_name(
Fl_Font,
int* attributes = 0);
874 static int get_font_sizes(
Fl_Font,
int*& sizep);
875 static void set_font(
Fl_Font,
const char*);
895 static Fl_Font set_fonts(
const char* = 0);
919 static int draw_box_active();
927 static void default_atclose(
Fl_Window*,
void*);
1018 static void unlock();
1019 static void awake(
void* message = 0);
1028 static void* thread_message();
1061 static void delete_widget(
Fl_Widget *w);
1062 static void do_widget_deletion();
1063 static void watch_widget_pointer(
Fl_Widget *&w);
1064 static void release_widget_pointer(
Fl_Widget *&w);
1065 static void clear_widget_pointer(
Fl_Widget const *w);
1068 #ifdef FLTK_HAVE_CAIRO
1074 static cairo_t * cairo_make_current(
Fl_Window* w);
1099 static cairo_t *
cairo_cc() {
return cairo_state_.cc(); }
1104 static void cairo_cc(cairo_t * c,
bool own=
false){ cairo_state_.cc(c, own); }
1107 static cairo_t * cairo_make_current(
void* gc);
1108 static cairo_t * cairo_make_current(
void* gc,
int W,
int H);
1113 #endif // FLTK_HAVE_CAIRO
static Fl_Window * modal()
Returns the top-most modal() window currently shown.
Definition: Fl.H:451
void( Fl_Label_Measure_F)(const Fl_Label *label, int &width, int &height)
Signature of some label measurement functions passed as parameters.
Definition: Fl.H:76
This widget produces an actual window.
Definition: Fl_Window.H:50
static int event_is_click()
Returns non-zero if the mouse has not moved far enough and not enough time has passed since the last ...
Definition: Fl.H:563
#define FL_BUTTON2
Mouse button 2 is pushed.
Definition: Enumerations.H:434
static const char * scheme()
See void scheme(const char *name)
Definition: Fl.H:276
static Fl_Widget * focus()
Gets the current Fl::focus() widget.
Definition: Fl.H:711
static const char * event_text()
Returns the text associated with the current event, including FL_PASTE or FL_DND_RELEASE events...
Definition: Fl.H:684
static Fl_Widget * selection_owner()
back-compatibility only: Gets the widget owning the current selection
Definition: Fl.H:778
static int event_button1()
Returns non-zero if mouse button 1 is currently held down.
Definition: Fl.H:957
static void cairo_autolink_context(bool alink)
when FLTK_HAVE_CAIRO is defined and cairo_autolink_context() is true, any current window dc is linked...
Definition: Fl.H:1089
The Fl is the FLTK global (static) class containing state information and global methods for the curr...
Definition: Fl.H:122
void(* Fl_Timeout_Handler)(void *data)
Signature of some timeout callback functions passed as parameters.
Definition: Fl.H:82
static void release()
Releases the current grabbed window, equals grab(0).
Definition: Fl.H:981
static int event_y_root()
Returns the mouse position on the screen of the event.
Definition: Fl.H:519
void(* Fl_Idle_Handler)(void *data)
Signature of add_idle callback functions passed as parameters.
Definition: Fl.H:88
If visible focus is switched on, FLTK will draw a dotted rectangle inside the widget that will receiv...
Definition: Fl.H:183
static Fl_Widget * belowmouse()
Gets the widget that is below the mouse.
Definition: Fl.H:704
static int event()
Returns the last event that was processed.
Definition: Fl.H:495
header for Unicode and UTF8 chracter handling
#define FL_BUTTON3
Mouse button 3 is pushed.
Definition: Enumerations.H:435
static int event_y()
Returns the mouse position of the event relative to the Fl_Window it was passed to.
Definition: Fl.H:505
Fl_Image is the base class used for caching and drawing all kinds of images in FLTK.
Definition: Fl_Image.H:44
static int event_dx()
Returns the current horizontal mouse scrolling associated with the FL_MOUSEWHEEL event.
Definition: Fl.H:524
static void screen_work_area(int &X, int &Y, int &W, int &H)
Gets the bounding box of the work area of the screen that contains the mouse pointer.
Definition: Fl.H:819
If tooltips are enabled, hovering the mouse over a widget with a tooltip text will open a little tool...
Definition: Fl.H:191
Fl_Boxtype
Definition: Enumerations.H:469
static int event_button()
Gets which particular mouse button caused the current event.
Definition: Fl.H:577
static bool cairo_autolink_context()
Gets the current autolink mode for cairo support.
Definition: Fl.H:1097
#define FL_SHIFT
One of the shift keys is down.
Definition: Enumerations.H:423
This file contains type definitions and general enumerations.
#define FL_COMMAND
An alias for FL_CTRL on WIN32 and X11, or FL_META on MacOS X.
Definition: Enumerations.H:446
#define FL_Button
A mouse button; use Fl_Button + n for mouse button n.
Definition: Enumerations.H:337
void( Fl_Label_Draw_F)(const Fl_Label *label, int x, int y, int w, int h, Fl_Align align)
Signature of some label drawing functions passed as parameters.
Definition: Fl.H:73
void(* Fl_Atclose_Handler)(Fl_Window *window, void *data)
Signature of set_atclose functions passed as parameters.
Definition: Fl.H:103
void(* Fl_Clipboard_Notify_Handler)(int source, void *data)
Signature of add_clipboard_notify functions passed as parameters.
Definition: Fl.H:113
If text drag-and-drop is enabled, the user can select and drag text from any text widget...
Definition: Fl.H:187
static void event_clicks(int i)
Manually sets the number returned by Fl::event_clicks().
Definition: Fl.H:555
static int event_clicks()
Returns non zero if we had a double click event.
Definition: Fl.H:547
static const char *const help
Usage string displayed if Fl::args() detects an invalid argument.
Definition: Fl.H:252
static int event_state(int i)
See int event_state()
Definition: Fl.H:603
static int event_state()
This is a bitfield of what shift states were on and what mouse buttons were held down during the most...
Definition: Fl.H:601
This struct stores all information for a text or mixed graphics label.
Definition: Fl_Widget.H:64
#define FL_CTRL
One of the ctrl keys is down.
Definition: Enumerations.H:425
static int event_original_key()
Returns the keycode of the last key event, regardless of the NumLock state.
Definition: Fl.H:624
static void screen_xywh(int &X, int &Y, int &W, int &H)
Gets the bounding box of a screen that contains the mouse pointer.
Definition: Fl.H:803
static int event_button3()
Returns non-zero if button 3 is currently held down.
Definition: Fl.H:967
static int visible_focus()
Gets or sets the visible keyboard focus on buttons and other non-text widgets.
Definition: Fl.H:995
static int event_dy()
Returns the current vertical mouse scrolling associated with the FL_MOUSEWHEEL event.
Definition: Fl.H:529
void(* Fl_FD_Handler)(FL_SOCKET fd, void *data)
Signature of add_fd functions passed as parameters.
Definition: Fl.H:94
static void get_mouse(int &, int &)
Return where the mouse is on the screen by doing a round-trip query to the server.
static void grab(Fl_Window &win)
See grab(Fl_Window*)
Definition: Fl.H:977
#define FL_ALT
One of the alt keys is down.
Definition: Enumerations.H:426
static int event_length()
Returns the length of the text in Fl::event_text().
Definition: Fl.H:691
static int event_command()
Returns non-zero if the FL_COMMAND key is pressed, either FL_CTRL or on OSX FL_META.
Definition: Fl.H:941
static void event_is_click(int i)
Clears the value returned by Fl::event_is_click().
Definition: Fl.H:570
void(* Fl_Abort_Handler)(const char *format,...)
Signature of set_abort functions passed as parameters.
Definition: Fl.H:100
unsigned int Fl_Color
an FLTK color value
Definition: Enumerations.H:774
Fl_Labeltype
The labeltype() method sets the type of the label.
Definition: Enumerations.H:611
int Fl_Font
A font number is an index into the internal font table.
Definition: Enumerations.H:717
void( Fl_Box_Draw_F)(int x, int y, int w, int h, Fl_Color color)
Signature of some box drawing functions passed as parameters.
Definition: Fl.H:79
static int event_x_root()
Returns the mouse position on the screen of the event.
Definition: Fl.H:512
#define FL_BUTTON1
Mouse button 1 is pushed.
Definition: Enumerations.H:433
unsigned Fl_Align
FLTK type for alignment control.
Definition: Enumerations.H:668
static void dnd_text_ops(int v)
Gets or sets whether drag and drop text operations are supported.
Definition: Fl.H:1004
static void cairo_cc(cairo_t *c, bool own=false)
Sets the current cairo context to c.
Definition: Fl.H:1104
static Fl_Window * grab()
Returns the window that currently receives all events.
Definition: Fl.H:457
static void damage(int d)
If true then flush() will do something.
Definition: Fl.H:154
void(* Fl_Old_Idle_Handler)()
Signature of set_idle callback functions passed as parameters.
Definition: Fl.H:91
static void visible_focus(int v)
Gets or sets the visible keyboard focus on buttons and other non-text widgets.
Definition: Fl.H:989
static int event_button2()
Returns non-zero if button 2 is currently held down.
Definition: Fl.H:962
void(* Fl_Awake_Handler)(void *data)
Signature of some wakeup callback functions passed as parameters.
Definition: Fl.H:85
int(* Fl_Event_Handler)(int event)
Signature of add_handler functions passed as parameters.
Definition: Fl.H:97
int(* Fl_Event_Dispatch)(int event, Fl_Window *w)
Signature of event_dispatch functions passed as parameters.
Definition: Fl.H:110
static Fl_Widget * pushed()
Gets the widget that is being pushed.
Definition: Fl.H:708
static void set_atclose(Fl_Atclose_Handler f)
For back compatibility, sets the Fl::atclose handler callback.
Definition: Fl.H:931
static cairo_t * cairo_cc()
Gets the current cairo context linked with a fltk window.
Definition: Fl.H:1099
Contains all the necessary info on the current cairo context.
Definition: Fl_Cairo.H:54
static int event_x()
Returns the mouse position of the event relative to the Fl_Window it was passed to.
Definition: Fl.H:500
Fl_Color color
text color
Definition: Fl_Widget.H:76
static int dnd_text_ops()
Gets or sets whether drag and drop text operations are supported.
Definition: Fl.H:1011
static int event_shift()
Returns non-zero if the Shift key is pressed.
Definition: Fl.H:937
static int event_ctrl()
Returns non-zero if the Control key is pressed.
Definition: Fl.H:939
static int damage()
If true then flush() will do something.
Definition: Fl.H:377
static void set_idle(Fl_Old_Idle_Handler cb)
Sets an idle callback.
Definition: Fl.H:975
unsigned char uchar
unsigned char
Definition: fl_types.h:30
static int event_buttons()
Returns the mouse buttons state bits; if non-zero, then at least one button is pressed now...
Definition: Fl.H:952
unsigned int Fl_Shortcut
24-bit Unicode character + 8-bit indicator for keyboard flags
Definition: fl_types.h:46
static int event_key()
Gets which key on the keyboard was last pushed.
Definition: Fl.H:615
static void set_abort(Fl_Abort_Handler f)
For back compatibility, sets the void Fl::fatal handler callback.
Definition: Fl.H:925
static int event_alt()
Returns non-zero if the Alt key is pressed.
Definition: Fl.H:943
int(* Fl_Args_Handler)(int argc, char **argv, int &i)
Signature of args functions passed as parameters.
Definition: Fl.H:106