summaryrefslogtreecommitdiff
path: root/documentation
diff options
context:
space:
mode:
Diffstat (limited to 'documentation')
-rw-r--r--documentation/Doxyfile223
-rw-r--r--documentation/Fl.html1392
-rw-r--r--documentation/Fl_Adjuster.html53
-rw-r--r--documentation/Fl_BMP_Image.html57
-rw-r--r--documentation/Fl_Bitmap.html54
-rw-r--r--documentation/Fl_Box.html44
-rw-r--r--documentation/Fl_Browser.html220
-rw-r--r--documentation/Fl_Browser_.html419
-rw-r--r--documentation/Fl_Button.html134
-rw-r--r--documentation/Fl_Chart.html123
-rw-r--r--documentation/Fl_Check_Browser.html104
-rw-r--r--documentation/Fl_Check_Button.html45
-rw-r--r--documentation/Fl_Choice.html88
-rw-r--r--documentation/Fl_Clock.html52
-rw-r--r--documentation/Fl_Clock_Output.html62
-rw-r--r--documentation/Fl_Color_Chooser.html91
-rw-r--r--documentation/Fl_Counter.html51
-rw-r--r--documentation/Fl_Dial.html65
-rw-r--r--documentation/Fl_Double_Window.html54
-rw-r--r--documentation/Fl_End.html45
-rw-r--r--documentation/Fl_File_Browser.html84
-rw-r--r--documentation/Fl_File_Chooser.html303
-rw-r--r--documentation/Fl_File_Icon.html156
-rw-r--r--documentation/Fl_File_Input.html60
-rw-r--r--documentation/Fl_Float_Input.html39
-rw-r--r--documentation/Fl_Free.html78
-rw-r--r--documentation/Fl_GIF_Image.html58
-rw-r--r--documentation/Fl_Gl_Window.html244
-rw-r--r--documentation/Fl_Group.html190
-rw-r--r--documentation/Fl_Help_Dialog.html120
-rw-r--r--documentation/Fl_Help_View.html141
-rw-r--r--documentation/Fl_Hold_Browser.html59
-rw-r--r--documentation/Fl_Image.html212
-rw-r--r--documentation/Fl_Input.html383
-rw-r--r--documentation/Fl_Input_.html283
-rw-r--r--documentation/Fl_Input_Choice.html100
-rw-r--r--documentation/Fl_Int_Input.html38
-rw-r--r--documentation/Fl_JPEG_Image.html59
-rw-r--r--documentation/Fl_Light_Button.html45
-rw-r--r--documentation/Fl_Menu_.html316
-rw-r--r--documentation/Fl_Menu_Bar.html67
-rw-r--r--documentation/Fl_Menu_Button.html83
-rw-r--r--documentation/Fl_Menu_Item.html300
-rw-r--r--documentation/Fl_Menu_Window.html49
-rw-r--r--documentation/Fl_Multi_Browser.html79
-rw-r--r--documentation/Fl_Multiline_Input.html47
-rw-r--r--documentation/Fl_Multiline_Output.html42
-rw-r--r--documentation/Fl_Output.html83
-rw-r--r--documentation/Fl_Overlay_Window.html59
-rw-r--r--documentation/Fl_PNG_Image.html59
-rw-r--r--documentation/Fl_PNM_Image.html59
-rw-r--r--documentation/Fl_Pack.html73
-rw-r--r--documentation/Fl_Pixmap.html57
-rw-r--r--documentation/Fl_Positioner.html73
-rw-r--r--documentation/Fl_Preferences.html216
-rw-r--r--documentation/Fl_Progress.html68
-rw-r--r--documentation/Fl_RGB_Image.html64
-rw-r--r--documentation/Fl_Repeat_Button.html38
-rw-r--r--documentation/Fl_Return_Button.html38
-rw-r--r--documentation/Fl_Roller.html37
-rw-r--r--documentation/Fl_Round_Button.html45
-rw-r--r--documentation/Fl_Scroll.html105
-rw-r--r--documentation/Fl_Scrollbar.html64
-rw-r--r--documentation/Fl_Secret_Input.html40
-rw-r--r--documentation/Fl_Select_Browser.html57
-rw-r--r--documentation/Fl_Shared_Image.html96
-rw-r--r--documentation/Fl_Single_Window.html42
-rw-r--r--documentation/Fl_Slider.html82
-rw-r--r--documentation/Fl_Spinner.html123
-rw-r--r--documentation/Fl_Tabs.html91
-rw-r--r--documentation/Fl_Text_Buffer.html465
-rw-r--r--documentation/Fl_Text_Display.html246
-rw-r--r--documentation/Fl_Text_Editor.html227
-rw-r--r--documentation/Fl_Tile.html91
-rw-r--r--documentation/Fl_Tiled_Image.html64
-rw-r--r--documentation/Fl_Timer.html62
-rw-r--r--documentation/Fl_Toggle_Button.html43
-rw-r--r--documentation/Fl_Tooltip.html116
-rw-r--r--documentation/Fl_Valuator.html199
-rw-r--r--documentation/Fl_Value_Input.html133
-rw-r--r--documentation/Fl_Value_Output.html69
-rw-r--r--documentation/Fl_Value_Slider.html57
-rw-r--r--documentation/Fl_Widget.html568
-rw-r--r--documentation/Fl_Window.html290
-rw-r--r--documentation/Fl_Wizard.html73
-rw-r--r--documentation/Fl_XBM_Image.html57
-rw-r--r--documentation/Fl_XPM_Image.html57
-rw-r--r--documentation/Makefile282
-rw-r--r--documentation/advanced.html95
-rw-r--r--documentation/basics.html367
-rw-r--r--documentation/common.html672
-rw-r--r--documentation/drawing.html972
-rw-r--r--documentation/editor.html911
-rw-r--r--documentation/enumerations.html306
-rw-r--r--documentation/events.html394
-rw-r--r--documentation/examples.html453
-rw-r--r--documentation/fluid.html1363
-rw-r--r--documentation/forms.html203
-rw-r--r--documentation/functions.html1460
-rw-r--r--documentation/glut.html196
-rw-r--r--documentation/index.html101
-rw-r--r--documentation/intro.html372
-rw-r--r--documentation/license.html442
-rw-r--r--documentation/migration.html163
-rw-r--r--documentation/opengl.html467
-rw-r--r--documentation/osissues.html745
-rw-r--r--documentation/preface.html117
-rw-r--r--documentation/src/FL.gif (renamed from documentation/FL.gif)bin6455 -> 6455 bytes
-rw-r--r--documentation/src/FL200.eps (renamed from documentation/FL200.eps)0
-rw-r--r--documentation/src/FL200.gif (renamed from documentation/FL200.gif)bin2722 -> 2722 bytes
-rw-r--r--documentation/src/Fl_Check_Button.gif (renamed from documentation/Fl_Check_Button.gif)bin362 -> 362 bytes
-rw-r--r--documentation/src/Fl_File_Chooser.jpg (renamed from documentation/Fl_File_Chooser.jpg)bin30831 -> 30831 bytes
-rw-r--r--documentation/src/Fl_File_Input.gif (renamed from documentation/Fl_File_Input.gif)bin4040 -> 4040 bytes
-rw-r--r--documentation/src/Fl_Help_Dialog.gif (renamed from documentation/Fl_Help_Dialog.gif)bin8571 -> 8571 bytes
-rw-r--r--documentation/src/Fl_Light_Button.gif (renamed from documentation/Fl_Light_Button.gif)bin421 -> 421 bytes
-rw-r--r--documentation/src/Fl_Return_Button.gif (renamed from documentation/Fl_Return_Button.gif)bin491 -> 491 bytes
-rw-r--r--documentation/src/Fl_Roller.gif (renamed from documentation/Fl_Roller.gif)bin1592 -> 1592 bytes
-rw-r--r--documentation/src/Fl_Round_Button.gif (renamed from documentation/Fl_Round_Button.gif)bin404 -> 404 bytes
-rw-r--r--documentation/src/Fl_Scroll.gif (renamed from documentation/Fl_Scroll.gif)bin13051 -> 13051 bytes
-rw-r--r--documentation/src/Fl_Tile.gif (renamed from documentation/Fl_Tile.gif)bin3837 -> 3837 bytes
-rw-r--r--documentation/src/Fl_Value_Input.gif (renamed from documentation/Fl_Value_Input.gif)bin651 -> 651 bytes
-rw-r--r--documentation/src/Fl_Value_Output.gif (renamed from documentation/Fl_Value_Output.gif)bin640 -> 640 bytes
-rw-r--r--documentation/src/adjuster1.gif (renamed from documentation/adjuster1.gif)bin1249 -> 1249 bytes
-rw-r--r--documentation/src/advanced.dox (renamed from documentation/advanced.dox)0
-rw-r--r--documentation/src/basics.dox (renamed from documentation/basics.dox)0
-rw-r--r--documentation/src/boxtypes.gif (renamed from documentation/boxtypes.gif)bin12196 -> 12196 bytes
-rw-r--r--documentation/src/buttons.gif (renamed from documentation/buttons.gif)bin2052 -> 2052 bytes
-rw-r--r--documentation/src/charts.gif (renamed from documentation/charts.gif)bin12312 -> 12312 bytes
-rw-r--r--documentation/src/choice.gif (renamed from documentation/choice.gif)bin2240 -> 2240 bytes
-rw-r--r--documentation/src/clock.gif (renamed from documentation/clock.gif)bin1779 -> 1779 bytes
-rw-r--r--documentation/src/common.dox (renamed from documentation/common.dox)0
-rw-r--r--documentation/src/counter.gif (renamed from documentation/counter.gif)bin1879 -> 1879 bytes
-rw-r--r--documentation/src/cubeview.gif (renamed from documentation/cubeview.gif)bin10937 -> 10937 bytes
-rw-r--r--documentation/src/development.dox (renamed from documentation/development.dox)0
-rw-r--r--documentation/src/dial.gif (renamed from documentation/dial.gif)bin1564 -> 1564 bytes
-rw-r--r--documentation/src/drawing.dox (renamed from documentation/drawing.dox)0
-rw-r--r--documentation/src/editor-replace.gif (renamed from documentation/editor-replace.gif)bin1521 -> 1521 bytes
-rw-r--r--documentation/src/editor.dox (renamed from documentation/editor.dox)0
-rw-r--r--documentation/src/editor.gif (renamed from documentation/editor.gif)bin10187 -> 10187 bytes
-rw-r--r--documentation/src/enumerations.dox (renamed from documentation/enumerations.dox)0
-rw-r--r--documentation/src/events.dox (renamed from documentation/events.dox)0
-rw-r--r--documentation/src/examples.dox (renamed from documentation/examples.dox)0
-rw-r--r--documentation/src/fl_alert.gif (renamed from documentation/fl_alert.gif)bin1674 -> 1674 bytes
-rw-r--r--documentation/src/fl_ask.gif (renamed from documentation/fl_ask.gif)bin1333 -> 1333 bytes
-rw-r--r--documentation/src/fl_choice.gif (renamed from documentation/fl_choice.gif)bin1519 -> 1519 bytes
-rw-r--r--documentation/src/fl_color_chooser.jpg (renamed from documentation/fl_color_chooser.jpg)bin7694 -> 7694 bytes
-rw-r--r--documentation/src/fl_input.gif (renamed from documentation/fl_input.gif)bin1935 -> 1935 bytes
-rw-r--r--documentation/src/fl_message.gif (renamed from documentation/fl_message.gif)bin1509 -> 1509 bytes
-rw-r--r--documentation/src/fl_password.gif (renamed from documentation/fl_password.gif)bin1607 -> 1607 bytes
-rw-r--r--documentation/src/fl_show_colormap.gif (renamed from documentation/fl_show_colormap.gif)bin17916 -> 17916 bytes
-rw-r--r--documentation/src/fluid-catgets.gif (renamed from documentation/fluid-catgets.gif)bin7626 -> 7626 bytes
-rw-r--r--documentation/src/fluid-gettext.gif (renamed from documentation/fluid-gettext.gif)bin7630 -> 7630 bytes
-rw-r--r--documentation/src/fluid-org.gif (renamed from documentation/fluid-org.gif)bin11334 -> 11334 bytes
-rw-r--r--documentation/src/fluid.dox (renamed from documentation/fluid.dox)0
-rw-r--r--documentation/src/fluid1.gif (renamed from documentation/fluid1.gif)bin6257 -> 6257 bytes
-rw-r--r--documentation/src/fluid2.gif (renamed from documentation/fluid2.gif)bin28555 -> 28555 bytes
-rw-r--r--documentation/src/fluid3-cxx.gif (renamed from documentation/fluid3-cxx.gif)bin8841 -> 8841 bytes
-rw-r--r--documentation/src/fluid3-gui.gif (renamed from documentation/fluid3-gui.gif)bin10636 -> 10636 bytes
-rw-r--r--documentation/src/fluid3-style.gif (renamed from documentation/fluid3-style.gif)bin8046 -> 8046 bytes
-rw-r--r--documentation/src/fluid4.gif (renamed from documentation/fluid4.gif)bin5123 -> 5123 bytes
-rw-r--r--documentation/src/fluid_prefs.gif (renamed from documentation/fluid_prefs.gif)bin6875 -> 6875 bytes
-rw-r--r--documentation/src/fluid_widget_cxx.gif (renamed from documentation/fluid_widget_cxx.gif)bin8154 -> 8154 bytes
-rw-r--r--documentation/src/fluid_widget_gui.gif (renamed from documentation/fluid_widget_gui.gif)bin10463 -> 10463 bytes
-rw-r--r--documentation/src/fluid_widget_style.gif (renamed from documentation/fluid_widget_style.gif)bin7653 -> 7653 bytes
-rw-r--r--documentation/src/forms.dox (renamed from documentation/forms.dox)0
-rw-r--r--documentation/src/glut.dox (renamed from documentation/glut.dox)0
-rw-r--r--documentation/src/hello.C.gif (renamed from documentation/hello.C.gif)bin1686 -> 1686 bytes
-rw-r--r--documentation/src/index.dox (renamed from documentation/index.dox)0
-rw-r--r--documentation/src/input_choice.jpg (renamed from documentation/input_choice.jpg)bin5320 -> 5320 bytes
-rw-r--r--documentation/src/intro.dox (renamed from documentation/intro.dox)0
-rw-r--r--documentation/src/license.dox (renamed from documentation/license.dox)0
-rw-r--r--documentation/src/menu.gif (renamed from documentation/menu.gif)bin3079 -> 3079 bytes
-rw-r--r--documentation/src/menu_button.gif (renamed from documentation/menu_button.gif)bin1632 -> 1632 bytes
-rw-r--r--documentation/src/menubar.gif (renamed from documentation/menubar.gif)bin1273 -> 1273 bytes
-rw-r--r--documentation/src/migration_1_1.dox (renamed from documentation/migration_1_1.dox)0
-rw-r--r--documentation/src/migration_1_3.dox (renamed from documentation/migration_1_3.dox)0
-rw-r--r--documentation/src/opengl.dox (renamed from documentation/opengl.dox)0
-rw-r--r--documentation/src/osissues.dox (renamed from documentation/osissues.dox)0
-rw-r--r--documentation/src/positioner.gif (renamed from documentation/positioner.gif)bin1467 -> 1467 bytes
-rw-r--r--documentation/src/preface.dox (renamed from documentation/preface.dox)0
-rw-r--r--documentation/src/resizebox1.gif (renamed from documentation/resizebox1.gif)bin2795 -> 2795 bytes
-rw-r--r--documentation/src/resizebox2.gif (renamed from documentation/resizebox2.gif)bin4291 -> 4291 bytes
-rw-r--r--documentation/src/round_clock.gif (renamed from documentation/round_clock.gif)bin1623 -> 1623 bytes
-rw-r--r--documentation/src/scrollbar.gif (renamed from documentation/scrollbar.gif)bin1201 -> 1201 bytes
-rw-r--r--documentation/src/slider.gif (renamed from documentation/slider.gif)bin3412 -> 3412 bytes
-rw-r--r--documentation/src/subclassing.dox (renamed from documentation/subclassing.dox)0
-rw-r--r--documentation/src/symbols.gif (renamed from documentation/symbols.gif)bin5175 -> 5175 bytes
-rw-r--r--documentation/src/tabs.gif (renamed from documentation/tabs.gif)bin2271 -> 2271 bytes
-rw-r--r--documentation/src/text.gif (renamed from documentation/text.gif)bin1988 -> 1988 bytes
-rw-r--r--documentation/src/tiny.gif (renamed from documentation/tiny.gif)bin95 -> 95 bytes
-rw-r--r--documentation/src/unicode.dox (renamed from documentation/unicode.dox)0
-rw-r--r--documentation/src/valuators.gif (renamed from documentation/valuators.gif)bin19207 -> 19207 bytes
-rw-r--r--documentation/src/value_slider.gif (renamed from documentation/value_slider.gif)bin3733 -> 3733 bytes
-rw-r--r--documentation/subclassing.html434
-rw-r--r--documentation/widgets.html907
195 files changed, 272 insertions, 22647 deletions
diff --git a/documentation/Doxyfile b/documentation/Doxyfile
index 7a4c27116..3297fe1ab 100644
--- a/documentation/Doxyfile
+++ b/documentation/Doxyfile
@@ -1,4 +1,4 @@
-# Doxyfile 1.5.5
+# Doxyfile 1.5.7
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project
@@ -57,8 +57,8 @@ CREATE_SUBDIRS = NO
# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek,
# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages),
# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish,
-# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish,
-# and Ukrainian.
+# Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene,
+# Spanish, Swedish, and Ukrainian.
OUTPUT_LANGUAGE = English
@@ -155,13 +155,6 @@ QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member
-# documentation.
-
-DETAILS_AT_TOP = NO
-
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
# member inherits the documentation from any documented member that it
# re-implements.
@@ -234,6 +227,15 @@ CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen to replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT = YES
+
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES, then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
@@ -259,6 +261,22 @@ SUBGROUPING = YES
TYPEDEF_HIDES_STRUCT = NO
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penality.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will rougly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE = 0
+
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
@@ -443,6 +461,18 @@ SHOW_USED_FILES = YES
SHOW_DIRECTORIES = NO
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page. This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES = YES
+
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
# doxygen should invoke to get the current version for each file (typically from
# the version control system). Doxygen will invoke the program by executing (via
@@ -453,6 +483,15 @@ SHOW_DIRECTORIES = NO
FILE_VERSION_FILTER =
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
+# doxygen. The layout file controls the global structure of the generated output files
+# in an output format independent way. The create the layout file that represents
+# doxygen's defaults, run doxygen with the -l option. You can optionally specify a
+# file name after the option, if omitted DoxygenLayout.xml will be used as the name
+# of the layout file.
+
+LAYOUT_FILE =
+
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
@@ -513,14 +552,30 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
-INPUT = index.dox preface.dox intro.dox basics.dox common.dox \
- drawing.dox editor.dox events.dox subclassing.dox \
- opengl.dox fluid.dox advanced.dox unicode.dox \
+INPUT = src/index.dox \
+ src/preface.dox \
+ src/intro.dox \
+ src/basics.dox \
+ src/common.dox \
+ src/drawing.dox \
+ src/editor.dox \
+ src/events.dox \
+ src/subclassing.dox \
+ src/opengl.dox \
+ src/fluid.dox \
+ src/advanced.dox \
+ src/unicode.dox \
../FL \
../src \
- enumerations.dox glut.dox forms.dox osissues.dox \
- migration_1_1.dox migration_1_3.dox development.dox \
- license.dox examples.dox
+ src/enumerations.dox \
+ src/glut.dox \
+ src/forms.dox \
+ src/osissues.dox \
+ src/migration_1_1.dox \
+ src/migration_1_3.dox \
+ src/development.dox \
+ src/license.dox \
+ src/examples.dox
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@@ -553,7 +608,8 @@ RECURSIVE = YES
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
-EXCLUDE = ../src/fl_font_win32.cxx ../src/fl_font_mac.cxx
+EXCLUDE = ../src/fl_font_win32.cxx \
+ ../src/fl_font_mac.cxx
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
# directories that are symbolic links (a Unix filesystem feature) are excluded
@@ -604,7 +660,7 @@ EXAMPLE_RECURSIVE = NO
# directories that contain image that are included in the documentation (see
# the \image command).
-IMAGE_PATH = .
+IMAGE_PATH = ./src
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
@@ -653,13 +709,13 @@ INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
-# If the REFERENCED_BY_RELATION tag is set to YES (the default)
+# If the REFERENCED_BY_RELATION tag is set to YES
# then for each documented function all documented
# functions referencing it will be listed.
REFERENCED_BY_RELATION = YES
-# If the REFERENCES_RELATION tag is set to YES (the default)
+# If the REFERENCES_RELATION tag is set to YES
# then for each documented function all documented entities
# called/used by that function will be listed.
@@ -690,12 +746,6 @@ VERBATIM_HEADERS = YES
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX = YES
-
# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
# in which this list will be split (can be a number in the range [1..20])
@@ -759,12 +809,13 @@ HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-GENERATE_HTMLHELP = NO
+HTML_DYNAMIC_SECTIONS = NO
# If the GENERATE_DOCSET tag is set to YES, additional index files
# will be generated that can be used as input for Apple's Xcode 3
@@ -773,7 +824,8 @@ GENERATE_HTMLHELP = NO
# HTML output directory. Running make will produce the docset in that
# directory and running "make install" will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
GENERATE_DOCSET = NO
@@ -791,13 +843,12 @@ DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_BUNDLE_ID = org.doxygen.Project
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
-HTML_DYNAMIC_SECTIONS = NO
+GENERATE_HTMLHELP = NO
# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
# be used to specify the file name of the resulting .chm file. You
@@ -819,6 +870,12 @@ HHC_LOCATION =
GENERATE_CHI = NO
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING =
+
# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
# controls whether a binary table of contents is generated (YES) or a
# normal table of contents (NO) in the .chm file.
@@ -830,6 +887,38 @@ BINARY_TOC = NO
TOC_EXPAND = NO
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER
+# are set, an additional index file will be generated that can be used as input for
+# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated
+# HTML documentation.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#namespace">Qt Help Project / Namespace</a>.
+
+QHP_NAMESPACE = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#virtual-folders">Qt Help Project / Virtual Folders</a>.
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file .
+
+QHG_LOCATION =
+
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
# top of each HTML page. The value NO (the default) enables the index and
# the value YES disables it.
@@ -841,12 +930,20 @@ DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information.
+# If the tag value is set to FRAME, a side panel will be generated
+# containing a tree-like index structure (just like the one that
# is generated for HTML Help). For this to work a browser that supports
# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
-# probably better off using the HTML help feature.
+# probably better off using the HTML help feature. Other possible values
+# for this tag are: HIERARCHIES, which will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list;
+# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which
+# disables this behavior completely. For backwards compatibility with previous
+# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE
+# respectively.
GENERATE_TREEVIEW = NO
@@ -856,6 +953,14 @@ GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE = 10
+
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
@@ -924,7 +1029,7 @@ USE_PDFLATEX = YES
# running if errors occur, instead of asking the user for help.
# This option is also used when generating formulas in HTML.
-LATEX_BATCHMODE = NO
+LATEX_BATCHMODE = YES
# If LATEX_HIDE_INDICES is set to YES then doxygen will not
# include the index chapters (such as File Index, Compound Index, etc.)
@@ -1132,9 +1237,9 @@ INCLUDE_FILE_PATTERNS =
# instead of the = operator.
PREDEFINED = FL_DOXYGEN \
- HAVE_CAIRO \
- HAVE_GL \
- HAVE_GL_OVERLAY \
+ HAVE_CAIRO \
+ HAVE_GL \
+ HAVE_GL_OVERLAY \
FL_EXPORT:=
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
@@ -1230,6 +1335,24 @@ HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
+# By default doxygen will write a font called FreeSans.ttf to the output
+# directory and reference it in all dot files that doxygen generates. This
+# font does not include all possible unicode characters however, so when you need
+# these (or just want a differently looking font) you can specify the font name
+# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
+# which can be done by putting it in a standard location or by setting the
+# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
+# containing the font.
+
+DOT_FONTNAME = FreeSans
+
+# By default doxygen will tell dot to use the output directory to look for the
+# FreeSans.ttf font (which doxygen will put there itself). If you specify a
+# different font using DOT_FONTNAME you can set the path where dot
+# can find it using this tag.
+
+DOT_FONTPATH =
+
# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect inheritance relations. Setting this tag to YES will force the
@@ -1319,7 +1442,7 @@ DOT_PATH =
DOTFILE_DIRS =
-# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
# nodes that will be shown in the graph. If the number of nodes in a graph
# becomes larger than this value, doxygen will truncate the graph, which is
# visualized by representing a node as a red box. Note that doxygen if the
@@ -1340,10 +1463,10 @@ DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is enabled by default, which results in a transparent
-# background. Warning: Depending on the platform used, enabling this option
-# may lead to badly anti-aliased labels on the edges of a graph (i.e. they
-# become hard to read).
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
DOT_TRANSPARENT = NO
diff --git a/documentation/Fl.html b/documentation/Fl.html
deleted file mode 100644
index 366ccd0b9..000000000
--- a/documentation/Fl.html
+++ /dev/null
@@ -1,1392 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl">class Fl</A></H2>
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<B>Fl</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl</TT> class is the FLTK global (static) class containing
-state information and global methods for the current application.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A HREF="#Fl.add_check">add_check</A></LI>
- <LI><A HREF="#Fl.add_fd">add_fd</A></LI>
- <LI><A HREF="#Fl.add_handler">add_handler</A></LI>
- <LI><A HREF="#Fl.add_idle">add_idle</A></LI>
- <LI><A HREF="#Fl.add_timeout">add_timeout</A></LI>
- <LI><A HREF="#Fl.arg">arg</A></LI>
- <LI><A HREF="#Fl.args">args</A></LI>
- <LI><A HREF="#Fl.atclose">atclose</A></LI>
- <LI><A HREF="#Fl.awake">awake</A></LI>
- <LI><A HREF="#Fl.background">background</A></LI>
- <LI><A HREF="#Fl.background2">background2</A></LI>
- <LI><A HREF="#Fl.belowmouse">belowmouse</A></LI>
- <LI><A HREF="#Fl.box_dh">box_dh</A></LI>
- <LI><A HREF="#Fl.box_dw">box_dw</A></LI>
- <LI><A HREF="#Fl.box_dx">box_dx</A></LI>
- <LI><A HREF="#Fl.box_dy">box_dy</A></LI>
- <LI><A HREF="#Fl.check">check</A></LI>
- <LI><A HREF="#Fl.compose">compose</A></LI>
- <LI><A HREF="#Fl.compose_reset">compose_reset</A></LI>
- <LI><A HREF="#Fl.copy">copy</A></LI>
- <LI><A HREF="#Fl.damage">damage</A></LI>
- <LI><A HREF="#Fl.default_atclose">default_atclose</A></LI>
- <LI><A HREF="#Fl.delete_widget">delete_widget</A></LI>
- <LI><A HREF="#Fl.display">display</A></LI>
- <LI><A HREF="#Fl.dnd">dnd</A></LI>
- <LI><A HREF="#Fl.dnd_text_ops">dnd_text_ops</A></LI>
- <LI><A HREF="#Fl.error">error</A></LI>
- <LI><A HREF="#Fl.event">event</A></LI>
- <LI><A HREF="#Fl.event_alt">event_alt</A></LI>
- <LI><A HREF="#Fl.event_button1">event_button1</A></LI>
- <LI><A HREF="#Fl.event_button2">event_button2</A></LI>
- <LI><A HREF="#Fl.event_button3">event_button3</A></LI>
- <LI><A HREF="#Fl.event_button">event_button</A></LI>
- <LI><A HREF="#Fl.event_buttons">event_buttons</A></LI>
- <LI><A HREF="#Fl.event_clicks">event_clicks</A></LI>
- <LI><A HREF="#Fl.event_ctrl">event_ctrl</A></LI>
- <LI><A HREF="#Fl.event_dx">event_dx</A></LI>
- <LI><A HREF="#Fl.event_dy">event_dy</A></LI>
- <LI><A HREF="#Fl.event_inside">event_inside</A></LI>
- <LI><A HREF="#Fl.event_is_click">event_is_click</A></LI>
- <LI><A HREF="#Fl.event_key">event_key</A></LI>
- <LI><A HREF="#Fl.event_length">event_length</A></LI>
- <LI><A HREF="#Fl.event_original_key">event_original_key</A></LI>
- <LI><A HREF="#Fl.event_shift">event_shift</A></LI>
- <LI><A HREF="#Fl.event_state">event_state</A></LI>
- <LI><A HREF="#Fl.event_text">event_text</A></LI>
- <LI><A HREF="#Fl.event_x">event_x</A></LI>
- <LI><A HREF="#Fl.event_x_root">event_x_root</A></LI>
- <LI><A HREF="#Fl.event_y">event_y</A></LI>
- <LI><A HREF="#Fl.event_y_root">event_y_root</A></LI>
- <LI><A HREF="#Fl.fatal">fatal</A></LI>
- <LI><A HREF="#Fl.first_window">first_window</A></LI>
- <LI><A HREF="#Fl.flush">flush</A></LI>
- <LI><A HREF="#Fl.focus">focus</A></LI>
- <LI><A HREF="#Fl.foreground">foreground</A></LI>
- <LI><A HREF="#Fl.free_color">free_color</A></LI>
- <LI><A HREF="#Fl.get_boxtype">get_boxtype</A></LI>
- <LI><A HREF="#Fl.get_color">get_color</A></LI>
- <LI><A HREF="#Fl.get_font">get_font</A></LI>
- <LI><A HREF="#Fl.get_font_name">get_font_name</A></LI>
- <LI><A HREF="#Fl.get_font_sizes">get_font_sizes</A></LI>
- <LI><A HREF="#Fl.get_key">get_key</A></LI>
- <LI><A HREF="#Fl.get_mouse">get_mouse</A></LI>
- <LI><A HREF="#Fl.get_system_colors">get_system_colors</A></LI>
- <LI><A HREF="#Fl.gl_visual">gl_visual</A></LI>
- <LI><A HREF="#Fl.grab">grab</A></LI>
- <LI><A HREF="#Fl.h">h</A></LI>
- <LI><A HREF="#Fl.handle">handle</A></LI>
- <LI><A HREF="#Fl.has_check">has_check</A></LI>
- <LI><A HREF="#Fl.has_idle">has_idle</A></LI>
- <LI><A HREF="#Fl.has_timeout">has_timeout</A></LI>
- <LI><A HREF="#Fl.lock">lock</A></LI>
- <LI><A HREF="#Fl.modal">modal</A></LI>
- <LI><A HREF="#Fl.next_window">next_window</A></LI>
- <LI><A HREF="#Fl.own_colormap">own_colormap</A></LI>
- <LI><A HREF="#Fl.paste">paste</A></LI>
- <LI><A HREF="#Fl.pushed">pushed</A></LI>
- <LI><A HREF="#Fl.readqueue">readqueue</A></LI>
- <LI><A HREF="#Fl.ready">ready</A></LI>
- <LI><A HREF="#Fl.redraw">redraw</A></LI>
- <LI><A HREF="#Fl.release">release</A></LI>
- <LI><A HREF="#Fl.remove_check">remove_check</A></LI>
- <LI><A HREF="#Fl.remove_fd">remove_fd</A></LI>
- <LI><A HREF="#Fl.remove_handler">remove_handler</A></LI>
- <LI><A HREF="#Fl.remove_idle">remove_idle</A></LI>
- <LI><A HREF="#Fl.remove_timeout">remove_timeout</A></LI>
- <LI><A HREF="#Fl.repeat_timeout">repeat_timeout</A></LI>
- <LI><A HREF="#Fl.run">run</A></LI>
- <LI><A HREF="#Fl.scheme">scheme</A></LI>
- <LI><A HREF="#Fl.screen_count">screen_count</A></LI>
- <LI><A HREF="#Fl.screen_xywh">screen_xywh</A></LI>
- <LI><A HREF="#Fl.scrollbar_size">scrollbar_size</A></LI>
- <LI><A HREF="#Fl.selection">selection</A></LI>
- <LI><A HREF="#Fl.selection_owner">selection_owner</A></LI>
- <LI><A HREF="#Fl.set_abort">set_abort</A></LI>
- <LI><A HREF="#Fl.set_atclose">set_atclose</A></LI>
- <LI><A HREF="#Fl.set_boxtype">set_boxtype</A></LI>
- <LI><A HREF="#Fl.set_color">set_color</A></LI>
- <LI><A HREF="#Fl.set_font">set_font</A></LI>
- <LI><A HREF="#Fl.set_fonts">set_fonts</A></LI>
- <LI><A HREF="#Fl.set_idle">set_idle</A></LI>
- <LI><A HREF="#Fl.set_labeltype">set_labeltype</A></LI>
- <LI><A HREF="#Fl.test_shortcut">test_shortcut</A></LI>
- <LI><A HREF="#Fl.thread_message">thread_message</A></LI>
- <LI><A HREF="#Fl.unlock">unlock</A></LI>
- <LI><A HREF="#Fl.version">version</A></LI>
- <LI><A HREF="#Fl.visible_focus">visible_focus</A></LI>
- <LI><A HREF="#Fl.visual">visual</A></LI>
- <LI><A HREF="#Fl.wait">wait</A></LI>
- <LI><A HREF="#Fl.warning">warning</A></LI>
- <LI><A HREF="#Fl.w">w</A></LI>
- <LI><A HREF="#Fl.x">x</A></LI>
- <LI><A HREF="#Fl.y">y</A></LI>
-
-</UL>
-
-<H4><A NAME="Fl.add_check">void add_check(Fl_Timeout_Handler, void* = 0);</A></H4>
-
-<P>FLTK will call this callback just before it flushes the display and
-waits for events. This is different than an idle callback because it
-is only called once, then FLTK calls the system and tells it not to
-return until an event happens.
-
-<p>This can be used by code that wants to monitor the
-application's state, such as to keep a display up to date. The
-advantage of using a check callback is that it is called only when no
-events are pending. If events are coming in quickly, whole blocks of
-them will be processed before this is called once. This can save
-significant time and avoid the application falling behind the events.
-
-<p>Sample code:
-
-<UL><PRE>
-bool state_changed; // anything that changes the display turns this on
-
-void callback(void*) {
- if (!state_changed) return;
- state_changed = false;
- do_expensive_calculation();
- widget-&gt;redraw();
-}
-
-main() {
- Fl::add_check(callback);
- return Fl::run();
-}
-</PRE></UL>
-
-<H4><A NAME="Fl.add_fd">void add_fd(int fd, void (*cb)(int,void*),void* =0);<BR>
-void add_fd(int fd, int when, void (*cb)(int, void*), void* = 0);</A></H4>
-
-<P>Add file descriptor <tt>fd</tt> to listen to. When the <tt>fd</tt>
-becomes ready for reading <tt>Fl::wait()</tt> will call the callback
-and then return. The callback is
-passed the <tt>fd</tt> and the arbitrary <tt>void*</tt> argument.</P>
-
-<P>The second version takes a <tt>when</tt> bitfield, with the bits
-<tt>FL_READ</tt>, <tt>FL_WRITE</tt>, and <tt>FL_EXCEPT</tt> defined,
-to indicate when the callback should be done.
-
-<P>There can only be one callback of each type for a file descriptor. <tt>
-Fl::remove_fd()</tt> gets rid of <I>all</I> the callbacks for a given
-file descriptor.
-
-<P>Under UNIX <I>any</I> file descriptor can be monitored (files,
-devices, pipes, sockets, etc.) Due to limitations in Microsoft Windows,
-WIN32 applications can only monitor sockets.
-
-<H4><A NAME="Fl.add_handler">void add_handler(int (*h)(int));</A></H4>
-
-<P>Install a function to parse unrecognized events. If FLTK cannot
-figure out what to do with an event, it calls each of these functions
-(most recent first) until one of them returns non-zero. If none of
-them returns non zero then the event is ignored. Events that cause
-this to be called are:
-
-<UL>
-<LI><tt>FL_SHORTCUT</tt> events that are not recognized by any widget.
-This lets you provide global shortcut keys. </LI>
-<LI>System events that FLTK does not recognize. See <A href=osissues.html#fl_xevent>
-<tt>fl_xevent</tt></A>. </LI>
-<LI><I>Some</I> other events when the widget FLTK selected returns
-zero from its <tt>handle()</tt> method. Exactly which ones may change
-in future versions, however. </LI>
-</UL>
-
-<H4><A NAME="Fl.add_idle">void add_idle(void (*cb)(void*), void* = 0);</A></H4>
-
-<P>Adds a callback function that is called every time by
-<tt>Fl::wait()</tt> and also makes it act as though the timeout is
-zero (this makes <tt>Fl::wait()</tt> return immediately, so if it is
-in a loop it is called repeatedly, and thus the idle fucntion is
-called repeatedly). The idle function can be used to get background
-processing done.
-
-<P>You can have multiple idle callbacks. To remove an idle callback use <A
-href="#Fl.remove_idle"><tt>Fl::remove_idle()</tt></A>.
-
-<P><tt>Fl::wait()</tt> and <tt>Fl::check()</tt> call idle callbacks,
-but <tt>Fl::ready()</tt> does not.
-
-<P>The idle callback can call any FLTK functions, including
-<tt>Fl::wait()</tt>, <tt>Fl::check()</tt>, and <tt>Fl::ready()</tt>.
-FLTK will not recursively call the idle callback.
-
-<H4><A NAME="Fl.add_timeout">void add_timeout(double t, Fl_Timeout_Handler,void* = 0);</A></H4>
-
-<P>Add a one-shot timeout callback. The function will be called by
-<tt>Fl::wait()</tt> at <i>t</i> seconds after this function is called.
-The optional <tt>void*</tt> argument is passed to the callback.
-
-<P>You can have multiple timeout callbacks. To remove an timeout
-callback use <A
-href="#Fl.remove_timeout"><tt>Fl::remove_timeout()</tt></A>.
-
-<p>If you need more accurate, repeated timeouts, use <a
-href='#Fl.repeat_timeout'><tt>Fl::repeat_timeout()</tt></a> to
-reschedule the subsequent timeouts.</p>
-
-<p>The following code will print &quot;TICK&quot; each second on
-<tt>stdout</tt> with a fair degree of accuracy:</p>
-
-<PRE>
- void callback(void*) {
- puts("TICK");
- Fl::repeat_timeout(1.0, callback);
- }
-
- int main() {
- Fl::add_timeout(1.0, callback);
- return Fl::run();
- }
-</PRE>
-
-<H4><A NAME="Fl.arg">int arg(int, char**, int&amp;);</A></H4>
-
-<P>Consume a single switch from <tt>argv</tt>, starting at word i.
-Returns the number of words eaten (1 or 2, or 0 if it is not
-recognized) and adds the same value to <tt>i</tt>. You can use this
-function if you prefer to control the incrementing through the
-arguments yourself.
-
-<H4><A NAME="Fl.args">int args(int, char**, int&amp;, int (*)(int,char**,int&amp;) = 0);</A></H4>
-
-<P>FLTK provides an <I>entirely optional</I> command-line switch parser.
-You don't have to call it if you don't like them! Everything it can do
-can be done with other calls to FLTK.
-
-<P>To use the switch parser, call <tt>Fl::args(...)</tt> near the start
-of your program. This does <I>not</I> open the display, instead
-switches that need the display open are stashed into static variables.
-Then you <I>must</I> display your first window by calling <A href=Fl_Window.html#Fl_Window.show>
-window-&gt;show(argc,argv)</A>, which will do anything stored in the
-static variables.
-
-<P><tt>callback</tt> lets you define your own switches. It is called
-with the same <tt>argc</tt> and <tt>argv</tt>, and with <tt>i</tt> the
-index of each word. The callback should return zero if the switch is
-unrecognized, and not change <tt>i</tt>. It should return non-zero if
-the switch is recognized, and add at least 1 to <tt>i</tt> (it can add
-more to consume words after the switch). This function is called
-<i>before</i> any other tests, so <i>you can override any FLTK
-switch</i> (this is why FLTK can use very short switches instead of
-the long ones all other toolkits force you to use).
-
-<P>On return <tt>i</tt> is set to the index of the first non-switch.
-This is either:
-
-<UL>
-<LI>The first word that does not start with '-'. </LI>
-<LI>The word '-' (used by many programs to name stdin as a file) </LI>
-<LI>The first unrecognized switch (return value is 0). </LI>
-<LI><tt>argc</tt></LI>
-</UL>
-
-<P>The return value is <tt>i</tt> unless an unrecognized switch is found,
-in which case it is zero. If your program takes no arguments other
-than switches you should produce an error if the return value is less
-than <tt>argc</tt>.
-
-<P>All switches except -bg2 may be abbreviated one letter and case is ignored:
-
-<UL>
-
- <LI><TT>-bg color</TT> or <TT>-background color</TT>
-
- <P>Sets the background color using <A
- HREF="#Fl.background"><TT>Fl::background()</TT></A>.</LI>
-
- <LI><TT>-bg2 color</TT> or <TT>-background2 color</TT>
-
- <P>Sets the secondary background color using <A
- HREF="#Fl.background2"><TT>Fl::background2()</TT></A>.</LI>
-
- <LI><TT>-display host:n.n</TT>
-
- <P>Sets the X display to use; this option is silently
- ignored under WIN32 and MacOS.</LI>
-
- <LI><TT>-dnd</TT> and <TT>-nodnd</TT>
-
- <P>Enables or disables drag and drop text operations
- using <A
- HREF="#Fl.dnd_text_ops"><TT>Fl::dnd_text_ops()</TT></A>.</LI>
-
- <LI><TT>-fg color</TT> or <TT>-foreground color</TT>
-
- <P>Sets the foreground color using <A
- HREF="#Fl.foreground"><TT>Fl::foreground()</TT></A>.</LI>
-
- <LI><TT>-geometry WxH+X+Y</TT>
-
- <P>Sets the initial window position and size according
- the the standard X geometry string.</LI>
-
- <LI><TT>-iconic</TT>
-
- <P>Iconifies the window using <A
- HREF="Fl_Window.html#Fl_Window.iconize"><TT>Fl_Window::iconize()</TT></A>.</LI>
-
- <LI><TT>-kbd</TT> and <TT>-nokbd</TT>
-
- <P>Enables or disables visible keyboard focus for
- non-text widgets using <A
- HREF="#Fl.visible_focus"><TT>Fl::visible_focus()</TT></A>.</LI>
-
- <LI><TT>-name string</TT>
-
- <P>Sets the window class using <A
- HREF="Fl_Window.html#Fl_Window.xclass"><TT>Fl_Window::xclass()</TT></A>.</LI>
-
- <LI><TT>-scheme string</TT>
-
- <P>Sets the widget scheme using <A
- HREF="#Fl.scheme"><TT>Fl::scheme()</TT></A>.</LI>
-
- <LI><TT>-title string</TT>
-
- <P>Sets the window title using <A
- HREF="Fl_Window.html#Fl_Window.label"><TT>Fl_Window::label()</TT></A>.</LI>
-
- <LI><TT>-tooltips</TT> and <TT>-notooltips</TT>
-
- <P>Enables or disables tooltips using <A
- HREF="Fl_Tooltip.html#Fl_Tooltip.enable"><TT>Fl_Tooltip::enable()</TT></A>.</LI>
-
-</UL>
-
-<P>The second form of <tt>Fl::args()</tt> is useful if your program does
-not have command line switches of its own. It parses all the switches,
-and if any are not recognized it calls <tt>Fl::abort(Fl::help)</tt>.
-
-<P>A usage string is displayed if <tt>Fl::args()</tt> detects an invalid
-argument on the command-line. You can change the message by setting the
-<TT>Fl::help</TT> pointer.
-
-<H4><A NAME="Fl.atclose">void (*atclose)(Fl_Window*,void*);</A></H4>
-
-<H4><A NAME="Fl.awake">void awake(void *p);</A></H4>
-
-<H4><A NAME="Fl.awake">int awake(void (*callback)(void*), void *userdata);</A></H4>
-
-<P>The <TT>awake()</TT> method sends a message pointer to the main thread,
-causing any pending <A HREF="#Fl.wait"><TT>Fl::wait()</TT></A> call to
-terminate so that the main thread can retrieve the message and any pending
-redraws can be processed.
-
-<P>Multiple calls to <TT>Fl::awake()</TT> will queue multiple pointers
-for the main thread to process, up to a system-defined (typically several
-thousand) depth. The default message handler saves the last message which
-can be accessed using the <A HREF="#Fl.thread_message">
-<TT>Fl::thread_message()</TT></A> function.
-
-<P>The second form of <TT>awake()</TT> registers a function that will be
-called by the main thread during the next message handling cycle.
-<TT>awake()</TT> will return 0 if the callback function was registered,
-and -1 if registration failed. Over a thousand awake callbacks can be
-registered simultaneously.
-
-<P>See also: <a href="advanced.html#multithreading">multithreading</a>.
-
-<H4><A NAME="Fl.background2">void background2(uchar, uchar, uchar);</A></H4>
-
-<P>Changes the alternative background color. This color is used as a
-background by <tt>Fl_Input</tt> and other text widgets.
-<P>This call may change <tt>fl_color(FL_FOREGROUND_COLOR)</tt> if it
-does not provide sufficient contrast to FL_BACKGROUND2_COLOR.
-
-<H4><A NAME="Fl.background">void background(uchar, uchar, uchar);</A></H4>
-
-<P>Changes <tt>fl_color(FL_BACKGROUND_COLOR)</tt> to the given color,
-and changes the gray ramp from 32 to 56 to black to white. These are
-the colors used as backgrounds by almost all widgets and used to draw
-the edges of all the boxtypes.
-
-<H4><A NAME="Fl.belowmouse">Fl_Widget* belowmouse();<BR>
-void belowmouse(Fl_Widget*);</A></H4>
-
-<P>Get or set the widget that is below the mouse. This is for
-highlighting buttons. It is not used to send <tt>FL_PUSH</tt> or <tt>
-FL_MOVE</tt> directly, for several obscure reasons, but those events
-typically go to this widget. This is also the first widget tried for <tt>
-FL_SHORTCUT</tt> events.
-
-<P>If you change the belowmouse widget, the previous one and all
-parents (that don't contain the new widget) are sent <tt>FL_LEAVE</tt>
-events. Changing this does <I>not</I> send <tt>FL_ENTER</tt> to this
-or any widget, because sending <tt>FL_ENTER</tt> is supposed to <I>test</I>
-if the widget wants the mouse (by it returning non-zero from <tt>
-handle()</tt>).
-
-<H4><A NAME="Fl.box_dh">int box_dh(Fl_Boxtype);</A></H4>
-
-<P>Returns the height offset for the given boxtype.
-See <tt><a href="#Fl.box_dy">box_dy</a></tt>.
-
-<H4><A NAME="Fl.box_dw">int box_dw(Fl_Boxtype);</A></H4>
-
-<P>Returns the width offset for the given boxtype.
-See <tt><a href="#Fl.box_dy">box_dy</a></tt>.
-
-<H4><A NAME="Fl.box_dx">int box_dx(Fl_Boxtype);</A></H4>
-
-<P>Returns the X offset for the given boxtype.
-See <tt><a href="#Fl.box_dy">box_dy</a></tt>.
-
-<H4><A NAME="Fl.box_dy">int box_dy(Fl_Boxtype);</A></H4>
-
-<P>Returns the Y offset for the given boxtype.
-
-<P>These functions return the offset values necessary for a given
-boxtype, useful for computing the area inside a box's borders, to
-prevent overdrawing the borders.
-
-<P>For instance, in the case of a boxtype like <tt>FL_DOWN_BOX</tt>
-where the border width might be 2 pixels all around, the above
-functions would return 2, 2, 4, and 4 for <tt>box_dx</tt>,
-<tt>box_dy</tt>, <tt>box_dw</tt>, and <tt>box_dh</tt>
-respectively.
-
-<P>An example to compute the area inside a widget's box():
-<pre>
- int X = yourwidget-&gt;x() + Fl::box_dx(yourwidget-&gt;box());
- int Y = yourwidget-&gt;y() + Fl::box_dy(yourwidget-&gt;box());
- int W = yourwidget-&gt;w() - Fl::box_dw(yourwidget-&gt;box());
- int H = yourwidget-&gt;h() - Fl::box_dh(yourwidget-&gt;box());
-</pre>
-<P>These functions are mainly useful in the <tt>draw()</tt> code
-for deriving custom widgets, where one wants to avoid drawing
-over the widget's own border <tt>box()</tt>.
-
-<H4><A NAME="Fl.check">int check();</A></H4>
-
-<P>Same as <tt>Fl::wait(0)</tt>. Calling this during a big calculation
-will keep the screen up to date and the interface responsive:
-
-<UL><PRE>
-while (!calculation_done()) {
- calculate();
- Fl::check();
- if (user_hit_abort_button()) break;
-}
-</PRE></UL>
-
-<P>The returns non-zero if any windows are displayed, and 0 if no
-windows are displayed (this is likely to change in future versions of
-FLTK).
-
-<H4><A NAME="Fl.compose">int compose(int &amp;del);</A></H4>
-
-<p>Use of this function is very simple. Any text editing widget should
-call this for each <tt>FL_KEYBOARD</tt> event.
-
-<p>If <i>true</i> is returned, then it has modified the
-Fl::event_text() and Fl::event_length() to a set of <i>bytes</i> to
-insert (it may be of zero length!). In will also set the "del"
-parameter to the number of <i>bytes</i> to the left of the cursor to
-delete, this is used to delete the results of the previous call to
-Fl::compose().
-
-<p>If <i>false</i> is returned, the keys should be treated as function
-keys, and del is set to zero. You could insert the text anyways, if
-you don't know what else to do.
-
-<p>Though the current implementation returns immediately, future
-versions may take quite awhile, as they may pop up a window or do
-other user-interface things to allow characters to be selected.
-
-<H4><A NAME="Fl.compose_reset">void compose_reset();</A></H4>
-
-<p>If the user moves the cursor, be sure to call Fl::compose_reset().
-The next call to Fl::compose() will start out in an initial state. In
-particular it will not set "del" to non-zero. This call is very fast
-so it is ok to call it many times and in many places.
-
-<H4><A NAME="Fl.copy">void copy(const char *stuff, int len, int clipboard);</A></H4>
-
-<P>Copies the data pointed to by <TT>stuff</TT> to the selection
-(0) or primary (1) clipboard. The selection clipboard is used
-for middle-mouse pastes and for drag-and-drop selections. The
-primary clipboard is used for traditional copy/cut/paste
-operations.
-
-<H4><A NAME="Fl.damage">int damage();<BR>
-void damage(int x);</A></H4>
-
-<P>If true then <A href="#Fl.flush"><tt>flush()</tt></A> will do something.
-
-<H4><A NAME="Fl.default_atclose">void default_atclose(Fl_Window*,void*);</A></H4>
-
-<p>This is the default callback for window widgets. It hides the
-window and then calls the default widget callback.</p>
-
-<H4><A NAME="Fl.delete_widget">void delete_widget(Fl_Widget*);</A></H4>
-
-<p>Schedules a widget for deletion at the next call to the event loop.
-Use this method to delete a widget inside a callback function.
-To avoid early deletion of widgets, this function
-should be called toward the end of a callback and only after any call
-to the event loop (<tt>Fl:wait()</tt>, <tt>Fl::flush()</tt>,
-<tt>fl_ask()</tt>, etc).</p>
-
-<p>When deleting groups or windows, you must only delete the group or
-window widget and not the individual child widgets.</p>
-
-<H4><A NAME="Fl.display">void display(const char*);</A></H4>
-
-<P>Sets the X display to use for all windows. Actually this just sets
-the environment variable $DISPLAY to the passed string, so this only
-works before you show() the first window or otherwise open the display,
-and does nothing useful under WIN32.
-
-<H4><A NAME="Fl.dnd">int dnd();</A></H4>
-
-<P>Initiate a Drag And Drop operation. The clipboard should be
-filled with relevant data before calling this method. FLTK will
-then initiate the system wide drag and drop handling. Dropped data
-will be marked as <i>text</i>.
-
-<H4><A NAME="Fl.dnd_text_ops">void dnd_text_ops(int d);<BR>
-int dnd_text_ops();</A></H4>
-
-<P>Gets or sets whether drag and drop text operations are
-supported. This specifically affects whether selected text can
-be dragged from text fields or dragged within a text field as a
-cut/paste shortcut.
-
-<H4><A NAME="Fl.error">void (*error)(const char*, ...);</A></H4>
-
-<P>FLTK calls this to print a normal error message. You can
-override the behavior by setting the function pointer to your
-own routine.
-
-<P><tt>Fl::error</tt> means there is a recoverable error such as
-the inability to read an image file. The default implementation
-prints the error message to <TT>stderr</TT> and returns.
-
-<H4><A NAME="Fl.event_alt">int event_alt();</A></H4>
-
-<P>Returns non-zero if the Alt key is pressed.
-
-<H4><A NAME="Fl.event_button1">int event_button1();</A></H4>
-
-<P>Returns non-zero if button 1 is currently held down.
-For more details, see <TT><A href="#Fl.event_buttons">Fl::event_buttons()</A></TT>.
-
-<H4><A NAME="Fl.event_button2">int event_button2();</A></H4>
-
-<P>Returns non-zero if button 2 is currently held down.
-For more details, see <TT><A href="#Fl.event_buttons">Fl::event_buttons()</A></TT>.
-
-<H4><A NAME="Fl.event_button3">int event_button3();</A></H4>
-
-<P>Returns non-zero if button 3 is currently held down.
-For more details, see <TT><A href="#Fl.event_buttons">Fl::event_buttons()</A></TT>.
-
-<H4><A NAME="Fl.event_button">int event_button();</A></H4>
-
-<P>Returns which mouse button caused te current event. This returns garbage if the
-most recent event was not a <tt>FL_PUSH</tt> or <tt>FL_RELEASE</tt>
-event.
-
-<H4><A NAME="Fl.event_buttons">int event_buttons();</A></H4>
-
-<P>Returns the button state bits; if non-zero, then at least one
-button is pressed. This function returns the button state at the
-time of the event. During an <tt>FL_RELEASE</tt> event, the state
-of the released button will be <tt>0</tt>. To find out, which button
-caused an <tt>FL_RELEASE</tt> event, you can use
-<tt><a href="#Fl.event_button">Fl::event_button()</a></tt> instead.
-
-<H4><A NAME="Fl.event_clicks">int event_clicks();<BR>
-void event_clicks(int i);</A></H4>
-
-<P>The first form returns non-zero if the most recent <tt>FL_PUSH</tt> or
-<tt>FL_KEYBOARD</tt> was a &quot;double click&quot;. Returns N-1 for
-N clicks. A double click is counted if the same button is pressed
-again while <tt>event_is_click()</tt> is true.
-
-<P>The second form directly sets the number returned by <tt>
-Fl::event_clicks()</tt>. This can be used to set it to zero so that
-later code does not think an item was double-clicked.
-
-<H4><A NAME="Fl.event_ctrl">int event_ctrl();</A></H4>
-
-<P>Returns non-zero if the Control key is pressed.
-
-<H4><A NAME="Fl.event">int event();</A></H4>
-
-<P>Returns the last event that was processed. This can be used
-to determine if a callback is being done in response to a
-keypress, mouse click, etc.
-
-<H4><A NAME="Fl.event_inside">int event_inside(int,int,int,int);<BR>
-int event_inside(const Fl_Widget*);</A></H4>
-
-<P>Returns non-zero if the current <tt>event_x</tt> and <tt>event_y</tt>
-put it inside the widget or inside an arbitrary bounding box. You
-should always call this rather than doing your own comparison so you
-are consistent about edge effects.
-
-<H4><A NAME="Fl.event_is_click">int event_is_click();<BR>
-void event_is_click(0);</A></H4>
-
-<P>The first form returns non-zero if the mouse has not moved far enough
-and not enough time has passed since the last <tt>FL_PUSH</tt> or <tt>
-FL_KEYBOARD</tt> event for it to be considered a &quot;drag&quot; rather than a
-&quot;click&quot;. You can test this on <tt>FL_DRAG</tt>, <tt>FL_RELEASE</tt>,
-and <tt>FL_MOVE</tt> events. The second form clears the value returned
-by <tt>Fl::event_is_click()</tt>. Useful to prevent the <I>next</I>
-click from being counted as a double-click or to make a popup menu
-pick an item with a single click. Don't pass non-zero to this.
-
-<H4><A NAME="Fl.event_key">int event_key();<BR>
-int event_key(int s);</A></H4>
-
-<P><tt>Fl::event_key()</tt> returns which key on the keyboard was last
-pushed. It returns zero if the last event was not a key press or release.
-
-<P><tt>Fl::event_key(int)</tt> returns true if the given key was held
-down (or pressed) <I>during</I> the last event. This is constant until
-the next event is read from the server.
-
-<P><tt>Fl::get_key(int)</tt> returns true if the given key is held down <I>
-now</I>. Under X this requires a round-trip to the server and is <I>
-much</I> slower than <tt>Fl::event_key(int)</tt>.
-
-<P>Keys are identified by the <I>unshifted</I> values. FLTK defines a
-set of symbols that should work on most modern machines for every key
-on the keyboard:
-
-<UL>
-<LI>All keys on the main keyboard producing a printable ASCII
-character use the value of that ASCII character (as though shift,
-ctrl, and caps lock were not on). The space bar is 32. </LI>
-<LI>All keys on the numeric keypad producing a printable ASCII
-character use the value of that ASCII character plus <tt>FL_KP</tt>.
-The highest possible value is <tt>FL_KP_Last</tt> so you can
-range-check to see if something is on the keypad. </LI>
-<LI>All numbered function keys use the number on the function key plus <tt>
-FL_F</tt>. The highest possible number is <tt>FL_F_Last</tt>, so you
-can range-check a value. </LI>
-<LI>Buttons on the mouse are considered keys, and use the button
-number (where the left button is 1) plus <tt>FL_Button</tt>. </LI>
-<LI>All other keys on the keypad have a symbol: <tt>FL_Escape,
-FL_BackSpace, FL_Tab, FL_Enter, FL_Print, FL_Scroll_Lock, FL_Pause,
-FL_Insert, FL_Home, FL_Page_Up, FL_Delete, FL_End, FL_Page_Down,
-FL_Left, FL_Up, FL_Right, FL_Down, FL_Shift_L, FL_Shift_R,
-FL_Control_L, FL_Control_R, FL_Caps_Lock, FL_Alt_L, FL_Alt_R,
-FL_Meta_L, FL_Meta_R, FL_Menu, FL_Num_Lock, FL_KP_Enter</tt>. Be
-careful not to confuse these with the very similar, but all-caps,
-symbols used by <a href="Fl.html#Fl.event_state"><tt>Fl::event_state()</tt>
-</A>. </LI>
-</UL>
-
-<P>On X <tt>Fl::get_key(FL_Button+n)</tt> does not work.
-
-<P>On WIN32 <tt>Fl::get_key(FL_KP_Enter)</tt> and <tt>
-Fl::event_key(FL_KP_Enter)</tt> do not work.
-
-<H4><A NAME="Fl.event_length">int event_length();</A></H4>
-
-<P>Returns the length of the text in <tt>Fl::event_text()</tt>. There
-will always be a nul at this position in the text. However there may
-be a nul before that if the keystroke translates to a nul character or
-you paste a nul character.
-
-<H4><A NAME="Fl.event_original_key">int event_original_key();</A></H4>
-
-<P> If NumLock is deactivated, FLTK translates events from the
-numeric keypad into the corresponding arrow key events.
-<tt>event_key()</tt> returns the translated key code, whereas
-<tt>event_original_key()</tt> returns the keycode before
-NumLock translation.
-
-<H4><A NAME="Fl.event_shift">int event_shift();</A></H4>
-
-<P>Returns non-zero if the Shift key is pressed.
-
-<H4><A NAME="Fl.event_state">int event_state();<BR>
-int event_state(int i);</A></H4>
-
-<P>This is a bitfield of what shift states were on and what mouse buttons
-were held down during the most recent event. The second version
-returns non-zero if any of the passed bits are turned on. The legal
-bits are:
-
-<UL>
-<LI><tt>FL_SHIFT</tt></LI>
-<LI><tt>FL_CAPS_LOCK</tt></LI>
-<LI><tt>FL_CTRL</tt></LI>
-<LI><tt>FL_ALT</tt></LI>
-<LI><tt>FL_NUM_LOCK</tt></LI>
-<LI><tt>FL_META</tt></LI>
-<LI><tt>FL_SCROLL_LOCK</tt></LI>
-<LI><tt>FL_BUTTON1</tt></LI>
-<LI><tt>FL_BUTTON2</tt></LI>
-<LI><tt>FL_BUTTON3</tt></LI>
-</UL>
-
-<P>X servers do not agree on shift states, and FL_NUM_LOCK, FL_META, and
-FL_SCROLL_LOCK may not work. The values were selected to match the
-XFree86 server on Linux. In addition there is a bug in the way X works
-so that the shift state is not correctly reported until the first event <I>
-after</I> the shift key is pressed or released.
-
-<H4><A NAME="Fl.event_x">int event_x();</A></H4>
-
-<P>Returns the mouse position of the event relative to the <tt>Fl_Window</tt>
-it was passed to.
-
-<H4><A NAME="Fl.event_x_root">int event_x_root();</A></H4>
-
-<P>Returns the mouse position on the screen of the event. To find the
-absolute position of an <tt>Fl_Window</tt> on the screen, use the
-difference between <tt>event_x_root(),event_y_root()</tt> and <tt>
-event_x(),event_y()</tt>.
-
-<H4><A NAME="Fl.event_y">int event_y();</A></H4>
-
-<P>Returns the mouse position of the event relative to the <tt>Fl_Window</tt>
-it was passed to.
-
-<H4><A NAME="Fl.event_y_root">int event_y_root();</A></H4>
-
-<P>Returns the mouse position on the screen of the event. To find the
-absolute position of an <tt>Fl_Window</tt> on the screen, use the
-difference between <tt>event_x_root(),event_y_root()</tt> and <tt>
-event_x(),event_y()</tt>.
-
-<H4><A NAME="Fl.fatal">void (*fatal)(const char*, ...);</A></H4>
-
-<P>FLTK calls this to print a fatal error message. You can
-override the behavior by setting the function pointer to your
-own routine.
-
-<P><tt>Fl::fatal</tt> must not return, as FLTK is in an unusable
-state, however your version may be able to use <tt>longjmp</tt>
-or an exception to continue, as long as it does not call FLTK
-again. The default implementation prints the error message to
-<TT>stderr</TT> and exits with status 1.
-
-<H4><A NAME="Fl.first_window">Fl_Window* first_window();<BR>
-void first_window(Fl_Window*);</A></H4>
-
-<P>Returns the first top-level window in the list of shown() windows. If
-a modal() window is shown this is the top-most modal window, otherwise
-it is the most recent window to get an event.
-
-<P>The second form sets the window that is returned by
-first_window. The window is removed from wherever it is in the
-list and inserted at the top. This is not done if Fl::modal()
-is on or if the window is not shown(). Because the first window
-is used to set the "parent" of modal windows, this is often
-useful.
-
-<H4><A NAME="Fl.flush">void flush();</A></H4>
-
-<P>Causes all the windows that need it to be redrawn and graphics forced
-out through the pipes. This is what <tt>wait()</tt> does before
-looking for events.
-
-<H4><A NAME="Fl.focus">Fl_Widget* focus();<BR>
-void focus(Fl_Widget*);</A></H4>
-
-<P>Get or set the widget that will receive <tt>FL_KEYBOARD</tt> events.
-
-<P>If you change <tt>Fl::focus()</tt>, the previous widget and all
-parents (that don't contain the new widget) are sent <tt>FL_UNFOCUS</tt>
-events. Changing the focus does <I>not</I> send <tt>FL_FOCUS</tt> to
-this or any widget, because sending <tt>FL_FOCUS</tt> is supposed to <I>
-test</I> if the widget wants the focus (by it returning non-zero from
-<tt>handle()</tt>).
-
-<H4><A NAME="Fl.foreground">void foreground(uchar, uchar, uchar);</A></H4>
-
-<P>Changes <tt>fl_color(FL_FOREGROUND_COLOR)</tt>.
-
-<H4><A NAME="Fl.free_color">void free_color(Fl_Color c, int overlay = 0);</A></H4>
-
-<P>Frees the specified color from the colormap, if applicable.
-If <tt>overlay</tt> is non-zero then the color is freed from the
-overlay colormap.
-
-<H4><A NAME="Fl.get_boxtype">Fl_Box_Draw_F *get_boxtype(Fl_Boxtype);</A></H4>
-
-<P>Gets the current box drawing function for the specified box type.
-
-
-<H4><A NAME="Fl.get_color">unsigned get_color(Fl_Color c);<BR>
-void get_color(Fl_Color c, uchar&amp;r, uchar&amp;g, uchar&amp;b);</A></H4>
-
-<P>Returns the RGB value(s) for the given FLTK color index. The
-first form returns the RGB values packed in a 32-bit unsigned
-integer with the red value in the upper 8 bits, the green value
-in the next 8 bits, and the blue value in bits 8-15. The lower
-8 bits will always be 0.
-
-<P>The second form returns the red, green, and blue values
-separately in referenced variables.
-
-
-<H4><A NAME="Fl.get_font">const char* get_font(Fl_Font);</A></H4>
-
-<P>Get the string for this face. This string is different for each
-face. Under X this value is passed to XListFonts to get all the sizes
-of this face.
-
-<H4><A NAME="Fl.get_font_name">const char* get_font_name(Fl_Font, int* attributes = 0);</A></H4>
-
-<P>Get a human-readable string describing the family of this face. This
-is useful if you are presenting a choice to the user. There is no
-guarantee that each face has a different name. The return value points
-to a static buffer that is overwritten each call.
-
-<P>The integer pointed to by <tt>attributes</tt> (if the pointer is not
-zero) is set to zero, <tt>FL_BOLD</tt> or <tt>FL_ITALIC</tt> or <tt>
-FL_BOLD | FL_ITALIC</tt>. To locate a &quot;family&quot; of fonts, search
-forward and back for a set with non-zero attributes, these faces along
-with the face with a zero attribute before them constitute a family.
-
-<H4><A NAME="Fl.get_font_sizes">int get_font_sizes(Fl_Font, int*&amp; sizep);</A></H4>
-
-<P>Return an array of sizes in <tt>sizep</tt>. The return value is the
-length of this array. The sizes are sorted from smallest to largest
-and indicate what sizes can be given to <tt>fl_font()</tt> that will
-be matched exactly (<tt>fl_font()</tt> will pick the closest size for
-other sizes). A zero in the first location of the array indicates a
-scalable font, where any size works, although the array may list sizes
-that work &quot;better&quot; than others. Warning: the returned array
-points at a static buffer that is overwritten each call. Under X this
-will open the display.
-
-<H4><A NAME="Fl.get_key">int get_key(int);</A></H4>
-
-<H4><A NAME="Fl.get_mouse">void get_mouse(int &amp;x,int &amp;y);</A></H4>
-
-<P>Return where the mouse is on the screen by doing a round-trip query to
-the server. You should use <tt>Fl::event_x_root()</tt> and <tt>
-Fl::event_y_root()</tt> if possible, but this is necessary if you are
-not sure if a mouse event has been processed recently (such as to
-position your first window). If the display is not open, this will
-open it.
-
-<H4><A NAME="Fl.get_system_colors">void get_system_colors();</A></H4>
-
-<P>Read the user preference colors from the system and use them to call
-<tt> Fl::foreground()</tt>, <tt>Fl::background()</tt>, and <tt>
-Fl::background2()</tt>. This is done by
-<tt>Fl_Window::show(argc,argv)</tt> before applying the -fg and -bg
-switches.
-
-<P>On X this reads some common values from the Xdefaults database.
-KDE users can set these values by running the "krdb" program, and
-newer versions of KDE set this automatically if you check the "apply
-style to other X programs" switch in their control panel.
-
-<H4><A NAME="Fl.gl_visual">int gl_visual(int, int *alist=0);</A></H4>
-
-<P>This does the same thing as
-<A href="#Fl.visual"><tt>Fl::visual(int)</tt></A> but also
-requires OpenGL drawing to work. This <I>must</I> be done if
-you want to draw in normal windows with OpenGL with <A
-href=opengl.html#gl_start> <tt>gl_start()</tt></A> and
-<tt>gl_end()</tt>. It may be useful to call this so your X
-windows use the same visual as an
-<A href="Fl_Gl_Window.html"><tt>Fl_Gl_Window</tt></A>, which on
-some servers will reduce colormap flashing.
-
-<P>See <A href="Fl_Gl_Window.html#Fl_Gl_Window.mode"><tt>Fl_Gl_Window</tt></A>
-for a list of additional values for the argument.
-
-<H4><A NAME="Fl.grab">Fl_Window* grab();<BR>
-void grab(Fl_Window&amp;w) {grab(&amp;w);}</A></H4>
-
-<P>This is used when pop-up menu systems are active. Send all events to
-the passed window no matter where the pointer or focus is (including
-in other programs). The window <I>does not have to be
-<tt>shown()</tt></I> , this lets the <tt>handle()</tt> method of a
-&quot;dummy&quot; window override all event handling and allows you to
-map and unmap a complex set of windows (under both X and WIN32
-<I>some</I> window must be mapped because the system interface needs a
-window id).
-
-<P>If <tt>grab()</tt> is on it will also affect show() of windows by
-doing system-specific operations (on X it turns on
-override-redirect). These are designed to make menus popup reliably
-and faster on the system.
-
-<P>To turn off grabbing do <tt>Fl::grab(0)</tt>.
-
-<P><I>Be careful that your program does not enter an infinite loop
-while <tt>grab()</tt> is on. On X this will lock up your screen!</I>
-To avoid this potential lockup, all newer operating systems seem to
-limit mouse pointer grabbing to the time during which a mouse button
-is held down. Some OS's may not support grabbing at all.
-
-<H4><A NAME="Fl.h">int h();</A></H4>
-
-<P>Returns the height of the screen in pixels.
-
-<H4><A NAME="Fl.handle">int handle(int, Fl_Window*);</A></H4>
-
-<P>Sends the event to a window for processing. Returns non-zero if any
-widget uses the event.
-
-<H4><A NAME="Fl.has_check">int has_check(Fl_Timeout_Handler, void* = 0);</A></H4>
-
-<P>Returns true if the check exists and has not been called yet.
-
-<H4><A NAME="Fl.has_idle">int has_idle(void (*cb)(void*), void* = 0);</A></H4>
-
-<P>Returns true if the specified idle callback is currently installed.
-
-<H4><A NAME="Fl.has_timeout">int has_timeout(Fl_Timeout_Handler, void* = 0);</A></H4>
-
-<P>Returns true if the timeout exists and has not been called yet.
-
-<H4><A NAME="Fl.lock">void lock();</A></H4>
-
-<P>The <TT>lock()</TT> method blocks the current thread until it
-can safely access FLTK widgets and data. Child threads should
-call this method prior to updating any widgets or accessing
-data. The main thread must call <TT>lock()</TT> to initialize
-the threading support in FLTK.
-
-<P>Child threads must call <A
-HREF="#Fl.unlock"><TT>unlock()</TT></A> when they are done
-accessing FLTK.
-
-<P>When the <A HREF="#Fl.wait"><TT>wait()</TT></A> method is waiting
-for input or timeouts, child threads are given access to FLTK.
-Similarly, when the main thread needs to do processing, it will
-wait until all child threads have called <A
-HREF="#Fl.unlock"><TT>unlock()</TT></A> before processing
-additional data.
-
-<P>See also: <a href="advanced.html#multithreading">multithreading</a>
-
-<H4><A NAME="Fl.modal">Fl_Window* modal();</A></H4>
-
-<P>Returns the top-most <tt>modal()</tt> window currently shown.
-This is the most recently <tt>
-shown()</tt> window with <A href=Fl_Window.html#Fl_Window.modal><tt>
-modal()</tt></A> true, or <tt>NULL</tt> if there are no <tt>modal()</tt>
-windows <tt>shown()</tt>.
-The <tt>modal()</tt> window has its <tt>handle()</tt> method called
-for all events, and no other windows will have <tt>handle()</tt>
-called (<A href="#Fl.grab"><tt>grab()</tt></A> overrides this).
-
-<H4><A NAME="Fl.next_window">Fl_Window* next_window(const Fl_Window*);</A></H4>
-
-<P>Returns the next top-level window in the list of shown() windows. You can
-use this call to iterate through all the windows that are shown().
-
-<H4><A NAME="Fl.own_colormap">void own_colormap();</A></H4>
-
-<P>Makes FLTK use its own colormap. This may make FLTK display better
-and will reduce conflicts with other programs that want lots of colors.
-However the colors may flash as you move the cursor between windows.
-
-<P>This does nothing if the current visual is not colormapped.
-
-<H4><A NAME="Fl.paste">void paste(Fl_Widget &amp;receiver, int clipboard=0);</A></H4>
-
-<P>Set things up so the receiver widget will be called with an <A
-href="enumerations.html#events"> <tt>FL_PASTE</tt></A> event some
-time in the future for the specified clipboard. The reciever
-should be prepared to be called <I>directly</I> by this, or for
-it to happen <I>later</I>, or possibly <I>not at all</I>. This
-allows the window system to take as long as necessary to retrieve
-the paste buffer (or even to screw up completely) without complex
-and error-prone synchronization code in FLTK.
-
-<H4><A NAME="Fl.pushed">Fl_Widget* pushed();<BR>
-void pushed(Fl_Widget*);</A></H4>
-
-<P>Get or set the widget that is being pushed. <tt>FL_DRAG</tt> or <tt>
-FL_RELEASE</tt> (and any more <tt>FL_PUSH</tt>) events will be sent to
-this widget.
-
-<P>If you change the pushed widget, the previous one and all parents
-(that don't contain the new widget) are sent <tt>FL_RELEASE</tt>
-events. Changing this does <I>not</I> send <tt>FL_PUSH</tt> to this
-or any widget, because sending <tt>FL_PUSH</tt> is supposed to <I>test</I>
-if the widget wants the mouse (by it returning non-zero from <tt>
-handle()</tt>).
-
-<H4><A NAME="Fl.readqueue">Fl_Widget* readqueue();</A></H4>
-
-<P>All <tt>Fl_Widgets</tt> that don't have a callback defined use a
-default callback that puts a pointer to the widget in this queue, and
-this method reads the oldest widget out of this queue.
-
-<H4><A NAME="Fl.ready">int ready();</A></H4>
-
-<P>This is similar to <tt>Fl::check()</tt> except this does <I>not</I>
-call <tt>Fl::flush()</tt> or any callbacks, which is useful if your
-program is in a state where such callbacks are illegal. This returns
-true if <tt>Fl::check()</tt> would do anything (it will continue to
-return true until you call <tt>Fl::check()</tt> or <tt>Fl::wait()</tt>).
-
-<UL><PRE>
-while (!calculation_done()) {
- calculate();
- if (Fl::ready()) {
- do_expensive_cleanup();
- Fl::check();
- if (user_hit_abort_button()) break;
- }
-}
-</PRE></UL>
-
-<H4><A NAME="Fl.redraw">void redraw();</A></H4>
-
-<P>Redraws all widgets.
-
-<H4><A NAME="Fl.release">void release();</A></H4>
-
-<H4><A NAME="Fl.remove_check">void remove_check(Fl_Timeout_Handler, void* = 0);</A></H4>
-
-<P>Removes a check callback. It is harmless to remove a check
-callback that no longer exists.
-
-<H4><A NAME="Fl.remove_fd">void remove_fd(int, int when);<BR>
-void remove_fd(int);</A></H4>
-
-<P>Removes a file descriptor handler.
-
-<H4><A NAME="Fl.remove_handler">void remove_handler(int (*h)(int));</A></H4>
-
-<P>Removes a previously added event handler.
-
-<H4><A NAME="Fl.remove_idle">void remove_idle(void (*cb)(void*), void* = 0);</A></H4>
-
-<P>Removes the specified idle callback, if it is installed.
-
-<H4><A NAME="Fl.remove_timeout">void remove_timeout(Fl_Timeout_Handler, void* = 0);</A></H4>
-
-<P>Removes a timeout callback. It is harmless to remove a timeout
-callback that no longer exists.
-
-<H4><A NAME="Fl.repeat_timeout">void repeat_timeout(double t, Fl_Timeout_Handler,void* = 0);</A></H4>
-
-<P>This method repeats a timeout callback from the expiration of the
-previous timeout, allowing for more accurate timing. You may only call
-this method inside a timeout callback.
-
-<p>The following code will print &quot;TICK&quot; each second on
-<tt>stdout</tt> with a fair degree of accuracy:</p>
-
-<PRE>
- void callback(void*) {
- puts("TICK");
- Fl::repeat_timeout(1.0, callback);
- }
-
- int main() {
- Fl::add_timeout(1.0, callback);
- return Fl::run();
- }
-</PRE>
-
-<H4><A NAME="Fl.run">int run();</A></H4>
-
-<P>As long as any windows are displayed this calls <tt>Fl::wait()</tt>
-repeatedly. When all the windows are closed it returns zero
-(supposedly it would return non-zero on any errors, but FLTK calls
-exit directly for these). A normal program will end <tt>main()</tt>
-with <tt>return Fl::run();</tt>.
-
-<H4><A NAME="Fl.scheme">void scheme(const char *name);
-<BR>const char *scheme();</A></H4>
-
-<P>Gets or sets the current widget scheme. <TT>NULL</TT> will use
-the scheme defined in the <TT>FLTK_SCHEME</TT> environment
-variable or the <TT>scheme</TT> resource under X11. Otherwise,
-any of the following schemes can be used:</P>
-
-<ul>
-
- <li>"none" - This is the default look-n-feel which resembles old
- Windows (95/98/Me/NT/2000) and old GTK/KDE</li>
-
- <li>"plastic" - This scheme is inspired by the Aqua user interface
- on Mac OS X</li>
-
- <li>"gtk+" - This scheme is inspired by the Red Hat Bluecurve
- theme</li>
-
-</ul>
-
-<H4><A NAME="Fl.screen_count">int screen_count();</A></H4>
-
-<P>Gets the number of available screens.</P>
-
-<H4><A NAME="Fl.screen_xywh">void screen_xywh(int &amp;x, int &amp;y, int &amp;w, int &amp;h);<BR>
-void screen_xywh(int &amp;x, int &amp;y, int &amp;w, int &amp;h, int mx, int my);<BR>
-void screen_xywh(int &amp;x, int &amp;y, int &amp;w, int &amp;h, int n);</A></H4>
-
-<P>Gets the bounding box of a screen. The first form gets the
-bounding box for the screen the mouse pointer is in. The second
-form gets the bounding box for the screen that contains the
-specified coordinates. The last form gets the bounding box for
-the numbered screen, where <tt>n</tt> is a number from 0 to the
-number of screens less 1.</P>
-
-<H4><A NAME="Fl.scrollbar_size">void scrollbar_size(int W);<BR>
-int scrollbar_size();</A></H4>
-
-<P>Sets or gets the default scrollbar size that is used by the
-<A HREF="Fl_Browser_.html#Fl_Browser_"><TT>Fl_Browser_</TT></A>,
-<A HREF="Fl_Help_View.html#Fl_Help_View"><TT>Fl_Help_View</TT></A>,
-<A HREF="Fl_Scroll.html#Fl_Scroll"><TT>Fl_Scroll</TT></A>, and
-<A HREF="Fl_Text_Display.html#Fl_Text_Display"><TT>Fl_Text_Display</TT></A> widgets.</P>
-
-<H4><A NAME="Fl.selection">void selection(Fl_Widget &amp;owner, const char* stuff, int len);</A></H4>
-
-<P>Changes the current selection. The block of text is
-copied to an internal buffer by FLTK (be careful if doing this in
-response to an <tt>FL_PASTE</tt> as this <I>may</I> be the same buffer
-returned by <tt>event_text()</tt>). The <tt>selection_owner()</tt>
-widget is set to the passed owner.
-
-<H4><A NAME="Fl.selection_owner">Fl_Widget* selection_owner();<BR>
-void selection_owner(Fl_Widget*);</A></H4>
-
-<P>The single-argument <tt>selection_owner(x)</tt> call can be used to
-move the selection to another widget or to set the owner to
-<tt>NULL</tt>, without changing the actual text of the
-selection. <tt>FL_SELECTIONCLEAR</tt> is sent to the previous
-selection owner, if any.
-
-<P><I>Copying the buffer every time the selection is changed is
-obviously wasteful, especially for large selections. An interface will
-probably be added in a future version to allow the selection to be made
-by a callback function. The current interface will be emulated on top
-of this.</I>
-
-<H4><A NAME="Fl.set_abort">void set_abort(void (*f)(const char*,...));</A></H4>
-
-<H4><A NAME="Fl.set_atclose">void set_atclose(void (*f)(Fl_Window*,void*));</A></H4>
-
-<H4><A NAME="Fl.set_boxtype">void set_boxtype(Fl_Boxtype, Fl_Box_Draw_F*,uchar,uchar,uchar,uchar);<BR>
-void set_boxtype(Fl_Boxtype, Fl_Boxtype from);</A></H4>
-
-<P>The first form sets the function to call to draw a specific boxtype.
-
-<P>The second form copies the <tt>from</tt> boxtype.
-
-<H4><A NAME="Fl.set_color">void set_color(Fl_Color, uchar, uchar, uchar);<BR>
-void set_color(Fl_Color, unsigned);</A></H4>
-
-<P>Sets an entry in the <tt>fl_color</tt> index table. You can set it to
-any 8-bit RGB color. The color is not allocated until <tt>fl_color(i)</tt>
-is used.
-
-<H4><A NAME="Fl.set_font">void set_font(Fl_Font, const char*);<BR>
-void set_font(Fl_Font, Fl_Font);</A></H4>
-
-<P>The first form changes a face. The string pointer is simply stored,
-the string is not copied, so the string must be in static memory.
-
-<P>The second form copies one face to another.
-
-<H4><A NAME="Fl.set_fonts">Fl_Font set_fonts(const char* = 0);</A></H4>
-
-<P>FLTK will open the display, and add every font on the server to the
-face table. It will attempt to put &quot;families&quot; of faces together, so
-that the normal one is first, followed by bold, italic, and bold
-italic.
-
-<P>The optional argument is a string to describe the set of fonts to
-add. Passing <tt>NULL</tt> will select only fonts that have the
-ISO8859-1 character set (and are thus usable by normal text). Passing
-&quot;-*&quot; will select all fonts with any encoding as long as they have
-normal X font names with dashes in them. Passing &quot;*&quot; will list every
-font that exists (on X this may produce some strange output). Other
-values may be useful but are system dependent. With WIN32 <tt>NULL</tt>
-selects fonts with ISO8859-1 encoding and non-<tt>NULL</tt> selects
-all fonts.
-
-<P>The return value is how many faces are in the table after this is
-done.
-
-<H4><A NAME="Fl.set_idle">void set_idle(void (*cb)());</A></H4>
-
-<P>Sets an idle callback.
-
-<P>This method is obsolete - use the <A
-HREF="#Fl.add_idle"><TT>add_idle()</TT></A> method instead.
-
-<H4><A NAME="Fl.set_labeltype">void set_labeltype(Fl_Labeltype,Fl_Label_Draw_F*,Fl_Label_Measure_F*);<BR>
-void set_labeltype(Fl_Labeltype, Fl_Labeltype from);</A></H4>
-
-<P>The first form sets the functions to call to draw and measure a
-specific labeltype.
-
-<P>The second form copies the <tt>from</tt> labeltype.
-
-<H4><A NAME="Fl.test_shortcut">int test_shortcut(int);</A></H4>
-
-<P>Test the current event, which must be an <tt>FL_KEYBOARD</tt> or <tt>
-FL_SHORTCUT</tt>, against a shortcut value (described in <A href=Fl_Button.html#Fl_Button.shortcut>
-<tt>Fl_Button</tt></A>). Returns non-zero if there is a match. Not to
-be confused with <A href="subclassing.html#test_shortcut"><tt>
-Fl_Widget::test_shortcut()</tt></A>.
-
-<H4><A NAME="Fl.thread_message">void *thread_message();</A></H4>
-
-<P>The <TT>thread_message()</TT> method returns the last message
-that was sent from a child by the <A
-HREF="#Fl.awake"><TT>awake()</TT></A> method.
-
-<P>See also: <a href="advanced.html#multithreading">multithreading</a>
-
-<H4><A NAME="Fl.unlock">void unlock();</A></H4>
-
-<P>The <TT>unlock()</TT> method releases the lock that was set
-using the <A HREF="#Fl.lock"><TT>lock()</TT></A> method. Child
-threads should call this method as soon as they are finished
-accessing FLTK.
-
-<P>See also: <a href="advanced.html#multithreading">multithreading</a>
-
-<H4><A NAME="Fl.version">double version();</A></H4>
-
-<P>Returns the compiled-in value of the FL_VERSION constant. This
-is useful for checking the version of a shared library.
-
-<H4><A NAME="Fl.visible_focus">void visible_focus(int v);<BR>
-int visible_focus();</A></H4>
-
-<P>Gets or sets the visible keyboard focus on buttons and other
-non-text widgets. The default mode is to enable keyboard focus
-for all widgets.
-
-<H4><A NAME="Fl.visual">int visual(int);</A></H4>
-
-<P>Selects a visual so that your graphics are drawn correctly. This is
-only allowed before you call show() on any windows. This does nothing
-if the default visual satisfies the capabilities, or if no visual
-satisfies the capabilities, or on systems that don't have such
-brain-dead notions.
-
-<P>Only the following combinations do anything useful:
-
-<UL>
-<LI><tt>Fl::visual(FL_RGB)</tt>
-<BR>Full/true color (if there are several depths FLTK chooses the
-largest). Do this if you use <A href="drawing.html#fl_draw_image"><tt>fl_draw_image</tt>
-</A> for much better (non-dithered) output.
-<BR>&nbsp; </LI>
-<LI><tt>Fl::visual(FL_RGB8)</tt>
-<BR>Full color with at least 24 bits of color. <tt>FL_RGB</tt> will
-always pick this if available, but if not it will happily return a
-less-than-24 bit deep visual. This call fails if 24 bits are not
-available.
-<BR>&nbsp; </LI>
-<LI><tt>Fl::visual(FL_DOUBLE|FL_INDEX)</tt>
-<BR>Hardware double buffering. Call this if you are going to use <A href=Fl_Double_Window.html#Fl_Double_Window>
-<tt>Fl_Double_Window</tt></A>.
-<BR>&nbsp; </LI>
-<LI><tt>Fl::visual(FL_DOUBLE|FL_RGB)</tt></LI>
-<LI><tt>Fl::visual(FL_DOUBLE|FL_RGB8)</tt>
-<BR>Hardware double buffering and full color.
-</UL>
-
-<P>This returns true if the system has the capabilities by default or
-FLTK suceeded in turing them on. Your program will still work even if
-this returns false (it just won't look as good).
-
-<H4><A NAME="Fl.w">int w();</A></H4>
-
-<P>Returns the width of the screen in pixels.
-
-<H4><A NAME="Fl.wait">int wait();<BR>
-double wait(double time);</A></H4>
-
-<P>Waits until "something happens" and then returns. Call this
-repeatedly to "run" your program. You can also check what happened
-each time after this returns, which is quite useful for managing
-program state.
-
-<P>What this really does is call all idle callbacks, all elapsed
-timeouts, call <tt>Fl::flush()</tt> to get the screen to update, and
-then wait some time (zero if there are idle callbacks, the shortest of
-all pending timeouts, or infinity), for any events from the user or
-any <tt>Fl::add_fd()</tt> callbacks. It then handles the events and
-calls the callbacks and then returns.
-
-<P>The return value of the first form is non-zero if there are
-any visible windows - this may change in future versions of
-FLTK.
-
-<P>The second form waits a maximum of <i>time</i>
-seconds. <i>It can return much sooner if something happens.</i>
-
-<P>The return value is positive if an event or fd happens before the
-time elapsed. It is zero if nothing happens (on Win32 this will only
-return zero if <i>time</i> is zero). It is negative if an error
-occurs (this will happen on UNIX if a signal happens).
-
-<H4><A NAME="Fl.warning">void (*warning)(const char*, ...);</A></H4>
-
-<P>FLTK calls this to print a warning message. You can
-override the behavior by setting the function pointer to your
-own routine.
-
-<P><tt>Fl::warning</tt> means that there was a recoverable
-problem, the display may be messed up but the user can probably
-keep working - all X protocol errors call this, for example.
-
-<H4><A NAME="Fl.x">int x();</A></H4>
-
-<P>Returns the origin of the current screen, where 0 indicates
-the left side of the screen.
-
-<H4><A NAME="Fl.y">int y();</A></H4>
-
-<P>Returns the origin of the current screen, where 0 indicates
-the top edge of the screen.
-
-<H4><A NAME="Fl.event_dx">int event_dx();</A></H4>
-
-Returns the current horizontal mouse scrolling associated with the
-<tt>FL_MOUSEWHEEL</tt> event. Right is positive.
-
-<H4><A NAME="Fl.event_dy">int event_dy();</A></H4>
-
-Returns the current vertical mouse scrolling assoaciated with the
-<tt>FL_MOUSEWHEEL</tt> event. Down is positive.
-
-<H4><A NAME="Fl.event_text">const char* event_text();</A></H4>
-
-Returns the text associated with the current <tt>FL_PASTE</tt> or
-<tt>FL_DND_RELEASE</tt> event.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Adjuster.html b/documentation/Fl_Adjuster.html
deleted file mode 100644
index 2267f372f..000000000
--- a/documentation/Fl_Adjuster.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Adjuster</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Adjuster>class Fl_Adjuster</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Valuator.html#Fl_Valuator>Fl_Valuator</A>
- |
- +----<B>Fl_Adjuster</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Adjuster.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
-The <TT>Fl_Adjuster</TT> widget was stolen from Prisms, and has proven
-to be very useful for values that need a large dynamic range.
-<P ALIGN=CENTER><IMG SRC="adjuster1.gif" ALT="Fl_Adjuster widget."></P>
-<P>When you press a button and drag to the right the value increases.
-When you drag to the left it decreases. The largest button adjusts by
-<TT>100 * step()</TT>, the next by <TT>10 * step()</TT> and that
-smallest button by <TT>step()</TT>. Clicking on the buttons
-increments by 10 times the amount dragging by a pixel does. Shift +
-click decrements by 10 times the amount.
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Adjuster.Fl_Adjuster>Fl_Adjuster</A></LI>
-<LI><A href=#Fl_Adjuster.~Fl_Adjuster>~Fl_Adjuster</A></LI>
-<LI><A href=#Fl_Adjuster.soft>soft</A></LI>
-</UL>
-<H4><A name=Fl_Adjuster.Fl_Adjuster>Fl_Adjuster::Fl_Adjuster(int x, int
-y, int w, int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Adjuster</TT> widget using the given position,
-size, and label string. It looks best if one of the dimensions is 3
-times the other.
-<H4><A name=Fl_Adjuster.~Fl_Adjuster>virtual Fl_Adjuster::~Fl_Adjuster()</A>
-</H4>
- Destroys the valuator.
-<H4><A name=Fl_Adjuster.soft>uchar Fl_Adjuster::soft() const
-<BR> void Fl_Adjuster::soft(uchar)</A></H4>
- If &quot;soft&quot; is turned on, the user is allowed to drag the value outside
-the range. If they drag the value to one of the ends, let go, then
-grab again and continue to drag, they can get to any value. Default is
-one.
-</BODY></HTML>
diff --git a/documentation/Fl_BMP_Image.html b/documentation/Fl_BMP_Image.html
deleted file mode 100644
index 1fee7594e..000000000
--- a/documentation/Fl_BMP_Image.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_BMP_Image</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_BMP_Image">class Fl_BMP_Image</A></H2>
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href="Fl_RGB_Image.html">Fl_RGB_Image</A>
- |
- +----<B>Fl_BMP_Image</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_BMP_Image.H&gt;
-</PRE></UL>
-
-<H3>Additional Libraries</H3>
-
-<UL><PRE>
--lfltk_images / fltkimages.lib
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_BMP_Image</TT> class supports loading, caching,
-and drawing of Windows Bitmap (BMP) image files.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_BMP_Image.Fl_BMP_Image">Fl_BMP_Image</A></LI>
-
- <LI><A href="#Fl_BMP_Image.~Fl_BMP_Image">~Fl_BMP_Image</A></LI>
-
-</UL>
-
-<H4><A name="Fl_BMP_Image.Fl_BMP_Image">Fl_BMP_Image::Fl_BMP_Image(const char *filename);</A></H4>
-
-<P>The constructor loads the named BMP image.</P>
-
-<H4><A name="Fl_BMP_Image.~Fl_BMP_Image">Fl_BMP_Image::~Fl_BMP_Image();</A></H4>
-
-<P>The destructor free all memory and server resources that are used by
-the image.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Bitmap.html b/documentation/Fl_Bitmap.html
deleted file mode 100644
index 15db9b9a2..000000000
--- a/documentation/Fl_Bitmap.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Bitmap</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_Bitmap">class Fl_Bitmap</A></H2>
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href="Fl_Image.html">Fl_Image</A>
- |
- +----<B>Fl_Bitmap</B>
- |
- +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Bitmap.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_Bitmap</TT> class supports caching and drawing of mono-color
-(bitmap) images. Images are drawn using the current color.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
-
- <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
-
-</UL>
-
-<H4><A name="Fl_Bitmap.Fl_Bitmap">Fl_Bitmap::Fl_Bitmap(const char *array, int W, int H);<BR>
-Fl_Bitmap::Fl_Bitmap(const unsigned char *array, int W, int H);</A></H4>
-
-<P>The constructors create a new bitmap from the specified bitmap data.</P>
-
-<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
-
-<P>The destructor free all memory and server resources that are used by
-the bitmap.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Box.html b/documentation/Fl_Box.html
deleted file mode 100644
index 4eb58b984..000000000
--- a/documentation/Fl_Box.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Box</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Box>class Fl_Box</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Widget.html#Fl_Widget>Fl_Widget</A>
- |
- +----<B>Fl_Box</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Box.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This widget simply draws its box, and possibly it's label. Putting it
-before some other widgets and making it big enough to surround them
-will let you draw a frame around them.
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Box.Fl_Box>Fl_Box</A></LI>
-<LI><A href=#Fl_Box.~Fl_Box>~Fl_Box</A></LI>
-</UL>
-<H4><A name=Fl_Box.Fl_Box>Fl_Box::Fl_Box(int x, int y, int w, int h,
-const char * = 0)
-<BR> Fl_Box::Fl_Box(Fl_Boxtype b, int x, int y, int w, int h, const
-char *)</A></H4>
- The first constructor sets <TT>box()</TT> to <TT>FL_NO_BOX</TT>, which
-means it is invisible. However such widgets are useful as placeholders
-or <A href="Fl_Group.html#Fl_Group.resizable"><TT>Fl_Group::resizable()</TT></A>
- values. To change the box to something visible, use <TT>box(n)</TT>.
-<P>The second form of the constructor sets the box to the specified box
-type. </P>
-<H4><A name=Fl_Box.~Fl_Box>Fl_Box::~Fl_Box(void)</A></H4>
-The destructor removes the box.
-</BODY></HTML>
diff --git a/documentation/Fl_Browser.html b/documentation/Fl_Browser.html
deleted file mode 100644
index 4ef1c7599..000000000
--- a/documentation/Fl_Browser.html
+++ /dev/null
@@ -1,220 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Browser</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Browser>class Fl_Browser</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Browser_.html#Fl_Browser_>Fl_Browser_</A>
- |
- +----<B>Fl_Browser</B>
- |
- +----<A href=Fl_File_Browser.html#Fl_File_Browser>Fl_File_Browser</A>, <A href=Fl_Hold_Browser.html#Fl_Hold_Browser>Fl_Hold_Browser</A>, <A href=Fl_Multi_Browser.html#Fl_Multi_Browser>Fl_Multi_Browser</A>, <A href=Fl_Select_Browser.html#Fl_Select_Browser>Fl_Select_Browser</A>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Browser.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Browser</TT> widget displays a scrolling list of text
-lines, and manages all the storage for the text. This is not a text
-editor or spreadsheet! But it is useful for showing a vertical list of
-named objects to the user.
-<P>Each line in the browser is identified by number. <I>The numbers
-start at one</I> (this is so that zero can be reserved for &quot;no line&quot; in
-the selective browsers). <I>Unless otherwise noted, the methods do not
-check to see if the passed line number is in range and legal. It must
-always be greater than zero and &lt;= <TT>size()</TT>.</I></P>
-<P>Each line contains a null-terminated string of text and a <TT>void *</TT>
- data pointer. The text string is displayed, the <TT>void *</TT>
- pointer can be used by the callbacks to reference the object the text
-describes. </P>
-<P>The base class does nothing when the user clicks on it. The
-subclasses <A href=Fl_Select_Browser.html#Fl_Select_Browser><TT>
-Fl_Select_Browser</TT></A>, <A href=Fl_Hold_Browser.html#Fl_Hold_Browser>
-<TT>Fl_Hold_Browser</TT></A>, and <A href=Fl_Multi_Browser.html#Fl_Multi_Browser>
-<TT>Fl_Multi_Browser</TT></A> react to user clicks to select lines in
-the browser and do callbacks. </P>
-<P>The base class called <A href=Fl_Browser_.html#Fl_Browser_><TT>
-Fl_Browser_</TT></A> provides the scrolling and selection mechanisms of
-this and all the subclasses, but the dimensions and appearance of each
-item are determined by the subclass. You can use <TT>Fl_Browser_</TT>
- to display information other than text, or text that is dynamically
-produced from your own data structures. If you find that loading the
-browser is a lot of work or is inefficient, you may want to make a
-subclass of <TT>Fl_Browser_</TT>. </P>
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Browser methods">
-<TR><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Browser.Fl_Browser>Fl_Browser</A></LI>
-<LI><A href=#Fl_Browser.~Fl_Browser>~Fl_Browser</A></LI>
-<LI><A href=#Fl_Browser.add>add</A></LI>
-<LI><A href=#Fl_Browser.bottomline>bottomline</A></LI>
-<LI><A href=#Fl_Browser.clear>clear</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Browser.column_char>column_char</A></LI>
-<LI><A href=#Fl_Browser.column_widths>column_widths</A></LI>
-<LI><A href=#Fl_Browser.data>data</A></LI>
-<LI><A href=#Fl_Browser.format_char>format_char</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Browser.hide>hide</A></LI>
-<LI><A href=#Fl_Browser.insert>insert</A></LI>
-<LI><A href=#Fl_Browser.load>load</A></LI>
-<LI><A href=#Fl_Browser.middleline>middleline</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Browser.move>move</A></LI>
-<LI><A href=#Fl_Browser.position>position</A></LI>
-<LI><A href=#Fl_Browser.remove>remove</A></LI>
-<LI><A href=#Fl_Browser.selected>selected</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Browser.show>show</A></LI>
-<LI><A href=#Fl_Browser.size>size</A></LI>
-<LI><A href=#Fl_Browser.swap>swap</A></LI>
-<LI><A href=#Fl_Browser.text>text</A></LI>
-</UL>
-</TD>
-<TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Browser.topline>topline</A></LI>
-<LI><A href=#Fl_Browser.visible>visible</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-<H4><A name=Fl_Browser.Fl_Browser>Fl_Browser::Fl_Browser(int, int, int,
-int, const char * = 0)</A></H4>
- The constructor makes an empty browser.
-<H4><A name=Fl_Browser.~Fl_Browser>Fl_Browser::~Fl_Browser(void)</A></H4>
- The destructor deletes all list items and destroys the browser.
-<H4><A name=Fl_Browser.add>void Fl_Browser::add(const char *, void * =
-0)</A></H4>
- Add a new line to the end of the browser. The text is copied using
-the <TT>strdup()</TT> function. It may also be <TT>NULL</TT> to make a
-blank line. The <TT>void *</TT> argument is returned as the <TT>data()</TT>
- of the new item.
-<H4><A name=Fl_Browser.bottomline>void Fl_Browser::bottomline(int n)</A></H4>
-Scrolls the browser so the bottom line in the browser is <TT>n</TT>.
-<H4><A name=Fl_Browser.clear>void Fl_Browser::clear()</A></H4>
- Remove all the lines in the browser.
-<H4><A name=Fl_Browser.column_char>uchar Fl_Browser::column_char() const
-<BR> void Fl_Browser::column_char(char c)</A></H4>
- The first form gets the current column separator character. By default
-this is <TT>'\t'</TT> (tab).
-<P>The second form sets the column separator to <TT>c</TT>. This will
-only have an effect if you also set <TT>column_widths()</TT>. </P>
-<H4><A name=Fl_Browser.column_widths>const int
-*Fl_Browser::column_widths() const
-<BR> void Fl_Browser::column_widths(const int *w)</A></H4>
- The first form gets the current column width array. This array is
-zero-terminated and specifies the widths in pixels of each column. The
-text is split at each <TT>column_char()</TT> and each part is formatted
-into it's own column. After the last column any remaining text is
-formatted into the space between the last column and the right edge of
-the browser, even if the text contains instances of <TT>column_char()</TT>
-. The default value is a one-element array of just a zero, which makes
-there are no columns.
-<P>The second form sets the current array to <TT>w</TT>. Make sure the
-last entry is zero. </P>
-<H4><A name=Fl_Browser.data>void *Fl_Browser::data(int n) const
-<BR> void Fl_Browser::data(int n, void *)</A></H4>
- The first form returns the data for line <TT>n</TT>. If <TT>n</TT> is
-out of range this returns <TT>NULL</TT>.
-<P>The second form sets the data for line <TT>n</TT>. </P>
-<H4><A name=Fl_Browser.format_char>uchar Fl_Browser::format_char() const
-<BR> void Fl_Browser::format_char(char c)</A></H4>
- The first form gets the current format code prefix character, which by
-default is <TT>@</TT>. A string of formatting codes at the start of
-each column are stripped off and used to modify how the rest of the
-line is printed:
-<UL>
-<LI><CODE>@.</CODE> Print rest of line, don't look for more '@' signs </LI>
-<LI><CODE>@@</CODE> Print rest of line starting with '@' </LI>
-<LI><CODE>@l</CODE> Use a <BIG>large</BIG> (24 point) font </LI>
-<LI><CODE>@m</CODE> Use a <BIG>medium large</BIG> (18 point) font </LI>
-<LI><CODE>@s</CODE> Use a <SMALL>small</SMALL> (11 point) font </LI>
-<LI><CODE>@b</CODE> Use a <B>bold</B> font (adds FL_BOLD to font) </LI>
-<LI><CODE>@i</CODE> Use an <I>italic</I> font (adds FL_ITALIC to font) </LI>
-<LI><CODE>@f</CODE> or <CODE>@t</CODE> Use a <CODE>fixed-pitch</CODE>
- font (sets font to FL_COURIER) </LI>
-<LI><CODE>@c</CODE> Center the line horizontally </LI>
-<LI><CODE>@r</CODE> Right-justify the text </LI>
-<LI><CODE>@B0, @B1, ... @B255</CODE> Fill the backgound with
-fl_color(n) </LI>
-<LI><CODE>@C0, @C1, ... @C255</CODE> Use fl_color(n) to draw the text </LI>
-<LI><CODE>@F0, @F1, ... </CODE> Use fl_font(n) to draw the text </LI>
-<LI><CODE>@S1, @S2, ... </CODE> Use point size n to draw the text </LI>
-<LI><CODE>@u</CODE> or <CODE>@_</CODE> Underline the text. </LI>
-<LI><CODE>@-</CODE> draw an engraved line through the middle. </LI>
-</UL>
- Notice that the <CODE>@.</CODE> command can be used to reliably
-terminate the parsing. To print a random string in a random color, use <TT>
-sprintf(&quot;@C%d@.%s&quot;, color, string)</TT> and it will work even if the
-string starts with a digit or has the format character in it.
-<P>The second form sets the current prefix to <TT>c</TT>. Set the
-prefix to 0 to disable formatting. </P>
-<H4><A name=Fl_Browser.hide>void Fl_Browser::hide(int n)</A></H4>
- Makes line <TT>n</TT> invisible, preventing selection by the user.
- The line can still be selected under program control.
-<H4><A name=Fl_Browser.insert>void Fl_Browser::insert(int n, const char
-*, void * = 0)</A></H4>
- Insert a new line <I>before</I> line <TT>n</TT>. If <TT>n</TT> &gt; <TT>
-size()</TT> then the line is added to the end.
-<H4><A name=Fl_Browser.load>int Fl_Browser::load(const char *filename)</A>
-</H4>
- Clears the browser and reads the file, adding each line from the file
-to the browser. If the filename is <TT>NULL</TT> or a zero-length
-string then this just clears the browser. This returns zero if there
-was any error in opening or reading the file, in which case <TT>errno</TT>
- is set to the system error. The <TT>data()</TT> of each line is set
-to <TT>NULL</TT>.
-<H4><A name=Fl_Browser.middleline>void Fl_Browser::middleline(int n)</A></H4>
-Scrolls the browser so the middle line in the browser is <TT>n</TT>.
-<H4><A name=Fl_Browser.move>void Fl_Browser::move(int to, int from)</A></H4>
- Line <TT>from</TT> is removed and reinserted at <TT>to</TT>; <TT>to</TT>
- is calculated after the line is removed.
-<H4><A name=Fl_Browser.position>int Fl_Browser::position() const
-<BR> void Fl_Browser::position(int p)</A></H4>
- The first form returns the current vertical scrollbar position, where
-0 corresponds to the top. If there is not vertical scrollbar then this
-will always return 0.
-<P>The second form sets the vertical scrollbar position to <TT>p</TT>. </P>
-<H4><A name=Fl_Browser.remove>void Fl_Browser::remove(int n)</A></H4>
- Remove line <TT>n</TT> and make the browser one line shorter.
-<H4><A name=Fl_Browser.selected>int Fl_Browser::selected(int n) const</A></H4>
- Return 1 if line <TT>n</TT> is selected, 0 if it not selected.
-<H4><A name=Fl_Browser.show>void Fl_Browser::show(int n)</A></H4>
- Makes line <TT>n</TT> visible for selection.
-<H4><A name=Fl_Browser.size>int Fl_Browser::size() const</A></H4>
- Returns how many lines are in the browser. The last line number is
-equal to this.
-<H4><A name=Fl_Browser.swap>void Fl_Browser::swap(int a, int b)</A></H4>
-Swaps two lines in the browser.
-<H4><A name=Fl_Browser.text>const char *Fl_Browser::text(int n) const
-<BR> void Fl_Browser::text(int n, const char *)</A></H4>
- The first form returns the text for line <TT>n</TT>. If <TT>n</TT> is
-out of range it returns <TT>NULL</TT>.
-<P>The second form sets the text for line <TT>n</TT>. </P>
-<H4><A name=Fl_Browser.topline>int Fl_Browser::topline() const
-<BR> void Fl_Browser::topline(int n)</A></H4>
-The first form returns the current top line in the browser. If there
-is no vertical scrollbar then this will always return 1.
-<P>The second form scrolls the browser so the top line in the browser is <TT>n</TT>.</P>
-<H4><A name=Fl_Browser.visible>int Fl_Browser::visible(int n) const</A></H4>
- Returns a non-zero value if line <TT>n</TT> is visible. </BODY></HTML>
diff --git a/documentation/Fl_Browser_.html b/documentation/Fl_Browser_.html
deleted file mode 100644
index ea2c1e680..000000000
--- a/documentation/Fl_Browser_.html
+++ /dev/null
@@ -1,419 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Browser_</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name="Fl_Browser_">class Fl_Browser_</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href="Fl_Group.html#Fl_Group">Fl_Group</A>
- |
- +----<B>Fl_Browser_</B>
- |
- +----<A href=Fl_Browser.html#Fl_Browser>Fl_Browser</A>, <A href=Fl_Check_Browser.html#Fl_Check_Browser>Fl_Check_Browser</A>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Browser_.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This is the base class for browsers. To be useful it must be
-subclassed and several virtual functions defined. The Forms-compatible
-browser and the file chooser's browser are subclassed off of this.
-<P>This has been designed so that the subclass has complete control
-over the storage of the data, although because <TT>next()</TT> and <TT>
-prev()</TT> functions are used to index, it works best as a linked list
-or as a large block of characters in which the line breaks must be
-searched for. </P>
-<P>A great deal of work has been done so that the &quot;height&quot; of a data
-object does not need to be determined until it is drawn. This is
-useful if actually figuring out the size of an object requires
-accessing image data or doing <TT>stat()</TT> on a file or doing some
-other slow operation. </P>
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Browser_ methods">
-<TR><TD align=left valign=top>
-<UL>
-<LI><A href="#Fl_Browser_.Fl_Browser_">Fl_Browser_</A></LI>
-<LI><A href="#Fl_Browser_.~Fl_Browser_">~Fl_Browser_</A></LI>
-<LI><A href="#Fl_Browser_.bbox">bbox</A></LI>
-<LI><A href="#Fl_Browser_.deleting">deleting</A></LI>
-<LI><A href="#Fl_Browser_.deselect">deselect</A></LI>
-<LI><A href="#Fl_Browser_.display">display</A></LI>
-<LI><A href="#Fl_Browser_.displayed">displayed</A></LI>
-<LI><A href="#Fl_Browser_.draw">draw</A></LI>
-<LI><A href="#Fl_Browser_.find_item">find_item</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href="#Fl_Browser_.full_height">full_height</A></LI>
-<LI><A href="#Fl_Browser_.full_width">full_width</A></LI>
-<LI><A href="#Fl_Browser_.handle">handle</A></LI>
-<LI><A href="#Fl_Browser_.has_scrollbar">has_scrollbar</A></LI>
-<LI><A href="#Fl_Browser_.hposition">hposition</A></LI>
-<LI><A href="#Fl_Browser_.incr_height">incr_height</A></LI>
-<LI><A href="#Fl_Browser_.inserting">inserting</A></LI>
-<LI><A href="#Fl_Browser_.item_draw">item_draw</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href="#Fl_Browser_.item_first">item_first</A></LI>
-<LI><A href="#Fl_Browser_.item_height">item_height</A></LI>
-<LI><A href="#Fl_Browser_.item_next">item_next</A></LI>
-<LI><A href="#Fl_Browser_.item_prev">item_prev</A></LI>
-<LI><A href="#Fl_Browser_.item_quick_height">item_quick_height</A></LI>
-<LI><A href="#Fl_Browser_.item_select">item_select</A></LI>
-<LI><A href="#Fl_Browser_.item_selected">item_selected</A></LI>
-<LI><A href="#Fl_Browser_.item_width">item_width</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href="#Fl_Browser_.leftedge">leftedge</A></LI>
-<LI><A href="#Fl_Browser_.new_list">new_list</A></LI>
-<LI><A href="#Fl_Browser_.position">position</A></LI>
-<LI><A href="#Fl_Browser_.redraw_line">redraw_line</A></LI>
-<LI><A href="#Fl_Browser_.redraw_lines">redraw_lines</A></LI>
-<LI><A href="#Fl_Browser_.replacing">replacing</A></LI>
-<LI><A href="#Fl_Browser_.resize">resize</A></LI>
-<LI><A href="#Fl_Browser_.scrollbar_left">scrollbar_left</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href="#Fl_Browser_.scrollbar_right">scrollbar_right</A></LI>
-<LI><A href="#Fl_Browser_.scrollbar_width">scrollbar_width</A></LI>
-<LI><A href="#Fl_Browser_.select">select</A></LI>
-<LI><A href="#Fl_Browser_.select_only">select_only</A></LI>
-<LI><A href="#Fl_Browser_.selection">selection</A></LI>
-<LI><A href="#Fl_Browser_.textcolor">textcolor</A></LI>
-<LI><A href="#Fl_Browser_.textfont">textfont</A></LI>
-<LI><A href="#Fl_Browser_.textsize">textsize</A></LI>
-<LI><A href="#Fl_Browser_.top">top</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-
-<H4><A name="Fl_Browser_.Fl_Browser_">Fl_Browser::Fl_Browser(int, int,
-int, int, const char * = 0)</A></H4>
-
-<P>The constructor makes an empty browser.
-
-
-<H4><A name="Fl_Browser_.~Fl_Browser_">Fl_Browser::~Fl_Browser(void)</A></H4>
-
-<P>The destructor deletes all list items and destroys the browser.
-
-
-<H4><A NAME="Fl_Browser_.bbox">Fl_Browser_::bbox(int &amp;x, int &amp;y, int &amp;w, int &amp;h) const</A></H4>
-
-<P><tt>[protected]</tt> This method returns the bounding box for the interior of the list, inside
-the scrollbars.
-
-
-<H4><A NAME="Fl_Browser_.deleting">Fl_Browser_::deleting(void *a)</A></H4>
-
-<P><tt>[protected]</tt> This method should be used when an item is deleted from the list.
-It allows the <TT>Fl_Browser_</TT> to discard any cached data it has
-on the item.
-
-
-<H4><A NAME="Fl_Browser_.deselect">int Fl_Browser_::deselect(int docb=0)</A></H4>
-
-<P>Deselects all items in the list and returns 1 if the state changed
-or 0 if it did not.
-
-<P>If <TT>docb</TT> is non-zero, <TT>deselect</TT> tries to call the
-callback function for the widget.
-
-
-<H4><A NAME="Fl_Browser_.display">Fl_Browser_::display(void *p)</A></H4>
-
-<P>Displays item <TT>p</TT>, scrolling the list as necessary.
-
-
-<H4><A NAME="Fl_Browser_.displayed">int Fl_Browser_::displayed(void *p) const</A></H4>
-
-<P><tt>[protected]</tt> This method returns non-zero if item <TT>p</TT> is currently visible in
-the list.
-
-
-<H4><A NAME="Fl_Browser_.draw">Fl_Browser_::draw()
-<BR>Fl_Browser_::draw(int x, int y, int w, int h)</A></H4>
-
-<P><tt>[protected]</tt> The first form draws the list within the normal widget bounding box.
-
-<P><tt>[protected]</tt> The second form draws the contents of the browser within the
-specified bounding box.
-
-
-<H4><A NAME="Fl_Browser_.find_item">void *Fl_Browser_::find_item(int my)</A></H4>
-
-<P>This method returns the item under mouse at <TT>my</TT>. If no item is
-displayed at that position then <TT>NULL</TT> is returned.
-
-
-<H4><A NAME="Fl_Browser_.full_height">virtual int Fl_Browser_::full_height() const</A></H4>
-
-<P><tt>[protected]</tt> This method may be provided by the subclass to indicate the full height
-of the item list in pixels. The default implementation computes the full
-height from the item heights.
-
-
-<H4><A NAME="Fl_Browser_.full_width">Fl_Browser_::full_width() const</A></H4>
-
-<P><tt>[protected]</tt> This method may be provided by the subclass to indicate the full width
-of the item list in pixels. The default implementation computes the full
-width from the item widths.
-
-
-<H4><A NAME="Fl_Browser_.handle">Fl_Browser_::handle(int event)
-<BR>Fl_Browser_::handle(int event, int x, int y, int w, int h)</A></H4>
-
-<P>The first form handles an event within the normal widget bounding box.
-
-<P><tt>[protected]</tt> The second form handles an event within the specified bounding box.
-
-
-<H4><A name="Fl_Browser_.has_scrollbar">void
-Fl_Browser_::has_scrollbar(int h)</A></H4>
-
-<P>By default you can scroll in both directions, and the scrollbars
-disappear if the data will fit in the widget. has_scrollbar() changes
-this based on the value of <TT>h</TT>:
-
-<UL>
-
- <LI><CODE>0</CODE> - No scrollbars.
-
- <LI><CODE>Fl_Browser_::HORIZONTAL</CODE> - Only a horizontal
- scrollbar.
-
- <LI><CODE>Fl_Browser_::VERTICAL</CODE> - Only a vertical
- scrollbar.
-
- <LI><CODE>Fl_Browser_::BOTH</CODE> - The default is both
- scrollbars.
-
- <LI><CODE>Fl_Browser_::HORIZONTAL_ALWAYS</CODE> - Horizontal
- scrollbar always on, vertical always off.
-
- <LI><CODE>Fl_Browser_::VERTICAL_ALWAYS</CODE> - Vertical
- scrollbar always on, horizontal always off.
-
- <LI><CODE>Fl_Browser_::BOTH_ALWAYS</CODE> - Both always on.
-
-</UL>
-
-
-<H4><A NAME="Fl_Browser_.hposition">int Fl_Browser_::hposition() const
-<BR>Fl_Browser_::hposition(int h)</A></H4>
-
-<P>Gets or sets the horizontal scrolling position of the list,
-which is the pixel offset of the list items within the list
-area.
-
-
-<H4><A NAME="Fl_Browser_.incr_height">virtual int Fl_Browser_::incr_height() const</A></H4>
-
-<P><tt>[protected]</tt> This method may be provided to return the average height of all items, to
-be used for scrolling. The default implementation uses the height of the first
-item.
-
-
-<H4><A NAME="Fl_Browser_.inserting">Fl_Browser_::inserting(void *a, void *b)</A></H4>
-
-<P><tt>[protected]</tt> This method should be used when an item is added to the list.
-It allows the <TT>Fl_Browser_</TT> to update its cache data as needed.
-
-
-<H4><A NAME="Fl_Browser_.item_draw">virtual void Fl_Browser_::item_draw(void *p, int x, int y, int w, int h)</A></H4>
-
-<P><tt>[protected]</tt> This method must be provided by the subclass to draw the item
-<TT>p</TT> in the area indicated by <TT>x</TT>, <TT>y</TT>, <TT>w</TT>,
-and <TT>h</TT>.
-
-
-<H4><A NAME="Fl_Browser_.item_first">virtual void *Fl_Browser_::item_first() const</A></H4>
-
-<P><tt>[protected]</tt> This method must be provided by the subclass to return the first item in
-the list.
-
-
-<H4><A NAME="Fl_Browser_.item_height">virtual int Fl_Browser_::item_height(void *p) const</A></H4>
-
-<P><tt>[protected]</tt> This method must be provided by the subclass to return the height of the
-item <TT>p</TT> in pixels. Allow for two additional pixels for the list
-selection box.
-
-
-<H4><A NAME="Fl_Browser_.item_next">virtual void *Fl_Browser_::item_next(void *p) const</A></H4>
-
-<P><tt>[protected]</tt> This method must be provided by the subclass to return the item in
-the list after <TT>p</TT>.
-
-
-<H4><A NAME="Fl_Browser_.item_prev">virtual void *Fl_Browser_::item_prev(void *p) const</A></H4>
-
-<P><tt>[protected]</tt> This method must be provided by the subclass to return the item in
-the list before <TT>p</TT>.
-
-
-<H4><A NAME="Fl_Browser_.item_quick_height">virtual int Fl_Browser_::item_quick_height(void *p) const</A></H4>
-
-<P><tt>[protected]</tt> This method may be provided by the subclass to return the height of the
-item <TT>p</TT> in pixels. Allow for two additional pixels for the list
-selection box. This method differs from
-<A HREF="#Fl_Browser_.item_height"><TT>item_height</TT></A> in that it is only
-called for selection and scrolling operations. The default implementation
-calls <TT>item_height</TT>.
-
-
-<H4><A NAME="Fl_Browser_.item_select">virtual void Fl_Browser_::item_select(void *p, int s=1)</A></H4>
-
-<P><tt>[protected]</tt> This method must be implemented by the subclass if it supports
-multiple selections in the browser. The <TT>s</TT> argument specifies the
-selection state for item <TT>p</TT>: 0 = off, 1 = on.
-
-
-<H4><A NAME="Fl_Browser_.item_selected">virtual int Fl_Browser_::item_selected(void *p) const</A></H4>
-
-<P><tt>[protected]</tt> This method must be implemented by the subclass if it supports
-multiple selections in the browser. The method should return 1 if <TT>p</TT>
-is selected and 0 otherwise.
-
-
-<H4><A NAME="Fl_Browser_.item_width">virtual int Fl_Browser_::item_width(void *p) const</A></H4>
-
-<P><tt>[protected]</tt> This method must be provided by the subclass to return the width of the
-item <TT>p</TT> in pixels. Allow for two additional pixels for the list
-selection box.
-
-
-<H4><A NAME="Fl_Browser_.leftedge">int Fl_Browser_::leftedge() const</A></H4>
-
-<P><tt>[protected]</tt> This method returns the X position of the left edge of the list area
-after adjusting for the scrollbar and border, if any.
-
-
-<H4><A NAME="Fl_Browser_.new_list">Fl_Browser_::new_list()</A></H4>
-
-<P><tt>[protected]</tt> This method should be called when the list data is completely replaced
-or cleared. It informs the <TT>Fl_Browser_</TT> widget that any cached
-information it has concerning the items is invalid.
-
-
-<H4><A NAME="Fl_Browser_.position">int Fl_Browser_::position() const
-<BR>Fl_Browser_::position(int v) const</A></H4>
-
-<P>Gets or sets the vertical scrolling position of the list,
-which is the pixel offset of the list items within the list
-area.
-
-
-<H4><A NAME="Fl_Browser_.redraw_line">Fl_Browser_::redraw_line(void *p)</A></H4>
-
-<P><tt>[protected]</tt> This method should be called when the contents of an item have changed
-but not changed the height of the item.
-
-
-<H4><A NAME="Fl_Browser_.redraw_lines">Fl_Browser_::redraw_lines()</A></H4>
-
-<P><tt>[protected]</tt> This method will cause the entire list to be redrawn.
-
-
-<H4><A NAME="Fl_Browser_.replacing">Fl_Browser_::replacing(void *a, void *b)</A></H4>
-
-<P><tt>[protected]</tt> This method should be used when an item is replaced in the list.
-It allows the <TT>Fl_Browser_</TT> to update its cache data as needed.
-
-
-<H4><A NAME="Fl_Browser_.resize">Fl_Browser_::resize(int x, int y, int w, int h)</A></H4>
-
-<P>Repositions and/or resizes the browser.
-
-
-<H4><A NAME="Fl_Browser_.scrollbar_left">Fl_Browser_::scrollbar_left()</A></H4>
-
-<P>This method moves the vertical scrollbar to the lefthand side of the list.
-
-
-<H4><A NAME="Fl_Browser_.scrollbar_right">Fl_Browser_::scrollbar_right()</A></H4>
-
-<P>This method moves the vertical scrollbar to the righthand side of the list.
-
-
-<H4><A NAME="Fl_Browser_.scrollbar_width">static void Fl_Browser_::scrollbar_width(int sw);</A><BR>
-static int Fl_Browser_::scrollbar_width() const;</H4>
-
-<P>Sets or gets the width of any scrollbars that are used.
-
-
-<H4><A NAME="Fl_Browser_.select">int Fl_Browser_::select(void *p, int s=1, int docb=0)</A></H4>
-
-<P>Sets the selection state of item <TT>p</TT> to <TT>s</TT> and
-returns 1 if the state changed or 0 if it did not.
-
-<P>If <TT>docb</TT> is non-zero, <TT>select</TT> tries to call the callback
-function for the widget.
-
-
-<H4><A NAME="Fl_Browser_.select_only">Fl_Browser_::select_only(void *p, int docb=0)</A></H4>
-
-<P>Selects item <TT>p</TT> and returns 1 if the state changed or 0 if it did
-not. Any other items in the list are deselected.
-
-<P>If <TT>docb</TT> is non-zero, <TT>select_only</TT> tries to call the
-callback function for the widget.
-
-
-<H4><A NAME="Fl_Browser_.selection">void *Fl_Browser_::selection() const</A></H4>
-
-<P><tt>[protected]</tt> Returns the item currently selected, or NULL if there is no selection.
-
-<P>For multiple selection browsers this call returns the currently focused item,
-even if it is not selected. To find all selected items, call
-<TT><A href=Fl_Multi_Browser.html#Fl_Multi_Browser.select>
-Fl_Multi_Browser::selected()</A></TT> for every item in question.
-
-
-<H4><A name="Fl_Browser_.textcolor">Fl_Color Fl_Browser_::textcolor() const
-<BR>void Fl_Browser_::textcolor(Fl_Color color)</A></H4>
-
-<P>The first form gets the default text color for the lines in the
-browser.
-
-<P>The second form sets the default text color to <TT>color</TT></P>
-
-
-<H4><A name="Fl_Browser_.textfont">Fl_Font Fl_Browser_::textfont() const
-<BR>void Fl_Browser_::textfont(Fl_Font font)</A></H4>
-
-<P>The first form gets the default text font for the lines in the
-browser.
-
-<P>The second form sets the default text font to <TT>font</TT></P>
-
-
-<H4><A name="Fl_Browser_.textsize">uchar Fl_Browser_::textsize() const
-<BR>void Fl_Browser_::textsize(uchar size)</A></H4>
-
-<P>The first form gets the default text size for the lines in the
-browser.
-
-<P>The second form sets the default text size to <TT>size</TT></P>
-
-
-<H4><A NAME="Fl_Browser_.top">void *Fl_Browser_::top() const</A></H4>
-
-<P><tt>[protected]</tt> Returns the item the appears at the top of the list.
-
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Button.html b/documentation/Fl_Button.html
deleted file mode 100644
index 824f3843d..000000000
--- a/documentation/Fl_Button.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Button</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Button>class Fl_Button</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Widget.html#Fl_Widget>Fl_Widget</A>
- |
- +----<B>Fl_Button</B>
- |
- +----<A href=Fl_Check_Button.html#Fl_Check_Button>Fl_Check_Button</A>, <A href=Fl_Light_Button.html#Fl_Light_Button>Fl_Light_Button</A>, <A href=Fl_Repeat_Button.html#Fl_Repeat_Button>Fl_Repeat_Button</A>,
- <A href=Fl_Return_Button.html#Fl_Return_Button>Fl_Return_Button</A>, <A href=Fl_Round_Button.html#Fl_Round_Button>Fl_Round_Button</A>, <A href=Fl_Toggle_Button.html#Fl_Toggle_Button>Fl_Toggle_Button</A>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Button.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
-<P>Buttons generate callbacks when they are clicked by the user. You
-control exactly when and how by changing the values for <TT>type()</TT>
- and <TT>when()</TT>. </P>
-<P>Buttons can also generate callbacks in response to <TT>FL_SHORTCUT</TT>
- events. The button can either have an explicit <A href=#Fl_Button.shortcut>
-<TT>shortcut()</TT></A> value or a letter shortcut can be indicated in
-the <TT>label()</TT> with an '&amp;' character before it. For the label
-shortcut it does not matter if <I>Alt</I> is held down, but if you have
-an input field in the same window, the user will have to hold down the <I>
-Alt</I> key so that the input field does not eat the event first as an <TT>
-FL_KEYBOARD</TT> event. </P>
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Button methods">
-<TR><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Button.Fl_Button>Fl_Button</A></LI>
-<LI><A href=#Fl_Button.~Fl_Button>~Fl_Button</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Button.clear>clear</A></LI>
-<LI><A href=#Fl_Button.down_box>down_box</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Button.set>set</A></LI>
-<LI><A href=#Fl_Button.setonly>setonly</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Button.shortcut>shortcut</A></LI>
-<LI><A href=#Fl_Button.type>type</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Button.value>value</A></LI>
-<LI><A href=#Fl_Button.when>when</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-<H4><A name=Fl_Button.Fl_Button>Fl_Button::Fl_Button(int x, int y, int
-w, int h, const char *label = 0)</A></H4>
- The constructor creates the button using the position, size, and
-label.
-<H4><A name=Fl_Button.~Fl_Button>Fl_Button::~Fl_Button(void)</A></H4>
- The destructor removes the button.
-<H4><A name=Fl_Button.clear>int Fl_Button::clear()</A></H4>
- Same as <TT>value(0)</TT>.
-<H4><A name=Fl_Button.down_box>Fl_Boxtype Fl_Button::down_box() const
-<BR> void Fl_Button::down_box(Fl_Boxtype bt)</A></H4>
- The first form returns the current down box type, which is drawn when <TT>
-value()</TT> is non-zero.
-<P>The second form sets the down box type. The default value of 0
-causes FLTK to figure out the correct matching down version of <TT>box()</TT>
-. </P>
-<H4><A name=Fl_Button.set>int Fl_Button::set()</A></H4>
- Same as <TT>value(1)</TT>.
-<H4><A name=Fl_Button.setonly>void Fl_Button::setonly()</A></H4>
- Turns on this button and turns off all other radio buttons in the
-group (calling <TT>value(1)</TT> or <TT>set()</TT> does not do this).
-<H4><A name=Fl_Button.shortcut>ulong Fl_Button::shortcut() const
-<BR> void Fl_Button::shortcut(ulong key)</A></H4>
- The first form returns the current shortcut key for the button.
-<P>The second form sets the shortcut key to <TT>key</TT>. Setting this
-overrides the use of '&amp;' in the <TT>label()</TT>. The value is a bitwise
-OR of a key and a set of shift flags, for example <CODE>FL_ALT | 'a'</CODE>
-, <CODE>FL_ALT | (FL_F + 10)</CODE>, or just <CODE>'a'</CODE>. A value
-of 0 disables the shortcut. </P>
-<P>The key can be any value returned by <A href="Fl.html#Fl.event_key">
-<TT>Fl::event_key()</TT></A>, but will usually be an ASCII letter. Use
-a lower-case letter unless you require the shift key to be held down. </P>
-<P>The shift flags can be any set of values accepted by <A href="Fl.html#Fl.event_state">
-<TT>Fl::event_state()</TT></A>. If the bit is on that shift key must
-be pushed. Meta, Alt, Ctrl, and Shift must be off if they are not in
-the shift flags (zero for the other bits indicates a &quot;don't care&quot;
-setting). </P>
-<H4><A name=Fl_Button.type>uchar Fl_Button::type() const
-<BR> void Fl_Button::type(uchar t)</A></H4>
- The first form of <TT>type()</TT> returns the current button type,
-which can be one of:
-<UL>
-<LI><CODE>0</CODE>: The value is unchanged. </LI>
-<LI><CODE>FL_TOGGLE_BUTTON</CODE>: The value is inverted. </LI>
-<LI><CODE>FL_RADIO_BUTTON</CODE>: The value is set to 1, and all other
-buttons in the current group with <CODE>type() == FL_RADIO_BUTTON</CODE>
- are set to zero. </LI>
-</UL>
- The second form sets the button type to <TT>t</TT>.
-<H4><A name=Fl_Button.value>char Fl_Button::value() const
-<BR> int Fl_Button::value(int)</A></H4>
- The first form returns the current value (0 or 1). The second form
-sets the current value.
-<H4><A name=Fl_Button.when>Fl_When Fl_Widget::when() const
-<BR> void Fl_Widget::when(Fl_When w)</A></H4>
- Controls when callbacks are done. The following values are useful,
-the default value is <CODE>FL_WHEN_RELEASE</CODE>:
-<UL>
-<LI><CODE>0</CODE>: The callback is not done, instead changed() is
- turned on. </LI>
-<LI><CODE>FL_WHEN_RELEASE</CODE>: The callback is done after the user
- successfully clicks the button, or when a shortcut is typed. </LI>
-<LI><CODE>FL_WHEN_CHANGED </CODE>: The callback is done each time the
- value() changes (when the user pushes and releases the button, and as
- the mouse is dragged around in and out of the button). </LI>
-</UL>
-</BODY></HTML>
diff --git a/documentation/Fl_Chart.html b/documentation/Fl_Chart.html
deleted file mode 100644
index 65f16f7e2..000000000
--- a/documentation/Fl_Chart.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Chart</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Chart>class Fl_Chart</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Widget.html#Fl_Widget>Fl_Widget</A>
- |
- +----<B>Fl_Chart</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Chart.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
-This widget displays simple charts and is provided for Forms compatibility.
-<CENTER><IMG src="charts.gif" width="80%" alt="Fl_Chart widget"></CENTER>
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Chart methods.">
-<TR><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Chart.Fl_Chart>Fl_Chart</A></LI>
-<LI><A href=#Fl_Chart.~Fl_Chart>~Fl_Chart</A></LI>
-<LI><A href=#Fl_Chart.add>add</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Chart.autosize>autosize</A></LI>
-<LI><A href=#Fl_Chart.bounds>bounds</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Chart.clear>clear</A></LI>
-<LI><A href=#Fl_Chart.insert>insert</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Chart.maxsize>maxsize</A></LI>
-<LI><A href=#Fl_Chart.replace>replace</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Chart.size>size</A></LI>
-<LI><A href=#Fl_Chart.type>type</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-<H4><A name=Fl_Chart.Fl_Chart>Fl_Chart::Fl_Chart(int x, int y, int w,
-int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Chart</TT> widget using the given position, size,
-and label string. The default boxtype is <TT>FL_NO_BOX</TT>.
-<H4><A name=Fl_Chart.~Fl_Chart>virtual Fl_Chart::~Fl_Chart()</A></H4>
- Destroys the <TT>Fl_Chart</TT> widget and all of its data.
-<H4><A name=Fl_Chart.add>void add(double value, const char *label =
-NULL, uchar color = 0)</A></H4>
- The <TT>add</TT> method adds the <TT>value</TT> and optionally <TT>
-label</TT> and <TT>color</TT> to the chart.
-<H4><A name=Fl_Chart.autosize>uchar autosize(void) const
-<BR> void autosize(uchar onoff)</A></H4>
- The <TT>autosize</TT> method controls whether or not the chart will
-automatically adjust the bounds of the chart. The first form returns a
-boolean value that is non-zero if auto-sizing is enabled and zero is
-auto-sizing is disabled.
-<P>The second form of <TT>autosize</TT> sets the auto-sizing property
-to <TT>onoff</TT>. </P>
-<H4><A name=Fl_Chart.bounds>void bounds(double *a, double *b)
-<BR> void bounds(double a, double b)</A></H4>
- The <TT>bounds</TT> method gets or sets the lower and upper bounds of
-the chart values to <TT>a</TT> and <TT>b</TT> respectively.
-<H4><A name=Fl_Chart.clear>void clear(void)</A></H4>
- The <TT>clear</TT> method removes all values from the chart.
-<H4><A name=Fl_Chart.insert>void insert(int pos, double value, const
-char *label = NULL, uchar color = 0)</A></H4>
- The <TT>insert</TT> method inserts a data value at the given position <TT>
-pos</TT>. Position 1 is the first data value.
-<H4><A name=Fl_Chart.maxsize>int maxsize(void) const
-<BR> void maxsize(int n)</A></H4>
-The <TT>maxsize</TT> method gets or sets the maximum number of data
-values for a chart. If you do not call this method then the chart will
-be allowed to grow to any size depending on available memory.
-<H4><A name=Fl_Chart.replace>void replace(int pos, double value, const
-char *label = NULL, uchar color = 0)</A></H4>
- The <TT>replace</TT> method replaces data value <TT>pos</TT> with <TT>
-value</TT>, <TT>label</TT>, and <TT>color</TT>. Position 1 is the
-first data value.
-<H4><A name=Fl_Chart.size>int size(void) const</A></H4>
- The <TT>size</TT> method returns the number of data values in the
-chart.
-<H4><A name=Fl_Chart.type>uchar type() const
-<BR> void type(uchar t)</A></H4>
- The first form of <TT>type()</TT> returns the current chart type. The
-chart type can be one of the following:
-<DL>
-<DT>FL_BAR_CHART</DT>
-<DD>Each sample value is drawn as a vertical bar.</DD>
-<DT>FL_FILLED_CHART</DT>
-<DD>The chart is filled from the bottom of the graph to the sample
-values.</DD>
-<DT>FL_HORBAR_CHART</DT>
-<DD>Each sample value is drawn as a horizontal bar.</DD>
-<DT>FL_LINE_CHART</DT>
-<DD>The chart is drawn as a polyline with vertices at each sample
-value.</DD>
-<DT>FL_PIE_CHART</DT>
-<DD>A pie chart is drawn with each sample value being drawn as a
-proportionate slice in the circle.</DD>
-<DT>FL_SPECIALPIE_CHART</DT>
-<DD>Like FL_PIE_CHART, but the first slice is separated from the pie.</DD>
-<DT>FL_SPIKE_CHART</DT>
-<DD>Each sample value is drawn as a vertical line.</DD>
-</DL>
- The second form of <TT>type()</TT> sets the chart type to <TT>t</TT>.
-</BODY></HTML>
diff --git a/documentation/Fl_Check_Browser.html b/documentation/Fl_Check_Browser.html
deleted file mode 100644
index df14ee0d8..000000000
--- a/documentation/Fl_Check_Browser.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Check_Browser</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Check_Browser>class Fl_Check_Browser</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Browser_.html#Fl_Browser_>Fl_Browser_</A>
- |
- +----<B>Fl_Check_Browser</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Check_Browser.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
-
-The <TT>Fl_Check_Browser</TT> widget displays a scrolling list of text
-lines that may be selected and/or checked by the user.
-
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Check_Browser methods">
-<TR><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Check_Browser.Fl_Check_Browser>Fl_Check_Browser</A></LI>
-<!-- <LI><A href=#Fl_Check_Browser.~Fl_Check_Browser>~Fl_Check_Browser</A></LI>-->
-<LI><A href=#Fl_Check_Browser.add>add</A></LI>
-<LI><A href=#Fl_Check_Browser.check_all>check_all</A></LI>
-<LI><A href=#Fl_Check_Browser.check_none>check_none</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Check_Browser.checked>checked</A></LI>
-<LI><A href=#Fl_Check_Browser.clear>clear</A></LI>
-<LI><A href=#Fl_Check_Browser.nchecked>nchecked</A></LI>
-<LI><A href=#Fl_Check_Browser.nitems>nitems</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Check_Browser.remove>remove</A></LI>
-<LI><A href=#Fl_Check_Browser.set_checked>set_checked</A></LI>
-<LI><A href=#Fl_Check_Browser.text>text</A></LI>
-<LI><A href=#Fl_Check_Browser.value>value</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-
-<H4><A name=Fl_Check_Browser.Fl_Check_Browser>Fl_Check_Browser::Fl_Check_Browser(int, int, int, int, const char * = 0)</A></H4>
-The constructor makes an empty browser.
-<!--
-<H4><A name=Fl_Check_Browser.~Fl_Check_Browser>Fl_Check_Browser::~Fl_Check_Browser(void)</A></H4>
- The destructor deletes all list items and destroys the browser.
--->
-<H4><A name=Fl_Check_Browser.add>int Fl_Check_Browser::add(const char *)<BR>
-int Fl_Check_Browser::add(const char *, int)</A></H4>
-Add a new unchecked line to the end of the browser. The text is copied
-using the <TT>strdup()</TT> function. It may also be <TT>NULL</TT> to make
-a blank line. The second form can set the item checked.
-
-<H4><A name=Fl_Check_Browser.check_all>void Fl_Check_Browser::check_all()</A></H4>
-Sets all the items checked.
-
-<H4><A name=Fl_Check_Browser.check_none>void Fl_Check_Browser::check_none()</A></H4>
-Sets all the items unchecked.
-
-<H4><A name=Fl_Check_Browser.checked>int Fl_Check_Browser::checked(int item) const<BR>
-void Fl_Check_Browser::checked(int item, int b)</A></H4>
-The first form gets the current status of item <TT>item</TT>. The second form
-sets the check status of item <TT>item</TT> to <TT>b</TT>.
-
-<H4><A name=Fl_Check_Browser.clear>void Fl_Check_Browser::clear()</A></H4>
-Remove every item from the browser.
-
-<H4><A name=Fl_Check_Browser.nchecked>int Fl_Check_Browser::nchecked() const</A></H4>
-Returns how many items are currently checked.
-
-<H4><A name=Fl_Check_Browser.nitems>int Fl_Check_Browser::nitems() const</A></H4>
-Returns how many lines are in the browser. The last line number is equal to
-this.
-
-<H4><A name=Fl_Check_Browser.remove>int Fl_Check_Browser::remove(int n)</A></H4>
-Remove line <TT>n</TT> and make the browser one line shorter. Returns the
-number of lines left in the browser.
-
-<H4><A name=Fl_Check_Browser.set_checked>void Fl_Check_Browser::set_checked(int item)</A></H4>
-Equivalent to <TT>Fl_Check_Browser::checked(item, 1)</TT>.
-
-<H4><A name=Fl_Check_Browser.text>char *Fl_Check_Browser::text(int item) const</A></H4>
-Return a pointer to an internal buffer holding item <TT>item</TT>'s text.
-
-<H4><A name=Fl_Check_Browser.value>int Fl_Check_Browser::value() const</A></H4>
-Returns the index of the currently selected item.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Check_Button.html b/documentation/Fl_Check_Button.html
deleted file mode 100644
index 2ad4a5641..000000000
--- a/documentation/Fl_Check_Button.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Check_Button</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Check_Button>class Fl_Check_Button</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Button.html#Fl_Button>Fl_Button</A>
- |
- +----<B>Fl_Check_Button</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Check_Button.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
-Buttons generate callbacks when they are clicked by the user. You
-control exactly when and how by changing the values for <TT>type()</TT>
-and <TT>when()</TT>.
-<P ALIGN=CENTER><IMG SRC="Fl_Check_Button.gif" ALT="Fl_Check_Button widget"></P>
-<P>The <TT>Fl_Check_Button</TT> subclass display the &quot;on&quot; state by
-turning on a light, rather than drawing pushed in. The shape of the
-&quot;light&quot; is initially set to FL_DIAMOND_DOWN_BOX. The color of the
-light when on is controlled with <TT>selection_color()</TT>, which
-defaults to FL_RED.</P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Check_Button.Fl_Check_Button>Fl_Check_Button</A></LI>
-<LI><A href=#Fl_Check_Button.~Fl_Check_Button>~Fl_Check_Button</A></LI>
-</UL>
-<H4><A name=Fl_Check_Button.Fl_Check_Button>
-Fl_Check_Button::Fl_Check_Button(int x, int y, int w, int h, const char
-*label = 0)</A></H4>
- Creates a new <TT>Fl_Check_Button</TT> widget using the given
-position, size, and label string.
-<H4><A name=Fl_Check_Button.~Fl_Check_Button>
-Fl_Check_Button::~Fl_Check_Button()</A></H4>
- The destructor deletes the check button. </BODY></HTML>
diff --git a/documentation/Fl_Choice.html b/documentation/Fl_Choice.html
deleted file mode 100644
index c4c167637..000000000
--- a/documentation/Fl_Choice.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Choice</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Choice>class Fl_Choice</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Menu_.html#Fl_Menu_>Fl_Menu_</A>
- |
- +----<B>Fl_Choice</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Choice.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This is a button that when pushed pops up a menu (or hierarchy of
-menus) defined by an array of <A href=Fl_Menu_Item.html#Fl_Menu_Item><TT>
-Fl_Menu_Item</TT></A> objects. Motif calls this an OptionButton.
-<P>The only difference between this and a <A href=Fl_Menu_Button.html#Fl_Menu_Button>
-<TT>Fl_Menu_Button</TT></A> is that the name of the most recent chosen
-menu item is displayed inside the box, while the label is displayed
-outside the box. However, since the use of this is most often to
-control a single variable rather than do individual callbacks, some of
-the <TT>Fl_Menu_Button</TT> methods are redescribed here in those
-terms. </P>
-<P>When the user picks an item off the menu the <TT>value()</TT>
-is set to that item and then the item's callback is done with
-the menu_button as the <TT>Fl_Widget*</TT> argument. If the
-item does not have a callback the menu_button's callback is done
-instead. </P>
-<P>All three mouse buttons pop up the menu. The Forms behavior of the
-first two buttons to increment/decrement the choice is not implemented.
- This could be added with a subclass, however. </P>
-<P>The menu will also pop up in response to shortcuts indicated by
-putting a '&amp;' character in the <TT>label()</TT>. See <A href=Fl_Button.html#Fl_Button>
-<TT>Fl_Button</TT></A> for a description of this. </P>
-<P>Typing the <TT>shortcut()</TT> of any of the items will do exactly
-the same as when you pick the item with the mouse. The '&amp;' character in
-item names are only looked at when the menu is popped up, however. </P>
-<P ALIGN=CENTER><IMG src="choice.gif" ALT="Fl_Choice widget."></P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Choice.Fl_Choice>Fl_Choice</A></LI>
-<LI><A href=#Fl_Choice.~Fl_Choice>~Fl_Choice</A></LI>
-<LI><A href=#Fl_Choice.clear_changed>clear_changed</A></LI>
-<LI><A href=#Fl_Choice.changed>changed</A></LI>
-<LI><A href=#Fl_Choice.down_box>down_box</A></LI>
-<LI><A href=#Fl_Choice.set_changed>set_changed</A></LI>
-<LI><A href=#Fl_Choice.value>value</A></LI>
-</UL>
-<H4><A name=Fl_Choice.Fl_Choice>Fl_Choice::Fl_Choice(int x, int y, int
-w, int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Choice</TT> widget using the given position,
-size, and label string. The default boxtype is <TT>FL_UP_BOX</TT>.
-<P>The constructor sets <TT>menu()</TT> to <TT>NULL</TT>. See <A href=Fl_Menu_.html#Fl_Menu_>
-<TT>Fl_Menu_</TT></A> for the methods to set or change the menu. </P>
-<H4><A name=Fl_Choice.~Fl_Choice>virtual Fl_Choice::~Fl_Choice()</A></H4>
- The destructor removes the <TT>Fl_Choice</TT> widget and all of its
-menu items.
-<H4><A name=Fl_Choice.value>int Fl_Choice::value() const
-<BR> int Fl_Choice::value(int)
-<BR> int Fl_Choice::value(const Fl_Menu *)</A></H4>
- The value is the index into the <TT>Fl_Menu</TT> array of the last
-item chosen by the user. It is zero initially. You can set it as an
-integer, or set it with a pointer to a menu item. The set routines
-return non-zero if the new value is different than the old one.
- Changing it causes a <TT>redraw()</TT>.
-<H4><A name=Fl_Choice.changed>int Fl_Widget::changed() const</A></H4>
- This value is true if the user picks a different value. <I>It is
-turned off by <TT>value()</TT> and just before doing a callback (the
-callback can turn it back on if desired).</I>
-<H4><A name=Fl_Choice.set_changed>void Fl_Widget::set_changed()</A></H4>
- This method sets the <TT>changed()</TT> flag.
-<H4><A name=Fl_Choice.clear_changed>void Fl_Widget::clear_changed()</A></H4>
- This method clears the <TT>changed()</TT> flag.
-<H4><A name=Fl_Choice.down_box>Fl_Boxtype Fl_Choice::down_box() const
-<BR> void Fl_Choice::down_box(Fl_Boxtype b)</A></H4>
- The first form gets the current down box, which is used when the menu
-is popped up. The default down box type is <TT>FL_DOWN_BOX</TT> The
-second form sets the current down box type to <TT>b</TT>. </BODY></HTML>
diff --git a/documentation/Fl_Clock.html b/documentation/Fl_Clock.html
deleted file mode 100644
index 80f87cb8c..000000000
--- a/documentation/Fl_Clock.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Clock</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Clock>class Fl_Clock</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Clock_Output.html#Fl_Clock_Output>Fl_Clock_Output</A>
- |
- +----<B>Fl_Clock</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Clock.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This widget provides a round analog clock display and is provided for
-Forms compatibility. It installs a 1-second timeout callback using <A href="Fl.html#Fl.add_timeout">
-<TT>Fl::add_timeout()</TT></A>.
-<P ALIGN=CENTER><IMG src="clock.gif" ALT="Fl_Clock widget."> <IMG src="round_clock.gif" ALT="Fl_Clock widget."></P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Clock.Fl_Clock>Fl_Clock</A></LI>
-<LI><A href=#Fl_Clock.~Fl_Clock>~Fl_Clock</A></LI>
-<LI><A href=#Fl_Clock.hour>hour</A></LI>
-<LI><A href=#Fl_Clock.minute>minute</A></LI>
-<LI><A href=#Fl_Clock.second>second</A></LI>
-<LI><A href=#Fl_Clock.value>value</A></LI>
-</UL>
-<H4><A name=Fl_Clock.Fl_Clock>Fl_Clock::Fl_Clock(int x, int y, int w,
-int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Clock</TT> widget using the given position, size,
-and label string. The default boxtype is <TT>FL_NO_BOX</TT>.
-<H4><A name=Fl_Clock.~Fl_Clock>virtual Fl_Clock::~Fl_Clock()</A></H4>
- The destructor removes the clock.
-<H4><A name=Fl_Clock.hour>int Fl_Clock_Output::hour() const</A></H4>
- Returns the current hour (0 to 23).
-<H4><A name=Fl_Clock.minute>int Fl_Clock_Output::minute() const</A></H4>
- Returns the current minute (0 to 59).
-<H4><A name=Fl_Clock.second>int Fl_Clock_Output::second() const</A></H4>
- Returns the current second (0 to 60, 60 = leap second).
-<H4><A name=Fl_Clock.value>ulong Fl_Clock::value(void)</A></H4>
- Returns the displayed time in seconds since the UNIX epoch (January 1, 1970).
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Clock_Output.html b/documentation/Fl_Clock_Output.html
deleted file mode 100644
index 0428f2fdc..000000000
--- a/documentation/Fl_Clock_Output.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Clock_Output</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Clock_Output>class Fl_Clock_Output</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Widget.html#Fl_Widget>Fl_Widget</A>
- |
- +----<B>Fl_Clock_Output</B>
- |
- +----<A href=Fl_Clock.html#Fl_Clock>Fl_Clock</A>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Clock.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
-
-<P>This widget can be used to display a program-supplied time.
-The time shown on the clock is not updated.
-To display the current time, use <TT><A href=Fl_Clock.html#Fl_Clock>Fl_Clock</A></TT>
-instead.
-
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Clock_Output.Fl_Clock_Output>Fl_Clock_Output</A></LI>
-<LI><A href=#Fl_Clock_Output.~Fl_Clock_Output>~Fl_Clock_Output</A></LI>
-<LI><A href=#Fl_Clock_Output.hour>hour</A></LI>
-<LI><A href=#Fl_Clock_Output.minute>minute</A></LI>
-<LI><A href=#Fl_Clock_Output.second>second</A></LI>
-<LI><A href=#Fl_Clock_Output.value>value</A></LI>
-</UL>
-<H4><A name=Fl_Clock_Output.Fl_Clock_Output>Fl_Clock_Output::Fl_Clock_Output(int x, int y, int w,
-int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Clock_Output</TT> widget using the given position, size,
-and label string. The default boxtype is <TT>FL_NO_BOX</TT>.
-<H4><A name=Fl_Clock_Output.~Fl_Clock_Output>virtual Fl_Clock_Output::~Fl_Clock_Output()</A></H4>
- The destructor removes the clock.
-<H4><A name=Fl_Clock_Output.hour>int Fl_Clock_Output::hour() const</A></H4>
- Returns the current hour (0 to 23).
-<H4><A name=Fl_Clock_Output.minute>int Fl_Clock_Output::minute() const</A></H4>
- Returns the current minute (0 to 59).
-<H4><A name=Fl_Clock_Output.second>int Fl_Clock_Output::second() const</A></H4>
- Returns the current second (0 to 60, 60 = leap second).
-<H4><A name=Fl_Clock_Output.value>void Fl_Clock_Output::value(ulong v)
-<BR> void Fl_Clock_Output::value(int h, int m, int s)
-<BR> ulong Fl_Clock_Output::value(void)</A></H4>
- The first two forms of <TT>value</TT> set the displayed time to the
-given UNIX time value or specific hours, minutes, and seconds.
-<P>The third form of <TT>value</TT> returns the displayed time in
-seconds since the UNIX epoch (January 1, 1970). </P>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Color_Chooser.html b/documentation/Fl_Color_Chooser.html
deleted file mode 100644
index 4ffd985bb..000000000
--- a/documentation/Fl_Color_Chooser.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Color_Chooser</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Color_Chooser>class Fl_Color_Chooser</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Group.html#Fl_Group>Fl_Group</A>
- |
- +----<B>Fl_Color_Chooser</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Color_Chooser.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Color_Chooser</TT> widget provides a standard RGB color
-chooser. You can place any number of these into a panel of your own
-design. This widget contains the hue box, value slider, and rgb input
-fields from the above diagram (it does not have the color chips or the
-Cancel or OK buttons). The callback is done every time the user
-changes the rgb value. It is not done if they move the hue control in
-a way that produces the <I>same</I> rgb value, such as when saturation
-or value is zero.
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Color_Chooser.Fl_Color_Chooser>Fl_Color_Chooser</A></LI>
-<LI><A href=#Fl_Color_Chooser.~Fl_Color_Chooser>~Fl_Color_Chooser</A></LI>
-<LI><A href=#Fl_Color_Chooser.b>b</A></LI>
-<LI><A href=#Fl_Color_Chooser.g>g</A></LI>
-<LI><A href=#Fl_Color_Chooser.hsv2rgb>hsv2rgb</A></LI>
-<LI><A href=#Fl_Color_Chooser.hsv>hsv</A></LI>
-<LI><A href=#Fl_Color_Chooser.hue>hue</A></LI>
-<LI><A href=#Fl_Color_Chooser.rgb2hsv>rgb2hsv</A></LI>
-<LI><A href=#Fl_Color_Chooser.rgb>rgb</A></LI>
-<LI><A href=#Fl_Color_Chooser.r>r</A></LI>
-<LI><A href=#Fl_Color_Chooser.saturation>saturation</A></LI>
-<LI><A href=#Fl_Color_Chooser.value>value</A></LI>
-</UL>
-<H4><A name=Fl_Color_Chooser.Fl_Color_Chooser>
-Fl_Color_Chooser::Fl_Color_Chooser(int x, int y, int w, int h, const
-char *label = 0)</A></H4>
- Creates a new <TT>Fl_Color_Chooser</TT> widget using the given
-position, size, and label string. The recommended dimensions are
-200x95. The color is initialized to black.
-<H4><A name=Fl_Color_Chooser.~Fl_Color_Chooser>virtual
-Fl_Color_Chooser::~Fl_Color_Chooser()</A></H4>
- The destructor removes the color chooser and all of its controls.
-<H4><A name=Fl_Color_Chooser.hue>double Fl_Color_Chooser::hue() const</A>
-</H4>
- Return the current hue. 0 &lt;= hue &lt; 6. Zero is red, one is yellow,
-two is green, etc. <I>This value is convienent for the internal
-calculations - some other systems consider hue to run from zero to one,
-or from 0 to 360.</I>
-<H4><A name=Fl_Color_Chooser.saturation>double
-Fl_Color_Chooser::saturation() const</A></H4>
- Returns the saturation. 0 &lt;= saturation &lt;= 1.
-<H4><A name=Fl_Color_Chooser.value>double Fl_Color_Chooser::value()
-const</A></H4>
- Returns the value/brightness. 0 &lt;= value &lt;= 1.
-<H4><A name=Fl_Color_Chooser.r>double Fl_Color_Chooser::r() const</A></H4>
- Returns the current red value. 0 &lt;= r &lt;= 1.
-<H4><A name=Fl_Color_Chooser.g>double Fl_Color_Chooser::g() const</A></H4>
- Returns the current green value. 0 &lt;= g &lt;= 1.
-<H4><A name=Fl_Color_Chooser.b>double Fl_Color_Chooser::b() const</A></H4>
- Returns the current blue value. 0 &lt;= b &lt;= 1.
-<H4><A name=Fl_Color_Chooser.rgb>int Fl_Color_Chooser::rgb(double,
-double, double)</A></H4>
- Sets the current rgb color values. Does not do the callback. Does
-not clamp (but out of range values will produce psychedelic effects in
-the hue selector).
-<H4><A name=Fl_Color_Chooser.hsv>int
-Fl_Color_Chooser::hsv(double,double,double)</A></H4>
- Set the hsv values. The passed values are clamped (or for hue,
-modulus 6 is used) to get legal values. Does not do the callback.
-<H4><A name=Fl_Color_Chooser.hsv2rgb>static void
-Fl_Color_Chooser::hsv2rgb(double, double, double, double&amp;, double&amp;,
-double&amp;)</A></H4>
- This <I>static</I> method converts HSV colors to RGB colorspace.
-<H4><A name=Fl_Color_Chooser.rgb2hsv>static void
-Fl_Color_Chooser::rgb2hsv(double, double, double, double&amp;, double&amp;,
-double&amp;)</A></H4>
- This <I>static</I> method converts RGB colors to HSV colorspace. </BODY>
-</HTML>
diff --git a/documentation/Fl_Counter.html b/documentation/Fl_Counter.html
deleted file mode 100644
index 3aab3483e..000000000
--- a/documentation/Fl_Counter.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Counter</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Counter>class Fl_Counter</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Valuator.html#Fl_Valuator>Fl_Valuator</A>
- |
- +----<B>Fl_Counter</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Counter.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Counter</TT> widget is provided for forms compatibility.
- It controls a single floating point value.
-<P ALIGN=CENTER><IMG src="counter.gif" ALT="Fl_Counter widget."></P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Counter.Fl_Counter>Fl_Counter</A></LI>
-<LI><A href=#Fl_Counter.~Fl_Counter>~Fl_Counter</A></LI>
-<LI><A href=#Fl_Counter.lstep>lstep</A></LI>
-<LI><A href=#Fl_Counter.type>type</A></LI>
-</UL>
-<H4><A name=Fl_Counter.Fl_Counter>Fl_Counter::Fl_Counter(int x, int y,
-int w, int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Counter</TT> widget using the given position,
-size, and label string. The default type is <TT>FL_NORMAL_COUNTER</TT>.
-<H4><A name=Fl_Counter.~Fl_Counter>virtual Fl_Counter::~Fl_Counter()</A></H4>
-Destroys the valuator.
-<H4><A name=Fl_Counter.lstep>double Fl_Counter::lstep() const</A></H4>
-Set the increment for the double-arrow buttons. The default
-value is 1.0.
-<H4><A name=Fl_Counter.type>type(uchar)</A></H4>
- Sets the type of counter:
-<UL>
-<LI><TT>FL_NORMAL_COUNTER</TT> - Displays a counter with 4 arrow
- buttons. </LI>
-<LI><TT>FL_SIMPLE_COUNTER</TT> - Displays a counter with only 2 arrow
-buttons. </LI>
-</UL>
-</BODY></HTML>
diff --git a/documentation/Fl_Dial.html b/documentation/Fl_Dial.html
deleted file mode 100644
index 0c6e42595..000000000
--- a/documentation/Fl_Dial.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Dial</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Dial>class Fl_Dial</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Valuator.html#Fl_Valuator>Fl_Valuator</A>
- |
- +----<B>Fl_Dial</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Dial.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Dial</TT> widget provides a circular dial to control a
-single floating point value.
-<P ALIGN=CENTER><IMG src="dial.gif" ALT="Fl_Dial widget."></P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Dial.Fl_Dial>Fl_Dial</A></LI>
-<LI><A href=#Fl_Dial.~Fl_Dial>~Fl_Dial</A></LI>
-<LI><A href=#Fl_Dial.angles>angle1</A></LI>
-<LI><A href=#Fl_Dial.angles>angle2</A></LI>
-<LI><A href=#Fl_Dial.angles>angles</A></LI>
-<LI><A href=#Fl_Dial.type>type</A></LI>
-</UL>
-<H4><A name=Fl_Dial.Fl_Dial>Fl_Dial::Fl_Dial(int x, int y, int w, int
-h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Dial</TT> widget using the given position, size,
-and label string. The default type is <TT>FL_NORMAL_DIAL</TT>.
-<H4><A name=Fl_Dial.~Fl_Dial>virtual Fl_Dial::~Fl_Dial()</A></H4>
- Destroys the valuator.
-
-<H4>
-<A name=Fl_Dial.angles>
-short Fl_Dial::angle1() const;<br>
-void Fl_Dial::angle1(short);<br>
-short Fl_Dial::angle2() const;<br>
-void Fl_Dial::angle2(short);<br>
-void Fl_Dial::angles(short a, short b);
-</A>
-</H4>
-
-Sets the angles used for the minimum and maximum values. The default
-values are 45 and 315 (0 degrees is straight down and the angles
-progress clockwise). Normally angle1 is less than angle2, but if you
-reverse them the dial moves counter-clockwise.
-
-<H4><A name=Fl_Dial.type>type(uchar)</A></H4>
- Sets the type of the dial to:
-<UL>
-<LI><TT>FL_NORMAL_DIAL</TT> - Draws a normal dial with a knob. </LI>
-<LI><TT>FL_LINE_DIAL</TT> - Draws a dial with a line. </LI>
-<LI><TT>FL_FILL_DIAL</TT> - Draws a dial with a filled arc. </LI>
-</UL>
-</BODY></HTML>
diff --git a/documentation/Fl_Double_Window.html b/documentation/Fl_Double_Window.html
deleted file mode 100644
index 68f9e5628..000000000
--- a/documentation/Fl_Double_Window.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Double_Window</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Double_Window>class Fl_Double_Window</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Window.html#Fl_Window>Fl_Window</A>
- |
- +----<B>Fl_Double_Window</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Double_Window.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Double_Window</TT> class provides a double-buffered window.
- If possible this will use the X double buffering extension (Xdbe). If
-not, it will draw the window data into an off-screen pixmap, and then
-copy it to the on-screen window.
-<P>It is highly recommended that you put the following code before the
-first <TT>show()</TT> of <I>any</I> window in your program: </P>
-<UL>
-<PRE>
-Fl::visual(FL_DOUBLE|FL_INDEX)
-</PRE>
-</UL>
- This makes sure you can use Xdbe on servers where double buffering
-does not exist for every visual.
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Double_Window.Fl_Double_Window>Fl_Double_Window</A></LI>
-<LI><A href=#Fl_Double_Window.~Fl_Double_Window>~Fl_Double_Window</A></LI>
-</UL>
-<H4><A name=Fl_Double_Window.Fl_Double_Window>
-Fl_Double_Window::Fl_Double_Window(int w, int h, const
-char *label = 0)<br>
-Fl_Double_Window::Fl_Double_Window(int x, int y, int w, int h, const
-char *label = 0)</A></H4>
-<p>Creates a new <TT>Fl_Double_Window</TT> widget using the given
-position, size, and label (title) string.</p>
-<H4><A name=Fl_Double_Window.~Fl_Double_Window>virtual
-Fl_Double_Window::~Fl_Double_Window()</A></H4>
- The destructor <I>also deletes all the children</I>. This allows a
-whole tree to be deleted at once, without having to keep a pointer to
-all the children in the user code.
-</BODY></HTML>
diff --git a/documentation/Fl_End.html b/documentation/Fl_End.html
deleted file mode 100644
index 3a7f37bd3..000000000
--- a/documentation/Fl_End.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_End</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_End>class Fl_End</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<B>Fl_End</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Group.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
-This is a dummy class that allows you to end a <A
-href=Fl_Group.html#Fl_Group>Fl_Group</A> in a constructor list of a
-class:
-<UL>
-<PRE>class MyClass {
- Fl_Group group;
- Fl_Button button_in_group;
- Fl_End end;
- Fl_Button button_outside_group;
- MyClass();
-};
-MyClass::MyClass() :
- group(10,10,100,100),
- button_in_group(20,20,60,30),
- end(),
- button_outside_group(10,120,60,30)
-{}</PRE>
-</UL>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_End.Fl_End>Fl_End</A></LI>
-</UL>
-<H4><A name=Fl_End.Fl_End>Fl_End::Fl_End</A></H4>
- The constructor does <TT>Fl_Group::current()-&gt;end()</TT>. </BODY></HTML>
diff --git a/documentation/Fl_File_Browser.html b/documentation/Fl_File_Browser.html
deleted file mode 100644
index c53352d4d..000000000
--- a/documentation/Fl_File_Browser.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_File_Browser</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-<H2><A NAME="Fl_File_Browser">class Fl_File_Browser</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A HREF="Fl_Browser.html#Fl_Browser">Fl_Browser</A>
- |
- +----<B>Fl_File_Browser</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_File_Browser.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <CODE>Fl_File_Browser</CODE> widget displays a list of filenames,
-optionally with file-specific icons.
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A HREF="#Fl_File_Browser.Fl_File_Browser">Fl_File_Browser</A>
- <LI><A HREF="#Fl_File_Browser.~Fl_File_Browser">~Fl_File_Browser</A>
- <LI><A HREF="#Fl_File_Browser.iconsize">iconsize</A>
- <LI><A HREF="#Fl_File_Browser.filter">filter</A>
- <LI><A HREF="#Fl_File_Browser.filetype">filetype</A>
- <LI><A HREF="#Fl_File_Browser.load">load</A>
-
-</UL>
-
-<H4><A NAME="Fl_File_Browser.Fl_File_Browser">Fl_File_Browser(int xx, int yy, int ww, int hh, const char *l = 0)</A></H4>
-
-<P>The constructor creates the <CODE>Fl_File_Browser</CODE> widget at the specified
-position and size.
-
-<H4><A NAME="Fl_File_Browser.~Fl_File_Browser">~Fl_File_Browser()</A></H4>
-
-<P>The destructor destroys the widget and frees all memory that has been
-allocated.
-
-<H4><A NAME="Fl_File_Browser.iconsize">void iconsize(uchar s)<BR>
-uchar iconsize() const</A></H4>
-
-<P>Sets or gets the size of the icons. The default size is 20 pixels.
-
-<H4><A NAME="Fl_File_Browser.filter">void filter(const char *pattern)<BR>
-const char *filter() const</A></H4>
-
-<P>Sets or gets the filename filter. The pattern matching uses
-the <A
-HREF="functions.html#fl_filename_match"><CODE>fl_filename_match()</CODE></A>
-function in FLTK.
-
-<H4><A NAME="Fl_File_Browser.filetype">void filetype(int type)<BR>
-int filetype() const</A></H4>
-
-<P>Sets or gets the file browser type, <CODE>FILES</CODE> or
-<CODE>DIRECTORIES</CODE>. When set to <CODE>FILES</CODE>, both
-files and directories are shown. Otherwise only directories are
-shown.
-
-<H4><A NAME="Fl_File_Browser.load">int load(const char *directory, Fl_File_Sort_F *sort = fl_numeric_sort)</A></H4>
-
-<P>Loads the specified directory into the browser. If icons have been
-loaded then the correct icon is associated with each file in the list.
-
-<P>The <tt>sort</tt> argument specifies a sort function to be used with
-<A HREF="functions.html#fl_filename_list"><tt>fl_filename_list()</tt></A>.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_File_Chooser.html b/documentation/Fl_File_Chooser.html
deleted file mode 100644
index 4b66137e9..000000000
--- a/documentation/Fl_File_Chooser.html
+++ /dev/null
@@ -1,303 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_File_Chooser</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-<H2><A NAME="Fl_File_Chooser">class Fl_File_Chooser</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<B>Fl_File_Chooser</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_File_Chooser.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <CODE>Fl_File_Chooser</CODE> widget displays a standard file selection
-dialog that supports various selection modes.
-
-<CENTER><IMG SRC="Fl_File_Chooser.jpg" WIDTH="498" HEIGHT="408" ALT="Fl_File_Chooser widget"></CENTER>
-
-<P>The <CODE>Fl_File_Chooser</CODE> class also exports several static values
-that may be used to localize or customize the appearance of all file chooser
-dialogs:
-
-<CENTER><TABLE BORDER="1">
-<TR>
- <TH>Member</TH>
- <TH>Default value</TH>
-</TR>
-<TR>
- <TD><TT>add_favorites_label</TT></TD>
- <TD>"Add to Favorites"</TD>
-</TR>
-<TR>
- <TD><TT>all_files_label</TT></TD>
- <TD>"All Files (*)"</TD>
-</TR>
-<TR>
- <TD><TT>custom_filter_label</TT></TD>
- <TD>"Custom Filter"</TD>
-</TR>
-<TR>
- <TD><TT>existing_file_label</TT></TD>
- <TD>"Please choose an existing file!"</TD>
-</TR>
-<TR>
- <TD><TT>favorites_label</TT></TD>
- <TD>"Favorites"</TD>
-</TR>
-<TR>
- <TD><TT>filename_label</TT></TD>
- <TD>"Filename:"</TD>
-</TR>
-<TR>
- <TD><TT>filesystems_label</TT></TD>
- <TD>"My Computer" (WIN32)<BR>
- "File Systems" (all others)</TD>
-</TR>
-<TR>
- <TD><TT>manage_favorites_label</TT></TD>
- <TD>"Manage Favorites"</TD>
-</TR>
-<TR>
- <TD><TT>new_directory_label</TT></TD>
- <TD>"New Directory?"</TD>
-</TR>
-<TR>
- <TD><TT>new_directory_tooltip</TT></TD>
- <TD>"Create a new directory."</TD>
-</TR>
-<TR>
- <TD><TT>preview_label</TT></TD>
- <TD>"Preview"</TD>
-</TR>
-<TR>
- <TD><TT>save_label</TT></TD>
- <TD>"Save"</TD>
-</TR>
-<TR>
- <TD><TT>show_label</TT></TD>
- <TD>"Show:"</TD>
-</TR>
-<TR>
- <TD><TT>sort</TT></TD>
- <TD>fl_numericsort</TD>
-</TR>
-</TABLE></CENTER>
-
-<P>The <TT>sort</TT> member specifies the sort function that is
-used when loading the contents of a directory.
-
-<H3>Public Members</H3>
-
-<P>The <CODE>Fl_File_Chooser</CODE> class exports the "new
-directory" (<CODE>newButton</CODE>) and "preview"
-(<CODE>previewButton</CODE>) widgets so that application
-developers can control their appearance and use. For more
-complex customization, consider copying the FLTK file chooser
-code and changing it accordingly.
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A HREF="#Fl_File_Chooser.Fl_File_Chooser">Fl_File_Chooser</A>
- <LI><A HREF="#Fl_File_Chooser.~Fl_File_Chooser">~Fl_File_Chooser</A>
- <LI><A HREF="#Fl_File_Chooser.add_extra">add_extra</A>
- <LI><A HREF="#Fl_File_Chooser.color">color</A>
- <LI><A HREF="#Fl_File_Chooser.count">count</A>
- <LI><A HREF="#Fl_File_Chooser.directory">directory</A>
- <LI><A HREF="#Fl_File_Chooser.filter">filter</A>
- <LI><A HREF="#Fl_File_Chooser.filter_value">filter_value</A>
- <LI><A HREF="#Fl_File_Chooser.hide">hide</A>
- <LI><A HREF="#Fl_File_Chooser.iconsize">iconsize</A>
- <LI><A HREF="#Fl_File_Chooser.label">label</A>
- <LI><A HREF="#Fl_File_Chooser.ok_label">ok_label</A>
- <LI><A HREF="#Fl_File_Chooser.preview">preview</A>
- <LI><A HREF="#Fl_File_Chooser.rescan">rescan</A>
- <LI><A HREF="#Fl_File_Chooser.show">show</A>
- <LI><A HREF="#Fl_File_Chooser.textcolor">textcolor</A>
- <LI><A HREF="#Fl_File_Chooser.textfont">textfont</A>
- <LI><A HREF="#Fl_File_Chooser.textsize">textsize</A>
- <LI><A HREF="#Fl_File_Chooser.type">type</A>
- <LI><A HREF="#Fl_File_Chooser.value">value</A>
- <LI><A HREF="#Fl_File_Chooser.visible">visible</A>
-
-</UL>
-
-<H4><A NAME="Fl_File_Chooser.Fl_File_Chooser">Fl_File_Chooser(const char *pathname, const char *pattern,
-int type, const char *title)</A></H4>
-
-<P>The constructor creates the <CODE>Fl_File_Chooser</CODE> dialog pictured
-above. The <CODE>pathname</CODE> argument can be a directory name or a
-complete file name (in which case the corresponding file is highlighted
-in the list and in the filename input field.)
-
-<P>The <CODE>pattern</CODE> argument can be a <CODE>NULL</CODE>
-string or <CODE>"*"</CODE> to list all files, or it can be a
-series of descriptions and filter strings separated by tab
-characters (<TT>\t</TT>). The format of filters is either
-"Description text (patterns)" or just "patterns". A file chooser
-that provides filters for HTML and image files might look like:
-
-<UL><PRE>
-"HTML Files (*.html)\tImage Files (*.{bmp,gif,jpg,png})"
-</PRE></UL>
-
-<P>The file chooser will automatically add the "All Files (*)"
-pattern to the end of the string you pass if you do not provide
-one. The first filter in the string is the default filter.
-
-<P>See the FLTK documentation on <A
-HREF="functions.html#fl_filename_match"><CODE>fl_filename_match()</CODE></A>
-for the kinds of pattern strings that are supported.
-
-<P>The <CODE>type</CODE> argument can be one of the following:
-
-<UL>
- <LI><CODE>SINGLE</CODE> - allows the user to select a
- single, existing file.
- <LI><CODE>MULTI</CODE> - allows the user to select one
- or more existing files.
- <LI><CODE>CREATE</CODE> - allows the user to select a
- single, existing file or specify a new filename.
- <LI><CODE>DIRECTORY</CODE> - allows the user to select a
- single, existing directory.
-</UL>
-
-<P>The <CODE>title</CODE> argument is used to set the title bar text for the
-<CODE>Fl_File_Chooser</CODE> window.
-
-<H4><A NAME="Fl_File_Chooser.~Fl_File_Chooser">~Fl_File_Chooser()</A></H4>
-
-<P>Destroys the widget and frees all memory used by it.
-
-<H4><A NAME="Fl_File_Chooser.color">void color(Fl_Color c)<BR>
-Fl_Color color()</A></H4>
-
-<P>Sets or gets the background color of the <CODE>Fl_File_Browser</CODE> list.
-
-<H4><A NAME="Fl_File_Chooser.count">int count()</A></H4>
-
-<P>Returns the number of selected files.
-
-<H4><A NAME="Fl_File_Chooser.directory">void directory(const char *pathname)<BR>
-const char *directory()</A></H4>
-
-<P>Sets or gets the current directory.
-
-<H4><A NAME="Fl_File_Chooser.filter">void filter(const char *pattern)<BR>
-const char *filter()</A></H4>
-
-<P>Sets or gets the current filename filter patterns. The filter
-patterns use <A
-href="functions.html#fl_filename_match"><tt>fl_filename_match()</tt></A>.
-Multiple patterns can be used by separating them with tabs, like
-"*.jpg\t*.png\t*.gif\t*". In addition, you can provide
-human-readable labels with the patterns inside parenthesis, like
-"JPEG&nbsp;Files&nbsp;(*.jpg)\tPNG&nbsp;Files&nbsp;(*.png)\tGIF&nbsp;Files&nbsp;(*.gif)\tAll&nbsp;Files&nbsp;(*)".
-Use <tt>filter(NULL)</tt> to show all files.</p>
-
-<H4><A NAME="Fl_File_Chooser.filter_value">void filter_value(int f)<BR>
-int filter_value()</A></H4>
-
-<P>Sets or gets the current filename filter selection.
-
-<H4><A NAME="Fl_File_Chooser.hide">void hide()</A></H4>
-
-<P>Hides the <CODE>Fl_File_Chooser</CODE> window.
-
-<H4><A NAME="Fl_File_Chooser.iconsize">void iconsize(uchar s)<BR>
-uchar iconsize()</A></H4>
-
-<P>Sets or gets the size of the icons in the <CODE>Fl_File_Browser</CODE>. By
-default the icon size is set to 1.5 times the <CODE>textsize()</CODE>.
-
-<H4><A NAME="Fl_File_Chooser.label">void label(const char *l)<BR>
-const char *label()</A></H4>
-
-<P>Sets or gets the title bar text for the <CODE>Fl_File_Chooser</CODE>.
-
-<H4><A NAME="Fl_File_Chooser.ok_label">void ok_label(const char *l)<BR>
-const char *ok_label()</A></H4>
-
-<P>Sets or gets the label for the "ok" button in the
-<CODE>Fl_File_Chooser</CODE>.
-
-<H4><A NAME="Fl_File_Chooser.preview">void preview(int e)<BR>
-int preview()</A></H4>
-
-<P>The first form enables or disables the preview box in the file chooser.
-The second form returns the current state of the preview box.
-
-<H4><A NAME="Fl_File_Chooser.rescan">void rescan()</A></H4>
-
-<P>Reloads the current directory in the <CODE>Fl_File_Browser</CODE>.
-
-<H4><A NAME="Fl_File_Chooser.show">void show()</A></H4>
-
-<P>Shows the <CODE>Fl_File_Chooser</CODE> window.
-
-<H4><A NAME="Fl_File_Chooser.textcolor">void textcolor(Fl_Color c)<BR>
-Fl_Color textcolor()</A></H4>
-
-<P>Sets or gets the current <CODE>Fl_File_Browser</CODE> text color.
-
-<H4><A NAME="Fl_File_Chooser.textfont">void textfont(uchar f)<BR>
-uchar textfont()</A></H4>
-
-<P>Sets or gets the current <CODE>Fl_File_Browser</CODE> text font.
-
-<H4><A NAME="Fl_File_Chooser.textsize">void textsize(uchar s)<BR>
-uchar textsize()</A></H4>
-
-<P>Sets or gets the current <CODE>Fl_File_Browser</CODE> text size.
-
-<H4><A NAME="Fl_File_Chooser.type">void type(int t)<BR>
-int type()</A></H4>
-
-<P>Sets or gets the current type of <CODE>Fl_File_Chooser</CODE>.
-
-<H4><A NAME="Fl_File_Chooser.value">const char *value(const char *pathname)<BR>
-const char *value(int file)<BR>
-const char *value()</A></H4>
-
-<P>Sets or gets the current value of the selected file.
-
-<P>In the second form, <i>file</i> is a <i>1</i>-based index into a list of
-file names. The number of selected files is returned by
-<CODE>Fl_File_Chooser::count()</CODE>.
-
-<P>This sample code loops through all selected files:
-<PRE>
-// Get list of filenames user selected from a MULTI chooser
-for ( int t=1; t&lt;=chooser-&gt;count(); t++ ) {
- const char *filename = chooser-&gt;value(t);
- ..
-}
-</PRE>
-
-<H4><A NAME="Fl_File_Chooser.visible">int visible()</A></H4>
-
-<P>Returns 1 if the <CODE>Fl_File_Chooser</CODE> window is visible.
-
-<H4><A NAME="Fl_File_Chooser.add_extra">Fl_Widget* add_extra(Fl_Widget*)</A></H4>
-<P>Adds extra widget at the bottom of <CODE>Fl_File_Chooser</CODE> window.
- Returns pointer for previous extra widget or <CODE>NULL</CODE> if not set previously.
- If argument is <CODE>NULL</CODE> only remove previous extra widget.<BR>
- <I>NOTE! <CODE>Fl_File_Chooser</CODE> doesn't delete extra widget in destructor! To prevent memory leakage don't forget
- delete unused extra widgets by yuorself.</I>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_File_Icon.html b/documentation/Fl_File_Icon.html
deleted file mode 100644
index 53b7ff8f6..000000000
--- a/documentation/Fl_File_Icon.html
+++ /dev/null
@@ -1,156 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_File_Icon</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-<H2><A NAME="Fl_File_Icon">class Fl_File_Icon</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<B>Fl_File_Icon</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_File_Icon.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <CODE>Fl_File_Icon</CODE> class manages icon images that can be
-used as labels in other widgets and as icons in the <CODE>FileBrowser</CODE>
-widget.
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A HREF="#Fl_File_Icon.Fl_File_Icon">Fl_File_Icon</A>
- <LI><A HREF="#Fl_File_Icon.~Fl_File_Icon">~Fl_File_Icon</A>
- <LI><A HREF="#Fl_File_Icon.add">add</A>
- <LI><A HREF="#Fl_File_Icon.add_color">add_color</A>
- <LI><A HREF="#Fl_File_Icon.add_vertex">add_vertex</A>
- <LI><A HREF="#Fl_File_Icon.clear">clear</A>
- <LI><A HREF="#Fl_File_Icon.draw">draw</A>
- <LI><A HREF="#Fl_File_Icon.find">find</A>
- <LI><A HREF="#Fl_File_Icon.first">first</A>
- <LI><A HREF="#Fl_File_Icon.label">label</A>
- <LI><A HREF="#Fl_File_Icon.labeltype">labeltype</A>
- <LI><A HREF="#Fl_File_Icon.load_fti">load_fti</A>
- <LI><A HREF="#Fl_File_Icon.load">load</A>
- <LI><A HREF="#Fl_File_Icon.load_system_icons">load_system_icons</A>
- <LI><A HREF="#Fl_File_Icon.load_xpm">load_xpm</A>
- <LI><A HREF="#Fl_File_Icon.pattern">pattern</A>
- <LI><A HREF="#Fl_File_Icon.size">size</A>
- <LI><A HREF="#Fl_File_Icon.type">type</A>
- <LI><A HREF="#Fl_File_Icon.value">value</A>
-
-</UL>
-
-<H4><A NAME="Fl_File_Icon.Fl_File_Icon">Fl_File_Icon()</A></H4>
-
-<P>The constructor creates a new <CODE>Fl_File_Icon</CODE> with the specified
-information.
-
-<H4><A NAME="Fl_File_Icon.~Fl_File_Icon">~Fl_File_Icon()</A></H4>
-
-<P>The destructor destroys the icon and frees all memory that has been
-allocated for it.
-
-<H4><A NAME="Fl_File_Icon.add">short *add(short d)</A></H4>
-
-<P>Adds a keyword value to the icon array, returning a pointer to it.
-
-<H4><A NAME="Fl_File_Icon.add_color">short *add_color(short c)</A></H4>
-
-<P>Adds a color value to the icon array, returning a pointer to it.
-
-<H4><A NAME="Fl_File_Icon.add_vertex">short *add_vertex(int x, int y)<BR>
-short *add_vertex(float x, float y)</A></H4>
-
-<P>Adds a vertex value to the icon array, returning a pointer to it.
-The integer version accepts coordinates from 0 to 10000, while the
-floating point version goes from 0.0 to 1.0. The origin (0.0) is in
-the lower-lefthand corner of the icon.
-
-<H4><A NAME="Fl_File_Icon.clear">void clear()</A></H4>
-
-<P>Clears all icon data from the icon.
-
-<H4><A NAME="Fl_File_Icon.draw">void draw(int x, int y, int w, int h, Fl_Color ic, int active = 1)</A></H4>
-
-<P>Draws the icon in the indicated area.
-
-<H4><A NAME="Fl_File_Icon.find">static Fl_File_Icon *find(const char *filename, int filetype = ANY);</A></H4>
-
-<P>Finds an icon that matches the given filename and file type.
-
-<H4><A NAME="Fl_File_Icon.first">static Fl_File_Icon *first()</A></H4>
-
-<P>Returns a pointer to the first icon in the list.
-
-<H4><A NAME="Fl_File_Icon.label">void label(Fl_Widget *w)</A></H4>
-
-<P>Applies the icon to the widget, registering the <CODE>Fl_File_Icon</CODE>
-label type as needed.
-
-<H4><A NAME="Fl_File_Icon.labeltype">static void labeltype(const Fl_Label *o, int x, int y, int w, int h, Fl_Align a)</A></H4>
-
-<P>The labeltype function for icons.
-
-<H4><A NAME="Fl_File_Icon.load">void load(const char *f)</A></H4>
-
-<P>Loads the specified icon image. The format is deduced from the filename.
-
-<H4><A NAME="Fl_File_Icon.load_fti">void load_fti(const char *fti)</A></H4>
-
-<P>Loads an SGI icon file.
-
-<H4><A NAME="Fl_File_Icon.load_system_icons">static void load_system_icons(void)</A></H4>
-
-<P>Loads all system-defined icons. This call is useful when using the
-<CODE>FileChooser</CODE> widget and should be used when the application
-starts:
-
-<UL><PRE>
-Fl_File_Icon::load_system_icons();
-</PRE></UL>
-
-<H4><A NAME="Fl_File_Icon.load_xpm">void load_xpm(const char *xpm)</A></H4>
-
-<P>Loads an XPM icon file.
-
-<H4><A NAME="Fl_File_Icon.pattern">const char *pattern()</A></H4>
-
-<P>Returns the filename matching pattern for the icon.
-
-<H4><A NAME="Fl_File_Icon.size">int size()</A></H4>
-
-<P>Returns the number of words of data used by the icon.
-
-<H4><A NAME="Fl_File_Icon.type">int type()</A></H4>
-
-<P>Returns the filetype associated with the icon, which can be one of the
-following:
-
-<UL>
- <LI><CODE>Fl_File_Icon::ANY</CODE>, any kind of file.
- <LI><CODE>Fl_File_Icon::PLAIN</CODE>, plain files.
- <LI><CODE>Fl_File_Icon::FIFO</CODE>, named pipes.
- <LI><CODE>Fl_File_Icon::DEVICE</CODE>, character and block devices.
- <LI><CODE>Fl_File_Icon::LINK</CODE>, symbolic links.
- <LI><CODE>Fl_File_Icon::DIRECTORY</CODE>, directories.
-</UL>
-
-<H4><A NAME="Fl_File_Icon.value">short *value()</A></H4>
-
-<P>Returns the data array for the icon.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_File_Input.html b/documentation/Fl_File_Input.html
deleted file mode 100644
index 52f67889d..000000000
--- a/documentation/Fl_File_Input.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_File_Input</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-<H2><A name="Fl_File_Input">class Fl_File_Input</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href="Fl_Input.html#Fl_Input">Fl_Input</A>
- |
- +----<B>Fl_File_Input</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_File_Input.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>This widget displays a pathname in a text input field. A navigation bar
-located above the input field allows the user to navigate upward in the
-directory tree.
-
-<CENTER><IMG src="Fl_File_Input.gif" ALT="Fl_File_Input widget."></CENTER>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_File_Input.Fl_File_Input">Fl_File_Input</A></LI>
- <LI><A href="#Fl_File_Input.~Fl_File_Input">~Fl_File_Input</A></LI>
- <LI><A href="#Fl_File_Input.down_box">down_box</A></LI>
-
-</UL>
-
-<H4><A name="Fl_File_Input.Fl_File_Input">Fl_File_Input::Fl_File_Input(int x, int y, int
-w, int h, const char *label = 0)</A></H4>
-
-<P>Creates a new <TT>Fl_File_Input</TT> widget using the given position,
-size, and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>.
-
-<H4><A name="Fl_File_Input.~Fl_File_Input">virtual Fl_File_Input::~Fl_File_Input()</A></H4>
-
-<P>Destroys the widget and any value associated with it.
-
-<H4><A name="Fl_File_Input.down_box">Fl_Boxtype Fl_File_Input::down_box() const
-<BR>void Fl_File_Input::down_box(Fl_Boxtype b)</A></H4>
-
-<P>Gets or sets the box type to use for the navigation bar.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Float_Input.html b/documentation/Fl_Float_Input.html
deleted file mode 100644
index 20bbc1dc4..000000000
--- a/documentation/Fl_Float_Input.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Float_Input</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Float_Input>class Fl_Float_Input</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Input.html#Fl_Input>Fl_Input</A>
- |
- +----<B>Fl_Float_Input</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Float_Input.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Float_Input</TT> class is a subclass of <TT>Fl_Input</TT>
- that only allows the user to type floating point numbers (sign,
- digits, decimal point, more digits, 'E' or 'e', sign, digits).
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Float_Input.Fl_Float_Input>Fl_Float_Input</A></LI>
-<LI><A href=#Fl_Float_Input.~Fl_Float_Input>~Fl_Float_Input</A></LI>
-</UL>
-<H4><A name=Fl_Float_Input.Fl_Float_Input>
-Fl_Float_Input::Fl_Float_Input(int x, int y, int w, int h, const char
-*label = 0)</A></H4>
- Creates a new <TT>Fl_Float_Input</TT> widget using the given position,
-size, and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>.
-<H4><A name=Fl_Float_Input.~Fl_Float_Input>virtual
-Fl_Float_Input::~Fl_Float_Input()</A></H4>
- Destroys the widget and any value associated with it. </BODY></HTML>
diff --git a/documentation/Fl_Free.html b/documentation/Fl_Free.html
deleted file mode 100644
index 6fe48a48a..000000000
--- a/documentation/Fl_Free.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Free</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Free>class Fl_Free</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Widget.html#Fl_Widget>Fl_Widget</A>
- |
- +----<B>Fl_Free</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Free.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- Emulation of the Forms &quot;free&quot; widget. This emulation allows the free
-demo to run, and appears to be useful for porting programs written in
-Forms which use the free widget or make subclasses of the Forms
-widgets.
-<P>There are five types of free, which determine when the handle
-function is called: </P>
-<UL>
-<PRE>
-#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
-</PRE>
-</UL>
-<P>An FL_INPUT_FREE accepts FL_FOCUS events. A FL_CONTINUOUS_FREE sets
-a timeout callback 100 times a second and provides a FL_STEP event,
-this has obvious detrimental effects on machine performance.
-FL_ALL_FREE does both. FL_SLEEPING_FREE are deactivated. </P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Free.Fl_Free>Fl_Free</A></LI>
-<LI><A href=#Fl_Free.~Fl_Free>~Fl_Free</A></LI>
-</UL>
-<H4><A name=Fl_Free.Fl_Free>Fl_Free(uchar type, int, int, int, int,
-const char*l, FL_HANDLEPTR hdl)</A></H4>
- The constructor takes both the <TT>type</TT> and the <TT>handle</TT>
- function. The handle function should be declared as follows:
-<UL>
-<PRE>
-int
-handle_function(Fl_Widget *w,
- int event,
- float event_x,
- float event_y,
- char key)
-</PRE>
-</UL>
- This function is called from the the <TT>handle()</TT> method in
-response to most events, and is called by the <TT>draw()</TT> method.
-The <TT>event</TT> argument contains the event type:
-<UL>
-<PRE>
-// old event names for compatability:
-#define FL_MOUSE FL_DRAG
-#define FL_DRAW 0
-#define FL_STEP 9
-#define FL_FREEMEM 12
-#define FL_FREEZE FL_UNMAP
-#define FL_THAW FL_MAP
-</PRE>
-</UL>
-<H4><A name=Fl_Free.~Fl_Free>virtual Fl_Free::~Fl_Free()</A></H4>
- The destructor will call the handle function with the event <TT>
-FL_FREE_MEM</TT>. </BODY></HTML>
diff --git a/documentation/Fl_GIF_Image.html b/documentation/Fl_GIF_Image.html
deleted file mode 100644
index dc8a5b24c..000000000
--- a/documentation/Fl_GIF_Image.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_GIF_Image</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_GIF_Image">class Fl_GIF_Image</A></H2>
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href="Fl_Pixmap.html">Fl_Pixmap</A>
- |
- +----<B>Fl_GIF_Image</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_GIF_Image.H&gt;
-</PRE></UL>
-
-<H3>Additional Libraries</H3>
-
-<UL><PRE>
--lfltk_images / fltkimages.lib
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_GIF_Image</TT> class supports loading, caching,
-and drawing of Compuserve GIF<SUP>SM</SUP> images. The class
-loads the first image and supports transparency.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_GIF_Image.Fl_GIF_Image">Fl_GIF_Image</A></LI>
-
- <LI><A href="#Fl_GIF_Image.~Fl_GIF_Image">~Fl_GIF_Image</A></LI>
-
-</UL>
-
-<H4><A name="Fl_GIF_Image.Fl_GIF_Image">Fl_GIF_Image::Fl_GIF_Image(const char *filename);</A></H4>
-
-<P>The constructor loads the named GIF image.</P>
-
-<H4><A name="Fl_GIF_Image.~Fl_GIF_Image">Fl_GIF_Image::~Fl_GIF_Image();</A></H4>
-
-<P>The destructor free all memory and server resources that are used by
-the image.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Gl_Window.html b/documentation/Fl_Gl_Window.html
deleted file mode 100644
index a32b74f7c..000000000
--- a/documentation/Fl_Gl_Window.html
+++ /dev/null
@@ -1,244 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Gl_Window</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name=Fl_Gl_Window>class Fl_Gl_Window</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href=Fl_Window.html#Fl_Window>Fl_Window</A>
- |
- +----<B>Fl_Gl_Window</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Gl_Window.H&gt;
-</PRE></UL>
-
-<H3>Additional Libraries</H3>
-
-<UL><PRE>
--lfltk_gl / fltkgl.lib
-</PRE></UL>
-
-<H3>Description</H3>
- The <TT>Fl_Gl_Window</TT> widget sets things up so OpenGL works, and
-also keeps an OpenGL &quot;context&quot; for that window, so that changes to the
-lighting and projection may be reused between redraws. Fl_Gl_Window
- also flushes the OpenGL streams and swaps buffers after <TT>draw()</TT>
- returns.
-<P>OpenGL hardware typically provides some overlay bit planes, which
-are very useful for drawing UI controls atop your 3D graphics. If the
-overlay hardware is not provided, FLTK tries to simulate the overlay,
-This works pretty well if your graphics are double buffered, but not
-very well for single-buffered. </P>
-<P>Please note that the FLTK drawing and clipping functions
-will not work inside an <tt>Fl_Gl_Window</tt>. All drawing
-should be done using OpenGL calls exclusively.
-Even though <tt>Fl_Gl_Window</tt> is derived from <tt>Fl_Group</tt>,
-it is not useful to add other FLTK Widgets as children,
-unless those Widgets are modified to draw using OpenGL calls.</P>
-
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Gl_Window methods.">
-<TR><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Gl_Window.Fl_Gl_Window>Fl_Gl_Window</A></LI>
-<LI><A href=#Fl_Gl_Window.~Fl_Gl_Window>~Fl_Gl_Window</A></LI>
-<LI><A href=#Fl_Gl_Window.can_do>can_do</A></LI>
-<LI><A href=#Fl_Gl_Window.can_do_overlay>can_do_overlay</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Gl_Window.context>context</A></LI>
-<LI><A href=#Fl_Gl_Window.context_valid>context_valid</A></LI>
-<LI><A href=#Fl_Gl_Window.draw>draw</A></LI>
-<LI><A href=#Fl_Gl_Window.draw_overlay>draw_overlay</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Gl_Window.hide>hide</A></LI>
-<LI><A href=#Fl_Gl_Window.invalidate>invalidate</A></LI>
-<LI><A href=#Fl_Gl_Window.make_current>make_current</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Gl_Window.make_overlay_current>make_overlay_current</A></LI>
-<LI><A href=#Fl_Gl_Window.mode>mode</A></LI>
-<LI><A href=#Fl_Gl_Window.ortho>ortho</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Gl_Window.redraw_overlay>redraw_overlay</A></LI>
-<LI><A href=#Fl_Gl_Window.swap_buffers>swap_buffers</A></LI>
-<LI><A href=#Fl_Gl_Window.valid>valid</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-<H4><A name=Fl_Gl_Window.Fl_Gl_Window>Fl_Gl_Window::Fl_Gl_Window(int x,
-int y, int w, int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Gl_Window</TT> widget using the given position,
-size, and label string. The default boxtype is <TT>FL_NO_BOX</TT>. The
-default mode is <TT>FL_RGB|FL_DOUBLE|FL_DEPTH</TT>.
-<H4><A name=Fl_Gl_Window.~Fl_Gl_Window>virtual
-Fl_Gl_Window::~Fl_Gl_Window()</A></H4>
- The destructor removes the widget and destroys the OpenGL context
-associated with it.
-<H4><A name=Fl_Gl_Window.draw>virtual void Fl_Gl_Window::draw(void)</A></H4>
-<TT>Fl_Gl_Window::draw()</TT> is a pure virtual method. You must
-subclass <TT>Fl_Gl_Window</TT> and provide an implementation for <TT>
-draw()</TT>. You may also provide an implementation of draw_overlay()
-if you want to draw into the overlay planes. You can avoid
-reinitializing the viewport and lights and other things by checking <TT>
-valid()</TT> at the start of <TT>draw()</TT> and only doing the
-initialization if it is false.
-<P>The <TT>draw()</TT> method can <I>only</I> use OpenGL calls. Do not
-attempt to call X, any of the functions in &lt;FL/fl_draw.H&gt;, or <TT>glX</TT>
- directly. Do not call <TT>gl_start()</TT> or <TT>gl_finish()</TT>. </P>
-<P>If double-buffering is enabled in the window, the back and front
-buffers are swapped after this function is completed. </P>
-<H4><A name=Fl_Gl_Window.mode>const int Fl_Gl_Window::mode() const
-<BR> int Fl_Gl_Window::mode(int m)</A></H4>
- Set or change the OpenGL capabilites of the window. The value can be
-any of the following OR'd together:
-<UL>
-<LI><TT>FL_RGB</TT> - RGB color (not indexed) </LI>
-<LI><TT>FL_RGB8</TT> - RGB color with at least 8 bits of each color </LI>
-<LI><TT>FL_INDEX</TT> - Indexed mode </LI>
-<LI><TT>FL_SINGLE</TT> - not double buffered </LI>
-<LI><TT>FL_DOUBLE</TT> - double buffered </LI>
-<LI><TT>FL_ACCUM</TT> - accumulation buffer </LI>
-<LI><TT>FL_ALPHA</TT> - alpha channel in color </LI>
-<LI><TT>FL_DEPTH</TT> - depth buffer </LI>
-<LI><TT>FL_STENCIL</TT> - stencil buffer </LI>
-<LI><TT>FL_MULTISAMPLE</TT> - multisample antialiasing </LI>
-</UL>
-<TT>FL_RGB</TT> and <TT>FL_SINGLE</TT> have a value of zero, so they
-are &quot;on&quot; unless you give <TT>FL_INDEX</TT> or <TT>FL_DOUBLE</TT>.
-<P>If the desired combination cannot be done, FLTK will try turning off <TT>
-FL_MULTISAMPLE</TT>. If this also fails the <TT>show()</TT> will call <TT>
-Fl::error()</TT> and not show the window. </P>
-<P>You can change the mode while the window is displayed. This is most
-useful for turning double-buffering on and off. Under X this will
-cause the old X window to be destroyed and a new one to be created. If
-this is a top-level window this will unfortunately also cause the
-window to blink, raise to the top, and be de-iconized, and the <TT>xid()</TT>
- will change, possibly breaking other code. It is best to make the GL
-window a child of another window if you wish to do this! </P>
-<H4><A name=Fl_Gl_Window.can_do>static int Fl_Gl_Window::can_do(int)
-<BR> int Fl_Gl_Window::can_do() const</A></H4>
- Returns non-zero if the hardware supports the given or current OpenGL
-mode.
-
-<h4><a name=Fl_Gl_Window.context>void* Fl_Gl_Window::context() const;
-<br>void Fl_Gl_Window::context(void*, int destroy_flag = false);</a></h4>
-
-Return or set a pointer to the GLContext that this window is
-using. This is a system-dependent structure, but it is portable to copy
-the context from one window to another. You can also set it to NULL,
-which will force FLTK to recreate the context the next time <a
-href=#Fl_Gl_Window.make_current><tt>make_current()</tt></a> is called, this is
-useful for getting around bugs in OpenGL implementations.
-
-<p>If <i>destroy_flag</i> is true the context will be destroyed by
-fltk when the window is destroyed, or when the <a
-href=#Fl_Gl_Window.mode><tt>mode()</tt></a> is changed, or the next time
-<tt>context(x)</tt> is called.
-
-<H4><A name=Fl_Gl_Window.valid>char Fl_Gl_Window::valid() const
-<BR> void Fl_Gl_Window::valid(char i)</A></H4>
-<TT>Fl_Gl_Window::valid()</TT> is turned off when FLTK creates a new
-context for this window or when the window resizes, and is turned on <I>
-after</I> <TT>draw()</TT> is called. You can use this inside your <TT>
-draw()</TT> method to avoid unneccessarily initializing the OpenGL
-context. Just do this:
-<UL><PRE>
-void mywindow::draw() {
- if (!valid()) {
- glViewport(0,0,w(),h());
- glFrustum(...);
- ...other initialization...
- }
- if (!context_valid()) {
- ...load textures, etc. ...
- }
- ... draw your geometry here ...
-}
-</PRE></UL>
-
-You can turn <TT>valid()</TT> on by calling <TT>valid(1)</TT>. You
-should only do this after fixing the transformation inside a <TT>draw()</TT>
-or after <TT>make_current()</TT>. This is done automatically after <TT>
-draw()</TT> returns.
-<H4><A name=Fl_Gl_Window.invalidate>void Fl_Gl_Window::invalidate()</A></H4>
- The <TT>invalidate()</TT> method turns off <TT>valid()</TT> and is
-equivalent to calling <TT>value(0)</TT>.
-
-<H4><A name=Fl_Gl_Window.context_valid>char Fl_Gl_Window::context_valid() const
-<BR> void Fl_Gl_Window::context_valid(char i)</A></H4>
-<TT>Fl_Gl_Window::context_valid()</TT> will only be set if the
-OpenGL context is created or recreated. It differs from
-<TT>Fl_Gl_Window::valid()</TT> which is also set whenever the context
-changes size.
-
-<H4><A name=Fl_Gl_Window.ortho>void Fl_Gl_Window::ortho()</A></H4>
- Set the projection so 0,0 is in the lower left of the window and each
-pixel is 1 unit wide/tall. If you are drawing 2D images, your <TT>
-draw()</TT> method may want to call this if <TT>valid()</TT> is false.
-<H4><A name=Fl_Gl_Window.make_current>void Fl_Gl_Window::make_current()</A>
-</H4>
- The <TT>make_current()</TT> method selects the OpenGL context for the
-widget. It is called automatically prior to the <TT>draw()</TT> method
-being called and can also be used to implement feedback and/or
-selection within the <TT>handle()</TT> method.
-<H4><A name=Fl_Gl_Window.make_overlay_current>void
-Fl_Gl_Window::make_overlay_current()</A></H4>
- The <TT>make_overlay_current()</TT> method selects the OpenGL context
-for the widget's overlay. It is called automatically prior to the <TT>
-draw_overlay()</TT> method being called and can also be used to
-implement feedback and/or selection within the <TT>handle()</TT>
- method.
-<H4><A name=Fl_Gl_Window.swap_buffers>void Fl_Gl_Window::swap_buffers()</A>
-</H4>
- The <TT>swap_buffers()</TT> method swaps the back and front buffers.
-It is called automatically after the <TT>draw()</TT> method is called.
-<H4><A name=Fl_Gl_Window.hide>void Fl_Gl_Window::hide()</A></H4>
- Hides the window and destroys the OpenGL context.
-<H4><A name=Fl_Gl_Window.can_do_overlay>int
-Fl_Gl_Window::can_do_overlay()</A></H4>
- Returns true if the hardware overlay is possible. If this is false,
-FLTK will try to simulate the overlay, with significant loss of update
-speed. Calling this will cause FLTK to open the display.
-<H4><A name=Fl_Gl_Window.redraw_overlay>void
-Fl_Gl_Window::redraw_overlay()</A></H4>
- This method causes <TT>draw_overlay</TT> to be called at a later time.
- Initially the overlay is clear, if you want the window to display
-something in the overlay when it first appears, you must call this
-immediately after you <TT>show()</TT> your window.
-<H4><A name=Fl_Gl_Window.draw_overlay>virtual void
-Fl_Gl_Window::draw_overlay()</A></H4>
- You must implement this virtual function if you want to draw into the
-overlay. The overlay is cleared before this is called. You should
-draw anything that is not clear using OpenGL. You must use <TT>
-gl_color(i)</TT> to choose colors (it allocates them from the colormap
-using system-specific calls), and remember that you are in an indexed
-OpenGL mode and drawing anything other than flat-shaded will probably
-not work.
-<P>Both this function and <TT>Fl_Gl_Window::draw()</TT> should check <TT>
-Fl_Gl_Window::valid()</TT> and set the same transformation. If you
-don't your code may not work on other systems. Depending on the OS,
-and on whether overlays are real or simulated, the OpenGL context may
-be the same or different between the overlay and main window. </P>
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Group.html b/documentation/Fl_Group.html
deleted file mode 100644
index 45dd288ce..000000000
--- a/documentation/Fl_Group.html
+++ /dev/null
@@ -1,190 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Group</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Group>class Fl_Group</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Widget.html#Fl_Widget>Fl_Widget</A>
- |
- +----<B>Fl_Group</B>
- |
- +----<A href=Fl_Browser_.html#Fl_Browser_>Fl_Browser_</A>, <A href=Fl_Color_Chooser.html#Fl_Color_Chooser>Fl_Color_Chooser</A>, <A href=Fl_Help_View.html#Fl_Help_View>Fl_Help_View</A>, <A href=Fl_Input_Choice.html#Fl_Input_Choice>Fl_Input_Choice</A>, <A href=Fl_Pack.html#Fl_Pack>Fl_Pack</A>,
- <A href=Fl_Scroll.html#Fl_Scroll>Fl_Scroll</A>, <A href=Fl_Tabs.html#Fl_Tabs>Fl_Tabs</A>, <A href=Fl_Spinner.html#Fl_Spinner>Fl_Spinner</A>, <A href=Fl_Tabs.html#Fl_Tabs>Fl_Tabs</A>, <A href=Fl_Text_Display.html#Fl_Text_Display>Fl_Text_Display</A>, <A href=Fl_Tile.html#Fl_Tile>Fl_Tile</A>,
- <A href=Fl_Window.html#Fl_Window>Fl_Window</A>, <A href=Fl_Wizard.html#Fl_Wizard>Fl_Wizard</A>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Group.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Group</TT> class is the FLTK container widget. It maintains
-an array of child widgets. These children can themselves be any widget
-including <TT>Fl_Group</TT>. The most important subclass of <TT>Fl_Group</TT>
- is <A href=Fl_Window.html#Fl_Window><TT>Fl_Window</TT></A>, however
-groups can also be used to control radio buttons or to enforce resize
-behavior.
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Group methods.">
-<TR><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Group.Fl_Group>Fl_Group</A></LI>
-<LI><A href=#Fl_Group.~Fl_Group>~Fl_Group</A></LI>
-<LI><A href=#Fl_Group.add>add</A></LI>
-<LI><A href=#Fl_Group.add_resizable>add_resizable</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Group.array>array</A></LI>
-<LI><A href=#Fl_Group.begin>begin</A></LI>
-<LI><A href=#Fl_Group.child>child</A></LI>
-<LI><A href=#Fl_Group.children>children</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href="#Fl_Group.clear">clear</A></LI>
-<LI><A href="#Fl_Group.clip_children">clip_children</A></LI>
-<LI><A href=#Fl_Group.current>current</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Group.end>end</A></LI>
-<LI><A href=#Fl_Group.find>find</A></LI>
-<LI><A href=#Fl_Group.init_sizes>init_sizes</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Group.insert>insert</A></LI>
-<LI><A href=#Fl_Group.remove>remove</A></LI>
-<LI><A href=#Fl_Group.resizable>resizable</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-<H4><A name=Fl_Group.Fl_Group>Fl_Group::Fl_Group(int x, int y, int w,
-int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Group</TT> widget using the given position, size,
-and label string. The default boxtype is <TT>FL_NO_BOX</TT>.
-<H4><A name=Fl_Group.~Fl_Group>virtual Fl_Group::~Fl_Group()</A></H4>
- The destructor <I>also deletes all the children</I>. This allows a
-whole tree to be deleted at once, without having to keep a pointer to
-all the children in the user code. A kludge has been done so the <TT>
-Fl_Group</TT> and all of it's children can be automatic (local)
-variables, but you must declare the <TT>Fl_Group</TT> <I>first</I>, so
-that it is destroyed last.
-<H4><A name=Fl_Group.add>void Fl_Group::add(Fl_Widget &amp;w)
-<BR> void Fl_Group::add(Fl_Widget *w)</A></H4>
-
-The widget is removed from it's current group (if any) and then added
-to the end of this group.
-
-<H4><A name="Fl_Group.clear">void Fl_Group::clear()</A></H4>
-
-<p>The <tt>clear()</tt> method deletes all child widgets from
-memory recursively.</p>
-
-<p>This method differs from the <a
-href='#Fl_Group.remove'><tt>remove()</tt></a> method in that it
-affects all child widgets and deletes them from memory.</p>
-
-<H4><A name="Fl_Group.clip_children">void Fl_Group::clip_children(int c);<br>
-int Fl_Group::clip_children();</A></H4>
-
-The first method controls whether the group widget clips the drawing of
-child widgets to its bounding box.
-
-<p>The second method returns the current clipping mode.
-
-<p>The default is to not clip (0) the drawing of child widgets.
-
-<H4><A name="Fl_Group.init_sizes">void Fl_Group::init_sizes()</A></H4>
-
-The <TT>Fl_Group</TT> widget keeps track of the original widget sizes and
-positions when resizing occurs so that if you resize a window back to its
-original size the widgets will be in the correct places. If you rearrange
-the widgets in your group, call this method to register the new arrangement
-with the <TT>Fl_Group</TT> that contains them.
-
-<H4><A name=Fl_Group.insert>void Fl_Group::insert(Fl_Widget &amp;w, int n)</A></H4>
-
-The widget is removed from it's current group (if any) and then
-inserted into this group. It is put at index <TT>n</TT> (or at the end
-if <tt>n &gt;= children()</tt>. This can also be used to rearrange
-the widgets inside a group.
-
-<H4>void Fl_Group::insert(Fl_Widget &amp;w, Fl_Widget* beforethis)</H4>
-
-This does <tt>insert(w, find(beforethis))</tt>. This will append the
-widget if <tt>beforethis</tt> is not in the group.
-
-<H4><A name=Fl_Group.remove>void Fl_Group::remove(Fl_Widget &amp;w)</A></H4>
-
-<p>Removes a widget from the group but does not delete it. This
-method does nothing if the widget is not a child of the
-group.</p>
-
-<p>This method differs from the <a
-href='#Fl_Group.clear'><tt>clear()</tt></a> method in that it
-only affects a single widget and does not delete it from
-memory.</p>
-
-<H4><A name=Fl_Group.current>static Fl_Group *Fl_Group::current()
-<BR> static void Fl_Group::current(Fl_Group *w)</A></H4>
-<TT>current()</TT> returns the currently active group. The Fl_Widget
- constructor automatically does <tt>current()-&gt;add(widget)</tt> if this is not null.
- To prevent new widgets from being added to a group, call <TT>Fl_Group::current(0)</TT>.
-<H4><A name=Fl_Group.begin>void Fl_Group::begin()</A></H4>
-<TT>begin()</TT> sets the current group so you can build the widget
-tree by just constructing the widgets. <TT>begin()</TT> is
-automatically called by the constructor for Fl_Group (and thus for
-Fl_Window as well). <TT>begin()</TT> <i>is exactly the same as</i> <TT>current(this)</TT>.
-<P><I>Don't forget to <TT>end()</TT> the group or window!</I></P>
-<H4><A name=Fl_Group.end>void Fl_Group::end()</A></H4>
-<TT>end()</TT> <i>is exactly the same as</i> <TT>current(this-&gt;parent())</TT>. Any new widgets
-added to the widget tree will be added to the parent of the group.
-<H4><A name=Fl_Group.array>const Fl_Widget **Fl_Group::array() const</A></H4>
- Returns a pointer to the array of children. <I>This pointer is only
- valid until the next time a child is added or removed.</I>
-<H4><A name=Fl_Group.child>Fl_Widget *Fl_Group::child(int n) const</A></H4>
- Returns <tt>array()[n]</tt>. <i>No range checking is done!</i>
-<H4><A name=Fl_Group.children>int Fl_Group::children() const</A></H4>
- Returns how many child widgets the group has.
-<H4><A name=Fl_Group.find>int Fl_Group::find(const Fl_Widget *w) const
-<BR> int Fl_Group::find(const Fl_Widget &amp;w) const</A></H4>
- Searches the child array for the widget and returns the index. Returns <A
-href=#Fl_Group.children><TT>children()</TT></A> if the widget is <TT>
-NULL</TT> or not found.
-<H4><A name=Fl_Group.resizable>void Fl_Group::resizable(Fl_Widget *box)
-<BR> void Fl_Group::resizable(Fl_Widget &amp;box)
-<BR> Fl_Widget *Fl_Group::resizable() const</A></H4>
- The resizable widget defines the resizing box for the group. When the
-group is resized it calculates a new size and position for all of its
-children. Widgets that are horizontally or vertically inside the
-dimensions of the box are scaled to the new size. Widgets outside the
-box are moved.
-<P>In these examples the gray area is the resizable:
-<BR></P>
-<P align=center><IMG align=TOP SRC="resizebox1.gif" ALT="Resizeable groups">&nbsp;&nbsp;
-<IMG align=TOP SRC="resizebox2.gif" ALT="Resizeable groups"></P>
-<P>The resizable may be set to the group itself (this is the default
-value for an <TT>Fl_Group</TT>, although <TT>NULL</TT> is the default
-for <TT>Fl_Window</TT> and <TT>Fl_Pack</TT>), in which case all the
-contents are resized.
-If the resizable is <TT>NULL</TT> then all widgets remain a fixed size
-and distance from the top-left corner. </P>
-<P>It is possible to achieve any type of resize behavior by using an
-invisible <TT>Fl_Box</TT> as the resizable and/or by using a hierarchy
-of child <TT>Fl_Group</TT>'s. </P>
-
-<H4><A name=Fl_Group.add_resizable>Fl_Group
-&amp;Fl_Group::add_resizable(Fl_Widget &amp;box)</A></H4>
- Adds a widget to the group and makes it the resizable widget.
-</BODY></HTML>
diff --git a/documentation/Fl_Help_Dialog.html b/documentation/Fl_Help_Dialog.html
deleted file mode 100644
index 4e51745eb..000000000
--- a/documentation/Fl_Help_Dialog.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Help_Dialog</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-<H2><A NAME="Fl_Help_Dialog">class Fl_Help_Dialog</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<B>Fl_Help_Dialog</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include "Fl_Help_Dialog.h"
-</PRE></UL>
-
-<H3>Additional Libraries</H3>
-
-<UL><PRE>
--lfltk_images / fltkimages.lib
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <CODE>Fl_Help_Dialog</CODE> widget displays a standard help dialog window
-using the <CODE>Fl_Help_View</CODE> widget.
-
-<CENTER><IMG SRC="Fl_Help_Dialog.gif" WIDTH="80%" ALT="Fl_Help_Dialog Window"></CENTER>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A HREF="#Fl_Help_Dialog.Fl_Help_Dialog">Fl_Help_Dialog</A>
- <LI><A HREF="#Fl_Help_Dialog.~Fl_Help_Dialog">~Fl_Help_Dialog</A>
- <LI><A HREF="#Fl_Help_Dialog.xywh">h</A>
- <LI><A HREF="#Fl_Help_Dialog.hide">hide</A>
- <LI><A HREF="#Fl_Help_Dialog.load">load</A>
- <LI><A HREF="#Fl_Help_Dialog.position">position</A>
- <LI><A HREF="#Fl_Help_Dialog.resize">resize</A>
- <LI><A HREF="#Fl_Help_Dialog.show">show</A>
- <LI><A HREF="#Fl_Help_Dialog.textsize">textsize</A>
- <LI><A HREF="#Fl_Help_Dialog.topline">topline</A>
- <LI><A HREF="#Fl_Help_Dialog.value">value</A>
- <LI><A HREF="#Fl_Help_Dialog.visible">visible</A>
- <LI><A HREF="#Fl_Help_Dialog.xywh">w</A>
- <LI><A HREF="#Fl_Help_Dialog.xywh">x</A>
- <LI><A HREF="#Fl_Help_Dialog.xywh">y</A>
-
-</UL>
-
-<H4><A NAME="Fl_Help_Dialog.Fl_Help_Dialog">Fl_Help_Dialog()</A></H4>
-
-<P>The constructor creates the dialog pictured above.
-
-<H4><A NAME="Fl_Help_Dialog.~Fl_Help_Dialog">~Fl_Help_Dialog()</A></H4>
-
-<P>The destructor destroys the widget and frees all memory that has been
-allocated for the current file.
-
-<H4><A NAME="Fl_Help_Dialog.hide">void hide()</A></H4>
-
-<P>Hides the <code>Fl_Help_Dialog</code> window.
-
-<H4><A NAME="Fl_Help_Dialog.load">void load(const char *f)</A></H4>
-
-<P>Loads the specified HTML file into the <CODE>Fl_Help_View</CODE> widget.
-The filename can also contain a target name ("filename.html#target").
-
-<H4><A NAME="Fl_Help_Dialog.position">void position(int x, int y)</A></H4>
-
-<P>Set the screen position of the dialog.
-
-<H4><A NAME="Fl_Help_Dialog.resize">void resize(int xx, int yy, int ww, int hh)</A></H4>
-
-<P>Change the position and size of the dialog.
-
-<H4><A NAME="Fl_Help_Dialog.show">void show()</A></H4>
-
-<P>Shows the <code>Fl_Help_Dialog</code> window.
-
-<H4><A NAME="Fl_Help_Dialog.textsize">void textsize(uchar s)<BR>
-uchar textsize()</A></H4>
-
-<P>Sets or gets the default text size for the help view.
-
-<H4><A NAME="Fl_Help_Dialog.topline">void topline(const char *n)<BR>
-void topline(int n)</A></H4>
-
-<P>Sets the top line in the <CODE>Fl_Help_View</CODE> widget to the named or
-numbered line.
-
-<H4><A NAME="Fl_Help_Dialog.value">void value(const char *v)<BR>
-const char *value() const</A></H4>
-
-<P>The first form sets the current buffer to the string provided and
-reformats the text. It also clears the history of the "back" and
-"forward" buttons. The second form returns the current buffer contents.
-
-<H4><A NAME="Fl_Help_Dialog.visible">int visible()</A></H4>
-
-<P>Returns 1 if the <code>Fl_Help_Dialog</code> window is visible.
-
-<H4><A NAME="Fl_Help_Dialog.xywh">int x()<BR>
-int y()<BR>
-int w()<BR>
-int h()<BR>
-</A></H4>
-
-<P>Returns the position and size of the help dialog.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Help_View.html b/documentation/Fl_Help_View.html
deleted file mode 100644
index 4b10afda8..000000000
--- a/documentation/Fl_Help_View.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Help_View</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name="Fl_Help_View">class Fl_Help_View</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-Fl_Group
- |
- +----<B>Fl_Help_View</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include "Fl_Help_View.h"
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <CODE>Fl_Help_View</CODE> widget displays HTML text. Most HTML 2.0
-elements are supported, as well as a primitive implementation of tables.
-GIF, JPEG, and PNG images are displayed inline.
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A HREF="#Fl_Help_View.Fl_Help_View">Fl_Help_View</A>
- <LI><A HREF="#Fl_Help_View.~Fl_Help_View">~Fl_Help_View</A>
- <LI><A HREF="#Fl_Help_View.directory">directory</A>
- <LI><A HREF="#Fl_Help_View.filename">filename</A>
- <LI><A HREF="#Fl_Help_View.link">link</A>
- <LI><A HREF="#Fl_Help_View.load">load</A>
- <LI><A HREF="#Fl_Help_View.size">size</A>
- <LI><A HREF="#Fl_Help_View.textcolor">textcolor</A>
- <LI><A HREF="#Fl_Help_View.textfont">textfont</A>
- <LI><A HREF="#Fl_Help_View.textsize">textsize</A>
- <LI><A HREF="#Fl_Help_View.title">title</A>
- <LI><A HREF="#Fl_Help_View.topline">topline</A>
- <LI><A HREF="#Fl_Help_View.value">value</A>
-
-</UL>
-
-<H4><A NAME="Fl_Help_View.Fl_Help_View">Fl_Help_View(int xx, int yy, int ww, int hh, const char *l = 0)</A></H4>
-
-<P>The constructor creates the <CODE>Fl_Help_View</CODE> widget at the specified
-position and size.
-
-<H4><A NAME="Fl_Help_View.~Fl_Help_View">~Fl_Help_View()</A></H4>
-
-<P>The destructor destroys the widget and frees all memory that has been
-allocated for the current file.
-
-<H4><A NAME="Fl_Help_View.directory">const char *directory() const</A></H4>
-
-<P>This method returns the current directory (base) path for the file
-in the buffer.
-
-<H4><A NAME="Fl_Help_View.filename">const char *filename() const</A></H4>
-
-<P>This method returns the current filename for the text in the buffer.
-
-<H4><A NAME="Fl_Help_View.link">void link(Fl_Help_Func *fn)</A></H4>
-
-<P>This method assigns a callback function to use when a link is
-followed or a file is loaded (via
-<CODE>Fl_Help_View::load()</CODE>) that requires a different
-file or path. The callback function receives a pointer to the
-<CODE>Fl_Help_View</CODE> widget and the URI or full pathname
-for the file in question. It must return a pathname that can be
-opened as a local file or <TT>NULL</TT>:</P>
-
-<UL><PRE>
-const char *fn(Fl_Widget *w, const char *uri);
-</PRE></UL>
-
-<P>The link function can be used to retrieve remote or virtual
-documents, returning a temporary file that contains the actual
-data. If the link function returns <TT>NULL</TT>, the value of
-the <TT>Fl_Help_View</TT> widget will remain unchanged.</P>
-
-<P>If the link callback cannot handle the URI scheme, it should
-return the <TT>uri</TT> value unchanged or set the <A
-HREF="#Fl_Help_View.value"><TT>value()</TT></A> of the widget
-before returning <TT>NULL</TT>.</P>
-
-<H4><A NAME="Fl_Help_View.load">int load(const char *f)</A></H4>
-
-<P>This method loads the specified file or URL.
-
-<H4><A NAME="Fl_Help_View.size">int size() const</A></H4>
-
-<P>This method returns the length of the buffer text in pixels.
-
-<H4><A NAME="Fl_Help_View.textcolor">void textcolor(Fl_Color c)<BR>
-Fl_Color textcolor() const</A></H4>
-
-<P>The first form sets the default text color. The second returns
-the current default text color.
-
-<H4><A NAME="Fl_Help_View.textfont">void textfont(uchar f)<BR>
-uchar textfont() const</A></H4>
-
-<P>The first form sets the default text font. The second returns
-the current default text font.
-
-<H4><A NAME="Fl_Help_View.textsize">void textsize(uchar s)<BR>
-uchar textsize() const</A></H4>
-
-<P>The first form sets the default text size. The second returns
-the current default text size.
-
-<H4><A NAME="Fl_Help_View.title">const char *title()</A></H4>
-
-<P>This method returns the current document title, or NULL if there
-is no title.
-
-<H4><A NAME="Fl_Help_View.topline">void topline(const char *n)<BR>
-void topline(int)<BR>
-int topline() const</A></H4>
-
-<P>The first two forms scroll the text to the indicated position, either
-with a named destination or by pixel line.
-
-<P>The second form returns the current top line in pixels.
-
-<H4><A NAME="Fl_Help_View.value">void value(const char *v)<BR>
-const char *value() const</A></H4>
-
-<P>The first form sets the current buffer to the string provided and
-reformats the text. The second form returns the current buffer contents.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Hold_Browser.html b/documentation/Fl_Hold_Browser.html
deleted file mode 100644
index ef9a5a33b..000000000
--- a/documentation/Fl_Hold_Browser.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Hold_Browser</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Hold_Browser>class Fl_Hold_Browser</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Browser.html#Fl_Browser>Fl_Browser</A>
- |
- +----<B>Fl_Hold_Browser</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Hold_Browser.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Hold_Browser</TT> class is a subclass of <TT>Fl_Browser</TT>
- which lets the user select a single item, or no items by clicking on
-the empty space. As long as the mouse button is held down the item
-pointed to by it is highlighted, and this highlighting remains on when
-the mouse button is released. Normally the callback is done when the
-user releases the mouse, but you can change this with <TT>when()</TT>.
-<P>See <A href=Fl_Browser.html#Fl_Browser><TT>Fl_Browser</TT></A> for
-methods to add and remove lines from the browser. </P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Hold_Browser.Fl_Hold_Browser>Fl_Hold_Browser</A></LI>
-<LI><A href=#Fl_Hold_Browser.~Fl_Hold_Browser>~Fl_Hold_Browser</A></LI>
-<LI><A href=#Fl_Hold_Browser.deselect>deselect</A></LI>
-<LI><A href=#Fl_Hold_Browser.select>select</A></LI>
-<LI><A href=#Fl_Hold_Browser.value>value</A></LI>
-</UL>
-<H4><A name=Fl_Hold_Browser.Fl_Hold_Browser>
-Fl_Hold_Browser::Fl_Hold_Browser(int x, int y, int w, int h, const char
-*label = 0)</A></H4>
- Creates a new <TT>Fl_Hold_Browser</TT> widget using the given
-position, size, and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>
-.
-<H4><A name=Fl_Hold_Browser.~Fl_Hold_Browser>virtual
-Fl_Hold_Browser::~Fl_Hold_Browser()</A></H4>
- The destructor <I>also deletes all the items in the list</I>.
-<H4><A name=Fl_Hold_Browser.deselect>int Fl_Browser::deselect()</A></H4>
-<P>Deselects any selected item.
-<H4><A name=Fl_Hold_Browser.select>int Fl_Browser::select(int,int=1)
-<BR> int Fl_Browser::selected(int) const</A></H4>
- You can use these for compatibility with <A href=Fl_Multi_Browser.html#Fl_Multi_Browser>
-<TT>Fl_Multi_Browser</TT></A>. If you turn on the selection of more
-than one line the results are unpredictable.
-<H4><A name=Fl_Hold_Browser.value>int Fl_Browser::value() const
-<BR> void Fl_Browser::value(int)</A></H4>
- Set or get which line is selected. This returns zero if no line is
-selected, so be aware that this can happen in a callback. </BODY></HTML>
diff --git a/documentation/Fl_Image.html b/documentation/Fl_Image.html
deleted file mode 100644
index 8df5a38ed..000000000
--- a/documentation/Fl_Image.html
+++ /dev/null
@@ -1,212 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Image</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_Image">class Fl_Image</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<B>Fl_Image</B>
- |
- +----<A href="Fl_Bitmap.html">Fl_Bitmap</A>,
- <A href="Fl_Pixmap.html">Fl_Pixmap</A>,
- <A href="Fl_RGB_Image.html">Fl_RGB_Image</A>,
- <A href="Fl_Shared_Image.html">Fl_Shared_Image</A>,
- <A href="Fl_Tiled_Image.html">Fl_Tiled_Image</A>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Image.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P><TT>Fl_Image</TT> is the base class used for caching and
-drawing all kinds of images in FLTK. This class keeps track of
-common image data such as the pixels, colormap, width, height,
-and depth. Virtual methods are used to provide type-specific
-image handling.</P>
-
-<P>Since the <TT>Fl_Image</TT> class does not support image
-drawing by itself, calling the <TT>draw()</TT> method results in
-a box with an X in it being drawn instead.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_Image.Fl_Image">Fl_Image</A></LI>
-
- <LI><A href="#Fl_Image.~Fl_Image">~Fl_Image</A></LI>
-
- <LI><A href="#Fl_Image.color_average">color_average</A></LI>
-
- <LI><A href="#Fl_Image.copy">copy</A></LI>
-
- <LI><A href="#Fl_Image.count">count</A></LI>
-
- <LI><A href="#Fl_Image.d">d</A></LI>
-
- <LI><A href="#Fl_Image.data">data</A></LI>
-
- <LI><A href="#Fl_Image.desaturate">desaturate</A></LI>
-
- <LI><A href="#Fl_Image.draw">draw</A></LI>
-
- <LI><A href="#Fl_Image.draw_empty">draw_empty</A></LI>
-
- <LI><A href="#Fl_Image.h">h</A></LI>
-
- <LI><A href="#Fl_Image.inactive">inactive</A></LI>
-
- <LI><A href="#Fl_Image.label">label</A></LI>
-
- <LI><A href="#Fl_Image.ld">ld</A></LI>
-
- <LI><A href="#Fl_Image.uncache">uncache</A></LI>
-
- <LI><A href="#Fl_Image.w">w</A></LI>
-
-</UL>
-
-<H4><A NAME="Fl_Image.Fl_Image">Fl_Image(int W, int H, int D);</A></H4>
-
-<P>The constructor creates an empty image with the specified
-width, height, and depth. The width and height are in pixels.
-The depth is 0 for bitmaps, 1 for pixmap (colormap) images, and
-1 to 4 for color images.</P>
-
-<H4><A NAME="Fl_Image.~Fl_Image">virtual ~Fl_Image();</A></H4>
-
-<P>The destructor is a virtual method that frees all memory used
-by the image.</P>
-
-<H4><A NAME="Fl_Image.color_average">virtual void color_average(Fl_Color c, float i);</A></H4>
-
-<P>The <TT>color_average()</TT> method averages the colors in
-the image with the FLTK color value <TT>c</TT>. The <TT>i</TT>
-argument specifies the amount of the original image to combine
-with the color, so a value of 1.0 results in no color blend, and
-a value of 0.0 results in a constant image of the specified
-color. <I>The original image data is not altered by this
-method.</I></P>
-
-<H4><A NAME="Fl_Image.copy">virtual Fl_Image *copy(int W, int H);<BR>
-copy();</A></H4>
-
-<P>The <TT>copy()</TT> method creates a copy of the specified
-image. If the width and height are provided, the image is
-resized to the specified size. The image should be deleted (or in
-the case of <tt>Fl_Shared_Image</tt>, released) when you are done
-with it.</P>
-
-<H4><A NAME="Fl_Image.count">int count();</A></H4>
-
-<P>The <TT>count()</TT> method returns the number of data values
-associated with the image. The value will be 0 for images with
-no associated data, 1 for bitmap and color images, and greater
-than 2 for pixmap images.</P>
-
-<H4><A NAME="Fl_Image.d">int d();<BR>
-protected void d(int D);</A></H4>
-
-<P>The first form of the <TT>d()</TT> method returns the current
-image depth. The return value will be 0 for bitmaps, 1 for
-pixmaps, and 1 to 4 for color images.</P>
-
-<P>The second form is a protected method that sets the current
-image depth.</P>
-
-<H4><A NAME="Fl_Image.data">const char * const *data();<BR>
-protected void data(const char * const *data, int count);</A></H4>
-
-<P>The first form of the <TT>data()</TT> method returns a
-pointer to the current image data array. Use the
-<TT>count()</TT> method to find the size of the data array.</P>
-
-<P>The second form is a protected method that sets the current
-array pointer and count of pointers in the array.</P>
-
-<H4><A NAME="Fl_Image.desaturate">virtual void desaturate()</A></H4>
-
-<P>The <TT>desaturate()</TT> method converts an image to
-grayscale. If the image contains an alpha channel (depth = 4),
-the alpha channel is preserved. <I>This method does not alter
-the original image data.</I></P>
-
-<H4><A NAME="Fl_Image.draw">void draw(int X, int Y);<BR>
-virtual void draw(int X, int Y, int W, int H, int cx, int cy);</A></H4>
-
-<P>The <TT>draw()</TT> methods draw the image. The first form
-specifies the upper-lefthand corner of the image. The second
-form specifies a bounding box for the image, with the origin
-(upper-lefthand corner) of the image offset by the <TT>cx</TT>
-and <TT>cy</TT> arguments.</P>
-
-<H4><A NAME="Fl_Image.draw_empty">protected void draw_empty(int X, int Y);</A></H4>
-
-<P>The protected method <TT>draw_empty()</TT> draws a box with
-an X in it. It can be used to draw any image that lacks image
-data.</P>
-
-<H4><A NAME="Fl_Image.h">int h();<BR>
-protected void h(int H);</A></H4>
-
-<P>The first form of the <TT>h()</TT> method returns the current
-image height in pixels.</P>
-
-<P>The second form is a protected method that sets the current
-image height.</P>
-
-<H4><A NAME="Fl_Image.inactive">void inactive();</A></H4>
-
-<P>The <TT>inactive()</TT> method calls
-<TT>color_average(FL_BACKGROUND_COLOR, 0.33f)</TT> to produce
-an image that appears grayed out. <I>This method does not
-alter the original image data.</I></P>
-
-<H4><A NAME="Fl_Image.label">virtual void label(Fl_Widget *w);
-virtual void label(Fl_Menu_Item *m);</A></H4>
-
-<P>The <TT>label()</TT> methods are an obsolete way to set the
-image attribute of a widget or menu item. Use the
-<TT>image()</TT> or <TT>deimage()</TT> methods of the
-<TT>Fl_Widget</TT> and <TT>Fl_Menu_Item</TT> classes
-instead.</P>
-
-<H4><A NAME="Fl_Image.ld">int ld();<BR>
-protected void ld(int LD);</A></H4>
-
-<P>The first form of the <TT>ld()</TT> method returns the current
-line data size in bytes. Line data is extra data that is included
-after each line of color image data and is normally not present.</P>
-
-<P>The second form is a protected method that sets the current
-line data size in bytes.</P>
-
-<H4><A NAME="Fl_Image.uncache">void uncache();</A></H4>
-
-<P>If the image has been cached for display, delete the cache
-data. This allows you to change the data used for the image and
-then redraw it without recreating an image object.
-
-<H4><A NAME="Fl_Image.w">int w();<BR>
-protected void w(int W);</A></H4>
-
-<P>The first form of the <TT>w()</TT> method returns the current
-image width in pixels.</P>
-
-<P>The second form is a protected method that sets the current
-image width.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Input.html b/documentation/Fl_Input.html
deleted file mode 100644
index 422fe89c0..000000000
--- a/documentation/Fl_Input.html
+++ /dev/null
@@ -1,383 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Input</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name=Fl_Input>class Fl_Input</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href=Fl_Input_.html#Fl_Input_>Fl_Input_</A>
- |
- +----<B>Fl_Input</B>
- |
- +----<A href="Fl_File_Input.html">Fl_File_Input</A>, <A href=Fl_Float_Input.html#Fl_Float_Input>Fl_Float_Input</A>,
- <A href=Fl_Int_Input.html#Fl_Int_Input>Fl_Int_Input</A>, <A href=Fl_Multiline_Input.html#Fl_Multiline_Input>Fl_Multiline_Input</A>,
- <A href=Fl_Output.html#Fl_Output>Fl_Output</A>, <A href=Fl_Secret_Input.html#Fl_Secret_Input>Fl_Secret_Input</A>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Input.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>This is the FLTK text input widget. It displays a single line
-of text and lets the user edit it. Normally it is drawn with an
-inset box and a white background. The text may contain any
-characters (even 0), and will correctly display anything, using
-^X notation for unprintable control characters and \nnn notation
-for unprintable characters with the high bit set. It assumes the
-font can draw any characters in the ISO-8859-1 character set.</P>
-
-<CENTER><TABLE border=1 WIDTH=90% summary="Fl_Input keyboard and mouse bindings.">
-
-<TR><TD WIDTH=200><B>Mouse button 1</B></TD><TD>Moves the cursor to
- this point. Drag selects characters. Double click selects words.
- Triple click selects all text. Shift+click extends the selection.
- When you select text it is automatically copied to the clipboard.
-</TD></TR>
-
-<TR><TD><B>Mouse button 2</B></TD><TD>Insert the clipboard at
-the point clicked. You can also select a region and replace it with the
-clipboard by selecting the region with mouse button 2.
-</TD></TR>
-
-<TR><TD><B>Mouse button 3</B></TD><TD>Currently acts like button 1.</TD></TR>
-
-<TR><TD><B>Backspace</B></TD><TD>Deletes one character to the left, or
-deletes the selected region.</TD></TR>
-<TR><TD><B>Enter</B></TD><TD>May cause the callback, see when().</TD></TR>
-<TR><TD><B>^A or Home</B></TD><TD>Go to start of line.</TD></TR>
-<TR><TD><B>^B or Left</B></TD><TD>Move left</TD></TR>
-<TR><TD><B>^C</B></TD><TD>Copy the selection to the clipboard</TD></TR>
-<TR><TD><B>^D or Delete</B></TD><TD>Deletes one character to the right
-or deletes the selected region.</TD></TR>
-<TR><TD><B>^E or End</B></TD><TD>Go to the end of line.</TD></TR>
-<TR><TD><B>^F or Right</B></TD><TD>Move right</TD></TR>
-<TR><TD><B>^K</B></TD><TD>Delete to the end of line (next \n character)
-or deletes a single \n character. These deletions are all concatenated
-into the clipboard.</TD></TR>
-<TR><TD><B>^N or Down</B></TD><TD>Move down (for Fl_Multiline_Input
-only, otherwise it moves to the next input field).</TD></TR>
-<TR><TD><B>^P or Up</B></TD><TD>Move up (for Fl_Multiline_Input only,
-otherwise it moves to the previous input field).</TD></TR>
-<TR><TD><B>^U</B></TD><TD>Delete everything.</TD></TR>
-<TR><TD><B>^V or ^Y</B></TD><TD>Paste the clipboard</TD></TR>
-<TR><TD><B>^X or ^W</B></TD><TD>Copy the region to the clipboard and
-delete it.</TD></TR>
-<TR><TD><B>^Z or ^_</B></TD><TD>Undo. This is a single-level undo
-mechanism, but all adjacent deletions and insertions are concatenated
-into a single &quot;undo&quot;. Often this will undo a lot more than you
-expected.</TD></TR>
-<TR><TD><B>Shift+move</B></TD><TD>Move the cursor but also extend the
-selection.</TD></TR>
-
-<TR><TD><B>RightCtrl or
-<BR>Compose</B></TD><TD><a name=compose>Start</A>
-a <A href="events.html#compose">compose-character</A>
-sequence. The next one or two keys typed define the character to
-insert (see table that follows.)
-
-<p>For instance, to type "á" type [compose][a]['] or [compose]['][a].
-
-<P>The character "nbsp" (non-breaking space) is typed by using
-[compose][space].
-
-<P>The single-character sequences may be followed by a space if
-necessary to remove ambiguity. For instance, if you really want to
-type "ª~" rather than "ã" you must type [compose][a][space][~].
-
-<p>The same key may be used to "quote" control characters into the
-text. If you need a <tt>^Q</tt> character you can get one by typing
-[compose][Control+Q].
-
-<p>X may have a key on the keyboard
-defined as <tt>XK_Multi_key</tt>. If so this key may be used as well
-as the right-hand control key. You can set this up with the program
-<tt>xmodmap</tt>.
-
-<p>If your keyboard is set to support a foreign language you should
-also be able to type "dead key" prefix characters. On X you will
-actually be able to see what dead key you typed, and if you then move
-the cursor without completing the sequence the accent will remain
-inserted.</TD></TR>
-</TABLE></CENTER>
-
-<!-- NEW PAGE -->
-<center><table border=1 summary="Character Composition Table">
-<caption align="top">Character Composition Table</caption>
-<tr>
- <th>Keys</th><th>Char</th>
- <th>Keys</th><th>Char</th>
- <th>Keys</th><th>Char</th>
- <th>Keys</th><th>Char</th>
- <th>Keys</th><th>Char</th>
- <th>Keys</th><th>Char</th>
-
-</tr><tr>
- <td align=center><TT>sp</TT></td><td align=center><small>nbsp</small></td>
- <td align=center><TT>*</tt></td><td align=center>°</td>
- <td align=center><TT>` A</tt></td><td align=center>À</td>
- <td align=center><TT>D -</tt></td><td align=center>Ð</td>
- <td align=center><TT>` a</tt></td><td align=center>à</td>
- <td align=center><TT>d -</tt></td><td align=center>ð</td>
-</tr><tr>
- <td align=center><TT>!</tt></td><td align=center>¡</td>
- <td align=center><TT>+ -</tt></td><td align=center>±</td>
- <td align=center><TT>' A</tt></td><td align=center>Á</td>
- <td align=center><TT>~ N</tt></td><td align=center>Ñ</td>
- <td align=center><TT>' a</tt></td><td align=center>á</td>
- <td align=center><TT>~ n</tt></td><td align=center>ñ</td>
-</tr><tr>
- <td align=center><TT>%</tt></td><td align=center>¢</td>
- <td align=center><TT>2</tt></td><td align=center>²</td>
- <td align=center><TT>A ^</tt></td><td align=center>Â</td>
- <td align=center><TT>` O</tt></td><td align=center>Ò</td>
- <td align=center><TT>^ a</tt></td><td align=center>â</td>
- <td align=center><TT>` o</tt></td><td align=center>ò</td>
-</tr><tr>
- <td align=center><TT>#</tt></td><td align=center>£</td>
- <td align=center><TT>3</tt></td><td align=center>³</td>
- <td align=center><TT>~ A</tt></td><td align=center>Ã</td>
- <td align=center><TT>' O</tt></td><td align=center>Ó</td>
- <td align=center><TT>~ a</tt></td><td align=center>ã</td>
- <td align=center><TT>' o</tt></td><td align=center>ó</td>
-</tr><tr>
- <td align=center><TT>$</tt></td><td align=center>¤</td>
- <td align=center><TT>'</tt></td><td align=center>´</td>
- <td align=center><TT>: A</tt></td><td align=center>Ä</td>
- <td align=center><TT>^ O</tt></td><td align=center>Ô</td>
- <td align=center><TT>: a</tt></td><td align=center>ä</td>
- <td align=center><TT>^ o</tt></td><td align=center>ô</td>
-</tr><tr>
- <td align=center><TT>y =</tt></td><td align=center>¥</td>
- <td align=center><TT>u</tt></td><td align=center>µ</td>
- <td align=center><TT>* A</tt></td><td align=center>Å</td>
- <td align=center><TT>~ O</tt></td><td align=center>Õ</td>
- <td align=center><TT>* a</tt></td><td align=center>å</td>
- <td align=center><TT>~ o</tt></td><td align=center>õ</td>
-</tr><tr>
- <td align=center><TT>|</tt></td><td align=center>¦</td>
- <td align=center><TT>p</tt></td><td align=center>¶</td>
- <td align=center><TT>A E</tt></td><td align=center>Æ</td>
- <td align=center><TT>: O</tt></td><td align=center>Ö</td>
- <td align=center><TT>a e</tt></td><td align=center>æ</td>
- <td align=center><TT>: o</tt></td><td align=center>ö</td>
-</tr><tr>
- <td align=center><TT>&amp;</tt></td><td align=center>§</td>
- <td align=center><TT>.</tt></td><td align=center>·</td>
- <td align=center><TT>, C</tt></td><td align=center>Ç</td>
- <td align=center><TT>x</tt></td><td align=center>×</td>
- <td align=center><TT>, c</tt></td><td align=center>ç</td>
- <td align=center><TT>- :</tt></td><td align=center>÷</td>
-</tr><tr>
- <td align=center><TT>:</tt></td><td align=center>¨</td>
- <td align=center><TT>,</tt></td><td align=center>¸</td>
- <td align=center><TT>E `</tt></td><td align=center>È</td>
- <td align=center><TT>O /</tt></td><td align=center>Ø</td>
- <td align=center><TT>` e</tt></td><td align=center>è</td>
- <td align=center><TT>o /</tt></td><td align=center>ø</td>
-</tr><tr>
- <td align=center><TT>c</tt></td><td align=center>©</td>
- <td align=center><TT>1</tt></td><td align=center>¹</td>
- <td align=center><TT>' E</tt></td><td align=center>É</td>
- <td align=center><TT>` U</tt></td><td align=center>Ù</td>
- <td align=center><TT>' e</tt></td><td align=center>é</td>
- <td align=center><TT>` u</tt></td><td align=center>ù</td>
-</tr><tr>
- <td align=center><TT>a</tt></td><td align=center>ª</td>
- <td align=center><TT>o</tt></td><td align=center>º</td>
- <td align=center><TT>^ E</tt></td><td align=center>Ê</td>
- <td align=center><TT>' U</tt></td><td align=center>Ú</td>
- <td align=center><TT>^ e</tt></td><td align=center>ê</td>
- <td align=center><TT>' u</tt></td><td align=center>ú</td>
-</tr><tr>
- <td align=center><TT>&lt; &lt;</tt></td><td align=center>«</td>
- <td align=center><TT>&gt; &gt;</tt></td><td align=center>»</td>
- <td align=center><TT>: E</tt></td><td align=center>Ë</td>
- <td align=center><TT>^ U</tt></td><td align=center>Û</td>
- <td align=center><TT>: e</tt></td><td align=center>ë</td>
- <td align=center><TT>^ u</tt></td><td align=center>û</td>
-</tr><tr>
- <td align=center><TT>~</tt></td><td align=center>¬</td>
- <td align=center><TT>1 4</tt></td><td align=center>¼</td>
- <td align=center><TT>` I</tt></td><td align=center>Ì</td>
- <td align=center><TT>: U</tt></td><td align=center>Ü</td>
- <td align=center><TT>` i</tt></td><td align=center>ì</td>
- <td align=center><TT>: u</tt></td><td align=center>ü</td>
-</tr><tr>
- <td align=center><TT>-</tt></td><td align=center>­</td>
- <td align=center><TT>1 2</tt></td><td align=center>½</td>
- <td align=center><TT>' I</tt></td><td align=center>Í</td>
- <td align=center><TT>' Y</tt></td><td align=center>Ý</td>
- <td align=center><TT>' i</tt></td><td align=center>í</td>
- <td align=center><TT>' y</tt></td><td align=center>ý</td>
-</tr><tr>
- <td align=center><TT>r</tt></td><td align=center>®</td>
- <td align=center><TT>3 4</tt></td><td align=center>¾</td>
- <td align=center><TT>^ I</tt></td><td align=center>Î</td>
- <td align=center><TT>T H</tt></td><td align=center>Þ</td>
- <td align=center><TT>^ i</tt></td><td align=center>î</td>
- <td align=center><TT>t h</tt></td><td align=center>þ</td>
-</tr><tr>
- <td align=center><TT>_</tt></td><td align=center>¯</td>
- <td align=center><TT>?</tt></td><td align=center>¿</td>
- <td align=center><TT>: I</tt></td><td align=center>Ï</td>
- <td align=center><TT>s s</tt></td><td align=center>ß</td>
- <td align=center><TT>: i</tt></td><td align=center>ï</td>
- <td align=center><TT>: y</tt></td><td align=center>ÿ</td>
-</tr>
-</table></center>
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Input methods.">
-<TR><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Input.Fl_Input>Fl_Input</A></LI>
-<LI><A href=#Fl_Input.~Fl_Input>~Fl_Input</A></LI>
-<LI><A href=#Fl_Input.cursor_color>cursor_color</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Input.index>index</A></LI>
-<LI><A href=#Fl_Input.size>size</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Input.static_value>static_value</A></LI>
-<LI><A href=#Fl_Input.textcolor>textcolor</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Input.textfont>textfont</A></LI>
-<LI><A href=#Fl_Input.textsize>textsize</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Input.value>value</A></LI>
-<LI><A href=#Fl_Input.when>when</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-
-<H4><A name="Fl_Input.Fl_Input">Fl_Input::Fl_Input(int x, int y, int w,
-int h, const char *label = 0)</A></H4>
-
-<P>Creates a new <TT>Fl_Input</TT> widget using the given position, size,
-and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>.
-
-<H4><A name="Fl_Input.~Fl_Input">virtual Fl_Input::~Fl_Input()</A></H4>
-
-<P>Destroys the widget and any value associated with it.
-
-<H4><A name="Fl_Input.value">const char *Fl_Input::value() const
-<BR>int Fl_Input::value(const char*)
-<BR>int Fl_Input::value(const char*, int)</A></H4>
-
-<P>The first form returns the current value, which is a pointer
-to the internal buffer and is valid only until the next event is
-handled.
-
-<P>The second two forms change the text and set the mark and the
-point to the end of it. The string is copied to the internal
-buffer. Passing <TT>NULL</TT> is the same as &quot;&quot;.
-This returns non-zero if the new value is different than the
-current one. You can use the second version to directly set the
-length if you know it already or want to put nul's in the
-text.</P>
-
-<H4><A name="Fl_Input.static_value">int Fl_Input::static_value(const
-char*)
-<BR>int Fl_Input::static_value(const char*, int)</A></H4>
-
-<P>Change the text and set the mark and the point to the end of
-it. The string is <I>not</I> copied. If the user edits the
-string it is copied to the internal buffer then. This can save a
-great deal of time and memory if your program is rapidly
-changing the values of text fields, but this will only work if
-the passed string remains unchanged until either the
-<TT>Fl_Input</TT> is destroyed or <TT>value()</TT> is called
-again.
-
-<H4><A name="Fl_Input.size">int Fl_Input::size() const</A></H4>
-
-<P>Returns the number of characters in <TT>value()</TT>. This
-may be greater than <TT>strlen(value())</TT> if there are nul
-characters in it.
-
-<H4><A name="Fl_Input.index">char Fl_Input::index(int) const</A></H4>
-
-<P>Same as <TT>value()[n]</TT>, but may be faster in plausible
-implementations. No bounds checking is done.
-
-<H4><A name="Fl_Input.when">Fl_When Fl_Widget::when() const
-<BR>void Fl_Widget::when(Fl_When)</A></H4>
-
-<P>Controls when callbacks are done. The following values are useful,
-the default value is <TT>FL_WHEN_RELEASE</TT>:
-
-<UL>
-
- <LI><TT>0</TT>: The callback is not done, but
- <TT>changed()</TT> is turned on.</LI>
-
- <LI><TT>FL_WHEN_CHANGED</TT>: The callback is done each
- time the text is changed by the user.</LI>
-
- <LI><TT>FL_WHEN_RELEASE</TT>: The callback will be done
- when this widget loses the focus, including when the
- window is unmapped. This is a useful value for text
- fields in a panel where doing the callback on every
- change is wasteful. However the callback will also
- happen if the mouse is moved out of the window, which
- means it should not do anything visible (like pop up an
- error message). You might do better setting this to
- zero, and scanning all the items for <TT>changed()</TT>
- when the OK button on a panel is pressed.</LI>
-
- <LI><TT>FL_WHEN_ENTER_KEY</TT>: If the user types the
- Enter key, the entire text is selected, and the callback
- is done if the text has changed. Normally the Enter key
- will navigate to the next field (or insert a newline for
- a <TT>Fl_Mulitline_Input</TT>), this changes the
- behavior.</LI>
-
- <LI><TT>FL_WHEN_ENTER_KEY|FL_WHEN_NOT_CHANGED</TT>: The
- Enter key will do the callback even if the text has not
- changed. Useful for command fields.</LI>
-
-</UL>
-
-<H4><A name="Fl_Input.textcolor">Fl_Color Fl_Input::textcolor() const
-<BR>void Fl_Input::textcolor(Fl_Color)</A></H4>
-
-<P>Gets or sets the color of the text in the input field.
-
-<H4><A name="Fl_Input.textfont">Fl_Font Fl_Input::textfont() const
-<BR>void Fl_Input::textfont(Fl_Font)</A></H4>
-
-<P>Gets or sets the font of the text in the input field.
-
-<H4><A name="Fl_Input.textsize">uchar Fl_Input::textsize() const
-<BR>void Fl_Input::textsize(uchar)</A></H4>
-
-<P>Gets or sets the size of the text in the input field.
-
-<H4><A name="Fl_Input.cursor_color">Fl_Color Fl_Input::cursor_color()
-const
-<BR>void Fl_Input::cursor_color(Fl_Color)</A></H4>
-
-<P>Get or set the color of the cursor. This is black by default.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Input_.html b/documentation/Fl_Input_.html
deleted file mode 100644
index 0c6c8fe7b..000000000
--- a/documentation/Fl_Input_.html
+++ /dev/null
@@ -1,283 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Input_</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_Input_">class Fl_Input_</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href=Fl_Widget.html#Fl_Widget>Fl_Widget</A>
- |
- +----<B>Fl_Input_</B>
- |
- +----<A href=Fl_Input.html#Fl_Input>Fl_Input</A>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Input_.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>This is a virtual base class below <A
-href="Fl_Input.html#Fl_Input"><TT>Fl_Input</TT></A>. It has all
-the same interfaces, but lacks the <TT>handle()</TT> and
-<TT>draw()</TT> method. You may want to subclass it if you are
-one of those people who likes to change how the editing keys
-work.
-
-<P>This can act like any of the subclasses of Fl_Input, by
-setting <TT>type()</TT> to one of the following values:</P>
-
-<UL><PRE>
-#define FL_NORMAL_INPUT 0
-#define FL_FLOAT_INPUT 1
-#define FL_INT_INPUT 2
-#define FL_MULTILINE_INPUT 4
-#define FL_SECRET_INPUT 5
-#define FL_INPUT_TYPE 7
-#define FL_INPUT_READONLY 8
-#define FL_NORMAL_OUTPUT (FL_NORMAL_INPUT | FL_INPUT_READONLY)
-#define FL_MULTILINE_OUTPUT (FL_MULTILINE_INPUT | FL_INPUT_READONLY)
-#define FL_INPUT_WRAP 16
-#define FL_MULTILINE_INPUT_WRAP (FL_MULTILINE_INPUT | FL_INPUT_WRAP)
-#define FL_MULTILINE_OUTPUT_WRAP (FL_MULTILINE_INPUT | FL_INPUT_READONLY | FL_INPUT_WRAP)
-</PRE></UL>
-
-<H3>Methods</H3>
-
-<CENTER>
-<TABLE width="90%" summary="Fl_Input_ methods.">
-<TR><TD align="left" valign="top">
-<UL>
-<LI><A href="#Fl_Input_.Fl_Input_">Fl_Input_</A></LI>
-<LI><A href="#Fl_Input_.~Fl_Input_">~Fl_Input_</A></LI>
-<LI><A href="#Fl_Input_.copy">copy</A></LI>
-<LI><A href="#Fl_Input_.copy_cuts">copy_cuts</A></LI>
-</UL>
-</TD><TD align="left" valign="top">
-<UL>
-<LI><A href="#Fl_Input_.cut">cut</A></LI>
-<LI><A href="#Fl_Input_.drawtext">drawtext</A></LI>
-<LI><A href="#Fl_Input_.handletext">handletext</A></LI>
-<LI><A href="#Fl_Input_.input_type">input_type</A></LI>
-</UL>
-</TD><TD align="left" valign="top">
-<UL>
-<LI><A href="#Fl_Input_.insert">insert</A></LI>
-<LI><A href="#Fl_Input_.lineboundary">lineboundary</A></LI>
-<LI><A href="#Fl_Input_.mark">mark</A></LI>
-<LI><A href="#Fl_Input_.maybe_do_callback">maybe_do_callback</A></LI>
-</UL>
-</TD><TD align="left" valign="top">
-<UL>
-<LI><A href="#Fl_Input_.maximum_size">maximum_size</A></LI>
-<LI><A href="#Fl_Input_.position">position</A></LI>
-<LI><A href="#Fl_Input_.readonly">readonly</A></LI>
-<LI><A href="#Fl_Input_.replace">replace</A></LI>
-</UL>
-</TD><TD align="left" valign="top">
-<UL>
-<LI><A href="#Fl_Input_.shortcut">shortcut</A></LI>
-<LI><A href="#Fl_Input_.undo">undo</A></LI>
-<LI><A href="#Fl_Input_.up_down_position">up_down_position</A></LI>
-<LI><A href="#Fl_Input_.wrap">wrap</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-
-<H4><A name="Fl_Input_.Fl_Input_">Fl_Input_::Fl_Input_(int x, int y, int
-w, int h, const char *label = 0)</A></H4>
-
-<P>Creates a new <TT>Fl_Input_</TT> widget using the given
-position, size, and label string. The default boxtype is
-<TT>FL_DOWN_BOX</TT>.
-
-<H4><A name="Fl_Input_.~Fl_Input_">virtual Fl_Input_::~Fl_Input_()</A></H4>
-
-<P>The destructor removes the widget and any value associated with it.
-
-<H4><A name="Fl_Input_.wordboundary">int Fl_Input_::wordboundary(int i)
-const</A></H4>
-
-<P>Returns true if position <TT>i</TT> is at the start or end of a word.
-
-<H4><A name="Fl_Input_.lineboundary">int Fl_Input_::lineboundary(int i)
-const</A></H4>
-
-<P>Returns true if position <TT>i</TT> is at the start or end of a line.
-
-<H4><A name="Fl_Input_.drawtext">void Fl_Input_::drawtext(int,int,int,int)</A></H4>
-
-<P>Draw the text in the passed bounding box. If <TT>damage()
-&amp; FL_DAMAGE_ALL</TT> is true, this assumes the area has
-already been erased to <TT>color()</TT>. Otherwise it does
-minimal update and erases the area itself.
-
-<H4><A name="Fl_Input_.handletext">int Fl_Input_::handletext(int
-e,int,int,int,int)</A></H4>
-
-<P>Default handler for all event types. Your <TT>handle()</TT>
-method should call this for all events that it does not handle
-completely. You must pass it the same bounding box as you do
-when calling <TT>drawtext()</TT> from your <tt>draw()</tt>
-method. Handles <TT>FL_PUSH</TT>, <TT>FL_DRAG</TT>,
-<TT>FL_RELEASE</TT> to select text, handles <TT>FL_FOCUS</TT>
-and <TT>FL_UNFOCUS</TT> to show and hide the cursor.
-
-<H4><A name="Fl_Input_.up_down_position">int
-Fl_Input_::up_down_position(int i, int keepmark=0)</A></H4>
-
-<P>Do the correct thing for arrow keys. Sets the position (and
-mark if <I>keepmark</I> is zero) to somewhere in the same line
-as <I>i</I>, such that pressing the arrows repeatedly will cause
-the point to move up and down.
-
-<H4><A name="Fl_Input_.maybe_do_callback">void
-Fl_Input_::maybe_do_callback()</A></H4>
-
-<P>Does the callback if <TT>changed()</TT> is true or if
-<TT>when() &amp; FL_WHEN_NOT_CHANGED</TT> is non-zero. You
-should call this at any point you think you should generate a
-callback.
-
-<H4><A name="Fl_Input_.maximum_size">void Fl_Input_::maximum_size(int m)<BR>
-int Fl_Input_::maximum_size() const</A></H4>
-
-<P>Sets or returns the maximum length of the input field.
-
-<H4><A name="Fl_Input_.position">int Fl_Input_::position() const
-<BR>int Fl_Input_::position(int new_position, int new_mark)
-<BR>int Fl_Input_::position(int new_position_and_new_mark)</A></H4>
-
-<P>The input widget maintains two pointers into the string. The
-&quot;position&quot; is where the cursor is. The
-&quot;mark&quot; is the other end of the selected text. If they
-are equal then there is no selection. Changing this does not
-affect the clipboard (use <TT>copy()</TT> to do that).
-
-<P>Changing these values causes a <TT>redraw()</TT>. The new
-values are bounds checked. The return value is non-zero if the
-new position is different than the old one. <TT>position(n)</TT>
-is the same as <TT>position(n,n)</TT>. <TT>mark(n)</TT> is the
-same as <TT>position(position(),n)</TT>.</P>
-
-<H4><A name="Fl_Input_.mark">int Fl_Input_::mark() const
-<BR> int Fl_Input_::mark(int new_mark)</A></H4>
-
-<P>Gets or sets the current selection mark. <TT>mark(n)</TT> is
-the same as <TT>position(position(),n)</TT>.
-
-<H4><A name="Fl_Input_.replace">int Fl_Input_::replace(int a, int b,
-const char *insert, int length=0)</A></H4>
-
-<P>This call does all editing of the text. It deletes the region
-between <TT>a</TT> and <TT>b</TT> (either one may be less or
-equal to the other), and then inserts the string <TT>insert</TT>
-at that point and leaves the <TT>mark()</TT> and
-<TT>position()</TT> after the insertion. Does the callback if
-<TT>when() &amp; FL_WHEN_CHANGED</TT> and there is a change.
-
-<P>Set <TT>start</TT> and <TT>end</TT> equal to not delete
-anything. Set <TT>insert</TT> to <TT>NULL</TT> to not insert
-anything.</P>
-
-<P><TT>length</TT> must be zero or <TT>strlen(insert)</TT>, this
-saves a tiny bit of time if you happen to already know the
-length of the insertion, or can be used to insert a portion of a
-string or a string containing nul's.</P>
-
-<P><TT>a</TT> and <TT>b</TT> are clamped to the
-0..<TT>size()</TT> range, so it is safe to pass any values.</P>
-
-<P><TT>cut()</TT> and <TT>insert()</TT> are just inline
-functions that call <TT>replace()</TT>.</P>
-
-<H4><A name="Fl_Input_.cut">int Fl_Input_::cut()
-<BR> int Fl_Input_::cut(int n)
-<BR> int Fl_Input_::cut(int a, int b);</A></H4>
-
-<P><TT>Fl_Input_::cut()</TT> deletes the current selection.
-<TT>cut(n)</TT> deletes <TT>n</TT> characters after the
-<TT>position()</TT>. <TT>cut(-n)</TT> deletes <TT>n</TT>
-characters before the <TT>position()</TT>. <TT>cut(a,b)</TT>
-deletes the characters between offsets <TT>a</TT> and
-<TT>b</TT>. <TT>A</TT>, <TT>b</TT>, and <TT>n</TT> are all
-clamped to the size of the string. The mark and point are left
-where the deleted text was.
-
-<P>If you want the data to go into the clipboard, do
-<TT>Fl_Input_::copy()</TT> before calling
-<TT>Fl_Input_::cut()</TT>, or do <TT>Fl_Input_::copy_cuts()</TT>
-afterwards.</P>
-
-<H4><A name="Fl_Input_.insert">int Fl_Input_::insert(const char *t,int
-l=0)</A></H4>
-
-<P>Insert the string <TT>t</TT> at the current position, and
-leave the mark and position after it. If <TT>l</TT> is not zero
-then it is assumed to be <TT>strlen(t)</TT>.
-
-<H4><A name="Fl_Input_.copy">int Fl_Input_::copy(int clipboard)</A></H4>
-
-<P>Put the current selection between <TT>mark()</TT> and
-<TT>position()</TT> into the specified clipboard. Does not
-replace the old clipboard contents if <TT>position()</TT> and
-<TT>mark()</TT> are equal. Clipboard 0 maps to the current text
-selection and clipboard 1 maps to the cut/paste clipboard.
-
-<H4><A name="Fl_Input_.undo">int Fl_Input_::undo()</A></H4>
-
-<P>Does undo of several previous calls to <TT>replace()</TT>.
-Returns non-zero if any change was made.
-
-<H4><A name="Fl_Input_.copy_cuts">int Fl_Input_::copy_cuts()</A></H4>
-
-<P>Copy all the previous contiguous cuts from the undo
-information to the clipboard. This is used to make ^K work.
-
-<H4><A name="Fl_Input_.input_type">int Fl_Input_::input_type() const
-<BR>void Fl_Input_::input_type(int)</A></H4>
-
-<P>Gets or sets the input field type.
-
-<H4><A name="Fl_Input_.readonly">int Fl_Input_::readonly() const
-<BR>void Fl_Input_::readonly(int)</A></H4>
-
-<P>Gets or sets the read-only state of the input field.
-
-<H4><A name="Fl_Input_.shortcut">ulong Fl_Input_::shortcut() const
-<BR> void Fl_Input_::shortcut(ulong key)</A></H4>
- The first form returns the current shortcut key for the Input.
-<P>The second form sets the shortcut key to <TT>key</TT>. Setting this
-overrides the use of '&amp;' in the <TT>label()</TT>. The value is a bitwise
-OR of a key and a set of shift flags, for example <CODE>FL_ALT | 'a'</CODE>
-, <CODE>FL_ALT | (FL_F + 10)</CODE>, or just <CODE>'a'</CODE>. A value
-of 0 disables the shortcut. </P>
-<P>The key can be any value returned by <A href="Fl.html#Fl.event_key">
-<TT>Fl::event_key()</TT></A>, but will usually be an ASCII letter. Use
-a lower-case letter unless you require the shift key to be held down. </P>
-<P>The shift flags can be any set of values accepted by <A href="Fl.html#Fl.event_state">
-<TT>Fl::event_state()</TT></A>. If the bit is on that shift key must
-be pushed. Meta, Alt, Ctrl, and Shift must be off if they are not in
-the shift flags (zero for the other bits indicates a &quot;don't care&quot;
-setting). </P>
-
-<H4><A name="Fl_Input_.wrap">int Fl_Input_::wrap() const
-<BR>void Fl_Input_::wrap(int)</A></H4>
-
-<P>Gets or sets the word wrapping state of the input field. Word
-wrap is only functional with multi-line input fields.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Input_Choice.html b/documentation/Fl_Input_Choice.html
deleted file mode 100644
index a754e2526..000000000
--- a/documentation/Fl_Input_Choice.html
+++ /dev/null
@@ -1,100 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Input_Choice</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name=Fl_Input_Choice>class Fl_Input_Choice</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href=Fl_Group.html#Fl_Group>Fl_Group</A>
- |
- +----<B>Fl_Input_Choice</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Input_Choice.H&gt;
-</PRE></UL>
-
-<P align='center'>
-<IMG SRC='input_choice.jpg'><BR>
-<I>Plastic and normal Fl::scheme()s.</I>
-</P>
-
-<H3>Description</H3>
-<P>A combination of the input widget and a menu button.
-The user can either type into the input area, or use the
-menu button chooser on the right, which loads the input area
-with predefined text. Normally it is drawn with an inset box
-and a white background.
-<P>
-The application can directly access both the input and menu
-widgets directly, using the <A HREF=#Fl_Input_Choice.menubutton>menubutton()</A>
-and <A HREF=#Fl_Input_Choice.input>input()</A> accessor methods.
-
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Input_Choice methods."><TR><TD align=left valign=top>
-<UL TYPE=DISC>
- <LI><A href='#Fl_Input_Choice.Fl_Input_Choice'>Fl_Input_Choice</A></LI>
- <LI><A href='#Fl_Input_Choice.~Fl_Input_Choice'>~Fl_Input_Choice</A></LI>
- <LI><A href='#Fl_Input_Choice.add'>add</A></LI>
- <LI><A href='#Fl_Input_Choice.clear'>clear</A></LI>
- <LI><A href='#Fl_Input_Choice.input'>input</A></LI>
- <LI><A href='#Fl_Input_Choice.menu'>menu</A></LI>
- <LI><A href='#Fl_Input_Choice.menubutton'>menubutton</A></LI>
- <LI><A href='#Fl_Input_Choice.value'>value</A></LI>
-</TD></TR></TABLE>
-</CENTER>
-
-<H4><A name="Fl_Input_Choice.Fl_Input_Choice">Fl_Input_Choice::Fl_Input_Choice(int x, int y, int w,
-int h, const char *label = 0)</A></H4>
-
-<P>Creates a new <TT>Fl_Input_Choice</TT> widget using the given position, size,
-and label string.
-
-<H4><A name="Fl_Input_Choice.~Fl_Input_Choice">virtual Fl_Input_Choice::~Fl_Input_Choice()</A></H4>
-
-<P>Destroys the widget and any value associated with it.
-
-<h4><a name='Fl_Input_Choice.add'>void Fl_Input_Choice::add(const char *s)</a></h4>
-
-<p>Adds an item to the menu.</p>
-
-<h4><a name='Fl_Input_Choice.clear'>void Fl_Input_Choice::clear()</a></h4>
-
-<p>Removes all items from the menu.</p>
-
-<H4><A name="Fl_Input_Choice.input">Fl_Input *Fl_Input_Choice::input()</A></H4>
-
-<p>Returns a reference to the internal <tt>Fl_Input</tt> widget.</p>
-
-<h4><a name='Fl_Input_Choice.menu'>void Fl_Input_Choice::menu(const Fl_Menu_Item *m)<br>
-const Fl_Menu_Item *menu()</A></h4>
-
-<p>Gets or sets the <tt>Fl_Menu_Item</tt> array used for the menu.</p>
-
-<H4><A name="Fl_Input_Choice.menubutton">Fl_Menu_Button *Fl_Input_Choice::menubutton()</A></H4>
-
-<P>Returns a reference to the internal <tt>Fl_Menu_Button</tt> widget.
-
-<H4><A name="Fl_Input_Choice.value">void Fl_Input_Choice::value(const char *s)<br>
-void Fl_Input_Choice::value(int v)<br>
-const char *Fl_Input_Choice::value() const</A></H4>
-
-<P>Sets or returns the input widget's current contents. The
-second form sets the contents using the index into the menu
-which you can set as an integer. Setting the value effectively
-'chooses' this menu item, and sets it as the new input text,
-deleting the previous text.</p>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Int_Input.html b/documentation/Fl_Int_Input.html
deleted file mode 100644
index e495bfb46..000000000
--- a/documentation/Fl_Int_Input.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Int_Input</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Int_Input>class Fl_Int_Input</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Input.html#Fl_Input>Fl_Input</A>
- |
- +----<B>Fl_Int_Input</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Int_Input.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Int_Input</TT> class is a subclass of <TT>Fl_Input</TT>
- that only allows the user to type decimal digits (or hex numbers of
- the form <tt>0xaef</tt>).
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Int_Input.Fl_Int_Input>Fl_Int_Input</A></LI>
-<LI><A href=#Fl_Int_Input.~Fl_Int_Input>~Fl_Int_Input</A></LI>
-</UL>
-<H4><A name=Fl_Int_Input.Fl_Int_Input>Fl_Int_Input::Fl_Int_Input(int x,
-int y, int w, int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Int_Input</TT> widget using the given position,
-size, and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>.
-<H4><A name=Fl_Int_Input.~Fl_Int_Input>virtual
-Fl_Int_Input::~Fl_Int_Input()</A></H4>
- Destroys the widget and any value associated with it. </BODY></HTML>
diff --git a/documentation/Fl_JPEG_Image.html b/documentation/Fl_JPEG_Image.html
deleted file mode 100644
index a49e4fc7e..000000000
--- a/documentation/Fl_JPEG_Image.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_JPEG_Image</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_JPEG_Image">class Fl_JPEG_Image</A></H2>
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href="Fl_RGB_Image.html">Fl_RGB_Image</A>
- |
- +----<B>Fl_JPEG_Image</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_JPEG_Image.H&gt;
-</PRE></UL>
-
-<H3>Additional Libraries</H3>
-
-<UL><PRE>
--lfltk_images / fltkimages.lib
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_JPEG_Image</TT> class supports loading, caching,
-and drawing of Joint Photographic Experts Group (JPEG) File
-Interchange Format (JFIF) images. The class supports grayscale
-and color (RGB) JPEG image files.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_JPEG_Image.Fl_JPEG_Image">Fl_JPEG_Image</A></LI>
-
- <LI><A href="#Fl_JPEG_Image.~Fl_JPEG_Image">~Fl_JPEG_Image</A></LI>
-
-</UL>
-
-<H4><A name="Fl_JPEG_Image.Fl_JPEG_Image">Fl_JPEG_Image::Fl_JPEG_Image(const char *filename);</A></H4>
-
-<P>The constructor loads the named JPEG image.</P>
-
-<H4><A name="Fl_JPEG_Image.~Fl_JPEG_Image">Fl_JPEG_Image::~Fl_JPEG_Image();</A></H4>
-
-<P>The destructor free all memory and server resources that are used by
-the image.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Light_Button.html b/documentation/Fl_Light_Button.html
deleted file mode 100644
index 4bba33084..000000000
--- a/documentation/Fl_Light_Button.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Light_Button</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Light_Button>class Fl_Light_Button</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Button.html#Fl_Button>Fl_Button</A>
- |
- +----<B>Fl_Light_Button</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Light_Button.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
-Buttons generate callbacks when they are clicked by the user. You
-control exactly when and how by changing the values for <TT>type()</TT>
-and <TT>when()</TT>.
-<P ALIGN=CENTER><IMG SRC="Fl_Light_Button.gif" ALT="Fl_Light_Button widget."></P>
-<P>The <TT>Fl_Light_Button</TT> subclass display the &quot;on&quot; state by
-turning on a light, rather than drawing pushed in. The shape of the
-&quot;light&quot; is initially set to FL_DOWN_BOX. The color of the light when
-on is controlled with <TT>selection_color()</TT>, which defaults to
-FL_YELLOW.</P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Light_Button.Fl_Light_Button>Fl_Light_Button</A></LI>
-<LI><A href=#Fl_Light_Button.~Fl_Light_Button>~Fl_Light_Button</A></LI>
-</UL>
-<H4><A name=Fl_Light_Button.Fl_Light_Button>
-Fl_Light_Button::Fl_Light_Button(int x, int y, int w, int h, const char
-*label = 0)</A></H4>
- Creates a new <TT>Fl_Light_Button</TT> widget using the given
-position, size, and label string.
-<H4><A name=Fl_Light_Button.~Fl_Light_Button>
-Fl_Light_Button::~Fl_Light_Button()</A></H4>
- The destructor deletes the check button. </BODY></HTML>
diff --git a/documentation/Fl_Menu_.html b/documentation/Fl_Menu_.html
deleted file mode 100644
index 64eaacbd9..000000000
--- a/documentation/Fl_Menu_.html
+++ /dev/null
@@ -1,316 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Menu_</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Menu_>class Fl_Menu_</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Widget.html#Fl_Widget>Fl_Widget</A>
- |
- +----<B>Fl_Menu_</B>----<A href=Fl_Menu_Item.html#Fl_Menu_Item>Fl_Menu_Item</A>
- |
- +----<A href=Fl_Choice.html#Fl_Choice>Fl_Choice</A>, <A href=Fl_Menu_Bar.html#Fl_Menu_Bar>Fl_Menu_Bar</A>, <A href=Fl_Menu_Button.html#Fl_Menu_Button>Fl_Menu_Button</A>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Menu_.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
-All widgets that have a menu in FLTK are subclassed off of this class.
-Currently FLTK provides you with <A href=Fl_Menu_Button.html#Fl_Menu_Button>
-<TT>Fl_Menu_Button</TT></A>, <A href=Fl_Menu_Bar.html#Fl_Menu_Bar><TT>
-Fl_Menu_Bar</TT></A>, and <A href=Fl_Choice.html#Fl_Choice><TT>Fl_Choice</TT>
-</A>.
-
-<P>The class contains a pointer to an array of structures of type <A
-href=Fl_Menu_Item.html#Fl_Menu_Item> <TT>Fl_Menu_Item</TT></A>. The
-array may either be supplied directly by the user program, or it may
-be "private": a dynamically allocated array managed by the Fl_Menu_.
-
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Menu_ methods.">
-<TR><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Menu_.Fl_Menu_>Fl_Menu_</A></LI>
-<LI><A href=#Fl_Menu_.~Fl_Menu_>~Fl_Menu_</A></LI>
-<LI><A href=#Fl_Menu_.add>add</A></LI>
-<LI><A href=#Fl_Menu_.clear>clear</A></LI>
-<LI><A href=#Fl_Menu_.copy>copy</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Menu_.down_box>down_box</A></LI>
-<LI><A href=#Fl_Menu_.find_item>find_item</A></LI>
-<LI><A href=#Fl_Menu_.global>global</A></LI>
-<LI><A href=#Fl_Menu_.item_pathname>item_pathname</A></LI>
-<LI><A href=#Fl_Menu_.menu>menu</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Menu_.mode>mode</A></LI>
-<LI><A href=#Fl_Menu_.mvalue>mvalue</A></LI>
-<LI><A href=#Fl_Menu_.remove>remove</A></LI>
-<LI><A href=#Fl_Menu_.replace>replace</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Menu_.shortcut>shortcut</A></LI>
-<LI><A href=#Fl_Menu_.size>size</A></LI>
-<LI><A href=#Fl_Menu_.test_shortcut>test_shortcut</A></LI>
-<LI><A href=#Fl_Menu_.text>text</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Menu_.textfont>textfont</A></LI>
-<LI><A href=#Fl_Menu_.textsize>textsize</A></LI>
-<LI><A href=#Fl_Menu_.value>value</A></LI>
-<LI><A href=#Fl_Menu_.textcolor>textcolor</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-
-<H4><A name=Fl_Menu_.Fl_Menu_>Fl_Menu_::Fl_Menu_(int x, int y, int w,
-int h, const char *label = 0)</A></H4>
-
-Creates a new <TT>Fl_Menu_</TT> widget using the given position, size,
-and label string.<tt> menu()</tt> is initialized to null.
-
-
-<H4><A name=Fl_Menu_.~Fl_Menu_>virtual Fl_Menu_::~Fl_Menu_()</A></H4>
-
-If the menu array is private the memory it uses is freed.
-
-
-<H4><A name=Fl_Menu_.add>int Fl_Menu_::add(const char* label, const
-char* shortcut, Fl_Callback*, void *user_data=0, int flags=0)</a><br>
-int Fl_Menu_::add(const char* label, int shortcut, Fl_Callback*,
-void *user_data=0, int flags=0)</h4>
-
-<p>Adds a new menu item, with a <TT>title</TT> string, <TT>
-shortcut</TT> string, <TT>callback</TT>, argument to the
-callback, and flags. If the menu array was directly set with
-<tt>menu(x)</tt> then <tt>copy()</tt> is done to make a private
-array.
-
-<p>The characters "&amp;", "/", "\", and "_" are treated as
-special characters in the label string. The "&amp;" character
-specifies that the following character is an accelerator and
-will be underlined. The "\" character is used to escape the next
-character in the string. Labels starting with the "_" character
-cause a divider to be placed after that menu item.</p>
-
-<p>A label of the form &quot;foo/bar/baz&quot; will create a
-submenus called &quot;foo&quot; and &quot;bar&quot; with an
-entry called &quot;baz&quot;. The "/" character is ignored if it
-appears as the first character of the label string, e.g.
-"/foo/bar/baz".</p>
-
-<p>The label string is copied to new memory and can be freed.
-The other arguments (including the shortcut) are copied into the
-menu item unchanged. </P>
-
-<P>If an item exists already with that name then it is replaced with
-this new one. Otherwise this new one is added to the end of the
-correct menu or submenu. The return value is the offset into the array
-that the new entry was placed at.</P>
-
-<P>Shortcut can be 0L, or either a modifier/key combination (for example
-FL_CTRL+'A') or a string describing the shortcut in one of two ways:</p>
-
-<pre>
- [#+^]&lt;ascii_value&gt;  eg. "97", "^97", "+97", "#97"
- [#+^]&lt;ascii_char&gt;  eg. "a", "^a", "+a", "#a"
-</pre>
-..where &lt;ascii_value&gt; is a decimal value representing an
-ascii character (eg. 97 is the ascii for 'a'), and the optional
-prefixes enhance the value that follows. Multiple prefixes must
-appear in the above order.
-<pre>
- # - Alt
- + - Shift
- ^ - Control
-</pre>
-Text shortcuts are converted to integer shortcut by calling
-<tt>int fl_old_shortcut(const char*)</tt>.
-
-<P>The return value is the index into the array that the entry was put. </P>
-
-<P>No items must be added to a menu during a callback to the same menu.</P>
-
-
-<h4>int Fl_Menu_::add(const char *)</H4>
-
-<P>The passed string is split at any '|' characters and then
-<TT>add(s,0,0,0,0)</TT> is done with each section. This is
-often useful if you are just using the value, and is compatible
-with Forms and other GL programs. The section strings use the
-same special characters as described for the long version of <a
-href='#Fl_Menu_.add'><tt>add()</tt></a></p>
-
-<P>No items must be added to a menu during a callback to the same menu.</P>
-
-
-<H4><A name=Fl_Menu_.clear>void Fl_Menu_::clear()</A></H4>
-Same as <tt>menu(NULL)</tt>, set the array pointer to null, indicating
-a zero-length menu.
-
-<P>Menus must no be cleared during a callback to the same menu.</P>
-
-
-<H4><A name=Fl_Menu_.copy>void Fl_Menu_::copy(const
-Fl_Menu_Item*, void* user_data = 0)</A></H4>
-
-<P>The menu is set to a private copy of the passed Fl_Menu_Item
-array. This is useful if you want to modify the flags of the
-menu items. If the <tt>user_data</tt> argument is non-NULL, then
-the <tt>user_data</tt> members of the menu items are set to the
-given value.
-
-
-<H4><A name=Fl_Menu_.down_box>Fl_Boxtype Fl_Menu_::down_box() const
-<BR> void Fl_Menu_::down_box(Fl_Boxtype)</A></H4>
- This box type is used to surround the currently-selected items in the
-menus. If this is <TT>FL_NO_BOX</TT> then it acts like <TT>
-FL_THIN_UP_BOX</TT> and <TT>selection_color()</TT> acts like <TT>
-FL_WHITE</TT>, for back compatability.
-
-
-<h4><a name="Fl_Menu_.find_item">const Fl_Menu_Item *Fl_Menu_::find_item(const char *name);</a></h4>
-
-<p>Returns a pointer to the menu item with the given (full)
-pathname. If no matching menu item can be found, a NULL pointer
-is returned. This function does not search submenus that are linked
-via FL_SUBMENU_POINTER.</p>
-
-
-<h4><a name=Fl_Menu_.item_pathname>int Fl_Menu_::item_pathname(char *name, int namelen ) const;</a><br>
-int Fl_Menu_::item_pathname(char *name, int namelen, const Fl_Menu_Item *finditem) const;</h4>
-
-<p>Returns the 'menu pathname' (eg. "File/Quit") for the recently picked item in user supplied string 'name'. Useful in the callback function for a menu item, to determine the last picked item's 'menu pathname' string.
-
-<p>If finditem is specified, name will contain the 'menu pathname' for that item.
-
-<p>Returns:
-
-<ul>
- <li>0 - OK: 'name' has the pathname, guaranteed not longer than namelen
- <li>-1 - Failed: 'finditem' was not found in the menu
- <li>-2 - Failed: 'name' is not large enough to handle the menu names
-</ul>
-
-<p>In the case of errors (-1 or -2), 'name' will be an empty string.
-
-
-<H4><A name=Fl_Menu_.menu>const Fl_Menu_Item* Fl_Menu_::menu()
-const</a></h4>
-
-Returns a pointer to the array of Fl_Menu_Items. This will either be
-the value passed to <tt>menu(value)</tt> or the private copy.
-
-<h4>void Fl_Menu_::menu(const Fl_Menu_Item*)</H4>
-Set the menu array pointer directly. If the old menu is private it is
-deleted. <tt>NULL</tt> is allowed and acts the same as a zero-length
-menu. If you try to modify the array (with add(), replace(), or
-delete()) a private copy is automatically done.
-
-
-<H4><A name=Fl_Menu_.mode>void Fl_Menu_::mode(int i, int x);</A></H4>
-
-Changes the flags of item <TT>i</TT>. For a list of the flags, see <a
-href=Fl_Menu_Item.html>Fl_Menu_Item</a>.
-
-
-<H4><A name=Fl_Menu_.mvalue>const Fl_Menu_Item* Fl_Menu_::mvalue()
-const</a></h4>
-
-<P>Returns a pointer to the last menu item that was picked.
-
-
-<H4><A name=Fl_Menu_.remove>void Fl_Menu_::remove(int n)</A></H4>
-
-Deletes item <TT>n</TT> from the menu. If the menu array was directly
-set with menu(x) then copy() is done to make a private array.
-
-<P>No items must be removed from a menu during a callback to the same menu.</P>
-
-
-<H4><A name=Fl_Menu_.replace>void Fl_Menu_::replace(int n, const char *)</A>
-</H4>
-
-Changes the text of item <TT>n</TT>. This is the only way to get
-slash into an add()'ed menu item. If the menu array was directly set
-with menu(x) then copy() is done to make a private array.
-
-
-<H4><A name=Fl_Menu_.shortcut>void Fl_Menu_::shortcut(int i, int n);</A></H4>
-
-Changes the shortcut of item <TT>i</TT> to <TT>n</TT>.
-
-
-<H4><A name=Fl_Menu_.size>int Fl_Menu_::size() const</A></H4>
-
-This returns the number of Fl_Menu_Item structures that make up the
-menu, correctly counting submenus. This includes the "terminator"
-item at the end. To copy a menu array you need to copy
-<tt>size()*sizeof(Fl_Menu_Item)</tt> bytes. If the menu is
-<TT>NULL</TT> this returns zero (an empty menu will return 1).
-
-
-<H4><A name=Fl_Menu_.test_shortcut>const Fl_Menu_Item*
-Fl_Menu_::test_shortcut()</A></H4>
- Only call this in response to <TT>FL_SHORTCUT events</TT>. If the
-event matches an entry in the menu that entry is selected and the
-callback will be done (or <TT>changed()</TT> will be set). This allows
-shortcuts directed at one window to call menus in another.
-<H4><A name=Fl_Menu_.global>void Fl_Menu_::global()</A></H4>
- Make the shortcuts for this menu work no matter what window has the
-focus when you type it. This is done by using <A href=osissues.html#add_handler>
-<TT>Fl::add_handler()</TT></A>. This <TT>Fl_Menu_</TT> widget does not
-have to be visible (ie the window it is in can be hidden, or it does
-not have to be put in a window at all).
-<P>Currently there can be only one <TT>global()</TT>menu. Setting a new
-one will replace the old one. There is no way to remove the <TT>
-global()</TT> setting (so don't destroy the widget!)</P>
-
-
-<H4><A name=Fl_Menu_.text>const char* Fl_Menu_::text() const
-<BR> const char* Fl_Menu_::text(int i) const</A></H4>
- Returns the title of the last item chosen, or of item <TT>i</TT>.
-
-
-<H4><A name=Fl_Menu_.textcolor>Fl_Color Fl_Menu_::textcolor() const
-<BR> void Fl_Menu_::textcolor(Fl_Color)</A></H4>
- Get or set the current color of menu item labels.
-
-
-<H4><A name=Fl_Menu_.textfont>Fl_Font Fl_Menu_::textfont() const
-<BR> void Fl_Menu_::textfont(Fl_Font)</A></H4>
- Get or set the current font of menu item labels.
-
-
-<H4><A name=Fl_Menu_.textsize>uchar Fl_Menu_::textsize() const
-<BR> void Fl_Menu_::textsize(uchar)</A></H4>
- Get or set the font size of menu item labels.
-
-
-<H4><A name=Fl_Menu_.value>int Fl_Menu_::value() const
-<BR> int Fl_Menu_::value(int)
-<BR> const Fl_Menu_Item* mvalue() const
-<BR> int Fl_Menu_::value(const Fl_Menu_Item*)</A></H4>
- The value is the index into <TT>menu()</TT> of the last item chosen by
-the user. It is zero initially. You can set it as an integer, or set
-it with a pointer to a menu item. The set routines return non-zero if
-the new value is different than the old one.
-
-
-</body>
-</html>
diff --git a/documentation/Fl_Menu_Bar.html b/documentation/Fl_Menu_Bar.html
deleted file mode 100644
index 5c0b8ca78..000000000
--- a/documentation/Fl_Menu_Bar.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Menu_Bar</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Menu_Bar>class Fl_Menu_Bar</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Menu_.html#Fl_Menu_>Fl_Menu_</A>
- |
- +----<B>Fl_Menu_Bar</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Menu_Bar.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This widget provides a standard menubar interface. Usually you will
-put this widget along the top edge of your window. The height of the
-widget should be 30 for the menu titles to draw correctly with the
-default font.
-<P>The items on the bar and the menus they bring up are defined by a
-single <A href=Fl_Menu_Item.html#Fl_Menu_Item><TT>Fl_Menu_Item</TT></A>
- array. Because a <TT>Fl_Menu_Item</TT> array defines a hierarchy, the
-top level menu defines the items in the menubar, while the submenus
-define the pull-down menus. Sub-sub menus and lower pop up to the right
-of the submenus. </P>
-<P ALIGN=CENTER><IMG src="menubar.gif" ALT="Fl_Menu_Bar widget."></P>
-<P>If there is an item in the top menu that is not a title of a
-submenu, then it acts like a &quot;button&quot; in the menubar. Clicking on it
-will pick it. </P>
-<P>When the user picks an item off the menu, the item's callback is
-done with the menubar as the <TT>Fl_Widget*</TT> argument. If the item
-does not have a callback the menubar's callback is done instead. </P>
-<P>Submenus will also pop up in response to shortcuts indicated by
-putting a '&amp;' character in the name field of the menu item. If you put a
-'&amp;' character in a top-level &quot;button&quot; then the shortcut picks it. The
-'&amp;' character in submenus is ignored until the menu is popped up. </P>
-<P>Typing the <TT>shortcut()</TT> of any of the menu items will cause
-callbacks exactly the same as when you pick the item with the mouse. </P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Menu_Bar.Fl_Menu_Bar>Fl_Menu_Bar</A></LI>
-<LI><A href=#Fl_Menu_Bar.~Fl_Menu_Bar>~Fl_Menu_Bar</A></LI>
-</UL>
-<H4><A name=Fl_Menu_Bar.Fl_Menu_Bar>Fl_Menu_Bar::Fl_Menu_Bar(int x, int
-y, int w, int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Menu_Bar</TT> widget using the given position,
-size, and label string. The default boxtype is <TT>FL_UP_BOX</TT>.
-<P>The constructor sets <TT>menu()</TT> to <TT>NULL</TT>. See <A href=Fl_Menu_.html#Fl_Menu_>
-<TT>Fl_Menu_</TT></A> for the methods to set or change the menu. </P>
-<P><TT>labelsize()</TT>, <TT>labelfont()</TT>, and <TT>labelcolor()</TT>
- are used to control how the menubar items are drawn. They are
-initialized from the <TT>Fl_Menu</TT> static variables, but you can
-change them if desired. </P>
-<P><TT>label()</TT> is ignored unless you change <TT>align()</TT> to
-put it outside the menubar. </P>
-<H4><A name=Fl_Menu_Bar.~Fl_Menu_Bar>virtual Fl_Menu_Bar::~Fl_Menu_Bar()</A>
-</H4>
- The destructor removes the <TT>Fl_Menu_Bar</TT> widget and all of its
-menu items. </BODY></HTML>
diff --git a/documentation/Fl_Menu_Button.html b/documentation/Fl_Menu_Button.html
deleted file mode 100644
index 45e8cd067..000000000
--- a/documentation/Fl_Menu_Button.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Menu_Button</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Menu_Button>class Fl_Menu_Button</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Menu_.html#Fl_Menu_>Fl_Menu_</A>
- |
- +----<B>Fl_Menu_Button</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Menu_Button.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This is a button that when pushed pops up a menu (or hierarchy of
-menus) defined by an array of <A href=Fl_Menu_Item.html#Fl_Menu_Item><TT>
-Fl_Menu_Item</TT></A> objects.
-<P ALIGN=CENTER><IMG src="menu_button.gif" ALT="Fl_Menu_Button widget."></P>
-<P>Normally any mouse button will pop up a menu and it is lined up
-below the button as shown in the picture. However an <TT>Fl_Menu_Button</TT>
- may also control a pop-up menu. This is done by setting the <TT>type()</TT>
-, see below. </P>
-<P>The menu will also pop up in response to shortcuts indicated by
-putting a '&amp;' character in the <TT>label()</TT>. </P>
-<P>Typing the <TT>shortcut()</TT> of any of the menu items will cause
-callbacks exactly the same as when you pick the item with the mouse.
- The '&amp;' character in menu item names are only looked at when the menu is
-popped up, however. </P>
-<P>When the user picks an item off the menu, the item's callback is
-done with the menu_button as the <TT>Fl_Widget*</TT> argument. If the
-item does not have a callback the menu_button's callback is done
-instead. </P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Menu_Button.Fl_Menu_Button>Fl_Menu_Button</A></LI>
-<LI><A href=#Fl_Menu_Button.~Fl_Menu_Button>~Fl_Menu_Button</A></LI>
-<LI><A href=#Fl_Menu_Button.popup>popup</A></LI>
-<LI><A href=#Fl_Menu_Button.type>type</A></LI>
-</UL>
-<H4><A name=Fl_Menu_Button.Fl_Menu_Button>
-Fl_Menu_Button::Fl_Menu_Button(int x, int y, int w, int h, const char
-*label = 0)</A></H4>
- Creates a new <TT>Fl_Menu_Button</TT> widget using the given position,
-size, and label string. The default boxtype is <TT>FL_UP_BOX</TT>.
-<P>The constructor sets <TT>menu()</TT> to <TT>NULL</TT>. See <A href=Fl_Menu_.html#Fl_Menu_>
-<TT>Fl_Menu_</TT></A> for the methods to set or change the menu. </P>
-<H4><A name=Fl_Menu_Button.~Fl_Menu_Button>virtual
-Fl_Menu_Button::~Fl_Menu_Button()</A></H4>
- The destructor removes the <TT>Fl_Menu_Button</TT> widget and all of
-its menu items.
-<H4><A name=Fl_Menu_Button.popup>const Fl_Menu* Fl_Menu_Button::popup()</A>
-</H4>
- Act exactly as though the user clicked the button or typed the
-shortcut key. The menu appears, it waits for the user to pick an item,
-and if they pick one it sets <TT>value()</TT> and does the callback or
-sets <TT>changed()</TT> as described above. The menu item is returned
-or <TT>NULL</TT> if the user dismisses the menu.
-<H4><A name=Fl_Menu_Button.type>void Fl_Menu_Button::type(uchar)</A></H4>
- If <TT>type()</TT> is zero a normal menu button is produced. If it is
-nonzero then this is a pop-up menu. The bits in <TT>type()</TT>
- indicate what mouse buttons pop up the menu. For convienece the
-constants <TT>Fl_Menu_Button::POPUP1, POPUP2, POPUP3, POPUP12, POPUP13,
-POPUP23</TT>, and <TT>POPUP123</TT> are defined. <TT>
-Fl_Menu_Button::POPUP3</TT> is usually what you want.
-<P>A popup menu button is invisible and does not interfere with any
-events other than the mouse button specified (and any shortcuts). The
-widget can be stretched to cover all your other widgets by putting it
-last in the hierarchy so it is &quot;on top&quot;. You can also make several
-widgets covering different areas for context-sensitive popup menus. </P>
-<P>The popup menus appear with the cursor pointing at the previously
-selected item. This is a <I>feature</I>. If you don't like it, do <TT>
-value(0)</TT> after the menu items are picked to forget the current
-item. </P>
-</BODY></HTML>
diff --git a/documentation/Fl_Menu_Item.html b/documentation/Fl_Menu_Item.html
deleted file mode 100644
index 0465834dc..000000000
--- a/documentation/Fl_Menu_Item.html
+++ /dev/null
@@ -1,300 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Menu_Item</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Menu_Item>struct Fl_Menu_Item</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<B>struct Fl_Menu_Item</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Menu_Item.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
-
-The <TT>Fl_Menu_Item</TT> structure defines a single menu item that
-is used by the <A href=Fl_Menu_.html#Fl_Menu_>Fl_Menu_</A> class. This
-structure is defined in <TT> &lt;FL/Fl_Menu_Item.H&gt;</TT>
-
-<UL>
-<PRE>
-struct Fl_Menu_Item {
- const char* text; // label()
- ulong shortcut_;
- Fl_Callback* callback_;
- void* user_data_;
- int flags;
- uchar labeltype_;
- uchar labelfont_;
- uchar labelsize_;
- uchar labelcolor_;
-};
-
-enum { // values for flags:
- 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
-};
-</PRE>
-</UL>
-Typically menu items are statically defined; for example:
-<UL><PRE>
-Fl_Menu_Item popup[] = {
- {&quot;&amp;alpha&quot;, FL_ALT+'a', the_cb, (void*)1},
- {&quot;&amp;beta&quot;, FL_ALT+'b', the_cb, (void*)2},
- {&quot;gamma&quot;, FL_ALT+'c', the_cb, (void*)3, FL_MENU_DIVIDER},
- {&quot;&amp;strange&quot;, 0, strange_cb},
- {&quot;&amp;charm&quot;, 0, charm_cb},
- {&quot;&amp;truth&quot;, 0, truth_cb},
- {&quot;b&amp;eauty&quot;, 0, beauty_cb},
- {&quot;sub&amp;menu&quot;, 0, 0, 0, FL_SUBMENU},
- {&quot;one&quot;},
- {&quot;two&quot;},
- {&quot;three&quot;},
- {0},
- {&quot;inactive&quot;, FL_ALT+'i', 0, 0, FL_MENU_INACTIVE|FL_MENU_DIVIDER},
- {&quot;invisible&quot;,FL_ALT+'i', 0, 0, FL_MENU_INVISIBLE},
- {&quot;check&quot;, FL_ALT+'i', 0, 0, FL_MENU_TOGGLE|FL_MENU_VALUE},
- {&quot;box&quot;, FL_ALT+'i', 0, 0, FL_MENU_TOGGLE},
-{0}};
-</PRE></UL>
-produces:
-<P ALIGN=CENTER><IMG src="menu.gif" ALT="Fl_Menu_Item widgets."></P>
-
-A submenu title is identified by the bit <TT>FL_SUBMENU</TT> in the <TT>
-flags</TT> field, and ends with a <TT>label()</TT> that is <TT>NULL</TT>.
-You can nest menus to any depth. A pointer to the first item in the
-submenu can be treated as an <TT>Fl_Menu</TT> array itself. It is also
-possible to make seperate submenu arrays with <TT>FL_SUBMENU_POINTER</TT>
-flags.
-<P>You should use the method functions to access structure members and
-not access them directly to avoid compatibility problems with future
-releases of FLTK. </P>
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Menu_Item methods.">
-<TR><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Menu_Item.label>label</A></LI>
-<LI><A href=#Fl_Menu_Item.labeltype>labeltype</A></LI>
-<LI><A href=#Fl_Menu_Item.labelcolor>labelcolor</A></LI>
-<LI><A href=#Fl_Menu_Item.labelfont>labelfont</A></LI>
-<LI><A href=#Fl_Menu_Item.labelsize>labelsize</A></LI>
-<LI><A href=#Fl_Menu_Item.callback>callback</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Menu_Item.user_data>user_data</A></LI>
-<LI><A href=#Fl_Menu_Item.argument>argument</A></LI>
-<LI><A href=#Fl_Menu_Item.do_callback>do_callback</A></LI>
-<LI><A href=#Fl_Menu_Item.shortcut>shortcut</A></LI>
-<LI><A href=#Fl_Menu_Item.submenu>submenu</A></LI>
-<LI><A href=#Fl_Menu_Item.checkbox>checkbox</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Menu_Item.radio>radio</A></LI>
-<LI><A href=#Fl_Menu_Item.value>value</A></LI>
-<LI><A href=#Fl_Menu_Item.set>set</A></LI>
-<LI><A href=#Fl_Menu_Item.setonly>setonly</A></LI>
-<LI><A href=#Fl_Menu_Item.clear>clear</A></LI>
-<LI><A href=#Fl_Menu_Item.visible>visible</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Menu_Item.show>show</A></LI>
-<LI><A href=#Fl_Menu_Item.hide>hide</A></LI>
-<LI><A href=#Fl_Menu_Item.active>active</A></LI>
-<LI><A href=#Fl_Menu_Item.activate>activate</A></LI>
-<LI><A href=#Fl_Menu_Item.deactivate>deactivate</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Menu_Item.popup>popup</A></LI>
-<LI><A href=#Fl_Menu_Item.pulldown>pulldown</A></LI>
-<LI><A href=#Fl_Menu_Item.test_shortcut>test_shortcut</A></LI>
-<LI><A href=#Fl_Menu_Item.size>size</A></LI>
-<LI><A href=#Fl_Menu_Item.next>next</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-<H4><A name=Fl_Menu_Item.label>const char* Fl_Menu_Item::label() const
-<BR> void Fl_Menu_Item::label(const char*)
-<BR> void Fl_Menu_Item::label(Fl_Labeltype, const char*)</A></H4>
- This is the title of the item. A <TT>NULL</TT> here indicates the end
-of the menu (or of a submenu). A '&amp;' in the item will print an
-underscore under the next letter, and if the menu is popped up that
-letter will be a &quot;shortcut&quot; to pick that item. To get a
-real '&amp;' put two
-in a row.
-<H4><A name=Fl_Menu_Item.labeltype>Fl_Labeltype
-Fl_Menu_Item::labeltype() const
-<BR> void Fl_Menu_Item::labeltype(Fl_Labeltype)</A></H4>
- A <TT>labeltype</TT> identifies a routine that draws the label of the
-widget. This can be used for special effects such as emboss, or to use
-the <TT>label()</TT> pointer as another form of data such as a bitmap.
- The value <TT>FL_NORMAL_LABEL</TT> prints the label as text.
-<H4><A name=Fl_Menu_Item.labelcolor>Fl_Color Fl_Menu_Item::labelcolor()
-const
-<BR> void Fl_Menu_Item::labelcolor(Fl_Color)</A></H4>
- This color is passed to the labeltype routine, and is typically the
-color of the label text. This defaults to <TT>FL_BLACK</TT>. If this
-color is not black fltk will <I>not</I> use overlay bitplanes to draw
-the menu - this is so that images put in the menu draw correctly.
-<H4><A name=Fl_Menu_Item.labelfont>Fl_Font Fl_Menu_Item::labelfont()
-const
-<BR> void Fl_Menu_Item::labelfont(Fl_Font)</A></H4>
- Fonts are identified by small 8-bit indexes into a table. See the <A href=enumerations.html#Enumerations>
-enumeration list</A> for predefined fonts. The default value is a
-Helvetica font. The function <A href="Fl.html#Fl.set_font"><TT>
-Fl::set_font()</TT></A> can define new fonts.
-<H4><A name=Fl_Menu_Item.labelsize>uchar Fl_Menu_Item::labelsize() const
-<BR> void Fl_Menu_Item::labelsize(uchar)</A></H4>
- Gets or sets the label font pixel size/height.
-<H4><A name=Fl_Menu_Item.callback>typedef void
-(Fl_Callback)(Fl_Widget*, void*)
-<BR> Fl_Callback* Fl_Menu_Item::callback() const
-<BR> void Fl_Menu_Item::callback(Fl_Callback*, void* = 0)
-<BR> void Fl_Menu_Item::callback(void (*)(Fl_Widget*))</A></H4>
- Each item has space for a callback function and an argument for that
-function. Due to back compatability, the <TT>Fl_Menu_Item</TT> itself
-is not passed to the callback, instead you have to get it by calling <TT>
-((Fl_Menu_*)w)-&gt;mvalue()</TT> where <TT>w</TT> is the widget argument.
-<H4><A name=Fl_Menu_Item.user_data>void* Fl_Menu_Item::user_data() const
-<BR> void Fl_Menu_Item::user_data(void*)</A></H4>
- Get or set the <TT>user_data</TT> argument that is sent to the
-callback function.
-<H4><A name=Fl_Menu_Item.argument>void Fl_Menu_Item::callback(void
-(*)(Fl_Widget*, long), long = 0)
-<BR> long Fl_Menu_Item::argument() const
-<BR> void Fl_Menu_Item::argument(long)</A></H4>
- For convenience you can also define the callback as taking a <TT>long</TT>
- argument. This is implemented by casting this to a <TT>Fl_Callback</TT>
- and casting the <TT>long</TT> to a <TT>void*</TT> and may not be
-portable to some machines.
-<H4><A name=Fl_Menu_Item.do_callback>void
-Fl_Menu_Item::do_callback(Fl_Widget*)
-<BR> void Fl_Menu_Item::do_callback(Fl_Widget*, void*)
-<BR> void Fl_Menu_Item::do_callback(Fl_Widget*, long)</A></H4>
- Call the <TT>Fl_Menu_Item</TT> item's callback, and provide the <TT>
-Fl_Widget</TT> argument (and optionally override the user_data()
-argument). You must first check that <TT>callback()</TT> is non-zero
-before calling this.
-<H4><A name=Fl_Menu_Item.shortcut>ulong Fl_Menu_Item::shortcut() const
-<BR> void Fl_Menu_Item::shortcut(ulong)</A></H4>
- Sets exactly what key combination will trigger the menu item. The
-value is a logical 'or' of a key and a set of shift flags, for instance <TT>
-FL_ALT+'a'</TT> or <TT>FL_ALT+FL_F+10</TT> or just 'a'. A value of
-zero disables the shortcut.
-<P>The key can be any value returned by <A href="Fl.html#Fl.event_key">
-<TT>Fl::event_key()</TT></A>, but will usually be an ASCII letter. Use
-a lower-case letter unless you require the shift key to be held down. </P>
-<P>The shift flags can be any set of values accepted by <A href="Fl.html#Fl.event_state">
-<TT>Fl::event_state()</TT></A>. If the bit is on that shift key must
-be pushed. Meta, Alt, Ctrl, and Shift must be off if they are not in
-the shift flags (zero for the other bits indicates a &quot;don't care&quot;
-setting). </P>
-<H4><A name=Fl_Menu_Item.submenu>int Fl_Menu_Item::submenu() const</A></H4>
- Returns true if either <TT>FL_SUBMENU</TT> or <TT>FL_SUBMENU_POINTER</TT>
- is on in the flags. <TT>FL_SUBMENU</TT> indicates an embedded submenu
-that goes from the next item through the next one with a <TT>NULL</TT>
-<TT>label()</TT>. <TT>FL_SUBMENU_POINTER</TT> indicates that <TT>user_data()</TT>
- is a pointer to another menu array.
-<H4><A name=Fl_Menu_Item.checkbox>int Fl_Menu_Item::checkbox() const</A></H4>
- Returns true if a checkbox will be drawn next to this item. This is
-true if <TT>FL_MENU_TOGGLE</TT> or <TT>FL_MENU_RADIO</TT> is set in the
-flags.
-<H4><A name=Fl_Menu_Item.radio>int Fl_Menu_Item::radio() const</A></H4>
- Returns true if this item is a radio item. When a radio button is
-selected all &quot;adjacent&quot; radio buttons are turned off. A set of radio
-items is delimited by an item that has <TT>radio()</TT> false, or by an
-item with <TT>FL_MENU_DIVIDER</TT> turned on.
-<H4><A name=Fl_Menu_Item.value>int Fl_Menu_Item::value() const</A></H4>
- Returns the current value of the check or radio item.
-<H4><A name=Fl_Menu_Item.set>void Fl_Menu_Item::set()</A></H4>
- Turns the check or radio item &quot;on&quot; for the menu item. Note that this
-does not turn off any adjacent radio items like <TT>set_only()</TT>
- does.
-<H4><A name=Fl_Menu_Item.setonly>void Fl_Menu_Item::setonly()</A></H4>
- Turns the radio item &quot;on&quot; for the menu item and turns off adjacent
-radio item.
-<H4><A name=Fl_Menu_Item.clear>void Fl_Menu_Item::clear()</A></H4>
- Turns the check or radio item &quot;off&quot; for the menu item.
-<H4><A name=Fl_Menu_Item.visible>int Fl_Menu_Item::visible() const</A></H4>
- Gets the visibility of an item.
-<H4><A name=Fl_Menu_Item.show>void Fl_Menu_Item::show()</A></H4>
- Makes an item visible in the menu.
-<H4><A name=Fl_Menu_Item.hide>void Fl_Menu_Item::hide()</A></H4>
- Hides an item in the menu.
-<H4><A name=Fl_Menu_Item.active>int Fl_Menu_Item::active() const</A></H4>
- Get whether or not the item can be picked.
-<H4><A name=Fl_Menu_Item.activate>void Fl_Menu_Item::activate()</A></H4>
- Allows a menu item to be picked.
-<H4><A name=Fl_Menu_Item.deactivate>void Fl_Menu_Item::deactivate()</A></H4>
- Prevents a menu item from being picked. Note that this will also cause
-the menu item to appear grayed-out.
-<H4><A name=Fl_Menu_Item.popup>const Fl_Menu_Item
-*Fl_Menu_Item::popup(int X, int Y, const char* title = 0, const
-Fl_Menu_Item* picked = 0, const Fl_Menu_* button = 0) const</A></H4>
- This method is called by widgets that want to display menus. The menu
-stays up until the user picks an item or dismisses it. The selected
-item (or <TT>NULL</TT> if none) is returned. <I>This does not do the
-callbacks or change the state of check or radio items.</I>
-<P><TT>X,Y</TT> is the position of the mouse cursor, relative to the
-window that got the most recent event (usually you can pass <TT>
-Fl::event_x()</TT> and <TT>Fl::event_y()</TT> unchanged here). </P>
-<P><TT>title</TT> is a character string title for the menu. If
-non-zero a small box appears above the menu with the title in it. </P>
-<P>The menu is positioned so the cursor is centered over the item <TT>
-picked</TT>. This will work even if <TT>picked</TT> is in a submenu.
-If <TT>picked</TT> is zero or not in the menu item table the menu is
-positioned with the cursor in the top-left corner. </P>
-<P><TT>button</TT> is a pointer to an <A href=Fl_Menu_.html#Fl_Menu_><TT>
-Fl_Menu_</TT></A> from which the color and boxtypes for the menu are
-pulled. If <TT>NULL</TT> then defaults are used. </P>
-<H4><A name=Fl_Menu_Item.pulldown>const Fl_Menu_Item
-*Fl_Menu_Item::pulldown(int X, int Y, int W, int H, const Fl_Menu_Item*
-picked = 0, const Fl_Menu_* button = 0, const Fl_Menu_Item* title = 0,
-int menubar=0) const</A></H4>
-<TT>pulldown()</TT> is similar to <TT>popup()</TT>, but a rectangle is
-provided to position the menu. The menu is made at least <TT>W</TT>
- wide, and the <TT>picked</TT> item is centered over the rectangle
-(like <TT>Fl_Choice</TT> uses). If <TT>picked</TT> is zero or not
-found, the menu is aligned just below the rectangle (like a pulldown
-menu).
-<P>The <TT>title</TT> and <TT>menubar</TT> arguments are used
-internally by the <TT>Fl_Menu_Bar</TT> widget. </P>
-<H4><A name=Fl_Menu_Item.test_shortcut>const Fl_Menu_Item*
-Fl_Menu_Item::test_shortcut() const</A></H4>
- This is designed to be called by a widgets <TT>handle()</TT> method in
-response to a <TT>FL_SHORTCUT</TT> event. If the current event matches
-one of the items shortcut, that item is returned. If the keystroke
-does not match any shortcuts then <TT>NULL</TT> is returned. This only
-matches the <TT>shortcut()</TT> fields, not the letters in the title
-preceeded by '
-<H4><A name=Fl_Menu_Item.size>int Fl_Menu_Item::size()</A></H4>
- Returns the number of Fl_Menu_Item structures that make up this menu,
-correctly counting submenus. This includes the "terminator" item at
-the end. So to copy a menu you need to copy
-<tt>size()*sizeof(Fl_Menu_Item)</tt> bytes.
-<H4><A name=Fl_Menu_Item.next>const Fl_Menu_Item*
-Fl_Menu_Item::next(int n=1) const
-<BR> Fl_Menu_Item* Fl_Menu_Item::next(int n=1);</A></H4>
- Advance a pointer by <TT>n</TT> items through a menu array, skipping
-the contents of submenus and invisible items. There are two calls so
-that you can advance through const and non-const data. </BODY></HTML>
diff --git a/documentation/Fl_Menu_Window.html b/documentation/Fl_Menu_Window.html
deleted file mode 100644
index 14eb70f0f..000000000
--- a/documentation/Fl_Menu_Window.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Menu_Window</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Menu_Window>class Fl_Menu_Window</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Single_Window.html#Fl_Single_Window>Fl_Single_Window</A>
- |
- +----<B>Fl_Menu_Window</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Menu_Window.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Menu_Window</TT> widget is a window type used for menus. By
-default the window is drawn in the hardware overlay planes if they are
-available so that the menu don't force the rest of the window to
-redraw.
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Menu_Window.Fl_Menu_Window>Fl_Menu_Window</A></LI>
-<LI><A href=#Fl_Menu_Window.~Fl_Menu_Window>~Fl_Menu_Window</A></LI>
-<LI><A href=#Fl_Menu_Window.clear_overlay>clear_overlay</A></LI>
-<LI><A href=#Fl_Menu_Window.set_overlay>set_overlay</A></LI>
-</UL>
-<H4><A name=Fl_Menu_Window.Fl_Menu_Window>
-Fl_Menu_Window::Fl_Menu_Window(int x, int y, int w, int h, const char
-*label = 0)</A></H4>
- Creates a new <TT>Fl_Menu_Window</TT> widget using the given position,
-size, and label string.
-<H4><A name=Fl_Menu_Window.~Fl_Menu_Window>virtual
-Fl_Menu_Window::~Fl_Menu_Window()</A></H4>
- Destroys the window and all of its children.
-<H4><A name=Fl_Menu_Window.clear_overlay>
-Fl_Menu_Window::clear_overlay();</A></H4>
- Tells FLTK to use normal drawing planes instead of overlay planes.
-This is usually necessary if your menu contains multi-color pixmaps.
-<H4><A name=Fl_Menu_Window.set_overlay>Fl_Menu_Window::set_overlay()</A></H4>
- Tells FLTK to use hardware overlay planes if they are available. </BODY>
-</HTML>
diff --git a/documentation/Fl_Multi_Browser.html b/documentation/Fl_Multi_Browser.html
deleted file mode 100644
index f0744ed11..000000000
--- a/documentation/Fl_Multi_Browser.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Multi_Browser</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Multi_Browser>class Fl_Multi_Browser</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Browser.html#Fl_Browser>Fl_Browser</A>
- |
- +----<B>Fl_Multi_Browser</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Multi_Browser.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Multi_Browser</TT> class is a subclass of <TT>Fl_Browser</TT>
- which lets the user select any set of the lines. The user interface
-is Macintosh style: clicking an item turns off all the others and
-selects that one, dragging selects all the items the mouse moves over,
-and shift + click toggles the items. This is different then how forms
-did it. Normally the callback is done when the user releases the
-mouse, but you can change this with <TT>when()</TT>.
-<P>See <A href=Fl_Browser.html#Fl_Browser><TT>Fl_Browser</TT></A> for
-methods to add and remove lines from the browser. </P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Multi_Browser.Fl_Multi_Browser>Fl_Multi_Browser</A></LI>
-<LI><A href=#Fl_Multi_Browser.~Fl_Multi_Browser>~Fl_Multi_Browser</A></LI>
-<LI><A href=#Fl_Multi_Browser.deselect>deselect</A></LI>
-<LI><A href=#Fl_Multi_Browser.select>select</A></LI>
-<LI><A href=#Fl_Multi_Browser.value>value</A></LI>
-</UL>
-
-<H4><A name=Fl_Multi_Browser.Fl_Multi_Browser>
-Fl_Multi_Browser::Fl_Multi_Browser(int x, int y, int w, int h, const
-char *label = 0)</A></H4>
-
-Creates a new <TT>Fl_Multi_Browser</TT> widget using the given
-position, size, and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>
-.
-
-
-<H4><A name=Fl_Multi_Browser.~Fl_Multi_Browser>virtual
-Fl_Multi_Browser::~Fl_Multi_Browser()</A></H4>
-
-The destructor <I>also deletes all the items in the list</I>.
-
-
-<H4><A name=Fl_Multi_Browser.deselect>int Fl_Browser::deselect()</A></H4>
-
-Deselects all lines.
-
-
-<H4><A name=Fl_Multi_Browser.select>int Fl_Browser::select(int line_no,int v=1)
-<BR> int Fl_Browser::selected(int line_no) const</A></H4>
-
-The first version of this call selects (v=1) or deselects (v=0)
-a line in the browser. The second call returns the current selection
-state of a line.
-
-
-<H4><A name=Fl_Multi_Browser.value>void Fl_Browser::value(int)
-<BR> int Fl_Browser::value() const</A></H4>
-
-The first version of this call selects a single line. The second version returns
-the currently focused item, even if it is not selected. To find all
-selected items, call
-<TT><A href=Fl_Multi_Browser.html#Fl_Multi_Browser.select>
-Fl_Multi_Browser::selected()</A></TT> for every item in question.
-
-</BODY></HTML>
diff --git a/documentation/Fl_Multiline_Input.html b/documentation/Fl_Multiline_Input.html
deleted file mode 100644
index 3d46be4da..000000000
--- a/documentation/Fl_Multiline_Input.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Multiline_Input</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Multiline_Input>class Fl_Multiline_Input</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Input.html#Fl_Input>Fl_Input</A>
- |
- +----<B>Fl_Multiline_Input</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Multiline_Input.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This input field displays '\n' characters as new lines rather than ^J,
-and accepts the Return, Tab, and up and down arrow keys. This is for
-editing multiline text.
-<P>This is far from the nirvana of text editors, and is probably only
-good for small bits of text, 10 lines at most. I think FLTK can be
-used to write a powerful text editor, but it is not going to be a
-built-in feature. Powerful text editors in a toolkit are a big source
-of bloat. </P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Multiline_Input.Fl_Multiline_Input>Fl_Multiline_Input</A>
-</LI>
-<LI><A href=#Fl_Multiline_Input.~Fl_Multiline_Input>~Fl_Multiline_Input</A>
-</LI>
-</UL>
-<H4><A name=Fl_Multiline_Input.Fl_Multiline_Input>
-Fl_Multiline_Input::Fl_Multiline_Input(int x, int y, int w, int h,
-const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Multiline_Input</TT> widget using the given
-position, size, and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>
-.
-<H4><A name=Fl_Multiline_Input.~Fl_Multiline_Input>virtual
-Fl_Multiline_Input::~Fl_Multiline_Input()</A></H4>
- Destroys the widget and any value associated with it. </BODY></HTML>
diff --git a/documentation/Fl_Multiline_Output.html b/documentation/Fl_Multiline_Output.html
deleted file mode 100644
index 837410873..000000000
--- a/documentation/Fl_Multiline_Output.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Multiline_Output</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Multiline_Output>class Fl_Multiline_Output</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Output.html#Fl_Output>Fl_Output</A>
- |
- +----<B>Fl_Multiline_Output</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Multiline_Output.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This widget is a subclass of <TT>Fl_Output</TT> that displays multiple
-lines of text. It also displays tab characters as whitespace to the
-next column.
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Multiline_Output.Fl_Multiline_Output>Fl_Multiline_Output</A>
-</LI>
-<LI><A href=#Fl_Multiline_Output.~Fl_Multiline_Output>
-~Fl_Multiline_Output</A></LI>
-</UL>
-<H4><A name=Fl_Multiline_Output.Fl_Multiline_Output>
-Fl_Multiline_Output::Fl_Multiline_Output(int x, int y, int w, int h,
-const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Multiline_Output</TT> widget using the given
-position, size, and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>
-.
-<H4><A name=Fl_Multiline_Output.~Fl_Multiline_Output>virtual
-Fl_Multiline_Output::~Fl_Multiline_Output()</A></H4>
- Destroys the widget and any value associated with it. </BODY></HTML>
diff --git a/documentation/Fl_Output.html b/documentation/Fl_Output.html
deleted file mode 100644
index a6af1ce97..000000000
--- a/documentation/Fl_Output.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Output</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name="Fl_Output">class Fl_Output</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href="Fl_Input.html#Fl_Input">Fl_Input</A>
- |
- +----<B>Fl_Output</B>
- |
- +----<A href=Fl_Multiline_Output.html#Fl_Multiline_Output>Fl_Multiline_Output</A>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Output.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This widget displays a piece of text. When you set the <TT>value()</TT>
-, <TT>Fl_Output</TT> does a <TT>strcpy()</TT> to it's own storage,
-which is useful for program-generated values. The user may select
-portions of the text using the mouse and paste the contents into other
-fields or programs.
-<CENTER><IMG src="text.gif" ALT="Fl_Output widget."></CENTER>
-<P>There is a single subclass, <A href=Fl_Multiline_Output.html#Fl_Multiline_Output>
-Fl_Multiline_Output</A>, which allows you to display multiple lines of
-text. </P>
-<P>The text may contain any characters except \0, and will correctly
-display anything, using ^X notation for unprintable control characters
-and \nnn notation for unprintable characters with the high bit set. It
-assumes the font can draw any characters in the ISO-Latin1 character
-set. </P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Output.Fl_Output>Fl_Output</A></LI>
-<LI><A href=#Fl_Output.~Fl_Output>~Fl_Output</A></LI>
-<LI><A href=#Fl_Output.index>index</A></LI>
-<LI><A href=#Fl_Output.size>size</A></LI>
-<LI><A href=#Fl_Output.textcolor>textcolor</A></LI>
-<LI><A href=#Fl_Output.textfont>textfont</A></LI>
-<LI><A href=#Fl_Output.textsize>textsize</A></LI>
-<LI><A href=#Fl_Output.value>value</A></LI>
-</UL>
-<H4><A name=Fl_Output.Fl_Output>Fl_Output::Fl_Output(int x, int y, int
-w, int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Output</TT> widget using the given position,
-size, and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>.
-<H4><A name=Fl_Output.~Fl_Output>virtual Fl_Output::~Fl_Output()</A></H4>
- Destroys the widget and any value associated with it.
-<H4><A name=Fl_Output.value>const char *Fl_Output::value() const
-<BR> int Fl_Output::value(const char*)
-<BR> int Fl_Output::value(const char*, int)</A></H4>
- The first form returns the current value, which is a pointer to the
-internal buffer and is valid only until the value is changed.
-<P>The second two forms change the text and set the mark and the point
-to the end of it. The string is copied to the internal buffer. Passing <TT>
-NULL</TT> is the same as &quot;&quot;. This returns non-zero if the new value is
-different than the current one. You can use the second version to
-directly set the length if you know it already or want to put nul's in
-the text. </P>
-<H4><A name=Fl_Output.size>int Fl_Output::size() const</A></H4>
- Returns the number of characters in <TT>value()</TT>. This may be
-greater than <TT>strlen(value())</TT> if there are nul characters in
-it.
-<H4><A name=Fl_Output.index>char Fl_Output::index(int) const</A></H4>
- Same as <TT>value()[n]</TT>, but may be faster in plausible
-implementations. No bounds checking is done.
-<H4><A name=Fl_Output.textcolor>Fl_Color Fl_Output::textcolor() const
-<BR> void Fl_Output::textcolor(Fl_Color)</A></H4>
- Gets or sets the color of the text in the input field.
-<H4><A name=Fl_Output.textfont>Fl_Font Fl_Output::textfont() const
-<BR> void Fl_Output::textfont(Fl_Font)</A></H4>
- Gets or sets the font of the text in the input field.
-<H4><A name=Fl_Output.textsize>uchar Fl_Output::textsize() const
-<BR> void Fl_Output::textsize(uchar)</A></H4>
- Gets or sets the size of the text in the input field. </BODY></HTML>
diff --git a/documentation/Fl_Overlay_Window.html b/documentation/Fl_Overlay_Window.html
deleted file mode 100644
index bf5f9e333..000000000
--- a/documentation/Fl_Overlay_Window.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Overlay_Window</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Overlay_Window>class Fl_Overlay_Window</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Double_Window.html#Fl_Double_Window>Fl_Double_Window</A>
- |
- +----<B>Fl_Overlay_Window</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Overlay_Window.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This window provides double buffering and also the ability to draw the
-&quot;overlay&quot; which is another picture placed on top of the main image. The
-overlay is designed to be a rapidly-changing but simple graphic such as
-a mouse selection box. <TT>Fl_Overlay_Window</TT> uses the overlay
-planes provided by your graphics hardware if they are available.
-<P>If no hardware support is found the overlay is simulated by drawing
-directly into the on-screen copy of the double-buffered window, and
-&quot;erased&quot; by copying the backbuffer over it again. This means the
-overlay will blink if you change the image in the window. </P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Overlay_Window.Fl_Overlay_Window>Fl_Overlay_Window</A></LI>
-<LI><A href=#Fl_Overlay_Window.~Fl_Overlay_Window>~Fl_Overlay_Window</A></LI>
-<LI><A href=#Fl_Overlay_Window.draw_overlay>draw_overlay</A></LI>
-<LI><A href=#Fl_Overlay_Window.redraw_overlay>redraw_overlay</A></LI>
-</UL>
-<H4><A name=Fl_Overlay_Window.Fl_Overlay_Window>
-Fl_Overlay_Window::Fl_Overlay_Window(int x, int y, int w, int h, const
-char *label = 0)</A></H4>
- Creates a new <TT>Fl_Overlay_Window</TT> widget using the given
-position, size, and label (title) string.
-<H4><A name=Fl_Overlay_Window.~Fl_Overlay_Window>virtual
-Fl_Overlay_Window::~Fl_Overlay_Window()</A></H4>
- Destroys the window and all child widgets.
-<H4><A name=Fl_Overlay_Window.draw_overlay>virtual void
-Fl_Overlay_Window::draw_overlay() = 0</A></H4>
- You must subclass <TT>Fl_Overlay_Window</TT> and provide this method.
- It is just like a <TT>draw()</TT> method, except it draws the overlay.
- The overlay will have already been &quot;cleared&quot; when this is called. You
-can use any of the routines described in <A href="drawing.html#drawing">&lt;FL/fl_draw.H&gt;</A>.
-<H4><A name=Fl_Overlay_Window.redraw_overlay>void Fl_Overlay_Window::redraw_overlay()</A>
-</H4>
- Call this to indicate that the overlay data has changed and needs to
-be redrawn. The overlay will be clear until the first time this is
-called, so if you want an initial display you must call this after
-calling <TT>show()</TT>. </BODY></HTML>
diff --git a/documentation/Fl_PNG_Image.html b/documentation/Fl_PNG_Image.html
deleted file mode 100644
index fbd4215ef..000000000
--- a/documentation/Fl_PNG_Image.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_PNG_Image</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_PNG_Image">class Fl_PNG_Image</A></H2>
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href="Fl_RGB_Image.html">Fl_RGB_Image</A>
- |
- +----<B>Fl_PNG_Image</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_PNG_Image.H&gt;
-</PRE></UL>
-
-<H3>Additional Libraries</H3>
-
-<UL><PRE>
--lfltk_images / fltkimages.lib
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_PNG_Image</TT> class supports loading, caching,
-and drawing of Portable Network Graphics (PNG) image files. The
-class loads colormapped and full-color images and handles color-
-and alpha-based transparency.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_PNG_Image.Fl_PNG_Image">Fl_PNG_Image</A></LI>
-
- <LI><A href="#Fl_PNG_Image.~Fl_PNG_Image">~Fl_PNG_Image</A></LI>
-
-</UL>
-
-<H4><A name="Fl_PNG_Image.Fl_PNG_Image">Fl_PNG_Image::Fl_PNG_Image(const char *filename);</A></H4>
-
-<P>The constructor loads the named PNG image.</P>
-
-<H4><A name="Fl_PNG_Image.~Fl_PNG_Image">Fl_PNG_Image::~Fl_PNG_Image();</A></H4>
-
-<P>The destructor free all memory and server resources that are used by
-the image.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_PNM_Image.html b/documentation/Fl_PNM_Image.html
deleted file mode 100644
index 1a9cd5bcd..000000000
--- a/documentation/Fl_PNM_Image.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_PNM_Image</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_PNM_Image">class Fl_PNM_Image</A></H2>
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href="Fl_RGB_Image.html">Fl_RGB_Image</A>
- |
- +----<B>Fl_PNM_Image</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_PNM_Image.H&gt;
-</PRE></UL>
-
-<H3>Additional Libraries</H3>
-
-<UL><PRE>
--lfltk_images / fltkimages.lib
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_PNM_Image</TT> class supports loading, caching,
-and drawing of Portable Anymap (PNM, PBM, PGM, PPM) image files. The class
-loads bitmap, grayscale, and full-color images in both ASCII and
-binary formats.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_PNM_Image.Fl_PNM_Image">Fl_PNM_Image</A></LI>
-
- <LI><A href="#Fl_PNM_Image.~Fl_PNM_Image">~Fl_PNM_Image</A></LI>
-
-</UL>
-
-<H4><A name="Fl_PNM_Image.Fl_PNM_Image">Fl_PNM_Image::Fl_PNM_Image(const char *filename);</A></H4>
-
-<P>The constructor loads the named PNM image.</P>
-
-<H4><A name="Fl_PNM_Image.~Fl_PNM_Image">Fl_PNM_Image::~Fl_PNM_Image();</A></H4>
-
-<P>The destructor free all memory and server resources that are used by
-the image.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Pack.html b/documentation/Fl_Pack.html
deleted file mode 100644
index d646deb6a..000000000
--- a/documentation/Fl_Pack.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Pack</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Pack>class Fl_Pack</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Group.html#Fl_Group>Fl_Group</A>
- |
- +----<B>Fl_Pack</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Pack.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This widget was designed to add the functionality of compressing and
-aligning widgets.
-<P>If <TT>type()</TT> is <TT>Fl_Pack::HORIZONTAL</TT> all the children are
-resized to the height of the <TT>Fl_Pack</TT>, and are moved next to
-each other horizontally. If <TT>type()</TT> is not <TT>Fl_Pack::HORIZONTAL</TT>
- then the children are resized to the width and are stacked below each
-other. Then the <TT>Fl_Pack</TT> resizes itself to surround the child
-widgets. </P>
-<P>This widget is needed for the <A href=Fl_Tabs.html#Fl_Tabs><TT>Fl_Tabs</TT></A>.
- In addition you may want to put the <TT>Fl_Pack</TT> inside an <A href=Fl_Scroll.html#Fl_Scroll>
-<TT>Fl_Scroll</TT></A>. </P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Pack.Fl_Pack>Fl_Pack</A></LI>
-<LI><A href=#Fl_Pack.~Fl_Pack>~Fl_Pack</A></LI>
-<LI><A href=#Fl_Pack.box>box</A></LI>
-<LI><A href=#Fl_Pack.resizable>resizable</A></LI>
-<LI><A href=#Fl_Pack.spacing>spacing</A></LI>
-</UL>
-<H4><A name=Fl_Pack.Fl_Pack>Fl_Pack::Fl_Pack(int x, int y, int w, int
-h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Pack</TT> widget using the given position, size,
-and label string. The default boxtype is <TT>FL_NO_BOX</TT>.
-<H4><A name=Fl_Pack.~Fl_Pack>virtual Fl_Pack::~Fl_Pack()</A></H4>
- The destructor <I>also deletes all the children</I>. This allows a
-whole tree to be deleted at once, without having to keep a pointer to
-all the children in the user code. A kludge has been done so the <TT>
-Fl_Pack</TT> and all of it's children can be automatic (local)
-variables, but you must declare the <TT>Fl_Pack</TT><I>first</I>, so
-that it is destroyed last.
-
-<H4><A name=Fl_Pack.box>Fl_Boxtype Fl_Pack::box() const
-<BR> void Fl_Pack::box(Fl_Boxtype)</A></H4>
-
-<P>Gets or sets the box type for the widget, which identifies a
-routine that draws the background of the widget. <em>Only frame
-box types may be used with the <tt>Fl_Pack</tt> widget.</em></p>
-
-<H4><A name=Fl_Pack.resizable>void Fl_Pack::resizable(Fl_Widget *box)
-<BR> void Fl_Pack::resizable(Fl_Widget &amp;box)
-<BR> Fl_Widget *Fl_Pack::resizable() const</A></H4>
-<P>The resizable for <tt>Fl_Pack</tt> is set to <TT>NULL</TT> by
-default.</p>
-
-<p> See also: <A href=Fl_Group.html#Fl_Group.resizable>Fl_Group::resizable()</A></p>
-
-<H4><A name=Fl_Pack.spacing>int Fl_Pack::spacing() const
-<BR> void Fl_Pack::spacing(int)</A></H4>
- Gets or sets the number of extra pixels of blank space that are added
-between the children. </BODY></HTML>
diff --git a/documentation/Fl_Pixmap.html b/documentation/Fl_Pixmap.html
deleted file mode 100644
index b3572f0fe..000000000
--- a/documentation/Fl_Pixmap.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Pixmap</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_Pixmap">class Fl_Pixmap</A></H2>
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href="Fl_Image.html">Fl_Image</A>
- |
- +----<B>Fl_Pixmap</B>
- |
- +----<A href="Fl_GIF_Image.html">Fl_GIF_Image</A>,
- <A href="Fl_XPM_Image.html">Fl_XPM_Image</A>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Pixmap.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_Pixmap</TT> class supports caching and drawing of colormap
-(pixmap) images, including transparency.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_Pixmap.Fl_Pixmap">Fl_Pixmap</A></LI>
-
- <LI><A href="#Fl_Pixmap.~Fl_Pixmap">~Fl_Pixmap</A></LI>
-
-</UL>
-
-<H4><A name="Fl_Pixmap.Fl_Pixmap">Fl_Pixmap::Fl_Pixmap(const char * const *data);<BR>
-Fl_Pixmap::Fl_Pixmap(const char **data);<BR>
-Fl_Pixmap::Fl_Pixmap(const unsigned char * const *data);<BR>
-Fl_Pixmap::Fl_Pixmap(const unsigned char **data);</A></H4>
-
-<P>The constructors create a new pixmap from the specified XPM data.</P>
-
-<H4><A name="Fl_Pixmap.~Fl_Pixmap">Fl_Pixmap::~Fl_Pixmap();</A></H4>
-
-<P>The destructor free all memory and server resources that are used by
-the pixmap.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Positioner.html b/documentation/Fl_Positioner.html
deleted file mode 100644
index ee3c650ff..000000000
--- a/documentation/Fl_Positioner.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Positioner</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Positioner>class Fl_Positioner</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Widget.html#Fl_Widget>Fl_Widget</A>
- |
- +----<B>Fl_Positioner</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Positioner.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This class is provided for Forms compatibility. It provides 2D input.
-It would be useful if this could be put atop another widget so that the
-crosshairs are on top, but this is not implemented. The color of the
-crosshairs is <TT>selection_color()</TT>.
-<P ALIGN=CENTER><IMG src="positioner.gif" ALT="Fl_Positioner widget."></P>
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Positioner methods.">
-<TR><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Positioner.Fl_Positioner>Fl_Positioner</A></LI>
-<LI><A href=#Fl_Positioner.~Fl_Positioner>~Fl_Positioner</A></LI>
-<LI><A href=#Fl_Positioner.value>value</A></LI>
-<LI><A href=#Fl_Positioner.xbounds>xbounds</A></LI>
-<LI><A href=#Fl_Positioner.xstep>xstep</A></LI>
-<LI><A href=#Fl_Positioner.xvalue>xvalue</A></LI>
-<LI><A href=#Fl_Positioner.ybounds>ybounds</A></LI>
-<LI><A href=#Fl_Positioner.ystep>ystep</A></LI>
-<LI><A href=#Fl_Positioner.yvalue>yvalue</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-<H4><A name=Fl_Positioner.Fl_Positioner>
-Fl_Positioner::Fl_Positioner(int x, int y, int w, int h, const char
-*label = 0)</A></H4>
- Creates a new <TT>Fl_Positioner</TT> widget using the given position,
-size, and label string. The default boxtype is <TT>FL_NO_BOX</TT>.
-<H4><A name=Fl_Positioner.~Fl_Positioner>virtual
-Fl_Positioner::~Fl_Positioner()</A></H4>
- Deletes the widget.
-<H4><A name=Fl_Positioner.value>void Fl_Positioner::value(float *x,
-float *y) const</A></H4>
- Returns the current position in <TT>x</TT> and <TT>y</TT>.
-<H4><A name=Fl_Positioner.xbounds>void xbounds(float *xmin, float *xmax)
-<BR> void xbounds(float xmin, float xmax)</A></H4>
- Gets or sets the X axis bounds.
-<H4><A name=Fl_Positioner.xstep>void xstep(float x)</A></H4>
- Sets the stepping value for the X axis.
-<H4><A name=Fl_Positioner.xvalue>float Fl_Positioner::xvalue(void) const
-<BR> void Fl_Positioner::xvalue(float x)</A></H4>
- Gets or sets the X axis coordinate.
-<H4><A name=Fl_Positioner.ybounds>void ybounds(float *ymin, float *ymay)
-<BR> void ybounds(float ymin, float ymay)</A></H4>
- Gets or sets the Y axis bounds.
-<H4><A name=Fl_Positioner.ystep>void ystep(float y)</A></H4>
- Sets the stepping value for the Y axis.
-<H4><A name=Fl_Positioner.yvalue>float Fl_Positioner::yvalue(void) const
-<BR> void Fl_Positioner::yvalue(float y)</A></H4>
- Gets or sets the Y axis coordinate. </BODY></HTML>
diff --git a/documentation/Fl_Preferences.html b/documentation/Fl_Preferences.html
deleted file mode 100644
index 5c6e7d697..000000000
--- a/documentation/Fl_Preferences.html
+++ /dev/null
@@ -1,216 +0,0 @@
-<html>
-<HEAD>
- <TITLE>Fl_Preferences</TITLE>
-</HEAD>
-<body>
-
-<!-- NEW PAGE -->
-
-<h2><a name="Fl_Preferences">class Fl_Preferences</a></h2>
-
-<hr>
-
-<h3>Class Hierarchy</h3>
-
-<ul><pre>
-<b>Fl_Preferences</b>
-</pre></ul>
-
-<h3>Include Files</h3>
-
-<ul><pre>
-#include &lt;FL/Fl_Preferences.H&gt;
-</pre></ul>
-
-<h3>Description</h3>
-
-<P><tt>Fl_Preferences </tt>provides methods to store user
-setting between application starts. It is similar to the
-Registry on WIN32 and Preferences on MacOS, and provides a
-simple configuration mechanism for UNIX.
-
-<P><tt>Fl_Preferences </tt>uses a hierarchy to store data. It
-bundles similar data into groups and manages entries into those
-groups as name/value pairs.
-
-<P>Preferences are stored in text files that can be edited
-manually. The file format is easy to read and relatively
-forgiving. Preferences files are the same on all platforms. User
-comments in preference files are preserved. Filenames are unique
-for each application by using a vendor/application naming
-scheme. The user must provide default values for all entries to
-ensure proper operation should preferences be corrupted or not
-yet exist.
-
-<P>Entries can be of any length. However, the size of each
-preferences file should be kept under 100k for performance
-reasons. One application can have multiple preferences files.
-Extensive binary data however should be stored in seperate
-files; see the <A
-href="#Fl_Preferences.getUserdataPath"><tt>getUserdataPath()</tt></A>
-method.
-
-<h3>Methods</h3>
-
-<ul>
-
- <li><a href="#Fl_Preferences.Fl_Preferences">Fl_Preferences</a></li>
- <li><a href="#Fl_Preferences.~Fl_Preferences">~Fl_Preferences</a></li>
- <li><a href="#Fl_Preferences.deleteEntry">deleteEntry</a></li>
- <li><a href="#Fl_Preferences.deleteGroup">deleteGroup</a></li>
- <li><a href="#Fl_Preferences.entries">entries</a></li>
- <li><a href="#Fl_Preferences.entry">entry</a></li>
- <li><a href="#Fl_Preferences.entryExists">entryExists</a></li>
- <li><a href="#Fl_Preferences.get">get</a></li>
- <li><a href="#Fl_Preferences.getUserdataPath">getUserdataPath</a></li>
- <li><a href="#Fl_Preferences.group">group</a></li>
- <li><a href="#Fl_Preferences.groupExists">groupExists</a></li>
- <li><a href="#Fl_Preferences.groups">groups</a></li>
- <li><a href="#Fl_Preferences.set">set</a></li>
- <li><a href="#Fl_Preferences.size">size</a></li>
- <li><a href="#Fl_Preferences.Name">Name</a></li>
-
-</ul>
-
-<H4><a name="Fl_Preferences.Fl_Preferences">
-Fl_Preferences(enum Root root, const char *vendor, const char *application)<BR>
-Fl_Preferences(const char *path, const char *vendor, const char *application)<BR>
-Fl_Preferences(Fl_Preferences &amp;p, const char *groupname)<BR>
-</a></H4>
-
-<P>The constructor creates a group that manages name/value pairs and
-child groups. Groups are ready for reading and writing at any time.
-The <tt>root</tt> argument is either <tt>Fl_Preferences::USER</tt>
-or <tt>Fl_Preferences::SYSTEM</tt>.
-
-<P>The first format creates the <i>base</i> instance for all
-following entries and reads existing databases into memory. The
-<tt>vendor</tt> argument is a unique text string identifying the
-development team or vendor of an application. A domain name or
-an EMail address are great unique names, e.g.
-"researchATmatthiasm.com" or "fltk.org". The
-<tt>application</tt> argument can be the working title or final
-name of your application. Both <tt>vendor</tt> and
-<tt>application</tt> must be valid relative UNIX pathnames and
-may contain '/'s to create deeper file structures.
-
-<P>The second format is used to create a preferences file at an
-arbitrary position in the file system. The file name is generated
-as <tt><i>path</i>/<i>application</i>.prefs</tt>. If <i>application</i>
-is 0, <i>path</i> must contain the full file name.
-
-<P>The third format generates a new group of preference entries
-inside the group or file <i>p</i>. The <tt>groupname</tt> argument
-identifies a group of entries. It can contain '/'s to get quick
-access to individual elements inside the hierarchy.
-
-<H4><a name="Fl_Preferences.~Fl_Preferences">~Fl_Preferences()</a></H4>
-
-<P>The destructor removes allocated resources. When used on the
-<i>base</i> preferences group, the destructor flushes all
-changes to the preferences file and deletes all internal
-databases.
-
-<H4><a name="Fl_Preferences.deleteEntry">int Fl_Preferences::deleteEntry(const char *entry)</a></H4>
-
-<P>Removes a single entry (name/value pair).
-
-<H4><a name="Fl_Preferences.deleteGroup">int Fl_Preferences::deleteGroup(const char *groupname)</a></H4>
-
-<P>Deletes a group.
-
-<H4><a name="Fl_Preferences.entries">int Fl_Preferences::entries()</a></H4>
-
-<P>Returns the number of entries (name/value) pairs in a group.
-
-<H4><a name="Fl_Preferences.entry">const char *Fl_Preferences::entry(int ix)</a></H4>
-
-<P>Returns the name of an entry. There is no guaranteed order of
-entry names. The index must be within the range given by
-<tt>entries()</tt>.
-
-<H4><a name="Fl_Preferences.entryExists">int Fl_Preferences::entryExists(const char *entry)</a></H4>
-
-<P>Returns non-zero if an entry with this name exists.
-
-<H4><a name="Fl_Preferences.flush">void Fl_Preferences::flush()</a></H4>
-
-<P>Write all preferences to disk. This function works only with
-the base preference group. This function is rarely used as
-deleting the base preferences flushes automatically.
-
-<H4><a name="Fl_Preferences.getUserdataPath">int Fl_Preferences::getUserdataPath(char *path, int path_size)</a></H4>
-
-<P>Creates a path that is related to the preferences file and
-that is usable for application data beyond what is covered by
-<tt>Fl_Preferences</tt>.
-
-<H4><a name="Fl_Preferences.get">int get(const char *entry, int &amp;value, int defaultValue)<BR>
-int get(const char *entry, int &amp;value, int defaultValue)<BR>
-int get(const char *entry, float &amp;value, float defaultValue)<BR>
-int get(const char *entry, double &amp;value, double defaultValue )<BR>
-int get(const char *entry, char *&amp;text, const char *defaultValue)<BR>
-int get(const char *entry, char *text, const char *defaultValue, int maxLength)<BR>
-int get(const char *entry, void *&amp;data, const void *defaultValue, int defaultSize)<BR>
-int get(const char *entry, void *data, const void *defaultValue, int defaultSize,
-int maxSize)</a></H4>
-
-<P>Reads an entry from the group. A default value must be
-supplied. The return value indicates if the value was available
-(non-zero) or the default was used (0). If the '<tt>char
-*&amp;text</tt>' or '<tt>void *&amp;data</tt>' form is used,
-the resulting data must be freed with '<tt>free(value)</tt>'.
-<P>'<tt>maxLength</tt>' is the maximum length of text that will be read. The text buffer must allow for one additional byte for a trailling zero.
-
-<H4><a name="Fl_Preferences.group">const char
-*Fl_Preferences::group(int ix)</a></H4>
-
-<P>Returns the name of the Nth group. There is no guaranteed
-order of group names. The index must be within the range given
-by <tt>groups()</tt>.
-
-<H4><a name="Fl_Preferences.groupExists">int Fl_Preferences::groupExists(const char *groupname)</a></H4>
-
-<P>Returns non-zero if a group with this name exists.
-Groupnames are relative to the Preferences node and can contain a path.
-<tt>"."</tt> describes the current node, <tt>"./"</tt> describes the topmost node.
-By preceding a groupname with a <tt>"./"</tt>, its path becomes relative to the topmost node.
-
-<H4><a name="Fl_Preferences.groups">int Fl_Preferences::groups()</a></H4>
-
-<P>Returns the number of groups that are contained within a
-group.
-
-<H4><a name="Fl_Preferences.set">int set(const char *entry, int value)<BR>
-int set(const char *entry, int value)<BR>
-int set(const char *entry, float value)<BR>
-int set(const char *entry, float value, int precision)<BR>
-int set(const char *entry, double value)<BR>
-int set(const char *entry, double value, int precision)<BR>
-int set(const char *entry, const char *text)<BR>
-int set(const char *entry, const void *data, int size)</a></H4>
-
-<P>Sets an entry (name/value pair). The return value indicates if there
-was a problem storing the data in memory. However it does not
-reflect if the value was actually stored in the preferences
-file.
-
-<H4><a name="Fl_Preferences.size">int Fl_Preferences::size(const char *key)</a></H4>
-
-<P>Returns the size of the value part of an entry.
-
-<H4><a name="Fl_Preferences.Name">
-Fl_Preferences::Name( unsigned int numericName )<BR>
-Fl_Preferences::Name( const char *format, ... )
-</a></H4>
-
-<P>'Name' provides a simple method to create numerical or more complex
-procedural names for entries and groups on the fly,
-i.e. <tt>prefs.set(Fl_Preferences::Name("File%d",i),file[i]);</tt>.
-See <tt>test/preferences.cxx</tt> as a sample for writing arrays into preferences.<p>
-'Name' is actually implemented as a class inside Fl_Preferences. It casts
-into <tt>const char*</tt> and gets automatically destroyed after the enclosing call.
-
-
-</body>
-</html>
diff --git a/documentation/Fl_Progress.html b/documentation/Fl_Progress.html
deleted file mode 100644
index 0c0c8a20c..000000000
--- a/documentation/Fl_Progress.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Progress</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-<H2><A name=Fl_Progress>class Fl_Progress</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href="Fl_Widget.html#Fl_Widget">Fl_Widget</A>
- |
- +----<B>Fl_Progress</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Progress.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_Progress</TT> widget displays a progress bar for the
-user.
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_Progress.Fl_Progress">Fl_Progress</A></LI>
- <LI><A href="#Fl_Progress.~Fl_Progress">~Fl_Progress</A></LI>
- <LI><A href="#Fl_Progress.maximum">maximum</A></LI>
- <LI><A href="#Fl_Progress.minimum">minimum</A></LI>
- <LI><A href="#Fl_Progress.value">value</A></LI>
-
-</UL>
-
-<H4><A name="Fl_Progress.Fl_Progress">Fl_Progress::Fl_Progress(int x, int y, int w, int h, const char *label = 0)</A></H4>
-
-<P>The constructor creates the progress bar using the position,
-size, and label.
-
-<H4><A name="Fl_Progress.~Fl_Progress">Fl_Progress::~Fl_Progress(void)</A></H4>
-
-<P>The destructor removes the progress bar.
-
-<H4><A name="Fl_Progress.maximum">void maximum(float v);
-<BR>float maximum() const;</A></H4>
-
-<P>Gets or sets the maximum value in the progress widget.
-
-<H4><A name="Fl_Progress.minimum">void minimum(float v);
-<BR>float minimum() const;</A></H4>
-
-<P>Gets or sets the minimum value in the progress widget.
-
-<H4><A name="Fl_Progress.value">void value(float v);
-<BR>float value() const;</A></H4>
-
-<P>Gets or sets the current value in the progress widget.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_RGB_Image.html b/documentation/Fl_RGB_Image.html
deleted file mode 100644
index 4949bf080..000000000
--- a/documentation/Fl_RGB_Image.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_RGB_Image</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_RGB_Image">class Fl_RGB_Image</A></H2>
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href="Fl_Image.html">Fl_Image</A>
- |
- +----<B>Fl_RGB_Image</B>
- |
- +----<A href="Fl_JPEG_Image.html">Fl_JPEG_Image</A>,
- <A href="Fl_PNG_Image.html">Fl_PNG_Image</A>,
- <A href="Fl_PNM_Image.html">Fl_PNM_Image</A>,
- <A href="Fl_BMP_Image.html">Fl_BMP_Image</A>
-
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_RGB_Image.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_RGB_Image</TT> class supports caching and drawing
-of full-color images with 1 to 4 channels of color information.
-Images with an even number of channels are assumed to contain
-alpha information, which is used to blend the image with the
-contents of the screen.</P>
-
-<P><TT>Fl_RGB_Image</TT> is defined in
-<TT>&lt;FL/Fl_Image.H&gt;</TT>, however for compatibility reasons
-<TT>&lt;FL/Fl_RGB_Image.H&gt;</TT> should be included.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_RGB_Image.Fl_RGB_Image">Fl_RGB_Image</A></LI>
-
- <LI><A href="#Fl_RGB_Image.~Fl_RGB_Image">~Fl_RGB_Image</A></LI>
-
-</UL>
-
-<H4><A name="Fl_RGB_Image.Fl_RGB_Image">Fl_RGB_Image::Fl_RGB_Image(const unsigned char *array, int W, int H, int D = 3, int LD = 0);</A></H4>
-
-<P>The constructor creates a new image from the specified data.</P>
-
-<H4><A name="Fl_RGB_Image.~Fl_RGB_Image">Fl_RGB_Image::~Fl_RGB_Image();</A></H4>
-
-<P>The destructor free all memory and server resources that are used by
-the image.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Repeat_Button.html b/documentation/Fl_Repeat_Button.html
deleted file mode 100644
index 3111715d6..000000000
--- a/documentation/Fl_Repeat_Button.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Repeat_Button</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Repeat_Button>class Fl_Repeat_Button</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE><A href=Fl_Button.html#Fl_Button>Fl_Button</A>
- |
- +----<B>Fl_Repeat_Button</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>#include &lt;FL/Fl_Repeat_Button.H&gt;</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Repeat_Button</TT> is a subclass of <TT>Fl_Button</TT> that
-generates a callback when it is pressed and then repeatedly generates
-callbacks as long as it is held down. The speed of the repeat is fixed
-and depends on the implementation.
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Repeat_Button.Fl_Repeat_Button>Fl_Repeat_Button</A></LI>
-<LI><A href=#Fl_Repeat_Button.~Fl_Repeat_Button>~Fl_Repeat_Button</A></LI>
-</UL>
-<H4><A name=Fl_Repeat_Button.Fl_Repeat_Button>
-Fl_Repeat_Button::Fl_Repeat_Button(int x, int y, int w, int h, const
-char *label = 0)</A></H4>
- Creates a new <TT>Fl_Repeat_Button</TT> widget using the given
-position, size, and label string. The default boxtype is <TT>FL_UP_BOX</TT>
-.
-<H4><A name=Fl_Repeat_Button.~Fl_Repeat_Button>virtual
-Fl_Repeat_Button::~Fl_Repeat_Button()</A></H4>
- Deletes the button. </BODY></HTML>
diff --git a/documentation/Fl_Return_Button.html b/documentation/Fl_Return_Button.html
deleted file mode 100644
index 8328eea2b..000000000
--- a/documentation/Fl_Return_Button.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Return_Button</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Return_Button>class Fl_Return_Button</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE><A href=Fl_Button.html#Fl_Button>Fl_Button</A>
- |
- +----<B>Fl_Return_Button</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>#include &lt;FL/Fl_Return_Button.H&gt;</PRE>
-</UL>
-<H3>Description</H3>
-The <TT>Fl_Return_Button</TT> is a subclass of <TT>Fl_Button</TT> that
-generates a callback when it is pressed or when the user presses the
-Enter key. A carriage-return symbol is drawn next to the button label.
-<P ALIGN=CENTER><IMG SRC="Fl_Return_Button.gif" ALT="Fl_Return_Button widget."></P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Return_Button.Fl_Return_Button>Fl_Return_Button</A></LI>
-<LI><A href=#Fl_Return_Button.~Fl_Return_Button>~Fl_Return_Button</A></LI>
-</UL>
-<H4><A name=Fl_Return_Button.Fl_Return_Button>
-Fl_Return_Button::Fl_Return_Button(int x, int y, int w, int h, const
-char *label = 0)</A></H4>
- Creates a new <TT>Fl_Return_Button</TT> widget using the given
-position, size, and label string. The default boxtype is <TT>FL_UP_BOX</TT>
-.
-<H4><A name=Fl_Return_Button.~Fl_Return_Button>virtual
-Fl_Return_Button::~Fl_Return_Button()</A></H4>
- Deletes the button. </BODY></HTML>
diff --git a/documentation/Fl_Roller.html b/documentation/Fl_Roller.html
deleted file mode 100644
index a430342c4..000000000
--- a/documentation/Fl_Roller.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Roller</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Roller>class Fl_Roller</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Valuator.html#Fl_Valuator>Fl_Valuator</A>
- |
- +----<B>Fl_Roller</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Roller.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Roller</TT> widget is a &quot;dolly&quot; control commonly used to
-move 3D objects.
-<P ALIGN=CENTER><IMG src="Fl_Roller.gif" ALT="Fl_Roller widget."></P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Roller.Fl_Roller>Fl_Roller</A></LI>
-<LI><A href=#Fl_Roller.~Fl_Roller>~Fl_Roller</A></LI>
-</UL>
-<H4><A name=Fl_Roller.Fl_Roller>Fl_Roller::Fl_Roller(int x, int y, int
-w, int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Roller</TT> widget using the given position,
-size, and label string. The default boxtype is <TT>FL_NO_BOX</TT>.
-<H4><A name=Fl_Roller.~Fl_Roller>virtual Fl_Roller::~Fl_Roller()</A></H4>
- Destroys the valuator. </BODY></HTML>
diff --git a/documentation/Fl_Round_Button.html b/documentation/Fl_Round_Button.html
deleted file mode 100644
index bf1eea14c..000000000
--- a/documentation/Fl_Round_Button.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Round_Button</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Round_Button>class Fl_Round_Button</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Button.html#Fl_Button>Fl_Button</A>
- |
- +----<B>Fl_Round_Button</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Round_Button.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
-Buttons generate callbacks when they are clicked by the user. You
-control exactly when and how by changing the values for <TT>type()</TT>
-and <TT>when()</TT>.
-<P ALIGN=CENTER><IMG SRC="Fl_Round_Button.gif" ALT="Fl_Round_Button widget."></P>
-<P>The <TT>Fl_Round_Button</TT> subclass display the &quot;on&quot; state by
-turning on a light, rather than drawing pushed in. The shape of the
-&quot;light&quot; is initially set to FL_ROUND_DOWN_BOX. The color of the light
-when on is controlled with <TT>selection_color()</TT>, which defaults to
-FL_RED.</P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Round_Button.Fl_Round_Button>Fl_Round_Button</A></LI>
-<LI><A href=#Fl_Round_Button.~Fl_Round_Button>~Fl_Round_Button</A></LI>
-</UL>
-<H4><A name=Fl_Round_Button.Fl_Round_Button>
-Fl_Round_Button::Fl_Round_Button(int x, int y, int w, int h, const char
-*label = 0)</A></H4>
- Creates a new <TT>Fl_Round_Button</TT> widget using the given
-position, size, and label string.
-<H4><A name=Fl_Round_Button.~Fl_Round_Button>
-Fl_Round_Button::~Fl_Round_Button()</A></H4>
- The destructor deletes the check button. </BODY></HTML>
diff --git a/documentation/Fl_Scroll.html b/documentation/Fl_Scroll.html
deleted file mode 100644
index c30ca19d3..000000000
--- a/documentation/Fl_Scroll.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Scroll</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Scroll>class Fl_Scroll</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Group.html#Fl_Group>Fl_Group</A>
- |
- +----<B>Fl_Scroll</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Scroll.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This container widget lets you maneuver around a set of widgets much
-larger than your window. If the child widgets are larger than the size
-of this object then scrollbars will appear so that you can scroll over
-to them:
-<P ALIGN=CENTER><IMG src="Fl_Scroll.gif" ALT="Fl_Scroll widget."></P>
-<P>If all of the child widgets are packed together into a solid
-rectangle then you want to set <TT>box()</TT> to <TT>FL_NO_BOX</TT> or
-one of the <TT>_FRAME</TT> types. This will result in the best output.
- However, if the child widgets are a sparse arrangment you must set <TT>
-box()</TT> to a real <TT>_BOX</TT> type. This can result in some
-blinking during redrawing, but that can be solved by using a <TT>
-Fl_Double_Window</TT>. </P>
-<P>This widget can also be used to pan around a single child widget
-&quot;canvas&quot;. This child widget should be of your own class, with a <TT>
-draw()</TT> method that draws the contents. The scrolling is done by
-changing the <TT>x()</TT> and <TT>y()</TT> of the widget, so this child
-must use the <TT>x()</TT> and <TT>y()</TT> to position it's drawing.
- To speed up drawing it should test <A href=drawing.html#fl_push_clip><TT>fl_push_clip()</TT></A>
-. </P>
-<P>Another very useful child is a single <A href=Fl_Pack.html#Fl_Pack><TT>
-Fl_Pack</TT></A>, which is itself a group that packs it's children
-together and changes size to surround them. Filling the <TT>Fl_Pack</TT>
- with <A href=Fl_Tabs.html#Fl_Tabs><TT>Fl_Tabs</TT></A> groups (and then putting
-normal widgets inside those) gives you a very powerful scrolling list
-of individually-openable panels. </P>
-<P>Fluid lets you create these, but you can only lay out objects that
-fit inside the <TT>Fl_Scroll</TT> without scrolling. Be sure to leave
-space for the scrollbars, as Fluid won't show these either. </P>
-<P><I>You cannot use <TT>Fl_Window</TT> as a child of this since the
-clipping is not conveyed to it when drawn, and it will draw over the
-scrollbars and neighboring objects.</I></P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Scroll.Fl_Scroll>Fl_Scroll</A></LI>
-<LI><A href=#Fl_Scroll.~Fl_Scroll>~Fl_Scroll</A></LI>
-<LI><A href=#Fl_Scroll.align>align</A></LI>
-<LI><A href=#Fl_Scroll.type>type</A></LI>
-<LI><A href=#Fl_Scroll.scroll_to>scroll_to</A></LI>
-<LI><A href=#Fl_Scroll.xposition>xposition</A></LI>
-<LI><A href=#Fl_Scroll.yposition>yposition</A></LI>
-</UL>
-<H4><A name=Fl_Scroll.Fl_Scroll>Fl_Scroll::Fl_Scroll(int x, int y, int
-w, int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Scroll</TT> widget using the given position,
-size, and label string. The default boxtype is <TT>FL_NO_BOX</TT>.
-<H4><A name=Fl_Scroll.~Fl_Scroll>virtual Fl_Scroll::~Fl_Scroll()</A></H4>
- The destructor <I>also deletes all the children</I>. This allows a
-whole tree to be deleted at once, without having to keep a pointer to
-all the children in the user code. A kludge has been done so the <TT>
-Fl_Scroll</TT> and all of it's children can be automatic (local)
-variables, but you must declare the <TT>Fl_Scroll</TT><I>first</I>, so
-that it is destroyed last.
-<H4><A name=Fl_Scroll.type>void Fl_Widget::type(int)</A></H4>
- By default you can scroll in both directions, and the scrollbars
-disappear if the data will fit in the area of the scroll. <TT>type()</TT>
- can change this:
-<UL>
-<LI><TT>0</TT> - No scrollbars </LI>
-<LI><TT>Fl_Scroll::HORIZONTAL</TT> - Only a horizontal scrollbar. </LI>
-<LI><TT>Fl_Scroll::VERTICAL</TT> - Only a vertical scrollbar. </LI>
-<LI><TT>Fl_Scroll::BOTH</TT> - The default is both scrollbars. </LI>
-<LI><TT>Fl_Scroll::HORIZONTAL_ALWAYS</TT> - Horizontal scrollbar
- always on, vertical always off. </LI>
-<LI><TT>Fl_Scroll::VERTICAL_ALWAYS</TT> - Vertical scrollbar always on,
- horizontal always off. </LI>
-<LI><TT>Fl_Scroll::BOTH_ALWAYS</TT> - Both always on. </LI>
-</UL>
-<H4><A name=Fl_Scroll.align>void Fl_Scroll::scrollbar.align(int)</A></H4>
- This is used to change what side the scrollbars are drawn on. If the <TT>
-FL_ALIGN_LEFT</TT> bit is on, the vertical scrollbar is on the left.
- If the <TT>FL_ALIGN_TOP</TT> bit is on, the horizontal scrollbar is on
-the top. Note that only the alignment flags in <TT>scrollbar</TT> are
-considered. The flags in <TT>hscrollbar</TT> however are ignored.
-<H4><A name=Fl_Scroll.xposition>int Fl_Scroll::xposition() const</A></H4>
- Gets the current horizontal scrolling position.
-<H4><A name=Fl_Scroll.yposition>int Fl_Scroll::yposition() const</A></H4>
- Gets the current vertical scrolling position.
-<H4><A name=Fl_Scroll.scroll_to>void Fl_Scroll::scroll_to(int x, int y)</A></H4>
-Moves the contents of the scroll group to a new position.
-<H4><A name=Fl_Scroll.position>void Fl_Scroll::position(int x, int y)</A></H4>
-Moves the scroll group itself to a new position.
-</BODY></HTML>
diff --git a/documentation/Fl_Scrollbar.html b/documentation/Fl_Scrollbar.html
deleted file mode 100644
index e574740a6..000000000
--- a/documentation/Fl_Scrollbar.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Scrollbar</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Scrollbar>class Fl_Scrollbar</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Slider.html#Fl_Slider>Fl_Slider</A>
- |
- +----<B>Fl_Scrollbar</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Scrollbar.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Scrollbar</TT> widget displays a slider with arrow buttons
-at the ends of the scrollbar. Clicking on the arrows move up/left and
-down/right by <TT>linesize()</TT>. Scrollbars also accept <TT>
-FL_SHORTCUT</TT> events: the arrows move by <TT>linesize()</TT>, and
-vertical scrollbars take Page Up/Down (they move by the page size minus <TT>
-linesize()</TT>) and Home/End (they jump to the top or bottom).
-<P>Scrollbars have <TT>step(1)</TT> preset (they always return
-integers). If desired you can set the <TT>step()</TT> to non-integer
-values. You will then have to use casts to get at the floating-point
-versions of <TT>value()</TT> from <TT>Fl_Slider</TT>. </P>
-<P ALIGN=CENTER><IMG src="scrollbar.gif" ALT="Fl_Scrollbar widget."></P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Scrollbar.Fl_Scrollbar>Fl_Scrollbar</A></LI>
-<LI><A href=#Fl_Scrollbar.~Fl_Scrollbar>~Fl_Scrollbar</A></LI>
-<LI><A href=#Fl_Scrollbar.linesize>linesize</A></LI>
-<LI><A href=#Fl_Scrollbar.value>value</A></LI>
-</UL>
-<H4><A name=Fl_Scrollbar.Fl_Scrollbar>Fl_Scrollbar::Fl_Scrollbar(int x,
-int y, int w, int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Scrollbar</TT> widget using the given position,
-size, and label string. You need to do <TT>type(FL_HORIZONTAL)</TT> if
-you want a horizontal scrollbar.
-<H4><A name=Fl_Scrollbar.~Fl_Scrollbar>virtual
-Fl_Scrollbar::~Fl_Scrollbar()</A></H4>
- Destroys the valuator.
-<H4><A name=Fl_Scrollbar.linesize>int Fl_Scrollbar::linesize() const
-<BR> void Fl_Scrollbar::linesize(int i)</A></H4>
- This number controls how big the steps are that the arrow keys do. In
-addition page up/down move by the size last sent to <TT>value()</TT>
- minus one <TT>linesize()</TT>. The default is 16.
-<H4><A name=Fl_Scrollbar.value>int Fl_Scrollbar::value()
-<BR> int Fl_Scrollbar::value(int position, int size, int top, int total)</A>
-</H4>
- The first form returns the integer value of the scrollbar. You can get
-the floating point value with <TT>Fl_Slider::value()</TT>. The second
-form sets <TT>value()</TT>, <TT>range()</TT>, and <TT>slider_size()</TT>
- to make a variable-sized scrollbar. You should call this every time
-your window changes size, your data changes size, or your scroll
-position changes (even if in response to a callback from this
-scrollbar). All necessary calls to <TT>redraw()</TT> are done. </BODY></HTML>
diff --git a/documentation/Fl_Secret_Input.html b/documentation/Fl_Secret_Input.html
deleted file mode 100644
index d703ac1a8..000000000
--- a/documentation/Fl_Secret_Input.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Secret_Input</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Secret_Input>class Fl_Secret_Input</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Input.html#Fl_Input>Fl_Input</A>
- |
- +----<B>Fl_Secret_Input</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Secret_Input.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Secret_Input</TT> class is a subclass of <TT>Fl_Input</TT>
- that displays its input as a string of asterisks. This subclass is
-usually used to receive passwords and other &quot;secret&quot; information.
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Secret_Input.Fl_Secret_Input>Fl_Secret_Input</A></LI>
-<LI><A href=#Fl_Secret_Input.~Fl_Secret_Input>~Fl_Secret_Input</A></LI>
-</UL>
-<H4><A name=Fl_Secret_Input.Fl_Secret_Input>
-Fl_Secret_Input::Fl_Secret_Input(int x, int y, int w, int h, const char
-*label = 0)</A></H4>
- Creates a new <TT>Fl_Secret_Input</TT> widget using the given
-position, size, and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>
-.
-<H4><A name=Fl_Secret_Input.~Fl_Secret_Input>virtual
-Fl_Secret_Input::~Fl_Secret_Input()</A></H4>
- Destroys the widget and any value associated with it. </BODY></HTML>
diff --git a/documentation/Fl_Select_Browser.html b/documentation/Fl_Select_Browser.html
deleted file mode 100644
index 4f516970d..000000000
--- a/documentation/Fl_Select_Browser.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Select_Browser</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Select_Browser>class Fl_Select_Browser</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Browser.html#Fl_Browser>Fl_Browser</A>
- |
- +----<B>Fl_Select_Browser</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Select_Browser.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
-The <TT>Fl_Select_Browser</TT> class is a subclass of <TT>Fl_Browser</TT>
-which lets the user select a single item, or no items by clicking on
-the empty space. As long as the mouse button is held down on an
-unselected item it is highlighted. Normally the callback is done when the
-user presses the mouse, but you can change this with <TT>when()</TT>.
-<P>See <A href=Fl_Browser.html#Fl_Browser><TT>Fl_Browser</TT></A> for
-methods to add and remove lines from the browser. </P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Select_Browser.Fl_Select_Browser>Fl_Select_Browser</A></LI>
-<LI><A href=#Fl_Select_Browser.~Fl_Select_Browser>~Fl_Select_Browser</A></LI>
-<LI><A href=#Fl_Select_Browser.deselect>deselect</A></LI>
-<LI><A href=#Fl_Select_Browser.select>select</A></LI>
-<LI><A href=#Fl_Select_Browser.value>value</A></LI>
-</UL>
-<H4><A name=Fl_Select_Browser.Fl_Select_Browser>
-Fl_Select_Browser::Fl_Select_Browser(int x, int y, int w, int h, const
-char *label = 0)</A></H4>
- Creates a new <TT>Fl_Select_Browser</TT> widget using the given
-position, size, and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>
-.
-<H4><A name=Fl_Select_Browser.~Fl_Select_Browser>virtual
-Fl_Select_Browser::~Fl_Select_Browser()</A></H4>
- The destructor <I>also deletes all the items in the list</I>.
-<H4><A name=Fl_Select_Browser.deselect>int Fl_Browser::deselect()</A></H4>
-<P>Deselects any selected item.
-<H4><A name=Fl_Select_Browser.select>int Fl_Browser::select(int,int=1)
-<BR> int Fl_Browser::selected(int) const</A></H4>
- You can use these for compatibility with <A href=Fl_Multi_Browser.html#Fl_Multi_Browser>
-<TT>Fl_Multi_Browser</TT></A>. If you turn on the selection of more
-than one line the results are unpredictable.
-<H4><A name=Fl_Select_Browser.value>int Fl_Browser::value() const</A></H4>
- Returns the number of the highlighted item, or zero if none. Notice
-that this is going to be zero except <I>during</I> a callback! </BODY></HTML>
diff --git a/documentation/Fl_Shared_Image.html b/documentation/Fl_Shared_Image.html
deleted file mode 100644
index ea45f7fd1..000000000
--- a/documentation/Fl_Shared_Image.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Shared_Image</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_Shared_Image">class Fl_Shared_Image</A></H2>
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href="Fl_Image.html">Fl_Image</A>
- |
- +----<B>Fl_Shared_Image</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Shared_Image.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_Shared_Image</TT> class supports caching, loading,
-and drawing of image files. Most applications will also want to
-link against the <CODE>fltk_images</CODE> library and call the
-<A
-HREF="functions.html#fl_register_images"><CODE>fl_register_images()</CODE></A>
-function to support standard image formats such as BMP, GIF, JPEG, and PNG.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_Shared_Image.Fl_Shared_Image">Fl_Shared_Image</A></LI>
-
- <LI><A href="#Fl_Shared_Image.~Fl_Shared_Image">~Fl_Shared_Image</A></LI>
-
- <LI><A href="#Fl_Shared_Image.find">find</A></LI>
-
- <LI><A href="#Fl_Shared_Image.get">get</A></LI>
-
- <LI><A href="#Fl_Shared_Image.images">images</A></LI>
-
- <LI><A href="#Fl_Shared_Image.name">name</A></LI>
-
- <LI><A href="#Fl_Shared_Image.num_images">num_images</A></LI>
-
- <LI><A href="#Fl_Shared_Image.refcount">refcount</A></LI>
-
- <LI><A href="#Fl_Shared_Image.release">release</A></LI>
-
- <LI><A href="#Fl_Shared_Image.reload">reload</A></LI>
-
-</UL>
-
-<H4><A name="Fl_Shared_Image.Fl_Shared_Image">protected Fl_Shared_Image::Fl_Shared_Image();<BR>
-protected Fl_Shared_Image::Fl_Shared_Image(const char *name, Fl_Image *img);</A></H4>
-
-<P>The constructors create a new shared image record in the
-image cache.
-
-<P>The constructors are protected and cannot be used directly
-from a program. Use the <A
-HREF="#Fl_Shared_Image.get"><TT>get()</TT></A> method instead.
-
-<H4><A name="Fl_Shared_Image.~Fl_Shared_Image">protected Fl_Shared_Image::~Fl_Shared_Image();</A></H4>
-
-<P>The destructor free all memory and server resources that are
-used by the image. The destructor is protected and cannot be
-used directly from a program. Use the <A
-HREF="#Fl_Shared_Image.release"><TT>release()</TT></A> method
-instead.
-
-<H4><A NAME="Fl_Shared_Image.find">static Fl_Shared_Image *find(const char *n, int W = 0, int H = 0);</A></H4>
-
-<H4><A NAME="Fl_Shared_Image.get">static Fl_Shared_Image *get(const char *n, int W = 0, int H = 0);</A></H4>
-
-<H4><A NAME="Fl_Shared_Image.images">static Fl_Shared_Image **images();</A></H4>
-
-<H4><A NAME="Fl_Shared_Image.name">const char *name();</A></H4>
-
-<H4><A NAME="Fl_Shared_Image.num_images">static int num_images();</A></H4>
-
-<H4><A NAME="Fl_Shared_Image.refcount">int refcount();</A></H4>
-
-<H4><A NAME="Fl_Shared_Image.release">void release();</A></H4>
-
-<H4><A NAME="Fl_Shared_Image.reload">void reload();</A></H4>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Single_Window.html b/documentation/Fl_Single_Window.html
deleted file mode 100644
index 8329e0a22..000000000
--- a/documentation/Fl_Single_Window.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Single_Window</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Single_Window>class Fl_Single_Window</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Window.html#Fl_Window>Fl_Window</A>
- |
- +----<B>Fl_Single_Window</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Single_Window.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This is the same as <TT>Fl_Window</TT>. However, it is possible that
-some implementations will provide double-buffered windows by default.
-This subclass can be used to force single-buffering. This may be
-useful for modifying existing programs that use incremental update, or
-for some types of image data, such as a movie flipbook.
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Single_Window.Fl_Single_Window>Fl_Single_Window</A></LI>
-<LI><A href=#Fl_Single_Window.~Fl_Single_Window>~Fl_Single_Window</A></LI>
-</UL>
-<H4><A name=Fl_Single_Window.Fl_Single_Window>
-Fl_Single_Window::Fl_Single_Window(int x, int y, int w, int h, const
-char *label = 0)</A></H4>
- Creates a new <TT>Fl_Single_Window</TT> widget using the given
-position, size, and label (title) string.
-<H4><A name=Fl_Single_Window.~Fl_Single_Window>virtual
-Fl_Single_Window::~Fl_Single_Window()</A></H4>
- Destroys the window and all child widgets.
-</BODY></HTML>
diff --git a/documentation/Fl_Slider.html b/documentation/Fl_Slider.html
deleted file mode 100644
index 88f5910ab..000000000
--- a/documentation/Fl_Slider.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Slider</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Slider>class Fl_Slider</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Valuator.html#Fl_Valuator>Fl_Valuator</A>
- |
- +----<B>Fl_Slider</B>
- |
- +----<A href=Fl_Scrollbar.html#Fl_Scrollbar>Fl_Scrollbar</A>, <A href=Fl_Value_Slider.html#Fl_Value_Slider>Fl_Value_Slider</A>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Slider.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Slider</TT> widget contains a sliding knob inside a box. It
-if often used as a scrollbar. Moving the box all the way to the
-top/left sets it to the <TT>minimum()</TT>, and to the bottom/right to
-the <TT>maximum()</TT>. The <TT>minimum()</TT> may be greater than the <TT>
-maximum()</TT> to reverse the slider direction.
-<P ALIGN=CENTER><IMG src="slider.gif" ALT="Fl_Slider widget."></P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Slider.Fl_Slider>Fl_Slider</A></LI>
-<LI><A href=#Fl_Slider.~Fl_Slider>~Fl_Slider</A></LI>
-<LI><A href=#Fl_Slider.scrollvalue>scrollvalue</A></LI>
-<LI><A href=#Fl_Slider.slider>slider</A></LI>
-<LI><A href=#Fl_Slider.slider_size>slider_size</A></LI>
-<LI><A href=#Fl_Slider.type>type</A></LI>
-</UL>
-<H4><A name=Fl_Slider.Fl_Slider>Fl_Slider::Fl_Slider(int x, int y, int
-w, int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Slider</TT> widget using the given position,
-size, and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>.
-<H4><A name=Fl_Slider.~Fl_Slider>virtual Fl_Slider::~Fl_Slider()</A></H4>
- Destroys the valuator.
-<H4><A name=Fl_Slider.scrollvalue>int Fl_Slider::scrollvalue(int
-windowtop, int windowsize, int first, int totalsize)</A></H4>
- Returns <A href=Fl_Scrollbar.html#Fl_Scrollbar.value><TT>
-Fl_Scrollbar::value()</TT></A>.
-<H4><A name=Fl_Slider.slider>Fl_Boxtype Fl_Slider::slider() const
-<BR> void Fl_Slider::slider(Fl_Boxtype)</A></H4>
- Set the type of box to draw for the moving part of the slider. The
-color of the moving part (or of the notch in it for the nice sliders)
-is controlled by <TT>selection_color()</TT>. The default value of zero
-causes the slider to figure out what to draw from <TT>box()</TT>.
-<H4><A name=Fl_Slider.slider_size>float Fl_Slider::slider_size() const
-<BR> void Fl_Slider::slider_size(float)</A></H4>
- Get or set the dimensions of the moving piece of slider. This is the
-fraction of the size of the entire widget. If you set this to 1 then
-the slider cannot move. The default value is .08.
-<P>For the &quot;fill&quot; sliders this is the size of the area around the end
-that causes a drag effect rather than causing the slider to jump to the
-mouse. </P>
-<H4><A name=Fl_Slider.type>uchar Fl_Widget::type() const
-<BR> void Fl_Widget::type(uchar t)</A></H4>
- Setting this changes how the slider is drawn, which can be one of the
-following:
-<UL>
-<LI><TT>FL_VERTICAL</TT> - Draws a vertical slider (this is the
-default). </LI>
-<LI><TT>FL_HORIZONTAL</TT> - Draws a horizontal slider. </LI>
-<LI><TT>FL_VERT_FILL_SLIDER</TT> - Draws a filled vertical slider,
-useful as a progress or value meter. </LI>
-<LI><TT>FL_HOR_FILL_SLIDER</TT> - Draws a filled horizontal slider,
-useful as a progress or value meter. </LI>
-<LI><TT>FL_VERT_NICE_SLIDER</TT> - Draws a vertical slider with a nice
-looking control knob. </LI>
-<LI><TT>FL_HOR_NICE_SLIDER</TT> - Draws a horizontal slider with a
-nice looking control knob. </LI>
-</UL>
-</BODY></HTML>
diff --git a/documentation/Fl_Spinner.html b/documentation/Fl_Spinner.html
deleted file mode 100644
index 3594e3aee..000000000
--- a/documentation/Fl_Spinner.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<html>
-<HEAD>
- <TITLE>Fl_Spinner</TITLE>
-</HEAD>
-<body>
-
-<!-- NEW PAGE -->
-
-<h2><a name=Fl_Spinner>class Fl_Spinner</a></h2>
-
-<hr>
-
-<h3>Class Hierarchy</h3>
-
-<ul><pre>
-<a href=Fl_Group.html#Fl_Group>Fl_Group</a>
- |
- +----<b>Fl_Spinner</b>
-</pre></ul>
-
-<h3>Include Files</h3>
-
-<ul><pre>
-#include &lt;FL/Fl_Spinner.H&gt;
-</pre></ul>
-
-<h3>Description</h3>
-
-<p>The <tt>Fl_Spinner</tt> widget is a combination of the input
-widget and repeat buttons. The user can either type into the
-input area or use the buttons to change the value.
-
-<h3>Methods</h3>
-
-<ul>
-
- <li><a href='#Fl_Spinner.Fl_Spinner'>Fl_Spinner</a></li>
- <li><a href='#Fl_Spinner.~Fl_Spinner'>~Fl_Spinner</a></li>
- <li><a href='#Fl_Spinner.format'>format</a></li>
- <li><a href='#Fl_Spinner.maximum'>maximum</a></li>
- <li><a href='#Fl_Spinner.minimum'>minimum</a></li>
- <li><a href='#Fl_Spinner.range'>range</a></li>
- <li><a href='#Fl_Spinner.step'>step</a></li>
- <li><a href='#Fl_Spinner.textcolor'>textcolor</a></li>
- <li><a href='#Fl_Spinner.textfont'>textfont</a></li>
- <li><a href='#Fl_Spinner.textsize'>textsize</a></li>
- <li><a href='#Fl_Spinner.type'>type</a></li>
- <li><a href='#Fl_Spinner.value'>value</a></li>
-
-</ul>
-
-<h4><a name="Fl_Spinner.Fl_Spinner">Fl_Spinner::Fl_Spinner(int x, int y, int w,
-int h, const char *label = 0)</a></h4>
-
-<p>Creates a new <TT>Fl_Spinner</TT> widget using the given position, size,
-and label string.
-
-<h4><a name="Fl_Spinner.~Fl_Spinner">virtual Fl_Spinner::~Fl_Spinner()</a></h4>
-
-<p>Destroys the widget and any value associated with it.
-
-<h4><a name='Fl_Spinner.format'>void format(const char *f)<br />
-const char *format()</a></h4>
-
-<p>Sets or returns the format string for the value.</p>
-
-<h4><a name='Fl_Spinner.maximum'>void maximum(double m)<br />
-double maximum() const</a></h4>
-
-<p>Sets or returns the maximum value of the widget.</p>
-
-<h4><a name='Fl_Spinner.minimum'>void minimum(double m)<br />
-double minimum() const</a></h4>
-
-<p>Sets or returns the minimum value of the widget.</p>
-
-<h4><a name='Fl_Spinner.range'>void range(double minval, double maxval)</a></h4>
-
-<p>Sets the minimum and maximum values for the widget.</p>
-
-<h4><a name='Fl_Spinner.step'>void step(double s)<br />
-double step() const</a></h4>
-
-<p>Sets or returns the amount to change the value when the user
-clicks a button.
-Before setting <tt>step</tt> to a non-integer value, the spinner
-<a href='#Fl_Spinner.type'><tt>type()</tt></a> should be changed
-to floating point.</p>
-
-<h4><a name='Fl_Spinner.textcolor'>void textcolor(Fl_Color c)<br />
-Fl_Color textcolor() const</a></h4>
-
-<p>Sets or returns the color of the text in the input field.</p>
-
-<h4><a name='Fl_Spinner.textfont'>void textfont(uchar f)<br />
-uchar textfont() const</a></h4>
-
-<p>Sets or returns the font of the text in the input field.</p>
-
-<h4><a name='Fl_Spinner.textsize'>void textsize(uchar s)<br />
-uchar textsize() const</a></h4>
-
-<p>Sets or returns the size of the text in the input field.</p>
-
-<h4><a name='Fl_Spinner.type'>void type(uchar s)<br />
-uchar type() const</a></h4>
-
-<p>Sets or returns the numeric representation in the input field.
-Valid values are <tt>FL_INT_INPUT</tt> and <tt>FL_FLOAT_INPUT</tt>.
-The first form also changes the <tt>format()</tt> template.
-Please note that <tt>type</tt> is not a virtual function.
-Setting a new spinner type via a superclass pointer will not work.</p>
-
-<h4><a name="Fl_Spinner.value">void Fl_Spinner::value(double v)<br />
-double Fl_Spinner::value() const</a></h4>
-
-<p>Sets or returns the current value of the widget.
-Before setting <tt>value</tt> to a non-integer value, the spinner
-<a href='#Fl_Spinner.type'><tt>type()</tt></a> should be changed
-to floating point.</p>
-
-</body>
-</html>
diff --git a/documentation/Fl_Tabs.html b/documentation/Fl_Tabs.html
deleted file mode 100644
index f7cb20b7c..000000000
--- a/documentation/Fl_Tabs.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Tabs</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name=Fl_Tabs>class Fl_Tabs</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href=Fl_Group.html#Fl_Group>Fl_Group</A>
- |
- +----<B>Fl_Tabs</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Tabs.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_Tabs</TT> widget is the &quot;file card tabs&quot;
-interface that allows you to put lots and lots of buttons and
-switches in a panel, as popularized by many toolkits.
-
-<P ALIGN=CENTER><IMG src="tabs.gif" ALT="Fl_Tabs widget."></P>
-
-<P>Clicking the tab makes a child <TT>visible()</TT> by calling
-<TT>show()</TT> on it, and all other children are made invisible
-by calling <TT>hide()</TT> on them. Usually the children are <A
-href="Fl_Group.html#Fl_Group"><TT>Fl_Group</TT></A> widgets
-containing several widgets themselves.
-
-<P>Each child makes a card, and it's <TT>label()</TT> is printed
-on the card tab, including the label font and style. The
-selection color of that child is used to color the tab, while
-the color of the child determines the background color of the
-pane.
-
-<P>The size of the tabs is controlled by the bounding box of the
-children (there should be some space between the children and
-the edge of the <TT>Fl_Tabs</TT>), and the tabs may be placed
-&quot;inverted&quot; on the bottom, this is determined by which
-gap is larger. It is easiest to lay this out in fluid, using the
-fluid browser to select each child group and resize them until
-the tabs look the way you want them to.
-
-<H3>Methods</H3>
-
-<UL>
- <LI><A href="#Fl_Tabs.Fl_Tabs">Fl_Tabs</A></LI>
- <LI><A href="#Fl_Tabs.~Fl_Tabs">~Fl_Tabs</A></LI>
- <LI><A href="#Fl_Tabs.value">value</A></LI>
-</UL>
-
-<H4><A name="Fl_Tabs.Fl_Tabs">Fl_Tabs::Fl_Tabs(int x, int y, int w, int h,
-const char *label = 0)</A></H4>
-
-<P>Creates a new <TT>Fl_Tabs</TT> widget using the given position, size,
-and label string. The default boxtype is <TT>FL_THIN_UP_BOX</TT>.
-
-<P>Use <A href="Fl_Group.html#Fl_Group.add"><TT>add(Fl_Widget
-*)</TT></A> to add each child, which are usually
-<TT>Fl_Group</TT> widgets. The children should be sized to stay
-away from the top or bottom edge of the <TT>Fl_Tabs</TT> widget,
-which is where the tabs will be drawn.
-
-<H4><A name="Fl_Tabs.~Fl_Tabs">virtual Fl_Tabs::~Fl_Tabs()</A></H4>
-
-<P>The destructor <I>also deletes all the children</I>. This
-allows a whole tree to be deleted at once, without having to
-keep a pointer to all the children in the user code. A kludge
-has been done so the <TT>Fl_Tabs</TT> and all of it's children
-can be automatic (local) variables, but you must declare the
-<TT>Fl_Tabs</TT> widget <I>first</I> so that it is destroyed
-last.
-
-<H4><A name="Fl_Tabs.value">Fl_Widget* Fl_Tabs::value()
-<BR>int Fl_Tabs::value(Fl_Widget*)</A></H4>
-
-<P>Gets or sets the currently visible widget/tab.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Text_Buffer.html b/documentation/Fl_Text_Buffer.html
deleted file mode 100644
index 2b9712004..000000000
--- a/documentation/Fl_Text_Buffer.html
+++ /dev/null
@@ -1,465 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Text_Buffer</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_Text_Buffer">class Fl_Text_Buffer</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<B>Fl_Text_Buffer</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Text_Buffer.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_Text_Buffer</TT> class is used by the
-<tt><A href="Fl_Text_Display.html">Fl_Text_Display</A></tt>
-and
-<tt><A href="Fl_Text_Editor.html">Fl_Text_Editor</A></tt>
-to manage complex text data and is based upon the
-excellent NEdit text editor engine - see
-<A HREF="http://www.nedit.org/">http://www.nedit.org/</A>.</P>
-
-<H3>Methods</H3>
-
-<TABLE CELLPADDING="10">
-<TR VALIGN="TOP"><TD><UL>
-
- <LI><A HREF="#Fl_Text_Buffer.Fl_Text_Buffer">Fl_Text_Buffer</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.~Fl_Text_Buffer">~Fl_Text_Buffer</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.add_modify_callback">add_modify_callback</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.append">append</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.appendfile">appendfile</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.call_modify_callbacks">call_modify_callbacks</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.character">character</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.character_width">character_width</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.clear_rectangular">clear_rectangular</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.copy">copy</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.count_displayed_characters">count_displayed_characters</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.count_lines">count_lines</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.expand_character">expand_character</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.findchar_backward">findchar_backward</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.findchar_forward">findchar_forward</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.findchars_backward">findchars_backward</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.findchars_forward">findchars_forward</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.highlight">highlight</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.highlight_position">highlight_position</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.highlight_rectangular">highlight_rectangular</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.highlight_selection">highlight_selection</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.highlight_text">highlight_text</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.insert_column">insert_column</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.insertfile">insertfile</A></LI>
-
-</UL></TD><TD><UL>
-
- <LI><A HREF="#Fl_Text_Buffer.insert">insert</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.length">length</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.line_end">line_end</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.line_start">line_start</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.line_text">line_text</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.loadfile">loadfile</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.null_substitution_character">null_substitution_character</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.outputfile">outputfile</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.overlay_rectangular">overlay_rectangular</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.primary_selection">primary_selection</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.remove_modify_callback">remove_modify_callback</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.remove_rectangular">remove_rectangular</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.remove">remove</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.remove_secondary_selection">remove_secondary_selection</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.remove_selection">remove_selection</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.replace_rectangular">replace_rectangular</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.replace">replace</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.replace_secondary_selection">replace_secondary_selection</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.replace_selection">replace_selection</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.rewind_lines">rewind_lines</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.savefile">savefile</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.search_backward">search_backward</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.search_forward">search_forward</A></LI>
-
-</UL></TD><TD><UL>
-
- <LI><A HREF="#Fl_Text_Buffer.secondary_selection_position">secondary_selection_position</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.secondary_selection">secondary_selection</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.secondary_selection_text">secondary_selection_text</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.secondary_select_rectangular">secondary_select_rectangular</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.secondary_select">secondary_select</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.secondary_unselect">secondary_unselect</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.selected">selected</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.selection_position">selection_position</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.selection_text">selection_text</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.select_rectangular">select_rectangular</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.select">select</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.skip_displayed_characters">skip_displayed_characters</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.skip_lines">skip_lines</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.substitute_null_characters">substitute_null_characters</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.tab_distance">tab_distance</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.text_in_rectangle">text_in_rectangle</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.text_range">text_range</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.text">text</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.unhighlight">unhighlight</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.unselect">unselect</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.unsubstitute_null_characters">unsubstitute_null_characters</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.word_end">word_end</A></LI>
- <LI><A HREF="#Fl_Text_Buffer.word_start">word_start</A></LI>
-
-</UL></TD></TR>
-</TABLE>
-
-<H4><A NAME="Fl_Text_Buffer.Fl_Text_Buffer">Fl_Text_Buffer(int requestedSize = 0);</A></H4>
-
-<P>Creates a new text buffer of the specified initial size.
-
-<H4><A NAME="Fl_Text_Buffer.~Fl_Text_Buffer">~Fl_Text_Buffer();</A></H4>
-
-<P>Destroys a text buffer.
-
-<H4><A NAME="Fl_Text_Buffer.add_modify_callback">void add_modify_callback(Fl_Text_Modify_Cb bufModifiedCB, void* cbArg);</A></H4>
-
-<P>Adds a callback function that is called whenever the text buffer is
-modified. The callback function is declared as follows:
-
-<UL><PRE>
-typedef void (*Fl_Text_Modify_Cb)(int pos, int nInserted, int nDeleted,
- int nRestyled, const char* deletedText,
- void* cbArg);
-</PRE></UL>
-
-<H4><A NAME="Fl_Text_Buffer.append">void append(const char* text);</A></H4>
-
-<P>Appends the text string to the end of the buffer.
-
-<H4><A NAME="Fl_Text_Buffer.appendfile">int appendfile(const char *file, int buflen = 128*1024);</A></H4>
-
-<P>Appends the named file to the end of the buffer. Returns 0 on
-success, non-zero on error (strerror() contains reason). 1 indicates
-open for read failed (no data loaded). 2 indicates error occurred
-while reading data (data was partially loaded).
-
-<H4><A NAME="Fl_Text_Buffer.call_modify_callbacks">void call_modify_callbacks();</A></H4>
-
-<P>Calls all modify callbacks that have been registered using
-the <A
-HREF="#Fl_Text_Buffer.add_modify_callback"><TT>add_modify_callback()</TT></A>
-method.
-
-<H4><A NAME="Fl_Text_Buffer.character">char character(int pos);</A></H4>
-
-<P>Returns the character at the specified position in the buffer.
-
-<H4><A NAME="Fl_Text_Buffer.character_width">static int character_width(char c, int indent, int tabDist, char nullSubsChar);</A></H4>
-
-<P>Returns the column width of the specified character. The
-<TT>indent</TT> argument specifies the current column position,
-and <TT>tabDist</TT> specifies the number of columns to use for
-each tab.
-
-<P>The <TT>nullSubsChar</TT> argument specifies the current
-<TT>nul</TT> character.
-
-<H4><A NAME="Fl_Text_Buffer.clear_rectangular">void clear_rectangular(int start, int end, int rectStart, int rectEnd);</A></H4>
-
-<P>Clears text in the specified area.
-
-<H4><A NAME="Fl_Text_Buffer.copy">void copy(Fl_Text_Buffer* fromBuf, int fromStart, int fromEnd, int toPos);</A></H4>
-
-<P>Copies text from one buffer to this one; <TT>fromBuf</TT> may
-be the same as <TT>this</TT>.
-
-<H4><A NAME="Fl_Text_Buffer.count_displayed_characters">int count_displayed_characters(int lineStartPos, int targetPos);</A></H4>
-
-<P>Determines the number of characters that will be displayed
-between <TT>lineStartPos</TT> and <TT>targetPos</TT>.
-
-<H4><A NAME="Fl_Text_Buffer.count_lines">int count_lines(int startPos, int endPos);</A></H4>
-
-<P>Determines the number of lines between <TT>startPos</TT> and
-<TT>endPos</TT>.
-
-<H4><A NAME="Fl_Text_Buffer.expand_character">int expand_character(int pos, int indent, char *outStr);<BR>
-static int expand_character(char c, int indent, char* outStr, int tabDist,
-char nullSubsChar);</A></H4>
-
-<P>Expands the given character to a displayable format. Tabs and
-other control characters are given special treatment.
-
-<H4><A NAME="Fl_Text_Buffer.findchar_backward">int findchar_backward(int startPos, char searchChar, int* foundPos);</A></H4>
-
-<P>Finds the previous occurrence of the specified character.
-
-<H4><A NAME="Fl_Text_Buffer.findchar_forward">int findchar_forward(int startPos, char searchChar, int* foundPos);</A></H4>
-
-<P>Finds the next occurrence of the specified character.
-
-<H4><A NAME="Fl_Text_Buffer.findchars_backward">int findchars_backward(int startPos, const char* searchChars, int* foundPos);</A></H4>
-
-<P>Finds the previous occurrence of the specified characters.
-
-<H4><A NAME="Fl_Text_Buffer.findchars_forward">int findchars_forward(int startPos, const char* searchChars, int* foundPos);</A></H4>
-
-<P>Finds the next occurrence of the specified characters.
-Search forwards in buffer for characters in <i>searchChars</i>, starting
-with the character <i>startPos</i>, and returning the result in <i>foundPos</i>
-returns 1 if found, 0 if not.
-
-<H4><A NAME="Fl_Text_Buffer.highlight">void highlight(int start, int end);</A></H4>
-
-<P>Highlights the specified text within the buffer.
-
-<H4><A NAME="Fl_Text_Buffer.highlight_position">int highlight_position(int* start, int* end, int* isRect, int* rectStart,
-int* rectEnd);</A></H4>
-
-<P>Returns the current highlight positions.
-
-<H4><A NAME="Fl_Text_Buffer.highlight_rectangular">void highlight_rectangular(int start, int end, int rectStart, int rectEnd);</A></H4>
-
-<P>Highlights the specified rectangle of text within the buffer.
-
-<H4><A NAME="Fl_Text_Buffer.highlight_selection">Fl_Text_Selection* highlight_selection();</A></H4>
-
-<P>Returns the current highlight selection.
-
-<H4><A NAME="Fl_Text_Buffer.highlight_text">const char* highlight_text();</A></H4>
-
-<P>Returns the highlighted text. When you are done with the
-text, free it using the <tt>free()</tt> function.
-
-<H4><A NAME="Fl_Text_Buffer.insert_column">void insert_column(int column, int startPos, const char* text,
-int* charsInserted, int* charsDeleted);</A></H4>
-
-<P>Inserts a column of text without calling the modify callbacks.
-
-<H4><A NAME="Fl_Text_Buffer.insertfile">int insertfile(const char *file, int pos, int buflen = 128*1024);</A></H4>
-
-<P>Inserts a file at the specified position. Returns 0 on success,
-non-zero on error (strerror() contains reason). 1 indicates open
-for read failed (no data loaded). 2 indicates error occurred
-while reading data (data was partially loaded).
-
-<H4><A NAME="Fl_Text_Buffer.insert">void insert(int pos, const char* text);</A></H4>
-
-<P>Inserts text at the specified position.
-
-<H4><A NAME="Fl_Text_Buffer.length">int length();</A></H4>
-
-<P>Returns the number of characters in the buffer.
-
-<H4><A NAME="Fl_Text_Buffer.line_end">int line_end(int pos);</A></H4>
-
-<P>Returns the end position of the line.
-
-<H4><A NAME="Fl_Text_Buffer.line_start">int line_start(int pos);</A></H4>
-
-<P>Returns the start position of the line.
-
-<H4><A NAME="Fl_Text_Buffer.line_text">const char* line_text(int pos);</A></H4>
-
-<P>Returns the text for the line containing the specified
-character position. When you are done with the text, free it
-using the <tt>free()</tt> function.
-
-<H4><A NAME="Fl_Text_Buffer.loadfile">int loadfile(const char *file, int buflen = 128*1024);</A></H4>
-
-<P>Replaces the current buffer with the contents of a file. Returns 0
-on success, non-zero on error (strerror() contains reason). 1 indicates
-open for read failed (no data loaded). 2 indicates error occurred
-while reading data (data was partially loaded).
-
-<H4><A NAME="Fl_Text_Buffer.null_substitution_character">char null_substitution_character();</A></H4>
-
-<P>Returns the current <TT>nul</TT> substitution character.
-
-<H4><A NAME="Fl_Text_Buffer.outputfile">int outputfile(const char *file, int start, int end, int buflen = 128*1024);</A></H4>
-
-<P>Writes the specified portions of the file to a file. Returns 0 on success, non-zero
-on error (strerror() contains reason). 1 indicates open for write failed
-(no data saved). 2 indicates error occurred while writing data
-(data was partially saved).
-
-<H4><A NAME="Fl_Text_Buffer.overlay_rectangular">void overlay_rectangular(int startPos, int rectStart, int rectEnd,
-const char* text, int* charsInserted, int* charsDeleted);</A></H4>
-
-<P>Replaces a rectangular region of text with the given text.
-
-<H4><A NAME="Fl_Text_Buffer.primary_selection">Fl_Text_Selection* primary_selection();</A></H4>
-
-<P>Returns the primary selection.
-
-<H4><A NAME="Fl_Text_Buffer.remove_modify_callback">void remove_modify_callback(Fl_Text_Modify_Cb bufModifiedCB, void* cbArg);</A></H4>
-
-<P>Removes a modify callback.
-
-<H4><A NAME="Fl_Text_Buffer.remove_rectangular">void remove_rectangular(int start, int end, int rectStart, int rectEnd);</A></H4>
-
-<P>Deletes a rectangular area of text in the buffer.
-
-<H4><A NAME="Fl_Text_Buffer.remove">void remove(int start, int end);</A></H4>
-
-<P>Deletes a range of characters in the buffer.
-
-<H4><A NAME="Fl_Text_Buffer.remove_secondary_selection">void remove_secondary_selection();</A></H4>
-
-<P>Removes the text in the secondary selection.
-
-<H4><A NAME="Fl_Text_Buffer.remove_selection">void remove_selection();</A></H4>
-
-<P>Removes the text in the primary selection.
-
-<H4><A NAME="Fl_Text_Buffer.replace_rectangular">void replace_rectangular(int start, int end, int rectStart, int rectEnd,
-const char* text);</A></H4>
-
-<P>Replaces the text in a rectangular area.
-
-<H4><A NAME="Fl_Text_Buffer.replace">void replace(int start, int end, const char *text);</A></H4>
-
-<P>Replaces the text in the specified range of characters in the buffer.
-
-<H4><A NAME="Fl_Text_Buffer.replace_secondary_selection">void replace_secondary_selection(const char* text);</A></H4>
-
-<P>Replaces the text in the secondary selection.
-
-<H4><A NAME="Fl_Text_Buffer.replace_selection">void replace_selection(const char* text);</A></H4>
-
-<P>Replaces the text in the primary selection.
-
-<H4><A NAME="Fl_Text_Buffer.rewind_lines">int rewind_lines(int startPos, int nLines);</A></H4>
-
-<P>Returns the buffer position for the Nth previous line.
-
-<H4><A NAME="Fl_Text_Buffer.savefile">int savefile(const char *file, int buflen = 128*1024);</A></H4>
-
-<P>Saves the entire buffer to a file. Returns 0 on success, non-zero
-on error (strerror() contains reason). 1 indicates open for write failed
-(no data saved). 2 indicates error occurred while writing data
-(data was partially saved).
-
-<H4><A NAME="Fl_Text_Buffer.search_backward">int search_backward(int startPos, const char* searchString, int* foundPos,
-int matchCase = 0);</A></H4>
-
-<P>Searches backwards for the specified string.
-
-<H4><A NAME="Fl_Text_Buffer.search_forward">int search_forward(int startPos, const char* searchString, int* foundPos,
-int matchCase = 0);</A></H4>
-
-<P>Searches forwards for the specified string.
-
-<H4><A NAME="Fl_Text_Buffer.secondary_selection_position">int secondary_selection_position(int* start, int* end, int* isRect,
-int* rectStart, int* rectEnd);</A></H4>
-
-<H4><A NAME="Fl_Text_Buffer.secondary_selection">Fl_Text_Selection* secondary_selection();</A></H4>
-
-<P>Returns the secondary selection.
-
-<H4><A NAME="Fl_Text_Buffer.secondary_selection_text">const char* secondary_selection_text();</A></H4>
-
-<P>Returns the text in the secondary selection. When you are
-done with the text, free it using the <tt>free()</tt> function.
-
-<H4><A NAME="Fl_Text_Buffer.secondary_select_rectangular">void secondary_select_rectangular(int start, int end, int rectStart,
-int rectEnd);</A></H4>
-
-<P>Selects a rectangle of characters in the secondary selection.
-
-<H4><A NAME="Fl_Text_Buffer.secondary_select">void secondary_select(int start, int end);</A></H4>
-
-<P>Selects a range of characters in the secondary selection.
-
-<H4><A NAME="Fl_Text_Buffer.secondary_unselect">void secondary_unselect();</A></H4>
-
-<P>Turns the secondary selection off.
-
-<H4><A NAME="Fl_Text_Buffer.selected">int selected();</A></H4>
-
-<P>Returns a non-zero number if any text has been selected, or 0
-if no text is selected.
-
-<H4><A NAME="Fl_Text_Buffer.selection_position">int selection_position(int* start, int* end);<BR>
-int selection_position(int* start, int* end, int* isRect, int* rectStart, int* rectEnd);</A></H4>
-
-<P>Returns the current selection.
-
-<H4><A NAME="Fl_Text_Buffer.selection_text">const char* selection_text();</A></H4>
-
-<P>Returns the currently selected text. When you are done with
-the text, free it using the <tt>free()</tt> function.
-
-<H4><A NAME="Fl_Text_Buffer.select_rectangular">void select_rectangular(int start, int end, int rectStart, int rectEnd);</A></H4>
-
-<P>Selects a rectangle of characters in the buffer.
-
-<H4><A NAME="Fl_Text_Buffer.select">void select(int start, int end);</A></H4>
-
-<P>Selects a range of characters in the buffer.
-
-<H4><A NAME="Fl_Text_Buffer.skip_displayed_characters">int skip_displayed_characters(int lineStartPos, int nChars);</A></H4>
-
-<P>Skips forward the indicated number of characters in the
-buffer from the start position.
-
-<H4><A NAME="Fl_Text_Buffer.skip_lines">int skip_lines(int startPos, int nLines);</A></H4>
-
-<P>Returns the buffer position for the Nth line after the start
-position.
-
-<H4><A NAME="Fl_Text_Buffer.substitute_null_characters">int substitute_null_characters(char* string, int length);</A></H4>
-
-<P>Replaces <TT>nul</TT> characters in the given string with the
-<TT>nul</TT> substitution character.
-
-<H4><A NAME="Fl_Text_Buffer.tab_distance">int tab_distance();<BR>
-void tab_distance(int tabDist);</A></H4>
-
-<P>Gets or sets the tab width.
-
-<H4><A NAME="Fl_Text_Buffer.text_in_rectangle">const char* text_in_rectangle(int start, int end, int rectStart, int rectEnd);</A></H4>
-
-<P>Returns the text from the given rectangle. When you are done
-with the text, free it using the <tt>free()</tt> function.
-
-<H4><A NAME="Fl_Text_Buffer.text_range">const char* text_range(int start, int end);</A></H4>
-
-<P>Returns the text from the range of characters. When you are
-done with the text, free it using the <tt>free()</tt> function.
-
-<H4><A NAME="Fl_Text_Buffer.text">const char* text();<BR>
-void text(const char* text);</A></H4>
-
-<P>Gets or sets the text in the buffer. The first form
-returns a copy of the text in the buffer which you must
-later <tt>free()</tt> when done using it. The second form sets the text in
-the buffer, making an internal copy of the string that is automatically managed.
-
-<H4><A NAME="Fl_Text_Buffer.unhighlight">void unhighlight();</A></H4>
-
-<P>Unhighlights text in the buffer.
-
-<H4><A NAME="Fl_Text_Buffer.unselect">void unselect();</A></H4>
-
-<P>Unselects text in the buffer.
-
-<H4><A NAME="Fl_Text_Buffer.unsubstitute_null_characters">void unsubstitute_null_characters(char* string);</A></H4>
-
-<P>Replaces the <TT>nul</TT> substitution characters in the
-provided string with the <TT>nul</TT> character.
-
-<H4><A NAME="Fl_Text_Buffer.word_end">int word_end(int pos);</A></H4>
-
-<P>Returns the position for the end of the word.
-
-<H4><A NAME="Fl_Text_Buffer.word_start">int word_start(int pos);</A></H4>
-
-<P>Returns the position for the start of the word.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Text_Display.html b/documentation/Fl_Text_Display.html
deleted file mode 100644
index afce86edb..000000000
--- a/documentation/Fl_Text_Display.html
+++ /dev/null
@@ -1,246 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Text_Display</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_Text_Display">class Fl_Text_Display</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL>
-<PRE>
-<A href="Fl_Group.html">Fl_Group</A>
- |
- +----<B>Fl_Text_Display</B>----<A HREF="Fl_Text_Buffer.html">Fl_Text_Buffer</A>
- |
- +----<A href="Fl_Text_Editor.html">Fl_Text_Editor</A>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-
-<UL>
-<PRE>
-#include &lt;FL/Fl_Text_Display.H&gt;
-</PRE>
-</UL>
-
-<H3>Description</H3>
-
-<P>This is the FLTK text display widget. It allows the user to
-view multiple lines of text and supports highlighting and
-scrolling. The buffer that is displayed in the widget is managed
-by the <A HREF="Fl_Text_Buffer.html"><TT>Fl_Text_Buffer</TT></A>
-class.
-
-
-<H3>Methods</H3>
-
-<TABLE CELLPADDING="10">
-<TR VALIGN="TOP"><TD><UL>
-
- <LI><A HREF="#Fl_Text_Display.Fl_Text_Display">Fl_Text_Display</A></LI>
- <LI><A HREF="#Fl_Text_Display.~Fl_Text_Display">~Fl_Text_Display</A></LI>
- <LI><A HREF="#Fl_Text_Display.buffer">buffer</A></LI>
- <LI><A HREF="#Fl_Text_Display.cursor_color">cursor_color</A></LI>
- <LI><A HREF="#Fl_Text_Display.cursor_style">cursor_style</A></LI>
- <LI><A HREF="#Fl_Text_Display.hide_cursor">hide_cursor</A></LI>
- <LI><A HREF="#Fl_Text_Display.highlight_data">highlight_data</A></LI>
- <LI><A HREF="#Fl_Text_Display.in_selection">in_selection</A></LI>
- <LI><A HREF="#Fl_Text_Display.insert">insert</A></LI>
- <LI><A HREF="#Fl_Text_Display.insert_position">insert_position</A></LI>
- <LI><A HREF="#Fl_Text_Display.move_down">move_down</A></LI>
-
-</UL></TD><TD><UL>
-
- <LI><A HREF="#Fl_Text_Display.move_left">move_left</A></LI>
- <LI><A HREF="#Fl_Text_Display.move_right">move_right</A></LI>
- <LI><A HREF="#Fl_Text_Display.move_up">move_up</A></LI>
- <LI><A HREF="#Fl_Text_Display.next_word">next_word</A></LI>
- <LI><A HREF="#Fl_Text_Display.overstrike">overstrike</A></LI>
- <LI><A HREF="#Fl_Text_Display.position_style">position_style</A></LI>
- <LI><A HREF="#Fl_Text_Display.previous_word">previous_word</A></LI>
- <LI><A HREF="#Fl_Text_Display.redisplay_range">redisplay_range</A></LI>
- <LI><A HREF="#Fl_Text_Display.scrollbar_align">scrollbar_align</A></LI>
- <LI><A HREF="#Fl_Text_Display.scrollbar_width">scrollbar_width</A></LI>
-
-</UL></TD><TD><UL>
-
- <LI><A HREF="#Fl_Text_Display.scroll">scroll</A></LI>
- <LI><A HREF="#Fl_Text_Display.show_cursor">show_cursor</A></LI>
- <LI><A HREF="#Fl_Text_Display.show_insert_position">show_insert_position</A></LI>
- <LI><A HREF="#Fl_Text_Display.textcolor">textcolor</A></LI>
- <LI><A HREF="#Fl_Text_Display.textfont">textfont</A></LI>
- <LI><A HREF="#Fl_Text_Display.textsize">textsize</A></LI>
- <LI><A HREF="#Fl_Text_Display.word_end">word_end</A></LI>
- <LI><A HREF="#Fl_Text_Display.word_start">word_start</A></LI>
- <LI><A HREF="#Fl_Text_Display.wrap_mode">wrap_mode</A></LI>
-
-</UL></TD></TR>
-</TABLE>
-
-<H4><A NAME="Fl_Text_Display.Fl_Text_Display">Fl_Text_Display(int X, int Y, int W, int H, const char *l = 0);</A></H4>
-
-<P>Creates a new text display widget.
-
-<H4><A NAME="Fl_Text_Display.~Fl_Text_Display">~Fl_Text_Display();</A></H4>
-
-<P>Destroys a text display widget.
-
-<H4><A NAME="Fl_Text_Display.buffer">void buffer(Fl_Text_Buffer* buf);<BR>
-void buffer(Fl_Text_Buffer&amp; buf);<BR>
-Fl_Text_Buffer* buffer();</A></H4>
-
-<P>Sets or gets the current text buffer associated with the text widget.
-Multiple text widgets can be associated with the same text buffer.
-
-<H4><A NAME="Fl_Text_Display.cursor_color">void cursor_color(Fl_Color c);</A><br>
-Fl_Color cursor_color();</H4>
-
-<P>Sets or gets the text cursor color.
-
-<H4><A NAME="Fl_Text_Display.cursor_style">void cursor_style(int style);</A></H4>
-
-<P>Sets the text cursor style to one of the following:
-
-<UL>
-
- <LI><CODE>Fl_Text_Display::NORMAL_CURSOR</CODE> - Shows an I beam.
-
- <LI><CODE>Fl_Text_Display::CARET_CURSOR</CODE> - Shows a caret under the text.
-
- <LI><CODE>Fl_Text_Display::DIM_CURSOR</CODE> - Shows a dimmed I beam.
-
- <LI><CODE>Fl_Text_Display::BLOCK_CURSOR</CODE> - Shows an unfilled box around the current
- character.
-
- <LI><CODE>Fl_Text_Display::HEAVY_CURSOR</CODE> - Shows a thick I beam.
-
-</UL>
-
-<H4><A NAME="Fl_Text_Display.hide_cursor">void hide_cursor();</A></H4>
-
-<P>Hides the text cursor.
-
-<H4><A NAME="Fl_Text_Display.highlight_data">void highlight_data(Fl_Text_Buffer *styleBuffer,
-Style_Table_Entry *styleTable, int nStyles, char
-unfinishedStyle, Unfinished_Style_Cb unfinishedHighlightCB, void
-*cbArg);</A></H4>
-
-<P>Sets the text buffer, text styles, and callbacks to use when
-displaying text in the widget. Style buffers cannot be shared
-between widgets and are often used to do syntax highlighting.
-The editor example from <A HREF="editor.html">Chapter 4</A>
-shows how to use the <CODE>highlight_data()</CODE> method.
-
-<H4><A NAME="Fl_Text_Display.in_selection">int in_selection(int x, int y);</A></H4>
-
-<P>Returns non-zero if the specified mouse position is inside the current
-selection.
-
-<H4><A NAME="Fl_Text_Display.insert">void insert(const char* text);</A></H4>
-
-<P>Inserts text at the current insert position.
-
-<H4><A NAME="Fl_Text_Display.insert_position">void insert_position(int newPos);<BR>
-int insert_position()</A></H4>
-
-<P>Sets or gets the current insert position.
-
-<H4><A NAME="Fl_Text_Display.move_down">int move_down();</A></H4>
-
-<P>Moves the current insert position down one line.
-
-<H4><A NAME="Fl_Text_Display.move_left">int move_left();</A></H4>
-
-<P>Moves the current insert position left one character.
-
-<H4><A NAME="Fl_Text_Display.move_right">int move_right();</A></H4>
-
-<P>Moves the current insert position right one character.
-
-<H4><A NAME="Fl_Text_Display.move_up">int move_up();</A></H4>
-
-<P>Moves the current insert position up one line.
-
-<H4><A NAME="Fl_Text_Display.next_word">void next_word(void);</A></H4>
-
-<P>Moves the current insert position right one word.
-
-<H4><A NAME="Fl_Text_Display.overstrike">void overstrike(const char* text);</A></H4>
-
-<P>Replaces text at the current insert position.
-
-<H4><A NAME="Fl_Text_Display.position_style">int position_style(int lineStartPos, int lineLen, int lineIndex,
-int dispIndex);</A></H4>
-
-<P>Returns the style associated with the character at position
-<CODE>lineStartPos + lineIndex</CODE>.
-
-<H4><A NAME="Fl_Text_Display.previous_word">void previous_word(void);</A></H4>
-
-<P>Moves the current insert position left one word.
-
-<H4><A NAME="Fl_Text_Display.redisplay_range">void redisplay_range(int start, int end);</A></H4>
-
-<P>Marks text from <CODE>start</CODE> to <CODE>end</CODE> as needing a redraw.
-
-<H4><A NAME="Fl_Text_Display.scrollbar_align">void scrollbar_align(Fl_Align a);<BR>
-Fl_Align scrollbar_align();</A></H4>
-
-<P>Sets or gets where scrollbars are attached to the widget -
-<CODE>FL_ALIGN_LEFT</CODE> and <CODE>FL_ALIGN_RIGHT</CODE> for
-the vertical scrollbar and <CODE>FL_ALIGN_TOP</CODE> and
-<CODE>FL_ALIGN_BOTTOM</CODE> for the horizontal scrollbar.
-
-<H4><A NAME="Fl_Text_Display.scrollbar_width">void scrollbar_width(int w);<BR>
-int scrollbar_width();</A></H4>
-
-<P>Sets or gets the width/height of the scrollbars.
-
-<H4><A NAME="Fl_Text_Display.scroll">void scroll(int topLineNum, int horizOffset);</A></H4>
-
-<P>Scrolls the current buffer to start at the specified line and column.
-
-<H4><A NAME="Fl_Text_Display.show_cursor">void show_cursor(int b = 1);</A></H4>
-
-<P>Shows or hides the text cursor.
-
-<H4><A NAME="Fl_Text_Display.show_insert_position">void show_insert_position();</A></H4>
-
-<P>Scrolls the text buffer to show the current insert position.
-
-<H4><A NAME="Fl_Text_Display.textcolor">void textcolor(unsigned n);<BR>
-Fl_Color textcolor() const;</A></H4>
-
-<P>Sets or gets the default color of text in the widget.
-
-<H4><A NAME="Fl_Text_Display.textfont">void textfont(uchar s);<BR>
-Fl_Font textfont() const;</A></H4>
-
-<P>Sets or gets the default font used when drawing text in the widget.
-
-<H4><A NAME="Fl_Text_Display.textsize">void textsize(uchar s);<BR>
-uchar textsize() const;</A></H4>
-
-<P>Sets or gets the default size of text in the widget.
-
-<H4><A NAME="Fl_Text_Display.word_end">int word_end(int pos);</A></H4>
-
-<P>Moves the insert position to the end of the current word.
-
-<H4><A NAME="Fl_Text_Display.word_start">int word_start(int pos);</A></H4>
-
-<P>Moves the insert position to the beginning of the current word.
-
-<H4><A NAME="Fl_Text_Display.wrap_mode">void wrap_mode(int mode, int pos);</A></H4>
-
-<P>If <i>mode</i> is not zero, this call enables automatic word wrapping at column <i>pos</i>.
-Word-wrapping does not change the text buffer itself, only the way that the text is displayed.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Text_Editor.html b/documentation/Fl_Text_Editor.html
deleted file mode 100644
index ced3ac968..000000000
--- a/documentation/Fl_Text_Editor.html
+++ /dev/null
@@ -1,227 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Text_Editor</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name=Fl_Text_Editor>class Fl_Text_Editor</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL>
-<PRE>
-<A href="Fl_Text_Display.html">Fl_Text_Display</A>
- |
- +----<B>Fl_Text_Editor</B>
-</PRE>
-</UL>
-
-<H3>Include Files</H3>
-
-<UL>
-<PRE>
-#include &lt;FL/Fl_Text_Editor.H&gt;
-</PRE>
-</UL>
-
-<H3>Description</H3>
-
-<P>This is the FLTK text editor widget. It allows the user to
-edit multiple lines of text and supports highlighting and
-scrolling. The buffer that is displayed in the widget is managed
-by the <A HREF="Fl_Text_Buffer.html"><TT>Fl_Text_Buffer</TT></A>
-class.
-
-<H3>Methods</H3>
-
-<TABLE CELLPADDING="10">
-<TR VALIGN="TOP"><TD><UL>
-
- <LI><A HREF="#Fl_Text_Editor.Fl_Text_Editor">Fl_Text_Editor</A></LI>
- <LI><A HREF="#Fl_Text_Editor.~Fl_Text_Editor">~Fl_Text_Editor</A></LI>
- <LI><A HREF="#Fl_Text_Editor.add_default_key_bindings">add_default_key_bindings</A></LI>
- <LI><A HREF="#Fl_Text_Editor.add_key_binding">add_key_binding</A></LI>
- <LI><A HREF="#Fl_Text_Editor.bound_key_function">bound_key_function</A></LI>
- <LI><A HREF="#Fl_Text_Editor.default_key_function">default_key_function</A></LI>
- <LI><A HREF="#Fl_Text_Editor.insert_mode">insert_mode</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_backspace">kf_backspace</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_copy">kf_copy</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_c_s_move">kf_c_s_move</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_ctrl_move">kf_ctrl_move</A></LI>
-
-</UL></TD><TD><UL>
-
- <LI><A HREF="#Fl_Text_Editor.kf_cut">kf_cut</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_default">kf_default</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_delete">kf_delete</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_down">kf_down</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_end">kf_end</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_enter">kf_enter</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_home">kf_home</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_ignore">kf_ignore</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_insert">kf_insert</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_left">kf_left</A></LI>
-
-</UL></TD><TD><UL>
-
- <LI><A HREF="#Fl_Text_Editor.kf_move">kf_move</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_page_down">kf_page_down</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_page_up">kf_page_up</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_paste">kf_paste</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_right">kf_right</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_select_all">kf_select_all</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_shift_move">kf_shift_move</A></LI>
- <LI><A HREF="#Fl_Text_Editor.kf_up">kf_up</A></LI>
- <LI><A HREF="#Fl_Text_Editor.remove_all_key_bindings">remove_all_key_bindings</A></LI>
- <LI><A HREF="#Fl_Text_Editor.remove_key_binding">remove_key_binding</A></LI>
- <LI><A href="#Fl_Text_Editor.shortcut">shortcut</A></LI>
-
-</UL></TD></TR>
-</TABLE>
-
-<H4><A NAME="Fl_Text_Editor.Fl_Text_Editor">Fl_Text_Editor(int X, int Y, int W, int H, const char* l = 0);</A></H4>
-
-<P>The constructor creates a new text editor widget.
-
-<H4><A NAME="Fl_Text_Editor.~Fl_Text_Editor">~Fl_Text_Editor();</A></H4>
-
-<P>The destructor frees all memory used by the text editor widget.
-
-<H4><A NAME="Fl_Text_Editor.add_default_key_bindings">void add_default_key_bindings(Key_Binding** list);</A></H4>
-
-<P>Adds all of the default editor key bindings to the specified key binding list.
-
-<H4><A NAME="Fl_Text_Editor.add_key_binding">void add_key_binding(int key, int state, Key_Func f, Key_Binding** list);<BR>
-void add_key_binding(int key, int state, Key_Func f);</A></H4>
-
-<P>Adds a single key binding to the specified or current key binding list.
-
-<H4><A NAME="Fl_Text_Editor.bound_key_function">Key_Func bound_key_function(int key, int state, Key_Binding* list);<BR>
-Key_Func bound_key_function(int key, int state);</A></H4>
-
-<P>Returns the function associated with a key binding.
-
-<H4><A NAME="Fl_Text_Editor.default_key_function">void default_key_function(Key_Func f);</A></H4>
-
-<P>Sets the default key function for unassigned keys.
-
-<H4><A NAME="Fl_Text_Editor.insert_mode">void insert_mode(int b);<BR>
-int insert_mode();</A></H4>
-
-<P>Sets or gets the current insert mode; if non-zero, new text
-is inserted before the current cursor position. Otherwise, new
-text replaces text at the current cursor position.
-
-<H4><A NAME="Fl_Text_Editor.kf_backspace">int kf_backspace(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Does a backspace in the current buffer.
-
-<H4><A NAME="Fl_Text_Editor.kf_copy">int kf_copy(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Does a copy of selected text in the current buffer.
-
-<H4><A NAME="Fl_Text_Editor.kf_c_s_move">int kf_c_s_move(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Extends the current selection in the direction indicated by
-control key <CODE>c</CODE>.
-
-<H4><A NAME="Fl_Text_Editor.kf_ctrl_move">int kf_ctrl_move(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Moves the current text cursor in the direction indicated by
-control key <CODE>c</CODE>.
-
-<H4><A NAME="Fl_Text_Editor.kf_cut">int kf_cut(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Does a cut of selected text in the current buffer.
-
-<H4><A NAME="Fl_Text_Editor.kf_default">int kf_default(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Inserts the text associated with the key <CODE>c</CODE>.
-
-<H4><A NAME="Fl_Text_Editor.kf_delete">int kf_delete(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Does a delete of selected text or the current character in
-the current buffer.
-
-<H4><A NAME="Fl_Text_Editor.kf_down">int kf_down(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Moves the text cursor down one line.
-
-<H4><A NAME="Fl_Text_Editor.kf_end">int kf_end(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Moves the text cursor to the end of the current line.
-
-<H4><A NAME="Fl_Text_Editor.kf_enter">int kf_enter(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Inserts a newline at the current cursor position.
-
-<H4><A NAME="Fl_Text_Editor.kf_home">int kf_home(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Moves the text cursor to the beginning of the current line.
-
-<H4><A NAME="Fl_Text_Editor.kf_ignore">int kf_ignore(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Ignores the keypress.
-
-<H4><A NAME="Fl_Text_Editor.kf_insert">int kf_insert(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Toggles the insert mode in the text editor.
-
-<H4><A NAME="Fl_Text_Editor.kf_left">int kf_left(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Moves the text cursor to the left in the buffer.
-
-<H4><A NAME="Fl_Text_Editor.kf_move">int kf_move(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Moves the text cursor in the direction indicated by key
-<CODE>c</CODE>.
-
-<H4><A NAME="Fl_Text_Editor.kf_page_down">int kf_page_down(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Moves the text cursor down one page.
-
-<H4><A NAME="Fl_Text_Editor.kf_page_up">int kf_page_up(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Moves the text cursor up one page.
-
-<H4><A NAME="Fl_Text_Editor.kf_paste">int kf_paste(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Pastes the contents of the clipboard at the current text cursor position.
-
-<H4><A NAME="Fl_Text_Editor.kf_right">int kf_right(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Moves the text cursor one character to the right.
-
-<H4><A NAME="Fl_Text_Editor.kf_select_all">int kf_select_all(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Selects all text in the buffer.
-
-<H4><A NAME="Fl_Text_Editor.kf_shift_move">int kf_shift_move(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Extends the current selection in the direction of key <CODE>c</CODE>.
-
-<H4><A NAME="Fl_Text_Editor.kf_up">int kf_up(int c, Fl_Text_Editor* e);</A></H4>
-
-<P>Moves the text cursor up one line.
-
-<H4><A NAME="Fl_Text_Editor.remove_all_key_bindings">void remove_all_key_bindings(Key_Binding** list);<BR>
-void remove_all_key_bindings();</A></H4>
-
-<P>Removes all of the key bindings associated with the text editor or list.
-
-<H4><A NAME="Fl_Text_Editor.remove_key_binding">void remove_key_binding(int key, int state, Key_Binding** list);<BR>
-void remove_key_binding(int key, int state);</A></H4>
-
-<P>Removes a single key binding from the text editor or list.
-
-<H4><A name="Fl_Text_Editor.shortcut">ulong Fl_Text_Editor::shortcut() const
-<BR> void Fl_Text_Editor::shortcut(ulong key)</A></H4>
- The first form returns the current shortcut key for the editor.
-<P>The second form sets the shortcut key to <TT>key</TT>.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Tile.html b/documentation/Fl_Tile.html
deleted file mode 100644
index 8918cc2f0..000000000
--- a/documentation/Fl_Tile.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Tile</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name=Fl_Tile>class Fl_Tile</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href=Fl_Group.html#Fl_Group>Fl_Group</A>
- |
- +----<B>Fl_Tile</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Tile.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_Tile</TT> class lets you resize the children by dragging
-the border between them:
-
-<P ALIGN=CENTER><IMG src="Fl_Tile.gif" ALT="Fl_Tile widget."></P>
-
-<P>For the tiling to work correctly, the children of an
-<TT>Fl_Tile</TT> must cover the entire area of the widget, but not
-overlap. This means that all children must touch each
-other at their edges, and no gaps can't be left inside the
-<TT>Fl_Tile</TT>.
-
-<P><TT>Fl_Tile</TT> does not normailly draw any graphics of its own.
-The &quot;borders&quot; which can be seen in the snapshot above
-are actually part of the children. Their boxtypes have been set
-to <TT>FL_DOWN_BOX</TT> creating the impression of
-&quot;ridges&quot; where the boxes touch. What you see are
-actually two adjacent <TT>FL_DOWN_BOX</TT>'s drawn next to each
-other. All neighboring widgets share the same edge - the widget's
-thick borders make it appear as though the widgets aren't actually
-touching, but they are. If the edges of adjacent widgets do not
-touch, then it will be impossible to drag the corresponding
-edges.</P>
-
-<P><TT>Fl_Tile</TT> allows objects to be resized to zero dimensions.
-To prevent this you can use the <TT>resizable()</TT> to limit where
-corners can be dragged to.</P>
-
-<P>Even though objects can be resized to zero sizes, they must
-initially have non-zero sizes so the <TT>Fl_Tile</TT> can figure out
-their layout. If desired, call <TT>position()</TT> after creating the
-children but before displaying the window to set the borders where you
-want.</P>
-
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Tile.Fl_Tile>Fl_Tile</A></LI>
-<LI><A href=#Fl_Tile.~Fl_Tile>~Fl_Tile</A></LI>
-<LI><A href=#Fl_Tile.position>position</A></LI>
-<LI><A href=#Fl_Tile.resizeable>resizeable</A></LI>
-</UL>
-<H4><A name=Fl_Tile.Fl_Tile>Fl_Tile::Fl_Tile(int x, int y, int w, int
-h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Tile</TT> widget using the given position, size,
-and label string. The default boxtype is <TT>FL_NO_BOX</TT>.
-<H4><A name=Fl_Tile.~Fl_Tile>virtual Fl_Tile::~Fl_Tile()</A></H4>
- The destructor <I>also deletes all the children</I>. This allows a
-whole tree to be deleted at once, without having to keep a pointer to
-all the children in the user code. A kludge has been done so the <TT>
-Fl_Tile</TT> and all of it's children can be automatic (local)
-variables, but you must declare the <TT>Fl_Tile</TT> <I>first</I>, so
-that it is destroyed last.
-<H4><A name=Fl_Tile.position>void Fl_Tile::position(from_x, from_y,
-to_x, to_y)</A></H4>
- Drag the intersection at <TT>from_x,from_y</TT> to <TT>to_x,to_y</TT>.
- This redraws all the necessary children.
-<H4><A name=Fl_Tile.resizeable>void Fl_Tile::resizable(Fl_Widget &amp;w)<BR>
-void Fl_Tile::resizable(Fl_Widget *w)</A></H4>
-The &quot;resizable&quot; child widget (which should be invisible) limits where the
-border can be dragged to. If you don't set it, it will be possible to
-drag the borders right to the edge, and thus resize objects on the edge
-to zero width or height. The <TT>resizable()</TT> widget is not
-resized by dragging any borders.
-</BODY></HTML>
diff --git a/documentation/Fl_Tiled_Image.html b/documentation/Fl_Tiled_Image.html
deleted file mode 100644
index 33e281069..000000000
--- a/documentation/Fl_Tiled_Image.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Tiled_Image</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name=Fl_Tiled_Image>class Fl_Tiled_Image</A></H2>
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href="Fl_Image.html">Fl_Image</A>
- |
- +----<B>Fl_Tiled_Image</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Tiled_Image.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_Tiled_Image</TT> class supports tiling of images
-over a specified area. The source (tile) image is <B>not</B>
-copied unless you call the <A
-HREF="Fl_Image.html#Fl_Image.color_average"><TT>color_average()</TT></A>,
-<A
-HREF="Fl_Image.html#Fl_Image.desaturate"><TT>desaturate()</TT></A>,
-or <A
-HREF="Fl_Image.html#Fl_Image.inactive"><TT>inactive()</TT></A>
-methods.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_Tiled_Image.Fl_Tiled_Image">Fl_Tiled_Image</A></LI>
-
- <LI><A href="#Fl_Tiled_Image.~Fl_Tiled_Image">~Fl_Tiled_Image</A></LI>
-
- <LI><A href="#Fl_Tiled_Image.image">image</A></LI>
-
-</UL>
-
-<H4><A name="Fl_Tiled_Image.Fl_Tiled_Image">Fl_Tiled_Image::Fl_Tiled_Image(Fl_Image *img, int W, int H);</A></H4>
-
-<P>The constructors create a new tiled image containing the specified image.</P>
-
-<H4><A name="Fl_Tiled_Image.~Fl_Tiled_Image">Fl_Tiled_Image::~Fl_Tiled_Image();</A></H4>
-
-<P>The destructor frees all memory and server resources that are used by
-the tiled image.</P>
-
-<H4><A name="Fl_Tiled_Image.image">Fl_Image *Fl_Tiled_Image::image();</A></H4>
-
-<P>Returns the image that will be tiled.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Timer.html b/documentation/Fl_Timer.html
deleted file mode 100644
index 4c9ed6101..000000000
--- a/documentation/Fl_Timer.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Timer</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Timer>class Fl_Timer</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Widget.html#Fl_Widget>Fl_Widget</A>
- |
- +----<B>Fl_Timer</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Timer.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This is provided only to emulate the Forms Timer widget. It works by
-making a timeout callback every 1/5 second. This is wasteful and
-inaccurate if you just want something to happen a fixed time in the
-future. You should directly call <A href="Fl.html#Fl.add_timeout"><TT>
-Fl::add_timeout()</TT></A> instead.
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Timer.Fl_Timer>Fl_Timer</A></LI>
-<LI><A href=#Fl_Timer.~Fl_Timer>~Fl_Timer</A></LI>
-<LI><A href=#Fl_Timer.direction>direction</A></LI>
-<LI><A href=#Fl_Timer.suspended>suspended</A></LI>
-<LI><A href=#Fl_Timer.value>value</A></LI>
-</UL>
-<H4><A name=Fl_Timer.Fl_Timer>Fl_Timer::Fl_Timer(uchar type, int x, int
-y, int w, int h, const char *label = 0)</A></H4>
- Creates a new <TT>Fl_Timer</TT> widget using the given type, position,
-size, and label string. The <TT>type</TT> parameter can be any of the
-following symbolic constants:
-<UL>
-<LI><TT>FL_NORMAL_TIMER</TT> - The timer just does the callback and
-displays the string &quot;Timer&quot; in the widget. </LI>
-<LI><TT>FL_VALUE_TIMER</TT> - The timer does the callback and displays
-the current timer value in the widget. </LI>
-<LI><TT>FL_HIDDEN_TIMER</TT> - The timer just does the callback and
-does not display anything. </LI>
-</UL>
-<H4><A name=Fl_Timer.~Fl_Timer>virtual Fl_Timer::~Fl_Timer()</A></H4>
- Destroys the timer and removes the timeout.
-<H4><A name=Fl_Timer.direction>char direction() const
-<BR> void direction(char d)</A></H4>
- Gets or sets the direction of the timer. If the direction is zero
-then the timer will count up, otherwise it will count down from the
-initial <TT>value()</TT>.
-<H4><A name=Fl_Timer.suspended>char suspended() const
-<BR> void suspended(char d)</A></H4>
- Gets or sets whether the timer is suspended.
-<H4><A name=Fl_Timer.value>float value() const
-<BR> void value(float)</A></H4>
- Gets or sets the current timer value. </BODY></HTML>
diff --git a/documentation/Fl_Toggle_Button.html b/documentation/Fl_Toggle_Button.html
deleted file mode 100644
index c719d22d0..000000000
--- a/documentation/Fl_Toggle_Button.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Toggle_Button</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Toggle_Button>class Fl_Toggle_Button</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Button.html#Fl_Button>Fl_Button</A>
- |
- +----<B>Fl_Toggle_Button</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Toggle_Button.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
-<P>The toggle button is a push button that needs to be clicked once
-to toggle on, and one more time to toggle off.
-The <TT>Fl_Toggle_Button</TT> subclass displays the &quot;on&quot; state by
-drawing a pushed-in button.</P>
-<P>Buttons generate callbacks when they are clicked by the user. You
-control exactly when and how by changing the values for <TT>type()</TT>
-and <TT>when()</TT>.
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Toggle_Button.Fl_Toggle_Button>Fl_Toggle_Button</A></LI>
-<LI><A href=#Fl_Toggle_Button.~Fl_Toggle_Button>~Fl_Toggle_Button</A></LI>
-</UL>
-<H4><A name=Fl_Toggle_Button.Fl_Toggle_Button>
-Fl_Toggle_Button::Fl_Toggle_Button(int x, int y, int w, int h, const char
-*label = 0)</A></H4>
- Creates a new <TT>Fl_Toggle_Button</TT> widget using the given
-position, size, and label string.
-<H4><A name=Fl_Toggle_Button.~Fl_Toggle_Button>
-Fl_Toggle_Button::~Fl_Toggle_Button()</A></H4>
- The destructor deletes the toggle button. </BODY></HTML>
diff --git a/documentation/Fl_Tooltip.html b/documentation/Fl_Tooltip.html
deleted file mode 100644
index 29027e4e6..000000000
--- a/documentation/Fl_Tooltip.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Tooltip</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_Tooltip">class Fl_Tooltip</A></H2>
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<B>Fl_Tooltip</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Tooltip.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_Tooltip</TT> class provides tooltip support for
-all FLTK widgets.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A HREF="#Fl_Tooltip.color">color</A></LI>
- <LI><A HREF="#Fl_Tooltip.delay">delay</A></LI>
- <LI><A HREF="#Fl_Tooltip.disable">disable</A></LI>
- <LI><A HREF="#Fl_Tooltip.enabled">enabled</A></LI>
- <LI><A HREF="#Fl_Tooltip.enable">enable</A></LI>
- <LI><A HREF="#Fl_Tooltip.enter">enter</A></LI>
- <LI><A HREF="#Fl_Tooltip.enter_area">enter_area</A></LI>
- <LI><A HREF="#Fl_Tooltip.exit">exit</A></LI>
- <LI><A HREF="#Fl_Tooltip.font">font</A></LI>
- <LI><A HREF="#Fl_Tooltip.hoverdelay">hoverdelay</A></LI>
- <LI><A HREF="#Fl_Tooltip.size">size</A></LI>
- <LI><A HREF="#Fl_Tooltip.textcolor">textcolor</A></LI>
-
-</UL>
-
-<H4><A NAME="Fl_Tooltip.delay">void delay(float f);<BR>
-float delay();</A></H4>
-
-<P>Gets or sets the tooltip delay. The default delay is 1.0 seconds.
-
-<H4><A NAME="Fl_Tooltip.enabled">int enabled();</A></H4>
-
-<P>Returns non-zero if tooltips are enabled.
-
-<H4><A NAME="Fl_Tooltip.enable">void enable(int b = 1);</A></H4>
-
-<P>Enables tooltips on all widgets (or disables if <i>b</i> is false).
-
-<H4><A NAME="Fl_Tooltip.disable">void disable();</A></H4>
-
-<P>Same as <tt>enable(0)</tt>, disables tooltips on all widgets.
-
-<H4><A NAME="Fl_Tooltip.enter">void enter(Fl_Widget *w);</A></H4>
-
-<P>This method is called when the mouse pointer enters a
-widget.
-
-<h4><a name="Fl_Tooltip.enter_area">void enter_area(Fl_Widget* widget, int x,int y,int w,int h, const char* tip)</a></h4>
-
-<p>You may be able to use this to provide tooltips for internal pieces
-of your widget. Call this after setting <tt>Fl::belowmouse()</tt> to
-your widget (because that calls the above enter() method). Then figure
-out what thing the mouse is pointing at, and call this with the widget
-(this pointer is used to remove the tooltip if the widget is deleted
-or hidden, and to locate the tooltip), the rectangle surrounding the
-area, relative to the top-left corner of the widget (used to calculate
-where to put the tooltip), and the text of the tooltip (which must be
-a pointer to static data as it is not copied).
-
-<H4><A NAME="Fl_Tooltip.exit">void exit(Fl_Widget *w);</A></H4>
-
-<P>This method is called when the mouse pointer leaves a
-widget.
-
-<H4><A NAME="Fl_Tooltip.color">void color(unsigned c);<BR>
-Fl_Color color();</A></H4>
-
-<P>Gets or sets the background color for tooltips. The default
-background color is a pale yellow.
-
-<H4><A NAME="Fl_Tooltip.font">void font(int i);<BR>
-int font();</A></H4>
-
-<P>Gets or sets the typeface for the tooltip text.
-
-<H4><A NAME="Fl_Tooltip.hoverdelay">void hoverdelay(float f);<BR>
-float hoverdelay();</A></H4>
-
-<P>Gets or sets the tooltip hover delay, the delay between tooltips.
-The default delay is 0.2 seconds.
-
-<H4><A NAME="Fl_Tooltip.size">void size(int s);<BR>
-int size();</A></H4>
-
-<P>Gets or sets the size of the tooltip text.
-
-<H4><A NAME="Fl_Tooltip.textcolor">void textcolor(unsigned c);<BR>
-Fl_Color textcolor();</A></H4>
-
-<P>Gets or sets the color of the text in the tooltip. The default is
-black.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Valuator.html b/documentation/Fl_Valuator.html
deleted file mode 100644
index 20233517f..000000000
--- a/documentation/Fl_Valuator.html
+++ /dev/null
@@ -1,199 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Valuator</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Valuator>class Fl_Valuator</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Widget.html#Fl_Widget>Fl_Widget</A>
- |
- +----<B>Fl_Valuator</B>
- |
- +----<A href=Fl_Adjuster.html#Fl_Adjuster>Fl_Adjuster</A>, <A href=Fl_Counter.html#Fl_Counter>Fl_Counter</A>, <A href=Fl_Dial.html#Fl_Dial>Fl_Dial</A>, <A href=Fl_Roller.html#Fl_Roller>Fl_Roller</A>,
- <A href=Fl_Slider.html#Fl_Slider>Fl_Slider</A>, <A href=Fl_Value_Input.html#Fl_Value_Input>Fl_Value_Input</A>, <A href=Fl_Value_Output.html#Fl_Value_Output>Fl_Value_Output</A>,
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Valuator.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Valuator</TT> class controls a single floating-point value
-and provides a consistent interface to set the value, range, and step,
-and insures that callbacks are done the same for every object.
-<P>There are probably more of these classes in FLTK than any others: </P>
-<P ALIGN=CENTER><IMG src="valuators.gif" ALT="Fl_Valuator widgets."></P>
-<P>In the above diagram each box surrounds an actual subclass. These
-are further differentiated by setting the <A href=Fl_Widget.html#Fl_Widget.type><TT>
-type()</TT></A> of the widget to the symbolic value labeling the
-widget. The ones labelled &quot;0&quot; are the default versions with a <TT>
-type(0)</TT>. For consistency the symbol <TT>FL_VERTICAL</TT> is
-defined as zero.</P>
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Valuator methods.">
-<TR><TD align=left valign=top>
-<UL>
- <LI><A href="#Fl_Valuator.Fl_Valuator">Fl_Valuator</A></LI>
- <LI><A href="#Fl_Valuator.~Fl_Valuator">~Fl_Valuator</A></LI>
- <LI><A href="#Fl_Valuator.bounds">bounds</A></LI>
- <LI><A href="#Fl_Valuator.changed">changed</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
- <LI><A href="#Fl_Valuator.clamp">clamp</A></LI>
- <LI><A href="#Fl_Valuator.clear_changed">clear_changed</A></LI>
- <LI><A href="#Fl_Valuator.format">format</A></LI>
- <LI><A href="#Fl_Valuator.increment">increment</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
- <LI><A href="#Fl_Valuator.maximum">maximum</A></LI>
- <LI><A href="#Fl_Valuator.minimum">minimum</A></LI>
- <LI><A href="#Fl_Valuator.precision">precision</A></LI>
- <LI><A href="#Fl_Valuator.range">range</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
- <LI><A href="#Fl_Valuator.round">round</A></LI>
- <LI><A href="#Fl_Valuator.set_changed">set_changed</A></LI>
- <LI><A href="#Fl_Valuator.step">step</A></LI>
- <LI><A href="#Fl_Valuator.value">value</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-
-<H4><A name=Fl_Valuator.Fl_Valuator>Fl_Valuator::Fl_Valuator(int x, int
-y, int w, int h, const char *label = 0)</A></H4>
-
-<P>Creates a new <TT>Fl_Valuator</TT> widget using the given position,
-size, and label string. The default boxtype is <TT>FL_NO_BOX</TT>.
-
-<H4><A name=Fl_Valuator.~Fl_Valuator>virtual Fl_Valuator::~Fl_Valuator()</A></H4>
-
-<P>Destroys the valuator.
-
-<H4><A NAME="Fl_Valuator.bounds">void Fl_Valuator::bounds(double a, double b);</A></H4>
-
-<P>Sets the minimum (<TT>a</TT>) and maximum (<TT>b</TT>) values for
-the valuator widget.
-
-<H4><A name=Fl_Valuator.changed>int Fl_Valuator::changed() const</A></H4>
-
-<P>This value is true if the user has moved the slider. It is
-turned off by <TT>value(x)</TT> and just before doing a callback
-(the callback can turn it back on if desired).
-
-<H4><A name=Fl_Valuator.clamp>double Fl_Valuator::clamp(double)</A></H4>
-
-<P>Clamps the passed value to the valuator range.
-
-<H4><A name=Fl_Valuator.clear_changed>void Fl_Valuator::clear_changed()</A></H4>
-
-<P>Clears the <TT>changed()</TT> flag.
-
-<H4><A name=Fl_Valuator.format>int Fl_Valuator::format(char *buffer)</A></H4>
-
-<P>Uses internal rules to format the fields numerical value into
-the character array pointed to by the passed parameter.</P>
-
-<P>The actual format used depends on the current step value. If
-the step value has been set to zero then a %g format is used.
-If the step value is non-zero, then a %.*f format is used,
-where the precision is calculated to show sufficient digits
-for the current step value. An integer step value, such as 1
-or 1.0, gives a precision of 0, so the formatted value will
-appear as an integer.</P>
-
-<P>This method is used by the <TT>Fl_Value_...</TT> group of widgets to
-format the current value into a text string.
-The return value is the length of the formatted text.
-The formatted value is written into in <i>buffer</i>.
-<i>buffer</i> should have space for at least 128 bytes.</P>
-
-<P>You may override this function to create your own text formatting.</P>
-
-<H4><A name=Fl_Valuator.increment>double
-Fl_Valuator::increment(double,int n)</A></H4>
-
-<P>Adds <TT>n</TT> times the step value to the passed value. If
-step was set to zero it uses <TT>fabs(maximum() - minimum()) /
-100</TT>.
-
-<H4><A name=Fl_Valuator.maximum>double Fl_Valuator::maximum() const
-<BR>void Fl_Valuator::maximum(double)</A></H4>
-
-<P>Gets or sets the maximum value for the valuator.
-
-<H4><A name=Fl_Valuator.minimum>double Fl_Valuator::minimum() const
-<BR>void Fl_Valuator::minimum(double)</A></H4>
-
-<P>Gets or sets the minimum value for the valuator.
-
-<H4><A NAME="Fl_Valuator.precision">void Fl_Valuator::precision(int digits);</A></H4>
-
-<P>Sets the step value to 1/10<SUP>digits.
-
-<H4><A name=Fl_Valuator.range>void Fl_Valuator::range(double min,
-double max);</A></H4>
-
-<P>Sets the minimum and maximum values for the valuator. When
-the user manipulates the widget, the value is limited to this
-range. This clamping is done <I>after</I> rounding to the step
-value (this makes a difference if the range is not a multiple of
-the step).
-
-<P>The minimum may be greater than the maximum. This has the
-effect of &quot;reversing&quot; the object so the larger values
-are in the opposite direction. This also switches which end of
-the filled sliders is filled.</P>
-
-<P>Some widgets consider this a &quot;soft&quot; range. This
-means they will stop at the range, but if the user releases and
-grabs the control again and tries to move it further, it is
-allowed.</P>
-
-<P>The range may affect the display. You must <TT>redraw()</TT>
-the widget after changing the range.</P>
-
-<H4><A name=Fl_Valuator.round>double Fl_Valuator::round(double)</A></H4>
-
-<P>Round the passed value to the nearest step increment. Does
-nothing if step is zero.
-
-<H4><A name=Fl_Valuator.set_changed>void Fl_Valuator::set_changed()</A></H4>
-
-<P>Sets the <TT>changed()</TT> flag.
-
-<H4><A name=Fl_Valuator.step>double Fl_Valuator::step() const
-<BR>void Fl_Valuator::step(double)
-<BR>void Fl_Valuator::step(int A, int B)</A></H4>
-
-<P>Gets or sets the step value. As the user moves the mouse the
-value is rounded to the nearest multiple of the step value. This
-is done <I>before</I> clamping it to the range. For most widgets
-the default step is zero.
-
-<P>For precision the step is stored as the ratio of two
-integers, A/B. You can set these integers directly. Currently
-setting a floating point value sets the nearest A/1 or 1/B value
-possible.</P>
-
-<H4><A name=Fl_Valuator.value>double Fl_Valuator::value() const
-<BR> int Fl_Valuator::value(double)</A></H4>
-
-<P>Gets or sets the current value. The new value is <I>not</I>
-clamped or otherwise changed before storing it. Use
-<TT>clamp()</TT> or <TT>round()</TT> to modify the value before
-calling <TT>value()</TT>. The widget is redrawn if the new value
-is different than the current one. The initial value is zero.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Value_Input.html b/documentation/Fl_Value_Input.html
deleted file mode 100644
index aeecc89fe..000000000
--- a/documentation/Fl_Value_Input.html
+++ /dev/null
@@ -1,133 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Value_Input</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name=Fl_Value_Input>class Fl_Value_Input</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href=Fl_Valuator.html#Fl_Valuator>Fl_Valuator</A>
- |
- +----<B>Fl_Value_Input</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Value_Input.H&gt;
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_Value_Input</TT> widget displays a numeric value.
-The user can click in the text field and edit it - there is in
-fact a hidden <A
-href="Fl_Input.html#Fl_Input"><TT>Fl_Input</TT></A> widget with
-<TT>type(FL_FLOAT_INPUT)</TT> or <TT>type(FL_INT_INPUT)</TT> in
-there - and when they hit return or tab the value updates to
-what they typed and the callback is done.
-
-<P>If <TT>step()</TT> is non-zero and integral, then the range of numbers
-is limited to integers instead of floating point numbers. As
-well as displaying the value as an integer, typed input is also
-limited to integer values, even if the hidden <TT>Fl_Input</TT> widget
-is of <TT>type(FL_FLOAT_INPUT)</TT>.</P>
-
-<P>If <TT>step()</TT> is non-zero, the user can also drag the
-mouse across the object and thus slide the value. The left
-button moves one <TT>step()</TT> per pixel, the middle by <TT>10
-* step()</TT>, and the right button by <TT>100 * step()</TT>. It
-is therefore impossible to select text by dragging across it,
-although clicking can still move the insertion cursor.</P>
-
-<P>If <TT>step()</TT> is non-zero and integral, then the range
-of numbers are limited to integers instead of floating point
-values.
-
-<P ALIGN="CENTER"><IMG src="Fl_Value_Input.gif"
-ALT="Fl_Value_Input widget."></P>
-
-<H3>Methods</H3>
-<UL>
- <LI><A href="#Fl_Value_Input.Fl_Value_Input">Fl_Value_Input</A></LI>
- <LI><A href="#Fl_Value_Input.~Fl_Value_Input">~Fl_Value_Input</A></LI>
- <LI><A href="#Fl_Value_Input.cursor_color">cursor_color</A></LI>
- <LI><A href="#Fl_Value_Input.shortcut">shortcut</A></LI>
- <LI><A href="#Fl_Value_Input.soft">soft</A></LI>
- <LI><A href="#Fl_Value_Input.textcolor">textcolor</A></LI>
- <LI><A href="#Fl_Value_Input.textfont">textfont</A></LI>
- <LI><A href="#Fl_Value_Input.textsize">textsize</A></LI>
-</UL>
-
-<H4><A
-name="Fl_Value_Input.Fl_Value_Input">Fl_Value_Input::Fl_Value_Input(int
-x, int y, int w, int h, const char *label = 0)</A></H4>
-
-<P>Creates a new <TT>Fl_Value_Input</TT> widget using the given
-position, size, and label string. The default boxtype is
-<TT>FL_DOWN_BOX</TT>.
-
-<H4><A name="Fl_Value_Input.~Fl_Value_Input">virtual
-Fl_Value_Input::~Fl_Value_Input()</A></H4>
-
-<P>Destroys the valuator.
-
-<H4><A name="Fl_Value_Input.cursor_color">Fl_Color
-Fl_Value_Input::cursor_color() const<BR>
-void Fl_Value_Input::cursor_color(Fl_Color)</A></H4>
-
-<P>Get or set the color of the text cursor. The text cursor is
-black by default.
-
-<H4><A name="Fl_Value_Input.shortcut">ulong Fl_Value_Input::shortcut() const
-<BR> void Fl_Value_Input::shortcut(ulong key)</A></H4>
- The first form returns the current shortcut key for the Input.
-<P>The second form sets the shortcut key to <TT>key</TT>. Setting this
-overrides the use of '&amp;' in the <TT>label()</TT>. The value is a bitwise
-OR of a key and a set of shift flags, for example <CODE>FL_ALT | 'a'</CODE>
-, <CODE>FL_ALT | (FL_F + 10)</CODE>, or just <CODE>'a'</CODE>. A value
-of 0 disables the shortcut. </P>
-<P>The key can be any value returned by <A href="Fl.html#Fl.event_key">
-<TT>Fl::event_key()</TT></A>, but will usually be an ASCII letter. Use
-a lower-case letter unless you require the shift key to be held down. </P>
-<P>The shift flags can be any set of values accepted by <A href="Fl.html#Fl.event_state">
-<TT>Fl::event_state()</TT></A>. If the bit is on that shift key must
-be pushed. Meta, Alt, Ctrl, and Shift must be off if they are not in
-the shift flags (zero for the other bits indicates a &quot;don't care&quot;
-setting). </P>
-
-<H4><A name="Fl_Value_Input.soft">uchar Fl_Value_Input::soft() const<BR>
-void Fl_Value_Input::soft(uchar)</A></H4>
-
-<P>If &quot;soft&quot; is turned on, the user is allowed to drag
-the value outside the range. If they drag the value to one of
-the ends, let go, then grab again and continue to drag, they can
-get to any value. The default is true.
-
-<H4><A name="Fl_Value_Input.textcolor">Fl_Color
-Fl_Value_Input::textcolor() const<BR>
-void Fl_Value_Input::textcolor(Fl_Color)</A></H4>
-
-<P>Gets or sets the color of the text in the value box.
-
-<H4><A name="Fl_Value_Input.textfont">Fl_Font
-Fl_Value_Input::textfont() const<BR>
-void Fl_Value_Input::textfont(Fl_Font)</A></H4>
-
-<P>Gets or sets the typeface of the text in the value box.
-
-<H4><A name="Fl_Value_Input.textsize">uchar
-Fl_Value_Input::textsize() const<BR>
-void Fl_Value_Input::textsize(uchar)</A></H4>
-
-<P>Gets or sets the size of the text in the value box.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Value_Output.html b/documentation/Fl_Value_Output.html
deleted file mode 100644
index 7ba59fa6c..000000000
--- a/documentation/Fl_Value_Output.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Value_Output</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Value_Output>class Fl_Value_Output</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Valuator.html#Fl_Valuator>Fl_Valuator</A>
- |
- +----<B>Fl_Value_Output</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Value_Output.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Value_Output</TT> widget displays a floating point value.
-If <TT>step()</TT> is not zero, the user can adjust the value by
-dragging the mouse left and right. The left button moves one <TT>step()</TT>
- per pixel, the middle by <TT>10 * step()</TT>, and the right button by <TT>
-100 * step()</TT>.
-<P>This is much lighter-weight than <A href=Fl_Value_Input.html#Fl_Value_Input>
-<TT>Fl_Value_Input</TT></A> because it contains no text editing code or
-character buffer. </P>
-<P ALIGN=CENTER><IMG src="Fl_Value_Output.gif" ALT="Fl_Value_Output widget."></P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Value_Output.Fl_Value_Output>Fl_Value_Output</A></LI>
-<LI><A href=#Fl_Value_Output.~Fl_Value_Output>~Fl_Value_Output</A></LI>
-<LI><A href=#Fl_Value_Output.soft>soft</A></LI>
-<LI><A href=#Fl_Value_Output.textcolor>textcolor</A></LI>
-<LI><A href=#Fl_Value_Output.textfont>textfont</A></LI>
-<LI><A href=#Fl_Value_Output.textsize>textsize</A></LI>
-</UL>
-<H4><A name=Fl_Value_Output.Fl_Value_Output>
-Fl_Value_Output::Fl_Value_Output(int x, int y, int w, int h, const char
-*label = 0)</A></H4>
- Creates a new <TT>Fl_Value_Output</TT> widget using the given
-position, size, and label string. The default boxtype is <TT>FL_NO_BOX</TT>
-.
-<H4><A name=Fl_Value_Output.~Fl_Value_Output>virtual
-Fl_Value_Output::~Fl_Value_Output()</A></H4>
- Destroys the valuator.
-<H4><A name=Fl_Value_Output.soft>uchar Fl_Value_Output::soft() const
-<BR> void Fl_Value_Output::soft(uchar)</A></H4>
- If &quot;soft&quot; is turned on, the user is allowed to drag the value outside
-the range. If they drag the value to one of the ends, let go, then
-grab again and continue to drag, they can get to any value. Default is
-one.
-<H4><A name=Fl_Value_Output.textcolor>Fl_Color
-Fl_Value_Output::textcolor() const
-<BR> void Fl_Value_Output::textcolor(Fl_Color)</A></H4>
- Gets or sets the color of the text in the value box.
-<H4><A name=Fl_Value_Output.textfont>Fl_Font
-Fl_Value_Output::textfont() const
-<BR>
-<BR>void Fl_Value_Output::textfont(Fl_Font)</A></H4>
- Gets or sets the typeface of the text in the value box.
-<H4><A name=Fl_Value_Output.textsize>uchar Fl_Value_Output::textsize()
-const
-<BR> void Fl_Value_Output::textsize(uchar)</A></H4>
- Gets or sets the size of the text in the value box. </BODY></HTML>
diff --git a/documentation/Fl_Value_Slider.html b/documentation/Fl_Value_Slider.html
deleted file mode 100644
index 847b5762c..000000000
--- a/documentation/Fl_Value_Slider.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Value_Slider</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Value_Slider>class Fl_Value_Slider</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Slider.html#Fl_Slider>Fl_Slider</A>
- |
- +----<B>Fl_Value_Slider</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Value_Slider.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- The <TT>Fl_Value_Slider</TT> widget is a <TT>Fl_Slider</TT> widget
-with a box displaying the current value.
-<P ALIGN=CENTER><IMG src="value_slider.gif" ALT="Fl_Value_Slider widget."></P>
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Value_Slider.Fl_Value_Slider>Fl_Value_Slider</A></LI>
-<LI><A href=#Fl_Value_Slider.~Fl_Value_Slider>~Fl_Value_Slider</A></LI>
-<LI><A href=#Fl_Value_Slider.textcolor>textcolor</A></LI>
-<LI><A href=#Fl_Value_Slider.textfont>textfont</A></LI>
-<LI><A href=#Fl_Value_Slider.textsize>textsize</A></LI>
-</UL>
-<H4><A name=Fl_Value_Slider.Fl_Value_Slider>
-Fl_Value_Slider::Fl_Value_Slider(int x, int y, int w, int h, const char
-*label = 0)</A></H4>
- Creates a new <TT>Fl_Value_Slider</TT> widget using the given
-position, size, and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>
-.
-<H4><A name=Fl_Value_Slider.~Fl_Value_Slider>virtual
-Fl_Value_Slider::~Fl_Value_Slider()</A></H4>
- Destroys the valuator.
-<H4><A name=Fl_Value_Slider.textcolor>Fl_Color
-Fl_Value_Slider::textcolor() const
-<BR> void Fl_Value_Slider::textcolor(Fl_Color)</A></H4>
- Gets or sets the color of the text in the value box.
-<H4><A name=Fl_Value_Slider.textfont>Fl_Font
-Fl_Value_Slider::textfont() const
-<BR>
-<BR>void Fl_Value_Slider::textfont(Fl_Font)</A></H4>
- Gets or sets the typeface of the text in the value box.
-<H4><A name=Fl_Value_Slider.textsize>uchar Fl_Value_Slider::textsize()
-const
-<BR> void Fl_Value_Slider::textsize(uchar)</A></H4>
-Gets or sets the size of the text in the value box.
-</BODY></HTML>
diff --git a/documentation/Fl_Widget.html b/documentation/Fl_Widget.html
deleted file mode 100644
index 3562ba5f4..000000000
--- a/documentation/Fl_Widget.html
+++ /dev/null
@@ -1,568 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Widget</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Widget>class Fl_Widget</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<B>Fl_Widget</B>
- |
- +----<A href=Fl_Box.html#Fl_Box>Fl_Box</A>, <A href=Fl_Browser_.html#Fl_Browser_>Fl_Browser_</A>, <A href=Fl_Button.html#Fl_Button>Fl_Button</A>, <A href=Fl_Chart.html#Fl_Chart>Fl_Chart</A>, <A href=Fl_Clock_Output.html#Fl_Clock_Output>Fl_Clock_Output</A>,
- <A href=Fl_Free.html#Fl_Free>Fl_Free</A>, <A href=Fl_Group.html#Fl_Group>Fl_Group</A>, <A href=Fl_Input_.html#Fl_Input_>Fl_Input_</A>, <A href=Fl_Menu_.html#Fl_Menu_>Fl_Menu_</A>, <A href=Fl_Positioner.html#Fl_Positioner>Fl_Positioner</A>,
- <A HREF="Fl_Progress.html">Fl_Progress</A>, <A href=Fl_Timer.html#Fl_Timer>Fl_Timer</A>, <A href=Fl_Valuator.html#Fl_Valuator>Fl_Valuator</A>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Widget.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
-<TT>Fl_Widget</TT> is the base class for all widgets in FLTK. You can't
-create one of these because the constructor is not public. However you
-can <A href="subclassing.html#subclassing">subclass</A> it.
-<P>All &quot;property&quot; accessing methods, such as <TT>color()</TT>, <TT>
-parent()</TT>, or <TT>argument()</TT> are implemented as trivial inline
-functions and thus are as fast and small as accessing fields in a
-structure. Unless otherwise noted, the property setting methods such as <TT>
-color(n)</TT> or <TT>label(s)</TT> are also trivial inline functions,
-even if they change the widget's appearance. It is up to the user code
-to call <TT>redraw()</TT> after these. </P>
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Widget methods.">
-<TR><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Widget.Fl_Widget>Fl_Widget</A></LI>
-<LI><A href=#Fl_Widget.~Fl_Widget>~Fl_Widget</A></LI>
-<LI><A href=#Fl_Widget.activate>activate</A></LI>
-<LI><A href=#Fl_Widget.active>active</A></LI>
-<LI><A href=#Fl_Widget.active_r>active_r</A></LI>
-<LI><A href=#Fl_Widget.align>align</A></LI>
-<LI><A href=#Fl_Widget.argument>argument</A></LI>
-<LI><A href=#Fl_Widget.box>box</A></LI>
-<LI><A href=#Fl_Widget.callback>callback</A></LI>
-<LI><A href=#Fl_Widget.changed>changed</A></LI>
-<LI><A href=#Fl_Widget.clear_changed>clear_changed</A></LI>
-<LI><A href=#Fl_Widget.clear_output>clear_output</A></LI>
-<LI><A href=#Fl_Widget.clear_visible>clear_visible</A></LI>
-<LI><A href=#Fl_Widget.clear_visible_focus>clear_visible_focus</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Widget.color>color</A></LI>
-<LI><A href=#Fl_Widget.contains>contains</A></LI>
-<LI><A href=#Fl_Widget.copy_label>copy_label</A></LI>
-<LI><A href=#Fl_Widget.damage>damage</A></LI>
-<LI><A href=#Fl_Widget.deactivate>deactivate</A></LI>
-<LI><A href=#Fl_Widget.default_callback>default_callback</A></LI>
-<LI><A href=#Fl_Widget.deimage>deimage</A></LI>
-<LI><A href=#Fl_Widget.do_callback>do_callback</A></LI>
-<LI><A href=#Fl_Widget.h>h</A></LI>
-<LI><A href=#Fl_Widget.handle>handle</A></LI>
-<LI><A href=#Fl_Widget.hide>hide</A></LI>
-<LI><A href=#Fl_Widget.image>image</A></LI>
-<LI><A href=#Fl_Widget.inside>inside</A></LI>
-<LI><A href=#Fl_Widget.label>label</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Widget.labelcolor>labelcolor</A></LI>
-<LI><A href=#Fl_Widget.labelfont>labelfont</A></LI>
-<LI><A href=#Fl_Widget.labelsize>labelsize</A></LI>
-<LI><A href=#Fl_Widget.labeltype>labeltype</A></LI>
-<LI><A href=#Fl_Widget.output>output</A></LI>
-<LI><A href=#Fl_Widget.parent>parent</A></LI>
-<LI><A href=#Fl_Widget.position>position</A></LI>
-<LI><A href=#Fl_Widget.redraw>redraw</A></LI>
-<LI><A href=#Fl_Widget.redraw_label>redraw_label</A></LI>
-<LI><A href=#Fl_Widget.resize>resize</A></LI>
-<LI><A href=#Fl_Widget.selection_color>selection_color</A></LI>
-<LI><A href=#Fl_Widget.set_changed>set_changed</A></LI>
-<LI><A href=#Fl_Widget.set_output>set_output</A></LI>
-<LI><A href=#Fl_Widget.set_visible>set_visible</A></LI>
-<LI><A href=#Fl_Widget.set_visible_focus>set_visible_focus</A></LI>
-<LI><A href=#Fl_Widget.show>show</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Widget.size>size</A></LI>
-<LI><A href=#Fl_Widget.take_focus>take_focus</A></LI>
-<LI><A href=#Fl_Widget.takesevents>takesevents</A></LI>
-<LI><A href="#Fl_Widget.tooltip">tooltip</A></LI>
-<LI><A href=#Fl_Widget.type>type</A></LI>
-<LI><A href=#Fl_Widget.user_data>user_data</A></LI>
-<LI><A href=#Fl_Widget.visible>visible</A></LI>
-<LI><A href=#Fl_Widget.visible_focus>visible_focus</A></LI>
-<LI><A href=#Fl_Widget.visible_r>visible_r</A></LI>
-<LI><A href=#Fl_Widget.w>w</A></LI>
-<LI><A href=#Fl_Widget.when>when</A></LI>
-<LI><A href=#Fl_Widget.window>window</A></LI>
-<LI><A href=#Fl_Widget.x>x</A></LI>
-<LI><A href=#Fl_Widget.y>y</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-
-
-<H4><A NAME="Fl_Widget.Fl_Widget">protected Fl_Widget::Fl_Widget(int x, int y, int w, int h, const char*
-label=0);</A></H4>
-
-<P>Creates a widget at the given position and size. The
-<TT>Fl_Widget</TT> is a protected constructor, but all derived
-widgets have a matching public constructor. It takes a value for
-<TT>x()</TT>, <TT>y()</TT>, <TT>w()</TT>, <TT>h()</TT>, and an
-optional value for <TT>label()</TT>.
-
-
-<H4><A NAME="Fl_Widget.~Fl_Widget">virtual Fl_Widget::~Fl_Widget();</A></H4>
-
-<P>Destroys the widget. Destroying single widgets is not very
-common, and it is your responsibility to either
-<TT>remove()</TT> them from any enclosing group or destroy that
-group <I>immediately</I> after destroying the children. You
-almost always want to destroy the parent group instead which
-will destroy all of the child widgets and groups in that group.
-
-
-<H4><A name=Fl_Widget.active>int Fl_Widget::active() const</A><BR>
-<A name=Fl_Widget.active_r>int Fl_Widget::active_r() const</A><BR>
-<A name=Fl_Widget.activate>void Fl_Widget::activate()</A><BR>
-<A name=Fl_Widget.deactivate>void Fl_Widget::deactivate()</A></H4>
-
-<P><TT>Fl_Widget::active()</TT> returns whether the widget is
-active. <TT>Fl_Widget::active_r()</TT> returns whether the
-widget and all of its parents are active. Inactive widgets
-will be drawn "grayed out", e.g. with less contrast than the
-active widget. Inactive widgets will not receive any keyboard or
-mouse button events. Other events (including <tt>FL_ENTER</tt>,
-<tt>FL_MOVE</tt>, <tt>FL_LEAVE</tt>, <tt>FL_SHORTCUT</tt>, and
-others) will still be sent. A widget is only active if
-<TT>active()</TT> is true on it <I>and all of its parents</I>.
-
-<P>Changing this value will send <TT>FL_ACTIVATE</TT> or <TT>
-FL_DEACTIVATE</TT> to the widget if <tt>active_r()</tt> is true.
-<P>Currently you cannot deactivate <TT>Fl_Window</TT> widgets. </P>
-
-
-<H4><A name=Fl_Widget.align>Fl_Align Fl_Widget::align() const
-<BR> void Fl_Widget::align(Fl_Align)</A></H4>
-
-<P>Gets or sets the label alignment, which controls how the
-label is displayed next to or inside the widget. The default
-value is <TT>FL_ALIGN_CENTER</TT>, which centers the label
-inside the widget. The value can be any of these constants
-bitwise-OR'd together:
-
-<UL>
- <LI><TT>FL_ALIGN_BOTTOM</TT></LI>
- <LI><TT>FL_ALIGN_CENTER</TT></LI>
- <LI><TT>FL_ALIGN_CLIP</TT></LI>
- <LI><TT>FL_ALIGN_INSIDE</TT></LI>
- <LI><TT>FL_ALIGN_LEFT</TT></LI>
- <LI><TT>FL_ALIGN_RIGHT</TT></LI>
- <LI><TT>FL_ALIGN_TEXT_OVER_IMAGE</TT></LI>
- <LI><TT>FL_ALIGN_TOP</TT></LI>
- <LI><TT>FL_ALIGN_WRAP</TT></LI>
-</UL>
-
-
-<H4><A name=Fl_Widget.argument>long Fl_Widget::argument() const
-<BR> void Fl_Widget::argument(long)</A></H4>
-
-<P>Gets or sets the current user data (<TT>long</TT>) argument
-that is passed to the callback function.
-
-<CENTER><TABLE BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>Note:</B>
-
- <P>This is implemented by casting the <TT>long</TT>
- value to a <TT>void *</TT> and may not be portable on
- some machines.
-
- </TD>
-</TR>
-</TABLE></CENTER>
-
-
-<H4><A name=Fl_Widget.box>Fl_Boxtype Fl_Widget::box() const
-<BR> void Fl_Widget::box(Fl_Boxtype)</A></H4>
-
-<P>Gets or sets the box type for the widget, which identifies a
-routine that draws the background of the widget. See <A
-href="common.html#boxtypes">Box Types</A> for the available
-types. The default depends on the widget, but is usually
-<TT>FL_NO_BOX</TT> or <TT>FL_UP_BOX</TT>.
-
-
-<H4><A name=Fl_Widget.callback>typedef void (Fl_Callback)(Fl_Widget*, void*)
-<BR>Fl_Callback* Fl_Widget::callback() const
-<BR>void Fl_Widget::callback(Fl_Callback*, void* = 0)
-<BR>void Fl_Widget::callback(void (*)(Fl_Widget*, long), long = 0)
-<BR>void Fl_Widget::callback(void (*)(Fl_Widget*))</A></H4>
-
-<P>Gets or sets the current callback function for the widget.
-Each widget has a single callback.
-
-
-<H4><A name=Fl_Widget.changed>int Fl_Widget::changed() const</A>
-<BR><A name=Fl_Widget.clear_changed>void Fl_Widget::clear_changed()</A>
-<BR><A name=Fl_Widget.set_changed>void Fl_Widget::set_changed()</A></H4>
-
-<P><TT>Fl_Widget::changed()</TT> is a flag that is turned on
-when the user changes the value stored in the widget. This is
-only used by subclasses of <TT>Fl_Widget</TT> that store values,
-but is in the base class so it is easier to scan all the widgets
-in a panel and <TT> do_callback()</TT> on the changed ones in
-response to an &quot;OK&quot; button.
-
-<P>Most widgets turn this flag off when they do the callback, and when
-the program sets the stored value. </P>
-
-
-<H4><A NAME="Fl_Widget.clear_visible">void Fl_Widget::clear_visible();</A></H4>
-
-<P>Hides the widget; you must still redraw the parent to see a
-change in the window. Normally you want to use the <A
-HREF="#Fl_Widget.hide"><CODE>hide()</CODE></A> method instead.
-
-
-<H4><A NAME="Fl_Widget.clear_visible_focus">void Fl_Window::clear_visible_focus();</A></H4>
-
-<P>Disables keyboard focus navigation with this widget;
-normally, all widgets participate in keyboard focus navigation.
-
-
-<H4><A name=Fl_Widget.color>Fl_Color Fl_Widget::color() const
-<BR>void Fl_Widget::color(Fl_Color)
-<BR>void Fl_Widget::color(Fl_Color, Fl_Color)</A></H4>
-
-<P>Gets or sets the background color of the widget. The color is
-passed to the box routine. The color is either an index into an
-internal table of RGB colors or an RGB color value generated
-using <TT>fl_rgb_color()</TT>. The default for most widgets is
-<TT>FL_BACKGROUND_COLOR</TT>. See the <A
-href=enumerations.html#Enumerations>enumeration list</A> for
-predefined colors. Use <A
-href="Fl.html#Fl.set_color"><TT>Fl::set_color()</TT></A> to
-redefine colors.
-
-<P>The two color form sets both the background and selection
-colors. See the description of the <A
-HREF="#Fl_Widget.selection_color"><TT>selection_color()</TT></A>
-method for more information.
-
-
-<h4><a name="Fl_Widget.contains">int Fl_Widget::contains(Fl_Widget* b) const</A></H4>
-
-<P>Returns 1 if <TT>b</TT> is a child of this widget, or is
-equal to this widget. Returns 0 if <TT>b</TT> is <TT>NULL</TT>.
-
-
-<H4><A name='Fl_Widget.copy_label'>void Fl_Widget::copy_label(const char*)</A></H4>
-
-<P>Sets the current label. Unlike <a
-href='#Fl_Widget.label'><tt>label()</tt></a>, this method
-allocates a copy of the label string instead of using the
-original string pointer.</p>
-
-
-<H4><A name=Fl_Widget.damage>uchar Fl_Widget::damage() const<BR>
-void damage(uchar c);<BR>
-void damage(uchar c, int X, int Y, int W, int H);</A></H4>
-
-<P>The first version returns non-zero if <A
-HREF="subclassing.html#draw"><TT>draw()</TT></A> needs to be
-called. The damage value is actually a bit field that the widget
-subclass can use to figure out what parts to draw.
-
-<P>The last two forms set the damage bits for the widget; the
-last form damages the widget within the specified bounding box.
-
-<H4><A name=Fl_Widget.default_callback>static void
-Fl_Widget::default_callback(Fl_Widget*, void*)</A></H4>
-
-<P>The default callback, which puts a pointer to the widget on
-the queue returned by <A
-href="Fl.html#Fl.readqueue"><TT>Fl::readqueue()</TT></A>. You
-may want to call this from your own callback.
-
-
-<H4><A name="Fl_Widget.deimage">Fl_Image* Fl_Widget::deimage()</A><BR>
-void Fl_Widget::deimage(Fl_Image* a)<BR>
-void Fl_Widget::deimage(Fl_Image&amp; a)</H4>
-
-<P>Gets or sets the image to use as part of the widget label.
-This image is used when drawing the widget in the inactive
-state.
-
-
-<H4><A name=Fl_Widget.do_callback>void Fl_Widget::do_callback()
-<BR> void Fl_Widget::do_callback(Fl_Widget*, void* = 0)
-<BR> void Fl_Widget::do_callback(Fl_Widget*, long)</A></H4>
-
-<P>Causes a widget to invoke its callback function, optionally
-with arbitrary arguments.
-
-
-<H4><A name="Fl_Widget.handle">virtual int Fl_Widget::handle(int event)</A></H4>
-
-<P>Handles the specified event. You normally don't call this
-method directly, but instead let FLTK do it when the user
-interacts with the widget.</p>
-
-<p>When implemented in a new widget, this function must return 0
-if the widget does not use the event or 1 if it uses the
-event.</p>
-
-
-<H4><A name="Fl_Widget.image">Fl_Image* Fl_Widget::image()</A><BR>
-void Fl_Widget::image(Fl_Image* a)<BR>
-void Fl_Widget::image(Fl_Image&amp; a)</H4>
-
-<P>Gets or sets the image to use as part of the widget label.
-This image is used when drawing the widget in the active state.
-
-
-<H4><A name=Fl_Widget.inside>int Fl_Widget::inside(const Fl_Widget* a)
-const</A></H4>
-
-<P>Returns 1 if this widget is a child of <TT>a</TT>, or is
-equal to <TT>a</TT>. Returns 0 if <TT>a</TT> is <TT>NULL</TT>.
-
-
-<H4><A name=Fl_Widget.label>const char* Fl_Widget::label() const
-<BR> void Fl_Widget::label(const char*)</A></H4>
-
-<P>Get or set the current label pointer. The label is shown
-somewhere on or next to the widget. The passed pointer is stored
-unchanged in the widget (the string is <I>not</I> copied), so if
-you need to set the label to a formatted value, make sure the
-buffer is <TT>static</TT>, global, or allocated. The <a
-href='#Fl_Widget.copy_label'><tt>copy_label()</tt></a> method
-can be used to make a copy of the label string
-automatically.</p>
-
-
-<H4><A name=Fl_Widget.labelcolor>Fl_Color Fl_Widget::labelcolor() const
-<BR> void Fl_Widget::labelcolor(Fl_Color)</A></H4>
-
-<P>Gets or sets the label color. The default color is <TT>FL_FOREGROUND_COLOR</TT>.
-
-
-<H4><A name=Fl_Widget.labelfont>Fl_Font Fl_Widget::labelfont() const
-<BR> void Fl_Widget::labelfont(Fl_Font)</A></H4>
-
-<P>Gets or sets the font to use. Fonts are identified by small
-8-bit indexes into a table. See the <A
-href=enumerations.html#Enumerations> enumeration list</A> for
-predefined typefaces. The default value uses a Helvetica
-typeface (Arial for Microsoft&reg; Windows&reg;). The function
-<A href="Fl.html#Fl.set_font"><TT>Fl::set_font()</TT></A> can
-define new typefaces.
-
-
-<H4><A name=Fl_Widget.labelsize>uchar Fl_Widget::labelsize() const
-<BR>void Fl_Widget::labelsize(uchar)</A></H4>
-
-<P>Gets or sets the font size in pixels. The default size is 14
-pixels.
-
-
-<H4><A name=Fl_Widget.labeltype>void Fl_Widget::label(Fl_Labeltype,
-const char*)
-<BR> uchar Fl_Widget::labeltype() const
-<BR> void Fl_Widget::labeltype(Fl_Labeltype)</A></H4>
-
-<P>Gets or sets the <A
-href="common.html#labeltypes"><TT>labeltype</TT></A> which
-identifies the function that draws the label of the widget. This
-is generally used for special effects such as embossing or for
-using the <TT>label()</TT> pointer as another form of data such
-as an icon. The value <TT>FL_NORMAL_LABEL</TT> prints the label
-as plain text.
-
-
-<H4><A name=Fl_Widget.output>int Fl_Widget::output() const</A>
-<BR><A name=Fl_Widget.clear_output>void Fl_Widget::clear_output()</A>
-<BR><A name=Fl_Widget.set_output>void Fl_Widget::set_output()</A></H4>
-
-<P><tt>output()</tt> means the same as <tt>!active()</tt> except
-it does not change how the widget is drawn. The widget will not
-receive any events. This is useful for making scrollbars or
-buttons that work as displays rather than input devices.
-
-
-<H4><A name=Fl_Widget.parent>Fl_Group *Fl_Widget::parent() const</A></H4>
-
-<P>Returns a pointer to the parent widget. Usually this is a <A
-href=Fl_Group.html#Fl_Group> <TT>Fl_Group</TT></A> or <A
-HREF="Fl_Window.html#Fl_Window"><tt>Fl_Window</tt></a>. Returns
-<tt>NULL</tt> if the widget has no parent.
-
-
-<H4><A name=Fl_Widget.redraw>void Fl_Widget::redraw()</A></H4>
-
-<P>Marks the widget as needing its <A
-HREF="subclassing.html#draw"><TT>draw()</TT></A> routine called.
-
-
-<H4><A name=Fl_Widget.redraw_label>void Fl_Widget::redraw_label()</A></H4>
-
-<P>Marks the widget or the parent as needing a redraw for the
-label area of a widget.
-
-
-<H4><A name=Fl_Widget.resize>virtual void
-Fl_Widget::resize(int x, int y, int w, int h)</A>
-<BR><A name=Fl_Widget.position>void Fl_Widget::position(short x, short y)</A>
-<BR><A name=Fl_Widget.size>void Fl_Widget::size(short w, short h)</A></H4>
-
-<P>Change the size or position of the widget. This is a virtual
-function so that the widget may implement its own handling of
-resizing. The default version does <I>not</I> call the
-<TT>redraw()</TT> method, but instead relies on the parent
-widget to do so because the parent may know a faster way to
-update the display, such as scrolling from the old position.
-
-<P>Some window managers under X11 call <TT>resize</TT> a lot more
-often than needed. Please verify that the position or size of
-a widget did actually change before doing any extensiive calculations.
-
-<P><TT>position(x,y)</TT> is a shortcut for <TT>resize(x,y,w(),h())</TT>,
-and <TT>size(w,h)</TT> is a shortcut for <TT>resize(x(),y(),w,h)</TT>.</P>
-
-
-<H4><A name=Fl_Widget.selection_color>Fl_Color
-Fl_Widget::selection_color() const
-<BR>void Fl_Widget::selection_color(Fl_Color)</A></H4>
-
-<P>Gets or sets the selection color, which is defined for Forms
-compatibility and is usually used to color the widget when it is
-selected, although some widgets use this color for other
-purposes. You can set both colors at once with
-<TT>color(a,b)</TT>.
-
-
-<H4><A name=Fl_Widget.takesevents>int Fl_Widget::takesevents() const</A></H4>
-
-<P>This is the same as <TT>(active() &amp;&amp; !output()
-&amp;&amp; visible())</TT> but is faster.
-
-
-<H4><A name=Fl_Widget.take_focus>int Fl_Widget::take_focus()</A></H4>
- Tries to make this widget be the <TT>Fl::focus()</TT> widget, by first
-sending it an <TT>FL_FOCUS</TT> event, and if it returns non-zero,
-setting <TT>Fl::focus()</TT> to this widget. You should use this
-method to assign the focus to an widget. Returns true if the widget
-accepted the focus.
-
-
-<H4><A name="Fl_Widget.tooltip">const char *Fl_Widget::tooltip()<BR>
-void Fl_Widget::tooltip(const char *t)</A></H4>
-
-<P>Gets or sets a string of text to display in a popup tooltip
-window when the user hovers the mouse over the widget. The
-string is <I>not</I> copied, so make sure any formatted string
-is stored in a <TT>static</TT>, global, or allocated buffer.
-
-<P>If no tooltip is set, the tooltip of the parent is inherited.
-Setting a tooltip for a group and setting no tooltip for a child
-will show the group's tooltip instead. To avoid this behavior,
-you can set the child's tooltip to an empty string
-(<tt>&quot;&quot;</tt>).
-
-<H4><A NAME="Fl_Widget.type">uchar Fl_Widget::type() const;</A></H4>
-
-<P>Returns the widget type value, which is used for Forms
-compatability and to simulate RTTI.
-
-<H4><A name=Fl_Widget.x>short Fl_Widget::x() const</A>
-<BR><A name=Fl_Widget.y>short Fl_Widget::y() const</A>
-<BR><A name=Fl_Widget.w>short Fl_Widget::w() const</A>
-<BR><A name=Fl_Widget.h>short Fl_Widget::h() const</A></H4>
-
-<P>Returns the position of the upper-left corner of the widget
-in its enclosing Fl_Window (<I>not</I> its parent if that is not
-an Fl_Window), and its width and height.
-
-
-<H4><A name=Fl_Widget.user_data>void* Fl_Widget::user_data() const
-<BR>void Fl_Widget::user_data(void*)</A></H4>
-
-<P>Gets or sets the current user data (<TT>void *</TT>) argument
-that is passed to the callback function.
-
-
-<H4><A name=Fl_Widget.window>Fl_Window* Fl_Widget::window() const;</A></H4>
-
-<P>Returns a pointer to the primary <A
-href=Fl_Window.html#Fl_Window><TT>Fl_Window</TT></A> widget.
-Returns <TT>NULL</TT> if no window is associated with this
-widget. Note: for an <TT>Fl_Window</TT> widget, this returns
-its <I>parent</I> window (if any), not <I>this</I> window.
-
-
-<H4><A NAME="Fl_Widget.set_visible">void Fl_Widget::set_visible();</A></H4>
-
-<P>Makes the widget visible; you must still redraw the parent
-widget to see a change in the window. Normally you want to use
-the <A HREF="#Fl_Widget.show"><CODE>show()</CODE></A> method
-instead.
-
-
-<H4><A NAME="Fl_Widget.set_visible_focus">void Fl_Widget::set_visible_focus();</A></H4>
-
-<P>Enables keyboard focus navigation with this widget; note,
-however, that this will not necessarily mean that the widget
-will accept focus, but for widgets that can accept focus, this
-method enables it if it has been disabled.
-
-
-<H4><A name=Fl_Widget.visible>int Fl_Widget::visible() const</A><BR>
-<A name=Fl_Widget.visible_r>int Fl_Widget::visible_r() const</A><BR>
-<A name=Fl_Widget.show>void Fl_Widget::show()</A><BR>
-<A name=Fl_Widget.hide>void Fl_Widget::hide()</A></H4>
-
-<P>An invisible widget never gets redrawn and does not get
-events. The <TT>visible()</TT> method returns true if the
-widget is set to be visible.The <TT>visible_r()</TT> method
-returns true if the widget and all of its parents are visible. A
-widget is only visible if <TT>visible()</TT> is true on it
-<I>and all of its parents</I>.
-
-<P>Changing it will send <TT>FL_SHOW</TT> or <TT>FL_HIDE</TT>
-events to the widget. <I>Do not change it if the parent is not
-visible, as this will send false <TT>FL_SHOW</TT> or <TT>FL_HIDE</TT>
- events to the widget</I>. <TT>redraw()</TT> is called if necessary on
-this or the parent.
-
-<H4><A NAME="Fl_Widget.visible_focus">void Fl_Widget::visible_focus(int);</A><BR>
-int Fl_Widget::visible_focus();</H4>
-
-<P>Modifies keyboard focus navigation.
-See <A HREF="#Fl_Widget.set_visible_focus"><code>set_visible_focus()</code></a> and
-<A HREF="#Fl_Widget.clear_visible_focus"><code>clear_visible_focus()</code></a>.
-The second form returns non-zero if this widget will participate in keyboard focus navigation.
-
-<H4><A name=Fl_Widget.when>Fl_When Fl_Widget::when() const
-<BR> void Fl_Widget::when(Fl_When)</A></H4>
-
-<P><TT>Fl_Widget::when()</TT> is a set of bitflags used by
-subclasses of <TT> Fl_Widget</TT> to decide when to do the
-callback. If the value is zero then the callback is never
-done. Other values are described in the individual widgets.
-This field is in the base class so that you can scan a panel and
-<TT>do_callback()</TT> on all the ones that don't do their own
-callbacks in response to an &quot;OK&quot; button.
-
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_Window.html b/documentation/Fl_Window.html
deleted file mode 100644
index 7af5aba4d..000000000
--- a/documentation/Fl_Window.html
+++ /dev/null
@@ -1,290 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Window</TITLE>
-</HEAD>
-<BODY>
-<!-- NEW PAGE -->
-<H2><A name=Fl_Window>class Fl_Window</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Group.html#Fl_Group>Fl_Group</A>
- |
- +----<B>Fl_Window</B>
- |
- +----<A href=Fl_Double_Window.html#Fl_Double_Window>Fl_Double_Window</A>, <A href=Fl_Gl_Window.html#Fl_Gl_Window>Fl_Gl_Window</A>,
- <A href=Fl_Overlay_Window.html#Fl_Overlay_Window>Fl_Overlay_Window</A>, <A href=Fl_Single_Window.html#Fl_Single_Window>Fl_Single_Window</A>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Window.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- This widget produces an actual window. This can either be a main
-window, with a border and title and all the window management controls,
-or a &quot;subwindow&quot; inside a window. This is controlled by whether or not
-the window has a <TT>parent()</TT>.
-<P>Once you create a window, you usually add children <TT>Fl_Widget</TT>
-'s to it by using <TT>window-&gt;add(child)</TT> for each new widget. See <A
-href=Fl_Group.html#Fl_Group><TT>Fl_Group</TT></A> for more information
-on how to add and remove children. </P>
-<P>There are several subclasses of <TT>Fl_Window</TT> that provide
-double-buffering, overlay, menu, and OpenGL support. </P>
-<P>The window's callback is done if the user tries to close a window
-using the window manager and <A href="Fl.html#Fl.modal"><TT>
-Fl::modal()</TT></A> is zero or equal to the window. <TT>Fl_Window</TT>
- has a default callback that calls <TT>Fl_Window::hide()</TT>. </P>
-<H3>Methods</H3>
-<CENTER>
-<TABLE width=90% summary="Fl_Window methods.">
-<TR><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Window.Fl_Window>Fl_Window</A></LI>
-<LI><A href=#Fl_Window.~Fl_Window>~Fl_Window</A></LI>
-<LI><A href=#Fl_Window.border>border</A></LI>
-<LI><A href=#Fl_Window.clear_border>clear_border</A></LI>
-<LI><A href=#Fl_Window.current>current</A></LI>
-<LI><A href=#Fl_Window.cursor>cursor</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Window.free_position>free_position</A></LI>
-<LI><A href=#Fl_Window.fullscreen>fullscreen</A></LI>
-<LI><A href=#Fl_Window.fullscreen_off>fullscreen_off</A></LI>
-<LI><A href=#Fl_Window.hide>hide</A></LI>
-<LI><A href=#Fl_Window.hotspot>hotspot</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Window.iconize>iconize</A></LI>
-<LI><A href=#Fl_Window.iconlabel>iconlabel</A></LI>
-<LI><A href=#Fl_Window.label>label</A></LI>
-<LI><A href=#Fl_Window.make_current>make_current</A></LI>
-<LI><A href=#Fl_Window.modal>modal</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Window.non_modal>non_modal</A></LI>
-<LI><A href=#Fl_Window.resize>resize</A></LI>
-<LI><A href=#Fl_Window.set_modal>set_modal</A></LI>
-<LI><A href=#Fl_Window.set_non_modal>set_non_modal</A></LI>
-<LI><A href=#Fl_Window.show>show</A></LI>
-</UL>
-</TD><TD align=left valign=top>
-<UL>
-<LI><A href=#Fl_Window.shown>shown</A></LI>
-<LI><A href=#Fl_Window.size_range>size_range</A></LI>
-<LI><A href=#Fl_Window.xclass>xclass</A></LI>
-</UL>
-</TD></TR>
-</TABLE>
-</CENTER>
-<H4><A name=Fl_Window.Fl_Window>Fl_Window::Fl_Window(int w, int h, const char *title = 0)<br>
-Fl_Window::Fl_Window(int x, int y, int w, int h, const char *title = 0)</A></H4>
-
-<p>Creates a new window. If <a
-href='Fl_Group.html#Fl_Group.current'><tt>Fl_Group::current()</tt></a>
-is not <tt>NULL</tt>, the window is created as a subwindow of
-the parent window.</p>
-
-<p>The first form of the constructor creates a top-level window
-and asks the window manager to position the window. The second
-form of the constructor either creates a subwindow or a
-top-level window at the specified location, subject to window
-manager configuration. If you do not specify the position of the
-window, the window manager will pick a place to show the window
-or allow the user to pick a location. Use <tt>position(x,y)</tt>
-or <tt>hotspot()</tt> before calling <tt>show()</tt> to request a
-position on the screen. See <TT><A href="#Fl_Window.resize">
-Fl_Window::resize()</A></TT> for some more details on positioning
-windows.</p>
-
-<p>Top-level windows initially have <tt>visible()</tt> set to 0
-and <tt>parent()</tt> set to <tt>NULL</tt>. Subwindows initially
-have <tt>visible()</tt> set to 1 and <tt>parent()</tt> set to
-the parent window pointer.</p>
-
-<P><TT>Fl_Widget::box()</TT> defaults to <TT>FL_FLAT_BOX</TT>. If you
-plan to completely fill the window with children widgets you should
-change this to <TT>FL_NO_BOX</TT>. If you turn the window border off
-you may want to change this to <TT>FL_UP_BOX</TT>.</P>
-
-<H4><A name=Fl_Window.~Fl_Window>virtual Fl_Window::~Fl_Window()</A></H4>
- The destructor <I>also deletes all the children</I>. This allows a
-whole tree to be deleted at once, without having to keep a pointer to
-all the children in the user code. A kludge has been done so the <TT>
-Fl_Window</TT> and all of it's children can be automatic (local)
-variables, but you must declare the <TT>Fl_Window</TT> <I>first</I> so
-that it is destroyed last.
-<H4><A name=Fl_Window.size_range>void Fl_Window::size_range(int minw,
-int minh, int maxw=0, int maxh=0, int dw=0, int dh=0, int aspect=0)</A></H4>
- Set the allowable range the user can resize this window to. This only
-works for top-level windows.
-<UL>
-<LI><TT>minw</TT> and <TT>minh</TT> are the smallest the window can
-be. Either value must be greater than 0.</LI>
-<LI><TT>maxw</TT> and <TT>maxh</TT> are the largest the window can be.
- If either is <I>equal</I> to the minimum then you cannot resize in
-that direction. If either is zero then FLTK picks a maximum size in
-that direction such that the window will fill the screen. </LI>
-<LI><TT>dw</TT> and <TT>dh</TT> are size increments. The window will
-be constrained to widths of <TT>minw + N * dw</TT>, where <TT>N</TT>
- is any non-negative integer. If these are less or equal to 1 they
-are ignored. (this is ignored on WIN32)</LI>
-<LI><TT>aspect</TT> is a flag that indicates that the window should
- preserve it's aspect ratio. This only works if both the maximum and
- minimum have the same aspect ratio. (ignored on WIN32 and by many X
- window managers)</LI>
-</UL>
- If this function is not called, FLTK tries to figure out the range
-from the setting of <A href="Fl_Group.html#Fl_Group.resizable"><TT>resizable()</TT></A>:
-<UL>
-<LI>If <TT>resizable()</TT> is <TT>NULL</TT> (this is the default)
-then the window cannot be resized and the resize border and max-size
-control will not be displayed for the window. </LI>
-<LI>If either dimension of <TT>resizable()</TT> is less than 100,
-then that is considered the minimum size. Otherwise the <TT>
-resizable()</TT> has a minimum size of 100. </LI>
-<LI>If either dimension of <TT>resizable()</TT> is zero, then that is
-also the maximum size (so the window cannot resize in that direction). </LI>
-</UL>
- It is undefined what happens if the current size does not fit in the
-constraints passed to <TT>size_range()</TT>.
-<H4><A name=Fl_Window.show>virtual void Fl_Window::show()
-<BR> void Fl_Window::show(int argc, char **argv)</A></H4>
-Put the window on the screen. Usually this has the side effect of
-opening the display. The second form is used for top-level
-windows and allow standard arguments to be parsed from the
-command-line.
-<P>If the window is already shown then it is restored and raised to the
-top. This is really convenient because your program can call <TT>show()</TT>
- at any time, even if the window is already up. It also means that <TT>
-show()</TT> serves the purpose of <TT>raise()</TT> in other toolkits. </P>
-<H4><A name=Fl_Window.hide>virtual void Fl_Window::hide()</A></H4>
- Remove the window from the screen. If the window is already hidden or
-has not been shown then this does nothing and is harmless.
-<H4><A name=Fl_Window.shown>int Fl_Window::shown() const</A></H4>
- Returns non-zero if <TT>show()</TT> has been called (but not <TT>hide()</TT>
-). You can tell if a window is iconified with <TT>(w-&gt;shown()
-&amp;!w-&gt;visible())</TT>.
-<H4><A name=Fl_Window.iconize>void Fl_Window::iconize()</A></H4>
- Iconifies the window. If you call this when <TT>shown()</TT> is false
-it will <TT>show()</TT> it as an icon. If the window is already
-iconified this does nothing.
-<P>Call <TT>show()</TT> to restore the window. </P>
-<P>When a window is iconified/restored (either by these calls or by the
-user) the <TT>handle()</TT> method is called with <TT>FL_HIDE</TT> and <TT>
-FL_SHOW</TT> events and <TT>visible()</TT> is turned on and off. </P>
-<P>There is no way to control what is drawn in the icon except with the
-string passed to <TT>Fl_Window::xclass()</TT>. You should not rely on
-window managers displaying the icons. </P>
-<H4><A name=Fl_Window.resize>void Fl_Window::resize(int,int,int,int)</A></H4>
- Change the size and position of the window. If <TT>shown()</TT> is
-true, these changes are communicated to the window server (which may
-refuse that size and cause a further resize). If <TT>shown()</TT> is
-false, the size and position are used when <TT>show()</TT> is called.
-See <A href=Fl_Group.html#Fl_Group><TT>Fl_Group</TT></A> for the effect
-of resizing on the child widgets.
-<P>You can also call the <TT>Fl_Widget</TT> methods <TT>size(x,y)</TT>
- and <TT>position(w,h)</TT>, which are inline wrappers for this virtual
-function. </P>
-<P>A top-level window can not force, but merely suggest a position and
-size to the operating system. The window manager may not be willing or
-able to display a window at the desired position or with the given
-dimensions. It is up to the application developer to verify window
-parameters after the <tt>resize</tt> request.
-<H4><A name=Fl_Window.free_position>void Fl_Window::free_position()</A></H4>
- Undoes the effect of a previous <TT>resize()</TT> or <TT>show()</TT>
- so that the next time <TT>show()</TT> is called the window manager is
-free to position the window.
-<H4><A name=Fl_Window.hotspot>void Fl_Window::hotspot(int x, int y, int
-offscreen = 0)
-<BR> void Fl_Window::hotspot(const Fl_Widget*, int offscreen = 0)
-<BR> void Fl_Window::hotspot(const Fl_Widget&amp;, int offscreen = 0)</A></H4>
-<TT>position()</TT> the window so that the mouse is pointing at the
-given position, or at the center of the given widget, which may be the
-window itself. If the optional <TT>offscreen</TT> parameter is
-non-zero, then the window is allowed to extend off the screen (this
-does not work with some X window managers).
-<H4><A name=Fl_Window.fullscreen>void Fl_Window::fullscreen()</A></H4>
- Makes the window completely fill the screen, without any window
-manager border visible. You must use <TT>fullscreen_off()</TT> to undo
-this. This may not work with all window managers.
-<H4><A name=Fl_Window.fullscreen_off>int Fl_Window::fullscreen_off(int
-x, int y, int w, int h)</A></H4>
- Turns off any side effects of <TT>fullscreen()</TT> and does <TT>
-resize(x,y,w,h)</TT>.
-<H4><A name=Fl_Window.border>int Fl_Window::border(int)
-<BR> uchar Fl_Window::border() const</A></H4>
- Gets or sets whether or not the window manager border is around the
-window. The default value is true. <TT>border(n)</TT> can be used to
-turn the border on and off, and returns non-zero if the value has been
-changed. <I>Under most X window managers this does not work after <TT>
-show()</TT> has been called, although SGI's 4DWM does work.</I>
-<H4><A name=Fl_Window.clear_border>void Fl_Window::clear_border()</A></H4>
-<TT>clear_border()</TT> is a fast inline function to turn the border
-off. It only works before <TT>show()</TT> is called.
-<H4><A name=Fl_Window.set_modal>void Fl_Window::set_modal()</A></H4>
- A &quot;modal&quot; window, when <TT>shown()</TT>, will prevent any events from
-being delivered to other windows in the same program, and will also
-remain on top of the other windows (if the X window manager supports
-the &quot;transient for&quot; property). Several modal windows may be shown at
-once, in which case only the last one shown gets events. You can see
-which window (if any) is modal by calling <A href="Fl.html#Fl.modal"><TT>
-Fl::modal()</TT></A>.
-<H4><A name=Fl_Window.modal>uchar Fl_Window::modal() const</A></H4>
- Returns true if this window is modal.
-<H4><A name=Fl_Window.set_non_modal>void Fl_Window::set_non_modal()</A></H4>
- A &quot;non-modal&quot; window (terminology borrowed from Microsoft Windows)
-acts like a <TT>modal()</TT> one in that it remains on top, but it has
-no effect on event delivery. There are <I>three</I> states for a
-window: modal, non-modal, and normal.
-<H4><A name=Fl_Window.non_modal>uchar Fl_Window::non_modal() const</A></H4>
- Returns true if this window is modal or non-modal.
-<H4><A name=Fl_Window.label>void Fl_Window::label(const char*)
-<BR> const char* Fl_Window::label() const</A></H4>
- Gets or sets the window title bar label.
-<H4><A name=Fl_Window.iconlabel>void Fl_Window::iconlabel(const char*)
-<BR> const char* Fl_Window::iconlabel() const</A></H4>
- Gets or sets the icon label.
-<H4><A name=Fl_Window.xclass>void Fl_Window::xclass(const char*)
-<BR> const char* Fl_Window::xclass() const</A></H4>
- A string used to tell the system what type of window this is. Mostly
-this identifies the picture to draw in the icon. <I>Under X, this is
-turned into a <TT>XA_WM_CLASS</TT> pair by truncating at the first
-non-alphanumeric character and capitalizing the first character, and
-the second one if the first is 'x'. Thus &quot;foo&quot; turns into &quot;foo, Foo&quot;,
-and &quot;xprog.1&quot; turns into &quot;xprog, XProg&quot;.</I> This only works if called <I>
-before</I> calling <TT>show()</TT>.
-<P>Under Microsoft Windows this string is used as the name of the
-WNDCLASS structure, though it is not clear if this can have any
-visible effect. The passed pointer is stored unchanged. The string
-is not copied.</P>
-<H4><A name=Fl_Window.make_current>void Fl_Window::make_current()</A></H4>
-<TT>make_current()</TT> sets things up so that the drawing functions in <A
-href=drawing.html#drawing><TT>&lt;FL/fl_draw.H&gt;</TT></A> will go into this
-window. This is useful for incremental update of windows, such as in an
-idle callback, which will make your program behave much better if it
-draws a slow graphic. <B>Danger: incremental update is very hard to
-debug and maintain!</B>
-<P>This method only works for the <TT>Fl_Window</TT> and <TT>
-Fl_Gl_Window</TT> classes. </P>
-<H4><A name=Fl_Window.current>static Fl_Window* Fl_Window::current()</A></H4>
- Returns the last window that was made current.
-<H4><A name=Fl_Window.cursor>void Fl_Window::cursor(Fl_Cursor, Fl_Color = FL_WHITE, Fl_Color = FL_BLACK)</A></H4>
-Change the cursor for this window. This always calls the system, if
-you are changing the cursor a lot you may want to keep track of how
-you set it in a static varaible and call this only if the new cursor
-is different.
-
-<P>The type <TT>Fl_Cursor</TT> is an enumeration defined in <A
-href=enumerations.html#cursor> <TT>&lt;Enumerations.H&gt;</TT></A>.
-(Under X you can get any XC_cursor value by passing <TT>
-Fl_Cursor((XC_foo/2)+1)</TT>). The colors only work on X, they are
-not implemented on WIN32.
-
-</BODY></HTML>
diff --git a/documentation/Fl_Wizard.html b/documentation/Fl_Wizard.html
deleted file mode 100644
index 1a0f456e2..000000000
--- a/documentation/Fl_Wizard.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_Wizard</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-<H2><A name="Fl_Wizard">class Fl_Wizard</A></H2>
-
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href=Fl_Group.html#Fl_Group>Fl_Group</A>
- |
- +----<B>Fl_Wizard</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include "Fl_Wizard.h"
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <CODE>Fl_Wizard</CODE> widget is based off the <CODE>Fl_Tabs</CODE>
-widget, but instead of displaying tabs it only changes "tabs" under
-program control. Its primary purpose is to support "wizards" that
-step a user through configuration or troubleshooting tasks.
-
-<P>As with <CODE>Fl_Tabs</CODE>, wizard panes are composed of child (usually
-<CODE>Fl_Group</CODE>) widgets. Navigation buttons must be added separately.
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A HREF="#Fl_Wizard.Fl_Wizard">Fl_Wizard</A>
- <LI><A HREF="#Fl_Wizard.~Fl_Wizard">~Fl_Wizard</A>
- <LI><A HREF="#Fl_Wizard.next">next</A>
- <LI><A HREF="#Fl_Wizard.prev">prev</A>
- <LI><A HREF="#Fl_Wizard.value">value</A>
-
-</UL>
-
-<H4><A NAME="Fl_Wizard.Fl_Wizard">Fl_Wizard(int xx, int yy, int ww, int hh, const char *l = 0)</A></H4>
-
-<P>The constructor creates the <CODE>Fl_Wizard</CODE> widget at the specified
-position and size.
-
-<H4><A NAME="Fl_Wizard.~Fl_Wizard">~Fl_Wizard()</A></H4>
-
-<P>The destructor destroys the widget and its children.
-
-<H4><A NAME="Fl_Wizard.next">void next()</A></H4>
-
-<P>This method shows the next child of the wizard. If the last child
-is already visible, this function does nothing.
-
-<H4><A NAME="Fl_Wizard.prev">void prev()</A></H4>
-
-<P>This method shows the previous child of the wizard. If the first child
-is already visible, this function does nothing.
-
-<H4><A NAME="Fl_Wizard.value">void value(Fl_Widget *w)<BR>
-Fl_Widget *value()</A></H4>
-
-<P>Sets or gets the child widget that is visible.
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_XBM_Image.html b/documentation/Fl_XBM_Image.html
deleted file mode 100644
index 5eb69036b..000000000
--- a/documentation/Fl_XBM_Image.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_XBM_Image</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_XBM_Image">class Fl_XBM_Image</A></H2>
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href="Fl_Bitmap.html">Fl_Bitmap</A>
- |
- +----<B>Fl_XBM_Image</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_XBM_Image.H&gt;
-</PRE></UL>
-
-<H3>Additional Libraries</H3>
-
-<UL><PRE>
--lfltk_images / fltkimages.lib
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_XBM_Image</TT> class supports loading, caching,
-and drawing of X Bitmap (XBM) bitmap files.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_XBM_Image.Fl_XBM_Image">Fl_XBM_Image</A></LI>
-
- <LI><A href="#Fl_XBM_Image.~Fl_XBM_Image">~Fl_XBM_Image</A></LI>
-
-</UL>
-
-<H4><A name="Fl_XBM_Image.Fl_XBM_Image">Fl_XBM_Image::Fl_XBM_Image(const char *filename);</A></H4>
-
-<P>The constructor loads the named XBM file.</P>
-
-<H4><A name="Fl_XBM_Image.~Fl_XBM_Image">Fl_XBM_Image::~Fl_XBM_Image();</A></H4>
-
-<P>The destructor free all memory and server resources that are used by
-the image.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/Fl_XPM_Image.html b/documentation/Fl_XPM_Image.html
deleted file mode 100644
index d3e9e3eac..000000000
--- a/documentation/Fl_XPM_Image.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>Fl_XPM_Image</TITLE>
-</HEAD>
-<BODY>
-
-<!-- NEW PAGE -->
-
-<H2><A name="Fl_XPM_Image">class Fl_XPM_Image</A></H2>
-<HR>
-
-<H3>Class Hierarchy</H3>
-
-<UL><PRE>
-<A href="Fl_Pixmap.html">Fl_Pixmap</A>
- |
- +----<B>Fl_XPM_Image</B>
-</PRE></UL>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_XPM_Image.H&gt;
-</PRE></UL>
-
-<H3>Additional Libraries</H3>
-
-<UL><PRE>
--lfltk_images / fltkimages.lib
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <TT>Fl_XPM_Image</TT> class supports loading, caching,
-and drawing of X Pixmap (XPM) images, including transparency.</P>
-
-<H3>Methods</H3>
-
-<UL>
-
- <LI><A href="#Fl_XPM_Image.Fl_XPM_Image">Fl_XPM_Image</A></LI>
-
- <LI><A href="#Fl_XPM_Image.~Fl_XPM_Image">~Fl_XPM_Image</A></LI>
-
-</UL>
-
-<H4><A name="Fl_XPM_Image.Fl_XPM_Image">Fl_XPM_Image::Fl_XPM_Image(const char *filename);</A></H4>
-
-<P>The constructor loads the named XPM image.</P>
-
-<H4><A name="Fl_XPM_Image.~Fl_XPM_Image">Fl_XPM_Image::~Fl_XPM_Image();</A></H4>
-
-<P>The destructor free all memory and server resources that are used by
-the image.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/Makefile b/documentation/Makefile
index 0ec17f6a7..f9a9f3966 100644
--- a/documentation/Makefile
+++ b/documentation/Makefile
@@ -43,176 +43,92 @@ MEDIA = --size universal
#MEDIA = --size 7x8.5in --fontsize 9.0
# These are the HTML "source" files...
-HTMLFILES = \
- preface.html \
- intro.html \
- basics.html \
- common.html \
- editor.html \
- drawing.html \
- events.html \
- subclassing.html \
- opengl.html \
- fluid.html \
- advanced.html \
- widgets.html \
- Fl.html \
- Fl_Adjuster.html \
- Fl_Bitmap.html \
- Fl_BMP_Image.html \
- Fl_Box.html \
- Fl_Browser_.html \
- Fl_Browser.html \
- Fl_Button.html \
- Fl_Chart.html \
- Fl_Check_Browser.html \
- Fl_Check_Button.html \
- Fl_Choice.html \
- Fl_Clock.html \
- Fl_Clock_Output.html \
- Fl_Color_Chooser.html \
- Fl_Counter.html \
- Fl_Dial.html \
- Fl_Double_Window.html \
- Fl_End.html \
- Fl_File_Browser.html \
- Fl_File_Chooser.html \
- Fl_File_Icon.html \
- Fl_File_Input.html \
- Fl_Float_Input.html \
- Fl_Free.html \
- Fl_GIF_Image.html \
- Fl_Gl_Window.html \
- Fl_Group.html \
- Fl_Help_Dialog.html \
- Fl_Help_View.html \
- Fl_Hold_Browser.html \
- Fl_Image.html \
- Fl_Input.html \
- Fl_Input_.html \
- Fl_Input_Choice.html \
- Fl_Int_Input.html \
- Fl_JPEG_Image.html \
- Fl_Light_Button.html \
- Fl_Menu_.html \
- Fl_Menu_Bar.html \
- Fl_Menu_Button.html \
- Fl_Menu_Item.html \
- Fl_Menu_Window.html \
- Fl_Multi_Browser.html \
- Fl_Multiline_Input.html \
- Fl_Multiline_Output.html \
- Fl_Output.html \
- Fl_Overlay_Window.html \
- Fl_Pack.html \
- Fl_Pixmap.html \
- Fl_PNG_Image.html \
- Fl_PNM_Image.html \
- Fl_Positioner.html \
- Fl_Preferences.html \
- Fl_Progress.html \
- Fl_Repeat_Button.html \
- Fl_RGB_Image.html \
- Fl_Return_Button.html \
- Fl_Roller.html \
- Fl_Round_Button.html \
- Fl_Scroll.html \
- Fl_Scrollbar.html \
- Fl_Secret_Input.html \
- Fl_Select_Browser.html \
- Fl_Shared_Image.html \
- Fl_Single_Window.html \
- Fl_Slider.html \
- Fl_Spinner.html \
- Fl_Tabs.html \
- Fl_Text_Buffer.html \
- Fl_Text_Display.html \
- Fl_Text_Editor.html \
- Fl_Tile.html \
- Fl_Tiled_Image.html \
- Fl_Timer.html \
- Fl_Toggle_Button.html \
- Fl_Tooltip.html \
- Fl_Valuator.html \
- Fl_Value_Input.html \
- Fl_Value_Output.html \
- Fl_Value_Slider.html \
- Fl_Widget.html \
- Fl_Window.html \
- Fl_Wizard.html \
- Fl_XBM_Image.html \
- Fl_XPM_Image.html \
- functions.html \
- enumerations.html \
- glut.html \
- forms.html \
- osissues.html \
- migration.html \
- license.html \
- examples.html
+HTMLFILES = html/index.html \
+ src/index.dox \
+ src/preface.dox \
+ src/intro.dox \
+ src/basics.dox \
+ src/common.dox \
+ src/drawing.dox \
+ src/editor.dox \
+ src/events.dox \
+ src/subclassing.dox \
+ src/opengl.dox \
+ src/fluid.dox \
+ src/advanced.dox \
+ src/unicode.dox \
+ src/enumerations.dox \
+ src/glut.dox \
+ src/forms.dox \
+ src/osissues.dox \
+ src/migration_1_1.dox \
+ src/migration_1_3.dox \
+ src/development.dox \
+ src/license.dox \
+ src/examples.dox
IMAGEFILES = \
- adjuster1.gif \
- boxtypes.gif \
- buttons.gif \
- charts.gif \
- choice.gif \
- clock.gif \
- counter.gif \
- cubeview.gif \
- dial.gif \
- editor.gif \
- editor-replace.gif \
- fl_alert.gif \
- fl_ask.gif \
- Fl_Check_Button.gif \
- fl_choice.gif \
- fl_color_chooser.jpg \
- Fl_File_Chooser.jpg \
- Fl_File_Input.gif \
- FL.gif \
- Fl_Help_Dialog.gif \
- fl_input.gif \
- Fl_Light_Button.gif \
- fl_message.gif \
- fl_password.gif \
- Fl_Return_Button.gif \
- Fl_Roller.gif \
- Fl_Round_Button.gif \
- Fl_Scroll.gif \
- fl_show_colormap.gif \
- Fl_Tile.gif \
- fluid1.gif \
- fluid2.gif \
- fluid3-cxx.gif \
- fluid3-gui.gif \
- fluid3-style.gif \
- fluid4.gif \
- fluid-catgets.gif \
- fluid-gettext.gif \
- fluid-org.gif \
- fluid_prefs.gif \
- fluid_widget_cxx.gif \
- fluid_widget_gui.gif \
- fluid_widget_style.gif \
- Fl_Value_Input.gif \
- Fl_Value_Output.gif \
- hello.C.gif \
- input_choice.jpg \
- menubar.gif \
- menu_button.gif \
- menu.gif \
- positioner.gif \
- resizebox1.gif \
- resizebox2.gif \
- round_clock.gif \
- scrollbar.gif \
- slider.gif \
- symbols.gif \
- tabs.gif \
- text.gif \
- valuators.gif \
- value_slider.gif
+ src/adjuster1.gif \
+ src/boxtypes.gif \
+ src/buttons.gif \
+ src/charts.gif \
+ src/choice.gif \
+ src/clock.gif \
+ src/counter.gif \
+ src/cubeview.gif \
+ src/dial.gif \
+ src/editor.gif \
+ src/editor-replace.gif \
+ src/fl_alert.gif \
+ src/fl_ask.gif \
+ src/Fl_Check_Button.gif \
+ src/fl_choice.gif \
+ src/fl_color_chooser.jpg \
+ src/Fl_File_Chooser.jpg \
+ src/Fl_File_Input.gif \
+ src/FL.gif \
+ src/Fl_Help_Dialog.gif \
+ src/fl_input.gif \
+ src/Fl_Light_Button.gif \
+ src/fl_message.gif \
+ src/fl_password.gif \
+ src/Fl_Return_Button.gif \
+ src/Fl_Roller.gif \
+ src/Fl_Round_Button.gif \
+ src/Fl_Scroll.gif \
+ src/fl_show_colormap.gif \
+ src/Fl_Tile.gif \
+ src/fluid1.gif \
+ src/fluid2.gif \
+ src/fluid3-cxx.gif \
+ src/fluid3-gui.gif \
+ src/fluid3-style.gif \
+ src/fluid4.gif \
+ src/fluid-catgets.gif \
+ src/fluid-gettext.gif \
+ src/fluid-org.gif \
+ src/fluid_prefs.gif \
+ src/fluid_widget_cxx.gif \
+ src/fluid_widget_gui.gif \
+ src/fluid_widget_style.gif \
+ src/Fl_Value_Input.gif \
+ src/Fl_Value_Output.gif \
+ src/hello.C.gif \
+ src/input_choice.jpg \
+ src/menubar.gif \
+ src/menu_button.gif \
+ src/menu.gif \
+ src/positioner.gif \
+ src/resizebox1.gif \
+ src/resizebox2.gif \
+ src/round_clock.gif \
+ src/scrollbar.gif \
+ src/slider.gif \
+ src/symbols.gif \
+ src/tabs.gif \
+ src/text.gif \
+ src/valuators.gif \
+ src/value_slider.gif
MANPAGES = fltk.$(CAT3EXT) fltk-config.$(CAT1EXT) fluid.$(CAT1EXT) \
@@ -220,12 +136,12 @@ MANPAGES = fltk.$(CAT3EXT) fltk-config.$(CAT1EXT) fluid.$(CAT1EXT) \
all: $(MANPAGES)
-alldocs: fltk.ps fltk.pdf fltk.d/index.html $(MANPAGES)
+alldocs: refman.pdf html/index.html $(MANPAGES)
clean:
- $(RM) fltk.ps
- $(RM) fltk.pdf
- $(RMDIR) fltk.d
+# $(RM) fltk.ps
+ $(RM) refman.pdf
+ $(RMDIR) html latex
$(RM) *~ *.bck *.bck
depend:
@@ -278,21 +194,21 @@ uninstall-linux uninstall-osx:
# Base html files are now the readable ones, so this target is not make by
# default...
-fltk.d/index.html: $(HTMLFILES) $(IMAGEFILES)
+html/index.html: $(IMAGEFILES)
echo "Generating HTML documentation..."
- -$(RMDIR) fltk.d
- -$(INSTALL_DIR) fltk.d
- -$(HTMLDOC) --verbose --batch fltk.book -d fltk.d -t html
+ -$(RMDIR) html
+ -$(INSTALL_DIR) html
+ -$(HTMLDOC)
-fltk.ps: $(HTMLFILES) $(IMAGEFILES)
- echo "Generating PostScript documentation..."
- $(RM) fltk.ps
- -$(HTMLDOC) --verbose --batch fltk.book $(MEDIA) -f fltk.ps
+#fltk.ps: $(HTMLFILES) $(IMAGEFILES)
+# echo "Generating PostScript documentation..."
+# $(RM) fltk.ps
+# -$(HTMLDOC) --verbose --batch fltk.book $(MEDIA) -f fltk.ps
-fltk.pdf: $(HTMLFILES) $(IMAGEFILES)
+refman.pdf: html/index.html latex/intro.tex $(HTMLFILES) $(IMAGEFILES)
echo "Generating PDF documentation..."
- $(RM) fltk.pdf
- -$(HTMLDOC) --verbose --batch fltk.book $(MEDIA) -f fltk.pdf
+ $(RM) refman.pdf
+ (cd latex; make; cp refman.pdf ..)
#
# End of "$Id$".
diff --git a/documentation/advanced.html b/documentation/advanced.html
deleted file mode 100644
index 774a75ccd..000000000
--- a/documentation/advanced.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>10 - Advanced FLTK</TITLE>
-</HEAD>
-<BODY>
-
-<H1 ALIGN="RIGHT"><A NAME="advanced">10 - Advanced FLTK</A></H1>
-
-<P>This chapter explains advanced programming and design topics
-that will help you to get the most out of FLTK.</P>
-
-<H2><A NAME="multithreading">Multithreading</H2>
-
-<P>FLTK supports multithreaded application using a locking mechanism based on "pthreads". We do not provide a threading interface as part of the library. However a simple example how threads can be implemented for all supported platforms can be found in <tt>test/threads.h</tt> and <tt>test/threads.cxx</tt>.
-
-<P>To use the locking mechanism, FLTK must be compiled with <tt>--enable-threads</tt> set during the <tt>configure</tt> process. IDE-based versions of FLTK are automatically compiled with locking enabled if possible.
-
-<P>In <TT>main()</TT>, call <a href="Fl.html#Fl.lock"><TT>Fl::lock()</TT></A> before <A HREF="Fl.html#Fl.run"><TT>Fl::run()</TT></A> or <A HREF="Fl.html#Fl.wait"><TT>Fl::wait()</TT></A> to start the runtime multithreading support for your program. All callbacks and derived functions like <tt>handle()</tt> and <tt>draw()</tt> will now be properly locked:</P>
-
-<pre>
- int main() {
- Fl::lock();
- /* run thread */
- while (Fl::wait() &gt; 0) {
- if (Fl::thread_message()) {
- /* process your data */
- }
- }
- }
-</pre>
-
-<P>You can now start as many threads as you like. From within
-a thread (other than the main thread) FLTK calls must be wrapped
-with calls to <a href="Fl.html#Fl.lock"><tt>Fl::lock()</tt></a>
-and <a href="Fl.html#Fl.unlock"><tt>Fl::unlock()</tt></a>:
-
-<pre>
- Fl::lock(); // avoid conflicting calls
- ... // your code here
- Fl::unlock(); // allow other threads to access FLTK again
-</pre>
-
-<p>You can send messages from child threads to the main thread
-using <a href="Fl.html#Fl.awake"><tt>Fl::awake(msg)</tt></a>:</p>
-
-<pre>
- void *msg; // "msg" is a pointer to your message
- Fl::awake(msg); // send "msg" to main thread
-</pre>
-
-<p>You can also tell the main thread to call a function for you
-as soon as possible by using
-<a href="Fl.html#Fl.awake"><tt>Fl::awake(callback, userdata)</tt></a>:</p>
-
-<pre>
- void do_something(void *userdata) {
- // running with the main thread
- }
-
- // running in another thread
- void *data; // "data" is a pointer to your user data
- Fl::awake(do_something, data); // call something in main thread
-</pre>
-
-
-<P>FLTK supports multiple platforms, some of them which do not
-allow any other but the main thread to handle system events and
-open or close windows. The safe thing to do is to adhere to the
-following rules for threads on all operating systems:
-
-<ul>
-
-<li>Don't <tt>show()</tt> or <tt>hide()</tt>anything that contains
-widgets derived from <tt>Fl_Window</tt>, including dialogs, file
-choosers, subwindows or <tt>Fl_GL_Window</tt>s</li>
-
-<li>Don't call <tt>Fl::wait()</tt>, <tt>Fl::flush()</tt> or any
-related methods that will handle system messages</li>
-
-<li>Don't start or cancel timers</li>
-
-<li>Don't change window decorations or titles</li>
-
-<li>The <tt>make_current()</tt> method may or may not work well for regular windows, but should always work for <tt>Fl_GL_Window</tt>s to allow for high speed rendering on graphics cards with multiple pipelines</li>
-
-</ul>
-
-<P>See also:
-<a href="Fl.html#Fl.awake">void awake(void *message)</A>,
-<a href="Fl.html#Fl.lock">void lock()</A>,
-<a href="Fl.html#Fl.thread_message">void *thread_message()</A>,
-<a href="Fl.html#Fl.unlock">void unlock()</A>.
-
-</BODY>
-</HTML>
diff --git a/documentation/basics.html b/documentation/basics.html
deleted file mode 100644
index 42ce0131a..000000000
--- a/documentation/basics.html
+++ /dev/null
@@ -1,367 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>2 - FLTK Basics</TITLE>
-</HEAD>
-<BODY>
-
-<H1 ALIGN="RIGHT"><A NAME="basics">2 - FLTK Basics</A></H1>
-
-<P>This chapter teaches you the basics of compiling programs
-that use FLTK.</P>
-
-<H2>Writing Your First FLTK Program</H2>
-
-<P>All programs must include the file <TT>&lt;FL/Fl.H&gt;</TT>.
-In addition the program must include a header file for each
-FLTK class it uses. Listing 1 shows a simple &quot;Hello,
-World!&quot; program that uses FLTK to display the window.</P>
-
-<UL>
-<P><I>Listing 1 - &quot;hello.cxx&quot;</I>
-<PRE>
-#include &lt;FL/Fl.H&gt;
-#include &lt;FL/Fl_Window.H&gt;
-#include &lt;FL/Fl_Box.H&gt;
-
-int main(int argc, char **argv) {
- <A href="Fl_Window.html">Fl_Window</A> *window = new <A href="Fl_Window.html#Fl_Window.Fl_Window">Fl_Window</A>(300,180);
- <A href="Fl_Box.html">Fl_Box</A> *box = new <A href="Fl_Box.html#Fl_Box.Fl_Box">Fl_Box</A>(20,40,260,100,&quot;Hello, World!&quot;);
- box-&gt;<A href="Fl_Widget.html#Fl_Widget.box">box</A>(<A href="common.html#boxtypes">FL_UP_BOX</A>);
- box-&gt;<A href="Fl_Widget.html#Fl_Widget.labelsize">labelsize</A>(36);
- box-&gt;<A href="Fl_Widget.html#Fl_Widget.labelfont">labelfont</A>(<A href="drawing.html#fonts">FL_BOLD</A>+<A href="drawing.html#fonts">FL_ITALIC</A>);
- box-&gt;<A href="Fl_Widget.html#Fl_Widget.labeltype">labeltype</A>(<A href="common.html#labels">FL_SHADOW_LABEL</A>);
- window-&gt;<A href="Fl_Group.html#Fl_Group.end">end</A>();
- window-&gt;<A href="Fl_Window.html#Fl_Window.show">show</A>(argc, argv);
- return <A href="Fl.html#Fl.run">Fl::run</A>();
-}
-</PRE></UL>
-
-<!-- NEED 2in -->
-
-<P>After including the required header files, the program then creates a
-window. All following widgets will automatically be children of this window.</P>
-
-<UL><PRE>
-Fl_Window *window = new <A href="Fl_Window.html#Fl_Window">Fl_Window</A>(300,180);
-</PRE></UL>
-
-<P>Then we create a box with the &quot;Hello, World!&quot; string in it. FLTK automatically adds
-the new box to <tt>window</tt>, the current grouping widget.</P>
-
-<UL><PRE>
-Fl_Box *box = new <A href="Fl_Box.html#Fl_Box">Fl_Box</A>(20,40,260,100,&quot;Hello, World!&quot;);
-</PRE></UL>
-
-<P>Next, we set the type of box and the size, font, and style of the label:</P>
-
-<UL><PRE>
-box-&gt;<A href="Fl_Widget.html#Fl_Widget.box">box</A>(FL_UP_BOX);
-box-&gt;<A href=Fl_Widget.html#Fl_Widget.labelsize>labelsize</A>(36);
-box-&gt;<A href=Fl_Widget.html#Fl_Widget.labelfont>labelfont</A>(FL_BOLD+FL_ITALIC);
-box-&gt;<A href=Fl_Widget.html#Fl_Widget.labeltype>labeltype</A>(FL_SHADOW_LABEL);
-</PRE></UL>
-
-<P>We tell FLTK that we will not add any more widgets to <tt>window</tt>.</P>
-
-<UL><PRE>
-window-&gt;<A href=Fl_Group.html#Fl_Group.end>end</A>();
-</PRE></UL>
-
-<P>Finally, we show the window and enter the FLTK event loop:</P>
-
-<UL><PRE>
-window-&gt;<A href=Fl_Window.html#Fl_Window.show>show</A>(argc, argv);
-return <A href="Fl.html#Fl.run">Fl::run</A>();
-</PRE></UL>
-
-<P>The resulting program will display the window in Figure 2-1.
-You can quit the program by closing the window or pressing the
-<KBD>ESC</KBD>ape key.</P>
-
-<P ALIGN="CENTER"><IMG src="hello.C.gif" alt="Hello, World! Window"><BR>
-<I>Figure 2-1: The Hello, World! Window</I></P>
-
-<H3>Creating the Widgets</H3>
-
-<P>The widgets are created using the C++ <TT>new</TT> operator. For
-most widgets the arguments to the constructor are:</P>
-
-<UL><PRE>
-Fl_Widget(x, y, width, height, label)
-</PRE></UL>
-
-<P>The <TT>x</TT> and <TT>y</TT> parameters determine where the
-widget or window is placed on the screen. In FLTK the top left
-corner of the window or screen is the origin (i.e. x = 0, y =
-0) and the units are in pixels.</P>
-
-<P>The <TT>width</TT> and <TT>height</TT> parameters determine
-the size of the widget or window in pixels. The maximum widget
-size is typically governed by the underlying window system or
-hardware.</P>
-
-<P><tt>label</tt> is a pointer to a character string to label
-the widget with or <tt>NULL</tt>. If not specified the label
-defaults to <tt>NULL</tt>. The label string must be in static
-storage such as a string constant because FLTK does not make a
-copy of it - it just uses the pointer.</P>
-
-<H3>Creating Widget hierarchies</H3>
-
-<P>Widgets are commonly ordered into functional groups, which
-in turn may be grouped again, creating a hierarchy of widgets.
-FLTK makes it easy to fill groups by automatically adding all widgets
-that are created between a <tt>myGroup-&gt;begin()</tt> and
-<tt>myGroup-&gt;end()</tt>. In this example, <tt>myGroup</tt>
-would be the <i>current</i> group.</P>
-
-<P>Newly created groups and their derived widgets implicitly call
-<tt>begin()</tt> in the constructor, effectively adding all
-subsequently created widgets to itself until <tt>end()</tt>
-is called.</P>
-
-<P>Setting the current group to <tt>NULL</tt> will stop automatic
-hierarchies. New widgets can now be added manually using
-<tt>Fl_Group::add(...)</tt> and <tt>Fl_Group::insert(...)</tt>.</P>
-
-<H3>Get/Set Methods</H3>
-
-<P><tt>box-&gt;box(FL_UP_BOX)</tt> sets the type of box the
-Fl_Box draws, changing it from the default of
-<tt>FL_NO_BOX</tt>, which means that no box is drawn. In our
-&quot;Hello, World!&quot; example we use <TT>FL_UP_BOX</TT>,
-which means that a raised button border will be drawn around
-the widget. You can learn more about boxtypes in
-<A href="common.html#boxtypes">Chapter 3</A>.</P>
-
-<P>You could examine the boxtype in by doing
-<tt>box-&gt;box()</tt>. FLTK uses method name overloading to make
-short names for get/set methods. A "set" method is always of
-the form "void&nbsp;name(type)", and a "get" method is always
-of the form "type&nbsp;name()&nbsp;const".</P>
-
-<H3>Redrawing After Changing Attributes</H3>
-
-<P>Almost all of the set/get pairs are very fast, short inline
-functions and thus very efficient. However, <i>the "set" methods
-do not call <TT>redraw()</TT></i> - you have to call it
-yourself. This greatly reduces code size and execution time. The
-only common exceptions are <tt>value()</tt> which calls
-<TT>redraw()</TT> and <tt>label()</tt> which calls
-<TT>redraw_label()</TT> if necessary.</P>
-
-<H3>Labels</H3>
-
-<P>All widgets support labels. In the case of window widgets,
-the label is used for the label in the title bar. Our example
-program calls the <A href=Fl_Widget.html#Fl_Widget.labelfont>
-<TT>labelfont</TT></A>,
-<A href=Fl_Widget.html#Fl_Widget.labelsize><TT> labelsize</TT></A>,
-and <A href=Fl_Widget.html#Fl_Widget.labeltype><TT>labeltype</TT></A>
-methods.</P>
-
-<P>The <TT>labelfont</TT> method sets the typeface and style
-that is used for the label, which for this example we are using
-<TT>FL_BOLD</TT> and <TT>FL_ITALIC</TT>. You can also specify
-typefaces directly. </P> <P>The <TT>labelsize</TT> method sets
-the height of the font in pixels. </P> <P>The <TT>labeltype</TT>
-method sets the type of label. FLTK supports normal, embossed,
-and shadowed labels internally, and more types can be added as
-desired.</P>
-
-<P>A complete list of all label options can be found in
-<A href="common.html#labels">Chapter 3</A>.</P>
-
-<H3>Showing the Window</H3>
-
-<P>The <TT>show()</TT> method shows the widget or window. For windows
-you can also provide the command-line arguments to allow users to
-customize the appearance, size, and position of your windows.</P>
-
-<H3>The Main Event Loop</H3>
-
-<P>All FLTK applications (and most GUI applications in general)
-are based on a simple event processing model. User actions such
-as mouse movement, button clicks, and keyboard activity generate
-events that are sent to an application. The application may then
-ignore the events or respond to the user, typically by redrawing
-a button in the "down" position, adding the text to an input
-field, and so forth.</P>
-
-<P>FLTK also supports idle, timer, and file pseudo-events that
-cause a function to be called when they occur. Idle functions
-are called when no user input is present and no timers or files
-need to be handled - in short, when the application is not doing
-anything. Idle callbacks are often used to update a 3D display
-or do other background processing.</P>
-
-<P>Timer functions are called after a specific amount of time
-has expired. They can be used to pop up a progress dialog after
-a certain amount of time or do other things that need to happen
-at more-or-less regular intervals. FLTK timers are not 100%
-accurate, so they should not be used to measure time intervals,
-for example.</P>
-
-<P>File functions are called when data is ready to read or
-write, or when an error condition occurs on a file. They are
-most often used to monitor network connections (sockets) for
-data-driven displays.</P>
-
-<P>FLTK applications must periodically check
-(<TT>Fl::check()</TT>) or wait (<TT>Fl::wait()</TT>) for events
-or use the <A href="Fl.html#Fl.run"><TT>Fl::run()</TT></A>
-method to enter a standard event processing loop. Calling
-<TT>Fl::run()</TT> is equivalent to the following code:</P>
-
-<UL><PRE>
-while (Fl::wait());
-</PRE></UL>
-
-<P><TT>Fl::run()</TT> does not return until all of the windows
-under FLTK control are closed by the user or your program.</P>
-
-<H2>Compiling Programs with Standard Compilers</H2>
-
-<P>Under UNIX (and under Microsoft Windows when using the GNU development
-tools) you will probably need to tell the compiler where to find the
-header files. This is usually done using the <TT>-I</TT> option:</P>
-
-<UL><PRE>
-CC -I/usr/local/include ...
-gcc -I/usr/local/include ...
-</PRE></UL>
-
-<P>The <TT>fltk-config</TT> script included with FLTK can be
-used to get the options that are required by your compiler:</P>
-
-<UL><PRE>
-CC `fltk-config --cxxflags` ...
-</PRE></UL>
-
-<P>Similarly, when linking your application you will need to tell the
-compiler to use the FLTK library:</P>
-
-<UL><PRE>
-CC ... -L/usr/local/lib -lfltk -lXext -lX11 -lm
-gcc ... -L/usr/local/lib -lfltk -lXext -lX11 -lm
-</PRE></UL>
-
-<P>Aside from the "fltk" library, there is also a "fltk_forms"
-library for the XForms compatibility classes, "fltk_gl" for the
-OpenGL and GLUT classes, and "fltk_images" for the image file
-classes, <A
-HREF="Fl_Help_Dialog.html#Fl_Help_Dialog"><CODE>Fl_Help_Dialog</CODE></A>
-widget, and system icon support.
-
-<CENTER><TABLE WIDTH="80%" BORDER="1" CELLPADDING="10" BGCOLOR="#cccccc">
-<TR>
- <TD><B>Note:</B>
- <P>The libraries are named "fltk.lib", "fltkgl.lib", "fltkforms.lib",
- and "fltkimages.lib", respectively under Windows.
- </TD>
-</TR>
-</TABLE></CENTER>
-
-<P>As before, the <TT>fltk-config</TT> script included with FLTK can be
-used to get the options that are required by your linker:</P>
-
-<UL><PRE>
-CC ... `fltk-config --ldflags`
-</PRE></UL>
-
-<!-- NEED 2in -->
-
-<P>The forms, GL, and images libraries are included with the "--use-foo"
-options, as follows:
-
-<UL><PRE>
-CC ... `fltk-config --use-forms --ldflags`
-CC ... `fltk-config --use-gl --ldflags`
-CC ... `fltk-config --use-images --ldflags`
-CC ... `fltk-config --use-forms --use-gl --use-images --ldflags`
-</PRE></UL>
-
-<P>Finally, you can use the <TT>fltk-config</TT> script to
-compile a single source file as a FLTK program:
-
-<UL><PRE>
-fltk-config --compile filename.cpp
-fltk-config --use-forms --compile filename.cpp
-fltk-config --use-gl --compile filename.cpp
-fltk-config --use-images --compile filename.cpp
-fltk-config --use-forms --use-gl --use-images --compile filename.cpp
-</PRE></UL>
-
-<P>Any of these will create an executable named <TT>filename</TT>.
-
-<H2>Compiling Programs with Microsoft Visual C++</H2>
-
-<P>In Visual C++ you will need to tell the compiler where to
-find the FLTK header files. This can be done by selecting
-&quot;Settings&quot; from the &quot;Project&quot; menu and then
-changing the &quot;Preprocessor&quot; settings under the
-&quot;C/C++&quot; tab. You will also need to add the FLTK and
-WinSock (WSOCK32.LIB) libraries to the &quot;Link&quot;
-settings.</P>
-
-<P>You can build your Microsoft Windows applications as Console or
-WIN32 applications. If you want to use the standard C <TT>main()</TT>
-function as the entry point, FLTK includes a <TT>WinMain()</TT>
-function that will call your <TT>main()</TT> function for you.</P>
-
-<P><I>Note: The Visual C++ 5.0 optimizer is known to cause problems with
-many programs. We only recommend using the &quot;Favor Small Code&quot;
-optimization setting.</I> The Visual C++ 6.0 optimizer seems to be much
-better and can be used with the "optimized for speed" setting.</P>
-
-<H2>Naming</H2>
-
-<P>All public symbols in FLTK start with the characters 'F' and 'L':</P>
-
-<UL>
-
- <LI>Functions are either <TT>Fl::foo()</TT> or
- <TT>fl_foo()</TT>.</LI>
-
- <LI>Class and type names are capitalized:
- <TT>Fl_Foo</TT>.</LI>
-
- <LI><A href="enumerations.html">Constants and
- enumerations</A> are uppercase: <TT>FL_FOO</TT>.</LI>
-
- <LI>All header files start with <TT>&lt;FL/...&gt;</TT>.
- </LI>
-
-</UL>
-
-<!-- NEED 5in -->
-
-<H2>Header Files</H2>
-
-<P>The proper way to include FLTK header files is:</P>
-
-<UL><PRE>
-#include &lt;FL/Fl_xyz.H&gt;
-</PRE></UL>
-
-<CENTER><TABLE BORDER="1" CELLPADDING="10" BGCOLOR="#cccccc">
-<TR>
- <TD><B>Note:</B>
-
- <P>Case <I>is</I> significant on many operating systems,
- and the C standard uses the forward slash (/) to
- separate directories. <i>Do not use any of the following
- include lines:</i></P>
-
- <UL><PRE>
- #include &lt;FL\Fl_xyz.H&gt;
- #include &lt;fl/fl_xyz.h&gt;
- #include &lt;Fl/fl_xyz.h&gt;
- </PRE></UL>
-
- </TD>
-</TR>
-</TABLE></CENTER>
-
-</BODY>
-</HTML>
diff --git a/documentation/common.html b/documentation/common.html
deleted file mode 100644
index 6462bc24f..000000000
--- a/documentation/common.html
+++ /dev/null
@@ -1,672 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>3 - Common Widgets and Attributes</TITLE>
-</HEAD>
-<BODY>
-
-<H1 ALIGN="RIGHT"><A NAME="common">3 - Common Widgets and Attributes</A></H1>
-
-<P>This chapter describes many of the widgets that are provided
-with FLTK and covers how to query and set the standard
-attributes.</P>
-
-<H2>Buttons</H2>
-
-<P>FLTK provides many types of buttons:</P>
-
-<UL>
-
- <LI><A HREF="Fl_Button.html"><TT>Fl_Button</TT></A> - A
- standard push button.</LI>
-
- <LI><A HREF="Fl_Check_Button.html"><TT>Fl_Check_Button</TT></A> -
- A button with a check box.</LI>
-
- <LI><A HREF="Fl_Light_Button.html"><TT>Fl_Light_Button</TT></A> -
- A push button with a light.</LI>
-
- <LI><A HREF="Fl_Repeat_Button.html"><TT>Fl_Repeat_Button</TT></A> -
- A push button that repeats when held.</LI>
-
- <LI><A HREF="Fl_Return_Button.html"><TT>Fl_Return_Button</TT></A> -
- A push button that is activated by the <KBD>Enter</KBD> key.</LI>
-
- <LI><A HREF="Fl_Round_Button.html"><TT>Fl_Round_Button</TT></A> -
- A button with a radio circle.</LI>
-
-</UL>
-
-<P ALIGN="CENTER"><IMG SRC="buttons.gif" ALT="FLTK Buttons"><BR>
-Figure 3-1: FLTK Button Widgets</P>
-
-<P>All of these buttons just need the corresponding
-<TT>&lt;FL/Fl_xyz_Button.H&gt;</TT> header file. The constructor
-takes the bounding box of the button and optionally a label
-string:</P>
-
-<UL><PRE>
-Fl_Button *button = new Fl_Button(x, y, width, height, &quot;label&quot;);
-Fl_Light_Button *lbutton = new Fl_Light_Button(x, y, width, height);
-Fl_Round_Button *rbutton = new Fl_Round_Button(x, y, width, height, &quot;label&quot;);
-</PRE></UL>
-
-<P>Each button has an associated
-<A href="Fl_Button.html#Fl_Button.type"><TT>type()</TT></A>
-which allows it to behave as a push button, toggle button, or
-radio button:</P>
-
-<UL><PRE>
-button-&gt;type(FL_NORMAL_BUTTON);
-lbutton-&gt;type(FL_TOGGLE_BUTTON);
-rbutton-&gt;type(FL_RADIO_BUTTON);
-</PRE></UL>
-
-<P>For toggle and radio buttons, the
-<A href="Fl_Button.html#Fl_Button.value"><TT>value()</TT></A>
-method returns the current button state (0 = off, 1 = on). The
-<A href="Fl_Button.html#Fl_Button.set"><TT>set()</TT></A> and
-<A href="Fl_Button.html#Fl_Button.clear"><TT>clear()</TT></A>
-methods can be used on toggle buttons to turn a toggle button
-on or off, respectively. Radio buttons can be turned on with
-the
-<A href="Fl_Button.html#Fl_Button.setonly"><TT>setonly()</TT></A>
-method; this will also turn off other radio buttons in the same
-group.</P>
-
-<H2>Text</H2>
-
-<P>FLTK provides several text widgets for displaying and receiving text:</P>
-
-<UL>
-
- <LI><A HREF="Fl_Input.html"><TT>Fl_Input</TT></A> - A
- one-line text input field.</LI>
-
- <LI><A HREF="Fl_Output.html"><TT>Fl_Output</TT></A> - A
- one-line text output field.</LI>
-
- <LI><A HREF="Fl_Multiline_Input.html"><TT>Fl_Multiline_Input</TT></A>
- - A multi-line text input field. </LI>
-
- <LI><A HREF="Fl_Multiline_Output.html"><TT>Fl_Multiline_Output</TT></A>
- - A multi-line text output field.</LI>
-
- <LI><A HREF="Fl_Text_Display.html"><TT>Fl_Text_Display</TT></A>
- - A multi-line text display widget.</LI>
-
- <LI><A HREF="Fl_Text_Editor.html"><TT>Fl_Text_Editor</TT></A> -
- A multi-line text editing widget. </LI>
-
- <LI><A HREF="Fl_Help_View.html"><TT>Fl_Help_View</TT></A> - A
- HTML text display widget.</LI>
-
-</UL>
-
-<P>The <TT>Fl_Output</TT> and <TT>Fl_Multiline_Output</TT>
-widgets allow the user to copy text from the output field but
-not change it.</P>
-
-<P>The <A href="Fl_Input.html#Fl_Input.value"><TT>value()</TT></A>
-method is used to get or set the string that is displayed:</P>
-
-<UL><PRE>
-Fl_Input *input = new Fl_Input(x, y, width, height, &quot;label&quot;);
-input-&gt;value(&quot;Now is the time for all good men...&quot;);
-</PRE></UL>
-
-<P>The string is copied to the widget's own storage when you set
-the <tt>value()</tt> of the widget.</P>
-
-<P>The <TT>Fl_Text_Display</TT> and <TT>Fl_Text_Editor</TT>
-widgets use an associated <TT>Fl_Text_Buffer</TT> class for the
-value, instead of a simple string.</P>
-
-<!-- NEED 4in -->
-
-<H2>Valuators</H2>
-
-<P>Unlike text widgets, valuators keep track of numbers instead of
-strings. FLTK provides the following valuators:</P>
-
-<UL>
-
- <LI><A HREF="Fl_Counter.html"><TT>Fl_Counter</TT></A> - A widget with arrow buttons that shows the
- current value. </LI>
-
- <LI><A HREF="Fl_Dial.html"><TT>Fl_Dial</TT></A> - A round knob. </LI>
-
- <LI><A HREF="Fl_Roller.html"><TT>Fl_Roller</TT></A> - An SGI-like dolly widget. </LI>
-
- <LI><A HREF="Fl_Scrollbar.html"><TT>Fl_Scrollbar</TT></A> - A standard scrollbar widget. </LI>
-
- <LI><A HREF="Fl_Slider.html"><TT>Fl_Slider</TT></A> - A scrollbar with a knob. </LI>
-
- <LI><A HREF="Fl_Value_Slider.html"><TT>Fl_Value_Slider</TT></A> - A slider that shows the current value. </LI>
-
-</UL>
-
-<P ALIGN="CENTER"><IMG SRC="valuators.gif" ALT="FLTK Valuators"><BR>
-<I>Figure 3-2: FLTK valuator widgets</I></P>
-
-<P>The <A href="Fl_Valuator.html#Fl_Valuator.value"><TT>value()</TT></A>
-method gets and sets the current value of the widget. The
-<A href="Fl_Valuator.html#Fl_Valuator.minimum"><TT>minimum()</TT></A>
-and <A href="Fl_Valuator.html#Fl_Valuator.maximum"><TT>maximum()</TT></A>
-methods set the range of values that are reported by the
-widget.</P>
-
-<!-- NEED 5in -->
-
-<H2>Groups</H2>
-
-<P>The <TT>Fl_Group</TT> widget class is used as a general
-purpose &quot;container&quot; widget. Besides grouping radio
-buttons, the groups are used to encapsulate windows, tabs, and
-scrolled windows. The following group classes are available
-with FLTK:</P>
-
-<UL>
-
- <LI><A HREF="Fl_Double_Window.html"><TT>Fl_Double_Window</TT></A> - A double-buffered window on the screen. </LI>
-
- <LI><A HREF="Fl_Gl_Window.html"><TT>Fl_Gl_Window</TT></A> - An OpenGL window on the screen. </LI>
-
- <LI><A HREF="Fl_Group.html"><TT>Fl_Group</TT></A> - The base container class; can be used to group
- any widgets together. </LI>
-
- <LI><A HREF="Fl_Pack.html"><TT>Fl_Pack</TT></A> - A collection of widgets that are packed into the group area.</LI>
-
- <LI><A HREF="Fl_Scroll.html"><TT>Fl_Scroll</TT></A> - A scrolled window area. </LI>
-
- <LI><A HREF="Fl_Tabs.html"><TT>Fl_Tabs</TT></A> - Displays child widgets as tabs. </LI>
-
- <LI><A HREF="Fl_Tile.html"><TT>Fl_Tile</TT></A> - A tiled window area.</LI>
-
- <LI><A HREF="Fl_Window.html"><TT>Fl_Window</TT></A> - A window on the screen. </LI>
-
-</UL>
-
-<H2>Setting the Size and Position of Widgets</H2>
-
-<P>The size and position of widgets is usually set when you
-create them. You can access them with the <tt>x()</tt>,
-<tt>y()</tt>, <tt>w()</tt>, and <tt>h()</tt> methods.</P>
-
-<P>You can change the size and position by using the
-<TT>position()</TT>, <TT> resize()</TT>, and <TT>size()</TT>
-methods:</P>
-
-<UL><PRE>
-button-&gt;position(x, y);
-group-&gt;resize(x, y, width, height);
-window-&gt;size(width, height);
-</PRE></UL>
-
-<P>If you change a widget's size or position after it is
-displayed you will have to call <tt>redraw()</tt> on the
-widget's parent.</P>
-
-<H2><A NAME="colors">Colors</A></H2>
-
-<P>FLTK stores the colors of widgets as an 32-bit unsigned
-number that is either an index into a color palette of 256
-colors or a 24-bit RGB color. The color palette is <i>not</i>
-the X or WIN32 colormap, but instead is an internal table with
-fixed contents.</P>
-
-<P>There are symbols for naming some of the more common colors:</P>
-
-<UL>
- <LI><TT>FL_BLACK</TT></LI>
-
- <LI><TT>FL_RED</TT></LI>
-
- <LI><TT>FL_GREEN</TT></LI>
-
- <LI><TT>FL_YELLOW</TT></LI>
-
- <LI><TT>FL_BLUE</TT></LI>
-
- <LI><TT>FL_MAGENTA</TT></LI>
-
- <LI><TT>FL_CYAN</TT></LI>
-
- <LI><TT>FL_WHITE</TT></LI>
-</UL>
-
-<P>These symbols are the default colors for all FLTK widgets. They are
-explained in more detail in the chapter
-<A HREF="enumerations.html#colors">Enumerations</A></P>
-
-<UL>
- <LI><TT>FL_FOREGROUND_COLOR</TT> </LI>
-
- <LI><TT>FL_BACKGROUND_COLOR</TT> </LI>
-
- <LI><TT>FL_INACTIVE_COLOR</TT> </LI>
-
- <LI><TT>FL_SELECTION_COLOR</TT> </LI>
-</UL>
-
-<P>RGB colors can be set using the <A HREF="functions.html#fl_rgb_color"><TT>fl_rgb_color()</TT></A>
-function:</P>
-
-<UL><PRE>
-Fl_Color c = fl_rgb_color(85, 170, 255);
-</PRE></UL>
-
-<P>The widget color is set using the <TT>color()</TT> method:</P>
-
-<UL><PRE>
-button-&gt;color(FL_RED);
-</PRE></UL>
-
-<P>Similarly, the label color is set using the <TT>labelcolor()</TT>
-method:</P>
-
-<UL><PRE>
-button-&gt;labelcolor(FL_WHITE);
-</PRE></UL>
-
-<H2><A NAME="boxtypes">Box Types</A></H2>
-
-<P>The type <TT>Fl_Boxtype</TT> stored and returned in
-<A href="Fl_Widget.html#Fl_Widget.box"><TT>Fl_Widget::box()</TT></A>
-is an enumeration defined in <A href="enumerations.html#Enumerations"><TT>&lt;Enumerations.H&gt;</TT></A>.
-Figure 3-3 shows the standard box types included with FLTK.</P>
-
-<P ALIGN="CENTER"><IMG src="boxtypes.gif" ALT="FLTK Box Types"><BR>
-<I>Figure 3-3: FLTK box types</I></P>
-
-<P><TT>FL_NO_BOX</TT> means nothing is drawn at all, so whatever is
-already on the screen remains. The <TT>FL_..._FRAME</TT> types only
-draw their edges, leaving the interior unchanged. The blue color in
-Figure 3-3 is the area that is not drawn by the frame types.</P>
-
-<H3>Making Your Own Boxtypes</H3>
-
-<P>You can define your own boxtypes by making a small function that draws
-the box and adding it to the table of boxtypes.</P>
-
-<CENTER><TABLE WIDTH="80%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>Note:</B>
- <P>This interface has changed in FLTK 2.0!</P>
- </TD>
-</TR>
-</TABLE></CENTER>
-
-<H4>The Drawing Function</H4>
-
-<P>The drawing function is passed the bounding box and background color
-for the widget:</P>
-
-<UL><PRE>
-void xyz_draw(int x, int y, int w, int h, Fl_Color c) {
-...
-}
-</PRE></UL>
-
-<!-- NEED 3in -->
-
-<P>A simple drawing function might fill a rectangle with the
-given color and then draw a black outline:</P>
-
-<UL><PRE>
-void xyz_draw(int x, int y, int w, int h, Fl_Color c) {
- fl_color(c);
- fl_rectf(x, y, w, h);
- fl_color(FL_BLACK);
- fl_rect(x, y, w, h);
-}
-</PRE></UL>
-
-<H4><A name="fl_down">Fl_Boxtype fl_down(Fl_Boxtype)</A></H4>
-
-<P><tt>fl_down</tt> returns the "pressed" or "down" version of a box.
-If no "down" version of a given box exists, the behavior of this function
-is undefined and some random box or frame is returned.
-See also: <A HREF="drawing.html#fl_frame">fl_frame drawing</A>.
-
-<H4><A name="fl_frame">Fl_Boxtype fl_frame(Fl_Boxtype)</A></H4>
-
-<P><tt>fl_frame</tt> returns the unfilled, frame-only version of a box.
-If no frame version of a given box exists, the behavior of this function
-is undefined and some random box or frame is returned.
-See also: <A HREF="drawing.html#fl_frame">fl_frame drawing</A>.
-
-<H4><A name="fl_box">Fl_Boxtype fl_box(Fl_Boxtype)</A></H4>
-
-<P><tt>fl_box</tt> returns the filled version of a frame.
-If no filled version of a given frame exists, the behavior of this function
-is undefined and some random box or frame is returned.
-See also: <TT><A HREF="#fl_frame">fl_frame</A></TT>.
-
-<H4>Adding Your Box Type</H4>
-
-<P>The <TT>Fl::set_boxtype()</TT> method adds or replaces the
-specified box type:</P>
-
-<UL><PRE>
-#define XYZ_BOX FL_FREE_BOXTYPE
-
-Fl::set_boxtype(XYZ_BOX, xyz_draw, 1, 1, 2, 2);
-</PRE></UL>
-
-<P>The last 4 arguments to <TT>Fl::set_boxtype()</TT> are the
-offsets for the x, y, width, and height values that should be
-subtracted when drawing the label inside the box.</P>
-
-<P>A complete box design contains four box types in this order:
-a filled, neutral box (<TT>UP_BOX</TT>), a filled, depressed box
-(<TT>DOWN_BOX</TT>), and the same as outlines only (<TT>UP_FRAME</TT>
-and <TT>DOWN_FRAME</TT>). The function
-<TT><A HREF="#fl_down">fl_down(Fl_Boxtype)</A></TT>
-expects the neutral design on a boxtype with a numerical
-value evenly divideable by two.
-<TT><A HREF="#fl_frame">fl_frame(Fl_Boxtype)</A></TT>
-expects the <TT>UP_BOX</TT> design at a value divideable by four.</P>
-
-<H2><A NAME="labels">Labels and Label Types</A></H2>
-
-<P>The <TT>label()</TT>, <TT>align()</TT>, <TT>labelfont()</TT>,
-<TT>labelsize()</TT>, <TT>labeltype()</TT>, <TT>image()</TT>, and
-<TT>deimage()</TT> methods control the labeling of widgets.</P>
-
-<H3>label()</H3>
-
-<P>The <TT>label()</TT> method sets the string that is displayed
-for the label. Symbols can be included with the label string by
-escaping them using the "@" symbol - "@@" displays a single at
-sign. Figure 3-4 shows the available symbols.</P>
-
-<P ALIGN="CENTER"><A name="symbols"><IMG src="symbols.gif" ALT="FLTK Symbols"><BR>
-<I>Figure 3-4: FLTK label symbols</I></A></P>
-
-<!-- NEED 2in -->
-
-<P>The @ sign may also be followed by the following optional
-&quot;formatting&quot; characters, in this order:</P>
-
-<UL>
-
- <LI>'#' forces square scaling, rather than distortion to
- the widget's shape.</LI>
-
- <LI>+[1-9] or -[1-9] tweaks the scaling a little bigger
- or smaller.</LI>
-
- <LI>'$' flips the symbol horizontaly, '%' flips it verticaly.</LI>
-
- <LI>[0-9] - rotates by a multiple of 45 degrees. '5' and
- '6' do no rotation while the others point in the
- direction of that key on a numeric keypad. '0', followed by four
- more digits rotates the symbol by that amount in degrees.</LI>
-
-</UL>
-
-<P>Thus, to show a very large arrow pointing downward you would use the
-label string "@+92-&gt;".
-
-<H3>align()</H3>
-
-<P>The <TT>align()</TT> method positions the label. The following
-constants are defined and may be OR'd together as needed:</P>
-
-<UL>
-
- <LI><TT>FL_ALIGN_CENTER</TT> - center the label in the widget.</LI>
-
- <LI><TT>FL_ALIGN_TOP</TT> - align the label at the top of the widget.</LI>
-
- <LI><TT>FL_ALIGN_BOTTOM</TT> - align the label at the bottom of the
- widget.</LI>
-
- <LI><TT>FL_ALIGN_LEFT</TT> - align the label to the left of the widget.</LI>
-
- <LI><TT>FL_ALIGN_RIGHT</TT> - align the label to the right of the
- widget.</LI>
-
- <LI><TT>FL_ALIGN_INSIDE</TT> - align the label inside the widget.</LI>
-
- <LI><TT>FL_ALIGN_CLIP</TT> - clip the label to the widget's bounding
- box.</LI>
-
- <LI><TT>FL_ALIGN_WRAP</TT> - wrap the label text as needed.</LI>
-
- <LI><TT>FL_TEXT_OVER_IMAGE</TT> - show the label text over the image.</LI>
-
- <LI><TT>FL_IMAGE_OVER_TEXT</TT> - show the label image over the text (default).</LI>
-
-</UL>
-
-<H3><A NAME="labeltypes">labeltype()</A></H3>
-
-<P>The <TT>labeltype()</TT> method sets the type of the label. The
-following standard label types are included:</P>
-
-<UL>
-
- <LI><TT>FL_NORMAL_LABEL</TT> - draws the text.</LI>
-
- <LI><TT>FL_NO_LABEL</TT> - does nothing.</LI>
-
- <LI><TT>FL_SHADOW_LABEL</TT> - draws a drop shadow under
- the text.</LI>
-
- <LI><TT>FL_ENGRAVED_LABEL</TT> - draws edges as though
- the text is engraved.</LI>
-
- <LI><TT>FL_EMBOSSED_LABEL</TT> - draws edges as thought
- the text is raised.</LI>
-
- <LI><TT>FL_ICON_LABEL</TT> - draws the icon associated
- with the text.</LI>
-
-</UL>
-
-<H3>image() and deimage()</H3>
-
-<P>The <TT>image()</TT> and <TT>deimage()</TT> methods set an image that
-will be displayed with the widget. The <TT>deimage()</TT> method sets the
-image that is shown when the widget is inactive, while the <TT>image()</TT>
-method sets the image that is shown when the widget is active.</P>
-
-<P>To make an image you use a subclass of
-<A HREF="drawing.html#Fl_Image"><TT>Fl_Image</TT></A>.</P>
-
-<H4>Making Your Own Label Types</H4>
-
-<P>Label types are actually indexes into a table of functions
-that draw them. The primary purpose of this is to use this to
-draw the labels in ways inaccessible through the
-<TT>fl_font</TT> mechanisim (e.g. <TT>FL_ENGRAVED_LABEL</TT>) or
-with program-generated letters or symbology.</P>
-
-<CENTER><TABLE WIDTH="80%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>Note:</B>
- <P>This interface has changed in FLTK 2.0!</P>
- </TD>
-</TR>
-</TABLE></CENTER>
-
-<H5>Label Type Functions</H5>
-
-<P>To setup your own label type you will need to write two
-functions: one to draw and one to measure the label. The draw
-function is called with a pointer to a <TT>Fl_Label</TT>
-structure containing the label information, the bounding box for
-the label, and the label alignment:</P>
-
-<UL><PRE>
-void xyz_draw(const Fl_Label *label, int x, int y, int w, int h, Fl_Align align) {
-...
-}
-</PRE></UL>
-
-<P>The label should be drawn <I>inside</I> this bounding box,
-even if <TT>FL_ALIGN_INSIDE</TT> is not enabled. The function
-is not called if the label value is <TT>NULL</TT>.</P>
-
-<P>The measure function is called with a pointer to a
-<TT>Fl_Label</TT> structure and references to the width and
-height:</P>
-
-<UL><PRE>
-void xyz_measure(const Fl_Label *label, int &amp;w, int &amp;h) {
-...
-}
-</PRE></UL>
-
-<P>The function should measure the size of the label and set
-<TT>w</TT> and <TT>h</TT> to the size it will occupy.</P>
-
-<H5>Adding Your Label Type</H5>
-
-<P>The <TT>Fl::set_labeltype</TT> method creates a label type
-using your draw and measure functions:</P>
-
-<UL><PRE>
-#define XYZ_LABEL FL_FREE_LABELTYPE
-
-Fl::set_labeltype(XYZ_LABEL, xyz_draw, xyz_measure);
-</PRE></UL>
-
-<P>The label type number <TT>n</TT> can be any integer value
-starting at the constant <TT>FL_FREE_LABELTYPE</TT>. Once you
-have added the label type you can use the <TT>labeltype()</TT>
-method to select your label type.</P>
-
-<P>The <TT>Fl::set_labeltype</TT> method can also be used to overload
-an existing label type such as <TT>FL_NORMAL_LABEL</TT>.</P>
-
-<H4><A NAME="add_symbol">Making your own symbols</A></H4>
-
-<P>It is also possible to define your own drawings and add
-them to the symbol list, so they can be rendered as part of
-any label.</P>
-
-<P>To create a new symbol, you implement a drawing function
-<tt>void drawit(Fl_Color c)</tt> which typically uses the
-<a href="drawing.html#complex">complex drawing functions</a>
-to generate a vector shape inside a two-by-two units sized box
-around the origin. This function is then linked into the symbols
-table using <tt>fl_add_symbol</tt>:</P>
-
-<UL><PRE>
-<A NAME="fl_add_symbol">int fl_add_symbol(const char *name, void (*drawit)(Fl_Color), int scalable)</A>
-</PRE></UL>
-
-<P><i>name</i> is the name of the symbol without the "@"; <i>scalable</I>
-must be set to 1 if the symbol is generated using scalable vector drawing
-functions.</P>
-
-<UL><PRE>
-<A NAME="fl_draw_symbol">int fl_draw_symbol(const char *name,int x,int y,int w,int h,Fl_Color col)</A>
-</PRE></UL>
-
-<P>This function draw a named symbol fitting the given rectangle.
-
-<H2>Callbacks</H2>
-
-<P>Callbacks are functions that are called when the value of a
-widget changes. A callback function is sent a <TT>Fl_Widget</TT>
-pointer of the widget that changed and a pointer to data that
-you provide:</P>
-
-<UL><PRE>
-void xyz_callback(Fl_Widget *w, void *data) {
-...
-}
-</PRE></UL>
-
-<P>The <TT>callback()</TT> method sets the callback function for a
-widget. You can optionally pass a pointer to some data needed for the
-callback:</P>
-
-<UL><PRE>
-int xyz_data;
-
-button-&gt;callback(xyz_callback, &amp;xyz_data);
-</PRE></UL>
-
-<P>Normally callbacks are performed only when the value of the
-widget changes. You can change this using the
-<A href="Fl_Widget.html#Fl_Widget.when"><TT>when()</TT></A>
-method:</P>
-
-<UL><PRE>
-button-&gt;when(FL_WHEN_NEVER);
-button-&gt;when(FL_WHEN_CHANGED);
-button-&gt;when(FL_WHEN_RELEASE);
-button-&gt;when(FL_WHEN_RELEASE_ALWAYS);
-button-&gt;when(FL_WHEN_ENTER_KEY);
-button-&gt;when(FL_WHEN_ENTER_KEY_ALWAYS);
-button-&gt;when(FL_WHEN_CHANGED | FL_WHEN_NOT_CHANGED);
-</PRE></UL>
-
-<CENTER><TABLE WIDTH="80%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>Note:</B>
-
- <P>You cannot delete a widget inside a callback, as the
- widget may still be accessed by FLTK after your callback
- is completed. Instead, use the <a
- href='Fl.html#Fl.delete_widget'><tt>Fl::delete_widget()</tt></a>
- method to mark your widget for deletion when it is safe
- to do so.</p>
-
- <p><B>Hint:</B>
-
- <P>Many programmers new to FLTK or C++ try to use a
- non-static class method instead of a static class method
- or function for their callback. Since callbacks are done
- outside a C++ class, the <TT>this</TT> pointer is not
- initialized for class methods.</P>
-
- <P>To work around this problem, define a static method
- in your class that accepts a pointer to the class, and
- then have the static method call the class method(s) as
- needed. The data pointer you provide to the
- <TT>callback()</TT> method of the widget can be a
- pointer to the instance of your class.</P>
-
-<PRE>
-class Foo {
- void my_callback(Fl_Widget *w);
- static void my_static_callback(Fl_Widget *w, void *f) { ((Foo *)f)-&gt;my_callback(w); }
- ...
-}
-
-...
-
-w-&gt;callback(my_static_callback, (void *)this);
-</PRE>
- </TD>
-</TR>
-</TABLE></CENTER>
-
-<H2>Shortcuts</H2>
-
-<P>Shortcuts are key sequences that activate widgets such as
-buttons or menu items. The <TT>shortcut()</TT> method sets the
-shortcut for a widget:</P>
-
-<UL><PRE>
-button-&gt;shortcut(FL_Enter);
-button-&gt;shortcut(FL_SHIFT + 'b');
-button-&gt;shortcut(FL_CTRL + 'b');
-button-&gt;shortcut(FL_ALT + 'b');
-button-&gt;shortcut(FL_CTRL + FL_ALT + 'b');
-button-&gt;shortcut(0); // no shortcut
-</PRE></UL>
-
-<P>The shortcut value is the key event value - the ASCII value
-or one of the special keys like
-<a href="enumerations.html#key_values"><TT>FL_Enter</TT></a> -
-combined with any modifiers like <KBD>Shift</KBD>,
-<KBD>Alt</KBD>, and <KBD>Control</KBD>.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/drawing.html b/documentation/drawing.html
deleted file mode 100644
index 36d2e7736..000000000
--- a/documentation/drawing.html
+++ /dev/null
@@ -1,972 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>5 - Drawing Things in FLTK</TITLE>
-</HEAD>
-<BODY>
-
-<H1 ALIGN="RIGHT"><A NAME="drawing">5 - Drawing Things in FLTK</A></H1>
-
-<P>This chapter covers the drawing functions that are provided with FLTK.
-
-<H2>When Can You Draw Things in FLTK?</H2>
-
-<P>There are only certain places you can execute drawing code in FLTK.
-Calling these functions at other places will result in undefined
-behavior!
-
-<UL>
-
- <LI>The most common place is inside the virtual method
- <A
- href="subclassing.html#draw"><TT>Fl_Widget::draw()</TT></A>.
- To write code here, you must subclass one of the
- existing <TT>Fl_Widget</TT> classes and implement your
- own version of <TT>draw()</TT>.</LI>
-
- <LI>You can also write <A
- href="common.html#boxtypes">boxtypes</A> and <A
- href="common.html#labeltypes">labeltypes</A>. These are
- small procedures that can be called by existing <A
- HREF="subclassing.html#draw"><TT>Fl_Widget::draw()</TT></A>
- methods. These &quot;types&quot; are identified by an
- 8-bit index that is stored in the widget's
- <TT>box()</TT>, <TT>labeltype()</TT>, and possibly other
- properties.</LI>
-
- <LI>You can call <A
- href="Fl_Window.html#Fl_Window.make_current"><TT>Fl_Window::make_current()</TT></A>
- to do incremental update of a widget. Use <A
- href=Fl_Widget.html#Fl_Widget.window><TT>Fl_Widget::window()</TT></A>
- to find the window.</LI>
-
-</UL>
-
-<H2>FLTK Drawing Functions</H2>
-
-<P>To use the drawing functions you must first include the
-<TT>&lt;FL/fl_draw.H&gt;</TT> header file. FLTK provides the
-following types of drawing functions:
-
-<UL>
-
- <LI><A href="#boxdraw">Boxes</A></LI>
-
- <LI><A href="#clipping">Clipping</A></LI>
-
- <LI><A href="#colors">Colors</A></LI>
-
- <LI><A href="#lines">Line dashes and thickness</A></LI>
-
- <LI><A href="#fast">Fast Shapes</A></LI>
-
- <LI><A href="#complex">Complex Shapes</A></LI>
-
- <LI><A href="#text">Text</A></LI>
-
- <LI><A href="#images">Images</A></LI>
-
- <LI><A href="#overlay">Overlay</A></LI>
-
- <LI><A href="#offscreen">Offscreen Drawing</A></LI>
-
-</UL>
-
-<H3><A name="boxdraw">Boxes</A></H3>
-
-<P>FLTK provides three functions that can be used to draw boxes
-for buttons and other UI controls. Each function uses the
-supplied upper-lefthand corner and width and height to determine
-where to draw the box.
-
-<H4><A NAME="fl_draw_box">void fl_draw_box(Fl_Boxtype b, int x, int y, int w, int h, Fl_Color c);</A></H4>
-
-<P>The first box drawing function is <CODE>fl_draw_box()</CODE>
-which draws a standard boxtype <CODE>c</CODE> in the specified
-color <CODE>c</CODE>.
-
-<H4><A NAME="fl_frame">void fl_frame(const char *s, int x, int y, int w, int h);</A></H4>
-
-<P>The <CODE>fl_frame()</CODE> function draws a series of line
-segments around the given box. The string <CODE>s</CODE> must
-contain groups of 4 letters which specify one of 24 standard
-grayscale values, where 'A' is black and 'X' is white. The order
-of each set of 4 characters is: top, left, bottom, right. The
-results of calling <CODE>fl_frame()</CODE> with a string that is
-not a multiple of 4 characters in length are undefined.
-
-<P>The only difference between this function and
-<CODE>fl_frame2()</CODE> is the order of the line segments.
-
-<P>See also: <A HREF="common.html#fl_frame">fl_frame boxtype</A>.
-
-<H4><A NAME="fl_frame2">void fl_frame2(const char *s, int x, int y, int w, int h);</A></H4>
-
-<P>The <CODE>fl_frame2()</CODE> function draws a series of line
-segments around the given box. The string <CODE>s</CODE> must
-contain groups of 4 letters which specify one of 24 standard
-grayscale values, where 'A' is black and 'X' is white. The order
-of each set of 4 characters is: bottom, right, top, left. The
-results of calling <CODE>fl_frame2()</CODE> with a string that is
-not a multiple of 4 characters in length are undefined.
-
-<P>The only difference between this function and
-<CODE>fl_frame()</CODE> is the order of the line segments.
-
-<H3><A name="clipping">Clipping</A></H3>
-
-<P>You can limit all your drawing to a rectangular region by calling
-<TT>fl_push_clip</TT>, and put the drawings back by using <TT>fl_pop_clip</TT>.
-This rectangle is measured in pixels and is unaffected by the current
-transformation matrix.
-
-<P>In addition, the system may provide clipping when updating windows
-which may be more complex than a simple rectangle.</P>
-
-<H4><A name="fl_push_clip">void fl_clip(int x, int y, int w, int h)</A><BR>
-void fl_push_clip(int x, int y, int w, int h)</H4>
-
-<P>Intersect the current clip region with a rectangle and push this new
-region onto the stack. The <CODE>fl_clip()</CODE> name is deprecated and
-will be removed from future releases.
-
-<H4><A NAME=fl_push_no_clip>void fl_push_no_clip()</A></H4>
-
-<P>Pushes an empty clip region on the stack so nothing will be clipped.
-
-<H4><A NAME=fl_pop_clip>void fl_pop_clip()</A></H4>
-
-<P>Restore the previous clip region.
-
-<CENTER><TABLE WIDTH="80%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>Note:</B>
-
- <P>You must call <TT>fl_pop_clip()</TT> once for every
- time you call <TT>fl_push_clip()</TT>. If you return to FLTK
- with the clip stack not empty unpredictable results
- occur.
-
- </TD>
-</TR>
-</TABLE></CENTER>
-
-<H4><A NAME=fl_not_clipped>int fl_not_clipped(int x, int y, int w, int h)</A></H4>
-
-<P>Returns non-zero if any of the rectangle intersects the current clip
-region. If this returns 0 you don't have to draw the object.
-
-<CENTER><TABLE WIDTH="80%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>Note:</B>
-
- <P>Under X this returns 2 if the rectangle is partially
- clipped, and 1 if it is entirely inside the clip region.
-
- </TD>
-</TR>
-</TABLE></CENTER>
-
-<H4><A NAME=fl_clip_box>int fl_clip_box(int x, int y, int w, int h, int &amp;X, int &amp;Y, int &amp;W,
-int &amp;H)</A></H4>
-
-<P>Intersect the rectangle <TT>x,y,w,h</TT> with the current
-clip region and returns the bounding box of the result in
-<TT>X,Y,W,H</TT>. Returns non-zero if the resulting rectangle is
-different than the original. This can be used to limit the
-necessary drawing to a rectangle. <TT>W</TT> and <TT>H</TT> are
-set to zero if the rectangle is completely outside the region.
-
-<H4><A NAME=fl_clip_region>void fl_clip_region(Fl_Region r)
-<BR>Fl_Region fl_clip_region()</A></H4>
-
-<P>Replace the top of the clip stack with a clipping region of any shape.
-Fl_Region is an operating system specific type. The second form returns
-the current clipping region.
-
-<H3><A name="colors">Colors</A></H3>
-
-<P>FLTK manages colors as 32-bit unsigned integers. Values from
-0 to 255 represent colors from the FLTK 1.0.x standard colormap
-and are allocated as needed on screens without TrueColor
-support. The <TT>Fl_Color</TT> enumeration type defines the
-standard colors and color cube for the first 256 colors. All of
-these are named with symbols in <A
-href="enumerations.html#colors"><TT>&lt;FL/Enumerations.H&gt;</TT></A>.
-
-<P>Color values greater than 255 are treated as 24-bit RGB
-values. These are mapped to the closest color supported by the
-screen, either from one of the 256 colors in the FLTK 1.0.x
-colormap or a direct RGB value on TrueColor screens. You can
-generate 24-bit RGB color values using the <A
-HREF="functions.html#fl_rgb_color"><TT>fl_rgb_color()</TT></A>
-function.
-
-<H4><A name="fl_color">void fl_color(Fl_Color)</A></H4>
-
-<P>Sets the color for all subsequent drawing operations.
-
-<P>For colormapped displays, a color cell will be allocated out
-of <TT>fl_colormap</TT> the first time you use a color. If the
-colormap fills up then a least-squares algorithm is used to find
-the closest color.</P>
-
-<H4>Fl_Color fl_color()</H4>
-
-<P>Returns the last <TT>fl_color()</TT> that was set. This can
-be used for state save/restore.
-
-<H4>void fl_color(uchar r, uchar g, uchar b)</H4>
-
-<P>Set the color for all subsequent drawing operations. The
-closest possible match to the RGB color is used. The RGB color
-is used directly on TrueColor displays. For colormap visuals the
-nearest index in the gray ramp or color cube is used.
-
-<h3><A name="lines">Line Dashes and Thickness</a></h3>
-
-<P>FLTK supports drawing of lines with different styles and
-widths. Full functionality is not available under Windows 95, 98,
-and Me due to the reduced drawing functionality these operating
-systems provide.
-
-<h4><A NAME="fl_line_style">void fl_line_style(int style, int width=0, char* dashes=0)</A></h4>
-
-<P>Set how to draw lines (the "pen"). If you change this it is your
-responsibility to set it back to the default with
-<tt>fl_line_style(0)</tt>.
-
-<CENTER><TABLE WIDTH="80%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>Note:</B>
-
- <P>Because of how line styles are implemented on WIN32
- systems, you <I>must</I> set the line style <I>after</I>
- setting the drawing color. If you set the color after
- the line style you will lose the line style settings!
-
- </TD>
-</TR>
-</TABLE></CENTER>
-
-<P><i>style</i> is a bitmask which is a bitwise-OR of the following
-values. If you don't specify a dash type you will get a solid
-line. If you don't specify a cap or join type you will get a
-system-defined default of whatever value is fastest.
-
-<ul>
-
- <li><tt>FL_SOLID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -------</tt>
-
- <li><tt>FL_DASH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - - - -</tt>
-
- <li><tt>FL_DOT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .......</tt>
-
- <li><tt>FL_DASHDOT&nbsp;&nbsp;&nbsp; - . - .</tt>
-
- <li><tt>FL_DASHDOTDOT - .. -</tt>
-
- <li><tt>FL_CAP_FLAT</tt>
-
- <li><tt>FL_CAP_ROUND</tt>
-
- <li><tt>FL_CAP_SQUARE</tt> (extends past end point 1/2 line width)
-
- <li><tt>FL_JOIN_MITER</tt> (pointed)
-
- <li><tt>FL_JOIN_ROUND</tt>
-
- <li><tt>FL_JOIN_BEVEL</tt> (flat)
-
-</ul>
-
-<P><i>width</i> is the number of pixels thick to draw the lines.
-Zero results in the system-defined default, which on both X and
-Windows is somewhat different and nicer than 1.
-
-<!-- NEED 4in -->
-
-<P><i>dashes</i> is a pointer to an array of dash lengths, measured in
-pixels. The first location is how long to draw a solid portion, the
-next is how long to draw the gap, then the solid, etc. It is
-terminated with a zero-length entry. A <TT>NULL</TT> pointer or a zero-length
-array results in a solid line. Odd array sizes are not supported and
-result in undefined behavior.
-
-<CENTER><TABLE WIDTH="80%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>Note:</B>
-
- <P>The dashes array does not work under Windows 95, 98,
- or Me, since those operating systems do not support
- complex line styles.
-
- </TD>
-</TR>
-</TABLE></CENTER>
-
-<H3><A name="fast">Drawing Fast Shapes</A></H3>
-
-<P>These functions are used to draw almost all the FLTK widgets.
-They draw on exact pixel boundaries and are as fast as possible.
-Their behavior is duplicated exactly on all platforms FLTK is
-ported. It is undefined whether these are affected by the <A
-href="#complex">transformation matrix</A>, so you should only
-call these while the matrix is set to the identity matrix (the
-default).
-
-<H4><A NAME=fl_point>void fl_point(int x, int y)</A></H4>
-
-<P>Draw a single pixel at the given coordinates.
-
-<H4><A NAME=fl_rectf>void fl_rectf(int x, int y, int w, int h)
-<BR>void fl_rectf(int x, int y, int w, int h)</A></H4>
-
-<P>Color a rectangle that exactly fills the given bounding box.
-
-<H4>void fl_rectf(int x, int y, int w, int h, uchar r, uchar g, uchar b)</H4>
-
-<P>Color a rectangle with &quot;exactly&quot; the passed
-<TT>r,g,b</TT> color. On screens with less than 24 bits of
-color this is done by drawing a solid-colored block using <A
-href="#fl_draw_image"><TT>fl_draw_image()</TT></A> so that
-the correct color shade is produced.
-
-<H4><A NAME=fl_rect>void fl_rect(int x, int y, int w, int h)
-<BR>void fl_rect(int x, int y, int w, int h, Fl_Color c)</A></H4>
-
-<P>Draw a 1-pixel border <I>inside</I> this bounding box.
-
-<H4><A NAME=fl_line>void fl_line(int x, int y, int x1, int y1)
-<BR>void fl_line(int x, int y, int x1, int y1, int x2, int y2)</A></H4>
-
-<P>Draw one or two lines between the given points.
-
-<H4><A NAME=fl_loop>void fl_loop(int x, int y, int x1, int y1, int x2, int y2)
-<BR>void fl_loop(int x, int y, int x1, int y1, int x2, int y2, int x3,
-int y3)</A></H4>
-
-<P>Outline a 3 or 4-sided polygon with lines.
-
-<H4><A NAME=fl_polygon>void fl_polygon(int x, int y, int x1, int y1, int x2, int y2)
-<BR>void fl_polygon(int x, int y, int x1, int y1, int x2, int y2, int
-x3, int y3)</A></H4>
-
-<P>Fill a 3 or 4-sided polygon. The polygon must be convex.
-
-<H4><A NAME=fl_xyline>void fl_xyline(int x, int y, int x1)
-<BR>void fl_xyline(int x, int y, int x1, int y2)
-<BR>void fl_xyline(int x, int y, int x1, int y2, int x3)</A></H4>
-
-<P>Draw horizontal and vertical lines. A horizontal line is
-drawn first, then a vertical, then a horizontal.
-
-<H4><A NAME=fl_yxline>void fl_yxline(int x, int y, int y1)
-<BR>void fl_yxline(int x, int y, int y1, int x2)
-<BR>void fl_yxline(int x, int y, int y1, int x2, int y3)</A></H4>
-
-<P>Draw vertical and horizontal lines. A vertical line is drawn
-first, then a horizontal, then a vertical.
-
-<H4><A NAME=fl_pie>void fl_arc(int x, int y, int w, int h, double a1, double a2)
-<BR>void fl_pie(int x, int y, int w, int h, double a1, double a2)</A></H4>
-
-<P>Draw ellipse sections using integer coordinates. These
-functions match the rather limited circle drawing code provided
-by X and WIN32. The advantage over using <A
-href="#fl_arc"><TT>fl_arc</TT></A> with floating point
-coordinates is that they are faster because they often use the
-hardware, and they draw much nicer small circles, since the
-small sizes are often hard-coded bitmaps.
-
-<P>If a complete circle is drawn it will fit inside the passed bounding
-box. The two angles are measured in degrees counterclockwise from
-3'oclock and are the starting and ending angle of the arc, <TT>a2</TT>
-must be greater or equal to <TT>a1</TT>.</P>
-
-<P><TT>fl_arc()</TT> draws a series of lines to approximate the arc.
-Notice that the integer version of <TT>fl_arc()</TT> has a different
-number of arguments than the <A href="#fl_arc"><TT>fl_arc()</TT></A>
-function described later in this chapter.</P>
-
-<P><TT>fl_pie()</TT> draws a filled-in pie slice. This slice may
-extend outside the line drawn by <TT>fl_arc</TT>; to avoid this
-use <TT>w - 1</TT> and <TT>h - 1</TT>.</P>
-
-<h4><a name=fl_scroll>void fl_scroll(int X, int Y, int W, int H, int dx, int dy,
-void (*draw_area)(void*, int,int,int,int), void* data)</a></h4>
-
-<P>Scroll a rectangle and draw the newly exposed portions. The contents
-of the rectangular area is first shifted by <tt>dx</tt> and
-<tt>dy</tt> pixels. The callback is then called for every newly
-exposed rectangular area,
-
-<H3><A name="complex">Drawing Complex Shapes</A></H3>
-
-<P>The complex drawing functions let you draw arbitrary shapes
-with 2-D linear transformations. The functionality matches that
-found in the Adobe&reg; PostScript<SUP>TM</SUP> language. The
-exact pixels that are filled are less defined than for the fast
-drawing functions so that FLTK can take advantage of drawing
-hardware. On both X and WIN32 the transformed vertices are
-rounded to integers before drawing the line segments: this
-severely limits the accuracy of these functions for complex
-graphics, so use OpenGL when greater accuracy and/or performance
-is required.
-
-<H4><A NAME=fl_push_matrix>void fl_push_matrix()
-<BR>void fl_pop_matrix()</A></H4>
-
-<P>Save and restore the current transformation. The maximum
-depth of the stack is 4.
-
-<H4><A NAME=fl_scale>void fl_scale(float x, float y)
-<BR>void fl_scale(float x)
-<BR>void fl_translate(float x, float y)
-<BR>void fl_rotate(float d)
-<BR>void fl_mult_matrix(float a, float b, float c, float d, float
-x, float y)</A></H4>
-
-<P>Concatenate another transformation onto the current one. The rotation
-angle is in degrees (not radians) and is counter-clockwise.
-
-<H4><A NAME=fl_transform>double fl_transform_x(double x, double y)
-<BR>double fl_transform_y(double x, double y)
-<BR>double fl_transform_dx(double x, double y)
-<BR>double fl_transform_dy(double x, double y)
-<BR>void fl_transformed_vertex(double xf, double yf)</A></H4>
-
-<P>Transform a coordinate or a distance trough the current transformation matrix.
-After transforming a coordinate pair, it can be added to the vertex
-list without any forther translations using <tt>fl_transformed_vertex</tt>.
-
-<H4><A NAME=fl_begin_points>void fl_begin_points()
-<BR>void fl_end_points()</A></H4>
-
-<P>Start and end drawing a list of points. Points are added to
-the list with <tt>fl_vertex</tt>.
-
-<H4><A NAME=fl_begin_line>void fl_begin_line()
-<BR>void fl_end_line()</A></H4>
-
-<P>Start and end drawing lines.
-
-<H4><A NAME=fl_begin_loop>void fl_begin_loop()
-<BR> void fl_end_loop()</A></H4>
-
-<P>Start and end drawing a closed sequence of lines.
-
-<H4><A NAME=fl_begin_polygon>void fl_begin_polygon()
-<BR>void fl_end_polygon()</A></H4>
-
-<P>Start and end drawing a convex filled polygon.
-
-<H4><A NAME=fl_begin_complex_polygon>void fl_begin_complex_polygon()
-<BR>void fl_gap()
-<BR>void fl_end_complex_polygon()</A></H4>
-
-<P>Start and end drawing a complex filled polygon. This polygon
-may be concave, may have holes in it, or may be several
-disconnected pieces. Call <TT>fl_gap()</TT> to seperate loops of
-the path. It is unnecessary but harmless to call
-<TT>fl_gap()</TT> before the first vertex, after the last one,
-or several times in a row.
-
-<CENTER><TABLE WIDTH="80%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>Note:</B>
-
- <P>For portability, you should only draw polygons that
- appear the same whether &quot;even/odd&quot; or
- &quot;non-zero&quot; winding rules are used to fill
- them. Holes should be drawn in the opposite direction of
- the outside loop.
-
- </TD>
-</TR>
-</TABLE></CENTER>
-
-<P><TT>fl_gap()</TT> should only be called between <TT>
-fl_begin_complex_polygon()</TT> and
-<TT>fl_end_complex_polygon()</TT>. To outline the polygon, use
-<TT>fl_begin_loop()</TT> and replace each <TT>fl_gap()</TT> with
-<TT>fl_end_loop();fl_begin_loop()</TT>.</P>
-
-<H4><A NAME=fl_vertex>void fl_vertex(float x, float y)</A></H4>
-Add a single vertex to the current path.
-
-<H4><A NAME=fl_curve>void fl_curve(float x, float y, float x1, float y1, float x2, float
-y2, float x3, float y3)</A></H4>
-
-<P>Add a series of points on a Bezier curve to the path. The curve ends
-(and two of the points) are at <TT>x,y</TT> and <TT>x3,y3</TT>.
-
-<H4><A NAME="fl_arc">void fl_arc(float x, float y, float r, float start, float end)</A></H4>
-
-<P>Add a series of points to the current path on the arc of a
-circle; you can get elliptical paths by using scale and rotate
-before calling <TT>fl_arc()</TT>. <TT>x,y</TT> are the center of
-the circle, and <TT>r</TT> is its radius. <TT>fl_arc()</TT>
-takes <TT>start</TT> and <TT>end</TT> angles that are measured
-in degrees counter-clockwise from 3 o'clock. If <TT>end</TT> is
-less than <TT>start</TT> then it draws the arc in a clockwise
-direction.
-
-<H4><A NAME=fl_circle>void fl_circle(float x, float y, float r)</A></H4>
-
-<P><TT>fl_circle()</TT> is equivalent to <TT>fl_arc(...,0,360)</TT> but
-may be faster. It must be the <I>only</I> thing in the path: if you
-want a circle as part of a complex polygon you must use <TT>fl_arc()</TT>.
-
-<CENTER><TABLE WIDTH="80%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>Note:</B>
-
- <P><TT>fl_circle()</TT> draws incorrectly if the
- transformation is both rotated and non-square scaled.
-
- </TD>
-</TR>
-</TABLE></CENTER>
-
-<H3><A name="text">Drawing Text</A></H3>
-
-<P>All text is drawn in the <A href="#fl_font">current font</A>.
-It is undefined whether this location or the characters are
-modified by the current transformation.
-
-<H4><A NAME=fl_draw>void fl_draw(const char *, int x, int y)
-<BR>void fl_draw(const char *, int n, int x, int y)</A></H4>
-
-<P>Draw a nul-terminated string or an array of <TT>n</TT> characters
-starting at the given location. Text is aligned to the left and to
-the baseline of the font. To align to the bottom, subtract fl_descent() from
-<i>y</i>. To align to the top, subtract fl_descent() and add fl_height().
-This version of fl_draw provides direct access to
-the text drawing function of the underlying OS. It does not apply any
-special handling to control characters.
-
-<H4>void fl_draw(const char *, int x, int y, int w, int h,
-Fl_Align align, Fl_Image *img = 0, int draw_symbols = 1)</H4>
-
-<P>Fancy string drawing function which is used to draw all the
-labels. The string is formatted and aligned inside the passed
-box. Handles '\t' and '\n', expands all other control
-characters to ^X, and aligns inside or against the edges of the
-box described by <i>x</i>, <i>y</i>, <i>w</i> and <i>h</i>. See <A
-href="Fl_Widget.html#Fl_Widget.align"><TT>Fl_Widget::align()</TT></A>
-for values for <TT>align</TT>. The value
-<TT>FL_ALIGN_INSIDE</TT> is ignored, as this function always
-prints inside the box.
-
-<P>If <TT>img</TT> is provided and is not <TT>NULL</TT>, the
-image is drawn above or below the text as specified by the
-<TT>align</TT> value.
-
-<P>The <TT>draw_symbols</TT> argument specifies whether or not
-to look for symbol names starting with the "@" character.
-
-<P>The text length is limited to 1024 caracters per line.
-
-<H4><A NAME=fl_measure>void fl_measure(const char *, int &amp;w,
-int &amp;h, int draw_symbols = 1)</A></H4>
-
-<P>Measure how wide and tall the string will be when printed by
-the <TT>fl_draw(...align)</TT> function. If the incoming
-<TT>w</TT> is non-zero it will wrap to that width.
-
-<H4><A NAME=fl_height>int fl_height()</A></H4>
-
-<P>Recommended minimum line spacing for the current font. You
-can also just use the value of <TT>size</TT> passed to <A
-href=#fl_font><TT>fl_font()</TT></A>.
-
-<H4><A NAME=fl_descent>int fl_descent()</A></H4>
-
-<P>Recommended distance above the bottom of a
-<TT>fl_height()</TT> tall box to draw the text at so it looks
-centered vertically in that box.
-
-<H4><A NAME=fl_width>float fl_width(const char*)
-<BR>float fl_width(const char*, int n)
-<BR>float fl_width(uchar)</A></H4>
-
-<P>Return the pixel width of a nul-terminated string, a sequence of <TT>n</TT>
-characters, or a single character in the current font.
-
-<H4><A NAME=fl_shortcut_label>const char *fl_shortcut_label(ulong)</A></H4>
-
-<P>Unparse a shortcut value as used by <A
-href="Fl_Button.html#Fl_Button.shortcut"><TT>Fl_Button</TT></A>
-or <A
-href="Fl_Menu_Item.html#Fl_Menu_Item"><TT>Fl_Menu_Item</TT></A>
-into a human-readable string like &quot;Alt+N&quot;. This only
-works if the shortcut is a character key or a numbered function
-key. If the shortcut is zero an empty string is returned. The
-return value points at a static buffer that is overwritten with
-each call.
-
-<H3><A name="fonts">Fonts</A></H3>
-
-<P>FLTK supports a set of standard fonts based on the Times,
-Helvetica/Arial, Courier, and Symbol typefaces, as well as
-custom fonts that your application may load. Each font is
-accessed by an index into a font table.
-
-<P>Initially only the first 16 faces are filled in. There are
-symbolic names for them: <TT>FL_HELVETICA</TT>,
-<TT>FL_TIMES</TT>, <TT>FL_COURIER</TT>, and modifier values
-<TT>FL_BOLD</TT> and <TT>FL_ITALIC</TT> which can be added to
-these, and <TT>FL_SYMBOL</TT> and <TT>FL_ZAPF_DINGBATS</TT>.
-Faces greater than 255 cannot be used in <TT>Fl_Widget</TT>
-labels, since <TT>Fl_Widget</TT> stores the index as a byte.</P>
-
-<H4><A name="fl_font">void fl_font(int face, int size)</A></H4>
-
-<P>Set the current font, which is then used by the routines
-described above. You may call this outside a draw context if
-necessary to call <TT>fl_width()</TT>, but on X this will open
-the display.
-
-<P>The font is identified by a <TT>face</TT> and a
-<TT>size</TT>. The size of the font is measured in
-<TT>pixels</TT> and not "points". Lines should be spaced
-<TT>size</TT> pixels apart or more.</P>
-
-<H4><A NAME=fl_size>int fl_font()
-<BR>int fl_size()</A></H4>
-
-<P>Returns the face and size set by the most recent call to
-<TT>fl_font(a,b)</TT>. This can be used to save/restore the
-font.
-
-<H3><A NAME=character_encoding>Character Encoding</A></H3>
-
-<P>FLTK 1 supports western character sets using the eight bit encoding
-of the user-selected global code page. For MS Windows and X11, the code
-page is assumed to be Windows-1252/Latin1, a superset to ISO 8859-1.
-On Mac OS X, we assume MacRoman.
-
-<P>FLTK provides the functions <tt>fl_latin1_to_local</tt>,
-<tt>fl_local_to_latin1</tt>, <tt>fl_mac_roman_to_local</tt>, and
-<tt>fl_local_to_mac_roman</tt> to convert strings between both
-encodings. These functions are only required if your source
-code contains "C"-strings with international characters and
-if this source will be compiled on multiple platforms.
-
-<P>Assuming that the following source code was written on MS Windows,
-this example will output the correct label on OS X and X11 as well.
-Without the conversion call, the label on OS X would read
-<tt>Fahrvergn&cedil;gen</tt> with a deformed umlaut u.
-<PRE>
- btn = new Fl_Button(10, 10, 300, 25);
- btn-&gt;copy_label(fl_latin1_to_local("Fahrvergn&uuml;gen"));
-</PRE>
-
-<P>If your application uses characters that are not part of both
-encodings, or it will be used in areas that commonly use different
-code pages, yoou might consider upgrading to FLTK 2 which supports
-UTF-8 encoding.
-
-<H3><A name="overlay">Drawing Overlays</A></H3>
-
-<P>These functions allow you to draw interactive selection rectangles
-without using the overlay hardware. FLTK will XOR a single rectangle
-outline over a window.
-
-<H4>void fl_overlay_rect(int x, int y, int w, int h);
-<BR>void fl_overlay_clear();</H4>
-
-<P><TT>fl_overlay_rect()</TT> draws a selection rectangle, erasing any
-previous rectangle by XOR'ing it first. <TT>fl_overlay_clear()</TT>
-will erase the rectangle without drawing a new one.
-
-<P>Using these functions is tricky. You should make a widget
-with both a <TT>handle()</TT> and <TT>draw()</TT> method.
-<TT>draw()</TT> should call <TT>fl_overlay_clear()</TT> before
-doing anything else. Your <TT>handle()</TT> method should call
-<TT>window()-&gt;make_current()</TT> and then
-<TT>fl_overlay_rect()</TT> after <TT>FL_DRAG</TT> events, and
-should call <TT>fl_overlay_clear()</TT> after a
-<TT>FL_RELEASE</TT> event.</P>
-
-<H2><A name="images">Drawing Images</A></H2>
-
-<P>To draw images, you can either do it directly from data in
-your memory, or you can create a <A
-href="#Fl_Image"><TT>Fl_Image</TT></A> object. The advantage of
-drawing directly is that it is more intuitive, and it is faster
-if the image data changes more often than it is redrawn. The
-advantage of using the object is that FLTK will cache translated
-forms of the image (on X it uses a server pixmap) and thus
-redrawing is <I>much</I> faster.
-
-<H3>Direct Image Drawing</H3>
-
-<P>The behavior when drawing images when the current
-transformation matrix is not the identity is not defined, so you
-should only draw images when the matrix is set to the identity.
-
-<H4><A NAME="fl_draw_image">void fl_draw_image(const uchar *, int X, int Y, int W, int H, int D
-= 3, int LD = 0)
-<BR>void fl_draw_image_mono(const uchar *, int X, int Y, int W, int H,
-int D = 1, int LD = 0)</A></H4>
-
-<P>Draw an 8-bit per color RGB or luminance image. The pointer
-points at the &quot;r&quot; data of the top-left pixel. Color
-data must be in <TT>r,g,b</TT> order. <TT>X,Y</TT> are where to
-put the top-left corner. <TT>W</TT> and <TT>H</TT> define the
-size of the image. <TT>D</TT> is the delta to add to the pointer
-between pixels, it may be any value greater or equal to
-<TT>3</TT>, or it can be negative to flip the image
-horizontally. <TT>LD</TT> is the delta to add to the pointer
-between lines (if 0 is passed it uses <TT>W * D</TT>), and may
-be larger than <TT>W * D</TT> to crop data, or negative to flip
-the image vertically.
-
-<P>It is highly recommended that you put the following code before the
-first <TT>show()</TT> of <I>any</I> window in your program to get rid
-of the dithering if possible: </P>
-
-<UL><PRE>
-Fl::visual(FL_RGB);
-</PRE></UL>
-
-<P>Gray scale (1-channel) images may be drawn. This is done if
-<TT>abs(D)</TT> is less than 3, or by calling
-<TT>fl_draw_image_mono()</TT>. Only one 8-bit sample is used for
-each pixel, and on screens with different numbers of bits for
-red, green, and blue only gray colors are used. Setting
-<TT>D</TT> greater than 1 will let you display one channel of a
-color image.
-
-<CENTER><TABLE WIDTH="80%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>Note:</B>
-
- <P>The X version does not support all possible visuals.
- If FLTK cannot draw the image in the current visual it
- will abort. FLTK supports any visual of 8 bits or less,
- and all common TrueColor visuals up to 32 bits.</P>
-
- </TD>
-</TR>
-</TABLE></CENTER>
-
-<H4>typedef void (*fl_draw_image_cb)(void *, int x, int y, int w, uchar
-*)
-<BR>void fl_draw_image(fl_draw_image_cb, void *, int X, int Y, int W,
-int H, int D = 3)
-<BR>void fl_draw_image_mono(fl_draw_image_cb, void *, int X, int Y,
-int W, int H, int D = 1)</H4>
-
-<P>Call the passed function to provide each scan line of the
-image. This lets you generate the image as it is being drawn,
-or do arbitrary decompression of stored data, provided it can be
-decompressed to individual scan lines easily.
-
-<P>The callback is called with the <TT>void *</TT> user data
-pointer which can be used to point at a structure of information
-about the image, and the <TT>x</TT>, <TT>y</TT>, and <TT>w</TT>
-of the scan line desired from the image. 0,0 is the upper-left
-corner of the image, <I>not <TT>X,Y</TT></I>. A pointer to a
-buffer to put the data into is passed. You must copy <TT>w</TT>
-pixels from scanline <TT>y</TT>, starting at pixel <TT>x</TT>,
-to this buffer.</P>
-
-<P>Due to cropping, less than the whole image may be requested.
-So <TT>x</TT> may be greater than zero, the first <TT>y</TT> may
-be greater than zero, and <TT>w</TT> may be less than
-<TT>W</TT>. The buffer is long enough to store the entire <TT>W
-* D</TT> pixels, this is for convenience with some decompression
-schemes where you must decompress the entire line at once:
-decompress it into the buffer, and then if <TT>x</TT> is not
-zero, copy the data over so the <TT>x</TT>'th pixel is at the
-start of the buffer.</P>
-
-<P>You can assume the <TT>y</TT>'s will be consecutive, except
-the first one may be greater than zero.</P>
-
-<P>If <TT>D</TT> is 4 or more, you must fill in the unused bytes
-with zero.</P>
-
-<H4><A NAME=fl_draw_pixmap>int fl_draw_pixmap(char **data, int X, int Y, Fl_Color = FL_GRAY)</A></H4>
-
-<P>Draws XPM image data, with the top-left corner at the given position.
-The image is dithered on 8-bit displays so you won't lose color space
-for programs displaying both images and pixmaps. This function returns
-zero if there was any error decoding the XPM data.
-
-<P>To use an XPM, do:</P>
-
-<UL><PRE>
-#include &quot;foo.xpm&quot;
-...
-fl_draw_pixmap(foo, X, Y);
-</PRE></UL>
-
-<P>Transparent colors are replaced by the optional
-<TT>Fl_Color</TT> argument. To draw with true transparency you must
-use the <A HREF="Fl_Pixmap.html"><TT>Fl_Pixmap</TT></A> class.
-
-<H4><A NAME=fl_measure_pixmap>int fl_measure_pixmap(char **data, int &amp;w, int &amp;h)</A></H4>
-
-<P>An XPM image contains the dimensions in its data. This
-function finds and returns the width and height. The return
-value is non-zero if the dimensions were parsed ok and zero if
-there was any problem.
-
-<H3>Direct Image Reading</H3>
-
-<p>FLTK provides a single function for reading from the current
-window or off-screen buffer into a RGB(A) image buffer.</p>
-
-<H4><A NAME="fl_read_image">uchar *fl_read_image(uchar *p, int
-X, int Y, int W, int H, int alpha = 0);</A></H4>
-
-<p>Read a RGB(A) image from the current window or off-screen
-buffer. The <tt>p</tt> argument points to a buffer that can hold
-the image and must be at least <tt>W*H*3</tt> bytes when reading
-RGB images and <tt>W*H*4</tt> bytes when reading RGBA images. If
-<tt>NULL</tt>, <tt>fl_read_image()</tt> will create an array of
-the proper size which can be freed using <tt>delete[]</tt>.</p>
-
-<p>The <tt>alpha</tt> parameter controls whether an alpha
-channel is created and the value that is placed in the alpha
-channel. If 0, no alpha channel is generated.</p>
-
-<H3><A name="Fl_Image">Image Classes</A></H3>
-
-<P>FLTK provides a base image class called <A
-HREF="Fl_Image.html"><TT>Fl_Image</TT></A> which supports
-creating, copying, and drawing images of various kinds, along
-with some basic color operations. Images can be used as labels
-for widgets using the <A
-HREF="Fl_Widget.html#Fl_Widget.image"><TT>image()</TT></A> and
-<A
-HREF="Fl_Widget.html#Fl_Widget.deimage"><TT>deimage()</TT></A>
-methods or drawn directly.
-
-<P>The <TT>Fl_Image</TT> class
-does almost nothing by itself, but is instead supported by three
-basic image types:
-
-<UL>
-
- <LI><A HREF="Fl_Bitmap.html"><TT>Fl_Bitmap</TT></A></LI>
-
- <LI><A HREF="Fl_Pixmap.html"><TT>Fl_Pixmap</TT></A></LI>
-
- <LI><A HREF="Fl_RGB_Image.html"><TT>Fl_RGB_Image</TT></A></LI>
-
-</UL>
-
-<P>The <TT>Fl_Bitmap</TT> class encapsulates a mono-color bitmap image.
-The <TT>draw()</TT> method draws the image using the current drawing
-color.
-
-<P>The <TT>Fl_Pixmap</TT> class encapsulates a colormapped image.
-The <TT>draw()</TT> method draws the image using the colors in the
-file, and masks off any transparent colors automatically.
-
-<P>The <TT>Fl_RGB_Image</TT> class encapsulates a full-color
-(or grayscale) image with 1 to 4 color components. Images with
-an even number of components are assumed to contain an
-alpha channel that is used for transparency. The transparency
-provided by the <TT>draw()</TT> method is either a 24-bit
-blend against the existing window contents or a "screen door"
-transparency mask, depending on the platform and screen color depth.
-
-<H4><A NAME=fl_can_do_alpha_blending>char fl_can_do_alpha_blending()</A></H4>
-
-<P><TT>fl_can_do_alpha_blending()</TT> will return 1, if your
-platform supports true alpha blending for RGBA images, or 0,
-if FLTK will use screen door transparency.
-
-<P>FLTK also provides several image classes based on the three
-standard image types for common file formats:
-
-<UL>
-
- <LI><A HREF="Fl_GIF_Image.html"><TT>Fl_GIF_Image</TT></A></LI>
-
- <LI><A HREF="Fl_JPEG_Image.html"><TT>Fl_JPEG_Image</TT></A></LI>
-
- <LI><A HREF="Fl_PNG_Image.html"><TT>Fl_PNG_Image</TT></A></LI>
-
- <LI><A HREF="Fl_PNM_Image.html"><TT>Fl_PNM_Image</TT></A></LI>
-
- <LI><A HREF="Fl_XBM_Image.html"><TT>Fl_XBM_Image</TT></A></LI>
-
- <LI><A HREF="Fl_XPM_Image.html"><TT>Fl_XPM_Image</TT></A></LI>
-
-</UL>
-
-<P>Each of these image classes load a named file of the
-corresponding format. The <A
-HREF="Fl_Shared_Image.html"><TT>Fl_Shared_Image</TT></A> class
-can be used to load any type of image file - the class examines
-the file and constructs an image of the appropriate type.
-
-<P>Finally, FLTK provides a special image class called <A
-HREF="Fl_Tiled_Image.html"><TT>Fl_Tiled_Image</TT></A> to tile
-another image object in the specified area. This class can be
-used to tile a background image in a <TT>Fl_Group</TT> widget,
-for example.
-
-<H4>virtual void copy();<BR>
-virtual void copy(int w, int h);</H4>
-
-<P>The <TT>copy()</TT> method creates a copy of the image. The second form
-specifies the new size of the image - the image is resized using the
-nearest-neighbor algorithm.
-
-<H4>void draw(int x, int y, int w, int h, int ox = 0, int oy = 0);</H4>
-
-<P>The <TT>draw()</TT> method draws the image object.
-<TT>x,y,w,h</TT> indicates a destination rectangle.
-<TT>ox,oy,w,h</TT> is a source rectangle. This source rectangle
-is copied to the destination. The source rectangle may extend
-outside the image, i.e. <TT>ox</TT> and <TT>oy</TT> may be
-negative and <TT>w</TT> and <TT>h</TT> may be bigger than the
-image, and this area is left unchanged.
-
-<H4>void draw(int x, int y)</H4>
-
-<P>Draws the image with the upper-left corner at <TT>x,y</TT>.
-This is the same as doing <TT>draw(x,y,img-&gt;w(),img-&gt;h(),0,0)</TT>.
-
-<h3><A NAME=offscreen>Offscreen Drawing</A></h3>
-
-Sometimes it can be very useful to generate a complex drawing
-in memory first and copy it to the screen at a later point in
-time. This technique can significantly reduce the amount of
-repeated drawing. <tt>Fl_Double_Window</tt> uses offscreen rendering
-to avoid flickering on systems that don't support
-double-buffering natively.
-
-<H4><A NAME=fl_create_offscreen>Fl_Offscreen fl_create_offscreen(int w, int h)</A></H4>
-
-<P>Create an RGB offscreen buffer with <tt>w*h</tt> pixels.
-
-<H4><A NAME=fl_delete_offscreen>void fl_delete_offscreen(Fl_Offscreen)</A></H4>
-
-<P>Delete a previously created offscreen buffer. All drawings are lost.
-
-<H4><A NAME=fl_begin_offscreen>void fl_begin_offscreen(Fl_Offscreen)</A></H4>
-
-<P>Send all subsequent drawing commands to this offscreen buffer.
-FLTK can draw into a buffer at any time. There is no need to wait for
-an <tt>Fl_Widget::draw()</tt> to occur.
-
-<H4><A NAME=fl_end_offscreen>void fl_end_offscreen()</A></H4>
-
-<P>Quit sending drawing commands to this offscreen buffer.
-
-<H4><A NAME=fl_copy_offscreen>void fl_copy_offscreen(int x, int y,
-int w, int h, Fl_Offscreen osrc, int srcx, int srcy)</A></H4>
-
-<P>Copy a rectangular area of the size <tt>w*h</tt> from <tt>srcx, srcy</tt> in the offscreen
-buffer into the current buffer at <tt>x, y</tt>.
-
-</BODY>
-</HTML>
diff --git a/documentation/editor.html b/documentation/editor.html
deleted file mode 100644
index c2dc39ad3..000000000
--- a/documentation/editor.html
+++ /dev/null
@@ -1,911 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>4 - Designing a Simple Text Editor</TITLE>
-</HEAD>
-<BODY>
-
-<H1 ALIGN="RIGHT"><A NAME="editor">4 - Designing a Simple Text Editor</A></H1>
-
-<P>This chapter takes you through the design of a simple
-FLTK-based text editor.
-
-<H2>Determining the Goals of the Text Editor</H2>
-
-<P>Since this will be the first big project you'll be doing with FLTK,
-lets define what we want our text editor to do:
-
-<OL>
-
- <LI>Provide a menubar/menus for all functions.</LI>
- <LI>Edit a single text file, possibly with multiple views.</LI>
- <LI>Load from a file.</LI>
- <LI>Save to a file.</LI>
- <LI>Cut/copy/delete/paste functions.</LI>
- <LI>Search and replace functions.</LI>
- <LI>Keep track of when the file has been changed.</LI>
-
-</OL>
-
-<!-- NEED 4in -->
-
-<H2>Designing the Main Window</H2>
-
-<P>Now that we've outlined the goals for our editor, we can begin with
-the design of our GUI. Obviously the first thing that we need is a
-window, which we'll place inside a class called <TT>EditorWindow</TT>:
-
-<UL><PRE>
-class EditorWindow : public Fl_Double_Window {
- public:
- EditorWindow(int w, int h, const char* t);
- ~EditorWindow();
-
- Fl_Window *replace_dlg;
- Fl_Input *replace_find;
- Fl_Input *replace_with;
- Fl_Button *replace_all;
- Fl_Return_Button *replace_next;
- Fl_Button *replace_cancel;
-
- Fl_Text_Editor *editor;
- char search[256];
-};
-</PRE></UL>
-
-<H2>Variables</H2>
-
-<P>Our text editor will need some global variables to keep track of
-things:
-
-<UL><PRE>
-int changed = 0;
-char filename[256] = &quot;&quot;;
-Fl_Text_Buffer *textbuf;
-</PRE></UL>
-
-<P>The <TT>textbuf</TT> variable is the text editor buffer for
-our window class described previously. We'll cover the other
-variables as we build the application.</P>
-
-<H2>Menubars and Menus</H2>
-
-<P>The first goal requires us to use a menubar and menus that
-define each function the editor needs to perform. The <A
-href="Fl_Menu_Item.html"><TT>Fl_Menu_Item</TT></A> structure is
-used to define the menus and items in a menubar:</P>
-
-<UL><PRE>
-Fl_Menu_Item menuitems[] = {
- { "&amp;File", 0, 0, 0, FL_SUBMENU },
- { "&amp;New File", 0, (Fl_Callback *)new_cb },
- { "&amp;Open File...", FL_CTRL + 'o', (Fl_Callback *)open_cb },
- { "&amp;Insert File...", FL_CTRL + 'i', (Fl_Callback *)insert_cb, 0, FL_MENU_DIVIDER },
- { "&amp;Save File", FL_CTRL + 's', (Fl_Callback *)save_cb },
- { "Save File &amp;As...", FL_CTRL + FL_SHIFT + 's', (Fl_Callback *)saveas_cb, 0, FL_MENU_DIVIDER },
- { "New &amp;View", FL_ALT + 'v', (Fl_Callback *)view_cb, 0 },
- { "&amp;Close View", FL_CTRL + 'w', (Fl_Callback *)close_cb, 0, FL_MENU_DIVIDER },
- { "E&amp;xit", FL_CTRL + 'q', (Fl_Callback *)quit_cb, 0 },
- { 0 },
-
- { "&amp;Edit", 0, 0, 0, FL_SUBMENU },
- { "&amp;Undo", FL_CTRL + 'z', (Fl_Callback *)undo_cb, 0, FL_MENU_DIVIDER },
- { "Cu&amp;t", FL_CTRL + 'x', (Fl_Callback *)cut_cb },
- { "&amp;Copy", FL_CTRL + 'c', (Fl_Callback *)copy_cb },
- { "&amp;Paste", FL_CTRL + 'v', (Fl_Callback *)paste_cb },
- { "&amp;Delete", 0, (Fl_Callback *)delete_cb },
- { 0 },
-
- { "&amp;Search", 0, 0, 0, FL_SUBMENU },
- { "&amp;Find...", FL_CTRL + 'f', (Fl_Callback *)find_cb },
- { "F&amp;ind Again", FL_CTRL + 'g', find2_cb },
- { "&amp;Replace...", FL_CTRL + 'r', replace_cb },
- { "Re&amp;place Again", FL_CTRL + 't', replace2_cb },
- { 0 },
-
- { 0 }
-};
-</PRE></UL>
-
-<P>Once we have the menus defined we can create the
-<TT>Fl_Menu_Bar</TT> widget and assign the menus to it with:</P>
-
-<UL><PRE>
-Fl_Menu_Bar *m = new Fl_Menu_Bar(0, 0, 640, 30);
-m-&gt;copy(menuitems);
-</PRE></UL>
-
-<P>We'll define the callback functions later.
-
-<H2>Editing the Text</H2>
-
-<P>To keep things simple our text editor will use the
-<A HREF="Fl_Text_Editor.html"><TT>Fl_Text_Editor</TT></A>
-widget to edit the text:
-
-<UL><PRE>
-w-&gt;editor = new Fl_Text_Editor(0, 30, 640, 370);
-w-&gt;editor-&gt;buffer(textbuf);
-</PRE></UL>
-
-<P>So that we can keep track of changes to the file, we also want to add
-a &quot;modify&quot; callback:</P>
-
-<UL><PRE>
-textbuf-&gt;add_modify_callback(changed_cb, w);
-textbuf-&gt;call_modify_callbacks();
-</PRE></UL>
-
-<P>Finally, we want to use a mono-spaced font like <TT>FL_COURIER</TT>:
-
-<UL><PRE>
-w-&gt;editor-&gt;textfont(FL_COURIER);
-</PRE></UL>
-
-<H2>The Replace Dialog</H2>
-
-<P>We can use the FLTK convenience functions for many of the
-editor's dialogs, however the replace dialog needs its own
-custom window. To keep things simple we will have a
-&quot;find&quot; string, a &quot;replace&quot; string, and
-&quot;replace all&quot;, &quot;replace next&quot;, and
-&quot;cancel&quot; buttons. The strings are just
-<TT>Fl_Input</TT> widgets, the &quot;replace all&quot; and
-&quot;cancel&quot; buttons are <TT>Fl_Button</TT> widgets, and
-the &quot;replace next &quot; button is a
-<TT>Fl_Return_Button</TT> widget:</P>
-
-<P ALIGN="CENTER"><IMG src="editor-replace.gif" ALT="The search and replace dialog."><BR>
-<I>Figure 4-1: The search and replace dialog.</I></P>
-
-<UL><PRE>
-Fl_Window *replace_dlg = new Fl_Window(300, 105, &quot;Replace&quot;);
-Fl_Input *replace_find = new Fl_Input(70, 10, 200, 25, &quot;Find:&quot;);
-Fl_Input *replace_with = new Fl_Input(70, 40, 200, 25, &quot;Replace:&quot;);
-Fl_Button *replace_all = new Fl_Button(10, 70, 90, 25, &quot;Replace All&quot;);
-Fl_Button *replace_next = new Fl_Button(105, 70, 120, 25, &quot;Replace Next&quot;);
-Fl_Button *replace_cancel = new Fl_Button(230, 70, 60, 25, &quot;Cancel&quot;);
-</PRE></UL>
-
-<H2>Callbacks</H2>
-
-<P>Now that we've defined the GUI components of our editor, we
-need to define our callback functions.</P>
-
-<H3>changed_cb()</H3>
-
-<P>This function will be called whenever the user changes any text in the
-<TT>editor</TT> widget:
-
-<UL><PRE>
-void changed_cb(int, int nInserted, int nDeleted,int, const char*, void* v) {
- if ((nInserted || nDeleted) &amp;&amp; !loading) changed = 1;
- EditorWindow *w = (EditorWindow *)v;
- set_title(w);
- if (loading) w-&gt;editor-&gt;show_insert_position();
-}
-</PRE></UL>
-
-<P>The <TT>set_title()</TT> function is one that we will write to set
-the changed status on the current file. We're doing it this way
-because we want to show the changed status in the window's
-title bar.
-
-<H3>copy_cb()</H3>
-
-<P>This callback function will call <A
-href="Fl_Text_Editor.html#Fl_Text_Editor.kf_copy"><TT>kf_copy()</TT></A>
-to copy the currently selected text to the clipboard:</P>
-
-<UL><PRE>
-void copy_cb(Fl_Widget*, void* v) {
- EditorWindow* e = (EditorWindow*)v;
- Fl_Text_Editor::kf_copy(0, e-&gt;editor);
-}
-</PRE></UL>
-
-<H3>cut_cb()</H3>
-
-<P>This callback function will call <A
-href="Fl_Text_Editor.html#Fl_Text_Editor.kf_cut"><TT>kf_cut()</TT></A>
-to cut the currently selected text to the clipboard:</P>
-
-<UL><PRE>
-void cut_cb(Fl_Widget*, void* v) {
- EditorWindow* e = (EditorWindow*)v;
- Fl_Text_Editor::kf_cut(0, e-&gt;editor);
-}
-</PRE></UL>
-
-<H3>delete_cb()</H3>
-
-<P>This callback function will call <A
-href="Fl_Text_Buffer.html#Fl_Text_Buffer.remove_selection"><TT>remove_selection()</TT></A>
-to delete the currently selected text to the clipboard:</P>
-
-<UL><PRE>
-void delete_cb(Fl_Widget*, void* v) {
- textbuf-&gt;remove_selection();
-}
-</PRE></UL>
-
-<H3>find_cb()</H3>
-
-<P>This callback function asks for a search string using the <A
-href="functions.html#fl_input2"><TT>fl_input()</TT></A>
-convenience function and then calls the <TT>find2_cb()</TT>
-function to find the string:
-
-<UL><PRE>
-void find_cb(Fl_Widget* w, void* v) {
- EditorWindow* e = (EditorWindow*)v;
- const char *val;
-
- val = fl_input("Search String:", e-&gt;search);
- if (val != NULL) {
- // User entered a string - go find it!
- strcpy(e-&gt;search, val);
- find2_cb(w, v);
- }
-</PRE></UL>
-
-<H3>find2_cb()</H3>
-
-<P>This function will find the next occurrence of the search
-string. If the search string is blank then we want to pop up the
-search dialog:
-
-<UL><PRE>
-void find2_cb(Fl_Widget* w, void* v) {
- EditorWindow* e = (EditorWindow*)v;
- if (e-&gt;search[0] == '\0') {
- // Search string is blank; get a new one...
- find_cb(w, v);
- return;
- }
-
- int pos = e-&gt;editor-&gt;insert_position();
- int found = textbuf-&gt;search_forward(pos, e-&gt;search, &amp;pos);
- if (found) {
- // Found a match; select and update the position...
- textbuf-&gt;select(pos, pos+strlen(e-&gt;search));
- e-&gt;editor-&gt;insert_position(pos+strlen(e-&gt;search));
- e-&gt;editor-&gt;show_insert_position();
- }
- else fl_alert("No occurrences of \'%s\' found!", e-&gt;search);
-}
-</PRE></UL>
-
-<P>If the search string cannot be found we use the <A
-href="functions.html#fl_alert"><TT>fl_alert()</TT></A>
-convenience function to display a message to that effect.
-
-<H3>new_cb()</H3>
-<P>This callback function will clear the editor widget and current
-filename. It also calls the <TT>check_save()</TT> function to give the
-user the opportunity to save the current file first as needed:
-
-<UL><PRE>
-void new_cb(Fl_Widget*, void*) {
- if (!check_save()) return;
-
- filename[0] = '\0';
- textbuf-&gt;select(0, textbuf-&gt;length());
- textbuf-&gt;remove_selection();
- changed = 0;
- textbuf-&gt;call_modify_callbacks();
-}
-</PRE></UL>
-
-<H3>open_cb()</H3>
-
-<P>This callback function will ask the user for a filename and then load
-the specified file into the input widget and current filename. It also
-calls the <TT>check_save()</TT> function to give the user the
-opportunity to save the current file first as needed:
-
-<UL><PRE>
-void open_cb(Fl_Widget*, void*) {
- if (!check_save()) return;
-
- char *newfile = fl_file_chooser("Open File?", "*", filename);
- if (newfile != NULL) load_file(newfile, -1);
-}
-</PRE></UL>
-
-<P>We call the <TT>load_file()</TT> function to actually load the file.
-
-<H3>paste_cb()</H3>
-
-<P>This callback function will call <A
-href="Fl_Text_Editor.html#Fl_Text_Editor.kf_paste"><TT>kf_paste()</TT></A>
-to paste the clipboard at the current position:</P>
-
-<UL><PRE>
-void paste_cb(Fl_Widget*, void* v) {
- EditorWindow* e = (EditorWindow*)v;
- Fl_Text_Editor::kf_paste(0, e-&gt;editor);
-}
-</PRE></UL>
-
-<H3>quit_cb()</H3>
-
-<P>The quit callback will first see if the current file has been
-modified, and if so give the user a chance to save it. It then exits
-from the program:
-
-<UL><PRE>
-void quit_cb(Fl_Widget*, void*) {
- if (changed &amp;&amp; !check_save())
- return;
-
- exit(0);
-}
-</PRE></UL>
-
-<H3>replace_cb()</H3>
-
-<P>The replace callback just shows the replace dialog:
-
-<UL><PRE>
-void replace_cb(Fl_Widget*, void* v) {
- EditorWindow* e = (EditorWindow*)v;
- e-&gt;replace_dlg-&gt;show();
-}
-</PRE></UL>
-
-<H3>replace2_cb()</H3>
-
-<P>This callback will replace the next occurence of the replacement
-string. If nothing has been entered for the replacement string, then
-the replace dialog is displayed instead:
-
-<UL><PRE>
-void replace2_cb(Fl_Widget*, void* v) {
- EditorWindow* e = (EditorWindow*)v;
- const char *find = e-&gt;replace_find-&gt;value();
- const char *replace = e-&gt;replace_with-&gt;value();
-
- if (find[0] == '\0') {
- // Search string is blank; get a new one...
- e-&gt;replace_dlg-&gt;show();
- return;
- }
-
- e-&gt;replace_dlg-&gt;hide();
-
- int pos = e-&gt;editor-&gt;insert_position();
- int found = textbuf-&gt;search_forward(pos, find, &amp;pos);
-
- if (found) {
- // Found a match; update the position and replace text...
- textbuf-&gt;select(pos, pos+strlen(find));
- textbuf-&gt;remove_selection();
- textbuf-&gt;insert(pos, replace);
- textbuf-&gt;select(pos, pos+strlen(replace));
- e-&gt;editor-&gt;insert_position(pos+strlen(replace));
- e-&gt;editor-&gt;show_insert_position();
- }
- else fl_alert(&quot;No occurrences of \'%s\' found!&quot;, find);
-}
-</PRE></UL>
-
-<H3>replall_cb()</H3>
-
-<P>This callback will replace all occurences of the search
-string in the file:
-
-<UL><PRE>
-void replall_cb(Fl_Widget*, void* v) {
- EditorWindow* e = (EditorWindow*)v;
- const char *find = e-&gt;replace_find-&gt;value();
- const char *replace = e-&gt;replace_with-&gt;value();
-
- find = e-&gt;replace_find-&gt;value();
- if (find[0] == '\0') {
- // Search string is blank; get a new one...
- e-&gt;replace_dlg-&gt;show();
- return;
- }
-
- e-&gt;replace_dlg-&gt;hide();
-
- e-&gt;editor-&gt;insert_position(0);
- int times = 0;
-
- // Loop through the whole string
- for (int found = 1; found;) {
- int pos = e-&gt;editor-&gt;insert_position();
- found = textbuf-&gt;search_forward(pos, find, &amp;pos);
-
- if (found) {
- // Found a match; update the position and replace text...
- textbuf-&gt;select(pos, pos+strlen(find));
- textbuf-&gt;remove_selection();
- textbuf-&gt;insert(pos, replace);
- e-&gt;editor-&gt;insert_position(pos+strlen(replace));
- e-&gt;editor-&gt;show_insert_position();
- times++;
- }
- }
-
- if (times) fl_message(&quot;Replaced %d occurrences.&quot;, times);
- else fl_alert(&quot;No occurrences of \'%s\' found!&quot;, find);
-}
-</PRE></UL>
-
-<H3>replcan_cb()</H3>
-
-<P>This callback just hides the replace dialog:
-
-<UL><PRE>
-void replcan_cb(Fl_Widget*, void* v) {
- EditorWindow* e = (EditorWindow*)v;
- e-&gt;replace_dlg-&gt;hide();
-}
-</PRE></UL>
-
-<H3>save_cb()</H3>
-
-<P>This callback saves the current file. If the current filename is
-blank it calls the &quot;save as&quot; callback:
-
-<UL><PRE>
-void save_cb(void) {
- if (filename[0] == '\0') {
- // No filename - get one!
- saveas_cb();
- return;
- }
- else save_file(filename);
-}
-</PRE></UL>
-
-<P>The <TT>save_file()</TT> function saves the current file to the
-specified filename.
-
-<H3>saveas_cb()</H3>
-
-<P>This callback asks the user for a filename and saves the current file:
-
-<UL><PRE>
-void saveas_cb(void) {
- char *newfile;
-
- newfile = fl_file_chooser(&quot;Save File As?&quot;, &quot;*&quot;, filename);
- if (newfile != NULL) save_file(newfile);
-}
-</PRE></UL>
-
-<P>The <TT>save_file()</TT> function saves the current file to the
-specified filename.
-
-<H2>Other Functions</H2>
-
-<P>Now that we've defined the callback functions, we need our support
-functions to make it all work:
-
-<H3>check_save()</H3>
-
-<P>This function checks to see if the current file needs to be saved. If
-so, it asks the user if they want to save it:
-
-<UL><PRE>
-int check_save(void) {
- if (!changed) return 1;
-
- int r = fl_choice(&quot;The current file has not been saved.\n&quot;
- &quot;Would you like to save it now?&quot;,
- &quot;Cancel&quot;, &quot;Save&quot;, &quot;Discard&quot;);
-
- if (r == 1) {
- save_cb(); // Save the file...
- return !changed;
- }
-
- return (r == 2) ? 1 : 0;
-}
-</PRE></UL>
-
-<H3>load_file()</H3>
-
-<P>This function loads the specified file into the <TT>textbuf</TT> class:
-
-<UL><PRE>
-int loading = 0;
-void load_file(char *newfile, int ipos) {
- loading = 1;
- int insert = (ipos != -1);
- changed = insert;
- if (!insert) strcpy(filename, &quot;&quot;);
- int r;
- if (!insert) r = textbuf-&gt;loadfile(newfile);
- else r = textbuf-&gt;insertfile(newfile, ipos);
- if (r)
- fl_alert(&quot;Error reading from file \'%s\':\n%s.&quot;, newfile, strerror(errno));
- else
- if (!insert) strcpy(filename, newfile);
- loading = 0;
- textbuf-&gt;call_modify_callbacks();
-}
-</PRE></UL>
-
-<P>When loading the file we use the <A
-href="Fl_Text_Buffer.html#Fl_Text_Buffer.loadfile"><TT>loadfile()</TT></A>
-method to &quot;replace&quot; the text in the buffer, or the <A
-href="Fl_Text_Buffer.html#Fl_Text_Buffer.insertfile"><TT>insertfile()</TT></A>
-method to insert text in the buffer from the named file.
-
-<H3>save_file()</H3>
-
-<P>This function saves the current buffer to the specified file:
-
-<UL><PRE>
-void save_file(char *newfile) {
- if (textbuf-&gt;savefile(newfile))
- fl_alert(&quot;Error writing to file \'%s\':\n%s.&quot;, newfile, strerror(errno));
- else
- strcpy(filename, newfile);
- changed = 0;
- textbuf-&gt;call_modify_callbacks();
-}
-</PRE></UL>
-
-<H3>set_title()</H3>
-
-<P>This function checks the <TT>changed</TT> variable and updates the
-window label accordingly:
-<UL><PRE>
-void set_title(Fl_Window* w) {
- if (filename[0] == '\0') strcpy(title, "Untitled");
- else {
- char *slash;
- slash = strrchr(filename, '/');
-#ifdef WIN32
- if (slash == NULL) slash = strrchr(filename, '\\');
-#endif
- if (slash != NULL) strcpy(title, slash + 1);
- else strcpy(title, filename);
- }
-
- if (changed) strcat(title, " (modified)");
-
- w-&gt;label(title);
-}
-</PRE></UL>
-
-<H2>The main() Function</H2>
-
-<P>Once we've created all of the support functions, the only thing left
-is to tie them all together with the <TT>main()</TT> function.
-The <TT>main()</TT> function creates a new text buffer, creates a
-new view (window) for the text, shows the window, loads the file on
-the command-line (if any), and then enters the FLTK event loop:
-
-<UL><PRE>
-int main(int argc, char **argv) {
- textbuf = new Fl_Text_Buffer;
-
- Fl_Window* window = new_view();
-
- window-&gt;show(1, argv);
-
- if (argc &gt; 1) load_file(argv[1], -1);
-
- return Fl::run();
-}
-</PRE></UL>
-
-<H2>Compiling the Editor</H2>
-
-<P>The complete source for our text editor can be found in the <TT>test/editor.cxx</TT> source file. Both the Makefile and Visual C++
-workspace include the necessary rules to build the editor. You can
-also compile it using a standard compiler with:
-
-<UL><PRE>
-CC -o editor editor.cxx -lfltk -lXext -lX11 -lm
-</PRE></UL>
-
-<P>or by using the <TT>fltk-config</TT> script with:
-
-<UL><PRE>
-fltk-config --compile editor.cxx
-</PRE></UL>
-
-<P>As noted in <A href="basics.html">Chapter 1</A>, you may need to
-include compiler and linker options to tell them where to find the FLTK
-library. Also, the <TT>CC</TT> command may also be called <TT>gcc</TT>
-or <TT>c++</TT> on your system.
-
-<P>Congratulations, you've just built your own text editor!</P>
-
-<H2>The Final Product</H2>
-
-The final editor window should look like the image in Figure 4-2.
-
-<P ALIGN="CENTER"><IMG src="editor.gif" ALT="The completed editor window."><BR>
-<I>Figure 4-2: The completed editor window</I></P>
-
-<H2>Advanced Features</H2>
-
-<P>Now that we've implemented the basic functionality, it is
-time to show off some of the advanced features of the
-<CODE>Fl_Text_Editor</CODE> widget.
-
-<H3>Syntax Highlighting</H3>
-
-<P>The <CODE>Fl_Text_Editor</CODE> widget supports highlighting
-of text with different fonts, colors, and sizes. The
-implementation is based on the excellent <A
-HREF="http://www.nedit.org/">NEdit</A> text editor core, which
-uses a parallel "style" buffer which tracks the font, color, and
-size of the text that is drawn.
-
-<P>Styles are defined using the
-<CODE>Fl_Text_Display::Style_Table_Entry</CODE> structure
-defined in <CODE>&lt;FL/Fl_Text_Display.H&gt;</CODE>:
-
-<UL><PRE>
-struct Style_Table_Entry {
- Fl_Color color;
- Fl_Font font;
- int size;
- unsigned attr;
-};
-</PRE></UL>
-
-<P>The <CODE>color</CODE> member sets the color for the text,
-the <CODE>font</CODE> member sets the FLTK font index to use,
-and the <CODE>size</CODE> member sets the pixel size of the
-text. The <CODE>attr</CODE> member is currently not used.
-
-<P>For our text editor we'll define 7 styles for plain code,
-comments, keywords, and preprocessor directives:
-
-<UL><PRE>
-Fl_Text_Display::Style_Table_Entry styletable[] = { // Style table
- { FL_BLACK, FL_COURIER, FL_NORMAL_SIZE }, // A - Plain
- { FL_DARK_GREEN, FL_COURIER_ITALIC, FL_NORMAL_SIZE }, // B - Line comments
- { FL_DARK_GREEN, FL_COURIER_ITALIC, FL_NORMAL_SIZE }, // C - Block comments
- { FL_BLUE, FL_COURIER, FL_NORMAL_SIZE }, // D - Strings
- { FL_DARK_RED, FL_COURIER, FL_NORMAL_SIZE }, // E - Directives
- { FL_DARK_RED, FL_COURIER_BOLD, FL_NORMAL_SIZE }, // F - Types
- { FL_BLUE, FL_COURIER_BOLD, FL_NORMAL_SIZE } // G - Keywords
-};
-</PRE></UL>
-
-<P>You'll notice that the comments show a letter next to each
-style - each style in the style buffer is referenced using a
-character starting with the letter 'A'.
-
-<P>You call the <CODE>highlight_data()</CODE> method to associate the
-style data and buffer with the text editor widget:
-
-<UL><PRE>
-Fl_Text_Buffer *stylebuf;
-
-w-&gt;editor-&gt;highlight_data(stylebuf, styletable,
- sizeof(styletable) / sizeof(styletable[0]),
- 'A', style_unfinished_cb, 0);
-</PRE></UL>
-
-<P>Finally, you need to add a callback to the main text buffer so
-that changes to the text buffer are mirrored in the style buffer:
-
-<UL><PRE>
-textbuf-&gt;add_modify_callback(style_update, w-&gt;editor);
-</PRE></UL>
-
-<P>The <CODE>style_update()</CODE> function, like the <CODE>change_cb()</CODE>
-function described earlier, is called whenever text is added or removed from
-the text buffer. It mirrors the changes in the style buffer and then updates
-the style data as necessary:
-
-<UL><PRE>
-//
-// 'style_update()' - Update the style buffer...
-//
-
-void
-style_update(int pos, // I - Position of update
- int nInserted, // I - Number of inserted chars
- int nDeleted, // I - Number of deleted chars
- int nRestyled, // I - Number of restyled chars
- const char *deletedText, // I - Text that was deleted
- void *cbArg) { // I - Callback data
- int start, // Start of text
- end; // End of text
- char last, // Last style on line
- *style, // Style data
- *text; // Text data
-
-
- // If this is just a selection change, just unselect the style buffer...
- if (nInserted == 0 &amp;&amp; nDeleted == 0) {
- stylebuf-&gt;unselect();
- return;
- }
-
- // Track changes in the text buffer...
- if (nInserted &gt; 0) {
- // Insert characters into the style buffer...
- style = new char[nInserted + 1];
- memset(style, 'A', nInserted);
- style[nInserted] = '\0';
-
- stylebuf-&gt;replace(pos, pos + nDeleted, style);
- delete[] style;
- } else {
- // Just delete characters in the style buffer...
- stylebuf-&gt;remove(pos, pos + nDeleted);
- }
-
- // Select the area that was just updated to avoid unnecessary
- // callbacks...
- stylebuf-&gt;select(pos, pos + nInserted - nDeleted);
-
- // Re-parse the changed region; we do this by parsing from the
- // beginning of the line of the changed region to the end of
- // the line of the changed region... Then we check the last
- // style character and keep updating if we have a multi-line
- // comment character...
- start = textbuf-&gt;line_start(pos);
- end = textbuf-&gt;line_end(pos + nInserted - nDeleted);
- text = textbuf-&gt;text_range(start, end);
- style = stylebuf-&gt;text_range(start, end);
- last = style[end - start - 1];
-
- style_parse(text, style, end - start);
-
- stylebuf-&gt;replace(start, end, style);
- ((Fl_Text_Editor *)cbArg)-&gt;redisplay_range(start, end);
-
- if (last != style[end - start - 1]) {
- // The last character on the line changed styles, so reparse the
- // remainder of the buffer...
- free(text);
- free(style);
-
- end = textbuf-&gt;length();
- text = textbuf-&gt;text_range(start, end);
- style = stylebuf-&gt;text_range(start, end);
-
- style_parse(text, style, end - start);
-
- stylebuf-&gt;replace(start, end, style);
- ((Fl_Text_Editor *)cbArg)-&gt;redisplay_range(start, end);
- }
-
- free(text);
- free(style);
-}
-</PRE></UL>
-
-<P>The <CODE>style_parse()</CODE> function scans a copy of the
-text in the buffer and generates the necessary style characters
-for display. It assumes that parsing begins at the start of a line:
-
-<UL><PRE>
-//
-// 'style_parse()' - Parse text and produce style data.
-//
-
-void
-style_parse(const char *text,
- char *style,
- int length) {
- char current;
- int col;
- int last;
- char buf[255],
- *bufptr;
- const char *temp;
-
- for (current = *style, col = 0, last = 0; length &gt; 0; length --, text ++) {
- if (current == 'A') {
- // Check for directives, comments, strings, and keywords...
- if (col == 0 &amp;&amp; *text == '#') {
- // Set style to directive
- current = 'E';
- } else if (strncmp(text, "//", 2) == 0) {
- current = 'B';
- } else if (strncmp(text, "/*", 2) == 0) {
- current = 'C';
- } else if (strncmp(text, "\\\"", 2) == 0) {
- // Quoted quote...
- *style++ = current;
- *style++ = current;
- text ++;
- length --;
- col += 2;
- continue;
- } else if (*text == '\"') {
- current = 'D';
- } else if (!last &amp;&amp; islower(*text)) {
- // Might be a keyword...
- for (temp = text, bufptr = buf;
- islower(*temp) &amp;&amp; bufptr &lt; (buf + sizeof(buf) - 1);
- *bufptr++ = *temp++);
-
- if (!islower(*temp)) {
- *bufptr = '\0';
-
- bufptr = buf;
-
- if (bsearch(&amp;bufptr, code_types,
- sizeof(code_types) / sizeof(code_types[0]),
- sizeof(code_types[0]), compare_keywords)) {
- while (text &lt; temp) {
- *style++ = 'F';
- text ++;
- length --;
- col ++;
- }
-
- text --;
- length ++;
- last = 1;
- continue;
- } else if (bsearch(&amp;bufptr, code_keywords,
- sizeof(code_keywords) / sizeof(code_keywords[0]),
- sizeof(code_keywords[0]), compare_keywords)) {
- while (text &lt; temp) {
- *style++ = 'G';
- text ++;
- length --;
- col ++;
- }
-
- text --;
- length ++;
- last = 1;
- continue;
- }
- }
- }
- } else if (current == 'C' &amp;&amp; strncmp(text, "*/", 2) == 0) {
- // Close a C comment...
- *style++ = current;
- *style++ = current;
- text ++;
- length --;
- current = 'A';
- col += 2;
- continue;
- } else if (current == 'D') {
- // Continuing in string...
- if (strncmp(text, "\\\"", 2) == 0) {
- // Quoted end quote...
- *style++ = current;
- *style++ = current;
- text ++;
- length --;
- col += 2;
- continue;
- } else if (*text == '\"') {
- // End quote...
- *style++ = current;
- col ++;
- current = 'A';
- continue;
- }
- }
-
- // Copy style info...
- if (current == 'A' &amp;&amp; (*text == '{' || *text == '}')) *style++ = 'G';
- else *style++ = current;
- col ++;
-
- last = isalnum(*text) || *text == '.';
-
- if (*text == '\n') {
- // Reset column and possibly reset the style
- col = 0;
- if (current == 'B' || current == 'E') current = 'A';
- }
- }
-}
-</PRE></UL>
-
-
-</BODY>
-</HTML>
diff --git a/documentation/enumerations.html b/documentation/enumerations.html
deleted file mode 100644
index 49acbcbe7..000000000
--- a/documentation/enumerations.html
+++ /dev/null
@@ -1,306 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>C - FLTK Enumerations</TITLE>
-</HEAD>
-<BODY>
-<H1 ALIGN=RIGHT><A NAME=Enumerations>C - FLTK Enumerations</A></H1>
-
-<P>This appendix lists the enumerations provided in the
-<TT>&lt;FL/Enumerations.H&gt;</TT> header file, organized by
-section. Constants whose value is zero are marked with "(0)",
-this is often useful to know when programming.
-
-<H2>Version Numbers</H2>
- The FLTK version number is stored in a number of compile-time
-constants:
-<UL>
-<LI><TT>FL_MAJOR_VERSION</TT> - The major release number, currently 1. </LI>
-<LI><TT>FL_MINOR_VERSION</TT> - The minor release number, currently 1. </LI>
-<LI><TT>FL_PATCH_VERSION</TT> - The patch release number, currently 0. </LI>
-<LI><TT>FL_VERSION</TT> - A combined floating-point version number for
-the major, minor, and patch release numbers, currently 1.0100. </LI>
-</UL>
-<H2><A NAME="events">Events</A></H2>
- Events are identified by an <TT>Fl_Event</TT> enumeration value. The
-following events are currently defined:
-<UL>
-<LI><TT>FL_NO_EVENT</TT> - No event (or an event fltk does not
-understand) occurred (0).</LI>
-<LI><TT>FL_PUSH</TT> - A mouse button was pushed. </LI>
-<LI><TT>FL_RELEASE</TT> - A mouse button was released. </LI>
-<LI><TT>FL_ENTER</TT> - The mouse pointer entered a widget. </LI>
-<LI><TT>FL_LEAVE</TT> - The mouse pointer left a widget. </LI>
-<LI><TT>FL_DRAG</TT> - The mouse pointer was moved with a button
- pressed. </LI>
-<LI><TT>FL_FOCUS</TT> - A widget should receive keyboard focus. </LI>
-<LI><TT>FL_UNFOCUS</TT> - A widget loses keyboard focus. </LI>
-<LI><TT>FL_KEYBOARD</TT> - A key was pressed. </LI>
-<LI><TT>FL_CLOSE</TT> - A window was closed. </LI>
-<LI><TT>FL_MOVE</TT> - The mouse pointer was moved with no buttons
- pressed. </LI>
-<LI><TT>FL_SHORTCUT</TT> - The user pressed a shortcut key. </LI>
-<LI><TT>FL_DEACTIVATE</TT> - The widget has been deactivated. </LI>
-<LI><TT>FL_ACTIVATE</TT> - The widget has been activated. </LI>
-<LI><TT>FL_HIDE</TT> - The widget has been hidden. </LI>
-<LI><TT>FL_SHOW</TT> - The widget has been shown. </LI>
-<LI><TT>FL_PASTE</TT> - The widget should paste the contents of the
- clipboard. </LI>
-<LI><TT>FL_SELECTIONCLEAR</TT> - The widget should clear any selections
- made for the clipboard. </LI>
-<LI><TT>FL_MOUSEWHEEL</TT> - The horizontal or vertical mousewheel was turned. </LI>
-<LI><TT>FL_DND_ENTER</TT> - The mouse pointer entered a widget dragging data. </LI>
-<LI><TT>FL_DND_DRAG</TT> - The mouse pointer was moved dragging data. </LI>
-<LI><TT>FL_DND_LEAVE</TT> - The mouse pointer left a widget still dragging data. </LI>
-<LI><TT>FL_DND_RELEASE</TT> - Dragged data is about to be dropped. </LI>
-</UL>
-<H2><a name=when>Callback &quot;When&quot; Conditions</A></H2>
- The following constants determine when a callback is performed:
-<UL>
-<LI><TT>FL_WHEN_NEVER</TT> - Never call the callback (0). </LI>
-<LI><TT>FL_WHEN_CHANGED</TT> - Do the callback only when the widget
-value changes. </LI>
-<LI><TT>FL_WHEN_NOT_CHANGED</TT> - Do the callback whenever the user
-interacts with the widget. </LI>
-<LI><TT>FL_WHEN_RELEASE</TT> - Do the callback when the button or key
-is released and the value changes. </LI>
-<LI><TT>FL_WHEN_ENTER_KEY</TT> - Do the callback when the user presses
- the ENTER key and the value changes. </LI>
-<LI><TT>FL_WHEN_RELEASE_ALWAYS</TT> - Do the callback when the button
- or key is released, even if the value doesn't change. </LI>
-<LI><TT>FL_WHEN_ENTER_KEY_ALWAYS</TT> - Do the callback when the user
- presses the ENTER key, even if the value doesn't change. </LI>
-</UL>
-<H2><A NAME="button_values">Fl::event_button() Values</A></H2>
-
-<P>The following constants define the button numbers for <TT>FL_PUSH</TT> and
-<TT>FL_RELEASE</TT> events:
-
-<UL>
- <LI><TT>FL_LEFT_MOUSE</TT> - the left mouse button
- <LI><TT>FL_MIDDLE_MOUSE</TT> - the middle mouse button
- <LI><TT>FL_RIGHT_MOUSE</TT> - the right mouse button
-</UL>
-
-<H2><A NAME="key_values">Fl::event_key() Values</A></H2>
- The following constants define the non-ASCII keys on the keyboard for <TT>
-FL_KEYBOARD</TT> and <TT>FL_SHORTCUT</TT> events:
-<UL>
-<LI><TT>FL_Button</TT> - A mouse button; use <TT>Fl_Button + n</TT>
- for mouse button <TT>n</TT>. </LI>
-<LI><TT>FL_BackSpace</TT> - The backspace key. </LI>
-<LI><TT>FL_Tab</TT> - The tab key. </LI>
-<LI><TT>FL_Enter</TT> - The enter key. </LI>
-<LI><TT>FL_Pause</TT> - The pause key. </LI>
-<LI><TT>FL_Scroll_Lock</TT> - The scroll lock key. </LI>
-<LI><TT>FL_Escape</TT> - The escape key. </LI>
-<LI><TT>FL_Home</TT> - The home key. </LI>
-<LI><TT>FL_Left</TT> - The left arrow key. </LI>
-<LI><TT>FL_Up</TT> - The up arrow key. </LI>
-<LI><TT>FL_Right</TT> - The right arrow key. </LI>
-<LI><TT>FL_Down</TT> - The down arrow key. </LI>
-<LI><TT>FL_Page_Up</TT> - The page-up key. </LI>
-<LI><TT>FL_Page_Down</TT> - The page-down key. </LI>
-<LI><TT>FL_End</TT> - The end key. </LI>
-<LI><TT>FL_Print</TT> - The print (or print-screen) key. </LI>
-<LI><TT>FL_Insert</TT> - The insert key. </LI>
-<LI><TT>FL_Menu</TT> - The menu key. </LI>
-<LI><TT>FL_Num_Lock</TT> - The num lock key. </LI>
-<LI><TT>FL_KP</TT> - One of the keypad numbers; use <TT>FL_KP + n</TT>
- for number <TT>n</TT>. </LI>
-<LI><TT>FL_KP_Enter</TT> - The enter key on the keypad. </LI>
-<LI><TT>FL_F</TT> - One of the function keys; use <TT>FL_F + n</TT>
- for function key <TT>n</TT>. </LI>
-<LI><TT>FL_Shift_L</TT> - The lefthand shift key. </LI>
-<LI><TT>FL_Shift_R</TT> - The righthand shift key. </LI>
-<LI><TT>FL_Control_L</TT> - The lefthand control key. </LI>
-<LI><TT>FL_Control_R</TT> - The righthand control key. </LI>
-<LI><TT>FL_Caps_Lock</TT> - The caps lock key. </LI>
-<LI><TT>FL_Meta_L</TT> - The left meta/Windows key. </LI>
-<LI><TT>FL_Meta_R</TT> - The right meta/Windows key. </LI>
-<LI><TT>FL_Alt_L</TT> - The left alt key. </LI>
-<LI><TT>FL_Alt_R</TT> - The right alt key. </LI>
-<LI><TT>FL_Delete</TT> - The delete key. </LI>
-</UL>
-<H2>Fl::event_state() Values</H2>
- The following constants define bits in the <TT>Fl::event_state()</TT>
- value:
-<UL>
-<LI><TT>FL_SHIFT</TT> - One of the shift keys is down. </LI>
-<LI><TT>FL_CAPS_LOCK</TT> - The caps lock is on. </LI>
-<LI><TT>FL_CTRL</TT> - One of the ctrl keys is down. </LI>
-<LI><TT>FL_ALT</TT> - One of the alt keys is down. </LI>
-<LI><TT>FL_NUM_LOCK</TT> - The num lock is on. </LI>
-<LI><TT>FL_META</TT> - One of the meta/Windows keys is down. </LI>
-<LI><TT>FL_COMMAND</TT> - An alias for <TT>FL_CTRL</TT> on WIN32 and X11, or
-<TT>FL_META</TT> on MacOS X. </LI>
-<LI><TT>FL_SCROLL_LOCK</TT> - The scroll lock is on. </LI>
-<LI><TT>FL_BUTTON1</TT> - Mouse button 1 is pushed. </LI>
-<LI><TT>FL_BUTTON2</TT> - Mouse button 2 is pushed. </LI>
-<LI><TT>FL_BUTTON3</TT> - Mouse button 3 is pushed. </LI>
-<LI><TT>FL_BUTTONS</TT> - Any mouse button is pushed. </LI>
-<LI><TT>FL_BUTTON(n)</TT> - Mouse button N (N &gt; 0) is pushed. </LI>
-
-</UL>
-<!-- NEED 4in -->
-<H2><a name=align>Alignment Values</A></H2>
- The following constants define bits that can be used with <A href=Fl_Widget.html#Fl_Widget.align>
-<TT>Fl_Widget::align()</TT></A> to control the positioning of the
-label:
-<UL>
-<LI><TT>FL_ALIGN_CENTER</TT> - The label is centered (0). </LI>
-<LI><TT>FL_ALIGN_TOP</TT> - The label is top-aligned. </LI>
-<LI><TT>FL_ALIGN_BOTTOM</TT> - The label is bottom-aligned. </LI>
-<LI><TT>FL_ALIGN_LEFT</TT> - The label is left-aligned. </LI>
-<LI><TT>FL_ALIGN_RIGHT</TT> - The label is right-aligned. </LI>
-<LI><TT>FL_ALIGN_CLIP</TT> - The label is clipped to the widget. </LI>
-<LI><TT>FL_ALIGN_WRAP</TT> - The label text is wrapped as needed. </LI>
-<LI><TT>FL_ALIGN_TOP_LEFT</TT></LI>
-<LI><TT>FL_ALIGN_TOP_RIGHT</TT></LI>
-<LI><TT>FL_ALIGN_BOTTOM_LEFT</TT></LI>
-<LI><TT>FL_ALIGN_BOTTOM_RIGHT</TT></LI>
-<LI><TT>FL_ALIGN_LEFT_TOP</TT></LI>
-<LI><TT>FL_ALIGN_RIGHT_TOP</TT></LI>
-<LI><TT>FL_ALIGN_LEFT_BOTTOM</TT></LI>
-<LI><TT>FL_ALIGN_RIGHT_BOTTOM</TT></LI>
-<LI><TT>FL_ALIGN_INSIDE</TT> - 'or' this with other values to put
-label inside the widget. </LI>
-
-</UL>
-<H2><a name=fonts>Fonts</A></H2>
- The following constants define the standard FLTK fonts:
-<ul>
-<LI><TT>FL_HELVETICA</TT> - Helvetica (or Arial) normal (0). </LI>
-<LI><TT>FL_HELVETICA_BOLD</TT> - Helvetica (or Arial) bold. </LI>
-<LI><TT>FL_HELVETICA_ITALIC</TT> - Helvetica (or Arial) oblique. </LI>
-<LI><TT>FL_HELVETICA_BOLD_ITALIC</TT> - Helvetica (or Arial)
-bold-oblique. </LI>
-<LI><TT>FL_COURIER</TT> - Courier normal. </LI>
-<LI><TT>FL_COURIER_BOLD</TT> - Courier bold. </LI>
-<LI><TT>FL_COURIER_ITALIC</TT> - Courier italic. </LI>
-<LI><TT>FL_COURIER_BOLD_ITALIC</TT> - Courier bold-italic. </LI>
-<LI><TT>FL_TIMES</TT> - Times roman. </LI>
-<LI><TT>FL_TIMES_BOLD</TT> - Times bold. </LI>
-<LI><TT>FL_TIMES_ITALIC</TT> - Times italic. </LI>
-<LI><TT>FL_TIMES_BOLD_ITALIC</TT> - Times bold-italic. </LI>
-<LI><TT>FL_SYMBOL</TT> - Standard symbol font. </LI>
-<LI><TT>FL_SCREEN</TT> - Default monospaced screen font. </LI>
-<LI><TT>FL_SCREEN_BOLD</TT> - Default monospaced bold screen font. </LI>
-<LI><TT>FL_ZAPF_DINGBATS</TT> - Zapf-dingbats font.
-</ul>
-
-<H2><a name=colors>Colors</A></H2>
-
-<P>The <TT>Fl_Color</TT> enumeration type holds a FLTK color value.
-Colors are either 8-bit indexes into a virtual colormap or 24-bit RGB
-color values. Color indices occupy the lower 8 bits of the value, while
-RGB colors occupy the upper 24 bits, for a byte organization of RGBI.
-
-<H3>Color Constants</H3>
-
-<P>Constants are defined for the user-defined foreground and background
-colors, as well as specific colors and the start of the grayscale ramp
-and color cube in the virtual colormap. Inline functions are provided to
-retrieve specific grayscale, color cube, or RGB color values.
-
-<P>The following color constants can be used to access the user-defined
-colors:
-
-<UL>
-
- <LI><TT>FL_BACKGROUND_COLOR</TT> - the default
- background color</LI>
-
- <LI><TT>FL_BACKGROUND2_COLOR</TT> - the default
- background color for text, list, and valuator widgets</LI>
-
- <LI><TT>FL_FOREGROUND_COLOR</TT> - the default
- foreground color (0) used for labels and text</LI>
-
- <LI><TT>FL_INACTIVE_COLOR</TT> - the inactive foreground
- color</LI>
-
- <LI><TT>FL_SELECTION_COLOR</TT> - the default selection/highlight
- color</LI>
-
-</UL>
-
-<P>The following color constants can be used to access the colors from the
-FLTK standard color cube:
-
-<UL>
-
- <LI><TT>FL_BLACK</TT></LI>
- <LI><TT>FL_BLUE</TT></LI>
- <LI><TT>FL_CYAN</TT></LI>
- <LI><TT>FL_DARK_BLUE</TT></LI>
- <LI><TT>FL_DARK_CYAN</TT></LI>
- <LI><TT>FL_DARK_GREEN</TT></LI>
- <LI><TT>FL_DARK_MAGENTA</TT></LI>
- <LI><TT>FL_DARK_RED</TT></LI>
- <LI><TT>FL_DARK_YELLOW</TT></LI>
- <LI><TT>FL_GREEN</TT></LI>
- <LI><TT>FL_MAGENTA</TT></LI>
- <LI><TT>FL_RED</TT></LI>
- <LI><TT>FL_WHITE</TT></LI>
- <LI><TT>FL_YELLOW</TT></LI>
-
-</UL>
-
-<P>The inline methods for getting a grayscale, color cube, or
-RGB color value are described in <A
-HREF="functions.html#functions">Appendix B - Function
-Reference</A>.
-
-<H2><a name=cursor>Cursors</A></H2>
-
-<P>The following constants define the mouse cursors that are available in
-FLTK. The double-headed arrows are bitmaps
-provided by FLTK on X, the others are provided by system-defined
-cursors.</P>
-
-<UL>
-
- <LI><TT>FL_CURSOR_DEFAULT</TT> - the default cursor, usually an arrow (0)</LI>
- <LI><TT>FL_CURSOR_ARROW</TT> - an arrow pointer </LI>
- <LI><TT>FL_CURSOR_CROSS</TT> - crosshair </LI>
- <LI><TT>FL_CURSOR_WAIT</TT> - watch or hourglass </LI>
- <LI><TT>FL_CURSOR_INSERT</TT> - I-beam </LI>
- <LI><TT>FL_CURSOR_HAND</TT> - hand (uparrow on MSWindows) </LI>
- <LI><TT>FL_CURSOR_HELP</TT> - question mark </LI>
- <LI><TT>FL_CURSOR_MOVE</TT> - 4-pointed arrow </LI>
- <LI><TT>FL_CURSOR_NS</TT> - up/down arrow </LI>
- <LI><TT>FL_CURSOR_WE</TT> - left/right arrow </LI>
- <LI><TT>FL_CURSOR_NWSE</TT> - diagonal arrow </LI>
- <LI><TT>FL_CURSOR_NESW</TT> - diagonal arrow </LI>
- <LI><TT>FL_CURSOR_NONE</TT> - invisible </LI>
-
-</UL>
-
-<H2>FD &quot;When&quot; Conditions</H2>
-
-<UL>
-
- <LI><TT>FL_READ</TT> - Call the callback when there is data to be
- read.</LI>
-
- <LI><TT>FL_WRITE</TT> - Call the callback when data can be written
- without blocking.</LI>
-
- <LI><TT>FL_EXCEPT</TT> - Call the callback if an exception occurs on
- the file.</LI>
-
-</UL>
-
-<H2><a name=damage>Damage Masks</A></H2>
- The following damage mask bits are used by the standard FLTK widgets:
-<UL>
-<LI><TT>FL_DAMAGE_CHILD</TT> - A child needs to be redrawn. </LI>
-<LI><TT>FL_DAMAGE_EXPOSE</TT> - The window was exposed. </LI>
-<LI><TT>FL_DAMAGE_SCROLL</TT> - The <TT>Fl_Scroll</TT> widget was
- scrolled. </LI>
-<LI><TT>FL_DAMAGE_OVERLAY</TT> - The overlay planes need to be redrawn. </LI>
-<LI><TT>FL_DAMAGE_USER1</TT> - First user-defined damage bit. </LI>
-<LI><TT>FL_DAMAGE_USER2</TT> - Second user-defined damage bit. </LI>
-<LI><TT>FL_DAMAGE_ALL</TT> - Everything needs to be redrawn. </LI>
-</UL>
-</BODY></HTML>
diff --git a/documentation/events.html b/documentation/events.html
deleted file mode 100644
index d6717de89..000000000
--- a/documentation/events.html
+++ /dev/null
@@ -1,394 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>6 - Handling Events</TITLE>
-</HEAD>
-<BODY>
-
-<H1 ALIGN="RIGHT"><A NAME="events">6 - Handling Events</A></H1>
-
-<P>This chapter discusses the FLTK event model and how to handle
-events in your program or widget.
-
-<H2>The FLTK Event Model</H2>
-
-<P>Every time a user moves the mouse pointer, clicks a button,
-or presses a key, an event is generated and sent to your
-application. Events can also come from other programs like the
-window manager.
-
-<P>Events are identified by the integer argument passed to the
-<A href="subclassing.html#handle"><TT>Fl_Widget::handle()</TT></A> virtual
-method. Other information about the most recent event is stored in
-static locations and acquired by calling the <A
-href="#event_xxx"><TT>Fl::event_*()</TT></A> methods. This static
-information remains valid until the next event is read from the window
-system, so it is ok to look at it outside of the <TT>handle()</TT>
-method.
-
-<H2>Mouse Events</H2>
-
-<H3>FL_PUSH</H3>
-
-<P>A mouse button has gone down with the mouse pointing at this
-widget. You can find out what button by calling <A
-href="Fl.html#Fl.event_button"><TT>
-Fl::event_button()</TT></A>. You find out the mouse position by
-calling <A
-href="Fl.html#Fl.event_x"><TT>Fl::event_x()</TT></A> and <A
-href="Fl.html#Fl.event_y"> <TT>Fl::event_y()</TT></A>.
-
-<P>A widget indicates that it &quot;wants&quot; the mouse click
-by returning non-zero from its <A
-href="subclassing.html#handle"><TT>handle()</TT></A> method. It
-will then become the <A href="Fl.html#Fl.pushed"><TT>
-Fl::pushed()</TT></A> widget and will get <TT>FL_DRAG</TT> and
-the matching <TT>FL_RELEASE</TT> events. If <TT>handle()</TT>
-returns zero then FLTK will try sending the <TT>FL_PUSH</TT> to
-another widget. </P>
-
-<H3>FL_DRAG</H3>
-
-<P>The mouse has moved with a button held down. The current
-button state is in <a
-href="Fl.html#Fl.event_state"><tt>Fl::event_state()</tt></a>.
-The mouse position is in <a
-href="Fl.html#Fl.event_x"><tt>Fl::event_x()</tt></a> and <a
-href="Fl.html#Fl.event_y"><tt>Fl::event_y()</tt></a>.
-
-<P>In order to receive <TT>FL_DRAG</TT> events, the widget must
-return non-zero when handling <TT>FL_PUSH</TT>.</P>
-
-<H3>FL_RELEASE</H3>
-
-<P>A mouse button has been released. You can find out what
-button by calling <A
-href="Fl.html#Fl.event_button"><TT>Fl::event_button()</TT></A>.
-
-<P>In order to receive the <TT>FL_RELEASE</TT> event, the widget must
-return non-zero when handling <TT>FL_PUSH</TT>.</P>
-
-<H3>FL_MOVE</H3>
-
-<P>The mouse has moved without any mouse buttons held down.
-This event is sent to the <A
-href="Fl.html#Fl.belowmouse"><TT>Fl::belowmouse()</TT></A>
-widget.</P>
-
-<P>In order to receive <TT>FL_MOVE</TT> events, the widget must
-return non-zero when handling <TT>FL_ENTER</TT>.</P>
-
-<H3>FL_MOUSEWHEEL</H3>
-
-<P>The user has moved the mouse wheel. The <A
-HREF="Fl.html#Fl.event_dx"><TT>Fl::event_dx()</TT></A> and <A
-HREF="Fl.html#Fl.event_dy"><TT>Fl::event_dy()</TT></A> methods
-can be used to find the amount to scroll horizontally and
-vertically.
-
-<H2>Focus Events</H2>
-
-<H3>FL_ENTER</H3>
-
-<P>The mouse has been moved to point at this widget. This can
-be used for highlighting feedback. If a widget wants to
-highlight or otherwise track the mouse, it indicates this by
-returning non-zero from its <A
-href="Fl.html#Fl.handle"><TT>handle()</TT></A> method. It then
-becomes the <A
-href="Fl.html#Fl.belowmouse"><TT>Fl::belowmouse()</TT></A>
-widget and will receive <TT>FL_MOVE</TT> and <TT>FL_LEAVE</TT>
-events.
-
-<H3>FL_LEAVE</H3>
-
-<P>The mouse has moved out of the widget.
-
-<P>In order to receive the <TT>FL_LEAVE</TT> event, the widget must
-return non-zero when handling <TT>FL_ENTER</TT>.</P>
-
-<H3>FL_FOCUS</H3>
-
-<P>This indicates an <I>attempt</I> to give a widget the
-keyboard focus.
-
-<P>If a widget wants the focus, it should change itself to
-display the fact that it has the focus, and return non-zero from
-its <A
-href="Fl_Widget.html#Fl_Widget.handle"><TT>handle()</TT></A>
-method. It then becomes the <A
-href="Fl.html#Fl.focus"><TT>Fl::focus()</TT></A> widget and gets
-<TT>FL_KEYDOWN</TT>, <TT>FL_KEYUP</TT>, and <TT>FL_UNFOCUS</TT>
-events.
-
-<P>The focus will change either because the window manager
-changed which window gets the focus, or because the user tried
-to navigate using tab, arrows, or other keys. You can check <A
-href="Fl.html#Fl.event_key"><TT>Fl::event_key()</TT></A> to
-figure out why it moved. For navigation it will be the key
-pressed and interaction with the window manager it will be
-zero.
-
-<H3>FL_UNFOCUS</H3>
-
-<P>This event is sent to the previous <A
-href="Fl.html#Fl.focus"><TT>Fl::focus()</TT></A> widget when
-another widget gets the focus or the window loses focus.
-
-<H2>Keyboard Events</H2>
-
-<H3>FL_KEYDOWN, FL_KEYUP</H3>
-
-<P>A key was pressed or released. The key can be found in <A
-href="Fl.html#Fl.event_key"><TT>Fl::event_key()</TT></A>. The
-text that the key should insert can be found with <A
-href="Fl.html#Fl.event_text"><TT>Fl::event_text()</TT></A> and
-its length is in <A
-href="Fl.html#Fl.event_length"><TT>Fl::event_length()</TT></A>.
-If you use the key <TT>handle()</TT> should return 1. If you
-return zero then FLTK assumes you ignored the key and will
-then attempt to send it to a parent widget. If none of them want
-it, it will change the event into a <TT>FL_SHORTCUT</TT> event.
-
-<P>To receive <CODE>FL_KEYBOARD</CODE> events you must also
-respond to the <CODE>FL_FOCUS</CODE> and <CODE>FL_UNFOCUS</CODE>
-events.
-
-<P>If you are writing a text-editing widget you may also want to
-call the <a href="Fl.html#Fl.compose"><TT>Fl::compose()</TT></a>
-function to translate individual keystrokes into foreign
-characters.
-
-<P><code>FL_KEYUP</code> events are sent to the widget that
-currently has focus. This is not necessarily the same widget
-that received the corresponding <code>FL_KEYDOWN</code> event
-because focus may have changed between events.
-
-<H3>FL_SHORTCUT</H3>
-
-<P>If the <A href="Fl.html#Fl.focus"><TT>Fl::focus()</TT></A>
-widget is zero or ignores an <TT>FL_KEYBOARD</TT> event then
-FLTK tries sending this event to every widget it can, until one
-of them returns non-zero. <TT>FL_SHORTCUT</TT> is first sent to
-the <TT>Fl::belowmouse()</TT> widget, then its parents and
-siblings, and eventually to every widget in the window, trying
-to find an object that returns non-zero. FLTK tries really hard
-to not to ignore any keystrokes!
-
-<P>You can also make &quot;global&quot; shortcuts by using <A
-href="Fl.html#Fl.add_handler"><TT>Fl::add_handler()</TT></A>. A
-global shortcut will work no matter what windows are displayed
-or which one has the focus.</P>
-
-<H2>Widget Events</H2>
-
-<H3>FL_DEACTIVATE</H3>
-
-<P>This widget is no longer active, due to <A
-href="Fl_Widget.html#Fl_Widget.deactivate"><TT>deactivate()</TT></A>
-being called on it or one of its parents. <TT> active()</TT> may
-still be true after this, the widget is only active if
-<TT>active()</TT> is true on it and all its parents (use <TT>active_r()</TT> to check this).
-
-<H3>FL_ACTIVATE</H3>
-
-<P>This widget is now active, due to <A
-href="Fl_Widget.html#Fl_Widget.activate"><TT>activate()</TT></A>
-being called on it or one of its parents.
-
-<H3>FL_HIDE</H3>
-
-<P>This widget is no longer visible, due to <A
-href="Fl_Widget.html#Fl_Widget.hide"><tt>hide()</tt></a> being
-called on it or one of its parents, or due to a parent window
-being minimized. <tt>visible()</tt> may still be true after
-this, but the widget is visible only if <tt>visible()</tt> is
-true for it and all its parents (use <tt>visible_r()</tt> to
-check this).
-
-<h3>FL_SHOW</h3>
-
-<P>This widget is visible again, due to <a
-href="Fl_Widget.html#Fl_Widget.show"><TT>show()</TT></A> being
-called on it or one of its parents, or due to a parent window
-being restored. <I>Child <TT>Fl_Window</TT>s respond to this by
-actually creating the window if not done already, so if you
-subclass a window, be sure to pass <TT>FL_SHOW</TT> to the base
-class <TT>handle()</TT> method!</I>
-
-<H2>Clipboard Events</H2>
-
-<H3>FL_PASTE</H3>
-
-<P>You should get this event some time after you call <A
-href="Fl.html#Fl.paste"><TT>Fl::paste()</TT></A>. The contents
-of <A href="Fl.html#Fl.event_text"><TT>Fl::event_text()</TT></A>
-is the text to insert and the number of characters is in <A
-href="Fl.html#Fl.event_length"><TT>Fl::event_length()</TT></A>.
-
-<H3>FL_SELECTIONCLEAR</H3>
-
-<P>The <A
-href="Fl.html#Fl.selection_owner"><TT>Fl::selection_owner()</TT></A>
-will get this event before the selection is moved to another
-widget. This indicates that some other widget or program has
-claimed the selection. Motif programs used this to clear the
-selection indication. Most modern programs ignore this.
-
-<H2><A NAME="dnd">Drag And Drop Events</A></H2>
-
-<P>FLTK supports drag and drop of text and files from any
-application on the desktop. Text is transfered using
-the current code page. Files are received as a list of full path
-and file names, seperated by newline. On some platforms, path
-names are prepended with <tt>file://</tt>.
-
-<P>The drag and drop data is available in <tt>Fl::event_text()</tt>
-at the concluding <tt>FL_PASTE</tt>. On some platforms, the
-event text is also available for the <tt>FL_DND_*</tt> events,
-however application must not depend on that behavior because it
-depends on the protocol used on each platform.
-
-<P><tt>FL_DND_*</tt> events cannot be used in widgets derived
-from <tt>Fl_Group</tt> or <tt>Fl_Window</tt>.
-
-<H3>FL_DND_ENTER</H3>
-
-<P>The mouse has been moved to point at this widget. A widget
-that is interested in receiving drag'n'drop data must return 1
-to receive FL_DND_DRAG, FL_DND_LEAVE and FL_DND_RELEASE events.
-
-<H3>FL_DND_DRAG</H3>
-
-<P>The mouse has been moved inside a widget while dragging data.
-A widget that is interested in receiving drag'n'drop data should
-indicate the possible drop position.
-
-<H3>FL_DND_LEAVE</H3>
-
-<P>The mouse has moved out of the widget.
-
-<H3>FL_DND_RELEASE</H3>
-
-<P>The user has released the mouse button dropping data into
-the widget. If the widget returns 1, it will receive the data in
-the immediatly following FL_PASTE event.
-
-<!-- NEED 6in -->
-
-<H2><A name="event_xxx">Fl::event_*() methods</A></H2>
-
-<P>FLTK keeps the information about the most recent event in
-static storage. This information is good until the next event is
-processed. Thus it is valid inside <TT>handle()</TT> and
-<TT>callback()</TT> methods.
-
-<P>These are all trivial inline functions and thus very fast and small: </P>
-
-<UL>
-
- <LI><A HREF="Fl.html#Fl.event_button"><TT>Fl::event_button</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.event_clicks"><TT>Fl::event_clicks</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.event_dx"><TT>Fl::event_dx</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.event_dy"><TT>Fl::event_dy</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.event_inside"><TT>Fl::event_inside</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.event_is_click"><TT>Fl::event_is_click</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.event_key"><TT>Fl::event_key</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.event_length"><TT>Fl::event_length</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.event_state"><TT>Fl::event_state</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.event_text"><TT>Fl::event_text</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.event_x"><TT>Fl::event_x</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.event_x_root"><TT>Fl::event_x_root</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.event_y"><TT>Fl::event_y</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.event_y_root"><TT>Fl::event_y_root</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.get_key"><TT>Fl::get_key</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.get_mouse"><TT>Fl::get_mouse</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.test_shortcut"><TT>Fl::test_shortcut</TT></A></LI>
-
-</UL>
-
-<H2><A name=propagation>Event Propagation</A></H2>
-
-<P>FLTK follows very simple and unchangeable rules for sending
-events. The major innovation is that widgets can indicate (by
-returning 0 from the <TT>handle()</TT> method) that they are not
-interested in an event, and FLTK can then send that event
-elsewhere. This eliminates the need for &quot;interests&quot;
-(event masks or tables), and this is probably the main reason
-FLTK is much smaller than other toolkits.
-
-<P>Most events are sent directly to the <TT>handle()</TT> method
-of the <TT>Fl_Window</TT> that the window system says they
-belong to. The window (actually the <TT>Fl_Group</TT> that
-<TT>Fl_Window</TT> is a subclass of) is responsible for sending
-the events on to any child widgets. To make the
-<TT>Fl_Group</TT> code somewhat easier, FLTK sends some events
-(<TT>FL_DRAG</TT>, <TT>FL_RELEASE</TT>, <TT>FL_KEYBOARD</TT>,
-<TT>FL_SHORTCUT</TT>, <TT>FL_UNFOCUS</TT>, and
-<TT>FL_LEAVE</TT>) directly to leaf widgets. These procedures
-control those leaf widgets:
-
-<UL>
-
- <LI><A HREF="Fl.html#Fl.add_handler"><TT>Fl::add_handler</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.belowmouse"><TT>Fl::belowmouse</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.focus"><TT>Fl::focus</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.grab"><TT>Fl::grab</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.modal"><TT>Fl::modal</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.pushed"><TT>Fl::pushed</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.release"><TT>Fl::release</TT></A></LI>
-
- <LI><A HREF="Fl_Widget.html#Fl_Widget.take_focus"><TT>Fl_Widget::take_focus</TT></A></LI>
-
-</UL>
-
-<H2><A name="compose">FLTK Compose-Character Sequences</A></H2>
-
-<P>The foreign-letter compose processing done by the <A
-href="Fl_Input.html#compose"><tt>Fl_Input</tt></a> widget is provided in
-a function that you can call if you are writing your own text editor
-widget.
-
-<p>FLTK uses its own compose processing to allow "preview" of
-the partially composed sequence, which is impossible with the
-usual "dead key" processing.
-
-<p>Although currently only characters in the ISO-8859-1
-character set are handled, you should call this in case any
-enhancements to the processing are done in the future. The
-interface has been designed to handle arbitrary UTF-8 encoded
-text.
-
-<P>The following methods are provided for character composition:
-
-<UL>
-
- <LI><A HREF="Fl.html#Fl.compose"><TT>Fl::compose()</TT></A></LI>
-
- <LI><A HREF="Fl.html#Fl.compose_reset"><TT>Fl::compose_reset()</TT></A></LI>
-
-</UL>
-
-</BODY>
-</HTML>
diff --git a/documentation/examples.html b/documentation/examples.html
deleted file mode 100644
index 43f72beb3..000000000
--- a/documentation/examples.html
+++ /dev/null
@@ -1,453 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>I - Tests and Demo Source Code</TITLE>
-</HEAD>
-<BODY>
-
-<H1 ALIGN="RIGHT"><A NAME="examples">I - Tests and Demo Source Code</A></H1>
-
-<P ALIGN="RIGHT">March 19, 2005</P>
-
-<P>The FLTK distribution contains over 60 sample applications written
-in, or ported to, FLTK. If the FLTK archive you received does not
-contain a 'test' directory, you can download the complete FLTK
-distribution from
-<a href="http://fltk.org/software.php">http://fltk.org/software.php</a>.</P>
-
-<P>Most of the example programs were created while testing a group of widgets.
-They are not meant to be great achievements in clean C++ programming, but merely
-a test platform to verify the functionality of the FLTK library.</P>
-
-<table width=100% border=0>
-<tr><td colspan=4><font size=+1><b>Example Applications</b></font></td>
-<tr>
-<td><a href="#adjuster"><tt>adjuster</tt></a></td>
-<td><a href="#arc"><tt>arc</tt></a></td>
-<td><a href="#ask"><tt>ask</tt></a></td>
-<td><a href="#bitmap"><tt>bitmap</tt></a></td>
-<td><a href="#blocks"><tt>blocks</tt></a></td>
-<td><a href="#boxtype"><tt>boxtype</tt></a></td>
-</tr>
-<tr>
-<td><a href="#browser"><tt>browser</tt></a></td>
-<td><a href="#button"><tt>button</tt></a></td>
-<td><a href="#buttons"><tt>buttons</tt></a></td>
-<td><a href="#checkers"><tt>checkers</tt></a></td>
-<td><a href="#clock"><tt>clock</tt></a></td>
-<td><a href="#colbrowser"><tt>colbrowser</tt></a></td>
-</tr>
-<tr>
-<td><a href="#color_chooser"><tt>color_chooser</tt></a></td>
-<td><a href="#cube"><tt>cube</tt></a></td>
-<td><a href="#CubeView"><tt>CubeView</tt></a></td>
-<td><a href="#cursor"><tt>cursor</tt></a></td>
-<td><a href="#curve"><tt>curve</tt></a></td>
-<td><a href="#demo"><tt>demo</tt></a></td>
-</tr>
-<tr>
-<td><a href="#doublebuffer"><tt>doublebuffer</tt></a></td>
-<td><a href="#editor"><tt>editor</tt></a></td>
-<td><a href="#fast_slow"><tt>fast_slow</tt></a></td>
-<td><a href="#file_chooser"><tt>file_chooser</tt></a></td>
-<td><a href="#fluid"><tt>fluid</tt></a></td>
-<td><a href="#fonts"><tt>fonts</tt></a></td>
-</tr>
-<tr>
-<td><a href="#forms"><tt>forms</tt></a></td>
-<td><a href="#fractals"><tt>fractals</tt></a></td>
-<td><a href="#fullscreen"><tt>fullscreen</tt></a></td>
-<td><a href="#gl_overlay"><tt>gl_overlay</tt></a></td>
-<td><a href="#glpuzzle"><tt>glpuzzle</tt></a></td>
-<td><a href="#hello"><tt>hello</tt></a></td>
-</tr>
-<tr>
-<td><a href="#help"><tt>help</tt></a></td>
-<td><a href="#iconize"><tt>iconize</tt></a></td>
-<td><a href="#image"><tt>image</tt></a></td>
-<td><a href="#inactive"><tt>inactive</tt></a></td>
-<td><a href="#input"><tt>input</tt></a></td>
-<td><a href="#input_choice"><tt>input_choice</tt></a></td>
-</tr>
-<tr>
-<td><a href="#keyboard"><tt>keyboard</tt></a></td>
-<td><a href="#label"><tt>label</tt></a></td>
-<td><a href="#line_style"><tt>line_style</tt></a></td>
-<td><a href="#list_visuals"><tt>list_visuals</tt></a></td>
-<td><a href="#mandelbrot"><tt>mandelbrot</tt></a></td>
-<td><a href="#menubar"><tt>menubar</tt></a></td>
-</tr>
-<tr>
-<td><a href="#message"><tt>message</tt></a></td>
-<td><a href="#minimum"><tt>minimum</tt></a></td>
-<td><a href="#navigation"><tt>navigation</tt></a></td>
-<td><a href="#output"><tt>output</tt></a></td>
-<td><a href="#overlay"><tt>overlay</tt></a></td>
-<td><a href="#pack"><tt>pack</tt></a></td>
-</tr>
-<tr>
-<td><a href="#pixmap_browser"><tt>pixmap_browser</tt></a></td>
-<td><a href="#pixmap"><tt>pixmap</tt></a></td>
-<td><a href="#preferences"><tt>preferences</tt></a></td>
-<td><a href="#radio"><tt>radio</tt></a></td>
-<td><a href="#resizebox"><tt>resizebox</tt></a></td>
-<td><a href="#resize"><tt>resize</tt></a></td>
-</tr>
-<tr>
-<td><a href="#scroll"><tt>scroll</tt></a></td>
-<td><a href="#shape"><tt>shape</tt></a></td>
-<td><a href="#subwindow"><tt>subwindow</tt></a></td>
-<td><a href="#sudoku"><tt>sudoku</tt></a></td>
-<td><a href="#symbols"><tt>symbols</tt></a></td>
-<td><a href="#tabs"><tt>tabs</tt></a></td>
-</tr>
-<tr>
-<td><a href="#threads"><tt>threads</tt></a></td>
-<td><a href="#tile"><tt>tile</tt></a></td>
-<td><a href="#tiled_image"><tt>tiled_image</tt></a></td>
-<td><a href="#valuators"><tt>valuators</tt></a></td>
-</tr>
-</table>
-
-<h3><a name="adjuster">adjuster</h3>
-<tt>adjuster</tt> shows a nifty little widget for quickly
-setting values in a great range.
-
-<h3><a name="arc">arc</h3>
-The <tt>arc</tt> demo explains how to derive your own widget to
-generate some custom drawings. The sample drawings use the matrix
-based arc drawing for some fun effects.
-
-<h3><a name="ask">ask</h3>
-<tt>ask</tt> shows some of FLTK's standard dialog boxes. Click
-the correct answers or you may end up in a loop, or you may end
-up in a loop, or you... .
-
-<h3><a name="bitmap">bitmap</h3>
-This simple test shows the use of a single color bitmap as a
-label for a box widget. Bitmaps are stored in the X11 '.bmp'
-file format and can be part of the source code.
-
-<h3><a name="blocks">blocks</h3>
-A wonderful and addictive game that shows the usage of FLTK
-timers, graphics, and how to implement sound on all platforms.
-<tt>blocks</tt> is also a good example for the Mac OS X specific
-bundle format.
-
-<h3><a name="boxtype">boxtype</h3>
-<tt>boxtype</tt> gives an overview of readily available boxes and
-frames in FLTK. More types can be added by the application programmer.
-When using themes, FLTK shuffles boxtypes around to give your program
-a new look.
-
-<h3><a name="browser">browser</h3>
-<tt>browser</tt> shows the capabilities of the <tt>Fl_Browser</tt> widget.
-Important features tested are loading of files, line formatting, and
-correct positioning of the browser data window.
-
-<h3><a name="button">button</h3>
-The <tt>button</tt> test is a simple demo of push-buttons and callbacks.
-
-<h3><a name="buttons">buttons</h3>
-<tt>buttons</tt> shows a sample of FLTK button types.
-
-<h3><a name="checkers">checkers</h3>
-Written by Steve Poulsen in early 1979, <tt>checkers</tt> shows
-how to convert a VT100 text-terminal based program into a neat
-application with a graphical UI. Check out the code that drags the
-pieces, and how the pieces are drawn by layering. Then tell me
-how to beat the computer at Checkers.
-
-<h3><a name="clock">clock</h3>
-The <tt>clock</tt> demo shows two analog clocks. The innards of
-the <tt>Fl_Clock</tt> widget are pretty interesting, explaining
-the use of timeouts and matrix based drawing.
-
-<h3><a name="colbrowser">colbrowser</h3>
-<tt>colbrowser</tt> runs only on X11 systems. It reads
-<i>/usr/lib/X11/rgb.txt</i> to show the color representation
-of every text entry in the file. This is beautiful, but
-only moderatly useful unless your UI is written in <i>Motif</i>.
-
-<h3><a name="color_chooser">color_chooser</h3>
-The <tt>color_chooser</tt> gives a short demo of FLTK's palette based
-color chooser and of the RGB based color wheel.
-
-<h3><a name="cube">cube</h3>
-The <tt>cube</tt> demo shows the speed of OpenGL. It also tests
-the ability to render two OpenGL buffers into a single window,
-and shows OpenGL text.
-
-<h3><a name="CubeView">CubeView</h3>
-<tt>CubeView</tt> shows how to create a UI containing OpenGL with Fluid.
-
-<h3><a name="cursor">cursor</h3>
-The <tt>cursor</tt> demo show all mouse cursor shapes that come standard
-with FLTK. The <i>fgcolor</i> and <i>bgcolor</i> sliders work only
-on few systems (some version of Irix for example).
-
-<h3><a name="curve">curve</h3>
-<tt>curve</tt> draws a nice Bezier curve into a custom widget. The
-<i>points</i> option for splines is not supported on all platforms.
-
-<h3><a name="demo">demo</h3>
-This tool allows quick access to all programs in the <tt>test</tt> directory.
-<tt>demo</tt> is based on the visuals of the IrixGL demo program. The menu
-tree can be changed by editing <tt>test/demo.menu</tt>.
-
-<h3><a name="doublebuffer">doublebuffer</h3>
-The <tt>doublebuffer</tt> demo show the difference between a single
-buffered window, which may flicker during a slow redraw, and a
-double buffered window, which never flickers, but uses twice the
-amount of RAM. Some modern OS's double buffer all windows automatically
-to allow transparency and shadows on the desktop. FLTK is smart enough
-to not tripple buffer a window in that case.
-
-<h3><a name="editor">editor</h3>
-FLTK has two very different text input widgets. <tt>Fl_Input</tt>
-and derived classes are rather leight weight, however
-<tt>Fl_Text_Editor</tt> is a complete port of <i>nedit</i> (with permission).
-The <tt>editor</tt> test is almost a full application, showing custom
-syntax highlighting and dialog creation.
-
-<h3><a name="fast_slow">fast_slow</h3>
-<tt>fast_slow</tt> shows how an application can use then <tt>when()</tt>
-setting to receive different kinds of callbacks.
-
-<h3><a name="file_chooser">file_chooser</h3>
-The standard FLTK <tt>file_chooser</tt> is the result of many
-iterations, trying to find a middle ground between a complex
-browser and a fast light implementation.
-
-<h3><a name="fonts">fonts</h3>
-<tt>fonts</tt> show all available text fonts on the host system.
-If your machine still has some pixmap based fonts, the supported
-sizes will be shown in bold face. Only the first 256 fonts will
-be listed.
-
-<h3><a name="forms">forms</h3>
-<tt>forms</tt> is an XForms program with very few changes.
-Search for "fltk" to find all changes necessary to port to fltk.
-This demo show the different boxtypes. Note that some
-boxtypes are not appropriate for some objects.
-
-<h3><a name="fractals">fractals</h3>
-<tt>fractals</tt> shows how to mix OpenGL, Glut and FLTK code.
-FLTK supports a rather large subset of Glut, so that many Glut
-application compile just fine.
-
-<h3><a name="fullscreen">fullscreen</h3>
-This demo shows how to do many of the window manipulations that
-are popular for games.
-You can toggle the border on/off, switch between single-
-and double-buffered rendering, and take over the entire
-screen. More information in the source code.
-
-<h3><a name="gl_overlay">gl_overlay</h3>
-<tt>gl_overlay</tt> shows OpenGL overlay plane rendering. If no
-hardware overlay plane is available, FLTK will simulate it
-for you.
-
-<h3><a name="glpuzzle">glpuzzle</h3>
-The <tt>glpuzzle</tt> test shows how most Glut source code compiles
-easily under FLTK.
-
-<h3><a name="hello">hello</h3>
-<tt>hello</tt>: Hello, World. Need I say maore? Well, maybe. This
-tiny demo shows how little is needed to get a functioning application
-running with FLTK. Quite impressive, I'd say.
-
-<h3><a name="help">help</h3>
-<tt>help</tt> displays the built-in FLTK help browser. The
-<tt>Fl_Help_Dialog</tt> understands a subset of html and renders
-various image formats. This widget makes it easy to provide help
-pages to the user without depending on the operating system's
-html browser.
-
-<h3><a name="iconize">iconize</h3>
-<tt>iconize</tt> demonstrates the effect of the window functions
-<tt>hide()</tt>, <tt>iconize()</tt>, and <tt>show()</tt>.
-
-<h3><a name="image">image</h3>
-The <tt>image</tt> demo shows how an image can be created on the fly.
-This generated image contains an alpha (transparency) channel which
-lets previous renderings 'shine through', either via true
-transparency or by using screen door transparency (pixelation).
-
-<h3><a name="inactive">inactive</h3>
-<tt>inactive</tt> tests the correct rendering of inactive widgets.
-To see the inactive version of images, you can check out the pixmap
-or image test.
-
-<h3><a name="input">input</h3>
-This tool shows and tests different types of text input fields based on
-<tt>Fl_Input_</tt>. The <tt>input</tt> program also tests various
-settings of <tt>Fl_Input::when()</tt>.
-
-<h3><a name="input_choice">input_choice</h3>
-<tt>input_choice</tt> tests the latest addition to FLTK1, a text input
-field with an attached pulldown menu. Windows users will recognize
-similarities to the 'ComboBox'. <tt>input_choice</tt> starts up in
-'plastic' scheme, but the traditional scheme is also supported.
-
-<h3><a name="keyboard">keyboard</h3>
-FLTK unifies keyboard events for all platforms. The <tt>keyboard</tt>
-test can be used to check the return values of <tt>Fl::event_key()</tt>
-and <tt>Fl::event_text()</tt>. It is also great to see the modifier
-buttons and the scroll wheel at work. Quit this application by closing
-the window. The ESC key will not work.
-
-<h3><a name="label">label</h3>
-Every FLTK widget can have a label attached to it. The <tt>label</tt>
-demo shows alignment, clipping and wrapping of text labels. Labels
-can contain symbols at the start and end of the text, like <i>@FLTK</i>
-or <i>@circle uh-huh @square</i>.
-
-<h3><a name="line_style">line_style</h3>
-Advanced line drawing can be tested with <tt>line_style</tt>.
-Not all platforms support all line styles.
-
-<h3><a name="list_visuals">list_visuals</h3>
-This little app finds all available pixel formats for the current X11
-screen. But since you are now an FLTK user, you don't have to worry
-about any of this.
-
-<h3><a name="mandelbrot">mandelbrot</h3>
-<tt>mandelbrot</tt> shows two advanced topics in one test. It creates
-grayscale images on the fly, updating them via the <i>idle</i> callback
-system. This is one of the few occasions where the <i>idle</i> callback
-is very useful by giving all available processor time to the application
-without blocking the UI or other apps.
-
-<h3><a name="menubar">menubar</h3>
-The <tt>menubar</tt> tests many aspects of FLTK's popup menu system.
-Among the features are radio buttons, menus taller than the screen,
-arbitrary sub menu depth, and global shortcuts.
-
-<h3><a name="message">message</h3>
-<tt>message</tt> pops up a few of FLTK's standars message boxes.
-
-<h3><a name="minimum">minimum</h3>
-The <tt>minimum</tt> test program verifies that the update regions
-are set correctly. In a real life application, the trail would
-be avoided by choosing a smaller label or by setting label clipping
-differently.
-
-<h3><a name="navigation">navigation</h3>
-<tt>navigation</tt> demonstrates how the text cursor moves from
-text field to text field when using the arrow keys, tab, and shift-tab.
-
-<h3><a name="output">output</h3>
-<tt>output</tt> shows the difference between the single line and
-multi line mode of the <tt>Fl_Output</tt> widget. Fonts can be
-selected from the FLTK standard list of fonts.
-
-<h3><a name="overlay">overlay</h3>
-The <tt>overlay</tt> test app show how easy an FLTK window can
-be layered to display cursor and manipulator style elemnts. This
-example derives a new class from <tt>Fl_Overly_WIndow</tt> and
-provides a new function to draw custom overlays.
-
-<h3><a name="pack">pack</h3>
-The <tt>pack</tt> test program demonstrates the resizing
-and repositioning of children of the <tt>Fl_Pack</tt> group.
-Putting an <tt>Fl_Pack</tt> into an <tt>Fl_Scroll</tt> is
-a useful way to create a browser for large sets of data.
-
-<h3><a name="pixmap_browser">pixmap_browser</h3>
-<tt>pixmap_browser</tt> tests the shared-image interface. When using
-the same image multiple times, <tt>Fl_Shared_Image</tt> will keep it
-only once in memory.
-
-<h3><a name="pixmap">pixmap</h3>
-This simple test shows the use of a LUT based pixmap as a
-label for a box widget. Pixmaps are stored in the X11 '.xpm'
-file format and can be part of the source code. Pixmaps support
-one transparent color.
-
-<h3><a name="preferences">preferences</h3>
-I do have my <tt>preferences</tt> in the morning, but sometimes I
-just can't remember a thing. This is where the <tt>Fl_Preferences</tt>
-come in handy. They remember any kind of data between program launches.
-
-<h3><a name="radio">radio</h3>
-The <tt>radio</tt> tool was created entirely with <i>fluid</i>. It
-shows some of the available button types and tests radio
-button behavior.
-
-<h3><a name="resizebox">resizebox</h3>
-<tt>resizebox</tt> shows some possible ways of FLTK's automatic
-resize bahavior..
-
-<h3><a name="resize">resize</h3>
-The <tt>resize</tt> demo tests size and position functions with
-the given window manager.
-
-<h3><a name="scroll">scroll</h3>
-<tt>scroll</tt> shows how to scroll an area of widgets, one of
-them beeing a slow custom drawing. <tt>Fl_Scroll</tt> uses
-clipping and smart window area copying to improve redraw speed.
-The buttons at the bottom of the window control decoration rendering
-and updates.
-
-<h3><a name="shape">shape</h3>
-<tt>shape</tt> is a very minimal demo that shows how to create
-your own OpenGL rendering widget. Now that you know that, go ahead
-and write that flight simulator you always dreamt of.
-
-<h3><a name="subwindow">subwindow</h3>
-The <tt>subwindow</tt> demo tests messaging and drawing between
-the main window and 'true' sub windows. A sub window is different
-to a group by resetting the FLTK coordinate stystem to 0, 0 in the
-top left corner. On Win32 and X11, subwindows have their own
-operating system specific handle.
-
-<h3><a name="sudoku">sudoku</h3>
-Another highly addictive game - don't play it, I warned you.
-The implementation shows how to create application icons,
-how to deal with OS specifics, and how to generate sound.
-
-<h3><a name="symbols">symbols</h3>
-<tt>symbols</tt> are a speciality of FLTK. These little vector
-drawings can be integrated into labels. They scale and rotate,
-and with a little patience, you can define your own. The rotation
-number refers to 45 degree rotations if you were looking at a
-numeric keypad (2 is down, 6 is right, etc.).
-
-<h3><a name="tabs">tabs</h3>
-The <tt>tabs</tt> tool was created with <i>fluid</i>. It tests
-correct hiding and redisplaying of tabs, navigation across tabs,
-resize behavior, and no unneeded redrawing of invisible widgets.
-
-<P>The <tt>tabs</tt> application shows the <tt>Fl_Tabs</tt> widget
-on the left and the <tt>Fl_Wizard</tt> widget on the right side
-for direct comparison of these two panel management widgets.
-
-<h3><a name="threads">threads</h3>
-FLTK can be used in a multithreading environment. There are some
-limitations, mostly due to the underlying operating system.
-<tt>threads</tt> show how to use <tt>Fl::lock()</tt>,
-<tt>Fl::unlock()</tt>, and <tt>Fl::awake()</tt> in secondary threads
-to keep FLTK happy. Although locking works on all platforms,
-this demo is not available on every machine.
-
-<h3><a name="tile">tile</h3>
-The <tt>tile</tt> tool shows a nice way of using <tt>Fl_Tile</tt>.
-To test correct resizing of subwindows, the widget for region
-1 is created from an <tt>Fl_Window</tt> class.
-
-<h3><a name="tiled_image">tiled_image</h3>
-The <tt>tiled_image</tt> demo uses an image as the background
-for a window by repeating it over the full size of the widget.
-Thw window is resizable and shows how the image gets repeated.
-
-<h3><a name="valuators">valuators</h3>
-<tt>valuators</tt> shows all of FLTK's nifty widgets to change
-numeric values.
-
-<h3><a name="fluid">fluid</h3>
-<tt>fuid</tt> is not only a big test program, but also a very
-useful visual UI designer. Many parts of <tt>fluid</tt> were
-created using <tt>fluid</tt>.
-
-</BODY>
-</HTML>
diff --git a/documentation/fluid.html b/documentation/fluid.html
deleted file mode 100644
index 7ccec9f9c..000000000
--- a/documentation/fluid.html
+++ /dev/null
@@ -1,1363 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>9 - Programming with FLUID</TITLE>
-</HEAD>
-<BODY>
-<H1 ALIGN="RIGHT"><A NAME="FLUID">9 - Programming with FLUID</A></H1>
-
-<P>This chapter shows how to use the Fast Light User-Interface Designer
-(&quot;FLUID&quot;) to create your GUIs.</P>
-
-<P>Subchapters:
-<UL>
-<LI><A HREF="#what_is_fluid">What is FLUID</A></LI>
-<LI><A HREF="#fluid_under_linux">Running FLUID Under UNIX</A></LI>
-<LI><A HREF="#fluid_under_windows">Running FLUID Under Microsoft Windows</A></LI>
-<LI><A HREF="#compiling_fl_files">Compiling <TT>.fl</TT> files</A></LI>
-<LI><A HREF="#tutorial">A Short Tutorial</A></LI>
-<LI><A HREF="#references">FLUID Reference</A></LI>
-<LI><A HREF="#I18N">Internationalization with FLUID</A></LI>
-<LI><A HREF="#limitations">Know limitations</A></LI>
-</UL></P>
-
-<H2><A NAME="what_is_fluid">What is FLUID?</A></H2>
-
-<P>The Fast Light User Interface Designer, or FLUID, is a
-graphical editor that is used to produce FLTK source code. FLUID
-edits and saves its state in <TT>.fl</TT> files. These files
-are text, and you can (with care) edit them in a text editor,
-perhaps to get some special effects.</P>
-
-<P>FLUID can &quot;compile&quot; the <TT>.fl</TT> file into a
-<TT>.cxx</TT> and a <TT>.h</TT> file. The <TT>.cxx</TT> file
-defines all the objects from the <TT>.fl</TT> file and the
-<TT>.h</TT> file declares all the global ones. FLUID also
-supports localization (<A HREF="#I18N">Internationalization</A>)
-of label strings using message files and the GNU gettext or
-POSIX catgets interfaces.
-
-<P>A simple program can be made by putting all your code (including a <TT>
-main()</TT> function) into the <TT>.fl</TT> file and thus making the <TT>.cxx</TT> file a
-single source file to compile. Most programs are more complex than
-this, so you write other <TT>.cxx</TT> files that call the FLUID functions.
-These <TT>.cxx</TT> files must <TT>#include</TT> the <TT>.h</TT> file or they can <TT>
-#include</TT> the <TT>.cxx</TT> file so it still appears to be a single source
-file.
-
-<P ALIGN="CENTER"><IMG src="fluid-org.gif" ALT="FLUID organization."><BR>
-<I>Figure 9-1: FLUID organization.</I></P>
-
-<P>Normally the FLUID file defines one or more functions or classes which
-output C++ code. Each function defines a one or more FLTK
-windows, and all the widgets that go inside those windows.</P>
-<P>Widgets created by FLUID are either &quot;named&quot;, &quot;complex named&quot; or
-&quot;unnamed&quot;. A named widget has a legal C++ variable identifier as its
-name (i.e. only alphanumeric and underscore). In this case FLUID
-defines a global variable or class member that will point at the widget
-after the function defining it is called. A complex named object has
-punctuation such as '.' or '-&gt;' or any other symbols in its name. In
-this case FLUID assigns a pointer to the widget to the name, but does
-not attempt to declare it. This can be used to get the widgets into
-structures. An unnamed widget has a blank name and no pointer is stored.</P>
-<P>Widgets may either call a named callback function that you write in
-another source file, or you can supply a small piece of C++ source and
-FLUID will write a private callback function into the <TT>.cxx</TT> file.</P>
-<H2><A NAME="fluid_under_linux">Running FLUID Under UNIX</A></H2>
- To run FLUID under UNIX, type:
-<UL>
-<PRE>
-fluid <I>filename.fl</I> &amp;</PRE>
-</UL>
-to edit the <TT>.fl</TT> file <TT>filename.fl</TT>. If the file does not exist
-you will get an error pop-up, but if you dismiss it you will be editing
-a blank file of that name. You can run FLUID without any name, in
-which case you will be editing an unnamed blank setup (but you can use
-save-as to write it to a file).
-<P>You can provide any of the standard FLTK switches before the filename: </P>
-<UL>
-<PRE>
--display host:n.n
--geometry WxH+X+Y
--title windowtitle
--name classname
--iconic
--fg color
--bg color
--bg2 color
--scheme schemename
-</PRE>
-</UL>
-
-<P>Changing the colors may be useful to see what your interface
-will look at if the user calls it with the same switches.
-Similarly, using "-scheme plastic" will show how the interface
-will look using the "plastic" scheme.
-
-<P>In the current version, if you don't put FLUID into the
-background with '&amp;' then you will be able to abort FLUID by
-typing <KBD>CTRL-C</KBD> on the terminal. It will exit
-immediately, losing any changes.</P>
-
-<H2><A NAME="fluid_under_windows">Running FLUID Under Microsoft Windows</A></H2>
-
-<P>To run FLUID under WIN32, double-click on the <I>FLUID.exe</I>
-file. You can also run FLUID from the Command Prompt window.
-FLUID always runs in the background under WIN32.
-
-<H2><A NAME="compiling_fl_files">Compiling <TT>.fl</TT> files</A></H2>
-
-<P>FLUID can also be called as a command-line
-&quot;compiler&quot; to create the <TT>.cxx</TT> and <TT>.h</TT>
-file from a <TT>.fl</TT> file. To do this type:
-
-<UL><PRE>
-fluid -c <I>filename.fl</I>
-</PRE></UL>
-
-<P>This will read the <TT>filename.fl</TT> file and write
-<I>filename.cxx</I> and <I> filename.h</I>. Any leading
-directory on <TT>filename.fl</TT> will be stripped, so they are
-always written to the current directory. If there are any errors
-reading or writing the files, FLUID will print the error and
-exit with a non-zero code. You can use the following lines in a
-makefile to automate the creation of the source and header
-files:
-
-<UL><PRE>
-my_panels.h my_panels.cxx: my_panels.fl
- fluid -c my_panels.fl
-</PRE></UL>
-
-<P>Most versions of make support rules that cause <TT>.fl</TT>
-files to be compiled:
-
-<UL><PRE>
-.SUFFIXES: .fl .cxx .h
-.fl.h .fl.cxx:
- fluid -c $&lt;
-</PRE></UL>
-
-<H2><A NAME="tutorial">A Short Tutorial</A></H2>
-
-<P>FLUID is an amazingly powerful little program. However, this
-power comes at a price as it is not always obvious how to
-accomplish seemingly simple tasks with it. This tutorial will
-show you how to generate a complete user interface class with
-FLUID that is used for the CubeView program provided with FLTK.
-
-<P ALIGN=CENTER><IMG SRC="cubeview.gif" ALT="CubeView demo."><BR>
-<I>Figure 9-2: CubeView demo.</I></P>
-
-<P>The window is of class CubeViewUI, and is completely generated by FLUID, including
-class member functions. The central display of the cube is a separate
-subclass of Fl_Gl_Window called CubeView. CubeViewUI manages CubeView
-using callbacks from the various sliders and rollers to manipulate the
-viewing angle and zoom of CubeView.
-<p>At the completion of this tutorial you will (hopefully) understand
-how to:
-<ol>
-<li>Use FLUID to create a complete user interface class, including
-constructor and any member functions necessary.
-<li>Use FLUID to set callbacks member functions of a custom widget
-classes.
-<li>Subclass an <a
-href="Fl_Gl_Window.html#Fl_Gl_Window"><TT>Fl_Gl_Window</TT></A> to suit
-your purposes.
-</ol>
-
-<h3>The CubeView Class</h3>
-The CubeView class is a subclass of Fl_Gl_Window. It has methods for
-setting the zoom, the <i>x</i> and <i>y</i> pan, and the rotation angle
-about the <i>x</i> and <i>y</i>axes.
-<p>You can safely skip this section as long as you realize the CubeView
-is a sublass of <tt>Fl_Gl_Window</tt> and will respond to calls from
-CubeViewUI, generated by FLUID.
-<h4><a name="def">The CubeView Class Definition</a></h4>
-Here is the CubeView class definition, as given by its header file
-"test/CubeView.h":
-<ul><pre>
-class CubeView : public Fl_Gl_Window {
- public:
- CubeView(int x,int y,int w,int h,const char *l=0);
- // this value determines the scaling factor used to draw the cube.
- double size;
- /* Set the rotation about the vertical (y ) axis.
- *
- * This function is called by the horizontal roller in CubeViewUI
- * and the initialize button in CubeViewUI.
- */
- void v_angle(float angle){vAng=angle;};
- // Return the rotation about the vertical (y ) axis.
- float v_angle(){return vAng;};
- /* Set the rotation about the horizontal (x ) axis.
- *
- * This function is called by the vertical roller in CubeViewUI
- and the
- * initialize button in CubeViewUI.
- */
- void h_angle(float angle){hAng=angle;};
- // the rotation about the horizontal (x ) axis.
- float h_angle(){return hAng;};
- /* Sets the x shift of the cube view camera.
- *
- * This function is called by the slider in CubeViewUI and the
- * initialize button in CubeViewUI.
- */
- void panx(float x){xshift=x;};
- /* Sets the y shift of the cube view camera.
- *
- * This function is called by the slider in CubeViewUI and the
- * initialize button in CubeViewUI.
- */
- void pany(float y){yshift=y;};
- /* The widget class draw() override.
- * The draw() function initialize Gl for another round of
- * drawing then calls specialized functions for drawing each
- * of the entities displayed in the cube view.
- */
- void draw();
-
- private:
- /* Draw the cube boundaries
- * Draw the faces of the cube using the boxv[] vertices, using
- * GL_LINE_LOOP for the faces. The color is #defined by
- * CUBECOLOR.
- */
- void drawCube();
-
- float vAng,hAng; float xshift,yshift;
-
- float boxv0[3];float boxv1[3]; float boxv2[3];float boxv3[3];
- float boxv4[3];float boxv5[3]; float boxv6[3];float boxv7[3];
-};
-</pre></ul>
-
-<h4><a name="imp">The CubeView Class Implementation</a></h4>
-
-<P>Here is the CubeView implementation. It is very similar to the
-&quot;cube&quot; demo included with FLTK.
-
-<ul><pre>
-#include "CubeView.h"
-#include &lt;math.h&gt;
-
-CubeView::CubeView(int x,int y,int w,int h,const char *l)
- : Fl_Gl_Window(x,y,w,h,l)
-{
- vAng = 0.0; hAng=0.0; size=10.0;
- /* The cube definition. These are the vertices of a unit cube
- * centered on the origin.*/
- boxv0[0] = -0.5; boxv0[1] = -0.5; boxv0[2] = -0.5; boxv1[0] = 0.5;
- boxv1[1] = -0.5; boxv1[2] = -0.5; boxv2[0] = 0.5; boxv2[1] = 0.5;
- boxv2[2] = -0.5; boxv3[0] = -0.5; boxv3[1] = 0.5; boxv3[2] = -0.5;
- boxv4[0] = -0.5; boxv4[1] = -0.5; boxv4[2] = 0.5; boxv5[0] = 0.5;
- boxv5[1] = -0.5; boxv5[2] = 0.5; boxv6[0] = 0.5; boxv6[1] = 0.5;
- boxv6[2] = 0.5; boxv7[0] = -0.5; boxv7[1] = 0.5; boxv7[2] = 0.5;
-};
-
-// The color used for the edges of the bounding cube.
-#define CUBECOLOR 255,255,255,255
-
-void CubeView::drawCube() {
-/* Draw a colored cube */
-#define ALPHA 0.5
- glShadeModel(GL_FLAT);
-
- glBegin(GL_QUADS);
- glColor4f(0.0, 0.0, 1.0, ALPHA);
- glVertex3fv(boxv0);
- glVertex3fv(boxv1);
- glVertex3fv(boxv2);
- glVertex3fv(boxv3);
-
- glColor4f(1.0, 1.0, 0.0, ALPHA);
- glVertex3fv(boxv0);
- glVertex3fv(boxv4);
- glVertex3fv(boxv5);
- glVertex3fv(boxv1);
-
- glColor4f(0.0, 1.0, 1.0, ALPHA);
- glVertex3fv(boxv2);
- glVertex3fv(boxv6);
- glVertex3fv(boxv7);
- glVertex3fv(boxv3);
-
- glColor4f(1.0, 0.0, 0.0, ALPHA);
- glVertex3fv(boxv4);
- glVertex3fv(boxv5);
- glVertex3fv(boxv6);
- glVertex3fv(boxv7);
-
- glColor4f(1.0, 0.0, 1.0, ALPHA);
- glVertex3fv(boxv0);
- glVertex3fv(boxv3);
- glVertex3fv(boxv7);
- glVertex3fv(boxv4);
-
- glColor4f(0.0, 1.0, 0.0, ALPHA);
- glVertex3fv(boxv1);
- glVertex3fv(boxv5);
- glVertex3fv(boxv6);
- glVertex3fv(boxv2);
- glEnd();
-
- glColor3f(1.0, 1.0, 1.0);
- glBegin(GL_LINES);
- glVertex3fv(boxv0);
- glVertex3fv(boxv1);
-
- glVertex3fv(boxv1);
- glVertex3fv(boxv2);
-
- glVertex3fv(boxv2);
- glVertex3fv(boxv3);
-
- glVertex3fv(boxv3);
- glVertex3fv(boxv0);
-
- glVertex3fv(boxv4);
- glVertex3fv(boxv5);
-
- glVertex3fv(boxv5);
- glVertex3fv(boxv6);
-
- glVertex3fv(boxv6);
- glVertex3fv(boxv7);
-
- glVertex3fv(boxv7);
- glVertex3fv(boxv4);
-
- glVertex3fv(boxv0);
- glVertex3fv(boxv4);
-
- glVertex3fv(boxv1);
- glVertex3fv(boxv5);
-
- glVertex3fv(boxv2);
- glVertex3fv(boxv6);
-
- glVertex3fv(boxv3);
- glVertex3fv(boxv7);
- glEnd();
-};//drawCube
-
-void CubeView::draw() {
- if (!valid()) {
- glLoadIdentity(); glViewport(0,0,w(),h());
- glOrtho(-10,10,-10,10,-20000,10000); glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- }
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glPushMatrix(); glTranslatef(xshift, yshift, 0);
- glRotatef(hAng,0,1,0); glRotatef(vAng,1,0,0);
- glScalef(float(size),float(size),float(size)); drawCube();
- glPopMatrix();
-};
-</pre></ul>
-
-<h3>The CubeViewUI Class</h3>
-
-<P>We will completely construct a window to display and control the
-CubeView defined in the previous section using FLUID.
-
-<h4><a name="defui">Defining the CubeViewUI Class</a></h4>
-
-<P>Once you have started FLUID, the first step in defining a class is to
-create a new class within FLUID using the <b>New-&gt;Code-&gt;Class</b>
-menu item. Name the class &quot;CubeViewUI&quot; and leave the
-subclass blank. We do not need any inheritance for this
-window. You should see the new class declaration in the FLUID
-browser window.
-
-<p align="center"><img src="fluid1.gif" ALT="FLUID file for CubeView."><BR>
-<I>Figure 9-3: FLUID file for CubeView.</I></p>
-
-<h4><a name="addcon">Adding the Class Constructor</a></h4>
-
-<P>Click on the CubeViewUI class in the FLUID window and add a new method
-by selecting <b>New-&gt;Code-&gt;Function/Method.</b> The name of the
-function will also be CubeViewUI. FLUID will understands that this will
-be the constructor for the class and will generate the appropriate
-code. Make sure you declare the constructor public.
-
-<p>Then add a window to the CubeViewUI class. Highlight the name of
-the constructor in the FLUID browser window and click on
-<b>New-&gt;Group-&gt;Window</b>. In a similar manner add the
-following to the CubeViewUI constructor:
-
-<ul>
-<li>A horizontal roller named <tt>hrot</tt>
-<li>A vertical roller named <tt>vrot</tt>
-<li>A horizontal slider named <tt>xpan</tt>
-<li>A vertical slider named <tt>ypan</tt>
-<li>A horizontal value slider named <tt>zoom</tt>
-</ul>
-
-<P>None of these additions need be public. And they shouldn't be
-unless you plan to expose them as part of the interface for
-CubeViewUI.
-
-<p>When you are finished you should have something like this:
-
-<p align="center"><img src="fluid2.gif" ALT="FLUID window containing CubeView demo."><BR>
-<I>Figure 9-4: FLUID window containing CubeView demo.</I></P>
-
-<p>We will talk about the <tt>show()</tt> method that is highlighted
-shortly.
-
-<h4><a name="addcube">Adding the CubeView Widget</a></h4>
-
-<P>What we have is nice, but does little to show our cube. We have already
-defined the CubeView class and we would like to show it within the
-CubeViewUI.
-
-<p>The CubeView class inherits the <tt>Fl_Gl_Window</tt> class, which
-is created in the same way as a <tt>Fl_Box</tt> widget. Use
-<b>New-&gt;Other-&gt;Box</b> to add a square box to the main window.
-This will be no ordinary box, however.
-
-<p>The Box properties window will appear. The key to letting CubeViewUI
-display CubeView is to enter CubeView in the &quot;Class:&quot; text
-entry box. This tells FLUID that it is not an <tt>Fl_Box</tt>, but a
-similar widget with the same constructor. In the &quot;Extra
-Code:&quot; field enter <tt>#include &quot;CubeView.h&quot;</tt>
-
-<p>This <tt>#include</tt> is important, as we have just included
-CubeView as a member of CubeViewUI, so any public CubeView methods are
-now available to CubeViewUI.
-
-<p align="center"><img src="fluid3-cxx.gif" ALT="CubeView methods."><BR>
-<I>Figure 9-5: CubeView methods.</I></p>
-
-<h4><a name="defcall">Defining the Callbacks</a></h4>
-
-<P>Each of the widgets we defined before adding CubeView can have
-callbacks that call CubeView methods. You can call an external
-function or put in a short amount of code in the &quot;Callback&quot;
-field of the widget panel. For example, the callback for the
-<tt>ypan</tt> slider is:
-
-<ul><pre>
-cube-&gt;pany(((Fl_Slider *)o)-&gt;value());
-cube-&gt;redraw();
-</pre></ul>
-
-<P>We call <tt>cube-&gt;redraw()</tt> after changing the value to update
-the CubeView window. CubeView could easily be modified to do this, but
-it is nice to keep this exposed in the case where you may want to do
-more than one view change only redrawing once saves a lot of time.
-
-<p>There is no reason no wait until after you have added CubeView to
-enter these callbacks. FLUID assumes you are smart enough not to refer
-to members or functions that don't exist.
-
-<h4><a name="addmeth">Adding a Class Method</a></h4>
-
-<P>You can add class methods within FLUID that have nothing to do with the
-GUI. An an example add a show function so that CubeViewUI can actually
-appear on the screen.
-
-<p>Make sure the top level CubeViewUI is selected and select
-<b>New-&gt;Code-&gt;Function/Method</b>. Just use the name
-<tt>show()</tt>. We don't need a return value here, and since we will
-not be adding any widgets to this method FLUID will assign it a return
-type of <tt>void</tt>.
-
-<p align="center"><img src="fluid4.gif" ALT="CubeView constructor."><BR>
-<I>Figure 9-6: CubeView constructor.</I></p>
-
-<p>Once the new method has been added, highlight its name and select
-<B>New-&gt;Code-&gt;Code.</B> Enter the method's code in the code window.
-
-<h3><a name="addconst">Adding Constructor Initialization Code</a></h3>
-
-<P>If you need to add code to initialize class, for example setting
-initial values of the horizontal and vertical angles in the
-CubeView, you can simply highlight the Constructor and select
-<b>New-&gt;Code-&gt;Code</b>. Add any required code.
-
-<h3><a name="gencode">Generating the Code</a></h3>
-
-<P>Now that we have completely defined the CubeViewUI, we have to generate
-the code. There is one last trick to ensure this all works. Open the
-preferences dialog from <b>Edit-&gt;Preferences</b>.
-
-<p>At the bottom of the preferences dialog box is the key: "Include
-Header from Code". Select that option and set your desired file
-extensions and you are in business. You can include the CubeViewUI.h
-(or whatever extension you prefer) as you would any other C++ class.
-
-<!-- NEW PAGE -->
-
-<H2><A NAME="references">FLUID Reference</A></H2>
-
-<P>The following sections describe each of the windows in FLUID.
-
-<H3>The Widget Browser</H3>
-
-<P>The main window shows a menu bar and a scrolling browser of
-all the defined widgets. The name of the <TT>.fl</TT> file being
-edited is shown in the window title.
-
-<P>The widgets are stored in a hierarchy. You can open and close a
-level by clicking the &quot;triangle&quot; at the left of a widget.
-The leftmost widgets are the <I>parents</I>, and all the widgets
-listed below them are their <I>children</I>. Parents don't have to have
-any children.</P>
-
-<P>The top level of the hierarchy is composed of <I>functions</I> and
-<I>classes</I>. Each of these will produce a single C++ public
-function or class in the output <TT>.cxx</TT> file. Calling the function or
-instantiating the class will create all of the child widgets.</P>
-
-<P>The second level of the hierarchy contains the <I>windows</I>. Each of these
-produces an instance of class <tt>Fl_Window</tt>.</P>
-
-<P>Below that are either <I>widgets</I> (subclasses of <tt>Fl_Widget</tt>) or <I>
-groups</I> of widgets (including other groups). Plain groups are for
-layout, navigation, and resize purposes. <I>Tab groups</I> provide the
-well-known file-card tab interface.</P>
-
-<P>Widgets are shown in the browser by either their <I>name</I> (such
-as &quot;main_panel&quot; in the example), or by their <I>type</I>
-and <I>label</I> (such as &quot;Button &quot;the green&quot;&quot;).</P>
-
-<P>You <I>select</I> widgets by clicking on their names, which highlights
-them (you can also select widgets from any displayed window). You can
-select many widgets by dragging the mouse across them, or by using
-Shift+Click to toggle them on and off. To select no widgets, click in
-the blank area under the last widget. Note that hidden children may
-be selected even when there is no visual indication of this.
-
-<P>You <I>open</I> widgets by double-clicking on them, or (to open several
-widgets you have picked) by typing the F1 key. A control panel will appear
-so you can change the widget(s).</P>
-
-<H3>Menu Items</H3>
-
-<P>The menu bar at the top is duplicated as a pop-up menu on any
-displayed window. The shortcuts for all the menu items work in any
-window. The menu items are: </P>
-
-<H4>File/Open... (Ctrl+o)</H4>
-
-<P>Discards the current editing session and reads in a different
-<TT>.fl</TT> file. You are asked for confirmation if you have
-changed the current file.
-
-<P>FLUID can also read <tt>.fd</tt> files produced by the Forms
-and XForms &quot;fdesign&quot; programs. It is best to
-File/Merge them instead of opening them. FLUID does not
-understand everything in a <tt>.fd</tt> file, and will print a
-warning message on the controlling terminal for all data it does
-not understand. You will probably need to edit the resulting
-setup to fix these errors. Be careful not to save the file
-without changing the name, as FLUID will write over the
-<tt>.fd</tt> file with its own format, which fdesign cannot
-read! </P>
-
-<H4>File/Insert... (Ctrl+i)</H4>
-
-<P>Inserts the contents of another <TT>.fl</TT> file, without
-changing the name of the current <TT>.fl</TT> file. All the
-functions (even if they have the same names as the current ones)
-are added, and you will have to use cut/paste to put the widgets
-where you want.
-
-<H4>File/Save (Ctrl+s)</H4>
-
-<P>Writes the current data to the <TT>.fl</TT> file. If the
-file is unnamed then FLUID will ask for a filename.
-
-<H4>File/Save As...(Ctrl+Shift+S)</H4>
-
-<P>Asks for a new filename and saves the file.
-
-<H4>File/Write Code (Ctrl+Shift+C)</H4>
-
-<P>&quot;Compiles&quot; the data into a <TT>.cxx</TT> and <TT>.h</TT>
-file. These are exactly the same as the files you get when you run
-FLUID with the <tt>-c</tt> switch.
-
-<P>The output file names are the same as the <TT>.fl</TT> file, with
-the leading directory and trailing &quot;.fl&quot; stripped, and
-&quot;.h&quot; or &quot;.cxx&quot; appended.</P>
-
-<H4>File/Write Strings (Ctrl+Shift+W)</H4>
-
-<P>Writes a message file for all of the text labels defined in
-the current file.
-
-<P>The output file name is the same as the <TT>.fl</TT> file,
-with the leading directory and trailing &quot;.fl&quot;
-stripped, and &quot;.txt&quot;, &quot;.po&quot;, or
-&quot;.msg&quot; appended depending on the <A
-HREF="#I18N">Internationalization Mode</A>.</P>
-
-<H4>File/Quit (Ctrl+q)</H4>
-
-<P>Exits FLUID. You are asked for confirmation if you have
-changed the current file.
-
-<H4>Edit/Undo (Ctrl+z)</H4>
-
-<P>This isn't implemented yet. You should do save often so you can
-recover from any mistakes you make.
-
-<H4>Edit/Cut (Ctrl+x)</H4>
-
-<P>Deletes the selected widgets and all of their children.
-These are saved to a &quot;clipboard&quot; file and can be
-pasted back into any FLUID window.
-
-<H4>Edit/Copy (Ctrl+c)</H4>
-
-<P>Copies the selected widgets and all of their children to the
-&quot;clipboard&quot; file.
-
-<H4>Edit/Paste (Ctrl+c)</H4>
-
-<P>Pastes the widgets from the clipboard file.
-
-<P>If the widget is a window, it is added to whatever function
-is selected, or contained in the current selection.</P>
-
-<P>If the widget is a normal widget, it is added to whatever
-window or group is selected. If none is, it is added to the
-window or group that is the parent of the current selection.</P>
-
-<P>To avoid confusion, it is best to select exactly one widget
-before doing a paste.</P>
-
-<P>Cut/paste is the only way to change the parent of a
-widget.</P>
-
-<H4>Edit/Select All (Ctrl+a)</H4>
-
-<P>Selects all widgets in the same group as the current
-selection.
-
-<P>If they are all selected already then this selects all
-widgets in that group's parent. Repeatedly typing Ctrl+a will
-select larger and larger groups of widgets until everything is
-selected.</P>
-
-<H4>Edit/Open... (F1 or double click)</H4>
-
-<P>Displays the current widget in the attributes panel. If the
-widget is a window and it is not visible then the window is
-shown instead.
-
-<H4>Edit/Sort</H4>
-
-<P>Sorts the selected widgets into left to right, top to bottom
-order. You need to do this to make navigation keys in FLTK work
-correctly. You may then fine-tune the sorting with
-&quot;Earlier&quot; and &quot;Later&quot;. This does not affect
-the positions of windows or functions.
-
-<H4>Edit/Earlier (F2)</H4>
-
-<P>Moves all of the selected widgets one earlier in order among
-the children of their parent (if possible). This will affect
-navigation order, and if the widgets overlap it will affect how
-they draw, as the later widget is drawn on top of the earlier
-one. You can also use this to reorder functions, classes, and
-windows within functions.
-
-<H4>Edit/Later (F3)</H4>
-
-<P>Moves all of the selected widgets one later in order among
-the children of their parent (if possible).
-
-<H4>Edit/Group (F7)</H4>
-
-<P>Creates a new <tt>Fl_Group</tt> and make all the currently
-selected widgets children of it.
-
-<H4>Edit/Ungroup (F8)</H4>
-
-<P>Deletes the parent group if all the children of a group are
-selected.
-
-<H4>Edit/Overlays on/off (Ctrl+Shift+O)</H4>
-
-<P>Toggles the display of the red overlays off, without changing
-the selection. This makes it easier to see box borders and how
-the layout looks. The overlays will be forced back on if you
-change the selection.
-
-<H4>Edit/Project Settings... (Ctrl+p)</H4>
-
-<P>Displays the project settings panel.
-The output filenames control the extensions or names of the
-files the are generated by FLUID. If you check the "Include .h
-from .cxx" button the code file will include the header file
-automatically.
-
-<P>The internationalization options are described <A
-HREF="#I18N">later in this chapter</A>.
-
-<P ALIGN="CENTER"><IMG SRC="fluid_prefs.gif" ALT="FLUID Preferences Window."><BR>
-<I>Figure 9-7: FLUID Preferences Window.</I></P>
-
-<H4>Edit/GUI Settings... (Shift+Ctrl+p)</H4>
-
-<P>Displays the GUI settings panel. This panel is used
-to control the user interface settings.
-
-<H4>New/Code/Function</H4>
-
-<P>Creates a new C function. You will be asked for a name for
-the function. This name should be a legal C++ function
-template, without the return type. You can pass arguments which
-can be referred to by code you type into the individual widgets.
-
-<P>If the function contains any unnamed windows, it will be
-declared as returning a Fl_Window pointer. The unnamed window
-will be returned from it (more than one unnamed window is
-useless). If the function contains only named windows, it will
-be declared as returning nothing (<tt>void</tt>).</P>
-
-<P>It is possible to make the <TT>.cxx</TT> output be a
-self-contained program that can be compiled and executed. This
-is done by deleting the function name so
-<tt>main(argc,argv)</tt> is used. The function will call
-<tt>show()</tt> on all the windows it creates and then call
-<tt>Fl::run()</tt>. This can also be used to test resize
-behavior or other parts of the user interface.</P>
-
-<P>You can change the function name by double-clicking on the
-function.</P>
-
-<H4>New/Window</H4>
-
-<P>Creates a new <tt>Fl_Window</tt> widget. The window is added
-to the currently selected function, or to the function
-containing the currently selected item. The window will appear,
-sized to 100x100. You can resize it to whatever size you
-require.
-
-<P>The widget panel will also appear and is described later in
-this chapter.</P>
-
-<H4>New/...</H4>
-
-<P>All other items on the New menu are subclasses of
-<tt>Fl_Widget</tt>. Creating them will add them to the
-currently selected group or window, or the group or window
-containing the currently selected widget. The initial
-dimensions and position are chosen by copying the current
-widget, if possible.
-
-<P>When you create the widget you will get the widget's control
-panel, which is described later in this chapter.</P>
-
-
-<H4>Layout/Align/... </H4>
-
-<P>Align all selected widgets to the first widget in the selection.
-
-<H4>Layout/Space Evenly/... </H4>
-
-<P>Space all selected widgets evenly inside the selected space.
-Widgets will be sorted from first to last.
-
-<H4>Layout/Make Same Size/... </H4>
-
-<P>Make all slected widgets the same size as the first selected widget.
-
-<H4>Layout/Center in Group/... </H4>
-
-<P>Center all selected widgets relative to their parent widget
-
-<H4>Layout/Grid... (Ctrl+g)</H4>
-
-<P>Displays the grid settings panel.
-This panel
-controls the grid that all widgets snap to when you move and
-resize them, and for the "snap" which is how far a widget has to
-be dragged from its original position to actually change.
-
-
-<H4>Shell/Execute Command... (Alt+x)</H4>
-
-<P>Displays the shell command panel. The shell command
-is commonly used to run a 'make' script to compile the FLTK output.
-
-<H4>Shell/Execute Again (Alt+g)</H4>
-
-<P>Run the shell command again.
-
-<H4>Help/About FLUID</H4>
-
-<P>Pops up a panel showing the version of FLUID.
-
-<H4>Help/On FLUID</H4>
-
-<P>Shows this chapter of the manual.
-
-<H4>Help/Manual</H4>
-
-<P>Shows the contents page of the manual
-
-<H3>The Widget Panel</H3>
-
-<P>When you double-click on a widget or a set of widgets you
-will get the &quot;widget attribute panel&quot;.
-
-<P>When you change attributes using this panel, the changes are
-reflected immediately in the window. It is useful to hit the
-&quot;no overlay&quot; button (or type Ctrl+Shift+O) to hide the
-red overlay so you can see the widgets more accurately,
-especially when setting the box type.
-
-<P>If you have several widgets selected, they may have different
-values for the fields. In this case the value for <I>one</I> of
-the widgets is shown. But if you change this value, <I>all</I>
-of the selected widgets are changed to the new value.
-
-<P>Hitting &quot;OK&quot; makes the changes permanent.
-Selecting a different widget also makes the changes permanent.
-FLUID checks for simple syntax errors such as mismatched
-parenthesis in any code before saving any text.
-
-<P>&quot;Revert&quot; or &quot;Cancel&quot; put everything back
-to when you last brought up the panel or hit OK. However in the
-current version of FLUID, changes to &quot;visible&quot;
-attributes (such as the color, label, box) are not undone by
-revert or cancel. Changes to code like the callbacks are
-undone, however.
-
-<!-- NEW PAGE -->
-<P ALIGN="CENTER"><IMG src="fluid_widget_gui.gif" ALT="The FLUID widget GUI attributes."><BR>
-<I>Figure 9-8: The FLUID widget GUI attributes.</I></P>
-
-<H3><A name="widget_attributes">GUI Attributes</A></H3>
-
-<H4>Label (text field)</H4>
-
-<P>String to print next to or inside the button. You can put
-newlines into the string to make multiple lines. The easiest way
-is by typing Ctrl+j.</P>
-
-<P><A href="common.html#symbols">Symbols</A> can be added to the
-label using the at sign ("@").
-
-<H4>Label (pull down menu)</H4>
-
-<P>How to draw the label. Normal, shadowed, engraved, and
-embossed change the appearance of the text.
-
-<H4>Image</H4>
-
-<P>The active image for the widget. Click on the
-<B>Browse...</B> button to pick an image file using the file
-chooser.
-
-<H4>Inactive</H4>
-
-<P>The inactive image for the widget. Click on the
-<B>Browse...</B> button to pick an image file using the file
-chooser.
-
-<H4>Alignment (buttons)</H4>
-
-<P>Where to draw the label. The arrows put it on that side of
-the widget, you can combine the to put it in the corner. The
-&quot;box&quot; button puts the label inside the widget, rather
-than outside.
-
-<P>The <B>clip</B> button clips the label to the widget box, the
-<B>wrap</B> button wraps any text in the label, and the <B>text
-image</B> button puts the text over the image instead of under
-the image.
-
-<H4>Position (text fields)</H4>
-
-<P>The position fields show the current position and size of the
-widget box. Enter new values to move and/or resize a widget.
-
-<H4>Values (text fields)</H4>
-
-<P>The values and limits of the current widget. Depending on the
-type of widget, some or all of these fields may be inactive.
-
-<H4>Shortcut</H4>
-
-<P>The shortcut key to activate the widget. Click on the
-shortcut button and press any key sequence to set the shortcut.
-
-<H4>Attributes (buttons)</H4>
-
-<P>The <B>Visible</B> button controls whether the widget is
-visible (on) or hidden (off) initially. Don't change this for
-windows or for the immediate children of a Tabs group.
-
-<P>The <B>Active</B> button controls whether the widget is
-activated (on) or deactivated (off) initially. Most widgets
-appear greyed out when deactivated.
-
-<P>The <B>Resizable</B> button controls whether the window is
-resizeable. In addition all the size changes of a window or
-group will go &quot;into&quot; the resizable child. If you have
-a large data display surrounded by buttons, you probably want
-that data area to be resizable. You can get more complex
-behavior by making invisible boxes the resizable widget, or by
-using hierarchies of groups. Unfortunately the only way to test
-it is to compile the program. Resizing the FLUID window is
-<I>not</I> the same as what will happen in the user program.</P>
-
-<P>The <B>Hotspot</B> button causes the parent window to be
-positioned with that widget centered on the mouse. This
-position is determined <I>when the FLUID function is called</I>,
-so you should call it immediately before showing the window. If
-you want the window to hide and then reappear at a new position,
-you should have your program set the hotspot itself just before
-<tt>show()</tt>.
-
-<P>The <B>Border</B> button turns the window manager border on
-or off. On most window managers you will have to close the
-window and reopen it to see the effect.
-
-<H4>X Class (text field)</H4>
-
-<P>The string typed into here is passed to the X window manager
-as the class. This can change the icon or window decorations.
-On most (all?) window managers you will have to close the window
-and reopen it to see the effect.
-
-
-<P ALIGN="CENTER"><IMG src="fluid_widget_style.gif" ALT="The FLUID widget Style attributes."><BR>
-<I>Figure 9-9: The FLUID widget Style attributes.</I></P>
-
-<H3>Style Attributes</H3>
-
-<H4>Label Font (pulldown menu)</H4>
-
-<P>Font to draw the label in. Ignored by symbols, bitmaps, and
-pixmaps. Your program can change the actual font used by these
-&quot;slots&quot; in case you want some font other than the 16
-provided.
-
-<H4>Label Size (pulldown menu)</H4>
-
-<P>Pixel size (height) for the font to draw the label in.
-Ignored by symbols, bitmaps, and pixmaps. To see the result
-without dismissing the panel, type the new number and then Tab.
-
-<H4>Label Color (button)</H4>
-
-<P>Color to draw the label. Ignored by pixmaps (bitmaps,
-however, do use this color as the foreground color).
-
-<H4>Box (pulldown menu)</H4>
-
-<P>The boxtype to draw as a background for the widget.
-
-<P>Many widgets will work, and draw faster, with a
-&quot;frame&quot; instead of a &quot;box&quot;. A frame does
-not draw the colored interior, leaving whatever was already
-there visible. Be careful, as FLUID may draw this ok but the
-real program may leave unwanted stuff inside the widget.</P>
-
-<P>If a window is filled with child widgets, you can speed up
-redrawing by changing the window's box type to
-&quot;NO_BOX&quot;. FLUID will display a checkerboard for any
-areas that are not colored in by boxes. Note that this
-checkerboard is not drawn by the resulting program. Instead
-random garbage will be displayed.</P>
-
-<H4>Down Box (pulldown menu)</H4>
-
-<P>The boxtype to draw when a button is pressed or for some
-parts of other widgets like scrollbars and valuators.
-
-<H4>Color (button)</H4>
-
-<P>The color to draw the box with.</P>
-
-<H4>Select Color (button)</H4>
-
-<P>Some widgets will use this color for certain parts. FLUID
-does not always show the result of this: this is the color
-buttons draw in when pushed down, and the color of input fields
-when they have the focus.</P>
-
-<H4>Text Font, Size, and Color</H4>
-
-<P>Some widgets display text, such as input fields, pull-down
-menus, and browsers.
-
-
-<P ALIGN="CENTER"><IMG src="fluid_widget_cxx.gif" ALT="The FLUID widget C++ attributes."><BR>
-<I>Figure 9-10: The FLUID widget C++ attributes.</I></P>
-
-<H3>C++ Attributes</H3>
-
-<H4>Class</H4>
-
-<P>This is how you use your own subclasses of
-<tt>Fl_Widget</tt>. Whatever identifier you type in here will
-be the class that is instantiated.
-
-<P>In addition, no <tt>#include</tt> header file is put in the
-<TT>.h</TT> file. You must provide a <tt>#include</tt> line as
-the first line of the &quot;Extra Code&quot; which declares your
-subclass.</P>
-
-<P>The class must be similar to the class you are spoofing. It
-does not have to be a subclass. It is sometimes useful to
-change this to another FLTK class. Currently the only way to get
-a double-buffered window is to change this field for the window
-to &quot;Fl_Double_Window&quot; and to add &quot;#include
-&lt;FL/Fl_Double_Window.h&gt;&quot; to the extra code.</P>
-
-<H4>Type (upper-right pulldown menu)</H4>
-
-<P>Some classes have subtypes that modify their appearance or behavior.
-You pick the subtype off of this menu.
-
-<H4>Name (text field)</H4>
-
-<P>Name of a variable to declare, and to store a pointer to this
-widget into. This variable will be of type &quot;&lt;class&gt;*&quot;. If the name is
-blank then no variable is created.
-
-<P>You can name several widgets with &quot;name[0]&quot;, &quot;name[1]&quot;, &quot;name[2]&quot;,
-etc. This will cause FLUID to declare an array of pointers. The array
-is big enough that the highest number found can be stored. All widgets
-that in the array must be the same type.</P>
-
-<H4>Public (button)</H4>
-
-<P>Controls whether the widget is publicly accessible. When
-embedding widgets in a C++ class, this controls whether the
-widget is <TT>public</TT> or <TT>private</TT> in the class.
-Otherwise is controls whether the widget is declared
-<TT>static</TT> or global (<TT>extern</TT>).
-
-<H4>Extra Code (text fields)</H4>
-
-<P>These four fields let you type in literal lines of code to
-dump into the <TT>.h</TT> or <TT>.cxx</TT> files.
-
-<P>If the text starts with a <tt>#</tt> or the word
-<tt>extern</tt> then FLUID thinks this is an &quot;include&quot;
-line, and it is written to the <TT>.h</TT> file. If the same
-include line occurs several times then only one copy is
-written.</P>
-
-<P>All other lines are &quot;code&quot; lines. The current
-widget is pointed to by the local variable <tt>o</tt>. The
-window being constructed is pointed to by the local variable
-<tt>w</tt>. You can also access any arguments passed to the
-function here, and any named widgets that are before this
-one.</P>
-
-<P>FLUID will check for matching parenthesis, braces, and
-quotes, but does not do much other error checking. Be careful
-here, as it may be hard to figure out what widget is producing
-an error in the compiler. If you need more than four lines you
-probably should call a function in your own <TT>.cxx</TT>
-code.</P>
-
-<H4>Callback (text field)</H4>
-
-<P>This can either be the name of a function, or a small snippet
-of code. If you enter anything but letters, numbers, and the
-underscore then FLUID treats it as code.
-
-<P>A name names a function in your own code. It must be
-declared as <tt>void name(&lt;class&gt;*,void*)</tt>.</P>
-
-<P>A code snippet is inserted into a static function in the
-<TT>.cxx</TT> output file. The function prototype is <tt>void
-name(class *o, void *v)</tt> so that you can refer to the
-widget as <tt>o</tt> and the <tt>user_data()</tt> as
-<tt>v</tt>. FLUID will check for matching parenthesis, braces,
-and quotes, but does not do much other error checking. Be
-careful here, as it may be hard to figure out what widget is
-producing an error in the compiler.</P>
-
-<P>If the callback is blank then no callback is set.</P>
-
-<H4>User Data (text field)</H4>
-
-<P>This is a value for the <tt>user_data()</tt> of the widget.
-If blank the default value of zero is used. This can be any
-piece of C code that can be cast to a <tt>void</tt> pointer.
-
-<H4>Type (text field)</H4>
-
-<P>The <tt>void *</tt> in the callback function prototypes is
-replaced with this. You may want to use <tt>long</tt> for old
-XForms code. Be warned that anything other than <tt>void *</tt>
-is not guaranteed to work! However on most architectures other
-pointer types are ok, and <tt>long</tt> is usually ok, too.
-
-<H4>When (pulldown menu)</H4>
-
-<P>When to do the callback. This can be <B>Never</B>,
-<B>Changed</B>, <B>Release</B>, or <B>Enter Key</B>. The value of
-<B>Enter Key</B> is only useful for text input fields.
-
-<P>There are other rare but useful values for the
-<tt>when()</tt> field that are not in the menu. You should use
-the extra code fields to put these values in.</P>
-
-<H4>No Change (button)</H4>
-
-<P>The <B>No Change</B> button means the callback is done on the
-matching event even if the data is not changed.
-
-<H3>Selecting and Moving Widgets</H3>
-
-<P>Double-clicking a window name in the browser will display it,
-if not displayed yet. From this display you can select widgets,
-sets of widgets, and move or resize them. To close a window
-either double-click it or type <KBD>ESC</KBD>.
-
-<P>To select a widget, click it. To select several widgets drag
-a rectangle around them. Holding down shift will toggle the
-selection of the widgets instead.</P>
-
-<P>You cannot pick hidden widgets. You also cannot choose some
-widgets if they are completely overlapped by later widgets. Use
-the browser to select these widgets.</P>
-
-<P>The selected widgets are shown with a red &quot;overlay&quot;
-line around them. You can move the widgets by dragging this
-box. Or you can resize them by dragging the outer edges and
-corners. Hold down the Alt key while dragging the mouse to
-defeat the snap-to-grid effect for fine positioning.</P>
-
-<P>If there is a tab box displayed you can change which child is
-visible by clicking on the file tabs. The child you pick is
-selected.</P>
-
-<P>The arrow, tab, and shift+tab keys &quot;navigate&quot; the
-selection. Left, right, tab, or shift+tab move to the next or
-previous widgets in the hierarchy. Hit the right arrow enough
-and you will select every widget in the window. Up/down widgets
-move to the previous/next widgets that overlap horizontally. If
-the navigation does not seem to work you probably need to
-&quot;Sort&quot; the widgets. This is important if you have
-input fields, as FLTK uses the same rules when using arrow keys
-to move between input fields.</P>
-
-<P>To &quot;open&quot; a widget, double click it. To open
-several widgets select them and then type F1 or pick
-&quot;Edit/Open&quot; off the pop-up menu.</P>
-
-<P>Type Ctrl+o to temporarily toggle the overlay off without
-changing the selection, so you can see the widget borders.</P>
-
-<P>You can resize the window by using the window manager border
-controls. FLTK will attempt to round the window size to the
-nearest multiple of the grid size and makes it big enough to
-contain all the widgets (it does this using illegal X methods,
-so it is possible it will barf with some window managers!).
-Notice that the actual window in your program may not be
-resizable, and if it is, the effect on child widgets may be
-different.</P>
-
-<P>The panel for the window (which you get by double-clicking
-it) is almost identical to the panel for any other Fl_Widget.
-There are three extra items:</P>
-
-<H3><A name="images">Images</A></H3>
-
-<P>The <I>contents</I> of the image files in the <B>Image</B>
-and <B>Inactive</B> text fields are written to the <TT>.cxx</TT>
-file. If many widgets share the same image then only one copy is
-written. Since the image data is embedded in the generated
-source code, you need only distribute the C++ code and not the
-image files themselves.</P>
-
-<P>However, the <I>filenames</I> are stored in the <TT>.fl</TT>
-file so you will need the image files as well to read the
-<TT>.fl</TT> file. Filenames are relative to the location of the
-<TT>.fl</TT> file and not necessarily the current directory. We
-recommend you either put the images in the same directory as the
-<TT>.fl</TT> file, or use absolute path names.</P>
-
-<H4>Notes for All Image Types</H4>
-
-<P>FLUID runs using the default visual of your X server. This
-may be 8 bits, which will give you dithered images. You may get
-better results in your actual program by adding the code
-&quot;Fl::visual(FL_RGB)&quot; to your code right before the
-first window is displayed.
-
-<P>All widgets with the same image on them share the same code
-and source X pixmap. Thus once you have put an image on a
-widget, it is nearly free to put the same image on many other
-widgets.</P>
-
-<P>If you edit an image at the same time you are using it in FLUID,
-the only way to convince FLUID to read the image file again is to
-remove the image from all widgets that are using it or re-load the
-<TT>.fl</TT> file.</P>
-
-<P>Don't rely on how FLTK crops images that are outside the
-widget, as this may change in future versions! The cropping of
-inside labels will probably be unchanged.</P>
-
-<P>To more accurately place images, make a new &quot;box&quot;
-widget and put the image in that as the label.</P>
-
-<H4>XBM (X Bitmap) Files</H4>
-
-<P>FLUID reads X bitmap files which use C source code to define
-a bitmap. Sometimes they are stored with the &quot;.h&quot; or
-&quot;.bm&quot; extension rather than the standard
-&quot;.xbm&quot; extension.
-
-<P>FLUID writes code to construct an Fl_Bitmap image and use it
-to label the widget. The '1' bits in the bitmap are drawn using
-the label color of the widget. You can change this color in the
-FLUID widget attributes panel. The '0' bits are transparent.</P>
-
-<P>The program &quot;bitmap&quot; on the X distribution does an
-adequate job of editing bitmaps.</P>
-
-<H4>XPM (X Pixmap) Files</H4>
-
-<P>FLUID reads X pixmap files as used by the <TT>libxpm</TT>
-library. These files use C source code to define a pixmap. The
-filenames usually have the &quot;.xpm&quot; extension.
-
-<P>FLUID writes code to construct an Fl_Pixmap image and use it
-to label the widget. The label color of the widget is ignored,
-even for 2-color images that could be a bitmap. XPM files can
-mark a single color as being transparent, and FLTK uses this
-information to generate a transparency mask for the image.</P>
-
-<P>We have not found any good editors for small iconic pictures.
-For pixmaps we have used <A
-href="http://home.worldonline.dk/~torsten/xpaint/index.html">XPaint</A>
-and the KDE icon editor.</P>
-
-<H4>BMP Files</H4>
-
-<P>FLUID reads Windows BMP image files which are often used in
-WIN32 applications for icons. FLUID converts BMP files into
-(modified) XPM format and uses a Fl_BMP_Image image to label the
-widget. Transparency is handled the same as for XPM files. All
-image data is uncompressed when written to the source file, so
-the code may be much bigger than the <TT>.bmp</TT> file.</P>
-
-<H4>GIF Files</H4>
-
-<P>FLUID reads GIF image files which are often used in HTML
-documents to make icons. FLUID converts GIF files into
-(modified) XPM format and uses a Fl_GIF_Image image to label the
-widget. Transparency is handled the same as for XPM files. All
-image data is uncompressed when written to the source file, so
-the code may be much bigger than the <TT>.gif</TT> file. Only
-the first image of an animated GIF file is used.</P>
-
-<H4>JPEG Files</H4>
-
-<P>If FLTK is compiled with JPEG support, FLUID can read JPEG
-image files which are often used for digital photos. FLUID uses
-a Fl_JPEG_Image image to label the widget, and writes
-uncompressed RGB or grayscale data to the source file.
-
-<H4>PNG (Portable Network Graphics) Files</H4>
-
-<P>If FLTK is compiled with PNG support, FLUID can read PNG
-image files which are often used in HTML documents. FLUID uses a
-Fl_PNG_Image image to label the widget, and writes uncompressed
-RGB or grayscale data to the source file. PNG images can provide
-a full alpha channel for partial transparency, and FLTK supports
-this as best as possible on each platform.
-
-<H2><A NAME="I18N">Internationalization with FLUID</A></H2>
-
-<P>FLUID supports internationalization (I18N for short) of label
-strings used by widgets. The preferences window
-(<TT>Ctrl+p</TT>) provides access to the I18N options.
-
-<H3>I18N Methods</H3>
-
-<P>FLUID supports three methods of I18N: use none, use GNU
-gettext, and use POSIX catgets. The "use none" method is the
-default and just passes the label strings as-is to the widget
-constructors.
-
-<P>The "GNU gettext" method uses GNU gettext (or a similar
-text-based I18N library) to retrieve a localized string before
-calling the widget constructor.
-
-<P>The "POSIX catgets" method uses the POSIX catgets function to
-retrieve a numbered message from a message catalog before
-calling the widget constructor.
-
-<H3>Using GNU gettext for I18N</H3>
-
-<P>FLUID's code support for GNU gettext is limited to calling a
-function or macro to retrieve the localized label; you still
-need to call <TT>setlocale()</TT> and <TT>textdomain()</TT> or
-<TT>bindtextdomain()</TT> to select the appropriate language and
-message file.
-
-<P>To use GNU gettext for I18N, open the preferences window and
-choose "GNU gettext" from the "Use" chooser. Two new input
-fields will then appear to control the include file and
-function/macro name to use when retrieving the localized label
-strings.
-
-<P ALIGN="CENTER"><IMG SRC="fluid-gettext.gif" ALT="I18N using GNU gettext."><BR>
-<I>Figure 9-11: Internationalization using GNU gettext.</I></P>
-
-<P>The "#include" field controls the header file to include for
-I18N; by default this is <TT>&lt;libintl.h&gt;</TT>, the
-standard I18N file for GNU gettext.
-
-<P>The "Function" field controls the function (or macro) that
-will retrieve the localized message; by default the
-<TT>gettext</TT> function will be called.
-
-<H3>Using POSIX catgets for I18N</H3>
-
-<P>FLUID's code support for POSIX catgets allows you to use a
-global message file for all interfaces or a file specific to
-each <TT>.fl</TT> file; you still need to call
-<TT>setlocale()</TT> to select the appropriate language.
-
-<P>To use POSIX catgets for I18N, open the preferences window
-and choose "POSIX catgets" from the "Use" chooser. Three new
-input fields will then appear to control the include file,
-catalog file, and set number for retrieving the localized label
-strings.
-
-<P ALIGN="CENTER"><IMG SRC="fluid-catgets.gif" ALT="I18N using POSIX catgets."><BR>
-<I>Figure 9-12: Internationalization using POSIX catgets.</I></P>
-
-<P>The "#include" field controls the header file to include for
-I18N; by default this is <TT>&lt;nl_types.h&gt;</TT>, the
-standard I18N file for POSIX catgets.
-
-<P>The "File" field controls the name of the catalog file
-variable to use when retrieving localized messages; by default
-the file field is empty which forces a local (static) catalog
-file to be used for all of the windows defined in your
-<TT>.fl</TT> file.
-
-<P>The "Set" field controls the set number in the catalog file.
-The default set is 1 and rarely needs to be changed.
-
-<H2><A NAME="limitations">Know limitations</A></H2>
-
-Declaration Blocks can be used to temporarily block out already
-designed code using <code>#if 0</code> and <code>#endif</code>
-type construction. This will effectively avoid compilation of
-blocks of code. However, static code and data generated by this
-segment (menu items, images, include statements, etc.) will still
-be generated and likely cause compile-time warnings.
-
-</BODY>
-</HTML>
diff --git a/documentation/forms.html b/documentation/forms.html
deleted file mode 100644
index 269fa299a..000000000
--- a/documentation/forms.html
+++ /dev/null
@@ -1,203 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>E - Forms Compatibility</TITLE>
-</HEAD>
-<BODY>
-<H1 ALIGN=RIGHT><A NAME=forms>E - Forms Compatibility</A></H1>
- This appendix describes the Forms compatibility included with FLTK.
-<H2>Importing Forms Layout Files</H2>
-<A href=fluid.html#FLUID>FLUID</A> can read the .fd files put out by
-all versions of Forms and XForms fdesign. However, it will mangle them
-a bit, but it prints a warning message about anything it does not
-understand. FLUID cannot write fdesign files, so you should save to a
-new name so you don't write over the old one.
-<P>You will need to edit your main code considerably to get it to link
-with the output from FLUID. If you are not interested in this you may
-have more immediate luck with the forms compatibility header, <TT>
-&lt;FL/forms.H&gt;</TT>. </P>
-<H2>Using the Compatibility Header File</H2>
- You should be able to compile existing Forms or XForms source code by
-changing the include directory switch to your compiler so that the <TT>
-forms.h</TT> file supplied with FLTK is included. Take a look at <TT>
-forms.h</TT> to see how it works, but the basic trick is lots of inline
-functions. Most of the XForms demo programs work without changes.
-<P>You will also have to compile your Forms or XForms program using a
-C++ compiler. The FLTK library does not provide C bindings or header
-files. </P>
-<P>Although FLTK was designed to be compatible with the GL Forms
-library (version 0.3 or so), XForms has bloated severely and it's
-interface is X-specific. Therefore, XForms compatibility is no longer
-a goal of FLTK. Compatibility was limited to things that were free, or
-that would add code that would not be linked in if the feature is
-unused, or that was not X-specific. </P>
-<P>To use any new features of FLTK, you should rewrite your code to not
-use the inline functions and instead use &quot;pure&quot; FLTK. This will make
-it a lot cleaner and make it easier to figure out how to call the FLTK
-functions. Unfortunately this conversion is harder than expected and
-even Digital Domain's inhouse code still uses <TT>forms.H</TT> a lot. </P>
-<H2>Problems You Will Encounter</H2>
-<P>Many parts of XForms use X-specific structures like <TT>XEvent</TT>
- in their interface. I did not emulate these! Unfortunately these
-features (such as the &quot;canvas&quot; widget) are needed by most large
-programs. You will need to rewrite these to use FLTK subclasses. </P>
-<P><A href=Fl_Free.html#Fl_Free><TT>Fl_Free</TT></A> widgets emulate
-the <I>old</I> Forms &quot;free&quot; widget. It may be useful for porting
-programs that change the <TT>handle()</TT> function on widgets, but you
-will still need to rewrite things. </P>
-<P><A href=Fl_Timer.html#Fl_Timer><TT>Fl_Timer</TT></A> widgets are
-provided to emulate the XForms timer. These work, but are quite
-inefficient and inaccurate compared to using <A href="Fl.html#Fl.add_timeout">
-<TT>Fl::add_timeout()</TT></A>. </P>
-<P><I>All instance variables are hidden.</I> If you directly refer to
-the x, y, w, h, label, or other fields of your Forms widgets you will
-have to add empty parenthesis after each reference. The easiest way to
-do this is to globally replace &quot;-&gt;x&quot; with &quot;-&gt;x()&quot;, etc. Replace
-&quot;boxtype&quot; with &quot;box()&quot;. </P>
-<P><TT>const char *</TT> arguments to most FLTK methods are simply
-stored, while Forms would <TT>strdup()</TT> the passed string. This is
-most noticable with the label of widgets. Your program must always
-pass static data such as a string constant or malloc'd buffer to <TT>
-label()</TT>. If you are using labels to display program output you
-may want to try the <A href=Fl_Output.html#Fl_Output><TT>Fl_Output</TT></A>
- widget. </P>
-<P>The default fonts and sizes are matched to the older GL version of
-Forms, so all labels will draw somewhat larger than an XForms program
-does. </P>
-<P>fdesign outputs a setting of a &quot;fdui&quot; instance variable to the main
-window. I did not emulate this because I wanted all instance variables
-to be hidden. You can store the same information in the <TT>user_data()</TT>
- field of a window. To do this, search through the fdesign output for
-all occurances of &quot;-&gt;fdui&quot; and edit to use &quot;-&gt;user_data()&quot; instead.
- This will require casts and is not trivial. </P>
-<P>The prototype for the functions passed to <TT>fl_add_timeout()</TT>
- and <TT>fl_set_idle_callback()</TT> callback are different. </P>
-<P><B>All the following XForms calls are missing:</B></P>
-<UL>
-<LI><TT>FL_REVISION</TT>, <TT>fl_library_version()</TT></LI>
-<LI><TT>FL_RETURN_DBLCLICK</TT> (use <TT>Fl::event_clicks()</TT>) </LI>
-<LI><TT>fl_add_signal_callback()</TT></LI>
-<LI><TT>fl_set_form_atactivate()</TT> <TT>fl_set_form_atdeactivate()</TT>
-</LI>
-<LI><TT>fl_set_form_property()</TT></LI>
-<LI><TT>fl_set_app_mainform()</TT>, <TT>fl_get_app_mainform()</TT></LI>
-<LI><TT>fl_set_form_minsize()</TT>, <TT>fl_set_form_maxsize()</TT></LI>
-<LI><TT>fl_set_form_event_cmask()</TT>, <TT>fl_get_form_event_cmask()</TT>
-</LI>
-<LI><TT>fl_set_form_dblbuffer()</TT>, <TT>fl_set_object_dblbuffer()</TT>
- (use an <TT>Fl_Double_Window</TT> instead) </LI>
-<LI><TT>fl_adjust_form_size()</TT></LI>
-<LI><TT>fl_register_raw_callback()</TT></LI>
-<LI><TT>fl_set_object_bw()</TT>, <TT>fl_set_border_width()</TT></LI>
-<LI><TT>fl_set_object_resize()</TT>, <TT>fl_set_object_gravity()</TT></LI>
-<LI><TT>fl_set_object_shortcutkey()</TT></LI>
-<LI><TT>fl_set_object_automatic()</TT></LI>
-<LI><TT>fl_get_object_bbox()</TT> (maybe FLTK should do this) </LI>
-<LI><TT>fl_set_object_prehandler()</TT>, <TT>fl_set_object_posthandler()</TT>
-</LI>
-<LI><TT>fl_enumerate_fonts()</TT></LI>
-<LI>Most drawing functions </LI>
-<LI><TT>fl_set_coordunit()</TT> (FLTK uses pixels all the time) </LI>
-<LI><TT>fl_ringbell()</TT></LI>
-<LI><TT>fl_gettime()</TT></LI>
-<LI><TT>fl_win*()</TT> (all these functions) </LI>
-<LI><TT>fl_initialize(argc,argv,x,y,z)</TT> ignores last 3 arguments </LI>
-<LI><TT>fl_read_bitmapfile()</TT>, <TT>fl_read_pixmapfile()</TT></LI>
-<LI><TT>fl_addto_browser_chars()</TT></LI>
-<LI><TT>FL_MENU_BUTTON</TT> just draws normally </LI>
-<LI><TT>fl_set_bitmapbutton_file()</TT>, <TT>fl_set_pixmapbutton_file()</TT>
-</LI>
-<LI><TT>FL_CANVAS</TT> objects </LI>
-<LI><TT>FL_DIGITAL_CLOCK</TT> (comes out analog) </LI>
-<LI><TT>fl_create_bitmap_cursor()</TT>, <TT>fl_set_cursor_color()</TT></LI>
-<LI><TT>fl_set_dial_angles()</TT></LI>
-<LI><TT>fl_show_oneliner()</TT></LI>
-<LI><TT>fl_set_choice_shortcut(a,b,c) </TT></LI>
-<LI>command log </LI>
-<LI>Only some of file selector is emulated </LI>
-<LI><TT>FL_DATE_INPUT</TT></LI>
-<LI><TT>fl_pup*()</TT> (all these functions) </LI>
-<LI>textbox object (should be easy but I had no sample programs) </LI>
-<LI>xyplot object </LI>
-</UL>
-<H2>Additional Notes</H2>
- These notes were written for porting programs written with the older
-IRISGL version of Forms. Most of these problems are the same ones
-encountered when going from old Forms to XForms:
-<H3>Does Not Run In Background</H3>
- The IRISGL library always forked when you created the first window,
-unless &quot;foreground()&quot; was called. FLTK acts like &quot;foreground()&quot; is
-called all the time. If you really want the fork behavior do &quot;if
-(fork()) exit(0)&quot; right at the start of your program.
-<H3>You Cannot Use IRISGL Windows or fl_queue</H3>
- If a Forms (not XForms) program if you wanted your own window for
-displaying things you would create a IRISGL window and draw in it,
-periodically calling Forms to check if the user hit buttons on the
-panels. If the user did things to the IRISGL window, you would find
-this out by having the value FL_EVENT returned from the call to Forms.
-<P>None of this works with FLTK. Nor will it compile, the necessary
-calls are not in the interface. </P>
-<P>You have to make a subclass of <A href=Fl_Gl_Window.html#Fl_Gl_Window>
-<TT>Fl_Gl_Window</TT></A> and write a <TT>draw()</TT> method and <TT>
-handle()</TT> method. This may require anywhere from a trivial to a
-major rewrite. </P>
-<P>If you draw into the overlay planes you will have to also write a <TT>
-draw_overlay()</TT> method and call <TT>redraw_overlay()</TT> on the
-OpenGL window. </P>
-<P>One easy way to hack your program so it works is to make the <TT>
-draw()</TT> and <TT>handle()</TT> methods on your window set some
-static variables, storing what event happened. Then in the main loop
-of your program, call <TT>Fl::wait()</TT> and then check these
-variables, acting on them as though they are events read from <TT>
-fl_queue</TT>. </P>
-<H3>You Must Use OpenGL to Draw Everything</H3>
-<P>The file <TT>&lt;FL/gl.h&gt;</TT> defines replacements for a lot of IRISGL
-calls, translating them to OpenGL. There are much better translators
-available that you might want to investigate. </P>
-<H3>You Cannot Make Forms Subclasses</H3>
- Programs that call <TT>fl_make_object</TT> or directly setting the
-handle routine will not compile. You have to rewrite them to use a
-subclass of <TT>Fl_Widget</TT>. It is important to note that the <TT>
-handle()</TT> method is not exactly the same as the <TT>handle()</TT>
- function of Forms. Where a Forms <TT>handle()</TT> returned non-zero,
-your <TT>handle()</TT> must call <TT>do_callback()</TT>. And your <TT>
-handle()</TT> must return non-zero if it &quot;understood&quot; the event.
-<P>An attempt has been made to emulate the &quot;free&quot; widget. This appears
-to work quite well. It may be quicker to modify your subclass into a
-&quot;free&quot; widget, since the &quot;handle&quot; functions match. </P>
-<P>If your subclass draws into the overlay you are in trouble and will
-have to rewrite things a lot. </P>
-<H3>You Cannot Use &lt;device.h&gt;</H3>
- If you have written your own &quot;free&quot; widgets you will probably get a
-lot of errors about &quot;getvaluator&quot;. You should substitute:
-<CENTER><TABLE border=1 WIDTH=90% summary="Mapping of Forms valuators to FLTK.">
-<TR><TH align=center>Forms</TH><TH align=center>FLTK</TH></TR>
-<TR><TD>MOUSE_X</TD><TD>Fl::event_x_root()</TD></TR>
-<TR><TD>MOUSE_Y</TD><TD>Fl::event_y_root()</TD></TR>
-<TR><TD>LEFTSHIFTKEY,RIGHTSHIFTKEY</TD><TD>Fl::event_shift()</TD></TR>
-<TR><TD>CAPSLOCKKEY</TD><TD>Fl::event_capslock()</TD></TR>
-<TR><TD>LEFTCTRLKEY,RIGHTCTRLKEY</TD><TD>Fl::event_ctrl()</TD></TR>
-<TR><TD>LEFTALTKEY,RIGHTALTKEY</TD><TD>Fl::event_alt()</TD></TR>
-<TR><TD>MOUSE1,RIGHTMOUSE</TD><TD>Fl::event_state()</TD></TR>
-<TR><TD>MOUSE2,MIDDLEMOUSE</TD><TD>Fl::event_state()</TD></TR>
-<TR><TD>MOUSE3,LEFTMOUSE</TD><TD>Fl::event_state()</TD></TR>
-</TABLE></CENTER>
- Anything else in <TT>getvaluator</TT> and you are on your own...
-<H3>Font Numbers Are Different</H3>
- The &quot;style&quot; numbers have been changed because I wanted to insert
-bold-italic versions of the normal fonts. If you use Times, Courier,
-or Bookman to display any text you will get a different font out of
-FLTK. If you are really desperate to fix this use the following code:
-<UL>
-<PRE>
-fl_font_name(3,&quot;*courier-medium-r-no*&quot;);
-fl_font_name(4,&quot;*courier-bold-r-no*&quot;);
-fl_font_name(5,&quot;*courier-medium-o-no*&quot;);
-fl_font_name(6,&quot;*times-medium-r-no*&quot;);
-fl_font_name(7,&quot;*times-bold-r-no*&quot;);
-fl_font_name(8,&quot;*times-medium-i-no*&quot;);
-fl_font_name(9,&quot;*bookman-light-r-no*&quot;);
-fl_font_name(10,&quot;*bookman-demi-r-no*&quot;);
-fl_font_name(11,&quot;*bookman-light-i-no*&quot;);
-</PRE>
-</UL>
-</BODY></HTML>
diff --git a/documentation/functions.html b/documentation/functions.html
deleted file mode 100644
index 8624f9d6e..000000000
--- a/documentation/functions.html
+++ /dev/null
@@ -1,1460 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>B - Function Reference</TITLE>
-</HEAD>
-<BODY>
-
-<H1 ALIGN="RIGHT"><A NAME="functions">B - Function Reference</A></H1>
-
-<P>This appendix describes all of the <tt>fl_</tt> functions. For a
-description of the FLTK classes, see <A href="widgets.html">Appendix
-A</A>.
-
-<H2>Function List by Name</H2>
-
-<TABLE width=100%>
- <TR>
- <TD width=33%>
- <UL>
- <LI><A HREF="osissues.html#WIN32.gdi"><TT>fl_RGB</TT></A> (WIN32)</LI>
- <LI><A HREF="common.html#add_symbol"><TT>fl_add_symbol</TT></A></LI>
- <LI><A HREF="#fl_alert"><TT>fl_alert</TT></A></LI>
- <LI><A HREF="#fl_alphasort"><TT>fl_alphasort</TT></A></LI>
- <LI><A HREF="drawing.html#fl_arc"><TT>fl_arc</TT></A></LI>
- <LI><A HREF="#fl_ask"><TT>fl_ask</TT></A></LI>
- <LI><A HREF="#fl_beep"><TT>fl_beep</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_complex_polygon"><TT>fl_begin_complex_polygon</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_line"><TT>fl_begin_line</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_loop"><TT>fl_begin_loop</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_offscreen"><TT>fl_begin_offscreen</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_points"><TT>fl_begin_points</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_polygon"><TT>fl_begin_polygon</TT></A></LI>
- <LI><A HREF="common.html#fl_box"><TT>fl_box</TT></A></LI>
- <LI><A HREF="osissues.html#WIN32.gdi"><TT>fl_brush</TT></A> (WIN32)</LI>
- <LI><A HREF="drawing.html#fl_can_do_alpha_blending"><TT>fl_can_do_alpha_blending</TT></A></LI>
- <LI><A HREF="#fl_casealphasort"><TT>fl_casealphasort</TT></A></LI>
- <LI><A HREF="#fl_casenumericsort"><TT>fl_casenumericsort</TT></A></LI>
- <LI><A HREF="#fl_choice2"><TT>fl_choice</TT></A></LI>
- <LI><A HREF="drawing.html#fl_circle"><TT>fl_circle</TT></A></LI>
- <LI><A HREF="drawing.html#fl_clip_box"><TT>fl_clip_box</TT></A></LI>
- <LI><A HREF="drawing.html#fl_clip_region"><TT>fl_clip_region</TT></A></LI>
- <LI><A HREF="osissues.html#fl_close_display"><TT>fl_close_display</TT></A></LI>
- <LI><A HREF="drawing.html#fl_color"><TT>fl_color</TT></A></LI>
- <LI><A HREF="#fl_color_average"><TT>fl_color_average</TT></A></LI>
- <LI><A HREF="#fl_color_chooser_func"><TT>fl_color_chooser</TT></A></LI>
- <LI><A HREF="#fl_color_cube"><TT>fl_color_cube</TT></A></LI>
- <LI><A HREF="#fl_contrast"><TT>fl_contrast</TT></A></LI>
- <LI><A HREF="drawing.html#fl_copy_offscreen"><TT>fl_copy_offscreen</TT></A></LI>
- <LI><A HREF="drawing.html#fl_create_offscreen"><TT>fl_create_offscreen</TT></A></LI>
- <LI><A HREF="#fl_cursor"><TT>fl_cursor</TT></A></LI>
- <LI><A HREF="drawing.html#fl_curve"><TT>fl_curve</TT></A></LI>
- <LI><A HREF="#fl_darker"><TT>fl_darker</TT></A></LI>
- <LI><A HREF="drawing.html#fl_delete_offscreen"><TT>fl_delete_offscreen</TT></A></LI>
- <LI><A HREF="drawing.html#fl_descent"><TT>fl_descent</TT></A></LI>
- <LI><A HREF="#fl_dir_chooser"><TT>fl_dir_chooser</TT></A></LI>
- <LI><A HREF="common.html#fl_down"><TT>fl_down</TT></A></LI>
- <LI><A HREF="drawing.html#fl_draw"><TT>fl_draw</TT></A></LI>
- <LI><A HREF="drawing.html#fl_draw_box"><TT>fl_draw_box</TT></A></LI>
- <LI><A HREF="drawing.html#fl_draw_image"><TT>fl_draw_image</TT></A></LI>
- <LI><A HREF="drawing.html#fl_draw_image"><TT>fl_draw_image_mono</TT></A></LI>
- <LI><A HREF="drawing.html#fl_draw_pixmap"><TT>fl_draw_pixmap</TT></A></LI>
- <LI><A HREF="common.html#fl_draw_symbol"><TT>fl_draw_symbol</TT></A></LI>
- </UL>
- </TD>
- <TD width=33%>
- <UL>
- <LI><A HREF="drawing.html#fl_begin_complex_polygon"><TT>fl_end_complex_polygon</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_line"><TT>fl_end_line</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_loop"><TT>fl_end_loop</TT></A></LI>
- <LI><A HREF="drawing.html#fl_end_offscreen"><TT>fl_end_offscreen</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_points"><TT>fl_end_points</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_polygon"><TT>fl_end_polygon</TT></A></LI>
- <LI><A HREF="#fl_file_chooser2"><TT>fl_file_chooser</TT></A></LI>
- <LI><A HREF="#fl_file_chooser_callback"><TT>fl_file_chooser_callback</TT></A></LI>
- <LI><A HREF="#fl_file_chooser_ok_label"><TT>fl_file_chooser_ok_label</TT></A></LI>
- <LI><A HREF="#fl_filename_absolute"><TT>fl_filename_absolute</TT></A></LI>
- <LI><A HREF="#fl_filename_expand"><TT>fl_filename_expand</TT></A></LI>
- <LI><A HREF="#fl_filename_ext"><TT>fl_filename_ext</TT></A></LI>
- <LI><A HREF="#fl_filename_isdir"><TT>fl_filename_isdir</TT></A></LI>
- <LI><A HREF="#fl_filename_list"><TT>fl_filename_list</TT></A></LI>
- <LI><A HREF="#fl_filename_match"><TT>fl_filename_match</TT></A></LI>
- <LI><A HREF="#fl_filename_name"><TT>fl_filename_name</TT></A></LI>
- <LI><A HREF="#fl_filename_relative"><TT>fl_filename_relative</TT></A></LI>
- <LI><A HREF="#fl_filename_setext"><TT>fl_filename_setext</TT></A></LI>
- <LI><A HREF="osissues.html#fl_find"><TT>fl_find</TT></A></LI>
- <LI><A HREF="drawing.html#fl_font"><TT>fl_font</TT></A></LI>
- <LI><A HREF="common.html#fl_frame"><TT>fl_frame</TT></A></LI>
- <LI><A HREF="drawing.html#fl_frame"><TT>fl_frame</TT></A></LI>
- <LI><A HREF="drawing.html#fl_frame2"><TT>fl_frame2</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_complex_polygon"><TT>fl_gap</TT></A></LI>
- <LI><A HREF="#fl_gray_ramp"><TT>fl_gray_ramp</TT></A></LI>
- <LI><A HREF="osissues.html#fl_handle"><TT>fl_handle</TT></A> (X11)</LI>
- <LI><A HREF="drawing.html#fl_height"><TT>fl_height</TT></A></LI>
- <LI><A HREF="#fl_inactive"><TT>fl_inactive</TT></A></LI>
- <LI><A HREF="#fl_input2"><TT>fl_input</TT></A></LI>
- <LI><A HREF="drawing.html#character_encoding"><TT>fl_latin1_to_local</TT></A></LI>
- <LI><A HREF="#fl_lighter"><TT>fl_lighter</TT></A></LI>
- <LI><A HREF="drawing.html#fl_line"><TT>fl_line</TT></A></LI>
- <LI><A HREF="drawing.html#fl_line_style"><TT>fl_line_style</TT></A></LI>
- <LI><A HREF="drawing.html#character_encoding"><TT>fl_local_to_latin1</TT></A></LI>
- <LI><A HREF="drawing.html#character_encoding"><TT>fl_local_to_mac_roman</TT></A></LI>
- <LI><A HREF="drawing.html#fl_loop"><TT>fl_loop</TT></A></LI>
- <LI><A HREF="drawing.html#character_encoding"><TT>fl_mac_roman_to_local</TT></A></LI>
- <LI><A HREF="drawing.html#fl_measure"><TT>fl_measure</TT></A></LI>
- <LI><A HREF="drawing.html#fl_measure_pixmap"><TT>fl_measure_pixmap</TT></A></LI>
- <LI><A HREF="#fl_message"><TT>fl_message</TT></A></LI>
- <LI><A HREF="#fl_message_font"><TT>fl_message_font</TT></A></LI>
- <LI><A HREF="#fl_message_icon"><TT>fl_message_icon</TT></A></LI>
- </UL>
- </TD>
- <TD width=30%>
- <UL>
- <LI><A HREF="drawing.html#fl_scale"><TT>fl_mult_matrix</TT></A></LI>
- <LI><A HREF="drawing.html#fl_not_clipped"><TT>fl_not_clipped</TT></A></LI>
- <LI><A HREF="#fl_numericsort"><TT>fl_numericsort</TT></A></LI>
- <LI><A HREF="osissues.html#fl_open_callback"><TT>fl_open_callback</TT></A></LI>
- <LI><A HREF="osissues.html#fl_open_display"><TT>fl_open_display</TT></A></LI>
- <LI><A HREF="#fl_open_uri"><TT>fl_open_uri</TT></A></LI>
- <LI><A HREF="drawing.html#overlay"><TT>fl_overlay_clear</TT></A></LI>
- <LI><A HREF="drawing.html#overlay"><TT>fl_overlay_rect</TT></A></LI>
- <LI><A HREF="osissues.html#fl_parse_color"><TT>fl_parse_color</TT></A></LI>
- <LI><A HREF="#fl_password"><TT>fl_password</TT></A></LI>
- <LI><A HREF="osissues.html#WIN32.gdi"><TT>fl_pen</TT></A> (WIN32)</LI>
- <LI><A HREF="drawing.html#fl_pie"><TT>fl_pie</TT></A></LI>
- <LI><A HREF="drawing.html#fl_point"><TT>fl_point</TT></A></LI>
- <LI><A HREF="drawing.html#fl_polygon"><TT>fl_polygon</TT></A></LI>
- <LI><A HREF="drawing.html#fl_pop_clip"><TT>fl_pop_clip</TT></A></LI>
- <LI><A HREF="drawing.html#fl_push_matrix"><TT>fl_pop_matrix</TT></A></LI>
- <LI><A HREF="drawing.html#fl_push_clip"><TT>fl_push_clip</TT></A></LI>
- <LI><A HREF="drawing.html#fl_push_matrix"><TT>fl_push_matrix</TT></A></LI>
- <LI><A HREF="drawing.html#fl_push_no_clip"><TT>fl_push_no_clip</TT></A></LI>
- <LI><A HREF="drawing.html#fl_read_image"><TT>fl_read_image</TT></A></LI>
- <LI><A HREF="drawing.html#fl_rect"><TT>fl_rect</TT></A></LI>
- <LI><A HREF="drawing.html#fl_rectf"><TT>fl_rectf</TT></A></LI>
- <LI><A HREF="#fl_register_images"><TT>fl_register_images</TT></A></LI>
- <LI><A HREF="#fl_rgb_color"><TT>fl_rgb_color</TT></A></LI>
- <LI><A HREF="drawing.html#fl_scale"><TT>fl_rotate</TT></A></LI>
- <LI><A HREF="drawing.html#fl_scale"><TT>fl_scale</TT></A></LI>
- <LI><A HREF="drawing.html#fl_scroll"><TT>fl_scroll</TT></A></LI>
- <LI><A HREF="drawing.html#fl_shortcut_label"><TT>fl_shortcut_label</TT></A></LI>
- <LI><A HREF="#fl_show_colormap"><TT>fl_show_colormap</TT></A></LI>
- <LI><A HREF="drawing.html#fl_size"><TT>fl_size</TT></A></LI>
- <LI><A HREF="drawing.html#fl_transform"><TT>fl_transform_dx</TT></A></LI>
- <LI><A HREF="drawing.html#fl_transform"><TT>fl_transform_dy</TT></A></LI>
- <LI><A HREF="drawing.html#fl_transform"><TT>fl_transform_x</TT></A></LI>
- <LI><A HREF="drawing.html#fl_transform"><TT>fl_transform_y</TT></A></LI>
- <LI><A HREF="drawing.html#fl_transform"><TT>fl_transformed_vertex</TT></A></LI>
- <LI><A HREF="drawing.html#fl_scale"><TT>fl_translate</TT></A></LI>
- <LI><A HREF="drawing.html#fl_vertex"><TT>fl_vertex</TT></A></LI>
- <LI><A HREF="drawing.html#fl_width"><TT>fl_width</TT></A></LI>
- <LI><A HREF="osissues.html#fl_xid"><TT>fl_xid</TT></A></LI>
- <LI><A HREF="osissues.html#fl_xpixel"><TT>fl_xpixel</TT></A></LI>
- <LI><A HREF="drawing.html#fl_xyline"><TT>fl_xyline</TT></A></LI>
- <LI><A HREF="drawing.html#fl_yxline"><TT>fl_yxline</TT></A></LI>
-<!-- <LI><A HREF=""><TT>fl_brush_action</TT></A> (WIN32)</LI> -->
-<!-- <LI><A HREF=""><TT>fl_create_alphamask</TT></A></LI> -->
-<!-- <LI><A HREF=""><TT>fl_create_bitmask</TT></A></LI> -->
-<!-- <LI><A HREF=""><TT>fl_delete_bitmask</TT></A></LI> -->
-<!-- <LI><A HREF=""><TT>fl_makeDC</TT></A> (WIN32)</LI> -->
-<!-- <LI><A HREF=""><TT>fl_old_shortcut</TT></A></LI> -->
-<!-- <LI><A HREF=""><TT>fl_release_dc</TT></A></LI> -->
-<!-- <LI><A HREF=""><TT>fl_save_dc</TT></A></LI> -->
- </UL>
- </TD>
- </TR>
-</TABLE>
-
-<H2>Function List by Category</H2>
-
-<TABLE width=100%>
- <TR>
- <TD width=50% valign=top>
-<UL>
- <LI>Drawing Functions
- <UL>
- <LI>Color
- <UL>
- <LI><A HREF="drawing.html#fl_color"><TT>fl_color</TT></A></LI>
- <LI><A HREF="#fl_color_average"><TT>fl_color_average</TT></A></LI>
- <LI><A HREF="#fl_color_cube"><TT>fl_color_cube</TT></A></LI>
- <LI><A HREF="#fl_contrast"><TT>fl_contrast</TT></A></LI>
- <LI><A HREF="#fl_cursor"><TT>fl_cursor</TT></A></LI>
- <LI><A HREF="#fl_darker"><TT>fl_darker</TT></A></LI>
- <LI><A HREF="#fl_gray_ramp"><TT>fl_gray_ramp</TT></A></LI>
- <LI><A HREF="#fl_lighter"><TT>fl_lighter</TT></A></LI>
- <LI><A HREF="#fl_rgb_color"><TT>fl_rgb_color</TT></A></LI>
- </UL>
- <LI>Text
- <UL>
- <LI><A HREF="drawing.html#fl_descent"><TT>fl_descent</TT></A></LI>
- <LI><A HREF="drawing.html#fl_draw"><TT>fl_draw</TT></A></LI>
- <LI><A HREF="drawing.html#fl_font"><TT>fl_font</TT></A></LI>
- <LI><A HREF="drawing.html#fl_height"><TT>fl_height</TT></A></LI>
- <LI><A HREF="drawing.html#character_encoding"><TT>fl_latin1_to_local</TT></A></LI>
- <LI><A HREF="drawing.html#character_encoding"><TT>fl_local_to_latin1</TT></A></LI>
- <LI><A HREF="drawing.html#character_encoding"><TT>fl_local_to_mac_roman</TT></A></LI>
- <LI><A HREF="drawing.html#character_encoding"><TT>fl_mac_roman_to_local</TT></A></LI>
- <LI><A HREF="drawing.html#fl_measure"><TT>fl_measure</TT></A></LI>
- <LI><A HREF="drawing.html#fl_shortcut_label"><TT>fl_shortcut_label</TT></A></LI>
- <LI><A HREF="drawing.html#fl_size"><TT>fl_size</TT></A></LI>
- <LI><A HREF="drawing.html#fl_width"><TT>fl_width</TT></A></LI>
- </UL>
- <LI>Symbols
- <UL>
- <LI><A HREF="common.html#add_symbol"><TT>fl_add_symbol</TT></A></LI>
- <LI><A HREF="common.html#fl_draw_symbol"><TT>fl_draw_symbol</TT></A></LI>
- </UL>
- <LI>Fast Drawing
- <UL>
- <LI><A HREF="drawing.html#fl_arc"><TT>fl_arc</TT></A></LI>
- <LI><A HREF="drawing.html#fl_circle"><TT>fl_circle</TT></A></LI>
- <LI><A HREF="drawing.html#fl_frame"><TT>fl_frame</TT></A></LI>
- <LI><A HREF="drawing.html#fl_frame2"><TT>fl_frame2</TT></A></LI>
- <LI><A HREF="drawing.html#fl_line"><TT>fl_line</TT></A></LI>
- <LI><A HREF="drawing.html#fl_line_style"><TT>fl_line_style</TT></A></LI>
- <LI><A HREF="drawing.html#fl_loop"><TT>fl_loop</TT></A></LI>
- <LI><A HREF="drawing.html#fl_pie"><TT>fl_pie</TT></A></LI>
- <LI><A HREF="drawing.html#fl_point"><TT>fl_point</TT></A></LI>
- <LI><A HREF="drawing.html#fl_polygon"><TT>fl_polygon</TT></A></LI>
- <LI><A HREF="drawing.html#fl_rect"><TT>fl_rect</TT></A></LI>
- <LI><A HREF="drawing.html#fl_rectf"><TT>fl_rectf</TT></A></LI>
- <LI><A HREF="drawing.html#fl_scroll"><TT>fl_scroll</TT></A></LI>
- <LI><A HREF="drawing.html#fl_xyline"><TT>fl_xyline</TT></A></LI>
- <LI><A HREF="drawing.html#fl_yxline"><TT>fl_yxline</TT></A></LI>
- </UL>
- <LI>Complex Drawing
- <UL>
- <LI><A HREF="drawing.html#fl_pie"><TT>fl_arc</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_complex_polygon"><TT>fl_begin_complex_polygon</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_line"><TT>fl_begin_line</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_loop"><TT>fl_begin_loop</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_offscreen"><TT>fl_begin_offscreen</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_points"><TT>fl_begin_points</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_polygon"><TT>fl_begin_polygon</TT></A></LI>
- <LI><A HREF="drawing.html#fl_curve"><TT>fl_curve</TT></A></LI>
- <LI><A HREF="drawing.html#fl_scale"><TT>fl_rotate</TT></A></LI>
- <LI><A HREF="drawing.html#fl_scale"><TT>fl_scale</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_complex_polygon"><TT>fl_end_complex_polygon</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_line"><TT>fl_end_line</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_loop"><TT>fl_end_loop</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_points"><TT>fl_end_points</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_polygon"><TT>fl_end_polygon</TT></A></LI>
- <LI><A HREF="drawing.html#fl_begin_complex_polygon"><TT>fl_gap</TT></A></LI>
- <LI><A HREF="drawing.html#fl_scale"><TT>fl_mult_matrix</TT></A></LI>
- <LI><A HREF="drawing.html#fl_push_matrix"><TT>fl_pop_matrix</TT></A></LI>
- <LI><A HREF="drawing.html#fl_push_matrix"><TT>fl_push_matrix</TT></A></LI>
- <LI><A HREF="drawing.html#fl_transform"><TT>fl_transform_dx</TT></A></LI>
- <LI><A HREF="drawing.html#fl_transform"><TT>fl_transform_dy</TT></A></LI>
- <LI><A HREF="drawing.html#fl_transform"><TT>fl_transform_x</TT></A></LI>
- <LI><A HREF="drawing.html#fl_transform"><TT>fl_transform_y</TT></A></LI>
- <LI><A HREF="drawing.html#fl_transform"><TT>fl_transformed_vertex</TT></A></LI>
- <LI><A HREF="drawing.html#fl_scale"><TT>fl_translate</TT></A></LI>
- <LI><A HREF="drawing.html#fl_vertex"><TT>fl_vertex</TT></A></LI>
- </UL>
- </UL>
- </TD>
- <TD width=50% valign=top>
- <UL><LI>Drawing Functions (cont'd)
- <UL>
- <LI>Clipping
- <UL>
- <LI><A HREF="drawing.html#fl_clip_box"><TT>fl_clip_box</TT></A></LI>
- <LI><A HREF="drawing.html#fl_clip_region"><TT>fl_clip_region</TT></A></LI>
- <LI><A HREF="drawing.html#fl_not_clipped"><TT>fl_not_clipped</TT></A></LI>
- <LI><A HREF="drawing.html#fl_push_no_clip"><TT>fl_push_no_clip</TT></A></LI>
- <LI><A HREF="drawing.html#fl_push_clip"><TT>fl_push_clip</TT></A></LI>
- <LI><A HREF="drawing.html#fl_pop_clip"><TT>fl_pop_clip</TT></A></LI>
- </UL>
- <LI>Overlay Drawing
- <UL>
- <LI><A HREF="drawing.html#overlay"><TT>fl_overlay_clear</TT></A></LI>
- <LI><A HREF="drawing.html#overlay"><TT>fl_overlay_rect</TT></A></LI>
- </UL>
- <LI>Offscreen Drawing
- <UL>
- <LI><A HREF="drawing.html#fl_copy_offscreen"><TT>fl_copy_offscreen</TT></A></LI>
- <LI><A HREF="drawing.html#fl_create_offscreen"><TT>fl_create_offscreen</TT></A></LI>
- <LI><A HREF="drawing.html#fl_delete_offscreen"><TT>fl_delete_offscreen</TT></A></LI>
- <LI><A HREF="drawing.html#fl_end_offscreen"><TT>fl_end_offscreen</TT></A></LI>
- </UL>
- </UL>
- </LI>
-
-</UL>
-<UL>
-
- <LI>Dialog Functions
- <UL>
- <LI><A HREF="#fl_alert"><TT>fl_alert</TT></A></LI>
- <LI><A HREF="#fl_ask"><TT>fl_ask</TT></A></LI>
- <LI><A HREF="#fl_beep"><TT>fl_beep</TT></A></LI>
- <LI><A HREF="#fl_choice2"><TT>fl_choice</TT></A></LI>
- <LI><A HREF="#fl_color_chooser_func"><TT>fl_color_chooser</TT></A></LI>
- <LI><A HREF="#fl_dir_chooser"><TT>fl_dir_chooser</TT></A></LI>
- <LI><A HREF="#fl_file_chooser2"><TT>fl_file_chooser</TT></A></LI>
- <LI><A HREF="#fl_file_chooser_callback"><TT>fl_file_chooser_callback</TT></A></LI>
- <LI><A HREF="#fl_file_chooser_ok_label"><TT>fl_file_chooser_ok_label</TT></A></LI>
- <LI><A HREF="#fl_input2"><TT>fl_input</TT></A></LI>
- <LI><A HREF="#fl_message"><TT>fl_message</TT></A></LI>
- <LI><A HREF="#fl_message_font"><TT>fl_message_font</TT></A></LI>
- <LI><A HREF="#fl_message_icon"><TT>fl_message_icon</TT></A></LI>
- <LI><A HREF="#fl_password"><TT>fl_password</TT></A></LI>
- <LI><A HREF="#fl_show_colormap"><TT>fl_show_colormap</TT></A></LI>
- </UL>
- </LI>
- <LI>Filename Functions
- <UL>
- <LI><A HREF="#fl_filename_absolute"><TT>fl_filename_absolute</TT></A></LI>
- <LI><A HREF="#fl_filename_expand"><TT>fl_filename_expand</TT></A></LI>
- <LI><A HREF="#fl_filename_ext"><TT>fl_filename_ext</TT></A></LI>
- <LI><A HREF="#fl_filename_isdir"><TT>fl_filename_isdir</TT></A></LI>
- <LI><A HREF="#fl_filename_list"><TT>fl_filename_list</TT></A></LI>
- <LI><A HREF="#fl_filename_match"><TT>fl_filename_match</TT></A></LI>
- <LI><A HREF="#fl_filename_name"><TT>fl_filename_name</TT></A></LI>
- <LI><A HREF="#fl_filename_relative"><TT>fl_filename_relative</TT></A></LI>
- <LI><A HREF="#fl_filename_setext"><TT>fl_filename_setext</TT></A></LI>
- <LI><A HREF="#fl_open_uri"><TT>fl_open_uri</TT></A></LI>
- </UL>
- </LI>
-
- <LI>Image Functions
- <UL>
- <LI><A HREF="drawing.html#fl_can_do_alpha_blending"><TT>fl_can_do_alpha_blending</TT></A></LI>
- <LI><A HREF="#fl_register_images"><TT>fl_register_images</TT></A></LI>
- <LI><A HREF="drawing.html#fl_draw_image"><TT>fl_draw_image</TT></A></LI>
- <LI><A HREF="drawing.html#fl_draw_image"><TT>fl_draw_image_mono</TT></A></LI>
- <LI><A HREF="drawing.html#fl_draw_pixmap"><TT>fl_draw_pixmap</TT></A></LI>
- <LI><A HREF="drawing.html#fl_measure_pixmap"><TT>fl_measure_pixmap</TT></A></LI>
- <LI><A HREF="drawing.html#fl_read_image"><TT>fl_read_image</TT></A></LI>
- </UL>
- </LI>
-
- <LI>Box Types
- <UL>
- <LI><A HREF="common.html#fl_down"><TT>fl_down</TT></A></LI>
- <LI><A HREF="drawing.html#fl_draw_box"><TT>fl_draw_box</TT></A></LI>
- <LI><A HREF="common.html#fl_frame"><TT>fl_frame</TT></A></LI>
- </UL>
-
- <LI>System Related Functions
- <UL>
- <LI><A HREF="osissues.html#WIN32.gdi"><TT>fl_RGB</TT></A> (WIN32)</LI>
- <LI><A HREF="osissues.html#WIN32.gdi"><TT>fl_brush</TT></A> (WIN32)</LI>
- <LI><A HREF="osissues.html#fl_close_display"><TT>fl_close_display</TT></A></LI>
- <LI><A HREF="osissues.html#fl_find"><TT>fl_find</TT></A></LI>
- <LI><A HREF="osissues.html#fl_handle"><TT>fl_handle</TT></A> (X11)</LI>
- <LI><A HREF="osissues.html#fl_open_callback"><TT>fl_open_callback</TT></A></LI>
- <LI><A HREF="osissues.html#fl_open_display"><TT>fl_open_display</TT></A></LI>
- <LI><A HREF="osissues.html#fl_parse_color"><TT>fl_parse_color</TT></A></LI>
- <LI><A HREF="osissues.html#WIN32.gdi"><TT>fl_pen</TT></A> (WIN32)</LI>
- <LI><A HREF="osissues.html#fl_xid"><TT>fl_xid</TT></A></LI>
- <LI><A HREF="osissues.html#fl_xpixel"><TT>fl_xpixel</TT></A></LI>
- </UL>
-</UL>
-</td>
-</table>
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_alert">fl_alert</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/fl_ask.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-void fl_alert(const char *, ...);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Same as <tt>fl_message()</tt> except for the &quot;!&quot; symbol.
-
-<P ALIGN=CENTER><IMG src="fl_alert.gif" ALT="The fl_alert window">
-
-
-<!-- NEED 4in -->
-<H2><A name="fl_ask">fl_ask</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/fl_ask.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-int fl_ask(const char *, ...);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Displays a printf-style message in a pop-up box with an
-&quot;Yes&quot; and &quot;No&quot; button and waits for the user
-to hit a button. The return value is 1 if the user hits Yes, 0
-if they pick No. The enter key is a shortcut for Yes and ESC is
-a shortcut for No.
-
-<P ALIGN="CENTER"><IMG SRC="fl_ask.gif" ALT="The fl_ask window.">
-
-<p><b>Note:</b> Use of this function is <i>strongly</i>
-discouraged, and it will be removed in FLTK 2.0. Instead, use <a
-href='#fl_choice2'><tt>fl_choice()</tt></a> instead and provide
-unambiguous verbs in place of "Yes" and "No".</p>
-
-<!-- NEED 4in -->
-<H2><A name="fl_beep">fl_beep</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/fl_ask.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-void fl_beep(int type = FL_BEEP_DEFAULT)
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Sounds an audible notification; the default <CODE>type</CODE> argument
-sounds a simple "beep" sound. Other values for <CODE>type</CODE> may use
-a system or user-defined sound file:
-
-<UL>
-
- <LI><TT>FL_BEEP_DEFAULT</TT> - Make a generic "beep" sound.
-
- <LI><TT>FL_BEEP_MESSAGE</TT> - Make a sound appropriate for an
- informational message.
-
- <LI><TT>FL_BEEP_ERROR</TT> - Make a sound appropriate for an
- error message.
-
- <LI><TT>FL_BEEP_QUESTION</TT> - Make a sound appropriate for
- a question.
-
- <LI><TT>FL_BEEP_PASSWORD</TT> - Make a sound appropriate for
- a password prompt.
-
- <LI><TT>FL_BEEP_NOTIFICATION</TT> - Make a sound appropriate for
- an event notification ("you have mail", etc.)
-
-</UL>
-
-
-<!-- NEED 4in -->
-<H2><A name="fl_choice2">fl_choice</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/fl_ask.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-int fl_choice(const char *q, const char *b0, const char *b1, const char *b2, ...);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Shows the message with three buttons below it marked with the
-strings <tt> b0</tt>, <tt>b1</tt>, and <tt>b2</tt>. Returns 0,
-1, or 2 depending on which button is hit. ESC is a shortcut for
-button 0 and the enter key is a shortcut for button 1. Notice
-the buttons are positioned &quot;backwards&quot;. You can hide
-buttons by passing <tt>NULL</tt> as their labels.
-
-<P ALIGN="CENTER"><IMG SRC="fl_choice.gif" ALT="The fl_choice window.">
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_color_average">fl_color_average</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Enumerations.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-Fl_Color fl_color_average(Fl_Color c1, Fl_Color c2, float weight);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Returns the weighted average color between the two colors.
-The red, green, and blue values are averaged using the following
-formula:
-
-<UL><PRE>
-color = c1 * weight + c2 * (1 - weight)
-</PRE></UL>
-
-<P>Thus, a <CODE>weight</CODE> value of 1.0 will return the
-first color, while a value of 0.0 will return the second color.
-
-
-<!-- NEED 4in -->
-<H2><A name="fl_color_chooser_func">fl_color_chooser</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Color_Chooser.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-int fl_color_chooser(const char *title, double &amp;r, double &amp;g, double &amp;b);
-int fl_color_chooser(const char *title, uchar &amp;r, uchar &amp;g, uchar &amp;b);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <CODE>double</CODE> version takes RGB values in the range
-0.0 to 1.0. The <CODE>uchar</CODE> version takes RGB values in
-the range 0 to 255. The <tt>title</tt> argument specifies the
-label (title) for the window.
-
-<P ALIGN="CENTER"><IMG SRC="fl_color_chooser.jpg" ALT="The fl_color_chooser dialog."></P>
-
-<P><tt>fl_color_chooser()</tt> pops up a window to let the user
-pick an arbitrary RGB color. They can pick the hue and
-saturation in the &quot;hue box&quot; on the left (hold down
-CTRL to just change the saturation), and the brighness using the
-vertical slider. Or they can type the 8-bit numbers into the
-RGB <A href=Fl_Value_Input.html#Fl_Value_Input><tt>
-Fl_Value_Input</tt></A> fields, or drag the mouse across them to
-adjust them. The pull-down menu lets the user set the input
-fields to show RGB, HSV, or 8-bit RGB (0 to 255).
-
-<P>This returns non-zero if the user picks ok, and updates the
-RGB values. If the user picks cancel or closes the window this
-returns zero and leaves RGB unchanged.
-
-<P>If you use the color chooser on an 8-bit screen, it will
-allocate all the available colors, leaving you no space to
-exactly represent the color the user picks! You can however use
-<A href="drawing.html#fast"><tt> fl_rectf()</tt></A> to fill a
-region with a simulated color using dithering.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_color_cube">fl_color_cube</A></H2>
-
-<HR>
-
-<H3>Include File</H3>
-
-<UL><PRE>
-#include &lt;FL/fl_draw.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-Fl_Color fl_color_cube(int r, int g, int b);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Returns a color out of the color cube. <tt>r</tt> must be in
-the range 0 to FL_NUM_RED (5) minus 1. <tt>g</tt> must be in the
-range 0 to FL_NUM_GREEN (8) minus 1. <tt>b</tt> must be in the
-range 0 to FL_NUM_BLUE (5) minus 1.
-
-<P>To get the closest color to a 8-bit set of R,G,B values use:
-
-<UL><PRE>
-fl_color_cube(R * (FL_NUM_RED - 1) / 255,
- G * (FL_NUM_GREEN - 1) / 255,
- B * (FL_NUM_BLUE - 1) / 255);
-</PRE></UL>
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_contrast">fl_contrast</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Enumerations.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-Fl_Color fl_contrast(Fl_Color fg, Fl_Color bg);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Returns the foreground color if it contrasts sufficiently
-with the background color. Otherwise, returns
-<CODE>FL_WHITE</CODE> or <CODE>FL_BLACK</CODE> depending on
-which color provides the best contrast.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_cursor">fl_cursor</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/fl_draw.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-void fl_cursor(Fl_Cursor cursor, Fl_Color fg, Fl_Color bg);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Sets the cursor for the current window to the specified shape
-and colors. The cursors are defined in the <A
-HREF="enumerations.html#cursor"><CODE>&lt;FL/Enumerations.H&gt;</CODE>
-header file</A>.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_darker">fl_darker</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Enumerations.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-Fl_Color fl_darker(Fl_Color c);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Returns a darker version of the specified color.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_dir_chooser">fl_dir_chooser</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_File_Chooser.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-char *fl_dir_chooser(const char * message, const char *fname, int relative = 0);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>The <tt>fl_dir_chooser()</tt> function displays a <A
-HREF="Fl_File_Chooser.html"><tt>Fl_File_Chooser</tt></A> dialog
-so that the user can choose a directory.
-
-<P><tt>message</tt> is a string used to title the window.
-
-<P><tt>fname</tt> is a default filename to fill in the chooser
-with. If this is <tt>NULL</tt> then the last filename that was
-choosen is used. The first time the file chooser is called this
-defaults to a blank string.
-
-<P><tt>relative</tt> specifies whether the returned filename
-should be relative (any non-zero value) or absolute (0). The
-default is to return absolute paths.
-
-<P>The returned value points at a static buffer that is only
-good until the next time <tt>fl_dir_chooser()</tt> is called.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_file_chooser2">fl_file_chooser</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_File_Chooser.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-char *fl_file_chooser(const char * message, const char *pattern, const char *fname, int relative = 0);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>FLTK provides a &quot;tab completion&quot; file chooser that
-makes it easy to choose files from large directories. This file
-chooser has several unique features, the major one being that
-the Tab key completes filenames like it does in Emacs or tcsh,
-and the list always shows all possible completions.
-
-<P ALIGN="CENTER"><IMG SRC="Fl_File_Chooser.jpg" ALT="The fl_file_chooser window.">
-
-<P><tt>fl_file_chooser()</tt> pops up the file chooser, waits
-for the user to pick a file or Cancel, and then returns a
-pointer to that filename or <tt>NULL</tt> if Cancel is chosen.
-
-<P><tt>message</tt> is a string used to title the window.
-
-<P><tt>pattern</tt> is used to limit the files listed in a
-directory to those matching the pattern. This matching is done by
-<A href="#fl_filename_match"><tt>fl_filename_match()</tt></A>.
-Multiple patterns can be used by separating them with tabs, like
-"*.jpg\t*.png\t*.gif\t*". In addition, you can provide
-human-readable labels with the patterns inside parenthesis, like
-"JPEG&nbsp;Files&nbsp;(*.jpg)\tPNG&nbsp;Files&nbsp;(*.png)\tGIF&nbsp;Files&nbsp;(*.gif)\tAll&nbsp;Files&nbsp;(*)".
-Pass <tt>NULL</tt> to show all files.</p>
-
-<P><tt>fname</tt> is a default filename to fill in the chooser
-with. If this is <tt>NULL</tt> then the last filename that was
-choosen is used (unless that had a different pattern, in which
-case just the last directory with no name is used). The first
-time the file chooser is called this defaults to a blank string.
-
-<P><tt>relative</tt> specifies whether the returned filename
-should be relative (any non-zero value) or absolute (0). The
-default is to return absolute paths.
-
-<P>The returned value points at a static buffer that is only
-good until the next time <tt>fl_file_chooser()</tt> is called.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_file_chooser_callback">fl_file_chooser_callback</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_File_Chooser.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-void fl_file_chooser_callback(void (*cb)(const char *));
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Sets a function that is called every time the user clicks a
-file in the currently popped-up file chooser. This could be used
-to preview the contents of the file. It has to be reasonably
-fast, and cannot create FLTK windows.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_file_chooser_ok_label">fl_file_chooser_ok_label</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_File_Chooser.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-void fl_file_chooser_ok_label(const char *l);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Sets the label that is shown on the "OK" button in the file
-chooser. The default label (<tt>fl_ok</tt>) can be restored by
-passing a <tt>NULL</tt> pointer for the label string.</p>
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_filename_absolute">fl_filename_absolute</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/filename.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-int fl_filename_absolute(char *to, int tolen, const char *from);
-int fl_filename_absolute(char *to, const char *from);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Converts a relative pathname to an absolute pathname. If
-<tt>from</tt> does not start with a slash, the current working
-directory is prepended to <tt>from</tt> with any occurances of
-<tt>.</tt> and <tt>x/..</TT> deleted from the result. The
-absolute pathname is copied to <tt>to</tt>; <tt>from</tt> and
-<tt>to</tt> may point to the same buffer.
-<TT>fl_filename_absolute</TT> returns non-zero if any changes
-were made.
-
-<P>The first form accepts a maximum length (<TT>tolen</TT>) for
-the destination buffer, while the second form assumes that the
-destination buffer is at least <TT>FL_PATH_MAX</TT> characters
-in length.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_filename_expand">fl_filename_expand</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/filename.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-int fl_filename_expand(char *to, int tolen, const char *from);
-int fl_filename_expand(char *to, const char *from);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>This function replaces environment variables and home
-directories with the corresponding strings. Any occurrence of
-<tt>$X</tt> is replaced by <tt>getenv(&quot;X&quot;)</tt>; if
-<TT>$X</TT> is not defined in the environment, the occurrence is
-not replaced. Any occurence of <tt>~X</tt> is replaced by user
-<tt>X</tt>'s home directory; if user <TT>X</TT> does not exist,
-the occurrence is not replaced. Any resulting double slashes
-cause everything before the second slash to be deleted.
-
-<P>The result is copied to <TT>to</TT>, and <TT>from</TT> and
-<TT>to</TT> may point to the same buffer.
-<TT>fl_filename_expand()</TT> returns non-zero if any changes
-were made.
-
-<P>The first form accepts a maximum length (<TT>tolen</TT>) for
-the destination buffer, while the second form assumes that the
-destination buffer is at least <TT>FL_PATH_MAX</TT> characters
-in length.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_filename_ext">fl_filename_ext</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/filename.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-const char *fl_filename_ext(const char *f);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Returns a pointer to the last period in
-<tt>fl_filename_name(f)</tt>, or a pointer to the trailing
-<TT>nul</TT> if none is found.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_filename_isdir">fl_filename_isdir</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/filename.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-int fl_filename_isdir(const char *f);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Returns non-zero if the file exists and is a directory.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_filename_list">fl_filename_list</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/filename.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-int fl_filename_list(const char *d, dirent ***list, Fl_File_Sort_F *sort = fl_numericsort);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>This is a portable and const-correct wrapper for the
-<tt>scandir()</tt> function. <tt>d</tt> is the name of a
-directory; it does not matter if it has a trailing slash or not.
-For each file in that directory a &quot;dirent&quot; structure
-is created. The only portable thing about a dirent is that
-<TT>dirent.d_name</TT> is the <TT>nul</TT>-terminated file name.
-An array of pointers to these <TT>dirent</TT>'s is created and a
-pointer to the array is returned in <tt>*list</tt>. The number
-of entries is given as a return value. If there is an error
-reading the directory a number less than zero is returned, and
-<tt>errno</tt> has the reason; <tt>errno</tt> does not work
-under WIN32.
-
-<P>The name of directory always ends in a forward slash '/'.
-
-<P>The <tt>sort</tt> argument specifies a sort function to be used
-when on the array of filenames. The following standard sort functions
-are provided with FLTK:
-
-<UL>
-
- <LI><TT><A NAME=fl_alphasort>fl_alphasort</A></tt> - The files are sorted in
- ascending alphabetical order; upper- and lowercase
- letters are compared according to their ASCII ordering -
- uppercase before lowercase.
-
- <LI><TT><A NAME=fl_casealphasort>fl_casealphasort</A></tt> - The files are sorted in
- ascending alphabetical order; upper- and lowercase
- letters are compared equally - case is not significant.
-
- <LI><TT><A NAME=fl_casenumericsort>fl_casenumericsort</A></TT> - The files are sorted
- in ascending &quot;alphanumeric&quot; order, where an
- attempt is made to put unpadded numbers in consecutive
- order; upper- and lowercase letters are compared equally
- - case is not significant.
-
- <LI><TT><A NAME=fl_numericsort>fl_numericsort</A></TT> - The files are sorted in
- ascending &quot;alphanumeric&quot; order, where an
- attempt is made to put unpadded numbers in consecutive
- order; upper- and lowercase letters are compared
- according to their ASCII ordering - uppercase before
- lowercase.
-
-</UL>
-
-<P>You can free the returned list of files with the following
-code:
-
-<UL><PRE>
-for (int i = return_value; i &gt; 0;) {
- free((void*)(list[--i]));
-}
-
-free((void*)list);
-</PRE></UL>
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_filename_match">fl_filename_match</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/filename.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-int fl_filename_match(const char *f, const char *pattern);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Returns non-zero if <tt>f</tt> matches <tt>pattern</tt>. The
-following syntax is used by <tt>pattern</tt>:
-
-<UL>
-
- <LI><tt>*</tt> matches any sequence of 0 or more
- characters.</LI>
-
- <LI><tt>?</tt> matches any single character.</LI>
-
- <LI><tt>[set]</tt> matches any character in the set. Set
- can contain any single characters, or a-z to represent a
- range. To match ] or - they must be the first
- characters. To match ^ or ! they must not be the first
- characters.</LI>
-
- <LI><tt>[^set] or <B>[!set]</B></tt> matches any
- character not in the set.</LI>
-
- <LI><tt>{X|Y|Z} or <B>{X,Y,Z}</B></tt> matches any one of the
- subexpressions literally.</LI>
-
- <LI><tt>\x</tt> quotes the character x so it has no
- special meaning.</LI>
-
- <LI><tt>x</tt> all other characters must be matched
- exactly.</LI>
-
-</UL>
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_filename_name">fl_filename_name</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/filename.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-const char *fl_filename_name(const char *f);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Returns a pointer to the character after the last slash, or
-to the start of the filename if there is none.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_filename_relative">fl_filename_relative</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/filename.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-int fl_filename_relative(char *to, int tolen, const char *from);
-int fl_filename_relative(char *to, const char *from);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Converts an absolute pathname to an relative pathname. The
-relative pathname is copied to <tt>to</tt>; <tt>from</tt> and
-<tt>to</tt> may point to the same buffer.
-<TT>fl_filename_relative</TT> returns non-zero if any changes
-were made.
-
-<P>The first form accepts a maximum length (<TT>tolen</TT>) for
-the destination buffer, while the second form assumes that the
-destination buffer is at least <TT>FL_PATH_MAX</TT> characters
-in length.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_filename_setext">fl_filename_setext</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/filename.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-char *fl_filename_setext(char *to, int tolen, const char *ext);
-char *fl_filename_setext(char *to, const char *ext);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Replaces the extension in <TT>to</TT> with the extension in
-<TT>ext</TT>. Returns a pointer to <tt>to</tt>.
-
-<P>The first form accepts a maximum length (<TT>tolen</TT>) for
-the destination buffer, while the second form assumes that the
-destination buffer is at least <TT>FL_PATH_MAX</TT> characters
-in length.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_gray_ramp">fl_gray_ramp</A></H2>
-
-<HR>
-
-<H3>Include File</H3>
-
-<UL><PRE>
-#include &lt;FL/fl_draw.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-Fl_Color fl_gray_ramp(int i);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Returns a gray color value from black (<TT>i == 0</TT>) to
-white (<TT>i == FL_NUM_GRAY - 1</TT>). <TT>FL_NUM_GRAY</TT> is
-defined to be 24 in the current FLTK release. To get the closest
-FLTK gray value to an 8-bit grayscale color 'I' use:
-
-<UL><PRE>
-fl_gray_ramp(I * (FL_NUM_GRAY - 1) / 255)
-</PRE></UL>
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_inactive">fl_inactive</A></H2>
-
-<HR>
-
-<H3>Include File</H3>
-
-<UL><PRE>
-#include &lt;FL/Enumerations.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-Fl_Color fl_inactive(Fl_Color c);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Returns the inactive, dimmed version of the give color
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_input2">fl_input</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/fl_ask.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-const char *fl_input(const char *label, const char *deflt = 0, ...);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Pops up a window displaying a string, lets the user edit it,
-and return the new value. The cancel button returns
-<tt>NULL</tt>. <I>The returned pointer is only valid until the
-next time <tt>fl_input()</tt> is called</I>. Due to
-back-compatability, the arguments to any printf commands in the
-label are after the default value.
-
-<P ALIGN=CENTER><IMG SRC="fl_input.gif" ALT="The fl_input window.">
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_lighter">fl_lighter</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/Enumerations.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-Fl_Color fl_lighter(Fl_Color c);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Returns a lighter version of the specified color.
-
-
-<!-- NEED 4in -->
-<H2><A name="fl_message">fl_message</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/fl_ask.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-void fl_message(const char *, ...);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Displays a printf-style message in a pop-up box with an
-&quot;OK&quot; button, waits for the user to hit the button.
-The message will wrap to fit the window, or may be many lines by
-putting <tt>\n</tt> characters into it. The enter key is a
-shortcut for the OK button.
-
-<P>A message text can be further formatted with html tags by
-adding <tt>&lt;html&gt;</tt> at the beginning of the message.
-See <tt><a href="Fl_Help_View.html">Fl_Help_View</a></tt> for
-details.
-
-<P>The message text is limited to 1024 characters.
-
-<P ALIGN="CENTER"><IMG src="fl_message.gif" ALT="The fl_message window.">
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_message_font">fl_message_font</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/fl_ask.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-void fl_message_font(Fl_Font fontid, uchar size);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Changes the font and font size used for the messages in all
-the popups.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_message_icon">fl_message_icon</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/fl_ask.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-Fl_Widget *fl_message_icon();
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Returns a pointer to the box at the left edge of all the
-popups. You can alter the font, color, label, or image before
-calling the functions.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_open_uri">fl_open_uri</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/filename.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-void fl_open_uri(const char *uri, char *msg = (char *)0, int msglen = 0);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>fl_open_uri() opens the specified Uniform Resource Identifier (URI) using an operating-system dependent program or interface. For URIs using the "ftp", "http", or "https" schemes, the system default web browser is used to open the URI, while "mailto" and "news" URIs are typically opened using the system default mail reader and "file" URIs are opened using the file system navigator.</P>
-
-<P>On success, the (optional) <TT>msg</TT> buffer is filled with the command that was run to open the URI; on Windows, this will always be "open uri".</P>
-
-<P>On failure, the <TT>msg</TT> buffer is filled with an English error message.</P>
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_password">fl_password</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/fl_ask.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-const char *fl_password(const char *label, const char *deflt = 0, ...);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Same as <tt>fl_input()</tt>, except an <A
-href=Fl_Secret_Input.html><tt>Fl_Secret_Input</tt></A> field is
-used.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_register_images">fl_register_images</A></H2>
-
-<HR>
-
-<H3>Include File</H3>
-
-<UL><PRE>
-#include &lt;FL/Fl_Shared_Image.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-void fl_register_images();
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Registers the extra image file formats that are not provided
-as part of the core FLTK library for use with the <A
-HREF="Fl_Shared_Image.html#Fl_Shared_Image"><CODE>Fl_Shared_Image</CODE></A>
-class.
-
-<P>This function is provided in the <CODE>fltk_images</CODE>
-library.
-
-
-<!-- NEED 4in -->
-<H2><A NAME="fl_rgb_color">fl_rgb_color</A></H2>
-
-<HR>
-
-<H3>Include File</H3>
-
-<UL><PRE>
-#include &lt;FL/fl_draw.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-Fl_Color fl_rgb_color(uchar r, uchar g, uchar b);
-Fl_Color fl_rgb_color(uchar g);
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P>Returns the 24-bit RGB color value for the specified 8-bit
-RGB or grayscale values.
-
-
-<!-- NEED 8in -->
-<H2><A name="fl_show_colormap">fl_show_colormap</A></H2>
-
-<HR>
-
-<H3>Include Files</H3>
-
-<UL><PRE>
-#include &lt;FL/fl_show_colormap.H&gt;
-</PRE></UL>
-
-<H3>Prototype</H3>
-
-<UL><PRE>
-Fl_Color fl_show_colormap(Fl_Color oldcol)
-</PRE></UL>
-
-<H3>Description</H3>
-
-<P><tt>fl_show_colormap()</tt> pops up a panel of the 256 colors
-you can access with <A
-href="drawing.html#fl_color"><tt>fl_color()</tt></A> and lets
-the user pick one of them. It returns the new color index, or
-the old one if the user types ESC or clicks outside the window.
-
-<P ALIGN="CENTER"><IMG src="fl_show_colormap.gif" ALT="The fl_show_colormap dialog">
-
-
-</BODY>
-</HTML>
diff --git a/documentation/glut.html b/documentation/glut.html
deleted file mode 100644
index b1addffac..000000000
--- a/documentation/glut.html
+++ /dev/null
@@ -1,196 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>D - GLUT Compatibility</TITLE>
-</HEAD>
-<BODY>
-<H1 ALIGN=RIGHT><A NAME=glut>D - GLUT Compatibility</A></H1>
-<P>This appendix describes the GLUT compatibility header file supplied with FLTK. FLTK's GLUT compatibility is based on the original GLUT 3.7 and the follow-on FreeGLUT 2.4.0 libraries.</P>
-<H2>Using the GLUT Compatibility Header File</H2>
-<P>You should be able to compile existing GLUT source code by including <TT>&lt;FL/glut.H&gt;</TT> instead of <TT>&lt;GL/glut.h&gt;</TT>. This can be done by editing the source, by changing the <TT>-I</TT> switches to the compiler, or by providing a symbolic link from <TT>GL/glut.h</TT> to <TT>FL/glut.H</TT>.</P>
-<P><I>All files calling GLUT procedures must be compiled with C++</I>. You may have to alter them slightly to get them to compile without warnings, and you may have to rename them to get make to use the C++ compiler.</P>
-<P>You must link with the FLTK library. Most of <TT>FL/glut.H</TT> is inline functions. You should take a look at it (and maybe at <TT>test/glpuzzle.cxx</TT> in the FLTK source) if you are having trouble porting your GLUT program. </P>
-<P>This has been tested with most of the demo programs that come with the GLUT and FreeGLUT distributions.</P>
-<H2>Known Problems</H2>
-<P>The following functions and/or arguments to functions are missing, and
-you will have to replace them or comment them out for your code to
-compile:
-<UL>
-<LI><TT>glutGet(GLUT_ELAPSED_TIME)</TT></LI>
-<LI><TT>glutGet(GLUT_SCREEN_HEIGHT_MM)</TT></LI>
-<LI><TT>glutGet(GLUT_SCREEN_WIDTH_MM)</TT></LI>
-<LI><TT>glutGet(GLUT_WINDOW_NUM_CHILDREN)</TT></LI>
-<LI><TT>glutInitDisplayMode(GLUT_LUMINANCE)</TT></LI>
-<LI><TT>glutLayerGet(GLUT_HAS_OVERLAY)</TT></LI>
-<LI><TT>glutLayerGet(GLUT_LAYER_IN_USE)</TT></LI>
-<LI><TT>glutPushWindow()</TT></LI>
-<LI><TT>glutSetColor(), glutGetColor(), glutCopyColormap()</TT></LI>
-<LI><TT>glutVideoResize()</TT> missing. </LI>
-<LI><TT>glutWarpPointer()</TT></LI>
-<LI><TT>glutWindowStatusFunc()</TT></LI>
-<LI>Spaceball, buttonbox, dials, and tablet functions</LI>
-</UL>
- Most of the symbols/enumerations have different values than GLUT uses.
- This will break code that relies on the actual values. The only
-symbols guaranteed to have the same values are true/false pairs like <TT>
-GLUT_DOWN</TT> and <TT>GLUT_UP</TT>, mouse buttons <TT>
-GLUT_LEFT_BUTTON, GLUT_MIDDLE_BUTTON, GLUT_RIGHT_BUTTON</TT>, and <TT>
-GLUT_KEY_F1</TT> thru <TT>F12</TT>.
-<P>The strings passed as menu labels are not copied. </P>
-<P><TT>glutPostRedisplay()</TT> does not work if called from inside a
-display function. You must use <TT>glutIdleFunc()</TT> if you want
-your display to update continuously. </P>
-<P><TT>glutSwapBuffers()</TT> does not work from inside a display
-function. This is on purpose, because FLTK swaps the buffers for you. </P>
-<P><TT>glutUseLayer()</TT> does not work well, and should only be used
-to initialize transformations inside a resize callback. You should
-redraw overlays by using <TT>glutOverlayDisplayFunc()</TT>. </P>
-<P>Overlays are cleared before the overlay display function is called. <TT>
-glutLayerGet(GLUT_OVERLAY_DAMAGED)</TT> always returns true for
-compatibility with some GLUT overlay programs. You must rewrite your
-code so that <TT>gl_color()</TT> is used to choose colors in an
-overlay, or you will get random overlay colors. </P>
-<P><TT>glutSetCursor(GLUT_CURSOR_FULL_CROSSHAIR)</TT> just results in a
-small crosshair. </P>
-<P>The fonts used by <TT>glutBitmapCharacter() and glutBitmapWidth()</TT>
- may be different. </P>
-<P><TT>glutInit(argc,argv)</TT> will consume different switches than
-GLUT does. It accepts the switches recognized by <A href="Fl.html#Fl.args">
-<TT>Fl::args()</TT></A>, and will accept any abbreviation of these
-switches (such as &quot;-di&quot; for &quot;-display&quot;). </P>
-<H2>Mixing GLUT and FLTK Code</H2>
- You can make your GLUT window a child of a <TT>Fl_Window</TT> with the
-following scheme. The biggest trick is that GLUT insists on <TT>show()</TT>
-'ing the window at the point it is created, which means the <TT>
-Fl_Window</TT> parent window must already be shown.
-<UL>
-<LI>Don't call <TT>glutInit()</TT>. </LI>
-<LI>Create your <TT>Fl_Window</TT>, and any FLTK widgets. Leave a
-blank area in the window for your GLUT window. </LI>
-<LI><TT>show()</TT> the <TT>Fl_Window</TT>. Perhaps call <TT>
-show(argc,argv)</TT>. </LI>
-<LI>Call <TT>window-&gt;begin()</TT> so that the GLUT window will be
-automatically added to it. </LI>
-<LI>Use <TT>glutInitWindowSize()</TT> and <TT>glutInitWindowPosition()</TT>
- to set the location in the parent window to put the GLUT window. </LI>
-<LI>Put your GLUT code next. It probably does not need many changes.
- Call <TT>window-&gt;end()</TT> immediately after the <TT>
-glutCreateWindow()</TT>! </LI>
-<LI>You can call either <TT>glutMainLoop()</TT>, <TT>Fl::run()</TT>, or
-loop calling <TT>Fl::wait()</TT> to run the program. </LI>
-</UL>
-<HR break>
-<H2><A name=Fl_Glut_Window>class Fl_Glut_Window</A></H2>
-<HR>
-<H3>Class Hierarchy</H3>
-<UL>
-<PRE>
-<A href=Fl_Gl_Window.html#Fl_Gl_Window>Fl_Gl_Window</A>
- |
- +----<B>Fl_Glut_Window</B>
-</PRE>
-</UL>
-<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/glut.H&gt;
-</PRE>
-</UL>
-<H3>Description</H3>
- Each GLUT window is an instance of this class. You may find it useful
-to manipulate instances directly rather than use GLUT window id's.
- These may be created without opening the display, and thus can fit
-better into FLTK's method of creating windows.
-<P>The current GLUT window is available in the global variable <TT>
-glut_window</TT>. </P>
-<P><TT>new Fl_Glut_Window(...)</TT> is the same as <TT>
-glutCreateWindow()</TT> except it does not <TT>show()</TT> the window
-or make the window current. </P>
-<P><TT>window-&gt;make_current()</TT> is the same as <TT>
-glutSetWindow(number)</TT>. If the window has not had <TT>show()</TT>
- called on it yet, some functions that assumme an OpenGL context will
-not work. If you do <TT>show()</TT> the window, call <TT>make_current()</TT>
- again to set the context. </P>
-<P><TT>~Fl_Glut_Window()</TT> is the same as <TT>glutDestroyWindow()</TT>
-. </P>
-<H3>Members</H3>
-The <TT>Fl_Glut_Window</TT> class contains several public members that can
-be altered directly:
-<CENTER><TABLE WIDTH="80%" BORDER="1" ALT="Fl_Glut_Window public members.">
-<TR>
- <TH>member</TH>
- <TH>description</TH>
-</TR>
-<TR>
- <TD>display</TD>
- <TD>A pointer to the function to call to draw the normal planes.</TD>
-</TR>
-<TR>
- <TD>entry</TD>
- <TD>A pointer to the function to call when the mouse moves into
- or out of the window.</TD>
-</TR>
-<TR>
- <TD>keyboard</TD>
- <TD>A pointer to the function to call when a regular key is pressed.</TD>
-</TR>
-<TR>
- <TD>menu[3]</TD>
- <TD>The menu to post when one of the mouse buttons is pressed.</TD>
-</TR>
-<TR>
- <TD>mouse</TD>
- <TD>A pointer to the function to call when a button is pressed or
- released.</TD>
-</TR>
-<TR>
- <TD>motion</TD>
- <TD>A pointer to the function to call when the mouse is moved with
- a button down.</TD>
-</TR>
-<TR>
- <TD>overlaydisplay</TD>
- <TD>A pointer to the function to call to draw the overlay planes.</TD>
-</TR>
-<TR>
- <TD>passivemotion</TD>
- <TD>A pointer to the function to call when the mouse is moved with
- no buttons down.</TD>
-</TR>
-<TR>
- <TD>reshape</TD>
- <TD>A pointer to the function to call when the window is resized.</TD>
-</TR>
-<TR>
- <TD>special</TD>
- <TD>A pointer to the function to call when a special key is pressed.</TD>
-</TR>
-<TR>
- <TD>visibility</TD>
- <TD>A pointer to the function to call when the window is iconified
- or restored (made visible.)</TD>
-</TR>
-</TABLE></CENTER>
-
-<H3>Methods</H3>
-<UL>
-<LI><A href=#Fl_Glut_Window.Fl_Glut_Window>Fl_Glut_Window</A></LI>
-<LI><A href=#Fl_Glut_Window.~Fl_Glut_Window>~Fl_Glut_Window</A></LI>
-<LI><A href=#Fl_Glut_Window.make_current>make_current</A></LI>
-</UL>
-<H4><A name=Fl_Glut_Window.Fl_Glut_Window>
-Fl_Glut_Window::Fl_Glut_Window(int x, int y, int w, int h, const char
-*title = 0)
-<BR> Fl_Glut_Window::Fl_Glut_Window(int w, int h, const char *title = 0)</A>
-</H4>
- The first constructor takes 4 int arguments to create the window with
-a preset position and size. The second constructor with 2 arguments
-will create the window with a preset size, but the window manager will
-choose the position according to it's own whims.
-<H4><A name=Fl_Glut_Window.~Fl_Glut_Window>virtual
-Fl_Glut_Window::~Fl_Glut_Window()</A></H4>
- Destroys the GLUT window.
-<H4><A name="Fl_Glut_Window.make_current">void Fl_Glut_Window::make_current()</A></H4>
-Switches all drawing functions to the GLUT window.
-
-</BODY>
-</HTML>
diff --git a/documentation/index.html b/documentation/index.html
deleted file mode 100644
index 9e92e5ff3..000000000
--- a/documentation/index.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<HTML>
-<HEAD>
- <META NAME="robots" CONTENT="noindex">
- <TITLE>FLTK 1.3.0 Programming Manual</TITLE>
-</HEAD>
-<BODY>
-
-<TABLE BGCOLOR="#9f9f9f" CELLPADDING="8" CELLSPACING="0" SUMMARY="TITLE BAR" WIDTH="700">
-<TR>
- <TD VALIGN="MIDDLE">
- <IMG SRC="FL.gif" WIDTH="200" HEIGHT="100" ALIGN="ABSMIDDLE" ALT="FL"></TD>
- <TD ALIGN="CENTER" VALIGN="MIDDLE">
- <H1>FLTK 1.3.0 Programming Manual</H1>
- <P>Revision 8 by Michael Sweet, Craig P. Earls,<br>Matthias Melcher, and Bill Spitzak<BR>
- Copyright 1998-2008 by Bill Spitzak and others.</P>
- </TD>
-</TR>
-<TR>
- <TH COLSPAN=2>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.</TH>
-</TR>
-</TABLE>
-
-<TABLE BGCOLOR="#9f9fef" CELLPADDING="8" CELLSPACING="0" SUMMARY="Table of Contents" WIDTH="700">
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP"><B><A HREF="preface.html#preface">Preface</A></B>
- <BR>
- <BR>
- <B><A HREF="intro.html#intro">1 - Introduction to FLTK</A></B>
- <BR>
- <BR>
- <B><A HREF="basics.html#basics">2 - FLTK Basics</A></B>
- <BR>
- <BR>
- <B><A HREF="common.html#common">3 - Common Widgets and Attributes</A></B>
- <UL>
- <LI><A HREF="drawing.html#colors">Colors</A></LI>
- <LI><A HREF="common.html#boxtypes">Box Types</A></LI>
- <LI><A HREF="common.html#labels">Labels and Label Types</A></LI>
- <LI><A HREF="drawing.html#images">Images</A></LI>
- <LI><A HREF="Fl_Pixmap.html#Fl_Pixmap">class Fl_Pixmap</A></LI>
- </UL>
- <B><A HREF="editor.html#editor">4 - Designing a Simple Text Editor</A></B>
- <BR>
- <BR>
- <B><A HREF="drawing.html#drawing">5 - Drawing Things in FLTK</A></B>
- <BR>
- <BR>
- <B><A HREF="events.html#events">6 - Handling Events</A></B>
- <UL>
- <LI><A HREF="events.html#event_xxx">Fl::event_*() methods</A></LI>
- <LI><A HREF="events.html#propagation">Event Propagation</A></LI>
- </UL>
- <B><A HREF="subclassing.html#subclassing">7 - Adding and Extending
- Widgets</A></B>
- <BR>
- <BR>
- <B><A HREF="opengl.html#opengl">8 - Using OpenGL</A></B>
- </TD>
- <TD ALIGN=LEFT VALIGN=TOP>
- <B><A HREF="fluid.html#FLUID">9 - Programming with FLUID</A></B>
- <UL>
- <LI><A HREF="fluid.html#widget_attributes">Widget Attributes</A></LI>
- <LI><A HREF="fluid.html#widget_attributes">Selecting Moving Widgets</A></LI>
- <LI><A HREF="fluid.html#images">Image Labels</A></LI>
- </UL>
- <B><A HREF="advanced.html#advanced">10 - Advanced FLTK</A></B>
- <BR>
- <BR>
- <B><A HREF="widgets.html#widgets">A - Class Reference</A></B>
- <BR>
- <BR>
- <B><A HREF="functions.html#functions">B - Function Reference</A></B>
- <BR>
- <BR>
- <B><A HREF="enumerations.html#Enumerations">C - FLTK Enumerations.H</A>
- </B>
- <BR>
- <BR>
- <B><A HREF="glut.html#glut">D - GLUT Compatibility</A></B>
- <UL>
- <LI><A HREF="glut.html#Fl_Glut_Window">class Fl_Glut_Window</A></LI>
- </UL>
- <B><A HREF="forms.html#forms">E - Forms Compatibility</A></B>
- <BR>
- <BR>
- <B><A HREF="osissues.html#osissues">F - Operating System Issues</A></B>
- <BR>
- <BR>
- <B><A HREF="migration.html">G - Migrating Code from FLTK 1.0.x</A></B>
- <BR>
- <BR>
- <B><A HREF="license.html#license">H - Software License</A></B>
- <BR>
- <BR>
- <B><A HREF="examples.html#examples">I - Example Source Code</A></B>
- </TD>
-</TR>
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/documentation/intro.html b/documentation/intro.html
deleted file mode 100644
index 87756185c..000000000
--- a/documentation/intro.html
+++ /dev/null
@@ -1,372 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>1 - Introduction to FLTK</TITLE>
-</HEAD>
-<BODY>
-
-<H1 ALIGN="RIGHT"><A NAME="intro">1 - Introduction to FLTK</A></H1>
-
-<P>The Fast Light Tool Kit (&quot;FLTK&quot;, pronounced
-&quot;fulltick&quot;) is a cross-platform C++ GUI toolkit for
-UNIX&reg;/Linux&reg; (X11), Microsoft&reg; Windows&reg;, and
-MacOS&reg; X. FLTK provides modern GUI functionality without the
-bloat and supports 3D graphics via OpenGL&reg; and its built-in
-GLUT emulation. It was originally developed by Mr. Bill Spitzak
-and is currently maintained by a small group of developers
-across the world with a central repository in the US.</P>
-
-<H2>History of FLTK</H2>
-
-<P>It has always been Bill's belief that the GUI API of all
-modern systems is much too high level. Toolkits (even FLTK) are
-<I>not</I> what should be provided and documented as part of an
-operating system. The system only has to provide arbitrary
-shaped but featureless windows, a powerful set of graphics
-drawing calls, and a simple <I>unalterable</I> method of
-delivering events to the owners of the windows. NeXT (if you
-ignored NextStep) provided this, but they chose to hide it and
-tried to push their own baroque toolkit instead.</P>
-
-<P>Many of the ideas in FLTK were developed on a NeXT (but
-<I>not</I> using NextStep) in 1987 in a C toolkit Bill called
-&quot;views&quot;. Here he came up with passing events downward
-in the tree and having the handle routine return a value
-indicating whether it used the event, and the table-driven menus. In
-general he was trying to prove that complex UI ideas could be
-entirely implemented in a user space toolkit, with no knowledge
-or support by the system.</P>
-
-<P>After going to film school for a few years, Bill worked at
-Sun Microsystems on the (doomed) NeWS project. Here he found an
-even better and cleaner windowing system, and he reimplemented
-&quot;views&quot; atop that. NeWS did have an unnecessarily
-complex method of delivering events which hurt it. But the
-designers did admit that perhaps the user could write just as
-good of a button as they could, and officially exposed the lower
-level interface.</P>
-
-<P>With the death of NeWS Bill realized that he would have to
-live with X. The biggest problem with X is the &quot;window
-manager&quot;, which means that the toolkit can no longer
-control the window borders or drag the window around.</P>
-
-<P>At Digital Domain Bill discovered another toolkit,
-&quot;Forms&quot;. Forms was similar to his work, but provided
-many more widgets, since it was used in many real applications,
-rather then as theoretical work. He decided to use Forms, except
-he integrated his table-driven menus into it. Several very large
-programs were created using this version of Forms.</P>
-
-<P>The need to switch to OpenGL and GLX, portability, and a
-desire to use C++ subclassing required a rewrite of Forms.
-This produced the first version of FLTK. The conversion to C++
-required so many changes it made it impossible to recompile any
-Forms objects. Since it was incompatible anyway, Bill decided
-to incorporate his older ideas as much as possible by
-simplifying the lower level interface and the event passing
-mechanisim.</P>
-
-<P>Bill received permission to release it for free on the
-Internet, with the GNU general public license. Response from
-Internet users indicated that the Linux market dwarfed the SGI
-and high-speed GL market, so he rewrote it to use X for all
-drawing, greatly speeding it up on these machines. That is the
-version you have now.</P>
-
-<P>Digital Domain has since withdrawn support for FLTK. While
-Bill is no longer able to actively develop it, he still
-contributes to FLTK in his free time and is a part of the FLTK
-development team.</P>
-
-<H2>Features</H2>
-
-<P>FLTK was designed to be statically linked. This was done by
-splitting it into many small objects and designing it so that
-functions that are not used do not have pointers to them in the
-parts that are used, and thus do not get linked in. This allows
-you to make an easy-to-install program or to modify FLTK to
-the exact requirements of your application without worrying
-about bloat. FLTK works fine as a shared library, though, and
-is now included with several Linux distributions.</P>
-
-<P>Here are some of the core features unique to FLTK:</P>
-
-<UL>
-
- <LI>sizeof(Fl_Widget) == 64 to 92.</LI>
-
- <LI>The &quot;core&quot; (the &quot;hello&quot; program
- compiled &amp; linked with a static FLTK library using
- gcc on a 486 and then stripped) is 114K.</LI>
-
- <LI>The FLUID program (which includes every widget) is
- 538k.</LI>
-
- <LI>Written directly atop core libraries (Xlib, WIN32 or
- Carbon) for maximum speed, and carefully optimized for
- code size and performance.</LI>
-
- <LI>Precise low-level compatability between the X11,
- WIN32 and MacOS versions - only about 10% of the code is
- different.</LI>
-
- <LI>Interactive user interface builder program. Output is
- human-readable and editable C++ source code.</LI>
-
- <LI>Support for overlay hardware, with emulation if none
- is available.</LI>
-
- <LI>Very small &amp; fast portable 2-D drawing library
- to hide Xlib, WIN32, or QuickDraw.</LI>
-
- <LI>OpenGL/Mesa drawing area widget.</LI>
-
- <LI>Support for OpenGL overlay hardware on both X11 and
- WIN32, with emulation if none is available.</LI>
-
- <LI>Text widgets with Emacs key bindings, X cut &amp;
- paste, and foreign letter compose!</LI>
-
- <LI>Compatibility header file for the GLUT library.</LI>
-
- <LI>Compatibility header file for the XForms library.</LI>
-
-</UL>
-
-<H2>Licensing</H2>
-
-<P>FLTK comes with complete free source code. FLTK is available
-under the terms of the <A href="license.html">GNU Library
-General Public License</A> with exceptions that allow for static
-linking. Contrary to popular belief, it can be used in
-commercial software - even Bill Gates could use it!</P>
-
-<H2>What Does &quot;FLTK&quot; Mean?</H2>
-
-<P>FLTK was originally designed to be compatible with the Forms
-Library written for SGI machines. In that library all the
-functions and structures started with &quot;fl_&quot;. This
-naming was extended to all new methods and widgets in the C++
-library, and this prefix was taken as the name of the library.
-It is almost impossible to search for &quot;FL&quot; on the
-Internet, due to the fact that it is also the abbreviation for
-Florida. After much debating and searching for a new name for
-the toolkit, which was already in use by several people, Bill
-came up with &quot;FLTK&quot;, including a bogus excuse that it
-stands for &quot;The Fast Light Toolkit&quot;.</P>
-
-<H2>Building and Installing FLTK Under UNIX and MacOS X</H2>
-
-<P>In most cases you can just type &quot;make&quot;. This will
-run configure with the default of no options and then compile
-everything.</P>
-
-<P>FLTK uses GNU autoconf to configure itself for your UNIX
-platform. The main things that the configure script will look
-for are the X11 and OpenGL (or Mesa) header and library files.
-If these cannot be found in the standard include/library
-locations you'll need to define the <tt>CFLAGS</tt>,
-<tt>CXXFLAGS</tt>, and <tt>LDFLAGS</tt> environment variables.
-For the Bourne and Korn shells you'd use:</P>
-
-<UL><PRE>
-CFLAGS=-I<I>includedir</I>; export CFLAGS
-CXXFLAGS=-I<I>includedir</I>; export CXXFLAGS
-LDFLAGS=-L<I>libdir</I>; export LDFLAGS
-</PRE></UL>
-
-<P>For C shell and tcsh, use:</P>
-
-<UL><PRE>
-setenv CFLAGS "-I<I>includedir</I>"
-setenv CXXFLAGS "-I<I>includedir</I>"
-setenv LDFLAGS "-L<I>libdir</I>"
-</PRE></UL>
-
-<P>By default configure will look for a C++ compiler named
-<tt>CC</tt>, <tt>c++</tt>, <tt>g++</tt>, or <tt>gcc</tt> in that
-order. To use another compiler you need to set the <tt>CXX</tt>
-environment variable:</P>
-
-<UL><PRE>
-CXX=xlC; export CXX
-setenv CXX "xlC"
-</PRE></UL>
-
-<P>The <tt>CC</tt> environment variable can also be used to
-override the default C compiler (<tt>cc</tt> or <tt>gcc</tt>),
-which is used for a few FLTK source files.</P>
-
-<P>You can run configure yourself to get the exact setup you
-need. Type &quot;./configure &lt;options&gt;&quot;, where
-options are:</P>
-
-<DL>
-
- <DT>--enable-cygwin</DT>
- <DD>Enable the Cygwin libraries under WIN32</DD>
-
- <DT>--enable-debug</DT>
- <DD>Enable debugging code &amp; symbols</DD>
-
- <DT>--disable-gl</DT>
- <DD>Disable OpenGL support</DD>
-
- <DT>--enable-shared</DT>
- <DD>Enable generation of shared libraries</DD>
-
- <DT>--enable-threads</DT>
- <DD>Enable multithreading support</DD>
-
- <DT>--enable-xdbe</DT>
- <DD>Enable the X double-buffer extension</DD>
-
- <DT>--enable-xft</DT>
- <DD>Enable the Xft library for anti-aliased fonts under X11</DD>
-
- <DT>--bindir=/path</DT>
- <DD>Set the location for executables [default = $prefix/bin]</DD>
-
- <DT>--datadir=/path</DT>
- <DD>Set the location for data files. [default = $prefix/share]</DD>
-
- <DT>--libdir=/path</DT>
- <DD>Set the location for libraries [default = $prefix/lib]</DD>
-
- <DT>--includedir=/path</DT>
- <DD>Set the location for include files. [default = $prefix/include]</DD>
-
- <DT>--mandir=/path</DT>
- <DD>Set the location for man pages. [default = $prefix/man]</DD>
-
- <DT>--prefix=/dir</DT>
- <DD>Set the directory prefix for files [default = /usr/local]</DD>
-
-</DL>
-
-<P>When the configure script is done you can just run the
-&quot;make&quot; command. This will build the library, FLUID
-tool, and all of the test programs.</P>
-
-<P>To install the library, become root and type &quot;make
-install&quot;. This will copy the &quot;fluid&quot; executable
-to &quot;bindir&quot;, the header files to
-&quot;includedir&quot;, and the library files to
-&quot;libdir&quot;.</P>
-
-<H2>Building FLTK Under Microsoft Windows</H2>
-
-<P>There are three ways to build FLTK under Microsoft Windows.
-The first is to use the Visual C++ 5.0 project files under the
-&quot;visualc&quot; directory. Just open (or double-click on)
-the &quot;fltk.dsw&quot; file to get the whole shebang.</P>
-
-<P>The second method is to use the <TT>configure</TT> script
-included with the FLTK software; this has only been tested with
-the CygWin tools:</P>
-
-<UL><PRE>
-sh configure --prefix=C:/FLTK
-make
-</PRE></UL>
-
-<P>The final method is to use a GNU-based development tool with
-the files in the &quot;makefiles&quot; directory. To build
-using one of these tools simply copy the appropriate
-makeinclude and config files to the main directory and do a
-make:</P>
-
-<UL><PRE>
-copy makefiles\Makefile.&lt;env&gt; Makefile
-make
-</PRE></UL>
-
-<H3>Using the Visual C++ DLL Library</H3>
-
-<P>The &quot;fltkdll.dsp&quot; project file builds a DLL-version
-of the FLTK library. Because of name mangling differences
-between PC compilers (even between different versions of Visual
-C++!) you can only use the DLL that is generated with the same
-version compiler that you built it with.</P>
-
-<P>When compiling an application or DLL that uses the FLTK DLL,
-you will need to define the <tt>FL_DLL</tt> preprocessor symbol
-to get the correct linkage commands embedded within the FLTK
-header files.</P>
-
-<H2>Building FLTK Under OS/2</H2>
-
-<P>The current OS/2 build requires XFree86 for OS/2 to work. A
-native Presentation Manager version has not been implemented
-yet (volunteers are welcome!).</P>
-
-<p>The current set of Makefiles/configuration failes assumes that
-EMX 0.9d and libExt
-(from <A HREF="http://posix2.sourceforge.net">posix2.sourceforge.net</A>)
-is installed.
-
-<P>To build the XFree86 version of FLTK for OS/2, copy the appropriate
-makeinclude and config files to the main directory and do a make: </P>
-
-<UL><PRE>
-copy makefiles\Makefile.os2x Makefile
-make
-</PRE></UL>
-
-<H2>Internet Resources</H2>
-
-<P>FLTK is available on the 'net in a bunch of locations:</P>
-
-<DL>
-
- <DT>WWW
- <DD><A href="http://www.fltk.org/">http://www.fltk.org/</A>
- <DD><A href="http://www.fltk.org/str.php">http://www.fltk.org/str.php</A>
- [for reporting bugs]
- <DD><A href="http://www.fltk.org/software.php">http://www.fltk.org/software.php</A>
- [source code]
-
- <DT>FTP
- <DD><A HREF="ftp://ftp.fltk.org/pub/fltk">California, USA (ftp.fltk.org)</A>
- <DD><A HREF="ftp://ftp2.fltk.org/pub/fltk">Maryland, USA (ftp2.fltk.org)</A>
- <DD><A HREF="ftp://ftp.funet.fi/pub/mirrors/ftp.fltk.org/pub/fltk">Espoo, Finland (ftp.funet.fi)</A>
- <DD><A HREF="ftp://linux.mathematik.tu-darmstadt.de/pub/linux/mirrors/misc/fltk">Germany (linux.mathematik.tu-darmstadt.de)</A>
- <DD><A HREF="ftp://gd.tuwien.ac.at/hci/fltk">Austria (gd.tuwien.ac.at)</A>
-
- <DT>EMail</DT>
- <DD><A href="mailto:fltk@fltk.org">fltk@fltk.org</A> [see
- instructions below]
- <DD><A href="mailto:fltk-bugs@fltk.org">fltk-bugs@fltk.org</A> [for
- reporting bugs]
-
- <DT>NNTP Newsgroups</DT>
- <DD>news.easysw.com</DD>
-
-</DL>
-
-<P>To send a message to the FLTK mailing list
-(&quot;fltk@fltk.org&quot;) you must first join the list.
-Non-member submissions are blocked to avoid problems with
-unsolicited email.</P>
-
-<P>To join the FLTK mailing list, send a message to
-&quot;majordomo@fltk.org&quot; with &quot;subscribe fltk&quot;
-in the message body. A digest of this list is available by
-subscribing to the &quot;fltk-digest&quot; mailing list.</P>
-
-<H2>Reporting Bugs</H2>
-
-<P>To report a bug in FLTK, send an email to
-&quot;fltk-bugs@fltk.org&quot;. Please include the FLTK version,
-operating system &amp; version, and compiler that you are using
-when describing the bug or problem. We will be unable to provide
-any kind of help without that basic information.</P>
-
-<P>Bugs can also be reported to the "fltk.bugs" newsgroup or on the
-SourceForge bug tracker pages.</P>
-
-<P>For general support and questions, please use the FLTK mailing list
-at &quot;fltk@fltk.org&quot; or one of the newsgroups.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/license.html b/documentation/license.html
deleted file mode 100644
index 04f61da79..000000000
--- a/documentation/license.html
+++ /dev/null
@@ -1,442 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>H - FLTK License</TITLE>
-</HEAD>
-<BODY>
-
-<H1 ALIGN="RIGHT"><A NAME="license">H - FLTK License</A></H1>
-
-<P ALIGN="RIGHT">December 11, 2001</P>
-
-<P>The FLTK library and included programs are provided under the terms
-of the GNU Library General Public License (LGPL) with the following
-exceptions:</P>
-
-<OL>
-
- <LI>Modifications to the FLTK configure script, config
- header file, and makefiles by themselves to support
- a specific platform do not constitute a modified or
- derivative work.<BR>
- <BR>
- The authors do request that such modifications be
- contributed to the FLTK project - send all
- contributions to "fltk-bugs@fltk.org".<BR>
- <BR>
- </LI>
-
- <LI>Widgets that are subclassed from FLTK widgets do not
- constitute a derivative work.<BR>
- <BR>
- </LI>
-
- <LI>Static linking of applications and widgets to the
- FLTK library does not constitute a derivative work
- and does not require the author to provide source
- code for the application or widget, use the shared
- FLTK libraries, or link their applications or
- widgets against a user-supplied version of FLTK.<BR>
- <BR>
- If you link the application or widget to a modified
- version of FLTK, then the changes to FLTK must be
- provided under the terms of the LGPL in sections
- 1, 2, and 4.<BR>
- <BR>
- </LI>
-
- <LI>You do not have to provide a copy of the FLTK license
- with programs that are linked to the FLTK library, nor
- do you have to identify the FLTK license in your
- program or documentation as required by section 6
- of the LGPL.<BR>
- <BR>
- However, programs must still identify their use of FLTK.
- The following example statement can be included in user
- documentation to satisfy this requirement:<BR>
- <BR>
- <I>[program/widget] is based in part on the work of
- the FLTK project (http://www.fltk.org).</I></LI>
-
-</OL>
-
-<HR>
-
-<P ALIGN=CENTER><BIG>GNU LIBRARY GENERAL PUBLIC LICENSE</BIG></P>
-<P ALIGN=CENTER>Version 2, June 1991
-<BR> Copyright (C) 1991 Free Software Foundation, Inc.
-<BR> 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-<BR> Everyone is permitted to copy and distribute verbatim copies of
-this license document, but changing it is not allowed.
-<BR> [This is the first released version of the library GPL. It is
-numbered 2 because it goes with version 2 of the ordinary GPL.] </P>
-<P><BIG>Preamble</BIG></P>
- The licenses for most software are designed to take away your freedom
-to share and change it. By contrast, the GNU General Public Licenses
-are intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.
-<P>This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it. You can use it for
-your libraries, too. </P>
-<P>When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it in
-new free programs; and that you know you can do these things. </P>
-<P>To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the library, or if you modify it. </P>
-<P>For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights. </P>
-<P>Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library. </P>
-<P>Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library. If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, so that any problems introduced by others will not reflect on
-the original authors' reputations. </P>
-<P>Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software. To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all. </P>
-<P>Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License, which was designed for utility
-programs. This license, the GNU Library General Public License,
-applies to certain designated libraries. This license is quite
-different from the ordinary one; be sure to read it in full, and don't
-assume that anything in it is the same as in the ordinary license. </P>
-<P>The reason we have a separate public license for some libraries is
-that they blur the distinction we usually make between modifying or
-adding to a program and simply using it. Linking a program with a
-library, without changing the library, is in some sense simply using
-the library, and is analogous to running a utility program or
-application program. However, in a textual and legal sense, the linked
-executable is a combined work, a derivative of the original library,
-and the ordinary General Public License treats it as such. </P>
-<P>Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries. We
-concluded that weaker conditions might promote sharing better. </P>
-<P>However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves. This Library General Public License is intended
-to permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them. (We have not seen how to
-achieve this as regards changes in header files, but we have achieved
-it as regards changes in the actual functions of the Library.) The
-hope is that this will lead to faster development of free libraries. </P>
-<P>The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-&quot;work based on the libary&quot; and a &quot;work that uses the library&quot;. The
-former contains code derived from the library, while the latter only
-works together with the library. </P>
-<P>Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one. </P>
-<P ALIGN="CENTER"><BIG>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
-MODIFICATION</BIG></P>
-<STRONG>0.</STRONG> This License Agreement applies to any software
-library which contains a notice placed by the copyright holder or other
-authorized party saying it may be distributed under the terms of this
-Library General Public License (also called &quot;this License&quot;). Each
-licensee is addressed as &quot;you&quot;.
-<P>A &quot;library&quot; means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables. </P>
-<P>The &quot;Library&quot;, below, refers to any such software library or work
-which has been distributed under these terms. A &quot;work based on the
-Library&quot; means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term &quot;modification&quot;.) </P>
-<P>&quot;Source code&quot; for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control
-compilation and installation of the library. </P>
-<P>Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does and
-what the program that uses the Library does. </P>
-<P><STRONG>1.</STRONG> You may copy and distribute verbatim copies of
-the Library's complete source code as you receive it, in any medium,
-provided that you conspicuously and appropriately publish on each copy
-an appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the Library. </P>
-<P>You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee. </P>
-<P><STRONG>2.</STRONG> You may modify your copy or copies of the
-Library or any portion of it, thus forming a work based on the Library,
-and copy and distribute such modifications or work under the terms of
-Section 1 above, provided that you also meet all of these conditions: <BLOCKQUOTE>
-<STRONG>a)</STRONG> The modified work must itself be a software
-library.
-<P><STRONG>b)</STRONG> You must cause the files modified to carry
-prominent notices stating that you changed the files and the date of
-any change. </P>
-<P><STRONG>c)</STRONG> You must cause the whole of the work to be
-licensed at no charge to all third parties under the terms of this
-License. </P>
-<P><STRONG>d)</STRONG> If a facility in the modified Library refers to
-a function or a table of data to be supplied by an application program
-that uses the facility, other than as an argument passed when the
-facility is invoked, then you must make a good faith effort to ensure
-that, in the event an application does not supply such function or
-table, the facility still operates, and performs whatever part of its
-purpose remains meaningful. </P>
-<P>(For example, a function in a library to compute square roots has a
-purpose that is entirely well-defined independent of the application.
- Therefore, Subsection 2d requires that any application-supplied
-function or table used by this function must be optional: if the
-application does not supply it, the square root function must still
-compute square roots.) </P>
-</BLOCKQUOTE>
-<P>These requirements apply to the modified work as a whole.
-If identifiable sections of that work are not derived from the
-Library, and can be reasonably considered independent and separate
-works in themselves, then this License, and its terms, do not apply to
-those sections when you distribute them as separate works. But when
-you distribute the same sections as part of a whole which is a work
-based on the Library, the distribution of the whole must be on the
-terms of this License, whose permissions for other licensees extend to
-the entire whole, and thus to each and every part regardless of who
-wrote it. </P>
-<P>Thus, it is not the intent of this section to claim rights or
-contest your rights to work written entirely by you; rather, the intent
-is to exercise the right to control the distribution of derivative or
-collective works based on the Library. </P>
-<P>In addition, mere aggregation of another work not based on the
-Library with the Library (or with a work based on the Library) on a
-volume of a storage or distribution medium does not bring the other
-work under the scope of this License. </P>
-<P><STRONG>3.</STRONG> You may opt to apply the terms of the ordinary
-GNU General Public License instead of this License to a given copy of
-the Library. To do this, you must alter all the notices that refer to
-this License, so that they refer to the ordinary GNU General Public
-License, version 2, instead of to this License. (If a newer version
-than version 2 of the ordinary GNU General Public License has appeared,
-then you can specify that version instead if you wish.) Do not make
-any other change in these notices. </P>
-<P>Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy. </P>
-<P>This option is useful when you wish to copy part of the code of the
-Library into a program that is not a library. </P>
-<P><STRONG>4.</STRONG> You may copy and distribute the Library (or a
-portion or derivative of it, under Section 2) in object code or
-executable form under the terms of Sections 1 and 2 above provided that
-you accompany it with the complete corresponding machine-readable
-source code, which must be distributed under the terms of Sections 1
-and 2 above on a medium customarily used for software interchange. </P>
-<P>If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to distribute
-the source code, even though third parties are not compelled to copy
-the source along with the object code. </P>
-<P><STRONG>5.</STRONG> A program that contains no derivative of any
-portion of the Library, but is designed to work with the Library by
-being compiled or linked with it, is called a &quot;work that uses the
-Library&quot;. Such a work, in isolation, is not a derivative work of the
-Library, and therefore falls outside the scope of this License. </P>
-<P>However, linking a &quot;work that uses the Library&quot; with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a &quot;work that uses the
-library&quot;. The executable is therefore covered by this License. Section
-6 states terms for distribution of such executables. </P>
-<P>When a &quot;work that uses the Library&quot; uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law. </P>
-<P>If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.) </P>
-<P>Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6, whether
-or not they are linked directly with the Library itself. </P>
-<P><STRONG>6.</STRONG> As an exception to the Sections above, you may
-also compile or link a &quot;work that uses the Library&quot; with the Library to
-produce a work containing portions of the Library, and distribute that
-work under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications. </P>
-<P>You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things: <BLOCKQUOTE><STRONG>a)</STRONG> Accompany the work
-with the complete corresponding machine-readable source code for the
-Library including whatever changes were used in the work (which must
-be distributed under Sections 1 and 2 above); and, if the work is an
-executable linked with the Library, with the complete machine-readable
-&quot;work that uses the Library&quot;, as object code and/or source code, so
-that the user can modify the Library and then relink to produce a
-modified executable containing the modified Library. (It is
-understood that the user who changes the contents of definitions files
-in the Library will not necessarily be able to recompile the
-application to use the modified definitions.)
-<P><STRONG>b)</STRONG> Accompany the work with a written offer, valid
-for at least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more than the cost
-of performing this distribution. </P>
-<P><STRONG>c)</STRONG> If distribution of the work is made by offering
-access to copy from a designated place, offer equivalent access to
-copy the above specified materials from the same place. </P>
-<P><STRONG>d)</STRONG> Verify that the user has already received a copy
-of these materials or that you have already sent this user a copy. </P>
-</BLOCKQUOTE>
-<P>For an executable, the required form of the &quot;work that
-uses the Library&quot; must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the source code distributed need not include anything that is normally
-distributed (in either source or binary form) with the major components
-(compiler, kernel, and so on) of the operating system on which the
-executable runs, unless that component itself accompanies the
-executable.</P>
-<P>It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute. </P>
-<P><STRONG>7.</STRONG> You may place library facilities that are a work
-based on the Library side-by-side in a single library together with
-other library facilities not covered by this License, and distribute
-such a combined library, provided that the separate distribution of the
-work based on the Library and of the other library facilities is
-otherwise permitted, and provided that you do these two things: <BLOCKQUOTE>
-<STRONG>a)</STRONG> Accompany the combined library with a copy of the
-same work based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the Sections
-above.
-<P><STRONG>b)</STRONG> Give prominent notice with the combined library
-of the fact that part of it is a work based on the Library, and
-explaining where to find the accompanying uncombined form of the same
-work. </P>
-</BLOCKQUOTE>
-<P><STRONG>8.</STRONG> You may not copy, modify, sublicense,
-link with, or distribute the Library except as expressly provided under
-this License. Any attempt otherwise to copy, modify, sublicense, link
-with, or distribute the Library is void, and will automatically
-terminate your rights under this License. However, parties who have
-received copies, or rights, from you under this License will not have
-their licenses terminated so long as such parties remain in full
-compliance. </P>
-<P><STRONG>9.</STRONG> You are not required to accept this License,
-since you have not signed it. However, nothing else grants you
-permission to modify or distribute the Library or its derivative works.
- These actions are prohibited by law if you do not accept this License.
- Therefore, by modifying or distributing the Library (or any work based
-on the Library), you indicate your acceptance of this License to do so,
-and all its terms and conditions for copying, distributing or modifying
-the Library or works based on it. </P>
-<P><STRONG>10.</STRONG> Each time you redistribute the Library (or any
-work based on the Library), the recipient automatically receives a
-license from the original licensor to copy, distribute, link with or
-modify the Library subject to these terms and conditions. You may not
-impose any further restrictions on the recipients' exercise of the
-rights granted herein. You are not responsible for enforcing compliance
-by third parties to this License. </P>
-<P><STRONG>11.</STRONG> If, as a consequence of a court judgment or
-allegation of patent infringement or for any other reason (not limited
-to patent issues), conditions are imposed on you (whether by court
-order, agreement or otherwise) that contradict the conditions of this
-License, they do not excuse you from the conditions of this License.
- If you cannot distribute so as to satisfy simultaneously your
-obligations under this License and any other pertinent obligations,
-then as a consequence you may not distribute the Library at all. For
-example, if a patent license would not permit royalty-free
-redistribution of the Library by all those who receive copies directly
-or indirectly through you, then the only way you could satisfy both it
-and this License would be to refrain entirely from distribution of the
-Library. </P>
-<P>If any portion of this section is held invalid or unenforceable
-under any particular circumstance, the balance of the section is
-intended to apply, and the section as a whole is intended to apply in
-other circumstances. </P>
-<P>It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is implemented
-by public license practices. Many people have made generous
-contributions to the wide range of software distributed through that
-system in reliance on consistent application of that system; it is up
-to the author/donor to decide if he or she is willing to distribute
-software through any other system and a licensee cannot impose that
-choice. </P>
-<P>This section is intended to make thoroughly clear what is believed
-to be a consequence of the rest of this License. </P>
-<P><STRONG>12.</STRONG> If the distribution and/or use of the Library
-is restricted in certain countries either by patents or by copyrighted
-interfaces, the original copyright holder who places the Library under
-this License may add an explicit geographical distribution limitation
-excluding those countries, so that distribution is permitted only in or
-among countries not thus excluded. In such case, this License
-incorporates the limitation as if written in the body of this License. </P>
-<P><STRONG>13.</STRONG> The Free Software Foundation may publish
-revised and/or new versions of the Library General Public License from
-time to time. Such new versions will be similar in spirit to the
-present version, but may differ in detail to address new problems or
-concerns. </P>
-<P>Each version is given a distinguishing version number. If the
-Library specifies a version number of this License which applies to it
-and &quot;any later version&quot;, you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation. </P>
-<P><STRONG>14.</STRONG> If you wish to incorporate parts of the Library
-into other free programs whose distribution conditions are incompatible
-with these, write to the author to ask for permission. For software
-which is copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally. </P>
-<P ALIGN="CENTER"><BIG>NO WARRANTY</BIG></P>
-<P><STRONG>15.</STRONG> BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE,
-THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY &quot;AS IS&quot; WITHOUT
-WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
-OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU
-ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. </P>
-<P><STRONG>16.</STRONG> IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW
-OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY
-WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE
-LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL
-OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES. </P>
-<P ALIGN="CENTER"><BIG>END OF TERMS AND CONDITIONS</BIG></P>
-
-</BODY>
-</HTML>
diff --git a/documentation/migration.html b/documentation/migration.html
deleted file mode 100644
index 1f940044e..000000000
--- a/documentation/migration.html
+++ /dev/null
@@ -1,163 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>G - Migrating Code from FLTK 1.0.x</TITLE>
-</HEAD>
-<BODY>
-
-<H1 ALIGN="RIGHT"><A NAME="migration">G - Migrating Code from FLTK 1.0.x</A></H1>
-
-<P>This appendix describes the differences between the FLTK
-1.0.x and FLTK 1.1.x functions and classes.</P>
-
-<H2>Color Values</H2>
-
-<P>Color values are now stored in a 32-bit unsigned integer
-instead of the unsigned character in 1.0.x. This allows for the
-specification of 24-bit RGB values or 8-bit FLTK color indices.
-
-<P><TT>FL_BLACK</TT> and <TT>FL_WHITE</TT> now remain black and
-white, even if the base color of the gray ramp is changed using
-<A HREF="Fl.html#Fl.background"><TT>Fl::background()</TT></A>.
-<TT>FL_DARK3</TT> and <TT>FL_LIGHT3</TT> can be used instead to
-draw a very dark or a very bright background hue.</P>
-
-<P>Widgets use the new color symbols <TT>FL_FORGROUND_COLOR</TT>,
-<TT>FL_BACKGROUND_COLOR</TT>, <TT>FL_BACKGROUND2_COLOR</TT>,
-<TT>FL_INACTIVE_COLOR</TT>, and <TT>FL_SELECTION_COLOR</TT>.
-More details can be found in the chapter
-<A HREF="enumerations.html#colors">Enumerations</A>.</P>
-
-<H2>Cut and Paste Support</H2>
-
-<P>The FLTK clipboard is now broken into two parts - a local
-selection value and a cut-and-paste value. This allows FLTK to
-support things like highlighting and replacing text that was
-previously cut or copied, which makes FLTK applications behave
-like traditional GUI applications.
-
-<H2>File Chooser</H2>
-
-<P>The file chooser in FLTK 1.1.x is significantly different
-than the one supplied with FLTK 1.0.x. Any code that directly
-references the old <TT>FCB</TT> class or members will need
-to be ported to the new <A
-HREF="Fl_File_Chooser.html"><TT>Fl_File_Chooser</TT></A>
-class.</P>
-
-<H2>Function Names</H2>
-
-<P>Some function names have changed from FLTK 1.0.x to 1.1.x in
-order to avoid name space collisions. You can still use the old
-function names by defining the <CODE>FLTK_1_0_COMPAT</CODE>
-symbol on the command-line when you compile
-(<CODE>-DFLTK_1_0_COMPAT</CODE>) or in your source, e.g.:
-
-<UL><PRE>
-#define FLTK_1_0_COMPAT
-#include &lt;FL/Fl.H&gt;
-#include &lt;FL/Enumerations.H&gt;
-#include &lt;FL/filename.H&gt;
-</PRE></UL>
-
-<P>The following table shows the old and new function names:</P>
-
-<CENTER><TABLE WIDTH="80%" BORDER="1">
-<TR>
- <TH>Old 1.0.x Name</TH>
- <TH>New 1.1.x Name</TH>
-</TR>
-<TR>
- <TD>contrast()</TD>
- <TD>fl_contrast()</TD>
-</TR>
-<TR>
- <TD>down()</TD>
- <TD>fl_down()</TD>
-</TR>
-<TR>
- <TD>filename_absolute()</TD>
- <TD>fl_filename_absolute()</TD>
-</TR>
-<TR>
- <TD>filename_expand()</TD>
- <TD>fl_filename_expand()</TD>
-</TR>
-<TR>
- <TD>filename_ext()</TD>
- <TD>fl_filename_ext()</TD>
-</TR>
-<TR>
- <TD>filename_isdir()</TD>
- <TD>fl_filename_isdir()</TD>
-</TR>
-<TR>
- <TD>filename_list()</TD>
- <TD>fl_filename_list()</TD>
-</TR>
-<TR>
- <TD>filename_match()</TD>
- <TD>fl_filename_match()</TD>
-</TR>
-<TR>
- <TD>filename_name()</TD>
- <TD>fl_filename_name()</TD>
-</TR>
-<TR>
- <TD>filename_relative()</TD>
- <TD>fl_filename_relative()</TD>
-</TR>
-<TR>
- <TD>filename_setext()</TD>
- <TD>fl_filename_setext()</TD>
-</TR>
-<TR>
- <TD>frame()</TD>
- <TD>fl_frame()</TD>
-</TR>
-<TR>
- <TD>inactive()</TD>
- <TD>fl_inactive()</TD>
-</TR>
-<TR>
- <TD>numericsort()</TD>
- <TD>fl_numericsort()</TD>
-</TR>
-</TABLE></CENTER>
-
-<H2>Image Support</H2>
-
-<P>Image support in FLTK has been significantly revamped in
-1.1.x. The <A HREF="Fl_Image.html"><TT>Fl_Image</TT></A> class
-is now a proper base class, with the core image drawing
-functionality in the <A
-HREF="Fl_Bitmap.html"><TT>Fl_Bitmap</TT></A>, <A
-HREF="Fl_Pixmap.html"><TT>Fl_Pixmap</TT></A>, and <A
-HREF="Fl_RGB_Image.html"><TT>Fl_RGB_Image</TT></A> classes.
-
-<P>BMP, GIF, JPEG, PNG, XBM, and XPM image files can now be
-loaded using the appropriate image classes, and the <A
-HREF="Fl_Shared_Image.html"><TT>Fl_Shared_Image</TT></A> class
-can be used to cache images in memory.
-
-<P>Image labels are no longer provided as an add-on label type.
-If you use the old <TT>label()</TT> methods on an image, the
-widget's <TT>image()</TT> method is called to set the image
-as the label.
-
-<P>Image labels in menu items must still use the old labeltype
-mechanism to preserve source compatibility.
-
-<H2>Keyboard Navigation</H2>
-
-<P>FLTK 1.1.x now supports keyboard navigation and control with
-all widgets. To restore the old FLTK 1.0.x behavior so that only
-text widgets get keyboard focus, call the <A
-HREF="Fl.html#Fl.visible_focus"><CODE>Fl::visible_focus()</CODE></A>
-method to disable it:
-
-<UL><PRE>
-Fl::visible_focus(0);
-</PRE></UL>
-
-</BODY>
-</HTML>
diff --git a/documentation/opengl.html b/documentation/opengl.html
deleted file mode 100644
index 89a21a16c..000000000
--- a/documentation/opengl.html
+++ /dev/null
@@ -1,467 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>8 - Using OpenGL</TITLE>
-</HEAD>
-<BODY>
-<H1 ALIGN=RIGHT><A NAME=opengl>8 - Using OpenGL</A></H1>
-
-<P>This chapter discusses using FLTK for your OpenGL applications.
-
-<H2>Using OpenGL in FLTK</H2>
-
-<P>The easiest way to make an OpenGL display is to subclass <A
-href="Fl_Gl_Window.html#Fl_Gl_Window"><TT>Fl_Gl_Window</TT></A>.
-Your subclass must implement a <TT>draw()</TT> method which uses
-OpenGL calls to draw the display. Your main program should call
-<TT>redraw()</TT> when the display needs to change, and
-(somewhat later) FLTK will call <TT>draw()</TT>.
-
-<P>With a bit of care you can also use OpenGL to draw into
-normal FLTK windows. This allows you to use Gouraud shading for
-drawing your widgets. To do this you use the <A
-href="#gl_start"><TT>gl_start()</TT></A> and <A
-href=#gl_finish><TT>gl_finish()</TT></A> functions around your
-OpenGL code.</P>
-
-<P>You must include FLTK's <TT>&lt;FL/gl.h&gt;</TT> header
-file. It will include the file <TT>&lt;GL/gl.h&gt;</TT>, define
-some extra drawing functions provided by FLTK, and include the
-<TT>&lt;windows.h&gt;</TT> header file needed by WIN32
-applications.</P>
-
-<H2>Making a Subclass of Fl_Gl_Window</H2>
-
-<P>To make a subclass of Fl_Gl_Window, you must provide:
-
-<UL>
-
- <LI>A class definition.</LI>
-
- <LI>A <TT>draw()</TT> method.</LI>
-
- <LI>A <TT>handle()</TT> method if you need to receive
- input from the user.</LI>
-
-</UL>
-
-<P>If your subclass provides static controls in the window, they
-must be redrawn whenever the <tt>FL_DAMAGE_ALL</tt> bit is set
-in the value returned by <tt>damage()</tt>. For double-buffered
-windows you will need to surround the drawing code with the
-following code to make sure that both buffers are redrawn:
-
-<UL><PRE>
-#ifndef MESA
-glDrawBuffer(GL_FRONT_AND_BACK);
-#endif // !MESA
-... draw stuff here ...
-#ifndef MESA
-glDrawBuffer(GL_BACK);
-#endif // !MESA
-</PRE></UL>
-
-<CENTER><TABLE WIDTH="80%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>Note:</B>
-
- <P>If you are using the Mesa graphics library, the call
- to <tt>glDrawBuffer()</tt> is not required and will slow
- down drawing considerably. The preprocessor instructions
- shown above will optimize your code based upon the
- graphics library used.
-
- </TD>
-
-</TR>
-</TABLE></CENTER>
-
-<H3>Defining the Subclass</H3>
-
-<P>To define the subclass you just subclass the
-<TT>Fl_Gl_Window</TT> class:
-
-<UL><PRE>
-class MyWindow : public Fl_Gl_Window {
- void draw();
- int handle(int);
-
-public:
- MyWindow(int X, int Y, int W, int H, const char *L)
- : Fl_Gl_Window(X, Y, W, H, L) {}
-};
-</PRE></UL>
-
-<P>The <TT>draw()</TT> and <TT>handle()</TT> methods are
-described below. Like any widget, you can include additional
-private and public data in your class (such as scene graph
-information, etc.)
-
-<H3>The draw() Method</H3>
-
-<P>The <TT>draw()</TT> method is where you actually do your
-OpenGL drawing:
-
-<UL><PRE>
-void MyWindow::draw() {
- if (!valid()) {
- ... set up projection, viewport, etc ...
- ... window size is in w() and h().
- ... valid() is turned on by FLTK after draw() returns
- }
- ... draw ...
-}
-</PRE></UL>
-
-<H3>The handle() Method</H3>
-
-<P>The <TT>handle()</TT> method handles mouse and keyboard
-events for the window:
-
-<UL><PRE>
-int MyWindow::handle(int event) {
- switch(event) {
- case FL_PUSH:
- ... mouse down event ...
- ... position in Fl::event_x() and Fl::event_y()
- return 1;
- case FL_DRAG:
- ... mouse moved while down event ...
- return 1;
- case FL_RELEASE:
- ... mouse up event ...
- return 1;
- case FL_FOCUS :
- case FL_UNFOCUS :
- ... Return 1 if you want keyboard events, 0 otherwise
- return 1;
- case FL_KEYBOARD:
- ... keypress, key is in Fl::event_key(), ascii in Fl::event_text()
- ... Return 1 if you understand/use the keyboard event, 0 otherwise...
- return 1;
- case FL_SHORTCUT:
- ... shortcut, key is in Fl::event_key(), ascii in Fl::event_text()
- ... Return 1 if you understand/use the shortcut event, 0 otherwise...
- return 1;
- default:
- // pass other events to the base class...
- return Fl_Gl_Window::handle(event);
- }
-}
-</PRE></UL>
-
-<P>When <TT>handle()</TT> is called, the OpenGL context is not
-set up! If your display changes, you should call
-<TT>redraw()</TT> and let <TT>draw()</TT> do the work. Don't
-call any OpenGL drawing functions from inside <TT>handle()</TT>!
-
-<P>You can call <I>some</I> OpenGL stuff like hit detection and texture
-loading functions by doing: </P>
-
-<UL><PRE>
- case FL_PUSH:
- make_current(); // make OpenGL context current
- if (!valid()) {
- ... set up projection exactly the same as draw ...
- valid(1); // stop it from doing this next time
- }
- ... ok to call NON-DRAWING OpenGL code here, such as hit
- detection, loading textures, etc...
-</PRE></UL>
-
-<P>Your main program can now create one of your windows by doing
-<TT>new MyWindow(...)</TT>. You can also use <A
-href="fluid.html#FLUID">FLUID</A> by:
-
-<OL>
-
- <LI>Putting your class definition in a
- <tt>MyWindow.H</tt> file.</LI>
-
- <LI>Creating a <tt>Fl_Box</tt> widget in FLUID.</LI>
-
- <LI>In the widget panel fill in the &quot;class&quot;
- field with <tt>MyWindow</tt>. This will make FLUID
- produce constructors for your new class.</LI>
-
- <LI>In the &quot;Extra Code&quot; field put <TT>#include
- &quot;MyWindow.H&quot;</TT>, so that the FLUID output
- file will compile.</LI>
-
-</OL>
-
-<P>You must put <TT>glwindow-&gt;show()</TT> in your main code
-after calling <TT>show()</TT> on the window containing the
-OpenGL window.
-
-<H2>Using OpenGL in Normal FLTK Windows</H2>
-
-<P>You can put OpenGL code into an <A
-href="subclassing.html#draw"><TT>Fl_Widget::draw()</TT></A>
-method or into the code for a <A
-href="common.html#boxtypes">boxtype</A> or other places with some
-care.
-
-<P>Most importantly, before you show <I>any</I> windows,
-including those that don't have OpenGL drawing, you <B>must</B>
-initialize FLTK so that it knows it is going to use OpenGL. You
-may use any of the symbols described for <A
-href="Fl_Gl_Window.html#Fl_Gl_Window.mode"><TT>Fl_Gl_Window::mode()</TT></A>
-to describe how you intend to use OpenGL:</P>
-
-<UL><PRE>
-Fl::gl_visual(FL_RGB);
-</PRE></UL>
-
-<P>You can then put OpenGL drawing code anywhere you can draw
-normally by surrounding it with:
-
-<UL><PRE>
-gl_start();
-... put your OpenGL code here ...
-gl_finish();
-</PRE></UL>
-
-<P><A name="gl_start"><TT>gl_start()</TT></A> and <A
-name="gl_finish"><TT>gl_finish()</TT></A> set up an OpenGL
-context with an orthographic projection so that 0,0 is the
-lower-left corner of the window and each pixel is one unit. The
-current clipping is reproduced with OpenGL <TT>glScissor()</TT>
-commands. These functions also synchronize the OpenGL graphics stream
-with the drawing done by other X, WIN32, or FLTK functions.
-
-<P>The same context is reused each time. If your code changes
-the projection transformation or anything else you should use
-<TT>glPushMatrix()</TT> and <TT>glPopMatrix()</TT> functions to
-put the state back before calling <TT>gl_finish()</TT>.</P>
-
-<P>You may want to use <TT>Fl_Window::current()-&gt;h()</TT> to
-get the drawable height so that you can flip the Y
-coordinates.</P>
-
-<P>Unfortunately, there are a bunch of limitations you must
-adhere to for maximum portability: </P>
-
-<UL>
-
- <LI>You must choose a default visual with <A
- href="Fl.html#Fl.gl_visual"><TT>Fl::gl_visual()</TT></A>.</LI>
-
- <LI>You cannot pass <TT>FL_DOUBLE</TT> to
- <TT>Fl::gl_visual()</TT>.</LI>
-
- <LI>You cannot use <TT>Fl_Double_Window</TT> or
- <TT>Fl_Overlay_Window</TT>.</LI>
-
-</UL>
-
-<P>Do <I>not</I> call <TT>gl_start()</TT> or
-<TT>gl_finish()</TT> when drawing into an <TT>Fl_Gl_Window</TT>!
-
-<H2>OpenGL Drawing Functions</H2>
-
-<P>FLTK provides some useful OpenGL drawing functions. They can
-be freely mixed with any OpenGL calls, and are defined by
-including <TT>&lt;FL/gl.H&gt;</TT> which you should include
-instead of the OpenGL header <TT>&lt;GL/gl.h&gt;</TT>.
-
-<H4>void gl_color(Fl_Color)</H4>
-
-<P>Sets the current OpenGL color to a FLTK color. <I>For
-color-index modes it will use <TT>fl_xpixel(c)</TT>, which is
-only right if this window uses the default colormap!</I>
-
-<H4>void gl_rect(int x, int y, int w, int h)
-<BR>void gl_rectf(int x, int y, int w, int h)</H4>
-
-<P>Outlines or fills a rectangle with the current color. If <A
-HREF="Fl_Gl_Window.html#Fl_Gl_Window.ortho"><TT>Fl_Gl_Window::ortho()</TT></A>
-has been called, then the rectangle will exactly fill the pixel
-rectangle passed.
-
-<H4>void gl_font(Fl_Font fontid, int size)</H4>
-
-<P>Sets the current OpenGL font to the same font you get by
-calling <A href="drawing.html#fl_font"><TT>fl_font()</TT></A>.
-
-<H4>int gl_height()
-<BR>int gl_descent()
-<BR>float gl_width(const char *)
-<BR>float gl_width(const char *, int n)
-<BR>float gl_width(uchar)</H4>
-
-<P>Returns information about the current OpenGL font.
-
-<H4>void gl_draw(const char *)
-<BR>void gl_draw(const char *, int n)</H4>
-
-<P>Draws a nul-terminated string or an array of <TT>n</TT>
-characters in the current OpenGL font at the current raster
-position.
-
-<H4>void gl_draw(const char *, int x, int y)
-<BR>void gl_draw(const char *, int n, int x, int y)
-<BR>void gl_draw(const char *, float x, float y)
-<BR>void gl_draw(const char *, int n, float x, float y)</H4>
-
-<P>Draws a nul-terminated string or an array of <TT>n</TT>
-characters in the current OpenGL font at the given position.
-
-<H4>void gl_draw(const char *, int x, int y, int w, int h, Fl_Align)</H4>
-
-<P>Draws a string formatted into a box, with newlines and tabs
-expanded, other control characters changed to ^X, and aligned
-with the edges or center. Exactly the same output as <A
-href="drawing.html#text"><TT>fl_draw()</TT></A>.
-
-<h2>Speeding up OpenGL</h2>
-
-<P>Performance of Fl_Gl_Window may be improved on some types of
-OpenGL implementations, in particular MESA and other software
-emulators, by setting the <tt>GL_SWAP_TYPE</tt> environment
-variable. This variable declares what is in the backbuffer after
-you do a swapbuffers.
-
-<ul>
-
- <li><tt>setenv GL_SWAP_TYPE COPY</tt>
-
- <p>This indicates that the back buffer is copied to the
- front buffer, and still contains it's old data. This is
- true of many hardware implementations. Setting this
- will speed up emulation of overlays, and widgets that
- can do partial update can take advantage of this as
- damage() will not be cleared to -1. <p>
-
- <li><tt>setenv GL_SWAP_TYPE NODAMAGE</tt>
-
- <p>This indicates that nothing changes the back buffer
- except drawing into it. This is true of MESA and Win32
- software emulation and perhaps some hardware emulation
- on systems with lots of memory. <p>
-
- <li>All other values for <tt>GL_SWAP_TYPE</tt>, and not
- setting the variable, cause FLTK to assume that the
- back buffer must be completely redrawn after a swap.
-
-</ul>
-
-<p>This is easily tested by running the <TT>gl_overlay</TT> demo
-program and seeing if the display is correct when you drag
-another window over it or if you drag the window off the screen
-and back on. You have to exit and run the program again for it
-to see any changes to the environment variable.
-
-<H2>Using OpenGL Optimizer with FLTK</H2>
-
-<P><A href="http://www.sgi.com/software/optimizer">OpenGL
-Optimizer</A> is a scene graph toolkit for OpenGL available from
-Silicon Graphics for IRIX and Microsoft Windows. It allows you
-to view large scenes without writing a lot of OpenGL code.
-
-<H4>OptimizerWindow Class Definition</H4>
-
-<P>To use OpenGL Optimizer with FLTK you'll need to create a
-subclass of <TT>Fl_Gl_Widget</TT> that includes several state
-variables:
-
-<UL><PRE>
-class OptimizerWindow : public Fl_Gl_Window {
- csContext *context_; // Initialized to 0 and set by draw()...
- csDrawAction *draw_action_; // Draw action...
- csGroup *scene_; // Scene to draw...
- csCamara *camera_; // Viewport for scene...
-
- void draw();
-
-public:
- OptimizerWindow(int X, int Y, int W, int H, const char *L)
- : Fl_Gl_Window(X, Y, W, H, L) {
- context_ = (csContext *)0;
- draw_action_ = (csDrawAction *)0;
- scene_ = (csGroup *)0;
- camera_ = (csCamera *)0;
- }
-
- void scene(csGroup *g) { scene_ = g; redraw(); }
-
- void camera(csCamera *c) {
- camera_ = c;
- if (context_) {
- draw_action_-&gt;setCamera(camera_);
- camera_-&gt;draw(draw_action_);
- redraw();
- }
- }
-};
-</PRE></UL>
-
-<H4>The camera() Method</H4>
-
-<P>The <TT>camera()</TT> method sets the camera (projection and
-viewpoint) to use when drawing the scene. The scene is redrawn after
-this call.
-
-<H4>The draw() Method</H4>
-
-<P>The <TT>draw()</TT> method performs the needed initialization and does
-the actual drawing:
-
-<UL><PRE>
-void OptimizerWindow::draw() {
- if (!context_) {
- // This is the first time we've been asked to draw; create the
- // Optimizer context for the scene...
-
-#ifdef WIN32
- context_ = new csContext((HDC)fl_getHDC());
- context_-&gt;ref();
- context_-&gt;makeCurrent((HDC)fl_getHDC());
-#else
- context_ = new csContext(fl_display, fl_visual);
- context_-&gt;ref();
- context_-&gt;makeCurrent(fl_display, fl_window);
-#endif // WIN32
-
- ... perform other context setup as desired ...
-
- // Then create the draw action to handle drawing things...
-
- draw_action_ = new csDrawAction;
- if (camera_) {
- draw_action_-&gt;setCamera(camera_);
- camera_-&gt;draw(draw_action_);
- }
- } else {
-#ifdef WIN32
- context_-&gt;makeCurrent((HDC)fl_getHDC());
-#else
- context_-&gt;makeCurrent(fl_display, fl_window);
-#endif // WIN32
- }
-
- if (!valid()) {
- // Update the viewport for this context...
- context_-&gt;setViewport(0, 0, w(), h());
- }
-
- // Clear the window...
- context_-&gt;clear(csContext::COLOR_CLEAR | csContext::DEPTH_CLEAR,
- 0.0f, // Red
- 0.0f, // Green
- 0.0f, // Blue
- 1.0f); // Alpha
-
- // Then draw the scene (if any)...
- if (scene_)
- draw_action_-&gt;apply(scene_);
-}
-</PRE></UL>
-
-<H4>The scene() Method</H4>
-
-<P>The <TT>scene()</TT> method sets the scene to be drawn. The scene is
-a collection of 3D objects in a <TT>csGroup</TT>. The scene is redrawn
-after this call.
-
-</BODY>
-</HTML>
diff --git a/documentation/osissues.html b/documentation/osissues.html
deleted file mode 100644
index b0512edcf..000000000
--- a/documentation/osissues.html
+++ /dev/null
@@ -1,745 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>F - Operating System Issues</TITLE>
-</HEAD>
-<BODY>
-
-<H1 ALIGN="RIGHT"><A NAME="osissues">F - Operating System Issues</A></H1>
-
-<P>This appendix describes the operating system specific interfaces in FLTK.
-
-<H2>Accessing the OS Interfaces</H2>
-
-<P>All programs that need to access the operating system
-specific interfaces must include the following header file:
-
-<UL><PRE>
-#include &lt;FL/x.H&gt;
-</PRE></UL>
-
-<P>Despite the name, this header file will define the
-appropriate interface for your environment. The pages that
-follow describe the functionality that is provided for each
-operating system.
-
-<CENTER><TABLE WIDTH="90%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>WARNING:</B>
-
- <P>The interfaces provided by this header file may
- change radically in new FLTK releases. Use them only
- when an existing generic FLTK interface is not
- sufficient.</P>
-
- </TD>
-</TR>
-</TABLE></CENTER>
-
-<H2>The UNIX (X11) Interface</H2>
-
-<P>The UNIX interface provides access to the X Window System
-state information and data structures.
-
-<H3>Handling Other X Events</H3>
-
-<H4><A name="add_handler">void Fl::add_handler(int (*f)(int))</A></H4>
-
-<P>Installs a function to parse unrecognized events. If FLTK
-cannot figure out what to do with an event, it calls each of
-these functions (most recent first) until one of them returns
-non-zero. If none of them returns non-zero then the event is
-ignored.
-
-<P>FLTK calls this for any X events it does not recognize, or X
-events with a window ID that FLTK does not recognize. You can
-look at the X event in the <A
-href="#fl_xevent"><TT>fl_xevent</TT></A> variable.</P>
-
-<P>The argument is the FLTK event type that was not handled, or
-zero for unrecognized X events. These handlers are also called
-for global shortcuts and some other events that the widget they
-were passed to did not handle, for example
-<TT>FL_SHORTCUT</TT>.</P>
-
-<H4><A name="fl_xevent">extern XEvent *fl_xvent</A></H4>
-
-<P>This variable contains the most recent X event.
-
-<H4><A name="fl_event_time">extern ulong fl_event_time</A></H4>
-
-<P>This variable contains the time stamp from the most recent X
-event that reported it; not all events do. Many X calls like cut
-and paste need this value.
-
-<H4><A name="fl_xid">Window fl_xid(const Fl_Window *)</A></H4>
-
-<P>Returns the XID for a window, or zero if not <TT>shown()</TT>.
-
-<H4><A name="fl_find">Fl_Window *fl_find(ulong xid)</A></H4>
-
-<P>Returns the <TT>Fl_Window</TT> that corresponds to the given
-XID, or <TT>NULL</TT> if not found. This function uses a cache
-so it is slightly faster than iterating through the windows
-yourself.</P>
-
-<H4><A name="fl_handle">int fl_handle(const XEvent &amp;)</A></H4>
-
-<P>This call allows you to supply the X events to FLTK, which
-may allow FLTK to cooperate with another toolkit or library. The
-return value is non-zero if FLTK understood the event. If the
-window does not belong to FLTK and the <TT>add_handler()</TT>
-functions all return 0, this function will return false.
-
-<P>Besides feeding events your code should call <A
-href="Fl.html#Fl.flush"><TT>Fl::flush()</TT></A>
-periodically so that FLTK redraws its windows.</P>
-
-<P>This function will call the callback functions. It will not
-return until they complete. In particular, if a callback pops up
-a modal window by calling <A
-href="functions.html#fl_ask"><TT>fl_ask()</TT></A>, for
-instance, it will not return until the modal function
-returns.</P>
-
-<H3>Drawing using Xlib</H3>
-
-<P>The following global variables are set before <A
-HREF="subclassing.html#draw"><TT>Fl_Widget::draw()</TT></A> is
-called, or by <A
-href="Fl_Window.html#Fl_Window.make_current"><TT>Fl_Window::make_current()</TT></A>:
-
-<UL><PRE>
-extern Display *fl_display;
-extern Window fl_window;
-extern GC fl_gc;
-extern int fl_screen;
-extern XVisualInfo *fl_visual;
-extern Colormap fl_colormap;
-</PRE></UL>
-
-<P>You must use them to produce Xlib calls. Don't attempt to change
-them. A typical X drawing call is written like this:
-
-<UL><PRE>
-XDrawSomething(fl_display, fl_window, fl_gc, ...);
-</PRE></UL>
-
-<P>Other information such as the position or size of the X
-window can be found by looking at <A
-href="Fl_Window.html#Fl_Window.make_current"><TT>Fl_Window::current()</TT></A>,
-which returns a pointer to the <TT>Fl_Window</TT> being drawn.
-
-<H4><A name="fl_xpixel">unsigned long fl_xpixel(Fl_Color i)<BR>
-unsigned long fl_xpixel(uchar r, uchar g, uchar b)</A></H4>
-
-<P>Returns the X pixel number used to draw the given FLTK color
-index or RGB color. This is the X pixel that <A
-href="drawing.html#fl_color"><TT>fl_color()</TT></A> would use.
-
-<H4><A name="fl_parse_color">int fl_parse_color(const char* p, uchar&amp; r, uchar&amp; g, uchar&amp; b)</A></H4>
-
-<P>Convert a name into the red, green, and blue values of a color
-by parsing the X11 color names. On other systems, <tt>fl_parse_color</tt>
-can only convert names in hexadecimal encoding, for example <tt>#ff8083</tt>.
-
-<H4><A name="fl_xfont">extern XFontStruct *fl_xfont</A></H4>
-
-<P>Points to the font selected by the most recent <A
-href="drawing.html#fl_font"><TT>fl_font()</TT></A>. This is not
-necessarily the current font of <TT>fl_gc</TT>, which is not set
-until <A href="drawing.html#text"><TT>fl_draw()</TT></A> is
-called. If FLTK was compiled with Xft support, <TT>fl_xfont</TT>
-will usually be 0 and <TT>fl_xftfont</TT> will contain a pointer
-to the XftFont structure instead.
-
-<H4><A name="fl_xftfont">extern void *fl_xftfont</A></H4>
-
-<P>If FLTK was compiled with Xft support enabled, <tt>fl_xftfont</tt>
-Points to the xft font selected by the most recent <A
-href="drawing.html#fl_font"><TT>fl_font()</TT></A>. Otherwise
-it will be 0. <tt>fl_xftfont</tt> should be cast to
-<tt>XftFont*</tt>.
-
-<H3>Changing the Display, Screen, or X Visual</H3>
-
-<P>FLTK uses only a single display, screen, X visual, and X
-colormap. This greatly simplifies its internal structure and
-makes it much smaller and faster. You can change which it uses
-by setting global variables <I>before the first
-<TT>Fl_Window::show()</TT> is called</I>. You may also want to
-call <A href="Fl.html#Fl.visual">Fl::visual()</A>, which is
-a portable interface to get a full color and/or double buffered
-visual.
-
-<H4><A name="display">int Fl::display(const char *)</A></H4>
-
-<P>Set which X display to use. This actually does
-<TT>putenv(&quot;DISPLAY=...&quot;)</TT> so that child programs
-will display on the same screen if called with <TT>exec()</TT>.
-This must be done before the display is opened. This call is
-provided under MacOS and WIN32 but it has no effect.
-
-<H4><A name="fl_display">extern Display *fl_display</A></H4>
-
-<P>The open X display. This is needed as an argument to most
-Xlib calls. Don't attempt to change it! This is <TT>NULL</TT>
-before the display is opened.
-
-<H4><A name="fl_open_display">void fl_open_display()</A></H4>
-
-<P>Opens the display. Does nothing if it is already open. This
-will make sure <TT>fl_display</TT> is non-zero. You should call
-this if you wish to do X calls and there is a chance that your
-code will be called before the first <TT>show()</TT> of a
-window.
-
-<P>This may call <TT>Fl::abort()</TT> if there is an error
-opening the display.</P>
-
-<H4><A name="fl_close_display">void fl_close_display()</A></H4>
-
-<P>This closes the X connection. You do <I>not</I> need to call
-this to exit, and in fact it is faster to not do so! It may be
-useful to call this if you want your program to continue without
-the X connection. You cannot open the display again, and
-probably cannot call any FLTK functions.
-
-<H4><A name="fl_screen">extern int fl_screen</A></H4>
-
-<P>Which screen number to use. This is set by
-<TT>fl_open_display()</TT> to the default screen. You can change
-it by setting this to a different value immediately afterwards.
-It can also be set by changing the last number in the
-<TT>Fl::display()</TT> string to &quot;host:0.#&quot;.
-
-<H4><A name="fl_visual">extern XVisualInfo *fl_visual</A><BR>
-<A name="fl_colormap">extern Colormap fl_colormap</A></H4>
-
-<P>The visual and colormap that FLTK will use for all windows.
-These are set by <TT>fl_open_display()</TT> to the default
-visual and colormap. You can change them before calling
-<TT>show()</TT> on the first window. Typical code for changing
-the default visual is:
-
-<UL><PRE>
-Fl::args(argc, argv); // do this first so $DISPLAY is set
-fl_open_display();
-fl_visual = find_a_good_visual(fl_display, fl_screen);
-if (!fl_visual) Fl::abort(&quot;No good visual&quot;);
-fl_colormap = make_a_colormap(fl_display, fl_visual-&gt;visual, fl_visual-&gt;depth);
-// it is now ok to show() windows:
-window-&gt;show(argc, argv);
-</PRE></UL>
-
-<H3>Using a Subclass of Fl_Window for Special X Stuff</H3>
-
-<P>FLTK can manage an X window on a different screen, visual
-and/or colormap, you just can't use FLTK's drawing routines to
-draw into it. But you can write your own <TT>draw()</TT> method
-that uses Xlib (and/or OpenGL) calls only.
-
-<P>FLTK can also manage XID's provided by other libraries or
-programs, and call those libraries when the window needs to be
-redrawn.</P>
-
-<P>To do this, you need to make a subclass of <A
-href="Fl_Window.html#Fl_Window"><TT>Fl_Window</TT></A> and
-override some of these virtual functions:</P>
-
-<H4>virtual void Fl_Window::show()</H4>
-
-<P>If the window is already <TT>shown()</TT> this must cause it
-to be raised, this can usually be done by calling
-<TT>Fl_Window::show()</TT>. If not <TT>shown()</TT> your
-implementation must call either <TT>Fl_X::set_xid()</TT> or
-<TT>Fl_X::make_xid()</TT>.
-
-<P>An example:</P>
-
-<UL><PRE>
-void MyWindow::show() {
- if (shown()) {Fl_Window::show(); return;} // you must do this!
- fl_open_display(); // necessary if this is first window
- // we only calcualte the necessary visual colormap once:
- static XVisualInfo *visual;
- static Colormap colormap;
- if (!visual) {
- visual = figure_out_visual();
- colormap = XCreateColormap(fl_display, RootWindow(fl_display,fl_screen),
- vis-&gt;visual, AllocNone);
- }
- Fl_X::make_xid(this, visual, colormap);
-}
-</PRE></UL>
-
-<H4>Fl_X *Fl_X::set_xid(Fl_Window *, Window xid)</H4>
-
-<P>Allocate a hidden structure called an <TT>Fl_X</TT>, put the
-XID into it, and set a pointer to it from the
-<TT>Fl_Window</TT>. This causes <TT>Fl_Window::shown()</TT> to
-return true.
-
-<H4>void Fl_X::make_xid(Fl_Window *, XVisualInfo *= fl_visual,
-Colormap = fl_colormap)</H4>
-
-<P>This static method does the most onerous parts of creating an
-X window, including setting the label, resize limitations, etc.
-It then does <TT>Fl_X::set_xid()</TT> with this new window and
-maps the window.
-
-<H4>virtual void Fl_Window::flush()</H4>
-
-<P>This virtual function is called by <TT>Fl::flush()</TT> to
-update the window. For FLTK's own windows it does this by
-setting the global variables <TT>fl_window</TT> and
-<TT>fl_gc</TT> and then calling the <TT>draw()</TT> method. For
-your own windows you might just want to put all the drawing code
-in here.
-
-<P>The X region that is a combination of all <TT>damage()</TT>
-calls done so far is in <TT>Fl_X::i(this)-&gt;region</TT>. If
-<TT>NULL</TT> then you should redraw the entire window. The
-undocumented function <TT>fl_clip_region(XRegion)</TT> will
-initialize the FLTK clip stack with a region or <TT>NULL</TT>
-for no clipping. You must set region to <TT>NULL</TT> afterwards
-as <TT>fl_clip_region()</TT> will own and delete it when
-done.</P>
-
-<P>If <TT>damage() &amp; FL_DAMAGE_EXPOSE</TT> then only X
-expose events have happened. This may be useful if you have an
-undamaged image (such as a backing buffer) around.</P>
-
-<P>Here is a sample where an undamaged image is kept somewhere:</P>
-
-<UL><PRE>
-void MyWindow::flush() {
- fl_clip_region(Fl_X::i(this)-&gt;region);
- Fl_X::i(this)-&gt;region = 0;
- if (damage() != 2) {... draw things into backing store ...}
- ... copy backing store to window ...
-}
-</PRE></UL>
-
-<H4>virtual void Fl_Window::hide()</H4>
-
-<P>Destroy the window server copy of the window. Usually you
-will destroy contexts, pixmaps, or other resources used by the
-window, and then call <TT>Fl_Window::hide()</TT> to get rid of
-the main window identified by <TT>xid()</TT>. If you override
-this, you must also override the destructor as shown:
-
-<UL><PRE>
-void MyWindow::hide() {
- if (mypixmap) {
- XFreePixmap(fl_display,mypixmap);
- mypixmap = 0;
- }
- Fl_Window::hide(); // you must call this
-}
-</PRE></UL>
-
-<H4>virtual void Fl_Window::~Fl_Window()</H4>
-
-<P>Because of the way C++ works, if you override <TT>hide()</TT>
-you <I>must</I> override the destructor as well (otherwise only
-the base class <TT>hide()</TT> is called):
-
-<UL><PRE>
-MyWindow::~MyWindow() {
- hide();
-}
-</PRE></UL>
-
-<H3>Setting the Icon of a Window</H3>
-
-<P>FLTK currently supports setting a window's icon <b>before</b> it
-is shown using the <TT>Fl_Window::icon()</TT> method.
-
-<H4>void Fl_Window::icon(char *)</H4>
-
-<P>Sets the icon for the window to the passed pointer. You will
-need to cast the icon <TT>Pixmap</TT> to a <TT>char *</TT> when
-calling this method. To set a monochrome icon using a bitmap compiled
-with your application use:
-
-<UL><PRE>
-#include &quot;icon.xbm&quot;
-
-fl_open_display(); // needed if display has not been previously opened
-
-Pixmap p = XCreateBitmapFromData(fl_display, DefaultRootWindow(fl_display),
- icon_bits, icon_width, icon_height);
-
-window-&gt;icon((char *)p);
-</PRE></UL>
-
-<P>To use a multi-colored icon, the XPM format and library
-should be used as follows:
-
-<UL><PRE>
-#include &lt;X11/xpm.h&gt;
-#include &quot;icon.xpm&quot;
-
-fl_open_display(); // needed if display has not been previously opened
-
-Pixmap p, mask;
-
-XpmCreatePixmapFromData(fl_display, DefaultRootWindow(fl_display),
- icon_xpm, &amp;p, &amp;mask, NULL);
-
-window-&gt;icon((char *)p);
-</PRE></UL>
-
-<p>When using the Xpm library, be sure to include it in the list
-of libraries that are used to link the application (usually
-"-lXpm").</p>
-
-<CENTER><TABLE WIDTH="90%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>NOTE:</B>
-
- <P>You must call <A
- HREF="Fl_Window.html#Fl_Window.show"><TT>Fl_Window::show(argc,
- argv)</TT></A> for the icon to be used. The
- <TT>Fl_Window::show()</TT> method does not bind the icon
- to the window.
-
- </TD>
-</TR>
-</TABLE></CENTER>
-
-<H3>X Resources</H3>
-
-<P>When the <A
-HREF="Fl_Window.html#Fl_Window.show"><TT>Fl_Window::show(argc,
-argv)</TT></A> method is called, FLTK looks for the following X
-resources:
-
-<UL>
-
- <LI><TT>background</TT> - The default background color
- for widgets (color).
-
- <LI><TT>dndTextOps</TT> - The default setting for
- drag and drop text operations (boolean).
-
- <LI><TT>foreground</TT> - The default foreground (label)
- color for widgets (color).
-
- <LI><TT>scheme</TT> - The default scheme to use
- (string).
-
- <LI><TT>selectBackground</TT> - The default selection
- color for menus, etc. (color).
-
- <LI><TT>Text.background</TT> - The default background
- color for text fields (color).
-
- <LI><TT>tooltips</TT> - The default setting for
- tooltips (boolean).
-
- <LI><TT>visibleFocus</TT> - The default setting for
- visible keyboard focus on non-text widgets (boolean).
-
-</UL>
-
-<P>Resources associated with the first window's <A
-HREF="Fl_Window.html#Fl_Window.xclass"><TT>Fl_Window::xclass()</TT></A>
-string are queried first, or if no class has been specified then
-the class "fltk" is used (e.g. <TT>fltk.background</TT>). If no
-match is found, a global search is done (e.g.
-<TT>*background</TT>).
-
-<H2>The Windows (WIN32) Interface</H2>
-
-<P>The Windows interface provides access to the WIN32 GDI
-state information and data structures.
-
-<H3>Handling Other WIN32 Messages</H3>
-
-<P>By default a single WNDCLASSEX called &quot;FLTK&quot; is
-created. All <TT>Fl_Window</TT>'s are of this class unless you
-use <TT>Fl_Window::xclass()</TT>. The window class is created
-the first time <TT>Fl_Window::show()</TT> is called.
-
-<P>You can probably combine FLTK with other libraries that make
-their own WIN32 window classes. The easiest way is to call
-<TT>Fl::wait()</TT>, as it will call <TT>DispatchMessage</TT>
-for all messages to the other windows. If necessary you can let
-the other library take over as long as it calls
-<TT>DispatchMessage()</TT>, but you will have to arrange for the
-function <TT>Fl::flush()</TT> to be called regularly so that
-widgets are updated, timeouts are handled, and the idle
-functions are called.</P>
-
-<H4><A name="fl_msg">extern MSG fl_msg</A></H4>
-
-<P>This variable contains the most recent message read by
-<TT>GetMessage</TT>, which is called by <A
-href="Fl.html#Fl.wait"><TT>Fl::wait()</TT></A>. This may not be the
-most recent message sent to an FLTK window, because silly WIN32
-calls the handle procedures directly for some events (sigh).
-
-<H4><A name="WIN32.add_handler">void Fl::add_handler(int (*f)(int))</A></H4>
-
-<P>Installs a function to parse unrecognized messages sent to
-FLTK windows. If FLTK cannot figure out what to do with a
-message, it calls each of these functions (most recent first)
-until one of them returns non-zero. The argument passed to the
-functions is the FLTK event that was not handled or zero for
-unknown messages. If all the handlers return zero then FLTK
-calls <TT>DefWindowProc()</TT>.
-
-<H4><A name="WIN32.fl_xid">HWND fl_xid(const Fl_Window *)</A></H4>
-
-<P>Returns the window handle for a <TT>Fl_Window</TT>, or zero
-if not <TT>shown()</TT>.
-
-<H4><A name="WIN32.fl_find">Fl_Window *fl_find(HWND xid)</A></H4>
-
-<P>Returns the <TT>Fl_Window</TT> that corresponds to the given
-window handle, or <TT>NULL</TT> if not found. This function uses
-a cache so it is slightly faster than iterating through the
-windows yourself.
-
-<H3><A name="WIN32.gdi">Drawing Things Using the WIN32 GDI</A></H3>
-
-<P>When the virtual function <A
-HREF="subclassing.html#draw"><TT>Fl_Widget::draw()</TT></A> is
-called, FLTK stores all the silly extra arguments you need to
-make a proper GDI call in some global variables:
-
-<UL><PRE>
-extern HINSTANCE fl_display;
-extern HWND fl_window;
-extern HDC fl_gc;
-COLORREF fl_RGB();
-HPEN fl_pen();
-HBRUSH fl_brush();
-</PRE></UL>
-
-<P>These global variables are set before <TT>draw()</TT> is
-called, or by <A
-href="Fl_Window.html#Fl_Window.make_current"><TT>Fl_Window::make_current()</TT></A>.
-You can refer to them when needed to produce GDI calls, but don't
-attempt to change them. The functions return GDI objects for
-the current color set by <TT>fl_color()</TT> and are created as
-needed and cached. A typical GDI drawing call is written like
-this:
-
-<UL><PRE>
-DrawSomething(fl_gc, ..., fl_brush());
-</PRE></UL>
-
-<P>It may also be useful to refer to <A
-href="Fl_Window.html#Fl_Window.make_current"><TT>Fl_Window::current()</TT></A>
-to get the window's size or position.
-
-<H3>Setting the Icon of a Window</H3>
-
-<P>FLTK currently supports setting a window's icon *before* it
-is shown using the <TT>Fl_Window::icon()</TT> method.
-
-<H4>void Fl_Window::icon(char *)</H4>
-
-<P>Sets the icon for the window to the passed pointer. You will
-need to cast the <TT>HICON</TT> handle to a <TT>char *</TT> when
-calling this method. To set the icon using an icon resource
-compiled with your application use:
-
-<UL><PRE>
-window-&gt;icon((char *)LoadIcon(fl_display, MAKEINTRESOURCE(IDI_ICON)));
-</PRE></UL>
-
-<P>You can also use the <TT>LoadImage()</TT> and related
-functions to load specific resolutions or create the icon from
-bitmap data.
-
-<CENTER><TABLE WIDTH="90%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
-<TR>
- <TD><B>NOTE:</B>
-
- <P>You must call <A
- HREF="Fl_Window.html#Fl_Window.show"><TT>Fl_Window::show(argc,
- argv)</TT></A> for the icon to be used. The
- <TT>Fl_Window::show()</TT> method does not bind the icon
- to the window.
-
- </TD>
-</TR>
-</TABLE></CENTER>
-
-<H3>How to Not Get a MSDOS Console Window</H3>
-
-<P>WIN32 has a really stupid mode switch stored in the
-executables that controls whether or not to make a console
-window.
-
-<P>To always get a console window you simply create a console
-application (the &quot;/SUBSYSTEM:CONSOLE&quot; option for the
-linker). For a GUI-only application create a WIN32 application
-(the &quot;/SUBSYSTEM:WINDOWS&quot; option for the linker).</P>
-
-<P>FLTK includes a <TT>WinMain()</TT> function that calls the
-ANSI standard <TT>main()</TT> entry point for you. <I>This
-function creates a console window when you use the debug version
-of the library.</I></P>
-
-<P>WIN32 applications without a console cannot write to
-<TT>stdout</TT> or <TT>stderr</TT>, even if they are run from a
-console window. Any output is silently thrown away.
-Additionally, WIN32 applications are run in the background by
-the console, although you can use "start /wait program" to run
-them in the foreground.</P>
-
-<H3>Known WIN32 Bugs and Problems</H3>
-
-<P>The following is a list of known bugs and problems in the WIN32
-version of FLTK:
-
-<UL>
-
- <LI>If a program is deactivated, <TT>Fl::wait()</TT>
- does not return until it is activated again, even though
- many events are delivered to the program. This can cause
- idle background processes to stop unexpectedly. This
- also happens while the user is dragging or resizing
- windows or otherwise holding the mouse down. We were
- forced to remove most of the efficiency FLTK uses for
- redrawing in order to get windows to update while being
- moved. This is a design error in WIN32 and probably
- impossible to get around.</LI>
-
- <LI><TT>Fl_Gl_Window::can_do_overlay()</TT> returns true
- until the first time it attempts to draw an overlay, and
- then correctly returns whether or not there is overlay
- hardware.</LI>
-
- <LI><TT>SetCapture</TT> (used by <TT>Fl::grab()</TT>)
- doesn't work, and the main window title bar turns gray
- while menus are popped up.</LI>
-
- <LI>Compilation with <TT>gcc 3.4.4</TT> and <TT>-Os</TT> exposes an
- optimisation bug in gcc. The symptom is that when drawing
- filled circles only the perimeter is drawn. This can for instance
- be seen in the symbols demo. Other optimisation options such
- as -O2 and -O3 seem to work OK. More details can be found
- in STR#1656 </LI>
-</UL>
-
-<H2>The MacOS Interface</h2>
-
-<P>FLTK supports MacOS X using the Apple Carbon library. Older
-versions of MacOS are <I>not</I> supported.
-
-<H4>Control, Option, and Command Modifier Keys</H4>
-
-<P>FLTK maps the Mac 'control' key to <TT>FL_CTRL</TT>, the
-'option' key to <TT>FL_ALT</TT> and the 'Apple' key to
-<TT>FL_META</TT>. Keyboard events return the key name in
-<TT>Fl::event_key()</TT> and the keystroke translation in
-<TT>Fl::event_text()</TT>. For example, typing Option-Y on a Mac
-keyboard will set <TT>FL_ALT</TT> in <TT>Fl::event_state()</TT>,
-set <TT>Fl::event_key()</TT> to 'y' and return the Yen symbol in
-<TT>Fl::event_text()</TT>.
-
-<H4>WindowRef fl_xid(const Fl_Window *)</H4>
-
-<P>Returns the window reference for an <tt>Fl_Window</tt>, or
-<TT>NULL</TT> if the window has not been shown.
-
-<h4>Fl_Window *fl_find(WindowRef xid)</h4>
-
-<P>Returns the <tt>Fl_Window</tt> that corresponds to the give
-window handle, or <TT>NULL</TT> if not found. FLTK windows that
-are children of top-level windows share the WindowRef of the
-top-level window.
-
-<h3>Apple "Quit" Event</h3>
-
-<P>When the user press Cmd-Q or requests a termination of the
-application, OS X will send a "Quit" Apple Event. FLTK handles
-this event by sending an <tt>FL_CLOSE</tt> event to all open
-windows. If all windows close, the application will terminate.
-
-<h3>Apple "Open" Event</h3>
-
-Whenever the user drops a file onto an application icon, OS X
-generates an Apple Event of the type "Open". You can have FLTK
-notify you of an Open event by setting the <tt>fl_open_callback</tt>.
-
-<h4><a name=fl_open_callback>void fl_open_callback(void (*cb)(const char *))</a></h4>
-
-<tt>cb</tt> will be called with a single iUnix-style file name and path.
-If multiple files were dropped, <tt>fl_open_callback</tt> will be called
-multiple times.
-
-<h3>Drawing Things Using QuickDraw</h3>
-
-<P>When the virtual function <tt>Fl_Widget::draw()</tt> is
-called, FLTK has prepared the Window and CGrafPort for drawing.
-Clipping and offsets are prepared to allow correct subwindow
-drawing.
-
-<h3>Drawing Things Using Quartz</h3>
-
-<P>If the FLTK library was compiled using the configuration
-flag <tt>--enable-quartz</tt>, all code inside <tt>Fl_Widget::draw()</tt>
-is expected to call Quartz drawing functions instead of
-QuickDraw. The Quartz coordinate system is flipped to match
-FLTK's coordinate system. The origin for all drawing is in the top
-left corner of the enclosing <tt>Fl_Window</tt>.
-
-<h3>Fl_Double_Window</h3>
-
-<P>OS X double-buffers all windows automatically. On OS X,
-<tt>Fl_Window</tt> and <tt>Fl_Double_Window</tt> are handled
-internally in the same way.
-
-<h3>Mac File System Specifics</h3>
-
-<h4>Resource Forks</h4>
-
-<P>FLTK does not access the resource fork of an application.
-However, a minimal resource fork must be created for OS X
-applications
-
-<CENTER><TABLE WIDTH="80%" BORDER="1" BGCOLOR="#cccccc" CELLPADDING="5">
-<TR><TD><B>Caution:</B>
-
-<P>When using UNIX commands to copy or move executables, OS X
-will NOT copy any resource forks! For copying and moving use
-CpMac and MvMac respectively. For creating a tar archive, all
-executables need to be stripped from their Resource Fork before
-packing, e.g. "DeRez fluid &gt; fluid.r". After unpacking the
-Resource Fork needs to be reattached, e.g. "Rez fluid.r -o
-fluid".
-</TD></TR></TABLE></CENTER>
-
-<P>It is advisable to use the Finder for moving and copying and
-Mac archiving tools like Sit for distribution as they will
-handle the Resource Fork correctly.
-
-<h4>Mac File Paths</h4>
-
-<P>FLTK uses UNIX-style filenames and paths.
-
-<H3>Known MacOS Bugs and Problems</H3>
-
-<P>The following is a list of known bugs and problems in the
-MacOS version of FLTK:
-
-<UL>
-
- <LI>Line styles are not well supported. This is due to
- limitations in the QuickDraw interface.</LI>
-
- <li>Nested subwindows are not supported, i.e. you can
- have a <tt>Fl_Window</tt> widget inside a
- <tt>Fl_Window</tt>, but not a <tt>Fl_Window</tt> inside a
- <tt>Fl_Window</tt> inside a <tt>Fl_Window</tt>.</li>
-
-</UL>
-
-</BODY>
-</HTML>
diff --git a/documentation/preface.html b/documentation/preface.html
deleted file mode 100644
index fe82ac56b..000000000
--- a/documentation/preface.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<HTML>
-<HEAD>
- <META CONTENT="Written by Michael Sweet, Craig P. Earls, Matthias Melcher, and Bill Spitzak" NAME="Author">
- <META CONTENT="Copyright 1998-2008 by Bill Spitzak and Others." NAME="Copyright">
- <META CONTENT="Revision 8" NAME="DocNumber">
- <TITLE>FLTK 1.3.0 Programming Manual</TITLE>
-</HEAD>
-<BODY>
-
-<H1 ALIGN="RIGHT"><A NAME="preface">Preface</A></H1>
-
-<P>This manual describes the Fast Light Tool Kit (&quot;FLTK&quot;)
-version 1.3.0, a C++ Graphical User Interface
-(&quot;GUI&quot;) toolkit for UNIX, Microsoft Windows and MacOS. Each
-of the chapters in this manual is designed as a tutorial for
-using FLTK, while the appendices provide a convenient reference
-for all FLTK widgets, functions, and operating system
-interfaces.</P>
-
-<P><B>This manual may be printed, modified, and/or used under
-the terms of the FLTK license provided in <A
-HREF="license.html">Appendix A</A>.</B>
-
-<H2>Organization</H2>
-
-<P>This manual is organized into the following chapters and appendices:</P>
-
-<UL>
-
- <LI><A HREF="intro.html#intro">Chapter 1 - Introduction to FLTK</A></LI>
-
- <LI><A HREF="basics.html#basics">Chapter 2 - FLTK Basics</A></LI>
-
- <LI><A HREF="common.html#common">Chapter 3 - Common Widgets and Attributes</A></LI>
-
- <LI><A HREF="editor.html#editor">Chapter 4 - Designing a Simple Text
- Editor</A></LI>
-
- <LI><A HREF="drawing.html#drawing">Chapter 5 - Drawing Things in FLTK</A></LI>
-
- <LI><A HREF="events.html#events">Chapter 6 - Handling Events</A></LI>
-
- <LI><A HREF="subclassing.html#subclassing">Chapter 7 - Extending and
- Adding Widgets</A></LI>
-
- <LI><A HREF="opengl.html#opengl">Chapter 8 - Using OpenGL</A></LI>
-
- <LI><A HREF="fluid.html#FLUID">Chapter 9 - Programming With FLUID</A></LI>
-
- <LI><A HREF="advanced.html#advanced">Chapter 10 - Advanced FLTK</A></LI>
-
- <LI><A HREF="widgets.html#widgets">Appendix A - Class Reference</A></LI>
-
- <LI><A HREF="functions.html#functions">Appendix B - Function Reference</A></LI>
-
- <LI><A HREF="enumerations.html#Enumerations">Appendix C - Enumeration
- Reference</A></LI>
-
- <LI><A HREF="glut.html#glut">Appendix D - GLUT Compatibility</A></LI>
-
- <LI><A HREF="forms.html#forms">Appendix E - Forms Compatibility</A></LI>
-
- <LI><A HREF="osissues.html#osissues">Appendix F - Operating System Issues</A></LI>
-
- <LI><A HREF="migration.html">Appendix G - Migrating from FLTK 1.0.x to FLTK 1.1.x</A></LI>
-
- <LI><A HREF="license.html#license">Appendix H - Software License</A></LI>
-
- <LI><A HREF="examples.html#examples">Appendix I - Example Source Code</A></LI>
-
-</UL>
-
-<H2>Conventions</H2>
-
-<P>The following typeface conventions are used in this manual:</P>
-
-<UL>
- <LI>Function and constant names are shown in <B><TT>bold courier type</TT></B></LI>
-
- <LI>Code samples and commands are shown in <TT>regular courier type</TT></LI>
-
-</UL>
-
-<H2>Abbreviations</H2>
-
-<P>The following abbreviations are used in this manual:</P>
-
-<DL>
-
- <DT>X11</DT>
- <DD>The X Window System version 11.</DD>
-
- <DT>Xlib</DT>
- <DD>The X Window System interface library.</DD>
-
- <DT>WIN32</DT>
- <DD>The Microsoft Windows 32-bit Application Programmer's Interface.</DD>
-
- <DT>MacOS</DT>
- <DD>The Apple Macintosh OS 8.6 and later, including OS X.</DD>
-
-</DL>
-
-<H2>Copyrights and Trademarks</H2>
-
-<P>FLTK is Copyright 1998-2006 by Bill Spitzak and others. Use and
-distribution of FLTK is governed by the GNU Library General Public
-License, located in <A HREF="license.html#license">Appendix H</A>.</P>
-
-<P>UNIX is a registered trademark of the X Open Group, Inc.
-Microsoft and Windows are registered trademarks of Microsoft
-Corporation. OpenGL is a registered trademark of Silicon
-Graphics, Inc. Apple, Macintosh, MacOS, and Mac OS X are
-registered trademarks of Apple Computer, Inc.</P>
-
-</BODY>
-</HTML>
diff --git a/documentation/FL.gif b/documentation/src/FL.gif
index 823e0bdd4..823e0bdd4 100644
--- a/documentation/FL.gif
+++ b/documentation/src/FL.gif
Binary files differ
diff --git a/documentation/FL200.eps b/documentation/src/FL200.eps
index 6e386fc32..6e386fc32 100644
--- a/documentation/FL200.eps
+++ b/documentation/src/FL200.eps
diff --git a/documentation/FL200.gif b/documentation/src/FL200.gif
index 9df861dc7..9df861dc7 100644
--- a/documentation/FL200.gif
+++ b/documentation/src/FL200.gif
Binary files differ
diff --git a/documentation/Fl_Check_Button.gif b/documentation/src/Fl_Check_Button.gif
index bbd6f4ee7..bbd6f4ee7 100644
--- a/documentation/Fl_Check_Button.gif
+++ b/documentation/src/Fl_Check_Button.gif
Binary files differ
diff --git a/documentation/Fl_File_Chooser.jpg b/documentation/src/Fl_File_Chooser.jpg
index 050227d58..050227d58 100644
--- a/documentation/Fl_File_Chooser.jpg
+++ b/documentation/src/Fl_File_Chooser.jpg
Binary files differ
diff --git a/documentation/Fl_File_Input.gif b/documentation/src/Fl_File_Input.gif
index 4a1f31deb..4a1f31deb 100644
--- a/documentation/Fl_File_Input.gif
+++ b/documentation/src/Fl_File_Input.gif
Binary files differ
diff --git a/documentation/Fl_Help_Dialog.gif b/documentation/src/Fl_Help_Dialog.gif
index 92b0840c3..92b0840c3 100644
--- a/documentation/Fl_Help_Dialog.gif
+++ b/documentation/src/Fl_Help_Dialog.gif
Binary files differ
diff --git a/documentation/Fl_Light_Button.gif b/documentation/src/Fl_Light_Button.gif
index 0d380937e..0d380937e 100644
--- a/documentation/Fl_Light_Button.gif
+++ b/documentation/src/Fl_Light_Button.gif
Binary files differ
diff --git a/documentation/Fl_Return_Button.gif b/documentation/src/Fl_Return_Button.gif
index 349163ca7..349163ca7 100644
--- a/documentation/Fl_Return_Button.gif
+++ b/documentation/src/Fl_Return_Button.gif
Binary files differ
diff --git a/documentation/Fl_Roller.gif b/documentation/src/Fl_Roller.gif
index 48cd5b189..48cd5b189 100644
--- a/documentation/Fl_Roller.gif
+++ b/documentation/src/Fl_Roller.gif
Binary files differ
diff --git a/documentation/Fl_Round_Button.gif b/documentation/src/Fl_Round_Button.gif
index 3acb88876..3acb88876 100644
--- a/documentation/Fl_Round_Button.gif
+++ b/documentation/src/Fl_Round_Button.gif
Binary files differ
diff --git a/documentation/Fl_Scroll.gif b/documentation/src/Fl_Scroll.gif
index 3055429a0..3055429a0 100644
--- a/documentation/Fl_Scroll.gif
+++ b/documentation/src/Fl_Scroll.gif
Binary files differ
diff --git a/documentation/Fl_Tile.gif b/documentation/src/Fl_Tile.gif
index f14f0b49b..f14f0b49b 100644
--- a/documentation/Fl_Tile.gif
+++ b/documentation/src/Fl_Tile.gif
Binary files differ
diff --git a/documentation/Fl_Value_Input.gif b/documentation/src/Fl_Value_Input.gif
index feabbffc1..feabbffc1 100644
--- a/documentation/Fl_Value_Input.gif
+++ b/documentation/src/Fl_Value_Input.gif
Binary files differ
diff --git a/documentation/Fl_Value_Output.gif b/documentation/src/Fl_Value_Output.gif
index 18cf45a39..18cf45a39 100644
--- a/documentation/Fl_Value_Output.gif
+++ b/documentation/src/Fl_Value_Output.gif
Binary files differ
diff --git a/documentation/adjuster1.gif b/documentation/src/adjuster1.gif
index 1f9f5353e..1f9f5353e 100644
--- a/documentation/adjuster1.gif
+++ b/documentation/src/adjuster1.gif
Binary files differ
diff --git a/documentation/advanced.dox b/documentation/src/advanced.dox
index 17afa9147..17afa9147 100644
--- a/documentation/advanced.dox
+++ b/documentation/src/advanced.dox
diff --git a/documentation/basics.dox b/documentation/src/basics.dox
index 1c2a615c8..1c2a615c8 100644
--- a/documentation/basics.dox
+++ b/documentation/src/basics.dox
diff --git a/documentation/boxtypes.gif b/documentation/src/boxtypes.gif
index bf1b67fd3..bf1b67fd3 100644
--- a/documentation/boxtypes.gif
+++ b/documentation/src/boxtypes.gif
Binary files differ
diff --git a/documentation/buttons.gif b/documentation/src/buttons.gif
index cadf9a3a5..cadf9a3a5 100644
--- a/documentation/buttons.gif
+++ b/documentation/src/buttons.gif
Binary files differ
diff --git a/documentation/charts.gif b/documentation/src/charts.gif
index c68e66ed5..c68e66ed5 100644
--- a/documentation/charts.gif
+++ b/documentation/src/charts.gif
Binary files differ
diff --git a/documentation/choice.gif b/documentation/src/choice.gif
index c446830d9..c446830d9 100644
--- a/documentation/choice.gif
+++ b/documentation/src/choice.gif
Binary files differ
diff --git a/documentation/clock.gif b/documentation/src/clock.gif
index fd7295306..fd7295306 100644
--- a/documentation/clock.gif
+++ b/documentation/src/clock.gif
Binary files differ
diff --git a/documentation/common.dox b/documentation/src/common.dox
index 8374fe6ed..8374fe6ed 100644
--- a/documentation/common.dox
+++ b/documentation/src/common.dox
diff --git a/documentation/counter.gif b/documentation/src/counter.gif
index 6e05a65e7..6e05a65e7 100644
--- a/documentation/counter.gif
+++ b/documentation/src/counter.gif
Binary files differ
diff --git a/documentation/cubeview.gif b/documentation/src/cubeview.gif
index 024cc55d2..024cc55d2 100644
--- a/documentation/cubeview.gif
+++ b/documentation/src/cubeview.gif
Binary files differ
diff --git a/documentation/development.dox b/documentation/src/development.dox
index bbb5ba791..bbb5ba791 100644
--- a/documentation/development.dox
+++ b/documentation/src/development.dox
diff --git a/documentation/dial.gif b/documentation/src/dial.gif
index e52e18038..e52e18038 100644
--- a/documentation/dial.gif
+++ b/documentation/src/dial.gif
Binary files differ
diff --git a/documentation/drawing.dox b/documentation/src/drawing.dox
index ea47d8fe2..ea47d8fe2 100644
--- a/documentation/drawing.dox
+++ b/documentation/src/drawing.dox
diff --git a/documentation/editor-replace.gif b/documentation/src/editor-replace.gif
index 73c285664..73c285664 100644
--- a/documentation/editor-replace.gif
+++ b/documentation/src/editor-replace.gif
Binary files differ
diff --git a/documentation/editor.dox b/documentation/src/editor.dox
index 768a3afb7..768a3afb7 100644
--- a/documentation/editor.dox
+++ b/documentation/src/editor.dox
diff --git a/documentation/editor.gif b/documentation/src/editor.gif
index 8fce896f0..8fce896f0 100644
--- a/documentation/editor.gif
+++ b/documentation/src/editor.gif
Binary files differ
diff --git a/documentation/enumerations.dox b/documentation/src/enumerations.dox
index fa2045860..fa2045860 100644
--- a/documentation/enumerations.dox
+++ b/documentation/src/enumerations.dox
diff --git a/documentation/events.dox b/documentation/src/events.dox
index 9682cf3ce..9682cf3ce 100644
--- a/documentation/events.dox
+++ b/documentation/src/events.dox
diff --git a/documentation/examples.dox b/documentation/src/examples.dox
index 3f84c4b95..3f84c4b95 100644
--- a/documentation/examples.dox
+++ b/documentation/src/examples.dox
diff --git a/documentation/fl_alert.gif b/documentation/src/fl_alert.gif
index be008e3ab..be008e3ab 100644
--- a/documentation/fl_alert.gif
+++ b/documentation/src/fl_alert.gif
Binary files differ
diff --git a/documentation/fl_ask.gif b/documentation/src/fl_ask.gif
index 00a9fbbe0..00a9fbbe0 100644
--- a/documentation/fl_ask.gif
+++ b/documentation/src/fl_ask.gif
Binary files differ
diff --git a/documentation/fl_choice.gif b/documentation/src/fl_choice.gif
index 940b22cf3..940b22cf3 100644
--- a/documentation/fl_choice.gif
+++ b/documentation/src/fl_choice.gif
Binary files differ
diff --git a/documentation/fl_color_chooser.jpg b/documentation/src/fl_color_chooser.jpg
index 55dd82f07..55dd82f07 100644
--- a/documentation/fl_color_chooser.jpg
+++ b/documentation/src/fl_color_chooser.jpg
Binary files differ
diff --git a/documentation/fl_input.gif b/documentation/src/fl_input.gif
index 63dc51cec..63dc51cec 100644
--- a/documentation/fl_input.gif
+++ b/documentation/src/fl_input.gif
Binary files differ
diff --git a/documentation/fl_message.gif b/documentation/src/fl_message.gif
index 778020638..778020638 100644
--- a/documentation/fl_message.gif
+++ b/documentation/src/fl_message.gif
Binary files differ
diff --git a/documentation/fl_password.gif b/documentation/src/fl_password.gif
index 0523b574a..0523b574a 100644
--- a/documentation/fl_password.gif
+++ b/documentation/src/fl_password.gif
Binary files differ
diff --git a/documentation/fl_show_colormap.gif b/documentation/src/fl_show_colormap.gif
index 5c3b3518d..5c3b3518d 100644
--- a/documentation/fl_show_colormap.gif
+++ b/documentation/src/fl_show_colormap.gif
Binary files differ
diff --git a/documentation/fluid-catgets.gif b/documentation/src/fluid-catgets.gif
index d81b20042..d81b20042 100644
--- a/documentation/fluid-catgets.gif
+++ b/documentation/src/fluid-catgets.gif
Binary files differ
diff --git a/documentation/fluid-gettext.gif b/documentation/src/fluid-gettext.gif
index db1608192..db1608192 100644
--- a/documentation/fluid-gettext.gif
+++ b/documentation/src/fluid-gettext.gif
Binary files differ
diff --git a/documentation/fluid-org.gif b/documentation/src/fluid-org.gif
index e6e2ff659..e6e2ff659 100644
--- a/documentation/fluid-org.gif
+++ b/documentation/src/fluid-org.gif
Binary files differ
diff --git a/documentation/fluid.dox b/documentation/src/fluid.dox
index 49591a5f1..49591a5f1 100644
--- a/documentation/fluid.dox
+++ b/documentation/src/fluid.dox
diff --git a/documentation/fluid1.gif b/documentation/src/fluid1.gif
index cfdefd7a7..cfdefd7a7 100644
--- a/documentation/fluid1.gif
+++ b/documentation/src/fluid1.gif
Binary files differ
diff --git a/documentation/fluid2.gif b/documentation/src/fluid2.gif
index e551e84a5..e551e84a5 100644
--- a/documentation/fluid2.gif
+++ b/documentation/src/fluid2.gif
Binary files differ
diff --git a/documentation/fluid3-cxx.gif b/documentation/src/fluid3-cxx.gif
index 420ccaf31..420ccaf31 100644
--- a/documentation/fluid3-cxx.gif
+++ b/documentation/src/fluid3-cxx.gif
Binary files differ
diff --git a/documentation/fluid3-gui.gif b/documentation/src/fluid3-gui.gif
index 5f757264c..5f757264c 100644
--- a/documentation/fluid3-gui.gif
+++ b/documentation/src/fluid3-gui.gif
Binary files differ
diff --git a/documentation/fluid3-style.gif b/documentation/src/fluid3-style.gif
index ecb55b40c..ecb55b40c 100644
--- a/documentation/fluid3-style.gif
+++ b/documentation/src/fluid3-style.gif
Binary files differ
diff --git a/documentation/fluid4.gif b/documentation/src/fluid4.gif
index d9e029273..d9e029273 100644
--- a/documentation/fluid4.gif
+++ b/documentation/src/fluid4.gif
Binary files differ
diff --git a/documentation/fluid_prefs.gif b/documentation/src/fluid_prefs.gif
index 0bc7d8d11..0bc7d8d11 100644
--- a/documentation/fluid_prefs.gif
+++ b/documentation/src/fluid_prefs.gif
Binary files differ
diff --git a/documentation/fluid_widget_cxx.gif b/documentation/src/fluid_widget_cxx.gif
index cb12e76dc..cb12e76dc 100644
--- a/documentation/fluid_widget_cxx.gif
+++ b/documentation/src/fluid_widget_cxx.gif
Binary files differ
diff --git a/documentation/fluid_widget_gui.gif b/documentation/src/fluid_widget_gui.gif
index d5ac3c676..d5ac3c676 100644
--- a/documentation/fluid_widget_gui.gif
+++ b/documentation/src/fluid_widget_gui.gif
Binary files differ
diff --git a/documentation/fluid_widget_style.gif b/documentation/src/fluid_widget_style.gif
index f5bf9b1e2..f5bf9b1e2 100644
--- a/documentation/fluid_widget_style.gif
+++ b/documentation/src/fluid_widget_style.gif
Binary files differ
diff --git a/documentation/forms.dox b/documentation/src/forms.dox
index d48457e60..d48457e60 100644
--- a/documentation/forms.dox
+++ b/documentation/src/forms.dox
diff --git a/documentation/glut.dox b/documentation/src/glut.dox
index 18d4f25bd..18d4f25bd 100644
--- a/documentation/glut.dox
+++ b/documentation/src/glut.dox
diff --git a/documentation/hello.C.gif b/documentation/src/hello.C.gif
index 559b69520..559b69520 100644
--- a/documentation/hello.C.gif
+++ b/documentation/src/hello.C.gif
Binary files differ
diff --git a/documentation/index.dox b/documentation/src/index.dox
index ffbcb5a04..ffbcb5a04 100644
--- a/documentation/index.dox
+++ b/documentation/src/index.dox
diff --git a/documentation/input_choice.jpg b/documentation/src/input_choice.jpg
index 7f7b93f85..7f7b93f85 100644
--- a/documentation/input_choice.jpg
+++ b/documentation/src/input_choice.jpg
Binary files differ
diff --git a/documentation/intro.dox b/documentation/src/intro.dox
index 2965883c1..2965883c1 100644
--- a/documentation/intro.dox
+++ b/documentation/src/intro.dox
diff --git a/documentation/license.dox b/documentation/src/license.dox
index d90bc8bab..d90bc8bab 100644
--- a/documentation/license.dox
+++ b/documentation/src/license.dox
diff --git a/documentation/menu.gif b/documentation/src/menu.gif
index 6ed0f6d32..6ed0f6d32 100644
--- a/documentation/menu.gif
+++ b/documentation/src/menu.gif
Binary files differ
diff --git a/documentation/menu_button.gif b/documentation/src/menu_button.gif
index 9fc5df0dd..9fc5df0dd 100644
--- a/documentation/menu_button.gif
+++ b/documentation/src/menu_button.gif
Binary files differ
diff --git a/documentation/menubar.gif b/documentation/src/menubar.gif
index 5c6c9442b..5c6c9442b 100644
--- a/documentation/menubar.gif
+++ b/documentation/src/menubar.gif
Binary files differ
diff --git a/documentation/migration_1_1.dox b/documentation/src/migration_1_1.dox
index 17a498cc0..17a498cc0 100644
--- a/documentation/migration_1_1.dox
+++ b/documentation/src/migration_1_1.dox
diff --git a/documentation/migration_1_3.dox b/documentation/src/migration_1_3.dox
index 70023b38c..70023b38c 100644
--- a/documentation/migration_1_3.dox
+++ b/documentation/src/migration_1_3.dox
diff --git a/documentation/opengl.dox b/documentation/src/opengl.dox
index bed6b5d5c..bed6b5d5c 100644
--- a/documentation/opengl.dox
+++ b/documentation/src/opengl.dox
diff --git a/documentation/osissues.dox b/documentation/src/osissues.dox
index b878d79d3..b878d79d3 100644
--- a/documentation/osissues.dox
+++ b/documentation/src/osissues.dox
diff --git a/documentation/positioner.gif b/documentation/src/positioner.gif
index ba9d2694d..ba9d2694d 100644
--- a/documentation/positioner.gif
+++ b/documentation/src/positioner.gif
Binary files differ
diff --git a/documentation/preface.dox b/documentation/src/preface.dox
index ee1e9b6aa..ee1e9b6aa 100644
--- a/documentation/preface.dox
+++ b/documentation/src/preface.dox
diff --git a/documentation/resizebox1.gif b/documentation/src/resizebox1.gif
index c5e8c300b..c5e8c300b 100644
--- a/documentation/resizebox1.gif
+++ b/documentation/src/resizebox1.gif
Binary files differ
diff --git a/documentation/resizebox2.gif b/documentation/src/resizebox2.gif
index 2083afd0d..2083afd0d 100644
--- a/documentation/resizebox2.gif
+++ b/documentation/src/resizebox2.gif
Binary files differ
diff --git a/documentation/round_clock.gif b/documentation/src/round_clock.gif
index 939457a1e..939457a1e 100644
--- a/documentation/round_clock.gif
+++ b/documentation/src/round_clock.gif
Binary files differ
diff --git a/documentation/scrollbar.gif b/documentation/src/scrollbar.gif
index 96d0358cf..96d0358cf 100644
--- a/documentation/scrollbar.gif
+++ b/documentation/src/scrollbar.gif
Binary files differ
diff --git a/documentation/slider.gif b/documentation/src/slider.gif
index 923e25784..923e25784 100644
--- a/documentation/slider.gif
+++ b/documentation/src/slider.gif
Binary files differ
diff --git a/documentation/subclassing.dox b/documentation/src/subclassing.dox
index a13e0a011..a13e0a011 100644
--- a/documentation/subclassing.dox
+++ b/documentation/src/subclassing.dox
diff --git a/documentation/symbols.gif b/documentation/src/symbols.gif
index 54bda5b44..54bda5b44 100644
--- a/documentation/symbols.gif
+++ b/documentation/src/symbols.gif
Binary files differ
diff --git a/documentation/tabs.gif b/documentation/src/tabs.gif
index c347cba15..c347cba15 100644
--- a/documentation/tabs.gif
+++ b/documentation/src/tabs.gif
Binary files differ
diff --git a/documentation/text.gif b/documentation/src/text.gif
index 65a56da97..65a56da97 100644
--- a/documentation/text.gif
+++ b/documentation/src/text.gif
Binary files differ
diff --git a/documentation/tiny.gif b/documentation/src/tiny.gif
index df06e15df..df06e15df 100644
--- a/documentation/tiny.gif
+++ b/documentation/src/tiny.gif
Binary files differ
diff --git a/documentation/unicode.dox b/documentation/src/unicode.dox
index 9ce998bbb..9ce998bbb 100644
--- a/documentation/unicode.dox
+++ b/documentation/src/unicode.dox
diff --git a/documentation/valuators.gif b/documentation/src/valuators.gif
index a2de73801..a2de73801 100644
--- a/documentation/valuators.gif
+++ b/documentation/src/valuators.gif
Binary files differ
diff --git a/documentation/value_slider.gif b/documentation/src/value_slider.gif
index 13fec43ba..13fec43ba 100644
--- a/documentation/value_slider.gif
+++ b/documentation/src/value_slider.gif
Binary files differ
diff --git a/documentation/subclassing.html b/documentation/subclassing.html
deleted file mode 100644
index 873f6cd75..000000000
--- a/documentation/subclassing.html
+++ /dev/null
@@ -1,434 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>7 - Adding and Extending Widgets</TITLE>
-</HEAD>
-<BODY>
-<H1 ALIGN=RIGHT><A NAME=subclassing>7 - Adding and Extending Widgets</A></H1>
- This chapter describes how to add your own widgets or extend existing
-widgets in FLTK.
-<H2>Subclassing</H2>
- New widgets are created by <I>subclassing</I> an existing FLTK widget,
-typically <TT>Fl_Widget</TT> for controls and <TT>Fl_Group</TT> for
-composite widgets.
-<P>A control widget typically interacts with the user to receive and/or
-display a value of some sort. </P>
-<P>A composite widget widget holds a list of child widgets and handles moving,
-sizing, showing, or hiding them as needed. <TT>Fl_Group</TT> is the
-main composite widget widget class in FLTK, and all of the other composite widgets (<TT>
-Fl_Pack</TT>, <TT>Fl_Scroll</TT>, <TT>Fl_Tabs</TT>, <TT>Fl_Tile</TT>,
-and <TT>Fl_Window</TT>) are subclasses of it. </P>
-<P>You can also subclass other existing widgets to provide a different
-look or user-interface. For example, the button widgets are all
-subclasses of <TT>Fl_Button</TT> since they all interact with the user
-via a mouse button click. The only difference is the code that draws
-the face of the button. </P>
-<H2>Making a Subclass of Fl_Widget</H2>
- Your subclasses can directly descend from <TT>Fl_Widget</TT> or any
-subclass of <TT>Fl_Widget</TT>. <TT>Fl_Widget</TT> has only four
-virtual methods, and overriding some or all of these may be necessary.
-<H2>The Constructor</H2>
- The constructor should have the following arguments:
-<UL><PRE>
-MyClass(int x, int y, int w, int h, const char *label = 0);
-</PRE></UL>
- This will allow the class to be used in <A href="fluid.html#FLUID">FLUID</A>
- without problems.
-<P>The constructor must call the constructor for the base class and
-pass the same arguments: </P>
-<UL><PRE>
-MyClass::MyClass(int x, int y, int w, int h, const char *label)
-: Fl_Widget(x, y, w, h, label) {
-// do initialization stuff...
-}
-</PRE></UL>
-<TT>Fl_Widget</TT>'s protected constructor sets <TT>x()</TT>, <TT>y()</TT>,
-<TT>w()</TT>, <TT>h()</TT>, and <TT>label()</TT> to the passed values
-and initializes the other instance variables to:
-<UL><PRE>
-type(0);
-box(FL_NO_BOX);
-color(FL_BACKGROUND_COLOR);
-selection_color(FL_BACKGROUND_COLOR);
-labeltype(FL_NORMAL_LABEL);
-labelstyle(FL_NORMAL_STYLE);
-labelsize(FL_NORMAL_SIZE);
-labelcolor(FL_FOREGROUND_COLOR);
-align(FL_ALIGN_CENTER);
-callback(default_callback,0);
-flags(ACTIVE|VISIBLE);
-image(0);
-deimage(0);
-</PRE></UL>
-<H2>Protected Methods of Fl_Widget</H2>
- The following methods are provided for subclasses to use:
-<UL>
-<LI><A href=#clear_visible><TT>Fl_Widget::clear_visible</TT></A></LI>
-<LI><A href=#damage><TT>Fl_Widget::damage</TT></A></LI>
-<LI><A href=#draw_box><TT>Fl_Widget::draw_box</TT></A></LI>
-<LI><A href=#draw_focus><TT>Fl_Widget::draw_focus</TT></A></LI>
-<LI><A href=#draw_label><TT>Fl_Widget::draw_label</TT></A></LI>
-<LI><A href=#set_flag><TT>Fl_Widget::set_flag</TT></A></LI>
-<LI><A href=#set_visible><TT>Fl_Widget::set_visible</TT></A></LI>
-<LI><A href=#test_shortcut><TT>Fl_Widget::test_shortcut</TT></A></LI>
-<LI><A href=#type><TT>Fl_Widget::type</TT></A></LI>
-</UL>
-<H4><A name=damage>void Fl_Widget::damage(uchar mask)
-<BR> void Fl_Widget::damage(uchar mask, int x, int y, int w, int h)
-<BR> uchar Fl_Widget::damage()</A></H4>
-The first form indicates that a partial update of the object is
-needed. The bits in mask are OR'd into <TT>damage()</TT>. Your <TT>
-draw()</TT> routine can examine these bits to limit what it is
-drawing. The public method <TT>Fl_Widget::redraw()</TT> simply does
-<TT> Fl_Widget::damage(FL_DAMAGE_ALL)</TT>, but the implementation of
-your widget can call the private <TT>damage(n)</TT>.
-<P>The second form indicates that a region is damaged. If only these
-calls are done in a window (no calls to <TT>damage(n)</TT>) then FLTK
-will clip to the union of all these calls before drawing anything.
- This can greatly speed up incremental displays. The mask bits are
-OR'd into <TT>damage()</TT> unless this is a <TT>Fl_Window</TT> widget. </P>
-<P>The third form returns the bitwise-OR of all <TT>damage(n)</TT>
-calls done since the last <TT>draw()</TT>.</P>
-<P><I>When redrawing your widgets you should look at the damage bits to
-see what parts of your widget need redrawing.</I> The <tt>handle()</tt>
-method can then set individual damage bits to limit the amount of drawing
-that needs to be done:
-<UL><PRE>
-MyClass::handle(int event) {
- ...
- if (change_to_part1) damage(1);
- if (change_to_part2) damage(2);
- if (change_to_part3) damage(4);
-}
-
-MyClass::draw() {
- if (damage() &amp; FL_DAMAGE_ALL) {
- ... draw frame/box and other static stuff ...
- }
-
- if (damage() &amp; (FL_DAMAGE_ALL | 1)) draw_part1();
- if (damage() &amp; (FL_DAMAGE_ALL | 2)) draw_part2();
- if (damage() &amp; (FL_DAMAGE_ALL | 4)) draw_part3();
-}
-</PRE></UL>
-<H4><A name=draw_box>void Fl_Widget::draw_box() const
-<BR></A>void Fl_Widget::draw_box(Fl_Boxtype b, ulong c) const</H4>
- The first form draws this widget's <TT>box()</TT>, using the
-dimensions of the widget. The second form uses <TT>b</TT> as the box
-type and <TT>c</TT> as the color for the box.
-
-<H4><A name="draw_focus">void Fl_Widget::draw_focus() const
-<BR>void Fl_Widget::draw_focus(Fl_Boxtype b, int x, int y, int w, int h) const</A></H4>
-
-<P>Draws a focus box inside the widgets bounding box. The second
-form allows you to specify a different bounding box.
-
-<H4><A name=draw_label>void Fl_Widget::draw_label() const
-<BR> void Fl_Widget::draw_label(int x, int y, int w, int h) const
-<BR> void Fl_Widget::draw_label(int x, int y, int w, int h, Fl_Align
-align) const</A></H4>
- This is the usual function for a <TT>draw()</TT> method to call to
-draw the widget's label. It does not draw the label if it is supposed
-to be outside the box (on the assumption that the enclosing group will
-draw those labels).
-<P>The second form uses the passed bounding box instead of the widget's
-bounding box. This is useful so &quot;centered&quot; labels are aligned with some
-feature, like a moving slider. </P>
-<P>The third form draws the label anywhere. It acts as though <TT>
-FL_ALIGN_INSIDE</TT> has been forced on so the label will appear inside
-the passed bounding box. This is designed for parent groups to draw
-labels with. </P>
-<H4><A name=set_flag>void Fl_Widget::set_flag(SHORTCUT_LABEL)</A></H4>
-Modifies <TT>draw_label()</TT> so that '&amp;' characters cause an underscore
-to be printed under the next letter.
-<H4><A name=set_visible>void Fl_Widget::set_visible()</A>
-<BR><A name=clear_visible>void Fl_Widget::clear_visible()</A></H4>
- Fast inline versions of <TT>Fl_Widget::hide()</TT> and <TT>
-Fl_Widget::show()</TT>. These do not send the <TT>FL_HIDE</TT> and <TT>
-FL_SHOW</TT> events to the widget.
-<H4><A name=test_shortcut>int Fl_Widget::test_shortcut() const
-<BR> static int Fl_Widget::test_shortcut(const char *s)</A></H4>
- The first version tests <TT>Fl_Widget::label()</TT> against the
-current event (which should be a <TT>FL_SHORTCUT</TT> event). If the
-label contains a '&amp;' character and the character after it matches the key
-press, this returns true. This returns false if the <TT>SHORTCUT_LABEL</TT>
-flag is off, if the label is <TT>NULL</TT> or does not have a
-'&amp;' character in it, or if the keypress does not match the character.
-<P>The second version lets you do this test against an arbitrary
-string. </P>
-<H4><A name=type>uchar Fl_Widget::type() const
-<BR> void Fl_Widget::type(uchar t)</A></H4>
- The property <TT>Fl_Widget::type()</TT> can return an arbitrary 8-bit
-identifier, and can be set with the protected method <TT>type(uchar t)</TT>
-. This value had to be provided for Forms compatibility, but you can
-use it for any purpose you want. Try to keep the value less than 100
-to not interfere with reserved values.
-<P>FLTK does not use RTTI (Run Time Typing Infomation), to enhance
-portability. But this may change in the near future if RTTI becomes
-standard everywhere. </P>
-<P>If you don't have RTTI you can use the clumsy FLTK mechanisim, by
-having <TT>type()</TT> use a unique value. These unique values must
-be greater than the symbol <TT>FL_RESERVED_TYPE</TT> (which is 100).
-Look through the header files for <TT>FL_RESERVED_TYPE</TT> to find an
-unused number. If you make a subclass of <TT>Fl_Window</TT>
-you must use <TT>FL_WINDOW + n</TT> (<TT>n</tt> must be in the
-range 1 to 7). </P>
-<H2><A NAME="handle">Handling Events</A></H2>
- The virtual method <TT>int Fl_Widget::handle(int event)</TT> is called
-to handle each event passed to the widget. It can:
-<UL>
-<LI>Change the state of the widget. </LI>
-<LI>Call <A href=Fl_Widget.html#Fl_Widget.redraw><TT>Fl_Widget::redraw()</TT>
-</A> if the widget needs to be redisplayed. </LI>
-<LI>Call <A href=Fl_Widget.html#Fl_Widget.damage><TT>
-Fl_Widget::damage(n)</TT></A> if the widget needs a partial-update
-(assuming you provide support for this in your <A HREF="#draw"><TT>Fl_Widget::draw()</TT></A>
- method). </LI>
-<LI>Call <A href=Fl_Widget.html#Fl_Widget.do_callback><TT>
-Fl_Widget::do_callback()</TT></A> if a callback should be generated. </LI>
-<LI>Call <TT>Fl_Widget::handle()</TT> on child widgets. </LI>
-</UL>
- Events are identified by the integer argument. Other information
-about the most recent event is stored in static locations and aquired
-by calling the <A href=events.html#events><TT>Fl::event_*()</TT></A>
- functions. This information remains valid until another event is
-handled.
-<P>Here is a sample <TT>handle()</TT> method for a widget that acts as
-a pushbutton and also accepts the keystroke 'x' to cause the callback: </P>
-<UL><PRE>
-int MyClass::handle(int event) {
- switch(event) {
- case FL_PUSH:
- highlight = 1;
- redraw();
- return 1;
- case FL_DRAG: {
- int t = Fl::event_inside(this);
- if (t != highlight) {
- highlight = t;
- redraw();
- }
- }
- return 1;
- case FL_RELEASE:
- if (highlight) {
- highlight = 0;
- redraw();
- do_callback();
- // never do anything after a callback, as the callback
- // may delete the widget!
- }
- return 1;
- case FL_SHORTCUT:
- if (Fl::event_key() == 'x') {
- do_callback();
- return 1;
- }
- return 0;
- default:
- return Fl_Widget::handle(event);
- }
-}
-</PRE></UL>
-
-<P>You must return non-zero if your <TT>handle()</TT> method
-uses the event. If you return zero, the parent widget will try
-sending the event to another widget.
-
-<H2><A NAME="draw">Drawing the Widget</A></H2>
-
-<P>The <TT>draw()</TT> virtual method is called when FLTK wants
-you to redraw your widget. It will be called if and only if
-<TT>damage()</TT> is non-zero, and <TT>damage()</TT> will be
-cleared to zero after it returns. The <TT>draw()</TT> method
-should be declared protected so that it can't be called from
-non-drawing code.
-
-<P>The <TT>damage()</TT> value contains the bitwise-OR of all
-the <TT>damage(n)</TT> calls to this widget since it was last
-drawn. This can be used for minimal update, by only redrawing
-the parts whose bits are set. FLTK will turn on the
-<TT>FL_DAMAGE_ALL</TT> bit if it thinks the entire widget must
-be redrawn, e.g. for an expose event. </P>
-
-<P>Expose events (and the above <TT>damage(b,x,y,w,h)</TT>) will cause <TT>
-draw()</TT> to be called with FLTK's <A href=drawing.html#clipping>
-clipping</A> turned on. You can greatly speed up redrawing in some
-cases by testing <TT>fl_not_clipped(x,y,w,h)</TT> or <TT>fl_clip_box(...)</TT> and
-skipping invisible parts. </P>
-<P>Besides the protected methods described above, FLTK provides a large
-number of basic drawing functions, which are described <A href=drawing.html#drawing>
-below</A>. </P>
-<H2>Resizing the Widget</H2>
- The <TT>resize(int x, int y, int w, int h)</TT> method is called when
-the widget is being resized or moved. The arguments are the new
-position, width, and height. <TT>x()</TT>, <TT>y()</TT>, <TT>w()</TT>,
-and <TT>h()</TT> still remain the old size. You must call <TT>resize()</TT>
- on your base class with the same arguments to get the widget size to
-actually change.
-<P>This should <I>not</I> call <TT>redraw()</TT>, at least if only the <TT>
-x()</TT> and <TT>y()</TT> change. This is because composite widgets like <A href=Fl_Scroll.html#Fl_Scroll>
-<TT>Fl_Scroll</TT></A> may have a more efficient way of drawing the new
-position. </P>
-<H2>Making a Composite Widget</H2>
- A &quot;composite&quot; widget contains one or more &quot;child&quot; widgets.
- To make a composite widget you should subclass <A href=Fl_Group.html#Fl_Group><TT>Fl_Group</TT></A>
-. It is possible to make a composite object that is not a subclass of <TT>
-Fl_Group</TT>, but you'll have to duplicate the code in <TT>Fl_Group</TT>
- anyways.
-<P>Instances of the child widgets may be included in the parent: </P>
-<UL><PRE>
-class MyClass : public Fl_Group {
- Fl_Button the_button;
- Fl_Slider the_slider;
- ...
-};
-</PRE></UL>
- The constructor has to initialize these instances. They are
-automatically <TT>add()</TT>ed to the group, since the <TT>Fl_Group</TT>
- constructor does <TT>begin()</TT>. <I>Don't forget to call <TT>end()</TT>
- or use the <A href=Fl_End.html#Fl_End><TT>Fl_End</TT></A> pseudo-class:</I>
-<UL><PRE>
-MyClass::MyClass(int x, int y, int w, int h) :
- Fl_Group(x, y, w, h),
- the_button(x + 5, y + 5, 100, 20),
- the_slider(x, y + 50, w, 20)
-{
- ...(you could add dynamically created child widgets here)...
- end(); // don't forget to do this!
-}
-</PRE></UL>
- The child widgets need callbacks. These will be called with a pointer
-to the children, but the widget itself may be found in the <TT>parent()</TT>
- pointer of the child. Usually these callbacks can be static private
-methods, with a matching private method:
-<UL><PRE>
-void MyClass::static_slider_cb(Fl_Widget* v, void *) { // static method
- ((MyClass*)(v-&gt;parent())-&gt;slider_cb();
-}
-void MyClass::slider_cb() { // normal method
- use(the_slider-&gt;value());
-}
-</PRE></UL>
- If you make the <TT>handle()</TT> method, you can quickly pass all the
-events to the children using the <TT>Fl_Group::handle()</TT> method.
-You don't need to override <TT>handle()</TT> if your composite widget
-does nothing other than pass events to the children:
-<UL><PRE>
-int MyClass::handle(int event) {
- if (Fl_Group::handle(event)) return 1;
- ... handle events that children don't want ...
-}
-</PRE></UL>
-
-<P>If you override <TT>draw()</TT> you need to draw all the
-children. If <TT>redraw()</TT> or <TT>damage()</TT> is called
-on a child, <TT>damage(FL_DAMAGE_CHILD)</TT> is done to the
-group, so this bit of <TT>damage()</TT> can be used to indicate
-that a child needs to be drawn. It is fastest if you avoid
-drawing anything else in this case:
-
-<UL><PRE>
-int MyClass::draw() {
- Fl_Widget *const*a = array();
- if (damage() == FL_DAMAGE_CHILD) { // only redraw some children
- for (int i = children(); i --; a ++) update_child(**a);
- } else { // total redraw
- ... draw background graphics ...
- // now draw all the children atop the background:
- for (int i = children_; i --; a ++) {
- draw_child(**a);
- draw_outside_label(**a); // you may not need to do this
- }
- }
-}
-</PRE></UL>
-<TT>Fl_Group</TT> provides some protected methods to make drawing
-easier:
-<UL>
-<LI><A href=#draw_child>draw_child</A></LI>
-<LI><A href=#draw_outside_label>draw_outside_label</A></LI>
-<LI><A href=#update_child>update_child</A></LI>
-</UL>
-<H4><A name=draw_child>void Fl_Group::draw_child(Fl_Widget&amp;)</A></H4>
- This will force the child's <TT>damage()</TT> bits all to one and call <TT>
-draw()</TT> on it, then clear the <TT>damage()</TT>. You should call
-this on all children if a total redraw of your widget is requested, or
-if you draw something (like a background box) that damages the child.
- Nothing is done if the child is not <TT>visible()</TT> or if it is
-clipped.
-<H4><A name=draw_outside_label>void
-Fl_Group::draw_outside_label(Fl_Widget&amp;) const</A></H4>
- Draw the labels that are <I>not</I> drawn by <A href=#draw_label><TT>
-draw_label()</TT></A>. If you want more control over the label
-positions you might want to call <TT>child-&gt;draw_label(x,y,w,h,a)</TT>.
-<H4><A name=update_child>void Fl_Group::update_child(Fl_Widget&amp;)</A></H4>
- Draws the child only if its <TT>damage()</TT> is non-zero. You
-should call this on all the children if your own damage is equal to
-FL_DAMAGE_CHILD. Nothing is done if the child is not <TT>visible()</TT>
- or if it is clipped.
-
-<H2>Cut and Paste Support</H2>
-FLTK provides routines to cut and paste 8-bit text (in the future this
-may be UTF-8) between applications:
-<UL>
-<LI><A href="Fl.html#Fl.paste"><TT>Fl::paste</TT></A></LI>
-<LI><A href="Fl.html#Fl.selection"><TT>Fl::selection</TT></A></LI>
-<LI><A href="Fl.html#Fl.selection_owner"><TT>Fl::selection_owner</TT></A></LI>
-</UL>
-It may be possible to cut/paste non-text data by using <A href=osissues.html#add_handler>
-<TT>Fl::add_handler()</TT></A>.
-
-<H2>Drag And Drop Support</H2>
-
-FLTK provides routines to drag and drop 8-bit text between applications:
-
-<P>Drag'n'drop operations are are initiated by copying data to the
-clipboard and calling the function
-<A href="Fl.html#Fl.dnd"><TT>Fl::dnd()</TT></A>.
-
-<P>Drop attempts are handled via <A href="events.html#dnd">events</A>:
-<UL>
-<LI><TT>FL_DND_ENTER</TT></LI>
-<LI><TT>FL_DND_DRAG</TT></LI>
-<LI><TT>FL_DND_LEAVE</TT></LI>
-<LI><TT>FL_DND_RELEASE</TT></LI>
-<LI><TT>FL_PASTE</TT></LI>
-</UL>
-
-<H2>Making a subclass of Fl_Window</H2>
-
-<P>You may want your widget to be a subclass of
-<TT>Fl_Window</TT>, <TT>Fl_Double_Window</TT>, or
-<TT>FL_Gl_Window</TT>. This can be useful if your widget wants
-to occupy an entire window, and can also be used to take
-advantage of system-provided clipping, or to work with a library
-that expects a system window ID to indicate where to draw.
-
-<P>Subclassing <TT>Fl_Window</TT>is almost exactly like
-subclassing <TT>Fl_Group</TT>, and in fact you can easily
-switch a subclass back and forth. Watch out for the following
-differences: </P>
-
-<OL>
-
- <LI><TT>Fl_Window</TT> is a subclass of
- <TT>Fl_Group</TT> so <I>make sure your constructor calls
- <TT>end()</TT></I> unless you actually want children
- added to your window.</LI>
-
- <LI>When handling events and drawing, the upper-left
- corner is at 0,0, not <TT>x(),y()</TT> as in other
- <TT>Fl_Widget</TT>'s. For instance, to draw a box
- around the widget, call <TT>draw_box(0, 0, w(),
- h())</TT>, rather than <TT>draw_box(x(), y(), w(),
- h())</TT>.</LI>
-
-</OL>
-
-<P>You may also want to subclass <TT>Fl_Window</TT> in order to
-get access to different visuals or to change other attributes of
-the windows. See <A href="osissues.html">"Appendix F - Operating
-System Issues"</A> for more information.
-
-</BODY>
-</HTML>
diff --git a/documentation/widgets.html b/documentation/widgets.html
deleted file mode 100644
index 4f8083d71..000000000
--- a/documentation/widgets.html
+++ /dev/null
@@ -1,907 +0,0 @@
-<HTML>
-<HEAD>
- <TITLE>A - Class Reference</TITLE>
-</HEAD>
-<BODY>
-
-<H1 ALIGN="RIGHT"><A NAME="widgets">A - Class Reference</A></H1>
-
-This appendix describes all classes in FLTK and their methods.
-For a description of the <TT>fl_</TT> functions, see
-<A href="functions.html">Appendix B</A>.
-
-<H2>Alphabetical List of Classes</H2>
-
-<CENTER><TABLE WIDTH=80% SUMMARY="List of FLTK Classes">
-<TR ALIGN=LEFT VALIGN=TOP>
-<TD>
-<A HREF="Fl.html">Fl</A><BR>
-<A HREF="Fl_Adjuster.html">Fl_Adjuster</A><BR>
-<A HREF="Fl_Bitmap.html">Fl_Bitmap</A><BR>
-<A HREF="Fl_BMP_Image.html">Fl_BMP_Image</A><BR>
-<A HREF="Fl_Box.html">Fl_Box</A><BR>
-<A HREF="Fl_Browser_.html">Fl_Browser_</A><BR>
-<A HREF="Fl_Browser.html">Fl_Browser</A><BR>
-<A HREF="Fl_Button.html">Fl_Button</A><BR>
-<A HREF="Fl_Chart.html">Fl_Chart</A><BR>
-<A HREF="Fl_Check_Browser.html">Fl_Check_Browser</A><BR>
-<A HREF="Fl_Check_Button.html">Fl_Check_Button</A><BR>
-<A HREF="Fl_Choice.html">Fl_Choice</A><BR>
-<A HREF="Fl_Clock.html">Fl_Clock</A><BR>
-<A HREF="Fl_Clock_Output.html">Fl_Clock_Output</A><BR>
-<A HREF="Fl_Color_Chooser.html">Fl_Color_Chooser</A><BR>
-<A HREF="Fl_Counter.html">Fl_Counter</A><BR>
-<A HREF="Fl_Dial.html">Fl_Dial</A><BR>
-<A HREF="Fl_Double_Window.html">Fl_Double_Window</A><BR>
-<A HREF="Fl_End.html">Fl_End</A><BR>
-<A HREF="Fl_File_Browser.html">Fl_File_Browser</A><BR>
-<A HREF="Fl_File_Chooser.html">Fl_File_Chooser</A><BR>
-<A HREF="Fl_File_Icon.html">Fl_File_Icon</A><BR>
-<A HREF="Fl_File_Input.html">Fl_File_Input</A><BR>
-<A HREF="Fl_Float_Input.html">Fl_Float_Input</A><BR>
-<A HREF="Fl_Free.html">Fl_Free</A><BR>
-<A HREF="Fl_GIF_Image.html">Fl_GIF_Image</A><BR>
-<A HREF="Fl_Gl_Window.html">Fl_Gl_Window</A><BR>
-<A HREF="Fl_Group.html">Fl_Group</A><BR>
-<A HREF="Fl_Help_Dialog.html">Fl_Help_Dialog</A><BR>
-<A HREF="Fl_Help_View.html">Fl_Help_View</A><BR>
-<A HREF="Fl_Hold_Browser.html">Fl_Hold_Browser</A><BR>
-<A HREF="Fl_Image.html">Fl_Image</A><BR>
-<A HREF="Fl_Input_.html">Fl_Input_</A><BR>
-<A HREF="Fl_Input.html">Fl_Input</A><BR>
-<A HREF="Fl_Input_Choice.html">Fl_Input_Choice</A><BR>
-<A HREF="Fl_Int_Input.html">Fl_Int_Input</A><BR>
-<A HREF="Fl_JPEG_Image.html">Fl_JPEG_Image</A><BR>
-<A HREF="Fl_Light_Button.html">Fl_Light_Button</A><BR>
-<A HREF="Fl_Menu_Bar.html">Fl_Menu_Bar</A><BR>
-<A HREF="Fl_Menu_Button.html">Fl_Menu_Button</A><BR>
-<A HREF="Fl_Menu_.html">Fl_Menu_</A><BR>
-<A HREF="Fl_Menu_Item.html">Fl_Menu_Item</A><BR>
-<A HREF="Fl_Menu_Window.html">Fl_Menu_Window</A><BR>
-</TD><TD>
-<A HREF="Fl_Multi_Browser.html">Fl_Multi_Browser</A><BR>
-<A HREF="Fl_Multiline_Input.html">Fl_Multiline_Input</A><BR>
-<A HREF="Fl_Multiline_Output.html">Fl_Multiline_Output</A><BR>
-<A HREF="Fl_Output.html">Fl_Output</A><BR>
-<A HREF="Fl_Overlay_Window.html">Fl_Overlay_Window</A><BR>
-<A HREF="Fl_Pack.html">Fl_Pack</A><BR>
-<A HREF="Fl_Pixmap.html">Fl_Pixmap</A><BR>
-<A HREF="Fl_PNG_Image.html">Fl_PNG_Image</A><BR>
-<A HREF="Fl_PNM_Image.html">Fl_PNM_Image</A><BR>
-<A HREF="Fl_Positioner.html">Fl_Positioner</A><BR>
-<A HREF="Fl_Preferences.html">Fl_Preferences</A><BR>
-<A HREF="Fl_Progress.html">Fl_Progress</A><BR>
-<A HREF="Fl_Repeat_Button.html">Fl_Repeat_Button</A><BR>
-<A HREF="Fl_Return_Button.html">Fl_Return_Button</A><BR>
-<A HREF="Fl_RGB_Image.html">Fl_RGB_Image</A><BR>
-<A HREF="Fl_Roller.html">Fl_Roller</A><BR>
-<A HREF="Fl_Round_Button.html">Fl_Round_Button</A><BR>
-<A HREF="Fl_Scrollbar.html">Fl_Scrollbar</A><BR>
-<A HREF="Fl_Scroll.html">Fl_Scroll</A><BR>
-<A HREF="Fl_Secret_Input.html">Fl_Secret_Input</A><BR>
-<A HREF="Fl_Select_Browser.html">Fl_Select_Browser</A><BR>
-<A HREF="Fl_Shared_Image.html">Fl_Shared_Image</A><BR>
-<A HREF="Fl_Single_Window.html">Fl_Single_Window</A><BR>
-<A HREF="Fl_Slider.html">Fl_Slider</A><BR>
-<A HREF="Fl_Spinner.html">Fl_Spinner</A><BR>
-<A HREF="Fl_Tabs.html">Fl_Tabs</A><BR>
-<A HREF="Fl_Text_Buffer.html">Fl_Text_Buffer</A><BR>
-<A HREF="Fl_Text_Display.html">Fl_Text_Display</A><BR>
-<A HREF="Fl_Text_Editor.html">Fl_Text_Editor</A><BR>
-<A HREF="Fl_Tiled_Image.html">Fl_Tiled_Image</A><BR>
-<A HREF="Fl_Tile.html">Fl_Tile</A><BR>
-<A HREF="Fl_Timer.html">Fl_Timer</A><BR>
-<A HREF="Fl_Toggle_Button.html">Fl_Toggle_Button</A><BR>
-<A HREF="Fl_Tooltip.html">Fl_Tooltip</A><BR>
-<A HREF="Fl_Valuator.html">Fl_Valuator</A><BR>
-<A HREF="Fl_Value_Input.html">Fl_Value_Input</A><BR>
-<A HREF="Fl_Value_Output.html">Fl_Value_Output</A><BR>
-<A HREF="Fl_Value_Slider.html">Fl_Value_Slider</A><BR>
-<A HREF="Fl_Widget.html">Fl_Widget</A><BR>
-<A HREF="Fl_Window.html">Fl_Window</A><BR>
-<A HREF="Fl_Wizard.html">Fl_Wizard</A><BR>
-<A HREF="Fl_XBM_Image.html">Fl_XBM_Image</A><BR>
-<A HREF="Fl_XPM_Image.html">Fl_XPM_Image</A><BR>
-</TD>
-</TR>
-</TABLE></CENTER>
-
-<H2>Class Hierarchy</H2>
-
-<UL>
- <LI><A HREF="Fl.html">Fl</A>
- <LI><A HREF="Fl_End.html#Fl_End">Fl_End</A>
- <LI><A HREF="Fl_File_Icon.html#Fl_File_Icon">Fl_File_Icon</A>
- <LI><A HREF="Fl_Help_Dialog.html#Fl_Help_Dialog">Fl_Help_Dialog</A>
- <LI><A HREF="Fl_Image.html">Fl_Image</A>
- <UL>
- <LI><A HREF="Fl_Bitmap.html">Fl_Bitmap</A><BR>
- <UL>
- <LI><A HREF="Fl_XBM_Image.html">Fl_XBM_Image</A><BR>
- </UL>
- <LI><A HREF="Fl_Pixmap.html">Fl_Pixmap</A><BR>
- <UL>
- <LI><A HREF="Fl_GIF_Image.html">Fl_GIF_Image</A><BR>
- <LI><A HREF="Fl_XPM_Image.html">Fl_XPM_Image</A><BR>
- </UL>
- <LI><A HREF="Fl_RGB_Image.html">Fl_RGB_Image</A><BR>
- <UL>
- <LI><A HREF="Fl_BMP_Image.html">Fl_BMP_Image</A><BR>
- <LI><A HREF="Fl_JPEG_Image.html">Fl_JPEG_Image</A><BR>
- <LI><A HREF="Fl_PNG_Image.html">Fl_PNG_Image</A><BR>
- <LI><A HREF="Fl_PNM_Image.html">Fl_PNM_Image</A><BR>
- </UL>
- <LI><A HREF="Fl_Shared_Image.html">Fl_Shared_Image</A><BR>
- <LI><A HREF="Fl_Tiled_Image.html">Fl_Tiled_Image</A><BR>
- </UL>
- <LI><A HREF="Fl_Menu_Item.html#Fl_Menu_Item">Fl_Menu_Item</A>
- <LI><A HREF="Fl_Preferences.html">Fl_Preferences</A>
- <LI><A HREF="Fl_Text_Buffer.html">Fl_Text_Buffer</A>
- <LI><A HREF="Fl_Tooltip.html">Fl_Tooltip</A>
- <LI><A HREF="Fl_Widget.html#Fl_Widget">Fl_Widget</A>
- <UL>
- <LI><A HREF="Fl_Box.html#Fl_Box">Fl_Box</A>
- <LI><A HREF="Fl_Button.html#Fl_Button">Fl_Button</A>
- <UL>
- <LI><A HREF="Fl_Check_Button.html#Fl_Check_Button">Fl_Check_Button</A>
- <LI><A HREF="Fl_Light_Button.html#Fl_Light_Button">Fl_Light_Button</A>
- <LI><A HREF="Fl_Repeat_Button.html#Fl_Repeat_Button">Fl_Repeat_Button</A>
- <LI><A HREF="Fl_Return_Button.html#Fl_Return_Button">Fl_Return_Button</A>
- <LI><A HREF="Fl_Round_Button.html#Fl_Round_Button">Fl_Round_Button</A>
- <LI><A HREF="Fl_Toggle_Button.html#Fl_Toggle_Button">Fl_Toggle_Button</A>
- </UL>
- <LI><A HREF="Fl_Chart.html#Fl_Chart">Fl_Chart</A>
- <LI><A HREF="Fl_Clock_Output.html#Fl_Clock_Output">Fl_Clock_Output</A>
- <UL>
- <LI><A HREF="Fl_Clock.html#Fl_Clock">Fl_Clock</A>
- </UL>
- <LI><A HREF="Fl_File_Chooser.html#Fl_File_Chooser">Fl_File_Chooser</A>
- <LI><A HREF="Fl_Free.html#Fl_Free">Fl_Free</A>
- <LI><A HREF="Fl_Group.html#Fl_Group">Fl_Group</A>
- <UL>
- <LI><A HREF="Fl_Browser_.html#Fl_Browser_">Fl_Browser_</A>
- <UL>
- <LI><A HREF="Fl_Browser.html#Fl_Browser">Fl_Browser</A>
- <UL>
- <LI><A HREF="Fl_File_Browser.html#Fl_File_Browser">Fl_File_Browser</A>
- <LI><A HREF="Fl_Hold_Browser.html#Fl_Hold_Browser">Fl_Hold_Browser</A>
- <LI><A HREF="Fl_Multi_Browser.html#Fl_Multi_Browser">Fl_Multi_Browser</A>
- <LI><A HREF="Fl_Select_Browser.html#Fl_Select_Browser">Fl_Select_Browser</A>
- </UL>
- <LI><A HREF="Fl_Check_Browser.html">Fl_Check_Browser</A>
- </UL>
- <LI><A HREF="Fl_Color_Chooser.html#Fl_Color_Chooser">Fl_Color_Chooser</A>
- <LI><A HREF="Fl_Help_View.html#Fl_Help_View">Fl_Help_View</A>
- <LI><A HREF="Fl_Input_Choice.html">Fl_Input_Choice</A>
- <LI><A HREF="Fl_Pack.html#Fl_Pack">Fl_Pack</A>
- <LI><A HREF="Fl_Scroll.html#Fl_Scroll">Fl_Scroll</A>
- <LI><A HREF="Fl_Spinner.html#Fl_Spinner">Fl_Spinner</A>
- <LI><A HREF="Fl_Tabs.html#Fl_Tabs">Fl_Tabs</A>
- <LI><A HREF="Fl_Text_Display.html">Fl_Text_Display</A>
- <UL>
- <LI><A HREF="Fl_Text_Editor.html">Fl_Text_Editor</A>
- </UL>
- <LI><A HREF="Fl_Tile.html#Fl_Tile">Fl_Tile</A>
- <LI><A HREF="Fl_Window.html#Fl_Window">Fl_Window</A>
- <UL>
- <LI><A HREF="Fl_Double_Window.html#Fl_Double_Window">Fl_Double_Window</A>
- <LI><A HREF="Fl_Gl_Window.html#Fl_Gl_Window">Fl_Gl_Window</A>
- <LI><A HREF="Fl_Menu_Window.html#Fl_Menu_Window">Fl_Menu_Window</A>
- <LI><A HREF="Fl_Overlay_Window.html#Fl_Overlay_Window">Fl_Overlay_Window</A>
- <LI><A HREF="Fl_Single_Window.html#Fl_Single_Window">Fl_Single_Window</A>
- </UL>
- <LI><A HREF="Fl_Wizard.html#Fl_Wizard">Fl_Wizard</A>
- </UL>
- <LI><A HREF="Fl_Input_.html#Fl_Input_">Fl_Input_</A>
- <UL>
- <LI><A HREF="Fl_Input.html#Fl_Input">Fl_Input</A>
- <UL>
- <LI><A HREF="Fl_File_Input.html#Fl_File_Input">Fl_File_Input</A>
- <LI><A HREF="Fl_Float_Input.html#Fl_Float_Input">Fl_Float_Input</A>
- <LI><A HREF="Fl_Int_Input.html#Fl_Int_Input">Fl_Int_Input</A>
- <LI><A HREF="Fl_Multiline_Input.html#Fl_Multiline_Input">Fl_Multiline_Input</A>
- <LI><A HREF="Fl_Secret_Input.html#Fl_Secret_Input">Fl_Secret_Input</A>
- <LI><A HREF="Fl_Output.html#Fl_Output">Fl_Output</A>
- <UL>
- <LI><A HREF="Fl_Multiline_Output.html#Fl_Multiline_Output">Fl_Multiline_Output</A>
- </UL>
- </UL>
- </UL>
- <LI><A HREF="Fl_Menu_.html#Fl_Menu_">Fl_Menu_</A>
- <UL>
- <LI><A HREF="Fl_Choice.html#Fl_Choice">Fl_Choice</A>
- <LI><A HREF="Fl_Menu_Bar.html#Fl_Menu_Bar">Fl_Menu_Bar</A>
- <LI><A HREF="Fl_Menu_Button.html#Fl_Menu_Button">Fl_Menu_Button</A>
- </UL>
- <LI><A HREF="Fl_Positioner.html#Fl_Positioner">Fl_Positioner</A>
- <LI><A HREF="Fl_Progress.html">Fl_Progress</A>
- <LI><A HREF="Fl_Timer.html#Fl_Timer">Fl_Timer</A>
- <LI><A HREF="Fl_Valuator.html#Fl_Valuator">Fl_Valuator</A>
- <UL>
- <LI><A HREF="Fl_Adjuster.html#Fl_Adjuster">Fl_Adjuster</A>
- <LI><A HREF="Fl_Counter.html#Fl_Counter">Fl_Counter</A>
- <LI><A HREF="Fl_Dial.html#Fl_Dial">Fl_Dial</A>
- <LI><A HREF="Fl_Roller.html#Fl_Roller">Fl_Roller</A>
- <LI><A HREF="Fl_Slider.html#Fl_Slider">Fl_Slider</A>
- <UL>
- <LI><A HREF="Fl_Scrollbar.html#Fl_Scrollbar">Fl_Scrollbar</A>
- <LI><A HREF="Fl_Value_Slider.html#Fl_Value_Slider">Fl_Value_Slider</A>
- </UL>
- <LI><A HREF="Fl_Value_Input.html#Fl_Value_Input">Fl_Value_Input</A>
- <LI><A HREF="Fl_Value_Output.html#Fl_Value_Output">Fl_Value_Output</A>
- </UL>
- </UL>
-</UL>
-
-<H2>Alphabetical List of Methods</H2>
-
-<H3>A</H3><UL>
-<LI>activate: <A href=Fl_Menu_Item.html#Fl_Menu_Item.activate>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.activate>Fl_Widget</A></LI>
-<LI>active: <A href=Fl_Menu_Item.html#Fl_Menu_Item.active>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.active>Fl_Widget</A></LI>
-<LI>active_r: <A href=Fl_Widget.html#Fl_Widget.active_r>Fl_Widget</A></LI>
-<LI>add: <A HREF="Fl_File_Icon.html#Fl_File_Icon.add">Fl_File_Icon</A>,
- <A href=Fl_Browser.html#Fl_Browser.add>Fl_Browser</A>,
- <A href=Fl_Chart.html#Fl_Chart.add>Fl_Chart</A>,
- <A href=Fl_Check_Browser.html#Fl_Check_Browser.add>Fl_Check_Browser</A>,
- <A href=Fl_Group.html#Fl_Group.add>Fl_Group</A>,
- <A href=Fl_Input_Choice.html#Fl_Input_Choice.add>Fl_Input_Choice</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.add>Fl_Menu_</A></LI>
-<LI>add_color: <A HREF="Fl_File_Icon.html#Fl_File_Icon.add_color">Fl_File_Icon</A></LI>
-<LI>add_default_key_bindings: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.add_default_key_bindings">Fl_Text_Editor</A></LI>
-<LI>add_key_binding: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.add_key_binding">Fl_Text_Editor</A></LI>
-<LI>add_modify_callback: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.add_modify_callback">Fl_Text_Buffer</A></LI>
-<LI>add_resizable: <A href=Fl_Group.html#Fl_Group.add_resizable>Fl_Group</A></LI>
-<LI>add_vertex: <A HREF="Fl_File_Icon.html#Fl_File_Icon.add_vertex">Fl_File_Icon</A></LI>
-<LI>align: <A href=Fl_Scroll.html#Fl_Scroll.align>Fl_Scroll</A>,
- <A href=Fl_Widget.html#Fl_Widget.align>Fl_Widget</A></LI>
-<LI>angle1: <A href=Fl_Dial.html#Fl_Dial.angles>Fl_Dial</A></LI>
-<LI>angle2: <A href=Fl_Dial.html#Fl_Dial.angles>Fl_Dial</A></LI>
-<LI>angles: <A href=Fl_Dial.html#Fl_Dial.angles>Fl_Dial</A></LI>
-<LI>append: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.append">Fl_Text_Buffer</A></LI>
-<LI>appendfile: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.appendfile">Fl_Text_Buffer</A></LI>
-<LI>argument: <A href=Fl_Menu_Item.html#Fl_Menu_Item.argument>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.argument>Fl_Widget</A></LI>
-<LI>array: <A href=Fl_Group.html#Fl_Group.array>Fl_Group</A></LI>
-<LI>autosize: <A href=Fl_Chart.html#Fl_Chart.autosize>Fl_Chart</A></LI>
-</UL>
-<H3>B</H3><UL>
-<LI>b: <A href=Fl_Color_Chooser.html#Fl_Color_Chooser.b>Fl_Color_Chooser</A></LI>
-<LI>bbox: <A href="Fl_Browser_.html#Fl_Browser_.bbox">Fl_Browser_</A></LI>
-<LI>begin: <A href=Fl_Group.html#Fl_Group.begin>Fl_Group</A></LI>
-<LI>border: <A href=Fl_Window.html#Fl_Window.border>Fl_Window</A></LI>
-<LI>bottomline: <A href=Fl_Browser.html#Fl_Browser.bottomline>Fl_Browser</A></LI>
-<LI>bound_key_function: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.bound_key_function">Fl_Text_Editor</A></LI>
-<LI>bounds: <A href="Fl_Valuator.html#Fl_Valuator.bounds">Fl_Valuator</A>,
- <A href=Fl_Chart.html#Fl_Chart.bounds>Fl_Chart</A></LI>
-<LI>box: <A href=Fl_Widget.html#Fl_Widget.box>Fl_Widget</A></LI>
-<LI>buffer: <A HREF="Fl_Text_Display.html#Fl_Text_Display.buffer">Fl_Text_Display</A></LI>
-</UL>
-<H3>C</H3><UL>
-<LI>call_modify_callbacks: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.call_modify_callbacks">Fl_Text_Buffer</A></LI>
-<LI>callback: <A href=Fl_Menu_Item.html#Fl_Menu_Item.callback>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.callback>Fl_Widget</A></LI>
-<LI>can_do: <A href=Fl_Gl_Window.html#Fl_Gl_Window.can_do>Fl_Gl_Window</A></LI>
-<LI>can_do_overlay: <A href=Fl_Gl_Window.html#Fl_Gl_Window.can_do_overlay>Fl_Gl_Window</A></LI>
-<LI>changed: <A href="Fl_Valuator.html#Fl_Valuator.changed">Fl_Valuator</A>,
- <A href=Fl_Choice.html#Fl_Choice.changed>Fl_Choice</A>,
- <A href=Fl_Widget.html#Fl_Widget.changed>Fl_Widget</A></LI>
-<LI>character: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.character">Fl_Text_Buffer</A></LI>
-<LI>character_width: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.character_width">Fl_Text_Buffer</A></LI>
-<LI>check_all: <A href=Fl_Check_Browser.html#Fl_Check_Browser.check_all>Fl_Check_Browser</A></LI>
-<LI>check_none: <A href=Fl_Check_Browser.html#Fl_Check_Browser.check_none>Fl_Check_Browser</A></LI>
-<LI>checkbox: <A href=Fl_Menu_Item.html#Fl_Menu_Item.checkbox>Fl_Menu_Item</A></LI>
-<LI>checked: <A href=Fl_Check_Browser.html#Fl_Check_Browser.checked>Fl_Check_Browser</A></LI>
-<LI>child: <A href=Fl_Group.html#Fl_Group.child>Fl_Group</A></LI>
-<LI>children: <A href=Fl_Group.html#Fl_Group.children>Fl_Group</A></LI>
-<LI>clamp: <A href="Fl_Valuator.html#Fl_Valuator.clamp">Fl_Valuator</A></LI>
-<LI>clear: <A HREF="Fl_File_Icon.html#Fl_File_Icon.clear">Fl_File_Icon</A>,
- <A href="Fl_Group.html#Fl_Group.clear">Fl_Group</A>,
- <A href=Fl_Browser.html#Fl_Browser.clear>Fl_Browser</A>,
- <A href=Fl_Button.html#Fl_Button.clear>Fl_Button</A>,
- <A href=Fl_Chart.html#Fl_Chart.clear>Fl_Chart</A>,
- <A href=Fl_Check_Browser.html#Fl_Check_Browser.clear>Fl_Check_Browser</A>,
- <A href=Fl_Input_Choice.html#Fl_Input_Choice.clear>Fl_Input_Choice</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.clear>Fl_Menu_</A>,
- <A href=Fl_Menu_Item.html#Fl_Menu_Item.clear>Fl_Menu_Item</A></LI>
-<LI>clear_border: <A href=Fl_Window.html#Fl_Window.clear_border>Fl_Window</A></LI>
-<LI>clear_changed: <A href="Fl_Valuator.html#Fl_Valuator.clear_changed">Fl_Valuator</A>,
- <A href=Fl_Choice.html#Fl_Choice.clear_changed>Fl_Choice</A>,
- <A href=Fl_Widget.html#Fl_Widget.clear_changed>Fl_Widget</A></LI>
-<LI>clear_output: <A href=Fl_Widget.html#Fl_Widget.clear_output>Fl_Widget</A></LI>
-<LI>clear_overlay: <A href=Fl_Menu_Window.html#Fl_Menu_Window.clear_overlay>Fl_Menu_Window</A></LI>
-<LI>clear_rectangular: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.clear_rectangular">Fl_Text_Buffer</A></LI>
-<LI>clear_visible: <A href=Fl_Widget.html#Fl_Widget.clear_visible>Fl_Widget</A></LI>
-<LI>clear_visible_focus: <A href=Fl_Widget.html#Fl_Widget.clear_visible_focus>Fl_Widget</A></LI>
-<LI>color: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.color">Fl_File_Chooser</A>,
- <A HREF="Fl_Tooltip.html#Fl_Tooltip.color">Fl_Tooltip</A>,
- <A href=Fl_Widget.html#Fl_Widget.color>Fl_Widget</A></LI>
-<LI>color_average: <A href="Fl_Image.html#Fl_Image.color_average">Fl_Image</A></LI>
-<LI>column_char: <A href=Fl_Browser.html#Fl_Browser.column_char>Fl_Browser</A></LI>
-<LI>column_widths: <A href=Fl_Browser.html#Fl_Browser.column_widths>Fl_Browser</A></LI>
-<LI>contains: <A href=Fl_Widget.html#Fl_Widget.contains>Fl_Widget</A></LI>
-<LI>context: <A href=Fl_Gl_Window.html#Fl_Gl_Window.context>Fl_Gl_Window</A></LI>
-<LI>context_valid: <A href=Fl_Gl_Window.html#Fl_Gl_Window.context_valid>Fl_Gl_Window</A></LI>
-<LI>copy: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.copy">Fl_Text_Buffer</A>,
- <A href="Fl_Image.html#Fl_Image.copy">Fl_Image</A>,
- <A href="Fl_Input_.html#Fl_Input_.copy">Fl_Input_</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.copy>Fl_Menu_</A></LI>
-<LI>copy_cuts: <A href="Fl_Input_.html#Fl_Input_.copy_cuts">Fl_Input_</A></LI>
-<LI>copy_label: <A href=Fl_Widget.html#Fl_Widget.copy_label>Fl_Widget</A></LI>
-<LI>count: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.count">Fl_File_Chooser</A>,
- <A href="Fl_Image.html#Fl_Image.count">Fl_Image</A></LI>
-<LI>count_displayed_characters: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.count_displayed_characters">Fl_Text_Buffer</A></LI>
-<LI>count_lines: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.count_lines">Fl_Text_Buffer</A></LI>
-<LI>current: <A href=Fl_Group.html#Fl_Group.current>Fl_Group</A>,
- <A href=Fl_Window.html#Fl_Window.current>Fl_Window</A></LI>
-<LI>cursor: <A href=Fl_Window.html#Fl_Window.cursor>Fl_Window</A></LI>
-<LI>cursor_color: <A HREF="Fl_Text_Display.html#Fl_Text_Display.cursor_color">Fl_Text_Display</A>,
- <A href="Fl_Value_Input.html#Fl_Value_Input.cursor_color">Fl_Value_Input</A>,
- <A href=Fl_Input.html#Fl_Input.cursor_color>Fl_Input</A></LI>
-<LI>cursor_style: <A HREF="Fl_Text_Display.html#Fl_Text_Display.cursor_style">Fl_Text_Display</A></LI>
-<LI>cut: <A href="Fl_Input_.html#Fl_Input_.cut">Fl_Input_</A></LI>
-</UL>
-<H3>D</H3><UL>
-<LI>d: <A href="Fl_Image.html#Fl_Image.d">Fl_Image</A></LI>
-<LI>damage: <A href=Fl_Widget.html#Fl_Widget.damage>Fl_Widget</A></LI>
-<LI>data: <A href="Fl_Image.html#Fl_Image.data">Fl_Image</A>,
- <A href=Fl_Browser.html#Fl_Browser.data>Fl_Browser</A></LI>
-<LI>deactivate: <A href=Fl_Menu_Item.html#Fl_Menu_Item.deactivate>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.deactivate>Fl_Widget</A></LI>
-<LI>default_callback: <A href=Fl_Widget.html#Fl_Widget.default_callback>Fl_Widget</A></LI>
-<LI>default_key_function: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.default_key_function">Fl_Text_Editor</A></LI>
-<LI>deimage: <A href=Fl_Widget.html#Fl_Widget.deimage>Fl_Widget</A></LI>
-<LI>delay: <A HREF="Fl_Tooltip.html#Fl_Tooltip.delay">Fl_Tooltip</A></LI>
-<LI>deleteEntry: <a href="Fl_Preferences.html#Fl_Preferences.deleteEntry">Fl_Preferences</a></LI>
-<LI>deleteGroup: <a href="Fl_Preferences.html#Fl_Preferences.deleteGroup">Fl_Preferences</a></LI>
-<LI>deleting: <A href="Fl_Browser_.html#Fl_Browser_.deleting">Fl_Browser_</A></LI>
-<LI>desaturate: <A href="Fl_Image.html#Fl_Image.desaturate">Fl_Image</A></LI>
-<LI>deselect: <A href="Fl_Browser_.html#Fl_Browser_.deselect">Fl_Browser_</A>,
- <A href=Fl_Hold_Browser.html#Fl_Hold_Browser.deselect>Fl_Hold_Browser</A>,
- <A href=Fl_Multi_Browser.html#Fl_Multi_Browser.deselect>Fl_Multi_Browser</A>,
- <A href=Fl_Select_Browser.html#Fl_Select_Browser.deselect>Fl_Select_Browser</A></LI>
-<LI>direction: <A href=Fl_Timer.html#Fl_Timer.direction>Fl_Timer</A></LI>
-<LI>directory: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.directory">Fl_File_Chooser</A>,
- <A HREF="Fl_Help_View.html#Fl_Help_View.directory">Fl_Help_View</A></LI>
-<LI>disable: <A HREF="Fl_Tooltip.html#Fl_Tooltip.disable">Fl_Tooltip</A></LI>
-<LI>display: <A href="Fl_Browser_.html#Fl_Browser_.display">Fl_Browser_</A></LI>
-<LI>displayed: <A href="Fl_Browser_.html#Fl_Browser_.displayed">Fl_Browser_</A></LI>
-<LI>do_callback: <A href=Fl_Menu_Item.html#Fl_Menu_Item.do_callback>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.do_callback>Fl_Widget</A></LI>
-<LI>down_box: <A href="Fl_File_Input.html#Fl_File_Input.down_box">Fl_File_Input</A>,
- <A href=Fl_Button.html#Fl_Button.down_box>Fl_Button</A>,
- <A href=Fl_Choice.html#Fl_Choice.down_box>Fl_Choice</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.down_box>Fl_Menu_</A></LI>
-<LI>draw: <A HREF="Fl_File_Icon.html#Fl_File_Icon.draw">Fl_File_Icon</A>,
- <A href="Fl_Browser_.html#Fl_Browser_.draw">Fl_Browser_</A>,
- <A href="Fl_Image.html#Fl_Image.draw">Fl_Image</A>,
- <A href=Fl_Gl_Window.html#Fl_Gl_Window.draw>Fl_Gl_Window</A></LI>
-<LI>draw_empty: <A href="Fl_Image.html#Fl_Image.draw_empty">Fl_Image</A></LI>
-<LI>draw_overlay: <A href=Fl_Gl_Window.html#Fl_Gl_Window.draw_overlay>Fl_Gl_Window</A>,
- <A href=Fl_Overlay_Window.html#Fl_Overlay_Window.draw_overlay>Fl_Overlay_Window</A></LI>
-<LI>drawtext: <A href="Fl_Input_.html#Fl_Input_.drawtext">Fl_Input_</A></LI>
-</UL>
-<H3>E</H3><UL>
-<LI>enable: <A HREF="Fl_Tooltip.html#Fl_Tooltip.enable">Fl_Tooltip</A></LI>
-<LI>enabled: <A HREF="Fl_Tooltip.html#Fl_Tooltip.enabled">Fl_Tooltip</A></LI>
-<LI>end: <A href=Fl_Group.html#Fl_Group.end>Fl_Group</A></LI>
-<LI>enter: <A HREF="Fl_Tooltip.html#Fl_Tooltip.enter">Fl_Tooltip</A></LI>
-<LI>enter_area: <A HREF="Fl_Tooltip.html#Fl_Tooltip.enter_area">Fl_Tooltip</A></LI>
-<LI>entries: <a href="Fl_Preferences.html#Fl_Preferences.entries">Fl_Preferences</a></LI>
-<LI>entry: <a href="Fl_Preferences.html#Fl_Preferences.entry">Fl_Preferences</a></LI>
-<LI>entryExists: <a href="Fl_Preferences.html#Fl_Preferences.entryExists">Fl_Preferences</a></LI>
-<LI>exit: <A HREF="Fl_Tooltip.html#Fl_Tooltip.exit">Fl_Tooltip</A></LI>
-<LI>expand_character: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.expand_character">Fl_Text_Buffer</A></LI>
-</UL>
-<H3>F</H3><UL>
-<LI>filename: <A HREF="Fl_Help_View.html#Fl_Help_View.filename">Fl_Help_View</A></LI>
-<LI>filetype: <A HREF="Fl_File_Browser.html#Fl_File_Browser.filetype">Fl_File_Browser</A></LI>
-<LI>filter: <A HREF="Fl_File_Browser.html#Fl_File_Browser.filter">Fl_File_Browser</A>,
- <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.filter">Fl_File_Chooser</A></LI>
-<LI>filter_value: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.filter_value">Fl_File_Chooser</A></LI>
-<LI>find: <A HREF="Fl_File_Icon.html#Fl_File_Icon.find">Fl_File_Icon</A>,
- <A href="Fl_Shared_Image.html#Fl_Shared_Image.find">Fl_Shared_Image</A>,
- <A href=Fl_Group.html#Fl_Group.find>Fl_Group</A></LI>
-<LI>find_item: <A href="Fl_Browser_.html#Fl_Browser_.find_item">Fl_Browser_</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.find_item>Fl_Menu_</A></LI>
-<LI>findchar_backward: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.findchar_backward">Fl_Text_Buffer</A></LI>
-<LI>findchar_forward: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.findchar_forward">Fl_Text_Buffer</A></LI>
-<LI>findchars_backward: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.findchars_backward">Fl_Text_Buffer</A></LI>
-<LI>findchars_forward: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.findchars_forward">Fl_Text_Buffer</A></LI>
-<LI>first: <A HREF="Fl_File_Icon.html#Fl_File_Icon.first">Fl_File_Icon</A></LI>
-<LI>font: <A HREF="Fl_Tooltip.html#Fl_Tooltip.font">Fl_Tooltip</A></LI>
-<LI>format: <A href="Fl_Valuator.html#Fl_Valuator.format">Fl_Valuator</A>,
- <a href=Fl_Spinner.html#Fl_Spinner.format>Fl_Spinner</a></LI>
-<LI>format_char: <A href=Fl_Browser.html#Fl_Browser.format_char>Fl_Browser</A></LI>
-<LI>free_position: <A href=Fl_Window.html#Fl_Window.free_position>Fl_Window</A></LI>
-<LI>full_height: <A href="Fl_Browser_.html#Fl_Browser_.full_height">Fl_Browser_</A></LI>
-<LI>full_width: <A href="Fl_Browser_.html#Fl_Browser_.full_width">Fl_Browser_</A></LI>
-<LI>fullscreen: <A href=Fl_Window.html#Fl_Window.fullscreen>Fl_Window</A></LI>
-<LI>fullscreen_off: <A href=Fl_Window.html#Fl_Window.fullscreen_off>Fl_Window</A></LI>
-</UL>
-<H3>G</H3><UL>
-<LI>g: <A href=Fl_Color_Chooser.html#Fl_Color_Chooser.g>Fl_Color_Chooser</A></LI>
-<LI>get: <A href="Fl_Shared_Image.html#Fl_Shared_Image.get">Fl_Shared_Image</A>,
- <a href="Fl_Preferences.html#Fl_Preferences.get">Fl_Preferences</a></LI>
-<LI>getUserdataPath: <a href="Fl_Preferences.html#Fl_Preferences.getUserdataPath">Fl_Preferences</a></LI>
-<LI>global: <A href=Fl_Menu_.html#Fl_Menu_.global>Fl_Menu_</A></LI>
-<LI>group: <a href="Fl_Preferences.html#Fl_Preferences.group">Fl_Preferences</a></LI>
-<LI>groupExists: <a href="Fl_Preferences.html#Fl_Preferences.groupExists">Fl_Preferences</a></LI>
-<LI>groups: <a href="Fl_Preferences.html#Fl_Preferences.groups">Fl_Preferences</a></LI>
-</UL>
-<H3>H</H3><UL>
-<LI>h: <A href="Fl_Image.html#Fl_Image.h">Fl_Image</A>,
- <A href=Fl_Widget.html#Fl_Widget.h>Fl_Widget</A></LI>
-<LI>handle: <A href="Fl_Browser_.html#Fl_Browser_.handle">Fl_Browser_</A>,
- <A href=Fl_Widget.html#Fl_Widget.handle>Fl_Widget</A></LI>
-<LI>handletext: <A href="Fl_Input_.html#Fl_Input_.handletext">Fl_Input_</A></LI>
-<LI>has_scrollbar: <A href="Fl_Browser_.html#Fl_Browser_.has_scrollbar">Fl_Browser_</A></LI>
-<LI>hide: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.hide">Fl_File_Chooser</A>,
- <A HREF="Fl_Help_Dialog.html#Fl_Help_Dialog.hide">Fl_Help_Dialog</A>,
- <A href=Fl_Browser.html#Fl_Browser.hide>Fl_Browser</A>,
- <A href=Fl_Gl_Window.html#Fl_Gl_Window.hide>Fl_Gl_Window</A>,
- <A href=Fl_Menu_Item.html#Fl_Menu_Item.hide>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.hide>Fl_Widget</A>,
- <A href=Fl_Window.html#Fl_Window.hide>Fl_Window</A></LI>
-<LI>hide_cursor: <A HREF="Fl_Text_Display.html#Fl_Text_Display.hide_cursor">Fl_Text_Display</A></LI>
-<LI>highlight: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.highlight">Fl_Text_Buffer</A></LI>
-<LI>highlight_data: <A HREF="Fl_Text_Display.html#Fl_Text_Display.highlight_data">Fl_Text_Display</A></LI>
-<LI>highlight_position: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.highlight_position">Fl_Text_Buffer</A></LI>
-<LI>highlight_rectangular: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.highlight_rectangular">Fl_Text_Buffer</A></LI>
-<LI>highlight_selection: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.highlight_selection">Fl_Text_Buffer</A></LI>
-<LI>highlight_text: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.highlight_text">Fl_Text_Buffer</A></LI>
-<LI>hotspot: <A href=Fl_Window.html#Fl_Window.hotspot>Fl_Window</A></LI>
-<LI>hour: <A href=Fl_Clock.html#Fl_Clock.hour>Fl_Clock</A>,
- <A href=Fl_Clock_Output.html#Fl_Clock_Output.hour>Fl_Clock_Output</A></LI>
-<LI>hoverdelay: <A HREF="Fl_Tooltip.html#Fl_Tooltip.hoverdelay">Fl_Tooltip</A></LI>
-<LI>hposition: <A href="Fl_Browser_.html#Fl_Browser_.hposition">Fl_Browser_</A></LI>
-<LI>hsv2rgb: <A href=Fl_Color_Chooser.html#Fl_Color_Chooser.hsv2rgb>Fl_Color_Chooser</A></LI>
-<LI>hsv: <A href=Fl_Color_Chooser.html#Fl_Color_Chooser.hsv>Fl_Color_Chooser</A></LI>
-<LI>hue: <A href=Fl_Color_Chooser.html#Fl_Color_Chooser.hue>Fl_Color_Chooser</A></LI>
-</UL>
-<H3>I</H3><UL>
-<LI>iconize: <A href=Fl_Window.html#Fl_Window.iconize>Fl_Window</A></LI>
-<LI>iconlabel: <A href=Fl_Window.html#Fl_Window.iconlabel>Fl_Window</A></LI>
-<LI>iconsize: <A HREF="Fl_File_Browser.html#Fl_File_Browser.iconsize">Fl_File_Browser</A>,
- <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.iconsize">Fl_File_Chooser</A></LI>
-<LI>image: <A href="Fl_Tiled_Image.html#Fl_Tiled_Image.image">Fl_Tiled_Image</A>,
- <A href=Fl_Widget.html#Fl_Widget.image>Fl_Widget</A></LI>
-<LI>images: <A href="Fl_Shared_Image.html#Fl_Shared_Image.images">Fl_Shared_Image</A></LI>
-<LI>in_selection: <A HREF="Fl_Text_Display.html#Fl_Text_Display.in_selection">Fl_Text_Display</A></LI>
-<LI>inactive: <A href="Fl_Image.html#Fl_Image.inactive">Fl_Image</A></LI>
-<LI>incr_height: <A href="Fl_Browser_.html#Fl_Browser_.incr_height">Fl_Browser_</A></LI>
-<LI>increment: <A href="Fl_Valuator.html#Fl_Valuator.increment">Fl_Valuator</A></LI>
-<LI>index: <A href=Fl_Input.html#Fl_Input.index>Fl_Input</A>,
- <A href=Fl_Output.html#Fl_Output.index>Fl_Output</A></LI>
-<LI>init_sizes: <A href=Fl_Group.html#Fl_Group.init_sizes>Fl_Group</A></LI>
-<LI>input: <A href=Fl_Input_Choice.html#Fl_Input_Choice.input>Fl_Input_Choice</A></LI>
-<LI>input_type: <A href="Fl_Input_.html#Fl_Input_.input_type">Fl_Input_</A></LI>
-<LI>insert: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.insert">Fl_Text_Buffer</A>,
- <A HREF="Fl_Text_Display.html#Fl_Text_Display.insert">Fl_Text_Display</A>,
- <A href="Fl_Input_.html#Fl_Input_.insert">Fl_Input_</A>,
- <A href=Fl_Browser.html#Fl_Browser.insert>Fl_Browser</A>,
- <A href=Fl_Chart.html#Fl_Chart.insert>Fl_Chart</A>,
- <A href=Fl_Group.html#Fl_Group.insert>Fl_Group</A></LI>
-<LI>insert_column: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.insert_column">Fl_Text_Buffer</A></LI>
-<LI>insert_mode: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.insert_mode">Fl_Text_Editor</A></LI>
-<LI>insert_position: <A HREF="Fl_Text_Display.html#Fl_Text_Display.insert_position">Fl_Text_Display</A></LI>
-<LI>insertfile: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.insertfile">Fl_Text_Buffer</A></LI>
-<LI>inserting: <A href="Fl_Browser_.html#Fl_Browser_.inserting">Fl_Browser_</A></LI>
-<LI>inside: <A href=Fl_Widget.html#Fl_Widget.inside>Fl_Widget</A></LI>
-<LI>invalidate: <A href=Fl_Gl_Window.html#Fl_Gl_Window.invalidate>Fl_Gl_Window</A></LI>
-<LI>item_draw: <A href="Fl_Browser_.html#Fl_Browser_.item_draw">Fl_Browser_</A></LI>
-<LI>item_first: <A href="Fl_Browser_.html#Fl_Browser_.item_first">Fl_Browser_</A></LI>
-<LI>item_height: <A href="Fl_Browser_.html#Fl_Browser_.item_height">Fl_Browser_</A></LI>
-<LI>item_next: <A href="Fl_Browser_.html#Fl_Browser_.item_next">Fl_Browser_</A></LI>
-<LI>item_pathname: <A href=Fl_Menu_.html#Fl_Menu_.item_pathname>Fl_Menu_</A></LI>
-<LI>item_prev: <A href="Fl_Browser_.html#Fl_Browser_.item_prev">Fl_Browser_</A></LI>
-<LI>item_quick_height: <A href="Fl_Browser_.html#Fl_Browser_.item_quick_height">Fl_Browser_</A></LI>
-<LI>item_select: <A href="Fl_Browser_.html#Fl_Browser_.item_select">Fl_Browser_</A></LI>
-<LI>item_selected: <A href="Fl_Browser_.html#Fl_Browser_.item_selected">Fl_Browser_</A></LI>
-<LI>item_width: <A href="Fl_Browser_.html#Fl_Browser_.item_width">Fl_Browser_</A></LI>
-</UL>
-<H3>K</H3><UL>
-<LI>kf_backspace: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_backspace">Fl_Text_Editor</A></LI>
-<LI>kf_c_s_move: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_c_s_move">Fl_Text_Editor</A></LI>
-<LI>kf_copy: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_copy">Fl_Text_Editor</A></LI>
-<LI>kf_ctrl_move: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_ctrl_move">Fl_Text_Editor</A></LI>
-<LI>kf_cut: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_cut">Fl_Text_Editor</A></LI>
-<LI>kf_default: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_default">Fl_Text_Editor</A></LI>
-<LI>kf_delete: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_delete">Fl_Text_Editor</A></LI>
-<LI>kf_down: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_down">Fl_Text_Editor</A></LI>
-<LI>kf_end: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_end">Fl_Text_Editor</A></LI>
-<LI>kf_enter: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_enter">Fl_Text_Editor</A></LI>
-<LI>kf_home: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_home">Fl_Text_Editor</A></LI>
-<LI>kf_ignore: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_ignore">Fl_Text_Editor</A></LI>
-<LI>kf_insert: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_insert">Fl_Text_Editor</A></LI>
-<LI>kf_left: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_left">Fl_Text_Editor</A></LI>
-<LI>kf_move: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_move">Fl_Text_Editor</A></LI>
-<LI>kf_page_down: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_page_down">Fl_Text_Editor</A></LI>
-<LI>kf_page_up: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_page_up">Fl_Text_Editor</A></LI>
-<LI>kf_paste: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_paste">Fl_Text_Editor</A></LI>
-<LI>kf_right: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_right">Fl_Text_Editor</A></LI>
-<LI>kf_select_all: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_select_all">Fl_Text_Editor</A></LI>
-<LI>kf_shift_move: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_shift_move">Fl_Text_Editor</A></LI>
-<LI>kf_up: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.kf_up">Fl_Text_Editor</A></LI>
-</UL>
-<H3>L</H3><UL>
-<LI>label: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.label">Fl_File_Chooser</A>,
- <A HREF="Fl_File_Icon.html#Fl_File_Icon.label">Fl_File_Icon</A>,
- <A href="Fl_Image.html#Fl_Image.label">Fl_Image</A>,
- <A href=Fl_Menu_Item.html#Fl_Menu_Item.label>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.label>Fl_Widget</A>,
- <A href=Fl_Window.html#Fl_Window.label>Fl_Window</A></LI>
-<LI>labelcolor: <A href=Fl_Menu_Item.html#Fl_Menu_Item.labelcolor>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.labelcolor>Fl_Widget</A></LI>
-<LI>labelfont: <A href=Fl_Menu_Item.html#Fl_Menu_Item.labelfont>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.labelfont>Fl_Widget</A></LI>
-<LI>labelsize: <A href=Fl_Menu_Item.html#Fl_Menu_Item.labelsize>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.labelsize>Fl_Widget</A></LI>
-<LI>labeltype: <A HREF="Fl_File_Icon.html#Fl_File_Icon.labeltype">Fl_File_Icon</A>,
- <A href=Fl_Menu_Item.html#Fl_Menu_Item.labeltype>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.labeltype>Fl_Widget</A></LI>
-<LI>ld: <A href="Fl_Image.html#Fl_Image.ld">Fl_Image</A></LI>
-<LI>leftedge: <A href="Fl_Browser_.html#Fl_Browser_.leftedge">Fl_Browser_</A></LI>
-<LI>length: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.length">Fl_Text_Buffer</A></LI>
-<LI>line_end: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.line_end">Fl_Text_Buffer</A></LI>
-<LI>line_start: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.line_start">Fl_Text_Buffer</A></LI>
-<LI>line_text: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.line_text">Fl_Text_Buffer</A></LI>
-<LI>lineboundary: <A href="Fl_Input_.html#Fl_Input_.lineboundary">Fl_Input_</A></LI>
-<LI>linesize: <A href=Fl_Scrollbar.html#Fl_Scrollbar.linesize>Fl_Scrollbar</A></LI>
-<LI>link: <A HREF="Fl_Help_View.html#Fl_Help_View.link">Fl_Help_View</A></LI>
-<LI>load: <A HREF="Fl_File_Browser.html#Fl_File_Browser.load">Fl_File_Browser</A>,
- <A HREF="Fl_File_Icon.html#Fl_File_Icon.load">Fl_File_Icon</A>,
- <A HREF="Fl_Help_Dialog.html#Fl_Help_Dialog.load">Fl_Help_Dialog</A>,
- <A HREF="Fl_Help_View.html#Fl_Help_View.load">Fl_Help_View</A>,
- <A href=Fl_Browser.html#Fl_Browser.load>Fl_Browser</A></LI>
-<LI>load_fti: <A HREF="Fl_File_Icon.html#Fl_File_Icon.load_fti">Fl_File_Icon</A></LI>
-<LI>load_system_icons: <A HREF="Fl_File_Icon.html#Fl_File_Icon.load_system_icons">Fl_File_Icon</A></LI>
-<LI>load_xpm: <A HREF="Fl_File_Icon.html#Fl_File_Icon.load_xpm">Fl_File_Icon</A></LI>
-<LI>loadfile: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.loadfile">Fl_Text_Buffer</A></LI>
-<LI>lstep: <A href=Fl_Counter.html#Fl_Counter.lstep>Fl_Counter</A></LI>
-</UL>
-<H3>M</H3><UL>
-<LI>make_current: <A href=Fl_Gl_Window.html#Fl_Gl_Window.make_current>Fl_Gl_Window</A>,
- <A href=Fl_Window.html#Fl_Window.make_current>Fl_Window</A></LI>
-<LI>make_overlay_current: <A href=Fl_Gl_Window.html#Fl_Gl_Window.make_overlay_current>Fl_Gl_Window</A></LI>
-<LI>mark: <A href="Fl_Input_.html#Fl_Input_.mark">Fl_Input_</A></LI>
-<LI>maximum: <A href="Fl_Progress.html#Fl_Progress.maximum">Fl_Progress</A>,
- <A href="Fl_Valuator.html#Fl_Valuator.maximum">Fl_Valuator</A>,
- <a href=Fl_Spinner.html#Fl_Spinner.maximum>Fl_Spinner</a></LI>
-<LI>maximum_size: <A href="Fl_Input_.html#Fl_Input_.maximum_size">Fl_Input_</A></LI>
-<LI>maxsize: <A href=Fl_Chart.html#Fl_Chart.maxsize>Fl_Chart</A></LI>
-<LI>maybe_do_callback: <A href="Fl_Input_.html#Fl_Input_.maybe_do_callback">Fl_Input_</A></LI>
-<LI>menu: <A href=Fl_Input_Choice.html#Fl_Input_Choice.menu>Fl_Input_Choice</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.menu>Fl_Menu_</A></LI>
-<LI>menubutton: <A href=Fl_Input_Choice.html#Fl_Input_Choice.menubutton>Fl_Input_Choice</A></LI>
-<LI>middleline: <A href=Fl_Browser.html#Fl_Browser.middleline>Fl_Browser</A></LI>
-<LI>minimum: <A href="Fl_Progress.html#Fl_Progress.minimum">Fl_Progress</A>,
- <A href="Fl_Valuator.html#Fl_Valuator.minimum">Fl_Valuator</A>,
- <a href=Fl_Spinner.html#Fl_Spinner.minimum>Fl_Spinner</a></LI>
-<LI>minute: <A href=Fl_Clock.html#Fl_Clock.minute>Fl_Clock</A>,
- <A href=Fl_Clock_Output.html#Fl_Clock_Output.minute>Fl_Clock_Output</A></LI>
-<LI>modal: <A href=Fl_Window.html#Fl_Window.modal>Fl_Window</A></LI>
-<LI>mode: <A href=Fl_Gl_Window.html#Fl_Gl_Window.mode>Fl_Gl_Window</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.mode>Fl_Menu_</A></LI>
-<LI>move: <A href=Fl_Browser.html#Fl_Browser.move>Fl_Browser</A></LI>
-<LI>move_down: <A HREF="Fl_Text_Display.html#Fl_Text_Display.move_down">Fl_Text_Display</A></LI>
-<LI>move_left: <A HREF="Fl_Text_Display.html#Fl_Text_Display.move_left">Fl_Text_Display</A></LI>
-<LI>move_right: <A HREF="Fl_Text_Display.html#Fl_Text_Display.move_right">Fl_Text_Display</A></LI>
-<LI>move_up: <A HREF="Fl_Text_Display.html#Fl_Text_Display.move_up">Fl_Text_Display</A></LI>
-<LI>mvalue: <A href=Fl_Menu_.html#Fl_Menu_.mvalue>Fl_Menu_</A></LI>
-</UL>
-<H3>N</H3><UL>
-<LI>name: <A href="Fl_Shared_Image.html#Fl_Shared_Image.name">Fl_Shared_Image</A></LI>
-<LI>nchecked: <A href=Fl_Check_Browser.html#Fl_Check_Browser.nchecked>Fl_Check_Browser</A></LI>
-<LI>new_list: <A href="Fl_Browser_.html#Fl_Browser_.new_list">Fl_Browser_</A></LI>
-<LI>next: <A HREF="Fl_Wizard.html#Fl_Wizard.next">Fl_Wizard</A>,
- <A href=Fl_Menu_Item.html#Fl_Menu_Item.next>Fl_Menu_Item</A></LI>
-<LI>next_word: <A HREF="Fl_Text_Display.html#Fl_Text_Display.next_word">Fl_Text_Display</A></LI>
-<LI>nitems: <A href=Fl_Check_Browser.html#Fl_Check_Browser.nitems>Fl_Check_Browser</A></LI>
-<LI>non_modal: <A href=Fl_Window.html#Fl_Window.non_modal>Fl_Window</A></LI>
-<LI>null_substitution_character: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.null_substitution_character">Fl_Text_Buffer</A></LI>
-<LI>num_images: <A href="Fl_Shared_Image.html#Fl_Shared_Image.num_images">Fl_Shared_Image</A></LI>
-</UL>
-<H3>O</H3><UL>
-<LI>ok_label: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.ok_label">Fl_File_Chooser</A></LI>
-<LI>ortho: <A href=Fl_Gl_Window.html#Fl_Gl_Window.ortho>Fl_Gl_Window</A></LI>
-<LI>output: <A href=Fl_Widget.html#Fl_Widget.output>Fl_Widget</A></LI>
-<LI>outputfile: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.outputfile">Fl_Text_Buffer</A></LI>
-<LI>overlay_rectangular: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.overlay_rectangular">Fl_Text_Buffer</A></LI>
-<LI>overstrike: <A HREF="Fl_Text_Display.html#Fl_Text_Display.overstrike">Fl_Text_Display</A></LI>
-</UL>
-<H3>P</H3><UL>
-<LI>parent: <A href=Fl_Widget.html#Fl_Widget.parent>Fl_Widget</A></LI>
-<LI>pattern: <A HREF="Fl_File_Icon.html#Fl_File_Icon.pattern">Fl_File_Icon</A></LI>
-<LI>popup: <A href=Fl_Menu_Button.html#Fl_Menu_Button.popup>Fl_Menu_Button</A>,
- <A href=Fl_Menu_Item.html#Fl_Menu_Item.popup>Fl_Menu_Item</A></LI>
-<LI>position: <A href="Fl_Browser_.html#Fl_Browser_.position">Fl_Browser_</A>,
- <A href="Fl_Input_.html#Fl_Input_.position">Fl_Input_</A>,
- <A href=Fl_Browser.html#Fl_Browser.position>Fl_Browser</A>,
- <A href=Fl_Scroll.html#Fl_Scroll.position>Fl_Scroll</A>,
- <A href=Fl_Tile.html#Fl_Tile.position>Fl_Tile</A>,
- <A href=Fl_Widget.html#Fl_Widget.position>Fl_Widget</A></LI>
-<LI>position_style: <A HREF="Fl_Text_Display.html#Fl_Text_Display.position_style">Fl_Text_Display</A></LI>
-<LI>precision: <A href="Fl_Valuator.html#Fl_Valuator.precision">Fl_Valuator</A></LI>
-<LI>prev: <A HREF="Fl_Wizard.html#Fl_Wizard.prev">Fl_Wizard</A></LI>
-<LI>preview: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.preview">Fl_File_Chooser</A></LI>
-<LI>previous_word: <A HREF="Fl_Text_Display.html#Fl_Text_Display.previous_word">Fl_Text_Display</A></LI>
-<LI>primary_selection: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.primary_selection">Fl_Text_Buffer</A></LI>
-<LI>pulldown: <A href=Fl_Menu_Item.html#Fl_Menu_Item.pulldown>Fl_Menu_Item</A></LI>
-</UL>
-<H3>R</H3><UL>
-<LI>r: <A href=Fl_Color_Chooser.html#Fl_Color_Chooser.r>Fl_Color_Chooser</A></LI>
-<LI>radio: <A href=Fl_Menu_Item.html#Fl_Menu_Item.radio>Fl_Menu_Item</A></LI>
-<LI>range: <A href="Fl_Valuator.html#Fl_Valuator.range">Fl_Valuator</A>,
- <a href=Fl_Spinner.html#Fl_Spinner.range>Fl_Spinner</a></LI>
-<LI>readonly: <A href="Fl_Input_.html#Fl_Input_.readonly">Fl_Input_</A></LI>
-<LI>redisplay_range: <A HREF="Fl_Text_Display.html#Fl_Text_Display.redisplay_range">Fl_Text_Display</A></LI>
-<LI>redraw: <A href=Fl_Widget.html#Fl_Widget.redraw>Fl_Widget</A></LI>
-<LI>redraw_label: <A href=Fl_Widget.html#Fl_Widget.redraw_label>Fl_Widget</A></LI>
-<LI>redraw_line: <A href="Fl_Browser_.html#Fl_Browser_.redraw_line">Fl_Browser_</A>,
- <A href="Fl_Browser_.html#Fl_Browser_.redraw_lines">Fl_Browser_</A></LI>
-<LI>redraw_overlay: <A href=Fl_Gl_Window.html#Fl_Gl_Window.redraw_overlay>Fl_Gl_Window</A>,
- <A href=Fl_Overlay_Window.html#Fl_Overlay_Window.redraw_overlay>Fl_Overlay_Window</A></LI>
-<LI>refcount: <A href="Fl_Shared_Image.html#Fl_Shared_Image.refcount">Fl_Shared_Image</A></LI>
-<LI>release: <A href="Fl_Shared_Image.html#Fl_Shared_Image.release">Fl_Shared_Image</A></LI>
-<LI>reload: <A href="Fl_Shared_Image.html#Fl_Shared_Image.reload">Fl_Shared_Image</A></LI>
-<LI>remove: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.remove">Fl_Text_Buffer</A>,
- <A href=Fl_Browser.html#Fl_Browser.remove>Fl_Browser</A>,
- <A href=Fl_Group.html#Fl_Group.remove>Fl_Group</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.remove>Fl_Menu_</A></LI>
-<LI>remove_all_key_bindings: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.remove_all_key_bindings">Fl_Text_Editor</A></LI>
-<LI>remove_key_binding: <A HREF="Fl_Text_Editor.html#Fl_Text_Editor.remove_key_binding">Fl_Text_Editor</A></LI>
-<LI>remove_modify_callback: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.remove_modify_callback">Fl_Text_Buffer</A></LI>
-<LI>remove_rectangular: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.remove_rectangular">Fl_Text_Buffer</A></LI>
-<LI>remove_secondary_selection: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.remove_secondary_selection">Fl_Text_Buffer</A></LI>
-<LI>remove_selection: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.remove_selection">Fl_Text_Buffer</A></LI>
-<LI>replace: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.replace">Fl_Text_Buffer</A>,
- <A href="Fl_Input_.html#Fl_Input_.replace">Fl_Input_</A>,
- <A href=Fl_Chart.html#Fl_Chart.replace>Fl_Chart</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.replace>Fl_Menu_</A></LI>
-<LI>replace_rectangular: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.replace_rectangular">Fl_Text_Buffer</A></LI>
-<LI>replace_secondary_selection: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.replace_secondary_selection">Fl_Text_Buffer</A></LI>
-<LI>replace_selection: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.replace_selection">Fl_Text_Buffer</A></LI>
-<LI>replacing: <A href="Fl_Browser_.html#Fl_Browser_.replacing">Fl_Browser_</A></LI>
-<LI>rescan: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.rescan">Fl_File_Chooser</A></LI>
-<LI>resizable: <A href=Fl_Group.html#Fl_Group.resizable>Fl_Group</A></LI>
-<LI>resize: <A href="Fl_Browser_.html#Fl_Browser_.resize">Fl_Browser_</A>,
- <A href=Fl_Widget.html#Fl_Widget.resize>Fl_Widget</A>,
- <A href=Fl_Window.html#Fl_Window.resize>Fl_Window</A></LI>
-<LI>resizeable: <A href=Fl_Tile.html#Fl_Tile.resizeable>Fl_Tile</A></LI>
-<LI>rewind_lines: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.rewind_lines">Fl_Text_Buffer</A></LI>
-<LI>rgb2hsv: <A href=Fl_Color_Chooser.html#Fl_Color_Chooser.rgb2hsv>Fl_Color_Chooser</A></LI>
-<LI>rgb: <A href=Fl_Color_Chooser.html#Fl_Color_Chooser.rgb>Fl_Color_Chooser</A></LI>
-<LI>round: <A href="Fl_Valuator.html#Fl_Valuator.round">Fl_Valuator</A></LI>
-</UL>
-<H3>S</H3><UL>
-<LI>saturation: <A href=Fl_Color_Chooser.html#Fl_Color_Chooser.saturation>Fl_Color_Chooser</A></LI>
-<LI>savefile: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.savefile">Fl_Text_Buffer</A></LI>
-<LI>scroll: <A HREF="Fl_Text_Display.html#Fl_Text_Display.scroll">Fl_Text_Display</A></LI>
-<LI>scrollbar_align: <A HREF="Fl_Text_Display.html#Fl_Text_Display.scrollbar_align">Fl_Text_Display</A></LI>
-<LI>scrollbar_left: <A href="Fl_Browser_.html#Fl_Browser_.scrollbar_left">Fl_Browser_</A></LI>
-<LI>scrollbar_right: <A href="Fl_Browser_.html#Fl_Browser_.scrollbar_right">Fl_Browser_</A></LI>
-<LI>scrollbar_size: <A HREF="Fl.html#Fl.scrollbar_size">Fl</A></LI>
-<LI>scrollbar_width: <A HREF="Fl_Browser_.html#Fl_Browser_.scrollbar_width">Fl_Browser_</A>, <A HREF="Fl_Text_Display.html#Fl_Text_Display.scrollbar_width">Fl_Text_Display</A></LI>
-<LI>scrollvalue: <A href=Fl_Slider.html#Fl_Slider.scrollvalue>Fl_Slider</A></LI>
-<LI>search_backward: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.search_backward">Fl_Text_Buffer</A></LI>
-<LI>search_forward: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.search_forward">Fl_Text_Buffer</A></LI>
-<LI>second: <A href=Fl_Clock.html#Fl_Clock.second>Fl_Clock</A>,
- <A href=Fl_Clock_Output.html#Fl_Clock_Output.second>Fl_Clock_Output</A></LI>
-<LI>secondary_select: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.secondary_select">Fl_Text_Buffer</A></LI>
-<LI>secondary_select_rectangular: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.secondary_select_rectangular">Fl_Text_Buffer</A></LI>
-<LI>secondary_selection: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.secondary_selection">Fl_Text_Buffer</A></LI>
-<LI>secondary_selection_position: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.secondary_selection_position">Fl_Text_Buffer</A></LI>
-<LI>secondary_selection_text: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.secondary_selection_text">Fl_Text_Buffer</A></LI>
-<LI>secondary_unselect: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.secondary_unselect">Fl_Text_Buffer</A></LI>
-<LI>select: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.select">Fl_Text_Buffer</A>,
- <A href="Fl_Browser_.html#Fl_Browser_.select">Fl_Browser_</A>,
- <A href=Fl_Hold_Browser.html#Fl_Hold_Browser.select>Fl_Hold_Browser</A>,
- <A href=Fl_Multi_Browser.html#Fl_Multi_Browser.select>Fl_Multi_Browser</A>,
- <A href=Fl_Select_Browser.html#Fl_Select_Browser.select>Fl_Select_Browser</A></LI>
-<LI>select_only: <A href="Fl_Browser_.html#Fl_Browser_.select_only">Fl_Browser_</A></LI>
-<LI>select_rectangular: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.select_rectangular">Fl_Text_Buffer</A></LI>
-<LI>selected: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.selected">Fl_Text_Buffer</A></LI>
-<LI>selection: <A href="Fl_Browser_.html#Fl_Browser_.selection">Fl_Browser_</A></LI>
-<LI>selection_color: <A href=Fl_Widget.html#Fl_Widget.selection_color>Fl_Widget</A></LI>
-<LI>selection_position: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.selection_position">Fl_Text_Buffer</A></LI>
-<LI>selection_text: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.selection_text">Fl_Text_Buffer</A></LI>
-<LI>set: <A href=Fl_Button.html#Fl_Button.set>Fl_Button</A>,
- <A href=Fl_Menu_Item.html#Fl_Menu_Item.set>Fl_Menu_Item</A>,
- <a href="Fl_Preferences.html#Fl_Preferences.set">Fl_Preferences</a></LI>
-<LI>set_changed: <A href="Fl_Valuator.html#Fl_Valuator.set_changed">Fl_Valuator</A>,
- <A href=Fl_Choice.html#Fl_Choice.set_changed>Fl_Choice</A>,
- <A href=Fl_Widget.html#Fl_Widget.set_changed>Fl_Widget</A>,
- <A href=Fl_Check_Browser.html#Fl_Check_Browser.set_checked>Fl_Check_Browser</A></LI>
-<LI>set_modal: <A href=Fl_Window.html#Fl_Window.set_modal>Fl_Window</A></LI>
-<LI>set_non_modal: <A href=Fl_Window.html#Fl_Window.set_non_modal>Fl_Window</A></LI>
-<LI>set_output: <A href=Fl_Widget.html#Fl_Widget.set_output>Fl_Widget</A></LI>
-<LI>set_overlay: <A href=Fl_Menu_Window.html#Fl_Menu_Window.set_overlay>Fl_Menu_Window</A></LI>
-<LI>set_visible: <A href=Fl_Widget.html#Fl_Widget.set_visible>Fl_Widget</A></LI>
-<LI>set_visible_focus: <A href=Fl_Widget.html#Fl_Widget.set_visible_focus>Fl_Widget</A></LI>
-<LI>setonly: <A href=Fl_Button.html#Fl_Button.setonly>Fl_Button</A>,
- <A href=Fl_Menu_Item.html#Fl_Menu_Item.setonly>Fl_Menu_Item</A></LI>
-<LI>shortcut: <A href=Fl_Button.html#Fl_Button.shortcut>Fl_Button</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.shortcut>Fl_Menu_</A>,
- <A href=Fl_Menu_Item.html#Fl_Menu_Item.shortcut>Fl_Menu_Item</A></LI>
-<LI>show: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.show">Fl_File_Chooser</A>,
- <A HREF="Fl_Help_Dialog.html#Fl_Help_Dialog.show">Fl_Help_Dialog</A>,
- <A href=Fl_Browser.html#Fl_Browser.show>Fl_Browser</A>,
- <A href=Fl_Menu_Item.html#Fl_Menu_Item.show>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.show>Fl_Widget</A>,
- <A href=Fl_Window.html#Fl_Window.show>Fl_Window</A></LI>
-<LI>show_cursor: <A HREF="Fl_Text_Display.html#Fl_Text_Display.show_cursor">Fl_Text_Display</A></LI>
-<LI>show_insert_position: <A HREF="Fl_Text_Display.html#Fl_Text_Display.show_insert_position">Fl_Text_Display</A></LI>
-<LI>shown: <A href=Fl_Window.html#Fl_Window.shown>Fl_Window</A></LI>
-<LI>size: <A HREF="Fl_File_Icon.html#Fl_File_Icon.size">Fl_File_Icon</A>,
- <A HREF="Fl_Help_View.html#Fl_Help_View.size">Fl_Help_View</A>,
- <A HREF="Fl_Tooltip.html#Fl_Tooltip.size">Fl_Tooltip</A>,
- <A href=Fl_Browser.html#Fl_Browser.size>Fl_Browser</A>,
- <A href=Fl_Chart.html#Fl_Chart.size>Fl_Chart</A>,
- <A href=Fl_Input.html#Fl_Input.size>Fl_Input</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.size>Fl_Menu_</A>,
- <A href=Fl_Menu_Item.html#Fl_Menu_Item.size>Fl_Menu_Item</A>,
- <A href=Fl_Output.html#Fl_Output.size>Fl_Output</A>,
- <A href=Fl_Widget.html#Fl_Widget.size>Fl_Widget</A>,
- <a href="Fl_Preferences.html#Fl_Preferences.size">Fl_Preferences</a></LI>
-<LI>size_range: <A href=Fl_Window.html#Fl_Window.size_range>Fl_Window</A></LI>
-<LI>skip_displayed_characters: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.skip_displayed_characters">Fl_Text_Buffer</A></LI>
-<LI>skip_lines: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.skip_lines">Fl_Text_Buffer</A></LI>
-<LI>slider: <A href=Fl_Slider.html#Fl_Slider.slider>Fl_Slider</A></LI>
-<LI>slider_size: <A href=Fl_Slider.html#Fl_Slider.slider_size>Fl_Slider</A></LI>
-<LI>soft: <A href="Fl_Value_Input.html#Fl_Value_Input.soft">Fl_Value_Input</A>,
- <A href=Fl_Adjuster.html#Fl_Adjuster.soft>Fl_Adjuster</A>,
- <A href=Fl_Value_Output.html#Fl_Value_Output.soft>Fl_Value_Output</A></LI>
-<LI>spacing: <A href=Fl_Pack.html#Fl_Pack.spacing>Fl_Pack</A></LI>
-<LI>static_value: <A href=Fl_Input.html#Fl_Input.static_value>Fl_Input</A></LI>
-<LI>step: <A href="Fl_Valuator.html#Fl_Valuator.step">Fl_Valuator</A>,
- <a href=Fl_Spinner.html#Fl_Spinner.step>Fl_Spinner</a></LI>
-<LI>submenu: <A href=Fl_Menu_Item.html#Fl_Menu_Item.submenu>Fl_Menu_Item</A></LI>
-<LI>substitute_null_characters: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.substitute_null_characters">Fl_Text_Buffer</A></LI>
-<LI>suspended: <A href=Fl_Timer.html#Fl_Timer.suspended>Fl_Timer</A></LI>
-<LI>swap: <A href=Fl_Browser.html#Fl_Browser.swap>Fl_Browser</A></LI>
-<LI>swap_buffers: <A href=Fl_Gl_Window.html#Fl_Gl_Window.swap_buffers>Fl_Gl_Window</A></LI>
-</UL>
-<H3>T</H3><UL>
-<LI>tab_distance: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.tab_distance">Fl_Text_Buffer</A></LI>
-<LI>take_focus: <A href=Fl_Widget.html#Fl_Widget.take_focus>Fl_Widget</A></LI>
-<LI>takesevents: <A href=Fl_Widget.html#Fl_Widget.takesevents>Fl_Widget</A></LI>
-<LI>test_shortcut: <A href=Fl_Menu_.html#Fl_Menu_.test_shortcut>Fl_Menu_</A>,
- <A href=Fl_Menu_Item.html#Fl_Menu_Item.test_shortcut>Fl_Menu_Item</A></LI>
-<LI>text: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.text">Fl_Text_Buffer</A>,
- <A href=Fl_Browser.html#Fl_Browser.text>Fl_Browser</A>,
- <A href=Fl_Check_Browser.html#Fl_Check_Browser.text>Fl_Check_Browser</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.text>Fl_Menu_</A></LI>
-<LI>text_in_rectangle: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.text_in_rectangle">Fl_Text_Buffer</A></LI>
-<LI>text_range: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.text_range">Fl_Text_Buffer</A></LI>
-<LI>textcolor: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.textcolor">Fl_File_Chooser</A>,
- <A HREF="Fl_Help_View.html#Fl_Help_View.textcolor">Fl_Help_View</A>,
- <A HREF="Fl_Text_Display.html#Fl_Text_Display.textcolor">Fl_Text_Display</A>,
- <A HREF="Fl_Tooltip.html#Fl_Tooltip.textcolor">Fl_Tooltip</A>,
- <A href="Fl_Browser_.html#Fl_Browser_.textcolor">Fl_Browser_</A>,
- <A href="Fl_Value_Input.html#Fl_Value_Input.textcolor">Fl_Value_Input</A>,
- <A href=Fl_Input.html#Fl_Input.textcolor>Fl_Input</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.textcolor>Fl_Menu_</A>,
- <A href=Fl_Output.html#Fl_Output.textcolor>Fl_Output</A>,
- <A href=Fl_Value_Output.html#Fl_Value_Output.textcolor>Fl_Value_Output</A>,
- <A href=Fl_Value_Slider.html#Fl_Value_Slider.textcolor>Fl_Value_Slider</A>,
- <a href=Fl_Spinner.html#Fl_Spinner.textcolor>Fl_Spinner</a></LI>
-<LI>textfont: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.textfont">Fl_File_Chooser</A>,
- <A HREF="Fl_Help_View.html#Fl_Help_View.textfont">Fl_Help_View</A>,
- <A HREF="Fl_Text_Display.html#Fl_Text_Display.textfont">Fl_Text_Display</A>,
- <A href="Fl_Browser_.html#Fl_Browser_.textfont">Fl_Browser_</A>,
- <A href="Fl_Value_Input.html#Fl_Value_Input.textfont">Fl_Value_Input</A>,
- <A href=Fl_Input.html#Fl_Input.textfont>Fl_Input</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.textfont>Fl_Menu_</A>,
- <A href=Fl_Output.html#Fl_Output.textfont>Fl_Output</A>,
- <A href=Fl_Value_Output.html#Fl_Value_Output.textfont>Fl_Value_Output</A>,
- <A href=Fl_Value_Slider.html#Fl_Value_Slider.textfont>Fl_Value_Slider</A>,
- <a href=Fl_Spinner.html#Fl_Spinner.textfont>Fl_Spinner</a></LI>
-<LI>textsize: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.textsize">Fl_File_Chooser</A>,
- <A HREF="Fl_Help_View.html#Fl_Help_View.textsize">Fl_Help_View</A>,
- <A HREF="Fl_Text_Display.html#Fl_Text_Display.textsize">Fl_Text_Display</A>,
- <A href="Fl_Browser_.html#Fl_Browser_.textsize">Fl_Browser_</A>,
- <A href="Fl_Value_Input.html#Fl_Value_Input.textsize">Fl_Value_Input</A>,
- <A href=Fl_Input.html#Fl_Input.textsize>Fl_Input</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.textsize>Fl_Menu_</A>,
- <A href=Fl_Output.html#Fl_Output.textsize>Fl_Output</A>,
- <A href=Fl_Value_Output.html#Fl_Value_Output.textsize>Fl_Value_Output</A>,
- <A href=Fl_Value_Slider.html#Fl_Value_Slider.textsize>Fl_Value_Slider</A>,
- <a href=Fl_Spinner.html#Fl_Spinner.textsize>Fl_Spinner</a></LI>
-<LI>title: <A HREF="Fl_Help_View.html#Fl_Help_View.title">Fl_Help_View</A></LI>
-<LI>tooltip: <A href="Fl_Widget.html#Fl_Widget.tooltip">Fl_Widget</A></LI>
-<LI>top: <A href="Fl_Browser_.html#Fl_Browser_.top">Fl_Browser_</A></LI>
-<LI>topline: <A HREF="Fl_Help_Dialog.html#Fl_Help_Dialog.topline">Fl_Help_Dialog</A>,
- <A HREF="Fl_Help_View.html#Fl_Help_View.topline">Fl_Help_View</A>,
- <A href=Fl_Browser.html#Fl_Browser.topline>Fl_Browser</A></LI>
-<LI>type: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.type">Fl_File_Chooser</A>,
- <A HREF="Fl_File_Icon.html#Fl_File_Icon.type">Fl_File_Icon</A>,
- <A href=Fl_Button.html#Fl_Button.type>Fl_Button</A>,
- <A href=Fl_Chart.html#Fl_Chart.type>Fl_Chart</A>,
- <A href=Fl_Counter.html#Fl_Counter.type>Fl_Counter</A>,
- <A href=Fl_Dial.html#Fl_Dial.type>Fl_Dial</A>,
- <A href=Fl_Menu_Button.html#Fl_Menu_Button.type>Fl_Menu_Button</A>,
- <A href=Fl_Scroll.html#Fl_Scroll.type>Fl_Scroll</A>,
- <A href=Fl_Slider.html#Fl_Slider.type>Fl_Slider</A>,
- <A href=Fl_Widget.html#Fl_Widget.type>Fl_Widget</A>,
- <a href=Fl_Spinner.html#Fl_Spinner.type>Fl_Spinner</a></LI>
-</UL>
-<H3>U</H3><UL>
-<LI>uncache: <A href="Fl_Image.html#Fl_Image.uncache">Fl_Image</A></LI>
-<LI>undo: <A href="Fl_Input_.html#Fl_Input_.undo">Fl_Input_</A></LI>
-<LI>unhighlight: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.unhighlight">Fl_Text_Buffer</A></LI>
-<LI>unselect: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.unselect">Fl_Text_Buffer</A></LI>
-<LI>unsubstitute_null_characters: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.unsubstitute_null_characters">Fl_Text_Buffer</A></LI>
-<LI>up_down_position: <A href="Fl_Input_.html#Fl_Input_.up_down_position">Fl_Input_</A></LI>
-<LI>user_data: <A href=Fl_Menu_Item.html#Fl_Menu_Item.user_data>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.user_data>Fl_Widget</A></LI>
-</UL>
-<H3>V</H3><UL>
-<LI>valid: <A href=Fl_Gl_Window.html#Fl_Gl_Window.valid>Fl_Gl_Window</A></LI>
-<LI>value: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.value">Fl_File_Chooser</A>,
- <A HREF="Fl_File_Icon.html#Fl_File_Icon.value">Fl_File_Icon</A>,
- <A HREF="Fl_Help_Dialog.html#Fl_Help_Dialog.value">Fl_Help_Dialog</A>,
- <A HREF="Fl_Help_View.html#Fl_Help_View.value">Fl_Help_View</A>,
- <A HREF="Fl_Wizard.html#Fl_Wizard.value">Fl_Wizard</A>,
- <A href="Fl_Progress.html#Fl_Progress.value">Fl_Progress</A>,
- <A href="Fl_Tabs.html#Fl_Tabs.value">Fl_Tabs</A>,
- <A href="Fl_Valuator.html#Fl_Valuator.value">Fl_Valuator</A>,
- <A href=Fl_Button.html#Fl_Button.value>Fl_Button</A>,
- <A href=Fl_Check_Browser.html#Fl_Check_Browser.value>Fl_Check_Browser</A>,
- <A href=Fl_Choice.html#Fl_Choice.value>Fl_Choice</A>,
- <A href=Fl_Clock.html#Fl_Clock.value>Fl_Clock</A>,
- <A href=Fl_Clock_Output.html#Fl_Clock_Output.value>Fl_Clock_Output</A>,
- <A href=Fl_Color_Chooser.html#Fl_Color_Chooser.value>Fl_Color_Chooser</A>,
- <A href=Fl_Hold_Browser.html#Fl_Hold_Browser.value>Fl_Hold_Browser</A>,
- <A href=Fl_Input.html#Fl_Input.value>Fl_Input</A>,
- <A href=Fl_Input_Choice.html#Fl_Input_Choice.value>Fl_Input_Choice</A>,
- <A href=Fl_Menu_.html#Fl_Menu_.value>Fl_Menu_</A>,
- <A href=Fl_Menu_Item.html#Fl_Menu_Item.value>Fl_Menu_Item</A>,
- <A href=Fl_Multi_Browser.html#Fl_Multi_Browser.value>Fl_Multi_Browser</A>,
- <A href=Fl_Output.html#Fl_Output.value>Fl_Output</A>,
- <A href=Fl_Positioner.html#Fl_Positioner.value>Fl_Positioner</A>,
- <A href=Fl_Scrollbar.html#Fl_Scrollbar.value>Fl_Scrollbar</A>,
- <A href=Fl_Select_Browser.html#Fl_Select_Browser.value>Fl_Select_Browser</A>,
- <A href=Fl_Timer.html#Fl_Timer.value>Fl_Timer</A>,
- <a href=Fl_Spinner.html#Fl_Spinner.value>Fl_Spinner</a></LI>
-<LI>visible: <A HREF="Fl_File_Chooser.html#Fl_File_Chooser.visible">Fl_File_Chooser</A>,
- <A HREF="Fl_Help_Dialog.html#Fl_Help_Dialog.visible">Fl_Help_Dialog</A>,
- <A href=Fl_Browser.html#Fl_Browser.visible>Fl_Browser</A>,
- <A href=Fl_Menu_Item.html#Fl_Menu_Item.visible>Fl_Menu_Item</A>,
- <A href=Fl_Widget.html#Fl_Widget.visible>Fl_Widget</A></LI>
-<LI>visible_focus: <A href=Fl_Widget.html#Fl_Widget.visible_focus>Fl_Widget</A></LI>
-<LI>visible_r: <A href=Fl_Widget.html#Fl_Widget.visible_r>Fl_Widget</A></LI>
-</UL>
-<H3>W</H3><UL>
-<LI>w: <A href="Fl_Image.html#Fl_Image.w">Fl_Image</A>,
- <A href=Fl_Widget.html#Fl_Widget.w>Fl_Widget</A></LI>
-<LI>when: <A href=Fl_Button.html#Fl_Button.when>Fl_Button</A>,
- <A href=Fl_Input.html#Fl_Input.when>Fl_Input</A>,
- <A href=Fl_Widget.html#Fl_Widget.when>Fl_Widget</A></LI>
-<LI>window: <A href=Fl_Widget.html#Fl_Widget.window>Fl_Widget</A></LI>
-<LI>word_end: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.word_end">Fl_Text_Buffer</A>,
- <A HREF="Fl_Text_Display.html#Fl_Text_Display.word_end">Fl_Text_Display</A></LI>
-<LI>word_start: <A HREF="Fl_Text_Buffer.html#Fl_Text_Buffer.word_start">Fl_Text_Buffer</A>,
- <A HREF="Fl_Text_Display.html#Fl_Text_Display.word_start">Fl_Text_Display</A></LI>
-<LI>wrap: <A href="Fl_Input_.html#Fl_Input_.wrap">Fl_Input_</A></LI>
-<LI>wrap_mode: <A HREF="Fl_Text_Display.html#Fl_Text_Display.wrap_mode">Fl_Text_Display</A></LI>
-</UL>
-<H3>X</H3><UL>
-<LI>x: <A href=Fl_Widget.html#Fl_Widget.x>Fl_Widget</A></LI>
-<LI>xbounds: <A href=Fl_Positioner.html#Fl_Positioner.xbounds>Fl_Positioner</A></LI>
-<LI>xclass: <A href=Fl_Window.html#Fl_Window.xclass>Fl_Window</A></LI>
-<LI>xposition: <A href=Fl_Scroll.html#Fl_Scroll.xposition>Fl_Scroll</A></LI>
-<LI>xstep: <A href=Fl_Positioner.html#Fl_Positioner.xstep>Fl_Positioner</A></LI>
-<LI>xvalue: <A href=Fl_Positioner.html#Fl_Positioner.xvalue>Fl_Positioner</A></LI>
-</UL>
-<H3>y</H3><UL>
-<LI>y: <A href=Fl_Widget.html#Fl_Widget.y>Fl_Widget</A></LI>
-<LI>ybounds: <A href=Fl_Positioner.html#Fl_Positioner.ybounds>Fl_Positioner</A></LI>
-<LI>yposition: <A href=Fl_Scroll.html#Fl_Scroll.yposition>Fl_Scroll</A></LI>
-<LI>ystep: <A href=Fl_Positioner.html#Fl_Positioner.ystep>Fl_Positioner</A></LI>
-<LI>yvalue: <A href=Fl_Positioner.html#Fl_Positioner.yvalue>Fl_Positioner</A></LI>
-</UL>
-
-</BODY>
-</HTML>