PDF FLTK 1.3.5 Programming Manual
FLTK 1.3.8 Programming Manual
Revision 9.8 by F. Costantini, D. Gibson, M. Melcher, A. Schlosser, B. Spitzak, and M. Sweet.
Copyright 1998-2021 by Bill Spitzak and others.
This software and manual are provided under the terms of the GNU Library General Public License. Permission is granted to reproduce this manual or any portion for any purpose, provided this copyright and permission notice are preserved.
Generated by Doxygen 1.9.1
November 20, 2021
i
1 FLTK Programming Manual
1
2 Preface
3
2.1 Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Copyrights and Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Introduction to FLTK
5
3.1 History of FLTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4 What Does "FLTK" Mean? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.5 Building and Installing FLTK Under UNIX and Apple OS X . . . . . . . . . . . . . . . . . . . . . . . 7
3.6 Building FLTK Under Microsoft Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.6.1 GNU toolsets (Cygwin or MinGW) hosted on Windows . . . . . . . . . . . . . . . . . . . . . 9
3.6.2 Using the Visual C++ DLL Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.7 Internet Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.8 Reporting Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4 FLTK Basics
11
4.1 Writing Your First FLTK Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1.1 Creating the Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1.2 Creating Widget hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1.3 Get/Set Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1.4 Redrawing After Changing Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1.5 Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1.6 Showing the Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1.7 The Main Event Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 Compiling Programs with Standard Compilers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3 Compiling Programs with Makefiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.4 Compiling Programs with Microsoft Visual C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.5 Naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.6 Header Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5 Common Widgets and Attributes
17
5.1 Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.2 Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.3 Valuators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.4 Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.5 Setting the Size and Position of Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.6 Colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.7 Box Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.7.1 Making Your Own Boxtypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Generated by Doxygen
ii
5.8 Labels and Label Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.9 Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.10 Shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6 Designing a Simple Text Editor
27
6.1 Determining the Goals of the Text Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.2 Designing the Main Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.3 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.4 Menubars and Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.5 Editing the Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.6 The Replace Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.7 Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.7.1 changed_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.7.2 copy_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.7.3 cut_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.7.4 delete_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.7.5 find_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.7.6 find2_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.7.7 new_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.7.8 open_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.7.9 paste_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.7.10 quit_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.7.11 replace_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.7.12 replace2_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.7.13 replall_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.7.14 replcan_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.7.15 save_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.7.16 saveas_cb() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.8 Other Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.8.1 check_save() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.8.2 load_file() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.8.3 save_file() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.8.4 set_title() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.9 The main() Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.10 Compiling the Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.11 The Final Product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.12 Advanced Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.12.1 Syntax Highlighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7 Drawing Things in FLTK
39
7.1 When Can You Draw Things in FLTK? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
7.1.1 What Drawing Unit do FLTK drawing functions use? . . . . . . . . . . . . . . . . . . . . . . 39
7.2 Drawing Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Generated by Doxygen
iii
7.2.1 Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 7.2.2 Clipping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7.3 Colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 7.3.1 Line Dashes and Thickness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7.3.2 Drawing Fast Shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 7.3.3 Drawing Complex Shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.3.4 Drawing Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 7.3.5 Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.3.6 Character Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.3.7 Drawing Overlays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.4 Drawing Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.4.1 Direct Image Drawing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 7.4.2 Direct Image Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.4.3 Image Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 7.4.4 Offscreen Drawing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
8 Handling Events
59
8.1 The FLTK Event Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2 Mouse Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.1 FL_PUSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.2 FL_DRAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.3 FL_RELEASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.4 FL_MOVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.5 FL_MOUSEWHEEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.3 Focus Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.3.1 FL_ENTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.3.2 FL_LEAVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.3.3 FL_FOCUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.3.4 FL_UNFOCUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.4 Keyboard Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.4.1 FL_KEYBOARD, FL_KEYDOWN, FL_KEYUP . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.4.2 FL_SHORTCUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.5 Widget Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.5.1 FL_DEACTIVATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.5.2 FL_ACTIVATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.5.3 FL_HIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.5.4 FL_SHOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.6 Clipboard Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.6.1 FL_PASTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.6.2 FL_SELECTIONCLEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.7 Drag and Drop Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.7.1 FL_DND_ENTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Generated by Doxygen
iv
8.7.2 FL_DND_DRAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.7.3 FL_DND_LEAVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.7.4 FL_DND_RELEASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.8 Other events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.8.1 FL_SCREEN_CONFIGURATION_CHANGED . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.8.2 FL_FULLSCREEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.9 Fl::event_() methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 8.10 Event Propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 8.11 FLTK Compose-Character Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
9 Adding and Extending Widgets
67
9.1 Subclassing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.2 Making a Subclass of Fl_Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.3 The Constructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.4 Protected Methods of Fl_Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
9.5 Handling Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
9.6 Drawing the Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9.7 Resizing the Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9.8 Making a Composite Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9.9 Cut and Paste Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.10 Drag And Drop Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.11 Making a subclass of Fl_Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
10 Using OpenGL
75
10.1 Using OpenGL in FLTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
10.2 Making a Subclass of Fl_Gl_Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
10.2.1 Defining the Subclass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
10.2.2 The draw() Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
10.2.3 The handle() Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
10.3 Using OpenGL in Normal FLTK Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
10.4 OpenGL Drawing Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
10.5 Speeding up OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
10.6 Using OpenGL Optimizer with FLTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
10.7 Using OpenGL 3.0 (or higher versions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
11 Programming with FLUID
83
11.1 What is FLUID? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
11.2 Running FLUID Under UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
11.3 Running FLUID Under Microsoft Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
11.4 Compiling .fl files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
11.5 A Short Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
11.5.1 The CubeView Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
11.5.2 The CubeViewUI Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Generated by Doxygen
v
11.5.3 Adding Constructor Initialization Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 11.5.4 Generating the Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 11.6 FLUID Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 11.6.1 The Widget Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 11.6.2 Menu Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 11.6.3 The Widget Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 11.7 GUI Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 11.7.1 Style Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 11.7.2 C++ Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 11.8 Selecting and Moving Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 11.9 Image Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 11.10 Internationalization with FLUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 11.10.1 I18N Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 11.10.2 Using GNU gettext for I18N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 11.10.3 Using POSIX catgets for I18N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 11.11 Known limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
12 Advanced FLTK
115
12.1 Multithreading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
12.2 FLTK multithread locking - Fl::lock() and Fl::unlock() . . . . . . . . . . . . . . . . . . . . . . . . . . 115
12.3 Simple multithreaded examples using Fl::lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
12.4 FLTK multithreaded "lockless programming" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
12.5 FLTK multithreaded Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
13 Unicode and UTF-8 Support
121
13.1 About Unicode, ISO 10646 and UTF-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
13.2 Unicode in FLTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
13.3 Illegal Unicode and UTF-8 Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
13.4 FLTK Unicode and UTF-8 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
13.5 FLTK Unicode Versions of System Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
14 FLTK Enumerations
129
14.1 Version Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
14.2 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
14.3 Callback "When" Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
14.4 Fl::event_button() Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
14.5 Fl::event_key() Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
14.6 Fl::event_state() Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
14.7 Alignment Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
14.8 Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
14.9 Colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
14.9.1 Color Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
14.10 Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Generated by Doxygen
vi
14.11 FD "When" Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 14.12 Damage Masks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
15 GLUT Compatibility
137
15.1 Using the GLUT Compatibility Header File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
15.2 Known Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
15.3 Mixing GLUT and FLTK Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
15.4 class Fl_Glut_Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
15.4.1 Class Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
15.4.2 Include Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
15.4.3 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
15.4.4 Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
15.4.5 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
16 Forms Compatibility
141
16.1 Importing Forms Layout Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
16.2 Using the Compatibility Header File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
16.3 Problems You Will Encounter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
16.4 Additional Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
17 Operating System Issues
147
17.1 Accessing the OS Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
17.2 The UNIX (X11) Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
17.2.1 Handling Other X Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
17.2.2 Drawing using Xlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
17.2.3 Changing the Display, Screen, or X Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
17.2.4 Using a Subclass of Fl_Window for Special X Stuff . . . . . . . . . . . . . . . . . . . . . . 151
17.2.5 Setting the Icon of a Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
17.2.6 X Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
17.3 The Windows (WIN32) Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
17.3.1 Using filenames with non-ASCII characters . . . . . . . . . . . . . . . . . . . . . . . . . . 154
17.3.2 Responding to WM_QUIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
17.3.3 Handling Other WIN32 Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
17.3.4 Drawing Things Using the WIN32 GDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
17.3.5 Setting the Icon of a Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
17.3.6 How to Not Get a MSDOS Console Window . . . . . . . . . . . . . . . . . . . . . . . . . . 155
17.3.7 Known WIN32 Bugs and Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
17.4 The Apple OS X Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
17.4.1 Setting the icon of an application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
17.4.2 Drawing Things Using Quartz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
17.4.3 Internationalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
17.4.4 OpenGL and 'retina' displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
17.4.5 Fl_Double_Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Generated by Doxygen
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- pdf perfect widgets documentation componentsource
- pdf ssd1306 adafruit industries
- pdf welcome to enhanced security for safe and stay connected to home
- pdf how to put a countdown timer on my desktop
- pdf intel high definition audio specification
- pdf c bus toolkit 1 15 release notes
- pdf approach owner s manual s60 garmin international
- pdf how to set up a countdown clock on facebook
- pdf tradestation uturesplus web app quick start uide
- pdf getting started with widgetfx
Related searches
- activity 1 3 3 thermodynamics answer key
- activity 1.3.3 thermodynamics answer key
- act 1 3 3 thermodynamics answer key
- 2 1 vs 3 1 vs 5 1
- 3 1 vs 5 1 soundbar
- 3 1 vs 5 1 sound bars
- 2 5 x 3 5 in pixels
- dnd 3 5 monster manual pdf
- 1 john 3 1 3 nrsv
- eclipse memory analyzer 3 3 5 90
- 3 5 out of 3 4
- 3 1 3 testout quizlet