From f09e17c3c564e8310125a10c03397cbf473ff643 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Wed, 1 Jul 2020 18:03:10 +0200 Subject: [PATCH] Remove $Id$ tags, update URL's, and more - remove obsolete svn '$Id$' tags from all source files - update .fl files and generated files accordingly - replace 'http://www.fltk.org' URL's with 'https://...' - replace bug report URL 'str.php' with 'bugs.php' - remove trailing whitespace - fix other whitespace errors flagged by Git - add and/or fix missing or wrong standard headers - convert tabs to spaces in all source files The only relevant code changes are in the fluid/ folder where some .fl files and other source files were used to generate the '$Id' headers and footers. --- .clang-format | 56 +- .gitattributes | 54 +- .gitlab-ci.yml | 4 +- CHANGES.txt | 2 +- CHANGES_1.0.txt | 1329 +++-- CHANGES_1.1.txt | 5117 ++++++++--------- CHANGES_1.3.txt | 1488 ++--- CMake/Android/abi-version.cmake.in | 10 +- CMake/FLTKConfig.cmake.in | 4 - CMake/FindSDL2.cmake | 124 +- CMake/UseFLTK.cmake.in | 4 - CMake/android.cmake | 8 +- CMake/export.cmake | 10 +- CMake/install.cmake | 8 +- CMake/macros.cmake | 82 +- CMake/options.cmake | 8 +- CMake/resources.cmake | 32 +- CMake/setup.cmake | 8 +- CMake/variables.cmake | 8 +- CMakeLists.txt | 8 +- COPYING | 6 +- CREDITS.txt | 110 +- DartConfig.cmake | 6 +- FL/Enumerations.H | 632 +- FL/Fl.H | 308 +- FL/Fl_Adjuster.H | 14 +- FL/Fl_BMP_Image.H | 10 +- FL/Fl_Bitmap.H | 14 +- FL/Fl_Box.H | 14 +- FL/Fl_Browser.H | 36 +- FL/Fl_Browser_.H | 112 +- FL/Fl_Button.H | 28 +- FL/Fl_Cairo.H | 54 +- FL/Fl_Cairo_Window.H | 20 +- FL/Fl_Chart.H | 40 +- FL/Fl_Check_Browser.H | 24 +- FL/Fl_Check_Button.H | 12 +- FL/Fl_Choice.H | 16 +- FL/Fl_Clock.H | 60 +- FL/Fl_Color_Chooser.H | 32 +- FL/Fl_Copy_Surface.H | 20 +- FL/Fl_Counter.H | 16 +- FL/Fl_Device.H | 20 +- FL/Fl_Dial.H | 22 +- FL/Fl_Double_Window.H | 16 +- FL/Fl_Export.H | 16 +- FL/Fl_File_Browser.H | 50 +- FL/Fl_File_Chooser.H | 102 +- FL/Fl_File_Icon.H | 108 +- FL/Fl_File_Input.H | 45 +- FL/Fl_Fill_Dial.H | 12 +- FL/Fl_Fill_Slider.H | 12 +- FL/Fl_Float_Input.H | 12 +- FL/Fl_FormsBitmap.H | 14 +- FL/Fl_FormsPixmap.H | 12 +- FL/Fl_Free.H | 42 +- FL/Fl_GIF_Image.H | 12 +- FL/Fl_Gl_Window.H | 50 +- FL/Fl_Graphics_Driver.H | 24 +- FL/Fl_Group.H | 34 +- FL/Fl_Help_Dialog.H | 18 +- FL/Fl_Help_View.H | 214 +- FL/Fl_Hold_Browser.H | 14 +- FL/Fl_Hor_Fill_Slider.H | 12 +- FL/Fl_Hor_Nice_Slider.H | 12 +- FL/Fl_Hor_Slider.H | 12 +- FL/Fl_Hor_Value_Slider.H | 12 +- FL/Fl_Image.H | 44 +- FL/Fl_Image_Surface.H | 28 +- FL/Fl_Input.H | 32 +- FL/Fl_Input_.H | 112 +- FL/Fl_Input_Choice.H | 12 +- FL/Fl_Int_Input.H | 12 +- FL/Fl_JPEG_Image.H | 12 +- FL/Fl_Light_Button.H | 18 +- FL/Fl_Line_Dial.H | 12 +- FL/Fl_Menu.H | 12 +- FL/Fl_Menu_.H | 14 +- FL/Fl_Menu_Bar.H | 12 +- FL/Fl_Menu_Button.H | 26 +- FL/Fl_Menu_Item.H | 80 +- FL/Fl_Menu_Window.H | 12 +- FL/Fl_Multi_Browser.H | 18 +- FL/Fl_Multi_Label.H | 16 +- FL/Fl_Multiline_Input.H | 14 +- FL/Fl_Multiline_Output.H | 14 +- FL/Fl_Native_File_Chooser.H | 86 +- FL/Fl_Nice_Slider.H | 12 +- FL/Fl_Object.H | 12 +- FL/Fl_Output.H | 16 +- FL/Fl_Overlay_Window.H | 14 +- FL/Fl_PNG_Image.H | 12 +- FL/Fl_PNM_Image.H | 12 +- FL/Fl_Pack.H | 10 +- FL/Fl_Paged_Device.H | 26 +- FL/Fl_Pixmap.H | 14 +- FL/Fl_Plugin.H | 24 +- FL/Fl_Positioner.H | 14 +- FL/Fl_PostScript.H | 70 +- FL/Fl_Preferences.H | 66 +- FL/Fl_Printer.H | 34 +- FL/Fl_Progress.H | 32 +- FL/Fl_RGB_Image.H | 12 +- FL/Fl_Radio_Button.H | 12 +- FL/Fl_Radio_Light_Button.H | 12 +- FL/Fl_Radio_Round_Button.H | 12 +- FL/Fl_Rect.H | 30 +- FL/Fl_Repeat_Button.H | 12 +- FL/Fl_Return_Button.H | 14 +- FL/Fl_Roller.H | 16 +- FL/Fl_Round_Button.H | 12 +- FL/Fl_Round_Clock.H | 12 +- FL/Fl_SVG_File_Surface.H | 4 +- FL/Fl_SVG_Image.H | 22 +- FL/Fl_Scroll.H | 46 +- FL/Fl_Scrollbar.H | 14 +- FL/Fl_Secret_Input.H | 12 +- FL/Fl_Select_Browser.H | 12 +- FL/Fl_Shared_Image.H | 50 +- FL/Fl_Simple_Counter.H | 18 +- FL/Fl_Simple_Terminal.H | 12 +- FL/Fl_Single_Window.H | 16 +- FL/Fl_Slider.H | 30 +- FL/Fl_Spinner.H | 41 +- FL/Fl_Sys_Menu_Bar.H | 36 +- FL/Fl_Table.H | 510 +- FL/Fl_Table_Row.H | 98 +- FL/Fl_Tabs.H | 58 +- FL/Fl_Text_Buffer.H | 20 +- FL/Fl_Text_Display.H | 222 +- FL/Fl_Text_Editor.H | 32 +- FL/Fl_Tile.H | 12 +- FL/Fl_Tiled_Image.H | 16 +- FL/Fl_Timer.H | 20 +- FL/Fl_Toggle_Button.H | 14 +- FL/Fl_Toggle_Light_Button.H | 12 +- FL/Fl_Toggle_Round_Button.H | 12 +- FL/Fl_Tooltip.H | 18 +- FL/Fl_Tree.H | 82 +- FL/Fl_Tree_Item.H | 134 +- FL/Fl_Tree_Item_Array.H | 36 +- FL/Fl_Tree_Prefs.H | 108 +- FL/Fl_Valuator.H | 16 +- FL/Fl_Value_Input.H | 36 +- FL/Fl_Value_Output.H | 18 +- FL/Fl_Value_Slider.H | 14 +- FL/Fl_Widget.H | 274 +- FL/Fl_Widget_Surface.H | 12 +- FL/Fl_Window.H | 84 +- FL/Fl_Wizard.H | 10 +- FL/Fl_XBM_Image.H | 12 +- FL/Fl_XPM_Image.H | 14 +- FL/Makefile.in | 13 +- FL/android.H | 13 +- FL/filename.H | 16 +- FL/fl_ask.H | 14 +- FL/fl_draw.H | 108 +- FL/fl_message.H | 12 +- FL/fl_show_colormap.H | 12 +- FL/fl_show_input.H | 12 +- FL/fl_types.h | 16 +- FL/fl_utf8.h | 10 +- FL/forms.H | 266 +- FL/gl.h | 12 +- FL/gl2opengl.h | 8 +- FL/gl_draw.H | 13 +- FL/glu.h | 12 +- FL/glut.H | 238 +- FL/mac.H | 14 +- FL/math.h | 17 +- FL/names.h | 16 +- FL/platform.H | 10 +- FL/platform_types.h | 22 +- FL/win32.H | 20 +- FL/x.H | 14 +- GL/glut.h | 12 +- Makefile | 13 +- README.Android.md | 6 +- README.CMake.txt | 38 +- README.Cairo.txt | 18 +- README.Unix.txt | 94 +- README.Windows.txt | 12 +- README.abi-version.txt | 18 +- README.bundled-libs.txt | 4 +- README.macOS.md | 98 +- README.txt | 49 +- cairo/Fl_Cairo.cxx | 60 +- cairo/Makefile | 12 +- configh.cmake.in | 12 +- configh.in | 12 +- configure.ac | 1628 +++--- documentation/CMakeLists.txt | 74 +- documentation/Makefile | 12 +- documentation/README.txt | 10 +- documentation/make_pdf | 12 +- documentation/src/basics.dox | 28 +- documentation/src/blocks.man | 2 +- documentation/src/checkers.man | 2 +- documentation/src/common.dox | 60 +- documentation/src/development.dox | 24 +- documentation/src/drawing.dox | 82 +- documentation/src/editor.dox | 2 +- documentation/src/enumerations.dox | 16 +- documentation/src/events.dox | 54 +- documentation/src/examples.dox | 2 +- documentation/src/faq.dox | 8 +- documentation/src/fltk-config.man | 2 +- documentation/src/fltk.man | 6 +- documentation/src/fluid.dox | 6 +- documentation/src/fluid.man | 6 +- documentation/src/forms.dox | 68 +- documentation/src/glut.dox | 72 +- documentation/src/html_footer | 4 +- documentation/src/index.dox | 40 +- documentation/src/intro.dox | 4 +- documentation/src/license.dox | 74 +- documentation/src/migration_1_4.dox | 2 +- documentation/src/opengl.dox | 28 +- documentation/src/osissues.dox | 172 +- documentation/src/preface.dox | 4 +- documentation/src/subclassing.dox | 76 +- documentation/src/sudoku.man | 2 +- documentation/src/unicode.dox | 2 +- examples/OpenGL3-glut-test.cxx | 62 +- examples/OpenGL3test.cxx | 30 +- examples/README.txt | 8 +- examples/browser-simple.cxx | 20 +- examples/clipboard.cxx | 18 +- examples/draggable-group.cxx | 110 +- examples/fltk-versions.cxx | 12 +- examples/howto-add_fd-and-popen.cxx | 32 +- examples/howto-browser-with-icons.cxx | 18 +- examples/howto-drag-and-drop.cxx | 110 +- examples/howto-draw-an-x.cxx | 18 +- examples/howto-menu-with-images.cxx | 12 +- examples/howto-parse-args.cxx | 16 +- examples/howto-remap-numpad-keyboard-keys.cxx | 10 +- examples/howto-simple-svg.cxx | 60 +- examples/howto-text-over-image-button.cxx | 40 +- examples/menubar-add.cxx | 66 +- examples/nativefilechooser-simple-app.cxx | 58 +- examples/nativefilechooser-simple.cxx | 42 +- examples/progress-simple.cxx | 12 +- examples/shapedwindow.cxx | 12 +- examples/simple-terminal.cxx | 16 +- examples/table-as-container.cxx | 112 +- examples/table-simple.cxx | 30 +- examples/table-sort.cxx | 50 +- .../table-spreadsheet-with-keyboard-nav.cxx | 204 +- examples/table-spreadsheet.cxx | 212 +- examples/table-with-keynav.cxx | 218 +- .../table-with-right-column-stretch-fit.cxx | 8 +- examples/tabs-simple.cxx | 42 +- examples/textdisplay-with-colors.cxx | 34 +- examples/texteditor-simple.cxx | 30 +- examples/texteditor-with-dynamic-colors.cxx | 12 +- examples/tree-as-container.cxx | 60 +- examples/tree-custom-draw-items.cxx | 46 +- examples/tree-custom-sort.cxx | 20 +- examples/tree-of-tables.cxx | 64 +- examples/tree-simple.cxx | 22 +- examples/wizard-simple.cxx | 16 +- fltk-config.in | 12 +- fltk.list.in | 12 +- fltk.spec.in | 16 +- fluid/CMakeLists.txt | 6 +- fluid/CodeEditor.cxx | 312 +- fluid/CodeEditor.h | 14 +- fluid/ExternalCodeEditor_UNIX.cxx | 42 +- fluid/ExternalCodeEditor_UNIX.h | 5 - fluid/ExternalCodeEditor_WIN32.cxx | 46 +- fluid/ExternalCodeEditor_WIN32.h | 7 +- fluid/Fl_Function_Type.cxx | 118 +- fluid/Fl_Group_Type.cxx | 42 +- fluid/Fl_Menu_Type.cxx | 86 +- fluid/Fl_Type.cxx | 233 +- fluid/Fl_Type.h | 55 +- fluid/Fl_Widget_Type.cxx | 554 +- fluid/Fl_Widget_Type.h | 12 +- fluid/Fl_Window_Type.cxx | 483 +- fluid/Fluid_Image.cxx | 17 +- fluid/Fluid_Image.h | 12 +- fluid/Makefile | 12 +- fluid/Shortcut_Button.h | 12 +- fluid/about_panel.cxx | 12 +- fluid/about_panel.fl | 12 +- fluid/about_panel.h | 12 +- fluid/align_widget.cxx | 642 +-- fluid/alignment_panel.cxx | 36 +- fluid/alignment_panel.fl | 26 +- fluid/alignment_panel.h | 12 +- fluid/code.cxx | 208 +- fluid/comments.h | 18 +- fluid/factory.cxx | 254 +- fluid/file.cxx | 80 +- fluid/fluid.cxx | 140 +- fluid/function_panel.cxx | 12 +- fluid/function_panel.fl | 12 +- fluid/function_panel.h | 8 +- fluid/print_panel.cxx | 38 +- fluid/print_panel.fl | 14 +- fluid/print_panel.h | 12 +- fluid/template_panel.cxx | 48 +- fluid/template_panel.fl | 20 +- fluid/template_panel.h | 10 +- fluid/undo.cxx | 33 +- fluid/undo.h | 30 +- fluid/widget_panel.cxx | 10 +- fluid/widget_panel.fl | 12 +- fluid/widget_panel.h | 10 +- install-sh | 14 +- jpeg/Makefile | 12 +- mac_endianness.h | 14 +- makeinclude.in | 14 +- misc/MacRoman_utf-8.txt | 6 +- misc/README.txt | 34 +- misc/abi-compliance-checker.txt | 74 +- misc/cp1252.html | 6 +- misc/cp1252.txt | 4 +- misc/cp1252_utf-8.html | 6 +- misc/cp1252_utf-8.txt | 4 +- misc/doxystar.cxx | 20 +- misc/iso-8859-1.txt | 4 +- misc/iso-8859-1_utf-8.txt | 4 +- misc/lorem_ipsum.txt | 6 +- misc/update_config_scripts | 8 +- nanosvg/nanosvgrast.h | 5 - png/CMakeLists.txt | 4 +- png/Makefile | 11 +- src/CMakeLists.txt | 16 +- src/Fl.cxx | 84 +- src/Fl_Adjuster.cxx | 104 +- src/Fl_BMP_Image.cxx | 17 +- src/Fl_Bitmap.cxx | 52 +- src/Fl_Box.cxx | 17 +- src/Fl_Browser.cxx | 199 +- src/Fl_Browser_.cxx | 302 +- src/Fl_Browser_load.cxx | 28 +- src/Fl_Button.cxx | 37 +- src/Fl_Chart.cxx | 160 +- src/Fl_Check_Browser.cxx | 328 +- src/Fl_Check_Button.cxx | 8 +- src/Fl_Choice.cxx | 26 +- src/Fl_Clock.cxx | 13 +- src/Fl_Color_Chooser.cxx | 77 +- src/Fl_Copy_Surface.cxx | 12 +- src/Fl_Counter.cxx | 31 +- src/Fl_Device.cxx | 20 +- src/Fl_Dial.cxx | 13 +- src/Fl_Double_Window.cxx | 12 +- src/Fl_File_Browser.cxx | 193 +- src/Fl_File_Chooser.cxx | 12 +- src/Fl_File_Chooser.fl | 14 +- src/Fl_File_Chooser2.cxx | 424 +- src/Fl_File_Icon.cxx | 259 +- src/Fl_File_Icon2.cxx | 675 ++- src/Fl_File_Input.cxx | 87 +- src/Fl_GIF_Image.cxx | 25 +- src/Fl_Gl_Choice.H | 14 +- src/Fl_Gl_Choice.cxx | 48 +- src/Fl_Gl_Device_Plugin.cxx | 12 +- src/Fl_Gl_Overlay.cxx | 12 +- src/Fl_Gl_Window.cxx | 122 +- src/Fl_Gl_Window_Driver.H | 12 +- src/Fl_Graphics_Driver.cxx | 16 +- src/Fl_Group.cxx | 159 +- src/Fl_Help_Dialog.cxx | 20 +- src/Fl_Help_Dialog.fl | 14 +- src/Fl_Help_Dialog_Dox.cxx | 16 +- src/Fl_Help_View.cxx | 2467 ++++---- src/Fl_Image.cxx | 112 +- src/Fl_Image_Reader.cxx | 4 +- src/Fl_Image_Reader.h | 4 +- src/Fl_Image_Surface.cxx | 21 +- src/Fl_Input.cxx | 208 +- src/Fl_Input_.cxx | 196 +- src/Fl_Input_Choice.cxx | 24 +- src/Fl_JPEG_Image.cxx | 29 +- src/Fl_Light_Button.cxx | 127 +- src/Fl_MacOS_Sys_Menu_Bar.mm | 46 +- src/Fl_Menu.cxx | 354 +- src/Fl_Menu_.cxx | 134 +- src/Fl_Menu_Bar.cxx | 14 +- src/Fl_Menu_Button.cxx | 16 +- src/Fl_Menu_Window.cxx | 23 +- src/Fl_Menu_add.cxx | 126 +- src/Fl_Menu_global.cxx | 16 +- src/Fl_Multi_Label.cxx | 12 +- src/Fl_Native_File_Chooser.cxx | 25 +- src/Fl_Native_File_Chooser_FLTK.cxx | 81 +- src/Fl_Native_File_Chooser_GTK.cxx | 117 +- src/Fl_Native_File_Chooser_MAC.mm | 195 +- src/Fl_Native_File_Chooser_WIN32.cxx | 399 +- src/Fl_Overlay_Window.cxx | 12 +- src/Fl_PNG_Image.cxx | 35 +- src/Fl_PNM_Image.cxx | 49 +- src/Fl_Pack.cxx | 16 +- src/Fl_Paged_Device.cxx | 26 +- src/Fl_Pixmap.cxx | 136 +- src/Fl_Positioner.cxx | 14 +- src/Fl_Preferences.cxx | 82 +- src/Fl_Printer.cxx | 14 +- src/Fl_Progress.cxx | 25 +- src/Fl_Repeat_Button.cxx | 23 +- src/Fl_Return_Button.cxx | 15 +- src/Fl_Roller.cxx | 36 +- src/Fl_Round_Button.cxx | 13 +- src/Fl_SVG_Image.cxx | 20 +- src/Fl_Screen_Driver.H | 22 +- src/Fl_Screen_Driver.cxx | 114 +- src/Fl_Scroll.cxx | 106 +- src/Fl_Scrollbar.cxx | 91 +- src/Fl_Shared_Image.cxx | 85 +- src/Fl_Simple_Terminal.cxx | 26 +- src/Fl_Single_Window.cxx | 27 +- src/Fl_Slider.cxx | 173 +- src/Fl_Spinner.cxx | 31 +- src/Fl_Sys_Menu_Bar.cxx | 18 +- src/Fl_Sys_Menu_Bar_Driver.H | 12 +- src/Fl_System_Driver.H | 10 +- src/Fl_System_Driver.cxx | 48 +- src/Fl_Table.cxx | 356 +- src/Fl_Table_Row.cxx | 108 +- src/Fl_Tabs.cxx | 74 +- src/Fl_Text_Buffer.cxx | 406 +- src/Fl_Text_Display.cxx | 207 +- src/Fl_Text_Editor.cxx | 70 +- src/Fl_Tile.cxx | 45 +- src/Fl_Tiled_Image.cxx | 55 +- src/Fl_Tooltip.cxx | 42 +- src/Fl_Tree.cxx | 774 ++- src/Fl_Tree_Item.cxx | 416 +- src/Fl_Tree_Item_Array.cxx | 54 +- src/Fl_Tree_Prefs.cxx | 26 +- src/Fl_Valuator.cxx | 14 +- src/Fl_Value_Input.cxx | 14 +- src/Fl_Value_Output.cxx | 12 +- src/Fl_Value_Slider.cxx | 27 +- src/Fl_Widget.cxx | 56 +- src/Fl_Widget_Surface.cxx | 22 +- src/Fl_Window.cxx | 60 +- src/Fl_Window_Driver.H | 18 +- src/Fl_Window_Driver.cxx | 24 +- src/Fl_Window_fullscreen.cxx | 14 +- src/Fl_Window_hotspot.cxx | 12 +- src/Fl_Window_iconize.cxx | 12 +- src/Fl_Wizard.cxx | 44 +- src/Fl_XBM_Image.cxx | 23 +- src/Fl_XColor.H | 18 +- src/Fl_XPM_Image.cxx | 63 +- src/Fl_abort.cxx | 12 +- src/Fl_add_idle.cxx | 18 +- src/Fl_arg.cxx | 82 +- src/Fl_cocoa.mm | 444 +- src/Fl_compose.cxx | 30 +- src/Fl_display.cxx | 20 +- src/Fl_get_key.cxx | 12 +- src/Fl_get_key_mac.cxx | 60 +- src/Fl_get_key_win32.cxx | 150 +- src/Fl_get_system_colors.cxx | 57 +- src/Fl_grab.cxx | 13 +- src/Fl_lock.cxx | 50 +- src/Fl_own_colormap.cxx | 18 +- src/Fl_visual.cxx | 21 +- src/Fl_win32.cxx | 1162 ++-- src/Fl_x.cxx | 462 +- src/Makefile | 12 +- src/Xutf8.h | 117 +- src/cgdebug.h | 38 +- src/cmap.cxx | 62 +- src/config_lib.h | 18 +- src/drivers/Android/Fl_Android_Application.H | 12 +- .../Android/Fl_Android_Application.cxx | 13 +- .../Android/Fl_Android_Graphics_Clipping.H | 12 +- .../Android/Fl_Android_Graphics_Clipping.cxx | 13 +- .../Android/Fl_Android_Graphics_Driver.H | 12 +- .../Android/Fl_Android_Graphics_Driver.cxx | 13 +- .../Android/Fl_Android_Graphics_Font.H | 12 +- .../Android/Fl_Android_Graphics_Font.cxx | 13 +- .../Fl_Android_Image_Surface_Driver.cxx | 12 +- .../Android/Fl_Android_Screen_Driver.H | 16 +- .../Android/Fl_Android_Screen_Driver.cxx | 13 +- .../Android/Fl_Android_Screen_Keyboard.cxx | 30 +- .../Android/Fl_Android_System_Driver.H | 10 +- .../Android/Fl_Android_System_Driver.cxx | 114 +- .../Android/Fl_Android_Window_Driver.H | 16 +- .../Android/Fl_Android_Window_Driver.cxx | 40 +- src/drivers/Android/README.txt | 2 +- src/drivers/Android/stb_truetype.h | 108 +- src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm | 34 +- src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.H | 20 +- src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx | 120 +- src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H | 20 +- src/drivers/Cocoa/Fl_Cocoa_Window_Driver.cxx | 12 +- .../Cocoa/Fl_MacOS_Sys_Menu_Bar_Driver.H | 12 +- src/drivers/Darwin/Fl_Darwin_System_Driver.H | 12 +- .../Darwin/Fl_Darwin_System_Driver.cxx | 30 +- src/drivers/GDI/Fl_Font.H | 12 +- .../GDI/Fl_GDI_Copy_Surface_Driver.cxx | 14 +- src/drivers/GDI/Fl_GDI_Graphics_Driver.H | 12 +- src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx | 12 +- .../GDI/Fl_GDI_Graphics_Driver_arci.cxx | 12 +- .../GDI/Fl_GDI_Graphics_Driver_color.cxx | 30 +- .../GDI/Fl_GDI_Graphics_Driver_font.cxx | 32 +- .../GDI/Fl_GDI_Graphics_Driver_image.cxx | 122 +- .../GDI/Fl_GDI_Graphics_Driver_line_style.cxx | 12 +- .../GDI/Fl_GDI_Graphics_Driver_rect.cxx | 14 +- .../GDI/Fl_GDI_Graphics_Driver_vertex.cxx | 16 +- .../GDI/Fl_GDI_Image_Surface_Driver.cxx | 13 +- src/drivers/OpenGL/Fl_OpenGL_Display_Device.H | 12 +- .../OpenGL/Fl_OpenGL_Display_Device.cxx | 13 +- .../OpenGL/Fl_OpenGL_Graphics_Driver.H | 12 +- .../OpenGL/Fl_OpenGL_Graphics_Driver.cxx | 24 +- .../OpenGL/Fl_OpenGL_Graphics_Driver_arci.cxx | 12 +- .../Fl_OpenGL_Graphics_Driver_color.cxx | 12 +- .../OpenGL/Fl_OpenGL_Graphics_Driver_font.cxx | 15 +- .../Fl_OpenGL_Graphics_Driver_line_style.cxx | 12 +- .../OpenGL/Fl_OpenGL_Graphics_Driver_rect.cxx | 13 +- .../Fl_OpenGL_Graphics_Driver_vertex.cxx | 16 +- src/drivers/Pico/Fl_Pico_Graphics_Driver.H | 12 +- src/drivers/Pico/Fl_Pico_Graphics_Driver.cxx | 18 +- src/drivers/Pico/Fl_Pico_Screen_Driver.H | 12 +- src/drivers/Pico/Fl_Pico_Screen_Driver.cxx | 13 +- src/drivers/Pico/Fl_Pico_System_Driver.H | 12 +- src/drivers/Pico/Fl_Pico_System_Driver.cxx | 13 +- src/drivers/Pico/Fl_Pico_Window_Driver.H | 12 +- src/drivers/Pico/Fl_Pico_Window_Driver.cxx | 12 +- .../Fl_PicoAndroid_Graphics_Driver.H | 12 +- .../Fl_PicoAndroid_Graphics_Driver.cxx | 14 +- .../Fl_PicoAndroid_Screen_Driver.H | 16 +- .../Fl_PicoAndroid_Screen_Driver.cxx | 19 +- .../Fl_PicoAndroid_Window_Driver.H | 12 +- .../Fl_PicoAndroid_Window_Driver.cxx | 12 +- .../PicoSDL/Fl_PicoSDL_Graphics_Driver.H | 12 +- .../PicoSDL/Fl_PicoSDL_Graphics_Driver.cxx | 14 +- .../PicoSDL/Fl_PicoSDL_Screen_Driver.H | 12 +- .../PicoSDL/Fl_PicoSDL_Screen_Driver.cxx | 15 +- .../PicoSDL/Fl_PicoSDL_System_Driver.cxx | 12 +- .../PicoSDL/Fl_PicoSDL_Window_Driver.H | 14 +- .../PicoSDL/Fl_PicoSDL_Window_Driver.cxx | 13 +- src/drivers/Posix/Fl_Posix_Printer_Driver.cxx | 45 +- src/drivers/Posix/Fl_Posix_System_Driver.H | 10 +- src/drivers/Posix/Fl_Posix_System_Driver.cxx | 14 +- src/drivers/PostScript/Fl_PostScript.cxx | 152 +- .../PostScript/Fl_PostScript_image.cxx | 24 +- src/drivers/Quartz/Fl_Font.H | 12 +- .../Quartz/Fl_Quartz_Copy_Surface_Driver.H | 12 +- .../Quartz/Fl_Quartz_Copy_Surface_Driver.cxx | 14 +- .../Quartz/Fl_Quartz_Graphics_Driver.H | 14 +- .../Quartz/Fl_Quartz_Graphics_Driver.cxx | 14 +- .../Quartz/Fl_Quartz_Graphics_Driver_arci.cxx | 12 +- .../Fl_Quartz_Graphics_Driver_color.cxx | 12 +- .../Quartz/Fl_Quartz_Graphics_Driver_font.cxx | 52 +- .../Fl_Quartz_Graphics_Driver_image.cxx | 34 +- .../Fl_Quartz_Graphics_Driver_line_style.cxx | 18 +- .../Quartz/Fl_Quartz_Graphics_Driver_rect.cxx | 12 +- .../Fl_Quartz_Graphics_Driver_vertex.cxx | 16 +- .../Quartz/Fl_Quartz_Image_Surface_Driver.cxx | 14 +- src/drivers/SVG/Fl_SVG_File_Surface.cxx | 32 +- .../WinAPI/Fl_WinAPI_Printer_Driver.cxx | 30 +- src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.H | 14 +- .../WinAPI/Fl_WinAPI_Screen_Driver.cxx | 102 +- src/drivers/WinAPI/Fl_WinAPI_System_Driver.H | 10 +- .../WinAPI/Fl_WinAPI_System_Driver.cxx | 114 +- src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H | 16 +- .../WinAPI/Fl_WinAPI_Window_Driver.cxx | 40 +- src/drivers/X11/Fl_X11_Screen_Driver.H | 16 +- src/drivers/X11/Fl_X11_Screen_Driver.cxx | 222 +- src/drivers/X11/Fl_X11_System_Driver.H | 14 +- src/drivers/X11/Fl_X11_System_Driver.cxx | 124 +- src/drivers/X11/Fl_X11_Window_Driver.H | 20 +- src/drivers/X11/Fl_X11_Window_Driver.cxx | 43 +- src/drivers/Xlib/Fl_Font.H | 22 +- .../Xlib/Fl_Xlib_Copy_Surface_Driver.cxx | 12 +- src/drivers/Xlib/Fl_Xlib_Graphics_Driver.H | 12 +- src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx | 12 +- .../Xlib/Fl_Xlib_Graphics_Driver_arci.cxx | 12 +- .../Xlib/Fl_Xlib_Graphics_Driver_color.cxx | 26 +- .../Xlib/Fl_Xlib_Graphics_Driver_font_x.cxx | 132 +- .../Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx | 66 +- .../Xlib/Fl_Xlib_Graphics_Driver_image.cxx | 64 +- .../Fl_Xlib_Graphics_Driver_line_style.cxx | 22 +- .../Xlib/Fl_Xlib_Graphics_Driver_rect.cxx | 34 +- .../Xlib/Fl_Xlib_Graphics_Driver_vertex.cxx | 12 +- .../Xlib/Fl_Xlib_Image_Surface_Driver.cxx | 12 +- src/dump_compose.c | 8 +- src/filename_absolute.cxx | 62 +- src/filename_expand.cxx | 14 +- src/filename_ext.cxx | 12 +- src/filename_isdir.cxx | 22 +- src/filename_list.cxx | 20 +- src/filename_match.cxx | 56 +- src/filename_setext.cxx | 13 +- src/fl_arc.cxx | 52 +- src/fl_ask.cxx | 52 +- src/fl_boxtype.cxx | 144 +- src/fl_call_main.c | 12 +- src/fl_cmap.h | 518 +- src/fl_color.cxx | 16 +- src/fl_cursor.cxx | 23 +- src/fl_curve.cxx | 18 +- src/fl_diamond_box.cxx | 12 +- src/fl_dnd_win32.cxx | 44 +- src/fl_dnd_x.cxx | 79 +- src/fl_draw.cxx | 56 +- src/fl_draw_pixmap.cxx | 36 +- src/fl_encoding_latin1.cxx | 48 +- src/fl_encoding_mac_roman.cxx | 42 +- src/fl_engraved_label.cxx | 12 +- src/fl_file_dir.cxx | 81 +- src/fl_font.cxx | 12 +- src/fl_gleam.cxx | 13 +- src/fl_gtk.cxx | 21 +- src/fl_images_core.cxx | 31 +- src/fl_labeltype.cxx | 28 +- src/fl_open_uri.cxx | 20 +- src/fl_oval_box.cxx | 12 +- src/fl_overlay.cxx | 12 +- src/fl_overlay_visual.cxx | 36 +- src/fl_plastic.cxx | 33 +- src/fl_read_image.cxx | 13 +- src/fl_rect.cxx | 13 +- src/fl_round_box.cxx | 20 +- src/fl_rounded_box.cxx | 22 +- src/fl_scroll_area.cxx | 12 +- src/fl_set_font.cxx | 16 +- src/fl_shadow_box.cxx | 12 +- src/fl_shortcut.cxx | 28 +- src/fl_show_colormap.cxx | 18 +- src/fl_symbols.cxx | 78 +- src/fl_utf8.cxx | 20 +- src/fl_vertex.cxx | 12 +- src/flstring.c | 40 +- src/flstring.h | 16 +- src/forms_bitmap.cxx | 12 +- src/forms_compatibility.cxx | 12 +- src/forms_free.cxx | 32 +- src/forms_fselect.cxx | 20 +- src/forms_pixmap.cxx | 12 +- src/forms_timer.cxx | 26 +- src/gl_draw.cxx | 36 +- src/gl_start.cxx | 14 +- src/glut_compatibility.cxx | 30 +- src/glut_font.cxx | 52 +- src/numericsort.c | 24 +- src/print_panel.cxx | 28 +- src/print_panel.h | 14 +- src/scandir_posix.c | 12 +- src/scandir_win32.c | 80 +- src/screen_xywh.cxx | 13 +- src/utf8_internal.h | 14 +- src/vsnprintf.c | 261 +- src/xutf8/COPYING | 8 +- src/xutf8/case.c | 14 +- src/xutf8/fl_wcwidth.c | 12 +- src/xutf8/headers/case_tbl.txt | 16 +- src/xutf8/headers/spacing_tbl.txt | 20 +- src/xutf8/headers/tbl.txt | 244 +- src/xutf8/imKStoUCS.c | 52 +- src/xutf8/is_right2left.c | 13 +- src/xutf8/is_spacing.c | 13 +- src/xutf8/keysym2Ucs.c | 13 +- src/xutf8/lcUniConv/cp936ext.h | 12 +- src/xutf8/lcUniConv/gbk_tab_to_h.c | 2 +- src/xutf8/lcUniConv/iso8859_9e.h | 2 +- src/xutf8/mk_wcwidth.c | 6 +- src/xutf8/test.c | 139 +- src/xutf8/test2.c | 95 +- src/xutf8/ucs2fontmap.c | 127 +- src/xutf8/ucs2fontmap.c.mini | 13 +- src/xutf8/utf8Input.c | 195 +- src/xutf8/utf8Utils.c | 227 +- src/xutf8/utf8Wrap.c | 371 +- src/xutf8/utils/Makefile | 4 +- src/xutf8/utils/case.sh | 14 +- src/xutf8/utils/conv_gen.c | 43 +- src/xutf8/utils/convert_map.c | 25 +- src/xutf8/utils/create_table.c | 59 +- src/xutf8/utils/euc_tw.c | 12 +- src/xutf8/utils/non_spacing.sh | 14 +- src/xutf8/utils/tbl_gen.sh | 16 +- test/CMakeLists.txt | 8 +- test/CubeMain.cxx | 19 +- test/CubeView.cxx | 18 +- test/CubeView.h | 18 +- test/Makefile | 8 +- test/README.txt | 18 +- test/adjuster.cxx | 12 +- test/animated.cxx | 12 +- test/arc.cxx | 13 +- test/ask.cxx | 24 +- test/bitmap.cxx | 12 +- test/blocks.cxx | 363 +- test/boxtype.cxx | 38 +- test/browser.cxx | 58 +- test/button.cxx | 12 +- test/buttons.cxx | 12 +- test/cairo_test.cxx | 14 +- test/checkers.cxx | 302 +- test/checkers_pieces.fl | 12 +- test/clock.cxx | 12 +- test/colbrowser.cxx | 92 +- test/color_chooser.cxx | 16 +- test/connect.cxx | 14 +- test/cube.cxx | 20 +- test/cursor.cxx | 12 +- test/curve.cxx | 12 +- test/demo.cxx | 86 +- test/device.cxx | 177 +- test/doublebuffer.cxx | 12 +- test/editor.cxx | 360 +- test/file_chooser.cxx | 125 +- test/fonts.cxx | 14 +- test/forms.cxx | 12 +- test/fractals.cxx | 72 +- test/fracviewer.cxx | 62 +- test/fracviewer.h | 12 +- test/fromdos.c | 8 +- test/fullscreen.cxx | 36 +- test/gl_overlay.cxx | 14 +- test/glpuzzle.cxx | 36 +- test/hello.cxx | 12 +- test/help_dialog.cxx | 24 +- test/help_dialog.html | 32 +- test/icon.cxx | 6 +- test/iconize.cxx | 12 +- test/image.cxx | 20 +- test/input.cxx | 14 +- test/input_choice.cxx | 13 +- test/keyboard.cxx | 26 +- test/keyboard.h | 15 +- test/label.cxx | 12 +- test/line_style.cxx | 40 +- test/list_visuals.cxx | 42 +- test/mandelbrot.cxx | 76 +- test/mandelbrot.h | 12 +- test/menubar.cxx | 152 +- test/message.cxx | 18 +- test/minimum.cxx | 12 +- test/native-filechooser.cxx | 68 +- test/navigation.cxx | 16 +- test/offscreen.cxx | 68 +- test/output.cxx | 12 +- test/overlay.cxx | 12 +- test/pack.cxx | 12 +- test/pixmap.cxx | 12 +- test/pixmap_browser.cxx | 16 +- test/resizebox.cxx | 12 +- test/rgb.txt | 1504 ++--- test/rotated_text.cxx | 14 +- test/scroll.cxx | 14 +- test/shape.cxx | 16 +- test/subwindow.cxx | 28 +- test/sudoku.cxx | 491 +- test/sudokurc.h | 2 +- test/symbols.cxx | 12 +- test/table.cxx | 116 +- test/threads.cxx | 25 +- test/threads.h | 12 +- test/tile.cxx | 12 +- test/tiled_image.cxx | 14 +- test/tree.fl | 142 +- test/twowin.cxx | 12 +- test/unittest_about.cxx | 12 +- test/unittest_circles.cxx | 16 +- test/unittest_images.cxx | 40 +- test/unittest_lines.cxx | 22 +- test/unittest_points.cxx | 18 +- test/unittest_rects.cxx | 22 +- test/unittest_schemes.cxx | 412 +- test/unittest_scrollbarsize.cxx | 136 +- test/unittest_simple_terminal.cxx | 16 +- test/unittest_symbol.cxx | 32 +- test/unittest_text.cxx | 26 +- test/unittest_viewport.cxx | 16 +- test/unittests.cxx | 34 +- test/utf8.cxx | 190 +- test/windowfocus.cxx | 16 +- zlib/Makefile | 13 +- 779 files changed, 24817 insertions(+), 28948 deletions(-) mode change 100755 => 100644 .clang-format diff --git a/.clang-format b/.clang-format old mode 100755 new mode 100644 index 5d59aa7be..5c95a2338 --- a/.clang-format +++ b/.clang-format @@ -1,6 +1,4 @@ # -# "$Id$" -# # clang-format control file for the FLTK project. # # Copyright 2017 by Bill Spitzak and others. @@ -9,11 +7,11 @@ # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # -# http://www.fltk.org/COPYING.php +# https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# http://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # # # Important notes: @@ -46,11 +44,11 @@ # FLTK settings (currently experimental). -BasedOnStyle: LLVM +BasedOnStyle: LLVM # The Language tag marks C++ options -# Language: Cpp +# Language: Cpp # The following options override the LLVM style definitions, if set. @@ -65,61 +63,61 @@ BasedOnStyle: LLVM # UseTab can be set to 'Never' (default) or 'ForIndentation' to avoid # this annoying bug of clang-format. # -# UseTab: Always -UseTab: ForIndentation +# UseTab: Always +UseTab: ForIndentation # Should we extend code lines beyond 80 columns ? # Default: 80 -ColumnLimit: 120 +ColumnLimit: 120 # The FLTK CMP requires that case labels are indented (LLVM: false) -IndentCaseLabels: true +IndentCaseLabels: true # There are sometimes more than 1 empty lines; should we keep 2 or more ? # LLVM default is 1. -MaxEmptyLinesToKeep: 2 +MaxEmptyLinesToKeep: 2 # Present FLTK source code contains some short blocks and if statements # in one line, but we should better make it consistent and NOT use the # following "Allow..." statements (leave them commented out): # # LLVM default values: -# AllowShortBlocksOnASingleLine: false -# AllowShortFunctionsOnASingleLine: All -# AllowShortIfStatementsOnASingleLine: false -# AllowShortLoopsOnASingleLine: false +# AllowShortBlocksOnASingleLine: false +# AllowShortFunctionsOnASingleLine: All +# AllowShortIfStatementsOnASingleLine: false +# AllowShortLoopsOnASingleLine: false # # FLTK values: -# AllowShortBlocksOnASingleLine: true -# AllowShortIfStatementsOnASingleLine: true +# AllowShortBlocksOnASingleLine: true +# AllowShortIfStatementsOnASingleLine: true # Short inline functions in header files are an exception to the above "rule": -AllowShortFunctionsOnASingleLine: Inline +AllowShortFunctionsOnASingleLine: Inline # The following is particularly useful for macros with continuation lines. -# LLVM default: AlignEscapedNewlinesLeft: false +# LLVM default: AlignEscapedNewlinesLeft: false -AlignEscapedNewlinesLeft: true +AlignEscapedNewlinesLeft: true # Include files should be left as-is until we know we can sort them # without any bad side effects (LLVM: true) -SortIncludes: false +SortIncludes: false # Multiple constructor initializers must be on consecutive lines: -BreakConstructorInitializersBeforeComma: true +BreakConstructorInitializersBeforeComma: true # Constructor initializers will be indented by 2 spaces (LLVM: 4): -ConstructorInitializerIndentWidth: 2 +ConstructorInitializerIndentWidth: 2 # Continuation lines (if automatically wrapped) may be indented differently. # This does not apply to function call arguments which are aligned to the # opening bracket. LLVM (default): 4 -# ContinuationIndentWidth: 2 +# ContinuationIndentWidth: 2 # Most of FLTK's code uses 'void *p' as opposed to 'void* p'. # This is particularly useful in combined declarations like: @@ -131,9 +129,5 @@ ConstructorInitializerIndentWidth: 2 # Note: this also applies to references like 'int &w, int &h', for instance # in function parameter lists. -DerivePointerAlignment: false -PointerAlignment: Right - -# -# End of "$Id$". -# +DerivePointerAlignment: false +PointerAlignment: Right diff --git a/.gitattributes b/.gitattributes index 5b57eba56..9b909c85c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -14,50 +14,50 @@ # files that will not be exported in source tarballs -makesrcdist export-ignore eol=lf -.gitattributes export-ignore -.gitignore export-ignore -.gitlab-ci.yml export-ignore -.travis.yml export-ignore +makesrcdist export-ignore eol=lf +.gitattributes export-ignore +.gitignore export-ignore +.gitlab-ci.yml export-ignore +.travis.yml export-ignore # fluid files (eol=lf or text?) -*.fl eol=lf +*.fl eol=lf # shell scripts etc. with Unix line endings (lf) -*.ac eol=lf -*.in eol=lf -*.desktop eol=lf -*.sh eol=lf +*.ac eol=lf +*.in eol=lf +*.desktop eol=lf +*.sh eol=lf -fltk-config.in eol=lf +fltk-config.in eol=lf -documentation/make_pdf eol=lf -misc/config.guess eol=lf -misc/config.sub eol=lf -misc/update_config_scripts eol=lf +documentation/make_pdf eol=lf +misc/config.guess eol=lf +misc/config.sub eol=lf +misc/update_config_scripts eol=lf # files with Windows line endings (crlf) -*.rc eol=crlf -*.bat eol=crlf +*.rc eol=crlf +*.bat eol=crlf # Android Studio special support file (Windows .bat file) ide/AndroidStudio3/gradlew.rename_to_bat eol=crlf # binary files -*.ico binary -*.icns binary -*.jar binary -*.png binary -*.jpg binary -*.ttf binary -*.xcf binary -*.xcf_gz binary +*.ico binary +*.icns binary +*.jar binary +*.png binary +*.jpg binary +*.ttf binary +*.xcf binary +*.xcf_gz binary # image files that consist of ASCII text -# *.xbm text -# *.xpm text +# *.xbm text +# *.xpm text diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 69b73e7f5..23794513d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -31,12 +31,12 @@ stages: build-autotools: stage: build # install the necessary build tools - before_script: + before_script: - apt update && apt -y install make autoconf man - apt -y install freeglut3-dev libfontconfig-dev libxft-dev - apt -y install libxcursor-dev libxinerama-dev libasound2-dev - apt -y install libpango1.0-dev libcairo2-dev - script: + script: - make clean - ./configure --enable-pango --enable-cairo - time make -j3 diff --git a/CHANGES.txt b/CHANGES.txt index 147aa7fff..b4f307032 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,4 @@ -Changes in FLTK 1.4.0 Released: ??? ?? 2020 +Changes in FLTK 1.4.0 Released: ??? ?? 2020 General Information about this Release diff --git a/CHANGES_1.0.txt b/CHANGES_1.0.txt index 739a921b9..87f246aab 100644 --- a/CHANGES_1.0.txt +++ b/CHANGES_1.0.txt @@ -2,798 +2,791 @@ Changes in FLTK 1.0, up to FLTK 1.0.11 (May 7, 2001) CHANGES IN FLTK 1.0.11 - - CHANGED THE DEFAULT RUN-TIME LINKING TO "MULTITHREADED - DLL". You'll need to change your project settings to - use this as well or you'll get errors. + - CHANGED THE DEFAULT RUN-TIME LINKING TO "MULTITHREADED DLL". + You'll need to change your project settings to + use this as well or you'll get errors. - - Added new --disable-gl option to configure script. + - Added new --disable-gl option to configure script. - - Added new const const pointer versions of pixmap - functions to eliminate an annoying pointer warning - message that was generated by the Sun and other C++ - compilers. + - Added new const const pointer versions of pixmap + functions to eliminate an annoying pointer warning + message that was generated by the Sun and other C++ + compilers. - - Eliminated all "var hides class::var" warnings. + - Eliminated all "var hides class::var" warnings. - - Eliminated all "string literal converted to char *" - warnings. + - Eliminated all "string literal converted to char *" + warnings. - - OS/2 updates from Alexander Mai. + - OS/2 updates from Alexander Mai. - - Tidied up the HTML documentation to be more standards - compliant. + - Tidied up the HTML documentation to be more standards + compliant. - - Compiling with -DBOXX_BUGS will work around some - problems with the newest X drivers that BoXX delivers, - the problems all affect use of Overlays for normal X - drawing and OpenGL drawing. Normal compilation is - unchanged. + - Compiling with -DBOXX_BUGS will work around some + problems with the newest X drivers that BoXX delivers, + the problems all affect use of Overlays for normal X + drawing and OpenGL drawing. Normal compilation is + unchanged. - - The file chooser buttons use user_data() rather than - the label to decide what to do, allowing the label to - be somewhat cleaner. + - The file chooser buttons use user_data() rather than + the label to decide what to do, allowing the label to + be somewhat cleaner. - - Selection color on X changed to blue, to match what - happens on Windows now. + - Selection color on X changed to blue, to match what + happens on Windows now. - - Added support for AIX (static library only). + - Added support for AIX (static library only). - - Added support for SunOS 4.x + - Added support for SunOS 4.x - - Now process WIN32 WM_ACTIVATEAPP message to reset the - key and button states in Fl::e_state. + - Now process WIN32 WM_ACTIVATEAPP message to reset the + key and button states in Fl::e_state. - - Fl_has_idle only tested N-1 callbacks and missed one. + - Fl_has_idle only tested N-1 callbacks and missed one. - - Restored WM_SYNCPAINT handling under WIN32; this fixed - a refresh bug under some versions of Windows. + - Restored WM_SYNCPAINT handling under WIN32; this fixed + a refresh bug under some versions of Windows. - - Check for OpenGL headers before checking to see if - OpenGL is supported. This should eliminate compile - errors due to missing non-FLTK header files... + - Check for OpenGL headers before checking to see if + OpenGL is supported. This should eliminate compile + errors due to missing non-FLTK header files... - - Add -D_INCLUDE_POSIX_SOURCE option when compiling with - the HP compilers. + - Add -D_INCLUDE_POSIX_SOURCE option when compiling with + the HP compilers. - - Replaced remaining _WIN32 symbols with WIN32 + - Replaced remaining _WIN32 symbols with WIN32 - - Removed reference to unused GL/glu.h header file, which is missing on - some Linux systems. + - Removed reference to unused GL/glu.h header file, which is missing on + some Linux systems. - - Fl_Gl_Window has a new method to allow you to get and set the context: + - Fl_Gl_Window has a new method to allow you to get and set the context: - void Fl_Gl_Window::context(void*, int destroy = 0) - void* Fl_Gl_Window::context() const; + void Fl_Gl_Window::context(void*, int destroy = 0) + void* Fl_Gl_Window::context() const; - 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 - make_current() is called, this is useful for getting around bugs in - OpenGL implementations. + 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 + make_current() is called, this is useful for getting around bugs in + OpenGL implementations. - If destroy_flag is true the context will be destroyed by fltk when - the window is destroyed, or when the mode() is changed, or the next - time context(x) is called. + If destroy_flag is true the context will be destroyed by fltk when + the window is destroyed, or when the mode() is changed, or the next + time context(x) is called. - - Some cleanup of Fl_Gl_Choice to move most of the system dependent - #ifdefs into Fl_Gl_Choice.cxx. + - Some cleanup of Fl_Gl_Choice to move most of the system dependent + #ifdefs into Fl_Gl_Choice.cxx. - - Fl_Gl_Window does not set drawbuffer(BACKBUFFER) for - single-buffered windows. + - Fl_Gl_Window does not set drawbuffer(BACKBUFFER) for + single-buffered windows. - - Fl_Input::replace(...) correctly updates the display - if the replaced region does not include the mark, - point, or selected region. + - Fl_Input::replace(...) correctly updates the display + if the replaced region does not include the mark, + point, or selected region. - - Added Fl::add_check(...), Fl::remove_check, and - Fl::has_check. These are similar to idle callbacks but - are only called just before it waits for new events. - They can be used to watch for changes in global state - and respond to them. + - Added Fl::add_check(...), Fl::remove_check, and + Fl::has_check. These are similar to idle callbacks but + are only called just before it waits for new events. + They can be used to watch for changes in global state + and respond to them. - - "accu-timer": some changes to repeat_timeout that seem - to make it accurate on Unix and WIN32 at speeds up to - 500000 timeouts/second (and 700000 on Linux), and - within about .001% as accurate as the system clock. + - "accu-timer": some changes to repeat_timeout that seem + to make it accurate on Unix and WIN32 at speeds up to + 500000 timeouts/second (and 700000 on Linux), and + within about .001% as accurate as the system clock. - - Fix to Fl_Valuator::step() by Guillermo Andrade. + - Fix to Fl_Valuator::step() by Guillermo Andrade. - - Fixed the FLUID write-menu bug introduced in 1.0.10 + - Fixed the FLUID write-menu bug introduced in 1.0.10 - - Fl::flush() now calls GdiFlush() under WIN32 to - ensure that all graphics are drawn. + - Fl::flush() now calls GdiFlush() under WIN32 to + ensure that all graphics are drawn. - - fl_curve() now uses a much better algorithim to figure - out how many pieces to cut the curve into. + - fl_curve() now uses a much better algorithim to figure + out how many pieces to cut the curve into. - - FLUID now uses GetTempPath() under WIN32 to determine - where to store the clipboard. + - FLUID now uses GetTempPath() under WIN32 to determine + where to store the clipboard. - - Right-ctrl does not delete selected text in Fl_Input, - until you type a composed character. + - Right-ctrl does not delete selected text in Fl_Input, + until you type a composed character. - - Added simple FLTK and FLUID manual pages. + - Added simple FLTK and FLUID manual pages. - - Fl_Gl_Window leaked memory under WIN32. + - Fl_Gl_Window leaked memory under WIN32. - - The colbrowser demo was missing an include file when - compiled under OS/2. + - The colbrowser demo was missing an include file when + compiled under OS/2. CHANGES IN FLTK 1.0.10 - - Added a strcasecmp() function to FLUID; AIX doesn't - have it. + - Added a strcasecmp() function to FLUID; AIX doesn't + have it. - - Bug #115509: Fl_Scroll not repainting background. + - Bug #115509: Fl_Scroll not repainting background. - - Updated the configure script and makeinclude.in file - to work with the Sun PRO compilers. + - Updated the configure script and makeinclude.in file + to work with the Sun PRO compilers. - - Disabled the WIN32 async socket select code by default: - it doesn't seem to work anymore... + - Disabled the WIN32 async socket select code by default: + it doesn't seem to work anymore... - - Fl::below_mouse() was incorrectly clearing e_is_click; - this prevented any double-clicks from getting - through... + - Fl::below_mouse() was incorrectly clearing e_is_click; + this prevented any double-clicks from getting + through... - - No longer clear Fl::keysym on every event, this makes - better back compatability and fixes Win2000 + - No longer clear Fl::keysym on every event, this makes + better back compatability and fixes Win2000 - - FLUID now restores which tab in an Fl_Tabs was - selected when loads .fl files. + - FLUID now restores which tab in an Fl_Tabs was + selected when loads .fl files. - - Hack to fix the annoying "raise another application - when a modal window is closed" problem on WIN32. + - Hack to fix the annoying "raise another application + when a modal window is closed" problem on WIN32. - - Fl_Tabs now draws the background behind the tabs. + - Fl_Tabs now draws the background behind the tabs. - - Fl::set_fonts() on WIN32 fixed to work before the - first window is shown. + - Fl::set_fonts() on WIN32 fixed to work before the + first window is shown. - - CUA function keys, code submitted by George Yohng - + - CUA function keys, code submitted by George Yohng + - - Another attempt to get glut.h to work on WIN32. + - Another attempt to get glut.h to work on WIN32. - - Fl_Menu_::add() ignores '&' signs when comparing menu - items, so you don't have to make the shortcuts the - same all the time. + - Fl_Menu_::add() ignores '&' signs when comparing menu + items, so you don't have to make the shortcuts the + same all the time. - - Fixed bit-flipping patterns in WIN32 bitmap code. + - Fixed bit-flipping patterns in WIN32 bitmap code. - - Fixed size of data written by gif images to .C files + - Fixed size of data written by gif images to .C files - - Menu titles and buttons in the menubar can be images - (allows it to be used as a toolbar) + - Menu titles and buttons in the menubar can be images + (allows it to be used as a toolbar) - - Reads selectBackground from the xrdb database to set - the selection color. Adding this to your .Xdefaults - will make fltk and Motif programs look much more - Windoze-like: + - Reads selectBackground from the xrdb database to set + the selection color. Adding this to your .Xdefaults + will make fltk and Motif programs look much more + Windoze-like: - *selectForeground: white - *selectBackground: #000080 + *selectForeground: white + *selectBackground: #000080 - - FL_WHEN_RELEASE on Fl_Input will now do the callback - when the input field is hidden, for instance when it - is on a tab and the user switches to another tab. + - FL_WHEN_RELEASE on Fl_Input will now do the callback + when the input field is hidden, for instance when it + is on a tab and the user switches to another tab. - - Fl_Gl_Window with an overlay on X always resized any - child windows even if you turned resizable() off - because it turned it back on to resize the overlay - window. This patch avoids changing resizable(). + - Fl_Gl_Window with an overlay on X always resized any + child windows even if you turned resizable() off + because it turned it back on to resize the overlay + window. This patch avoids changing resizable(). - - Fix so multiple Fl::add_idle() calls works + - Fix so multiple Fl::add_idle() calls works - - The input focus got messed up if you called - Fl_Tabs::value(x) and there was something that took - focus on an earlier tab. + - The input focus got messed up if you called + Fl_Tabs::value(x) and there was something that took + focus on an earlier tab. - - Removed some (not all) of the warnings when compiled - with -Wwrite-strings, this should also get similar - warnings Solaris produces. + - Removed some (not all) of the warnings when compiled + with -Wwrite-strings, this should also get similar + warnings Solaris produces. - - Made Fl_Browser not hide the Fl_Widget::show() method + - Made Fl_Browser not hide the Fl_Widget::show() method - - Changes & additions for OS/2 from Alexander Mai + - Changes & additions for OS/2 from Alexander Mai - - Patch from Mike Lindner to make the turning on/off of - scrollbars on Fl_Scroll smarter. + - Patch from Mike Lindner to make the turning on/off of + scrollbars on Fl_Scroll smarter. - - Added missing FL_EXPORT for Fl_Valuator::format() + - Added missing FL_EXPORT for Fl_Valuator::format() - - Shortcuts for "buttons" in a Fl_Menu_Bar work again. + - Shortcuts for "buttons" in a Fl_Menu_Bar work again. - - Fix for cut/paste support and Xdnd. + - Fix for cut/paste support and Xdnd. - - Shortcuts for submenu titles in a menubar pop up the - submenu (rather than calling the callback) + - Shortcuts for submenu titles in a menubar pop up the + submenu (rather than calling the callback) - - Added documentation for GL_SWAP_TYPE + - Added documentation for GL_SWAP_TYPE - - Buttons with box(FL_NO_BOX) did not draw. Apparently - they did in older versions of fltk, I restored this. - (bug 108771) + - Buttons with box(FL_NO_BOX) did not draw. Apparently + they did in older versions of fltk, I restored this. + (bug 108771) - - Removed 8-bit colormap drawing code that was not doing - anything in fl_draw_image due to the colormap - allocation changes. I also made fl_color(r,g,b) - actually allocate the requested color rather than the - nearest fltk color-cube color (this is only done for - the first color that maps to a given entry in the fltk - color cube), the result is that pixmaps with a small - number of colors are drawn much more accurately. The - resulting code seems to produce better images and is a - good deal smaller! + - Removed 8-bit colormap drawing code that was not doing + anything in fl_draw_image due to the colormap + allocation changes. I also made fl_color(r,g,b) + actually allocate the requested color rather than the + nearest fltk color-cube color (this is only done for + the first color that maps to a given entry in the fltk + color cube), the result is that pixmaps with a small + number of colors are drawn much more accurately. The + resulting code seems to produce better images and is a + good deal smaller! - - Fixed makeinclude.in so CFLAGS are used for c source - code instead of CXXFLAGS. (bug 108694) + - Fixed makeinclude.in so CFLAGS are used for c source + code instead of CXXFLAGS. (bug 108694) - - Better fix for gif files suggested by pauly (bug - 108770) + - Better fix for gif files suggested by pauly (bug 108770) - - Performance of Fl_Gl_Window may be improved on some - types of OpenGL implementations, in particular MESA - or other software emulators, by setting the - GL_SWAP_TYPE environment variable. This variable - declares what is in the back buffer after you do a - swapbuffers: + - Performance of Fl_Gl_Window may be improved on some + types of OpenGL implementations, in particular MESA + or other software emulators, by setting the + GL_SWAP_TYPE environment variable. This variable + declares what is in the back buffer after you do a + swapbuffers: - setenv GL_SWAP_TYPE COPY + setenv GL_SWAP_TYPE COPY - 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. + 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. - setenv GL_SWAP_TYPE NODAMAGE + setenv GL_SWAP_TYPE NODAMAGE - 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. + 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. - All other values for GL_SWAP_TYPE, and not setting - the variable, cause fltk to assume that the back - buffer must be completely redrawn after a swap. + All other values for GL_SWAP_TYPE, and not setting + the variable, cause fltk to assume that the back + buffer must be completely redrawn after a swap. - This is easily tested by running the gl_overlay 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. + This is easily tested by running the gl_overlay 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. - - Optimized colormap usage on 8-bit displays with - images. New code only allocates colors as they are - needed (still converts indexed images to full RGB and - dithers, tho...) + - Optimized colormap usage on 8-bit displays with + images. New code only allocates colors as they are + needed (still converts indexed images to full RGB and + dithers, tho...) - - Fixed .gif files in FLUID, they were broken by the fix - for large .xpm files in version 1.0.9. + - Fixed .gif files in FLUID, they were broken by the fix + for large .xpm files in version 1.0.9. - - Fix for OpenGL hardware overlays with the transparent - index != 0. Tested on the brand new HP Linux - Workstations, this is the only bug encountered. Both - X and OpenGL hardware overlay works perfectly on - these, though configue may not enable it by - default...) + - Fix for OpenGL hardware overlays with the transparent + index != 0. Tested on the brand new HP Linux + Workstations, this is the only bug encountered. Both + X and OpenGL hardware overlay works perfectly on + these, though configue may not enable it by + default...) - - Fl_Choice and all other Fl_Menu_ subclasses draw the - items using textcolor() as the default color of the - text. + - Fl_Choice and all other Fl_Menu_ subclasses draw the + items using textcolor() as the default color of the + text. - - Fix suggested by Stuart Levy to fix scrolling when - deleting items from the browser. + - Fix suggested by Stuart Levy to fix scrolling when + deleting items from the browser. - - Replaced the -$(MAKEFLAGS) with $(MFLAGS) as per the - gmake documenation. Apperntly this works with other - make programs and MAKEFLAGS is passed invisibly by - gmake, though the documenation is not too clear... + - Replaced the -$(MAKEFLAGS) with $(MFLAGS) as per the + gmake documenation. Apperntly this works with other + make programs and MAKEFLAGS is passed invisibly by + gmake, though the documenation is not too clear... CHANGES IN FLTK 1.0.9 - - More documentation fixes. - - GLUT_STROKE_*_ROMAN in glut.h are defined as 0,1 on - WIN32 to match the glut header files there. - - Added Fl::has_timeout() and Fl::has_idle() functions. - - Added new Fl::repeat_timeout() method that - measures time from when the last timeout was called. - This has slightly less overhead and allows accurate - spacing of timeouts. - - More Cygwin changes - - FLUID could crash with identifiers with trailing - whitespace. - - Fixed the XPM loading code in FLUID to handle files - longer than 2048 lines. - - Added a bunch of missing FL_EXTERN's to glut.h to - eliminate GLUT linking errors under WIN32. - - Fix for sliders so that clicking on one with a small - (or zero) slider_size will not move the slider. - - fl_shortcut.cxx didn't export fl_old_shortcut() in the - WIN32 DLL. - - Fixed xpaint link in the documentation. - - Included Fl_Input word-wrap fixes from Alexander Rabi - Beels. This will not affect things much because - word-wrap is normally disabled. - - Patch from Stuart Levy so the *last* widget in an - Fl_Pack may be resizable. This should be compatable - because resizable didn't do anything before so there - was no reason to set it. - - Cleaned up the timeout and Fl::wait() code. The new - code calls the clock function less than half as much, - which results in a noticable performance improvement - in some apps. - - Fl::wait(time) with a time greater than the system can - handle (24.855 days on NT, the same on some Unix - systems) will now act as though the time is infinity. - Before it would do unpredictable things. - - "USE_POLL" now compiles and works, although it is - disabled by default. poll() is an alternative to the - UNIX select() call which is available on some version - of UNIX and may be faster depending on the platform; - try it by editing config.h. - - The WIN32 USE_ASYNC_SELECT code now does translation - and dispatching of the select events; this makes - Windows a lot happier. - - Added a check for an open display in Fl::wait() so - that you don't need an open window under X to call it. + - More documentation fixes. + - GLUT_STROKE_*_ROMAN in glut.h are defined as 0,1 on + WIN32 to match the glut header files there. + - Added Fl::has_timeout() and Fl::has_idle() functions. + - Added new Fl::repeat_timeout() method that + measures time from when the last timeout was called. + This has slightly less overhead and allows accurate + spacing of timeouts. + - More Cygwin changes + - FLUID could crash with identifiers with trailing + whitespace. + - Fixed the XPM loading code in FLUID to handle files + longer than 2048 lines. + - Added a bunch of missing FL_EXTERN's to glut.h to + eliminate GLUT linking errors under WIN32. + - Fix for sliders so that clicking on one with a small + (or zero) slider_size will not move the slider. + - fl_shortcut.cxx didn't export fl_old_shortcut() in the + WIN32 DLL. + - Fixed xpaint link in the documentation. + - Included Fl_Input word-wrap fixes from Alexander Rabi + Beels. This will not affect things much because + word-wrap is normally disabled. + - Patch from Stuart Levy so the *last* widget in an + Fl_Pack may be resizable. This should be compatable + because resizable didn't do anything before so there + was no reason to set it. + - Cleaned up the timeout and Fl::wait() code. The new + code calls the clock function less than half as much, + which results in a noticable performance improvement + in some apps. + - Fl::wait(time) with a time greater than the system can + handle (24.855 days on NT, the same on some Unix + systems) will now act as though the time is infinity. + Before it would do unpredictable things. + - "USE_POLL" now compiles and works, although it is + disabled by default. poll() is an alternative to the + UNIX select() call which is available on some version + of UNIX and may be faster depending on the platform; + try it by editing config.h. + - The WIN32 USE_ASYNC_SELECT code now does translation + and dispatching of the select events; this makes + Windows a lot happier. + - Added a check for an open display in Fl::wait() so + that you don't need an open window under X to call it. - [changes in snapshot 2] + [changes in snapshot 2] - - fl_old_shortcut() wasn't being exported in the WIN32 DLL - project. - - Updated Cygwin and Mingw makefiles. - - Updated the BC++ project file. - - You can no longer insert control chars into Fl_Int/Float_Input. - - Fl_Multiline_Input now resets the horizontal position when - focus is changed; this caused problems when multiple multiline - widgets were used in an application. - - All handle() methods are now public, and all draw() methods are - now protected in FLTK widgets. - - More fixes to the OpenGL overlay code on win32. This now - seems to work quite reliably on several different pieces of - hardware. Apparently doing SetLayerPaletteEntries with a - palette larger than the overlay size caused the drivers to - screw up in unpredictable ways. Also SwapBuffers swapped both - the overlay and main window, which is not what fltk's - interface wanted, this was easy to fix however. - - Patch for full scrollbars so that clicking on them does not - move anything. - - Documentation fixes. - - Better horizontal scrolling of Fl_Input when cursor is near - the end of the line. - - Fl_Input::value(x) selects all text. - - Fl_Output and Fl_Multiline_Output would scroll to the end - of the text. - - filename_isdir() now drops any trailing slash from the - filename (needed for Windows) - - Added return type for main() function in line_style demo. - - Running FLUID with the "-cs" option writes the I18N message - file. - - The WIN32 version of XParseGeometry() didn't initialize some - variables. This caused a compiler warning but did not affect - the actual code. + - fl_old_shortcut() wasn't being exported in the WIN32 DLL project. + - Updated Cygwin and Mingw makefiles. + - Updated the BC++ project file. + - You can no longer insert control chars into Fl_Int/Float_Input. + - Fl_Multiline_Input now resets the horizontal position when + focus is changed; this caused problems when multiple multiline + widgets were used in an application. + - All handle() methods are now public, and all draw() methods are + now protected in FLTK widgets. + - More fixes to the OpenGL overlay code on win32. This now + seems to work quite reliably on several different pieces of + hardware. Apparently doing SetLayerPaletteEntries with a + palette larger than the overlay size caused the drivers to + screw up in unpredictable ways. Also SwapBuffers swapped both + the overlay and main window, which is not what fltk's + interface wanted, this was easy to fix however. + - Patch for full scrollbars so that clicking on them does not + move anything. + - Documentation fixes. + - Better horizontal scrolling of Fl_Input when cursor is near + the end of the line. + - Fl_Input::value(x) selects all text. + - Fl_Output and Fl_Multiline_Output would scroll to the end + of the text. + - filename_isdir() now drops any trailing slash from the + filename (needed for Windows) + - Added return type for main() function in line_style demo. + - Running FLUID with the "-cs" option writes the I18N message + file. + - The WIN32 version of XParseGeometry() didn't initialize some + variables. This caused a compiler warning but did not affect + the actual code. - [changes in snapshot 1] + [changes in snapshot 1] - - EMail changes - fltk-bugs@easysw.com now officially - fltk-bugs@fltk.org. - - The FLTK DLL project file didn't include fl_compose.cxx - - Dropped the GCC -fno-rtti option since it caused problems - with existing programs. - - Moved the .fl rules back to the test directory. - - Fixed some makefile and spec file problems. - - Fixed hardware overlays. The problem was the new - fl_clipped() code, which tests against the current window - size. The hardware overlay code did not set the current - window when drawing the overlay. I needed hardware overlay - for DD's code, I'm not sure if these fixes are good enough to - enable this in our general release. Hardware overlay still - only works on SGI Irix. - - Some patches to turn off the MSVC++ -Oa (assume no aliasing) - optimization flag. Suprisingly this only broke a few parts - of fltk, or at least these are the only ones I found. - - Does not unmap child windows when the main window is - iconized. This reduces flashing when the window is - deiconized. - - Fl::key() is set to zero by all events except key down/up. - This will allow you to reliably test if an event or callback - was produced by a keystroke. Fixes the bug posted about - stopping Escape from closing the window. - - User defined cursors on OpenGL windows slowed down NT a - *LOT*. Some attempts to fix this by turning off the cursor - while drawing the window. - - Filename completion in the file chooser works better on NT. - Typing TAB fixes the case of everything you typed to match - the shortest name that can be completed. + - EMail changes - fltk-bugs@easysw.com now officially + fltk-bugs@fltk.org. + - The FLTK DLL project file didn't include fl_compose.cxx + - Dropped the GCC -fno-rtti option since it caused problems + with existing programs. + - Moved the .fl rules back to the test directory. + - Fixed some makefile and spec file problems. + - Fixed hardware overlays. The problem was the new + fl_clipped() code, which tests against the current window + size. The hardware overlay code did not set the current + window when drawing the overlay. I needed hardware overlay + for DD's code, I'm not sure if these fixes are good enough to + enable this in our general release. Hardware overlay still + only works on SGI Irix. + - Some patches to turn off the MSVC++ -Oa (assume no aliasing) + optimization flag. Suprisingly this only broke a few parts + of fltk, or at least these are the only ones I found. + - Does not unmap child windows when the main window is + iconized. This reduces flashing when the window is deiconized. + - Fl::key() is set to zero by all events except key down/up. + This will allow you to reliably test if an event or callback + was produced by a keystroke. Fixes the bug posted about + stopping Escape from closing the window. + - User defined cursors on OpenGL windows slowed down NT a + *LOT*. Some attempts to fix this by turning off the cursor + while drawing the window. + - Filename completion in the file chooser works better on NT. + Typing TAB fixes the case of everything you typed to match + the shortest name that can be completed. CHANGES IN FLTK 1.0.8 - - Many documentation changes/fixes/improvements. - - FLUID didn't save Fl_Double_Window's as - double-buffered windows. - - Fl_Menu_ text color is used if Fl_Menu_Item text color - is not set. - - Added Fl::first_window(window) method to change the - "top" window that is used when showing modal windows. - By default it is the window the user last - clicked/typed in. - - The Fl_Menu::global() handler now uses the current top - window instead of the menu bar for modal stuff. - - Added fl_line_style() function to set the line style. - Note that user-defined line styles ONLY WORK UNDER X11 - and Windows NT/2000. Windows 95/98 do, however, - support the "standard" line styles. - - Fl::wait() does not return immediately when no windows - - XForms keyboard shortcuts using hex keycode constants - now work. - - Updated the configure script for *BSD and to turn off - exceptions and RTTI in the FLTK library itself (does - not affect applications which use these things) - - FLUID now supports I18N using the POSIX or GNU - mechanisms. - - Fixed definition of glutBitmapWidth to match header - file. - - Does not turn visible() on when a window is iconized() - or if a modal window is shown and it's parent is - iconized. This allows the code "while (w->visible() - && w->damage()) Fl::check();" to reliably wait for the - window to be mapped and drawn the first time. - - Setting box(FL_NO_BOX) on a button makes it an - invisible overlay - - FL_NORMAL_SIZE is now a global variable so you can - change the default text size prior to creating your - widgets. - - Menus now draw properly with a box type of - FL_FLAT_BOX. - - Cygwin fixes to compile in POSIX mode. - - Fl_Value_Input callback can call value() or - destructor. - - OpenGL overlays now work under Windows NT! - - Fl_Slider and Fl_Scrollbar could cause a divide by - zero. - - Clicking in an Fl_Input field no longer selects the - whole field, it just moves the text cursor. - - Tru64 UNIX fixes for filename_list() - - Fl_Browser now draws itself properly when deactivated. - - FLUID GUIs now use Courier font for all code input. - - The FLUID OK and Cancel buttons are now all shown in - the same order in all windows. - - Fixes to compile under GCC 2.95.2 - - Fixed the BC5 project files. - - FL_LEFT_MOUSE and friends are now in - - - Fixes for fake OpenGL overlay code under WIN32. - - Message windows are now resizeable. - - On WIN32 non_modal (but not modal) windows have the - close and size boxes. - - Fl_Button and friends didn't honor the - FL_WHEN_NOT_CHANGED condition. - - Disabled XDBE on all platforms. - - XGetDefault patch from James Roth - - New fl_open_display(Display *) function to allow FLTK - to share a display connection with another toolkit - (like Xt, GTK, etc.) - - Shortcut labels for special keys should now display - properly under WIN32. - - fl_set_fonts() did not reuse fonts. - - Fixed shortcut problem under WIN32 when the focus - window changes. - - "dead" keys should now work under X11. - - Fixes to make FLTK compile with GCC 2.95.2 - - FL_SHORTCUT fix for I18N. - - Fixed cut/paste problems under WIN32 - - FLUID now produces correct code for nested class - destructors. - - Nested windows should now redraw properly under WIN32. - - "table" is now static in fl_cursor.cxx - - Fl_Chart used the textcolor() and not the color() for - horizontal bar charts. - - Now set the input hint for TWM and TWM-derived window - managers. - - Now look for TrueColor visual if FLTK is compiled with - USE_COLORMAP == 0. - - Fl_Scrollbar could generate a divide-by-0 error if the - min and max values were the same. - - Fl_Menu_::remove() now removes whole submenus if - needed. - - Scrollbar buttons now draw themselves pushed in as - needed. - - Fixed the gl_overlay demo (and gl overlays in general) - when they are faked with no hardware and the window is - resized. - - Selections weren't shown in Fl_Browser widgets when an - item used the @B (background) format. - - Windows can now be resized by the program under X11 - for more window managers. - - OS/2 makeinclude updates. - - Added Fl.H required by an inline function in - Fl_Repeat_Button.H - - Fl_add_idle adds new functions to the end of the queue - ring, rather than the start, so they are executed in - the order added, and a callback that adds itself does - not prevent others from being called. - - FLUID lets you type in code that starts with '#' for - cpp directives. - - XBell() could be called before the X11 display was - opened, causing a segfault. - - Fixed Fl_Gl_Window::ortho() - Borland C++ doesn't - define GLint to "int", but instead to "long"... - - Fixed Fl_Browser scrollbars within an Fl_Scroll - widget. - - Fl_Output (and non-focused Fl_Input) now scroll in - response to position() - - Fl_Input now does not scroll horizontally if the - entire string will fit in the widget. - - Fl_Scrollbar didn't push the right arrow buttons when - you clicked outside the scroller. - - Now use WSAAsyncSelect() for better socket performance - with Fl::add_fd() + - Many documentation changes/fixes/improvements. + - FLUID didn't save Fl_Double_Window's as + double-buffered windows. + - Fl_Menu_ text color is used if Fl_Menu_Item text color + is not set. + - Added Fl::first_window(window) method to change the + "top" window that is used when showing modal windows. + By default it is the window the user last + clicked/typed in. + - The Fl_Menu::global() handler now uses the current top + window instead of the menu bar for modal stuff. + - Added fl_line_style() function to set the line style. + Note that user-defined line styles ONLY WORK UNDER X11 + and Windows NT/2000. Windows 95/98 do, however, + support the "standard" line styles. + - Fl::wait() does not return immediately when no windows + - XForms keyboard shortcuts using hex keycode constants + now work. + - Updated the configure script for *BSD and to turn off + exceptions and RTTI in the FLTK library itself (does + not affect applications which use these things) + - FLUID now supports I18N using the POSIX or GNU mechanisms. + - Fixed definition of glutBitmapWidth to match header file. + - Does not turn visible() on when a window is iconized() + or if a modal window is shown and it's parent is + iconized. This allows the code "while (w->visible() + && w->damage()) Fl::check();" to reliably wait for the + window to be mapped and drawn the first time. + - Setting box(FL_NO_BOX) on a button makes it an + invisible overlay + - FL_NORMAL_SIZE is now a global variable so you can + change the default text size prior to creating your + widgets. + - Menus now draw properly with a box type of + FL_FLAT_BOX. + - Cygwin fixes to compile in POSIX mode. + - Fl_Value_Input callback can call value() or destructor. + - OpenGL overlays now work under Windows NT! + - Fl_Slider and Fl_Scrollbar could cause a divide by zero. + - Clicking in an Fl_Input field no longer selects the + whole field, it just moves the text cursor. + - Tru64 UNIX fixes for filename_list() + - Fl_Browser now draws itself properly when deactivated. + - FLUID GUIs now use Courier font for all code input. + - The FLUID OK and Cancel buttons are now all shown in + the same order in all windows. + - Fixes to compile under GCC 2.95.2 + - Fixed the BC5 project files. + - FL_LEFT_MOUSE and friends are now in + + - Fixes for fake OpenGL overlay code under WIN32. + - Message windows are now resizeable. + - On WIN32 non_modal (but not modal) windows have the + close and size boxes. + - Fl_Button and friends didn't honor the + FL_WHEN_NOT_CHANGED condition. + - Disabled XDBE on all platforms. + - XGetDefault patch from James Roth + - New fl_open_display(Display *) function to allow FLTK + to share a display connection with another toolkit + (like Xt, GTK, etc.) + - Shortcut labels for special keys should now display + properly under WIN32. + - fl_set_fonts() did not reuse fonts. + - Fixed shortcut problem under WIN32 when the focus + window changes. + - "dead" keys should now work under X11. + - Fixes to make FLTK compile with GCC 2.95.2 + - FL_SHORTCUT fix for I18N. + - Fixed cut/paste problems under WIN32 + - FLUID now produces correct code for nested class + destructors. + - Nested windows should now redraw properly under WIN32. + - "table" is now static in fl_cursor.cxx + - Fl_Chart used the textcolor() and not the color() for + horizontal bar charts. + - Now set the input hint for TWM and TWM-derived window + managers. + - Now look for TrueColor visual if FLTK is compiled with + USE_COLORMAP == 0. + - Fl_Scrollbar could generate a divide-by-0 error if the + min and max values were the same. + - Fl_Menu_::remove() now removes whole submenus if + needed. + - Scrollbar buttons now draw themselves pushed in as + needed. + - Fixed the gl_overlay demo (and gl overlays in general) + when they are faked with no hardware and the window is + resized. + - Selections weren't shown in Fl_Browser widgets when an + item used the @B (background) format. + - Windows can now be resized by the program under X11 + for more window managers. + - OS/2 makeinclude updates. + - Added Fl.H required by an inline function in + Fl_Repeat_Button.H + - Fl_add_idle adds new functions to the end of the queue + ring, rather than the start, so they are executed in + the order added, and a callback that adds itself does + not prevent others from being called. + - FLUID lets you type in code that starts with '#' for + cpp directives. + - XBell() could be called before the X11 display was + opened, causing a segfault. + - Fixed Fl_Gl_Window::ortho() - Borland C++ doesn't + define GLint to "int", but instead to "long"... + - Fixed Fl_Browser scrollbars within an Fl_Scroll + widget. + - Fl_Output (and non-focused Fl_Input) now scroll in + response to position() + - Fl_Input now does not scroll horizontally if the + entire string will fit in the widget. + - Fl_Scrollbar didn't push the right arrow buttons when + you clicked outside the scroller. + - Now use WSAAsyncSelect() for better socket performance + with Fl::add_fd() CHANGES IN FLTK 1.0.7 - - Fixed Fl_Input_ bug under WIN32 - no longer stop accepting input - when one of the "Windows" keys is pressed. - - Now call TranslateEvent for all events under WIN32. - - Fixes for OpenBSD and NetBSD - - The FL_CURSOR_HAND cursor now uses the IDC_HAND cursor instead of - IDC_UPARROW under Windows 98 and 2000. - - Fl_Scrollbar now does a page-up/down when you click outside the - scroller. - - Fl_Window::show(0, NULL) causes core dump - - Fixed a compile-time error in fl_call_main.c for Borland C++. - - "fluid -c filename.fl" would try to open an X display if the - FLUID file contained an Fl_Browser widget. - - Fl_Browser now correctly measures items with @C or @B color - formatting commands. - - Fixed a bitmap drawing bug for WIN32 (bit reversal table was wrong) - - fl_xyz() dialogs now set a title in the title bar. - - fl_alert() sounds the bell under X11. - - fl_xyz() dialogs now call MessageBeep() under WIN32. - - Fl_Browser_ didn't draw the selection box with the inactive color - when the browser wasn't activated. - - Fl_Browser now responds to FL_KEYBOARD as well as FL_SHORTCUT. If - you subclass it to accept focus then keyboard navigation will work. - - Fl_Tile and Fl_Tabs do their callback when the user changes their - display. - - Made some of the private methods of Fl_Browser protected. - - Now set win_gravity correctly, this helps some X - window managers that use it position the window where - FLTK wants it to be. - - 0-width browsers crashed. - - Minor change: if the X window manager does not do - anything else with windows that don't have their - position specified, the windows appear centered in the - screen, rather than in the top-left corner. This - happened with modal windows under Irix 4Dwm. This - also causes windows to be centered when no window - manager is running, which might be useful for - installation gui programs? - - Clicking in an Fl_Input field the first time selects the entire - field. - - Clicking the middle mouse button in an Fl_Input field now inserts - the text at the indicated position instead of the cursor position. - - Drag-selecting text in an Fl_Input field now copies the text - automatically. - - Fl::flush() no longer calls the draw() method for invisible windows. - - Calling deactivate() on an invisible widget could cause an - infinite loop in some obscure cases. - - Added #pragma's for SGI C++ compilers - the 6.{23} X headers had - errors in them. - - Fl_Gl_Window::ortho() changed so that text and images - are not erased if the origin is off the left/bottom of the - window. - - Small change to Fl_Input so that a click that gives it - the focus also selects all the text. - - Fixed a slider drawing problem. - - You can now add/delete children of Fl_Tabs widgets whether or - not they are visible. - - Now embed woff options for SGI C++ compilers (gets rid of X11 - header warnings) - - draw_pixmap used a cast that the Digital UNIX C++ compiler didn't - like. - - The GLUT function key constants were off by one. - - The XPM reading code didn't handle RGB colors other than #rrggbb. + - Fixed Fl_Input_ bug under WIN32 - no longer stop accepting input + when one of the "Windows" keys is pressed. + - Now call TranslateEvent for all events under WIN32. + - Fixes for OpenBSD and NetBSD + - The FL_CURSOR_HAND cursor now uses the IDC_HAND cursor instead of + IDC_UPARROW under Windows 98 and 2000. + - Fl_Scrollbar now does a page-up/down when you click outside the + scroller. + - Fl_Window::show(0, NULL) causes core dump + - Fixed a compile-time error in fl_call_main.c for Borland C++. + - "fluid -c filename.fl" would try to open an X display if the + FLUID file contained an Fl_Browser widget. + - Fl_Browser now correctly measures items with @C or @B color + formatting commands. + - Fixed a bitmap drawing bug for WIN32 (bit reversal table was wrong) + - fl_xyz() dialogs now set a title in the title bar. + - fl_alert() sounds the bell under X11. + - fl_xyz() dialogs now call MessageBeep() under WIN32. + - Fl_Browser_ didn't draw the selection box with the inactive color + when the browser wasn't activated. + - Fl_Browser now responds to FL_KEYBOARD as well as FL_SHORTCUT. If + you subclass it to accept focus then keyboard navigation will work. + - Fl_Tile and Fl_Tabs do their callback when the user changes their + display. + - Made some of the private methods of Fl_Browser protected. + - Now set win_gravity correctly, this helps some X + window managers that use it position the window where + FLTK wants it to be. + - 0-width browsers crashed. + - Minor change: if the X window manager does not do + anything else with windows that don't have their + position specified, the windows appear centered in the + screen, rather than in the top-left corner. This + happened with modal windows under Irix 4Dwm. This + also causes windows to be centered when no window + manager is running, which might be useful for + installation gui programs? + - Clicking in an Fl_Input field the first time selects the entire + field. + - Clicking the middle mouse button in an Fl_Input field now inserts + the text at the indicated position instead of the cursor position. + - Drag-selecting text in an Fl_Input field now copies the text + automatically. + - Fl::flush() no longer calls the draw() method for invisible windows. + - Calling deactivate() on an invisible widget could cause an + infinite loop in some obscure cases. + - Added #pragma's for SGI C++ compilers - the 6.{23} X headers had + errors in them. + - Fl_Gl_Window::ortho() changed so that text and images + are not erased if the origin is off the left/bottom of the + window. + - Small change to Fl_Input so that a click that gives it + the focus also selects all the text. + - Fixed a slider drawing problem. + - You can now add/delete children of Fl_Tabs widgets whether or + not they are visible. + - Now embed woff options for SGI C++ compilers (gets rid of X11 + header warnings) + - draw_pixmap used a cast that the Digital UNIX C++ compiler didn't + like. + - The GLUT function key constants were off by one. + - The XPM reading code didn't handle RGB colors other than #rrggbb. CHANGES IN FLTK 1.0.6 - - Fl_win32.cxx defined WM_MOUSE_LEAVE instead of WM_MOUSELEAVE. - - Fl_get_key_win32.cxx needed to include - - gl_draw_pixmap.cxx needed a pointer cast for ANSI C++. - - Fl_Repeat_Button didn't always delete its timeout. - - Now keep track of the current OpenGL context; this provides - significant performance improvements for OpenGL applications - with a single context. + - Fl_win32.cxx defined WM_MOUSE_LEAVE instead of WM_MOUSELEAVE. + - Fl_get_key_win32.cxx needed to include + - gl_draw_pixmap.cxx needed a pointer cast for ANSI C++. + - Fl_Repeat_Button didn't always delete its timeout. + - Now keep track of the current OpenGL context; this provides + significant performance improvements for OpenGL applications + with a single context. CHANGES IN FLTK 1.0.5 - - Fl_Roller didn't handle a width and height of 0. - - filename_list() fix for FreeBSD. - - Fixed RPM install docos - needed "--install" option... - - Fl_Browser_ wouldn't draw the vertical scrollbar right away if it - added a horizontal one which covered the last line. - - Fl_Tabs problems - single-character labels don't show up (problem in - measure_tabs() or measure_label() methods?), and doesn't clear top - tab area before drawing tabs. - - Fl_Browser needs a destructor. - - fl_draw_label() quoted characters between 0x80 and 0xa0, which - caused problems for some programs using the WinANSI character set. - - FLUID didn't handle declared class destructors. - - Fixed another WIN32 cut/paste bug. - - Fl_Tabs didn't work properly when there was only 1 tab. - - Fl_Menu::add() didn't delete the old array. - - Fl_Repeat_Button didn't delete its timeout when disabled. - - fl_draw() would crash if no font was set (now defaults to - a 14-pixel Helvetica font) - - Can't forward declare classes; need to check for "class ", "struct ", - "union ", etc. See Bill's message - - Added #pragma around xlib.h for IRIX - - FL_KEYBOARD events have the correct x/y when sent to child X - windows. Note that if you worked around this bug by adjusting the - x/y yourself you will have to change your code. In addition all - events have the correct x/y when sent to the grab() widget. And - the code to do all this was simplified a lot. - - The XPM code didn't handle named colors with spaces in the names. - - Pressing ESCape closed the window with pointer focus, even if there - was a modal window open (now closes the modal window). - - FLUID no longer produces trigraphs accidentally in the image data. - - FLUID uses string constant concatenation to produce shorter image - data. - - The Fl_Group deletion code crashed if there was exactly one child - widget. - - Simulated overlays in single-buffered Fl_Gl_Windows now draw - correctly (though very slowly as it requires the entire window to - be redrawn to erase the overlay). This fix ported our Digital - Domain programs better to systems with no overlay hardware. - - Added support for extern "C" declarations in FLUID. - - Added Fl_Pack support to FLUID. - - Fixed the order of #include's in FLUID generated header files. - - Fixed detection of vsnprintf and snprintf under HP-UX 10.20 once - and for all. - - The checkers demo did not compile with GCC 2.95 - - FLUID didn't output virtual destructors properly. - - Added inline "make_visible()" method to Fl_Browser. - - Fl::wait() now returns immediately if any timeouts are - called. - - 16-bit XPM files are now properly handled. - - Fl_Window::resize() was missing FL_EXPORT (caused problems - with Windows DLLs) - - FLUID was writing extern declarations twice. - - New FLUID arrow key functionality: arrows move by one pixel, shift+arrow - resizes, ctrl+arrow steps by grid + - Fl_Roller didn't handle a width and height of 0. + - filename_list() fix for FreeBSD. + - Fixed RPM install docos - needed "--install" option... + - Fl_Browser_ wouldn't draw the vertical scrollbar right away if it + added a horizontal one which covered the last line. + - Fl_Tabs problems - single-character labels don't show up (problem in + measure_tabs() or measure_label() methods?), and doesn't clear top + tab area before drawing tabs. + - Fl_Browser needs a destructor. + - fl_draw_label() quoted characters between 0x80 and 0xa0, which + caused problems for some programs using the WinANSI character set. + - FLUID didn't handle declared class destructors. + - Fixed another WIN32 cut/paste bug. + - Fl_Tabs didn't work properly when there was only 1 tab. + - Fl_Menu::add() didn't delete the old array. + - Fl_Repeat_Button didn't delete its timeout when disabled. + - fl_draw() would crash if no font was set (now defaults to + a 14-pixel Helvetica font) + - Can't forward declare classes; need to check for "class ", "struct ", + "union ", etc. See Bill's message + - Added #pragma around xlib.h for IRIX + - FL_KEYBOARD events have the correct x/y when sent to child X + windows. Note that if you worked around this bug by adjusting the + x/y yourself you will have to change your code. In addition all + events have the correct x/y when sent to the grab() widget. And + the code to do all this was simplified a lot. + - The XPM code didn't handle named colors with spaces in the names. + - Pressing ESCape closed the window with pointer focus, even if there + was a modal window open (now closes the modal window). + - FLUID no longer produces trigraphs accidentally in the image data. + - FLUID uses string constant concatenation to produce shorter image + data. + - The Fl_Group deletion code crashed if there was exactly one child + widget. + - Simulated overlays in single-buffered Fl_Gl_Windows now draw + correctly (though very slowly as it requires the entire window to + be redrawn to erase the overlay). This fix ported our Digital + Domain programs better to systems with no overlay hardware. + - Added support for extern "C" declarations in FLUID. + - Added Fl_Pack support to FLUID. + - Fixed the order of #include's in FLUID generated header files. + - Fixed detection of vsnprintf and snprintf under HP-UX 10.20 once + and for all. + - The checkers demo did not compile with GCC 2.95 + - FLUID didn't output virtual destructors properly. + - Added inline "make_visible()" method to Fl_Browser. + - Fl::wait() now returns immediately if any timeouts are + called. + - 16-bit XPM files are now properly handled. + - Fl_Window::resize() was missing FL_EXPORT (caused problems + with Windows DLLs) + - FLUID was writing extern declarations twice. + - New FLUID arrow key functionality: arrows move by one pixel, shift+arrow + resizes, ctrl+arrow steps by grid CHANGES IN FLTK 1.0.4 - - Documentation updates - - Fl_Browser::bottomline(size) didn't scroll to the bottom - if the second-to-last line was visible. - - fl_wait() didn't poll FDs properly for WIN32. - - Fixed DLL definitions for BC++. - - FLUID now handles nested classes properly. - - The "connect" demo now does a wait() for the PPP process - so that you aren't left with a lot of zombie processes. - - Fixed the FLTK colormap to use FF instead of F4 for full - intensity values. - - Minor change to scrollbar drawing code to match other - toolkits. - - New selections would cancel themselves out in WIN32. - - The header file links were broken in the IRIX - distributions. - - fl_elapsed() now always uses GetClockTick() for WIN32. - - fl_display is now initialized to GetModuleHandle(NULL) - - this fixes problems people had with Cygwin and MingW32. - - WinMain() is no longer compiled in with Cygwin and - MingW32; it wasn't being used for those compilers anyways. - - Added Solaris compiler options to configure script. - - Fl_Value_Input wouldn't update properly if you set the - value from a callback. - - Fl_Tile wouldn't resize if the resizeable widget was the - last child. - - Was missing #include and #include in - several files, which caused problems on some platforms. - - Fixed another case where Fl_Browser_ could get in an - infinite resizing loop. - - Fl_win32.cxx now includes to export missing - DLL symbols. - - FLUID didn't handle member functions that include the - scope operator. - - Fl_Chart was dividing by 0 if there were no data samples - or if they were all the same (min == max). + - Documentation updates + - Fl_Browser::bottomline(size) didn't scroll to the bottom + if the second-to-last line was visible. + - fl_wait() didn't poll FDs properly for WIN32. + - Fixed DLL definitions for BC++. + - FLUID now handles nested classes properly. + - The "connect" demo now does a wait() for the PPP process + so that you aren't left with a lot of zombie processes. + - Fixed the FLTK colormap to use FF instead of F4 for full + intensity values. + - Minor change to scrollbar drawing code to match other + toolkits. + - New selections would cancel themselves out in WIN32. + - The header file links were broken in the IRIX + distributions. + - fl_elapsed() now always uses GetClockTick() for WIN32. + - fl_display is now initialized to GetModuleHandle(NULL) - + this fixes problems people had with Cygwin and MingW32. + - WinMain() is no longer compiled in with Cygwin and + MingW32; it wasn't being used for those compilers anyways. + - Added Solaris compiler options to configure script. + - Fl_Value_Input wouldn't update properly if you set the + value from a callback. + - Fl_Tile wouldn't resize if the resizeable widget was the + last child. + - Was missing #include and #include in + several files, which caused problems on some platforms. + - Fixed another case where Fl_Browser_ could get in an + infinite resizing loop. + - Fl_win32.cxx now includes to export missing + DLL symbols. + - FLUID didn't handle member functions that include the + scope operator. + - Fl_Chart was dividing by 0 if there were no data samples + or if they were all the same (min == max). CHANGES IN FLTK 1.0.3 - - XDBE is now enabled for IRIX 6.[234] as well as 6.5. - - FLUID didn't write the when() condition properly. - - Tab/space/backtab/backspace can be used to navigate - through menus. - - Changed $(DSONAME) in the src/Makefile to "libfltk.so.1 - libfltk.sl.1". - - Fl_Browser could read past the end of the string when - computing the item height. - - Fl_Browser could get in an infinite loop when checking to - see if scrollbars needed to be displayed. - - FLUID now honors the return type of the outermost widget. - This was a problem when substituting Fl_Group in an - Fl_Window widget. - - Fl_Menu_::copy() wasn't allocating a power of 2 for the - array size. - - FLWM would crash if fl_xmousewin was deleted. - - The fast_slow demo now uses output widgets. - - Timers under WIN32 were unreliable. + - XDBE is now enabled for IRIX 6.[234] as well as 6.5. + - FLUID didn't write the when() condition properly. + - Tab/space/backtab/backspace can be used to navigate + through menus. + - Changed $(DSONAME) in the src/Makefile to "libfltk.so.1 + libfltk.sl.1". + - Fl_Browser could read past the end of the string when + computing the item height. + - Fl_Browser could get in an infinite loop when checking to + see if scrollbars needed to be displayed. + - FLUID now honors the return type of the outermost widget. + This was a problem when substituting Fl_Group in an + Fl_Window widget. + - Fl_Menu_::copy() wasn't allocating a power of 2 for the + array size. + - FLWM would crash if fl_xmousewin was deleted. + - The fast_slow demo now uses output widgets. + - Timers under WIN32 were unreliable. CHANGES IN FLTK 1.0.2 - - Documentation updates - - The Visual C++ project files didn't include fl_add_idle.cxx. - - LIBRARY/DSO name inconsistencies in src/Makefile. - - src/Makefile didn't clean the DSO. - - The valuator demo now has only a single callback. - - The code looked for HAVE_SYS_SELECT_H, but the - config file uses HAVE_SYS_SELECT. - - Fl_Image redraw not quite right under X11 or WIN32 - - Problems with timeouts & cube demo under WIN32 - - FLUID problems with inline functions. - - Documentation fixes... - - Fl_Browser::item_height() didn't handle blank lines or - non-default fonts properly. - - FL/math.h didn't have #ifndef...#define...#endif guards - against multiple inclusion... - - Fl_Menu_::copy() fix - didn't allocate power of 2... - - Fl::damage() now remains true until all windows are actually - redrawn. - - Fl_Widget destructor, hide(), and deactivate() methods no longer - send FL_LEAVE, FL_RELEASE, or FL_UNFOCUS events to the widget - (which could cause applications to crash). - - FLUID now outputs symbolic names for align() and when(). - - Fixed select() to use maxfd + 1 instead of maxfd. - - Added "Fl::remove_fd(fd, when)" function so you can remove the - read and write callbacks separately. - - The Fl::add_fd() and Fl::add_timeout() arrays are now dynamically - allocated. - - FLUID didn't always turn the FL_SUBMENU flag on for submenu titles. - - The "extra code" in FLUID now is placed before the "o->end()" call - for Fl_Group and its derived classes. - - You can now set a FL_Window widget's class in FLUID to Fl_Group to - generate a function or class that builds part of a GUI (i.e. no window). - - FLUID now displays "Save file before exiting?" with the standard yes, - no, and cancel buttons rather than "Discard changes?". - - Fl_Menu_::add() now works with any type of menu, even one set with - the menu() method. - - The keypad keys were not always decoded properly under X11. - - Some pointers were not being turned off when widgets were deleted, - which caused some applications (like FLWM) to crash. + - Documentation updates + - The Visual C++ project files didn't include fl_add_idle.cxx. + - LIBRARY/DSO name inconsistencies in src/Makefile. + - src/Makefile didn't clean the DSO. + - The valuator demo now has only a single callback. + - The code looked for HAVE_SYS_SELECT_H, but the + config file uses HAVE_SYS_SELECT. + - Fl_Image redraw not quite right under X11 or WIN32 + - Problems with timeouts & cube demo under WIN32 + - FLUID problems with inline functions. + - Documentation fixes... + - Fl_Browser::item_height() didn't handle blank lines or + non-default fonts properly. + - FL/math.h didn't have #ifndef...#define...#endif guards + against multiple inclusion... + - Fl_Menu_::copy() fix - didn't allocate power of 2... + - Fl::damage() now remains true until all windows are actually + redrawn. + - Fl_Widget destructor, hide(), and deactivate() methods no longer + send FL_LEAVE, FL_RELEASE, or FL_UNFOCUS events to the widget + (which could cause applications to crash). + - FLUID now outputs symbolic names for align() and when(). + - Fixed select() to use maxfd + 1 instead of maxfd. + - Added "Fl::remove_fd(fd, when)" function so you can remove the + read and write callbacks separately. + - The Fl::add_fd() and Fl::add_timeout() arrays are now dynamically + allocated. + - FLUID didn't always turn the FL_SUBMENU flag on for submenu titles. + - The "extra code" in FLUID now is placed before the "o->end()" call + for Fl_Group and its derived classes. + - You can now set a FL_Window widget's class in FLUID to Fl_Group to + generate a function or class that builds part of a GUI (i.e. no window). + - FLUID now displays "Save file before exiting?" with the standard yes, + no, and cancel buttons rather than "Discard changes?". + - Fl_Menu_::add() now works with any type of menu, even one set with + the menu() method. + - The keypad keys were not always decoded properly under X11. + - Some pointers were not being turned off when widgets were deleted, + which caused some applications (like FLWM) to crash. CHANGES IN FLTK 1.0.1 - - Documentation fixes. - - Fl::check() didn't return the correct value, breaking a number - of applications. - - Fixed FLUID bug that caused styles patch to crash when you delete - a menu item. - - Updated valuators demo to put the values in the gui box. - - Fl_Browser_::item_height() didn't always compute the correct - value. - - Fixed the alignment of Fl_Choice text. - - Fixes for OS/2. - - Fl_Menu_Item::clear() didn't clear value. - - Added some changes to make FLTK work with Borland C++. - - ANSI C++ fixes. - - Plugged a memory leak in the fractal demo. - - Fl::add_timeout() didn't work under WIN32 with small values. - - The configure script and makefiles now define DSONAME and - use the static library for all example programs. + - Documentation fixes. + - Fl::check() didn't return the correct value, breaking a number + of applications. + - Fixed FLUID bug that caused styles patch to crash when you delete + a menu item. + - Updated valuators demo to put the values in the gui box. + - Fl_Browser_::item_height() didn't always compute the correct + value. + - Fixed the alignment of Fl_Choice text. + - Fixes for OS/2. + - Fl_Menu_Item::clear() didn't clear value. + - Added some changes to make FLTK work with Borland C++. + - ANSI C++ fixes. + - Plugged a memory leak in the fractal demo. + - Fl::add_timeout() didn't work under WIN32 with small values. + - The configure script and makefiles now define DSONAME and + use the static library for all example programs. diff --git a/CHANGES_1.1.txt b/CHANGES_1.1.txt index 404132a66..5b8e0355e 100644 --- a/CHANGES_1.1.txt +++ b/CHANGES_1.1.txt @@ -1,2660 +1,2655 @@ Changes in FLTK 1.1, up to FLTK 1.1.10 (December 27, 2009) -CHANGES IN FLTK 1.1.10 Dec 27, 2009 +CHANGES IN FLTK 1.1.10 RELEASED: Dec 27, 2009 - - Widgets now remove stale entries from the default callback - queue when they are deleted (STR #2302) - - Fixed selection bug in Fl_Int_Input (STR #2292) - - Fixed character set conversion functions (STR #2268) - - Fixed image lib configure and fltk-config issues by backporting - the image lib and zlib configure code from FLTK 1.3 (STR #2203) - - Updated the bundled libpng to v1.2.40 (released Sep. 10, 2009) - - Fixed Fl_Choice contrast with light-on-dark settings (STR #2219) - - Added Xft2 font lookup table (STR #2215) - - Fixed X server "lock", if a modal dialog window is opened - while a menu is active (STR #1986) - - Updated mirror sites in documentation (STR #2220) - - Setting a default font for Xft (STR #2216) - - Temporarily limited builds to 32-bit on OX S to stay - compatible to Snow Leopard - - Fixed Windows compile bug with "#define USE_COLORMAP 0" - (STR #2241) - - Fixed glibc 2.10 compiler problems (Fedora 11 and others) - with scandir() and strchr() (STR #2222) - - Fixed OpenGL shared context handling (STR #2135) - - Fixed gray-scale images with alpha channel (STR #2105) - - Fixed unexpected shortcut behavior for Win32 (STR #2199) - - Added cast to Fl_Color in all Fluid code (STR #2206) - - Fixed wrong identifier for special keys combined with - modifier (STR #2196) - - Fixed documentation for Fl_Progress (STR #2209) - - Fix for multiple popups, when dragging and calling fl_alert() - and friends from the callback (STR #2159) - - Avoiding crashes for recursive common dialogs (this does not - fix the issue at hand yet) (STR 2150) - - Fluid printing used wrong colors under Windows (STR #2195) - - Fixed bad system menu hadling in OS X (STR #2153) - - Fixed File Input mouse pointer dragging (STR #2181) - - Added Fl_Scroll::bbox() documentation (STR #1893) - - Fixed static linking of image libraries (STR #1962) - - Fixed callback would not be called when shortcut was used with - radio and toggle buttons in default FL_RELEASE mode. - - Fixed a problem with TrackMouseEvent() (Windows only) that would - generate wrong FL_LEAVE events with subwindows. TrackMouseEvent - is now enabled by default (it was disabled for GNU compilers). - It can be disabled by defining NO_TRACK_MOUSE. - Improved test/subwindow.cxx (STR #2079) - - Fixed RGB colors for round box (STR #2097) - - Fixed documentation (added missing COMCTRL32.LIB dependency) - - Fl_Group::clip_children() is now public (STR #2017) - - Fixed first modifier key event (STR #1952) - - Fixed wrong default value of Fl_Spinner in Fluid (STR #1991) - - Fixed Fluid textcolor output (STR #1992) - - Added clarification to Fl_GL_Window mode function (STR #1945) - - Fl_Group and Fl_Scroll now resize themselves before - resizing their children (STR #2032) - - Fixed adding an idle handler during a draw() call (STR #1950) - - Improved stability of fl_read_image (STR #2021) - - Fixed menu position close to screen border (STR #2057) + - Widgets now remove stale entries from the default callback + queue when they are deleted (STR #2302) + - Fixed selection bug in Fl_Int_Input (STR #2292) + - Fixed character set conversion functions (STR #2268) + - Fixed image lib configure and fltk-config issues by backporting + the image lib and zlib configure code from FLTK 1.3 (STR #2203) + - Updated the bundled libpng to v1.2.40 (released Sep. 10, 2009) + - Fixed Fl_Choice contrast with light-on-dark settings (STR #2219) + - Added Xft2 font lookup table (STR #2215) + - Fixed X server "lock", if a modal dialog window is opened + while a menu is active (STR #1986) + - Updated mirror sites in documentation (STR #2220) + - Setting a default font for Xft (STR #2216) + - Temporarily limited builds to 32-bit on OX S to stay + compatible to Snow Leopard + - Fixed Windows compile bug with "#define USE_COLORMAP 0" + (STR #2241) + - Fixed glibc 2.10 compiler problems (Fedora 11 and others) + with scandir() and strchr() (STR #2222) + - Fixed OpenGL shared context handling (STR #2135) + - Fixed gray-scale images with alpha channel (STR #2105) + - Fixed unexpected shortcut behavior for Win32 (STR #2199) + - Added cast to Fl_Color in all Fluid code (STR #2206) + - Fixed wrong identifier for special keys combined with + modifier (STR #2196) + - Fixed documentation for Fl_Progress (STR #2209) + - Fix for multiple popups, when dragging and calling fl_alert() + and friends from the callback (STR #2159) + - Avoiding crashes for recursive common dialogs (this does not + fix the issue at hand yet) (STR 2150) + - Fluid printing used wrong colors under Windows (STR #2195) + - Fixed bad system menu hadling in OS X (STR #2153) + - Fixed File Input mouse pointer dragging (STR #2181) + - Added Fl_Scroll::bbox() documentation (STR #1893) + - Fixed static linking of image libraries (STR #1962) + - Fixed callback would not be called when shortcut was used with + radio and toggle buttons in default FL_RELEASE mode. + - Fixed a problem with TrackMouseEvent() (Windows only) that would + generate wrong FL_LEAVE events with subwindows. TrackMouseEvent + is now enabled by default (it was disabled for GNU compilers). + It can be disabled by defining NO_TRACK_MOUSE. + Improved test/subwindow.cxx (STR #2079) + - Fixed RGB colors for round box (STR #2097) + - Fixed documentation (added missing COMCTRL32.LIB dependency) + - Fl_Group::clip_children() is now public (STR #2017) + - Fixed first modifier key event (STR #1952) + - Fixed wrong default value of Fl_Spinner in Fluid (STR #1991) + - Fixed Fluid textcolor output (STR #1992) + - Added clarification to Fl_GL_Window mode function (STR #1945) + - Fl_Group and Fl_Scroll now resize themselves before + resizing their children (STR #2032) + - Fixed adding an idle handler during a draw() call (STR #1950) + - Improved stability of fl_read_image (STR #2021) + - Fixed menu position close to screen border (STR #2057) -CHANGES IN FLTK 1.1.9 RELEASED: Apr 27 2008 +CHANGES IN FLTK 1.1.9 RELEASED: Apr 27 2008 - - Improved color contrast in secondary selection blocks - of Fl_Text_Display (STR #1917) - - Fixed regression in callback handling (STR #1918) - - Fixed wrong relative path when absolute path has a - trailing slash in fl_filename_relative (STR #1920) - - Fixed multiple selection of files and directories in - Fl_File_Chooser (STR #1913) - - Fixed MSWindows crash when selecting umlauts - in Fl_Help_View (STR #1912) + - Improved color contrast in secondary selection blocks + of Fl_Text_Display (STR #1917) + - Fixed regression in callback handling (STR #1918) + - Fixed wrong relative path when absolute path has a + trailing slash in fl_filename_relative (STR #1920) + - Fixed multiple selection of files and directories in + Fl_File_Chooser (STR #1913) + - Fixed MSWindows crash when selecting umlauts + in Fl_Help_View (STR #1912) -CHANGES IN FLTK 1.1.8 RELEASED: Mar 27 2008 +CHANGES IN FLTK 1.1.8 RELEASED: Mar 27 2008 - - Documentation fixes (STR #1454, STR #1455, STR #1456, - STR #1457, STR #1458, STR #1460, STR #1481, STR #1578, - STR #1639, STR #1645, STR #1644, STR #1792, STR #1793, - STR #1742, STR #1777, STR #1794, STR #1827, STR #1843, - STR #1796, STR #1815, STR #1726, STR #1753, STR #1855, - STR #1862, STR #1867, STR #1874, STR #1888) - - Fixed library path in Makefile (STR #1885) - - Fixed image read for partial regions on X11 - (STR #1716) - - Fixed KDE/Gnome icon paths (STR #1795) - - Fixed Tab key to wrap around menu bars (STR #1877) - - Fixed possible timer leak in Scrollbar (STR #1880) - - Added documentation about the potential limitations - of Fl::grab on newer operating systems (STR #1747) - - Fixed lockout when mixing popups and alerts - (STR # 1869) - - Fixed recursion crash in event handling (STR #1873) - - Fixed missing return code in 'fltk-config' (STR #1875) - - Fixed inconsistencies with CHANGED flags (STR #1719) - - Fixed message sent to hidden widgets (STR #1849) - - Fixed width calculation in Fl_Help_View (STR #1868) - - Fixed offset bug in OS X pixmap code (STR #1856) - - Fixed potential buffer overrun - in Fl_Preferences (STR #1853) - - Fixed method attributes in consecutive class - declarations in FLUID (STR #1741) - - FLUID checks for seperately declared callbacks to - avoid a bogus "extern" declaration (STR #1776) - - Added "protected" class memebrs in FLUID - - Double-clicking a widget in a FLUID layout will show - the item in the widget browser - - Fixed color highlighting in Text_Display - - Fixed 16 bit PNM image support (STR #1847) - - Fixed exposure event on zero size windows (STR #1824) - - Fixed overlay offset for OS X Quartz (STR #1729) - - gl_font() support for Xft+X11 (STR #1809) - - Fl_Gl_Window::mode() needed to hide and show the window - when toggling stereo mode (STR #1846) - - Fl_Gl_Window::show() did not work reliably on Mac OS X - (STR #1707) - - Added Fl_Group::clip_children() methods to support - automatic clipping of child widget drawing (STR #1844) - - Fl_Browser_ and friends now support FL_WHEN_ENTER_KEY - for both Enter/Return and double-clicks (STR #1818) - - Fl_Help_View did not release the images it used (STR - #1817) - - Shared libraries would not build on 64-bit Linux - systems with an existing non-PIC FLTK installation - (STR #1791) - - Fl_Browser::hide() and Fl_Browser::show() did not - correctly update the scrollbar (STR #1724) - - The configure script now shows a summry of the - configuration results (STR #1810) - - "fltk-config --use-* --libs" did not list all of the - dependent libraries (STR #1799) - - Hiding a nested window on WIN32 caused 100% CPU (STR #1748) - - Changing the window size in FLUID would not mark the - project as modified (STR #1751) - - Fixed fl_filename_isdir for "/"-path (STR #1761) - - Fixed Fl_Chart drawing (STR #1756) - - Fixed mapping of subwindows with unmapped parent - windows (STR #1706) - - Fixed rendering of grayscale images with alpha - channel (STR #1703) - - Fixed occasional incomplete refresh (STR #1681) - - Improved fl_down, fl_frame, added fl_box (STR #1678) - - Fixed selection of submenu items in - input_choice (STR #1676) - - Fixed calculation of stride for image scaling and - color manipulation (STR #1673) - - Made -O3 the default optimization on Cygwin/Mingw since - -Os currently creates bad code (STR #1656) - - OSF/Tru64 now uses 'install-sh' instead of 'install' to - accomodate for a missing '-d' option (STR #1632) - - New option in Fluid project settings to translate all - shortcut modifiers from FL_META or FL_CTRL to FL_COMMAND - - Made icon size fixed (50x50) in fl_message etc. (STR #1626) - - Fixed selection of first word in Fl_Help_View - - Fixed endless loop in Fl_Text_Display (STR #1655) - - Allowing shortcuts in Tabs (STR #1652) - - Fixed Makefile "make clean" (STR #1642, - STR #1643, STR #1641) - - The sample RPM spec file now enables large file support - and threading support (STR #1603) - - Changed minimum contrast between background and text to - 99 and added more weight to the blue component to improve - readability for certain color combinations (STR #1625) - - Fixed VCNet OpenGL project file (STR #1617) - - Fixed scrolling of clipped areas in MSWindows (STR - #1601) - - Fixed clipping in OS X Quartz offscreen buffers (STR - #1595) - - Now flush file chooser preferences after every change to - avoid data loss (STR #1609) - - The Fl_File_Chooser constructor now saves and restores the - current group (STR #1611) - - Added Fl::awake(fn*,void*) to set a handler for thread - messages (STR #1536) - - Added "mute sound" option to Sudoku game. - - Updated the bundled zlib to v1.2.3. - - Updated the bundled libpng to v1.2.16. - - "make install" now uses the install command (or the - included install-sh script) to copy files to the - install directories, to ensure that permissions are - correct. - - Fixed DLL generation via MingW/Cygwin (STR #1546) - - FLUID incorrectly opened the display when generating - source code for Fl_Help_View widgets (STR #1318) - - Fl_Double_Window did not always show the scheme - background image. - - Fixed first window behavior in OS X (STR #1548) - - Fixed calculation of character widths for OS X - Quartz rendering (no STR) - - Fixed OS X mouse click handling (STR #1504) - - Added missing GLUT functions so that FLTK can be used - as a fairly complete C++ replacement for the original - GLUT library (STR #1522) - - Fl::awake() could block on X11 and OSX (STR #1537) - - Updated recursive mutex code to run on platforms other - than Linux and to do a run-time check to determine - whether they are supported by the kernel (STR #1575) - - WIN32 did check callbacks after the event processing instead of - before as documented (STR #1535) - - Fl_File_Chooser now hides the window before doing a callback - when the user clicks on the OK button (STR #1565) - - Fixed indentation of nested HTML elements (STR #1549) - - Made layout of Fl_Help_Dialog consistent with other - help windows and web browsers. - - Improved GTK+ schemed round box (STR #1531) - - Fluid avoids writing unsupported combinations of the - "when()" flags (STR #1501) - - Fl_Browser_ would allow keyboard callbacks even though - "when()" was set to "never" (STR #1501) - - Added automated little helpers to Sudoku - - Added example code for Wizard with the - Tabs demo (STR #1564) - - Optimized Fl_Tabs drawing for speed (STR #1520) - - OS X resource fork now obsolete (STR #1453) - - Added chapter 10 about multithreading (STR #1532, - 1533) - - OS X system menu bar top level attribute support - improved (STR #1505) - - Fixed Quartz image drawing bug (STR #1438) - - Fixed Quartz fl_read_image - - Overlay drawing is now avoiding XOR mode (STR #1438) - - Fixed Scroll crash in Fluid Live Mode (STR #1524) - - Fixed mousewheel event propagation (STR #1521) - - Fixed drawing issues of a tile in a scroll (STR #1507) - - Fixed dismissing buttons in menu bars (STR #1494) - - Making a child group visible in a Fl_Tabs or Fl_Wizard - group now shows that tab or pane. - - Added fl_open_uri() function as proposed on - fltk.development. - - Added Fl::has_check() which previously was prototyped - and documented, but not implemented (STR #1542) - - Enabled Fl::add_check() on OS X (STR #1534) - - Documented tooltip inheritance (STR #1467) - - Better event mouse handling fixing detached menus and - sticky tooltips (STR #1463, STR #449) - - Added Fl::scrollbar_size() methods that are used by all - of the scrollbar-using widgets (STR #1500) - - fl_read_image() was broken on Intel-based Macs (STR - #1490) - - Fl_Progress was using the wrong width to calculate - progress (STR #1492) - - Fl::x(), Fl::y(), Fl::w(), and Fl::h() did not report - the desktop work area on X11 (STR #1482) - - Shortcut events could be sent to the wrong window (STR - #1451) - - Fl_Spinner did not handle the arrow keys properly (STR - #1476) - - Fl_File_Browser did not calculate the width of - directory items correctly (STR #1469, STR #1470) - - Fl_Pack incorrectly started widgets at an offset of 1/2 - the spacing value. - - FLUID did not generate correct window class code if - the class name was not a standard FLTK window class. - - FLUID incorrectly included for - widget classes that were not subclassed from a standard - FLTK widget class. - - The demo master test program now supports scheme - selection and all demos use it (STR #1459) - - fl_arc() and fl_pie() did not draw properly on WIN32 - when the start and end points were identical (STR - #1461) - - Fl_Input and Fl_Text_Editor now hide the mouse pointer - when typing into them (STR #1466) - - Implemented alpha blending for Quartz, WIN32, and X11 - - Check buttons did not redraw properly with box() set to - FL_NO_BOX (STR #1440) - - Added the Bluecurve-inspired scheme "gtk+". - - Updated documentation (STR #1420, STR #1421) - - Fixed font caching issue (STR #1415) - - Fixed crash in fl_file_chooser (STR #1410) - - Fixed Fluid hotspot bug (STR #1416) - - Fixed image copy code (STR #1412) - - Fixed latin-to-roman text conversion (STR #1411) - - Fixed Cygwin timeout for "select" calls (STR #1151) - - Improved Mac OS X subwindow handling (STR #1402) - - Fixed more inconsistencies between fl_draw and - fl_measure (STR #1408) - - Fixed fl_measure which mistook a trailing '@@' for a - symbol (STR #1406) - - Fixed GLUT behavior on window creation (STR #1403) - - Fixed OS X bug that would hide tooltips before they - were shown (STR #1392) - - Fixed Fl_Tabs tooltip reappearing (STR #1324) - - Added a new demo game called "Block Attack!" - - Updated the Sudoku game to show a notice about Hard and - Impossible puzzles having multiple solutions which are - not a bug or error (STR #1361) - - Fixed filechooser to behave as documented when file - pattern changes (STR #1359) - - Completed the global function index and added an - alphabetical list of all methods (STR #1319) - - Avoiding problems with some platforms that don't - implement hypot() (STR #1366) - - Fixed floating point value formatting for Fl_Spinner - (STR #1331) - - Fixed Fl_Positioner callback when released (STR #1387) - - Fixed WIN32 zero size window issue (STR #1387) - - Fixed Sudoku window positioning (STR #1398) - - Fluid Code Declarations can now handle C++ style - comments (STR #1383) - - Fixed uninitialized data in OS X and WIN32 timeout - functions (STR #1374). - - Fixed speed issues when measuring text on OS X with - Quartz (STR #1386). - - Fixed focus issues on OS X (STR #1377) - - Optional precision argument when storing floats or - doubles in a Preferences file (STR #1381) - - Fixed callback not called when using arrow keys in - Fl_Slider (STR #1333) - - Changing the shortcut of a widget in fluid now marks the - document as dirty (STR #1382) - - Fl_Text_Editor now correctly handles middle mouse - clicks (STR #1384) - - Added some GLUT4 functions (STR #1370) - - Added "context_changed()" function for OpenGL windows - which allows efficient texture loading (STR #1372) - - Added missing "const" to GLUT call (STR #1371) - - Fixed stray FL_RELEASE events after clicking system - areas on OS X (STR #1376) - - FLUID now only writes definitions of "o" and "w" - variables as needed, reducing the number of "variable - is shadowed" warnings from GCC. - - Added access to Xft font pointer (STR #1328) - - Fixed endianness in OS X mouse cursor graphics (STR - #1348) - - Fixed crash on mixed use of keyboard and mouse for - Fl_Menu_Button (STR #1356) - - Fixed Fl_Window::visible() and shown() for OS X - (STR #1341) - - Fixed Fl_Window::copy_label() losing copy (STR #1332) - - Documentation fixes (STR #1336, STR #1329, STR #1339, - STR #1340) - - Added support for floating point Fl_Spinner in the - API, documentation, and Fluid (STR #1331) - - Repeat button now cancels timeout if it should get - deactivated during a callback (STR #1330) - - Added support for assigning Fl_Menu_Items to array - variables in Fluid (STR #1280) - - Added --with-archflags configure option to allow - passing of specific architecture-selection options to - the compiler and linker. - - Fixed WIN32 window stacking bug (STR #1296) - - Fixed wrong code generated by FLUID for Scrollbars (STR - #1287) - - Loading a file would not update the Widget Properties - dialog in FLUID (STR #1326) - - Fixed key compose sequences for shifted keys (STR - #1194) - - Added text selection and copy to Fl_Help_View. - - Fixed position of popup menu titles (STR #1322) - - Showing any window will disable the current tooltip - so it won't pop over menus (STR #1321) - - Updated documentation to reflect limitation of - Fl::delete_widget() (STR #1306) - - Fixed line wrapping in Fl_Text_Display (STR #1227) - - New function Fl::event_original_key() returns key code - before NumLock handling. - - Many OS X Quartz fixes (STR #1310, etc.) - - Fixed shortcut and default focus for message dialogs - (STR #1298) - - Fixed focus issues (STR #1286, STR #1289, STR #1296) - - Fixed window resizing in OS X (STR #1297) - - In FLUID, declarations starting with the keyword - 'typedef', 'class', or 'struct' are now treated - correctly if inside a class (STR #1283) - - Tabs now show the correct tooltip (STR #1282) - - Included fltk.spec in configure.in (STR #1274) - - Fixed insufficiently invalidated cache - in Fl_Browser (STR #1265) - - Attempt to fix multi monitor issues (STR #1153) - - Fixed warnings when compiling w/Cygwin (STR #1152) - - Fixed missing reset of flag in FLUID (STR #1187) - - Fixed maximizing in OS X (STR #1221) - - Fixed 'make distclean' to remove binaries inside - MacOS app packages (STR #1169) - - FLUID Code Viewer is now truly a viewer, not a text - editor because edited text can not be saved. - - Fl_Spinner is now fully supported by FLUID (STR #1158) - - Fixed usage of deleted object after menu pulldown - (STR #1162) - - Calling fl_font(0, 0) under Xft would access a NULL - pointer (STR #1205) - - Setting a new value in Fl_Input_ wil now actually move - cursor to the end of the input field as documented - (STR #1161) - - FLUID crashed on WIN32 with international characters - (STR #1176) - - Fl_Check_Browser did not allow the user to toggle the - check boxes (STR #1232) - - Fl_Help_View crashed on WIN32 with international - characters (STR #1228) - - Fl::run() no longer clears resources on WIN32 (STR - #1231) - - Fl::add_timeout() leaked resources on OSX (STR #1233) - - Accented characters could not be entered on OSX (STR - #1195) - - The caret key lookup was missing for OS X - - FLUID didn't handle loading .fl files with - international characters properly with all compilers - (STR #1150) - - Fl_Spinner's minimum() and maximum() "get" methods were - misspelled (STR #1146) - - The largefile support changes in 1.1.7 broke binary - compability for fl_filename_list(); you must now use - "--enable-largefile" when configuring to get large file - support, and the large file support definitions are - added to the output of "fltk-config --cflags" (STR - #1159) + - Documentation fixes (STR #1454, STR #1455, STR #1456, + STR #1457, STR #1458, STR #1460, STR #1481, STR #1578, + STR #1639, STR #1645, STR #1644, STR #1792, STR #1793, + STR #1742, STR #1777, STR #1794, STR #1827, STR #1843, + STR #1796, STR #1815, STR #1726, STR #1753, STR #1855, + STR #1862, STR #1867, STR #1874, STR #1888) + - Fixed library path in Makefile (STR #1885) + - Fixed image read for partial regions on X11 + (STR #1716) + - Fixed KDE/Gnome icon paths (STR #1795) + - Fixed Tab key to wrap around menu bars (STR #1877) + - Fixed possible timer leak in Scrollbar (STR #1880) + - Added documentation about the potential limitations + of Fl::grab on newer operating systems (STR #1747) + - Fixed lockout when mixing popups and alerts + (STR # 1869) + - Fixed recursion crash in event handling (STR #1873) + - Fixed missing return code in 'fltk-config' (STR #1875) + - Fixed inconsistencies with CHANGED flags (STR #1719) + - Fixed message sent to hidden widgets (STR #1849) + - Fixed width calculation in Fl_Help_View (STR #1868) + - Fixed offset bug in OS X pixmap code (STR #1856) + - Fixed potential buffer overrun + in Fl_Preferences (STR #1853) + - Fixed method attributes in consecutive class + declarations in FLUID (STR #1741) + - FLUID checks for seperately declared callbacks to + avoid a bogus "extern" declaration (STR #1776) + - Added "protected" class memebrs in FLUID + - Double-clicking a widget in a FLUID layout will show + the item in the widget browser + - Fixed color highlighting in Text_Display + - Fixed 16 bit PNM image support (STR #1847) + - Fixed exposure event on zero size windows (STR #1824) + - Fixed overlay offset for OS X Quartz (STR #1729) + - gl_font() support for Xft+X11 (STR #1809) + - Fl_Gl_Window::mode() needed to hide and show the window + when toggling stereo mode (STR #1846) + - Fl_Gl_Window::show() did not work reliably on Mac OS X + (STR #1707) + - Added Fl_Group::clip_children() methods to support + automatic clipping of child widget drawing (STR #1844) + - Fl_Browser_ and friends now support FL_WHEN_ENTER_KEY + for both Enter/Return and double-clicks (STR #1818) + - Fl_Help_View did not release the images it used (STR + #1817) + - Shared libraries would not build on 64-bit Linux + systems with an existing non-PIC FLTK installation + (STR #1791) + - Fl_Browser::hide() and Fl_Browser::show() did not + correctly update the scrollbar (STR #1724) + - The configure script now shows a summry of the + configuration results (STR #1810) + - "fltk-config --use-* --libs" did not list all of the + dependent libraries (STR #1799) + - Hiding a nested window on WIN32 caused 100% CPU (STR #1748) + - Changing the window size in FLUID would not mark the + project as modified (STR #1751) + - Fixed fl_filename_isdir for "/"-path (STR #1761) + - Fixed Fl_Chart drawing (STR #1756) + - Fixed mapping of subwindows with unmapped parent + windows (STR #1706) + - Fixed rendering of grayscale images with alpha + channel (STR #1703) + - Fixed occasional incomplete refresh (STR #1681) + - Improved fl_down, fl_frame, added fl_box (STR #1678) + - Fixed selection of submenu items in + input_choice (STR #1676) + - Fixed calculation of stride for image scaling and + color manipulation (STR #1673) + - Made -O3 the default optimization on Cygwin/Mingw since + -Os currently creates bad code (STR #1656) + - OSF/Tru64 now uses 'install-sh' instead of 'install' to + accomodate for a missing '-d' option (STR #1632) + - New option in Fluid project settings to translate all + shortcut modifiers from FL_META or FL_CTRL to FL_COMMAND + - Made icon size fixed (50x50) in fl_message etc. (STR #1626) + - Fixed selection of first word in Fl_Help_View + - Fixed endless loop in Fl_Text_Display (STR #1655) + - Allowing shortcuts in Tabs (STR #1652) + - Fixed Makefile "make clean" (STR #1642, + STR #1643, STR #1641) + - The sample RPM spec file now enables large file support + and threading support (STR #1603) + - Changed minimum contrast between background and text to + 99 and added more weight to the blue component to improve + readability for certain color combinations (STR #1625) + - Fixed VCNet OpenGL project file (STR #1617) + - Fixed scrolling of clipped areas in MSWindows (STR + #1601) + - Fixed clipping in OS X Quartz offscreen buffers (STR + #1595) + - Now flush file chooser preferences after every change to + avoid data loss (STR #1609) + - The Fl_File_Chooser constructor now saves and restores the + current group (STR #1611) + - Added Fl::awake(fn*,void*) to set a handler for thread + messages (STR #1536) + - Added "mute sound" option to Sudoku game. + - Updated the bundled zlib to v1.2.3. + - Updated the bundled libpng to v1.2.16. + - "make install" now uses the install command (or the + included install-sh script) to copy files to the + install directories, to ensure that permissions are + correct. + - Fixed DLL generation via MingW/Cygwin (STR #1546) + - FLUID incorrectly opened the display when generating + source code for Fl_Help_View widgets (STR #1318) + - Fl_Double_Window did not always show the scheme + background image. + - Fixed first window behavior in OS X (STR #1548) + - Fixed calculation of character widths for OS X + Quartz rendering (no STR) + - Fixed OS X mouse click handling (STR #1504) + - Added missing GLUT functions so that FLTK can be used + as a fairly complete C++ replacement for the original + GLUT library (STR #1522) + - Fl::awake() could block on X11 and OSX (STR #1537) + - Updated recursive mutex code to run on platforms other + than Linux and to do a run-time check to determine + whether they are supported by the kernel (STR #1575) + - WIN32 did check callbacks after the event processing instead of + before as documented (STR #1535) + - Fl_File_Chooser now hides the window before doing a callback + when the user clicks on the OK button (STR #1565) + - Fixed indentation of nested HTML elements (STR #1549) + - Made layout of Fl_Help_Dialog consistent with other + help windows and web browsers. + - Improved GTK+ schemed round box (STR #1531) + - Fluid avoids writing unsupported combinations of the + "when()" flags (STR #1501) + - Fl_Browser_ would allow keyboard callbacks even though + "when()" was set to "never" (STR #1501) + - Added automated little helpers to Sudoku + - Added example code for Wizard with the + Tabs demo (STR #1564) + - Optimized Fl_Tabs drawing for speed (STR #1520) + - OS X resource fork now obsolete (STR #1453) + - Added chapter 10 about multithreading (STR #1532, + 1533) + - OS X system menu bar top level attribute support + improved (STR #1505) + - Fixed Quartz image drawing bug (STR #1438) + - Fixed Quartz fl_read_image + - Overlay drawing is now avoiding XOR mode (STR #1438) + - Fixed Scroll crash in Fluid Live Mode (STR #1524) + - Fixed mousewheel event propagation (STR #1521) + - Fixed drawing issues of a tile in a scroll (STR #1507) + - Fixed dismissing buttons in menu bars (STR #1494) + - Making a child group visible in a Fl_Tabs or Fl_Wizard + group now shows that tab or pane. + - Added fl_open_uri() function as proposed on + fltk.development. + - Added Fl::has_check() which previously was prototyped + and documented, but not implemented (STR #1542) + - Enabled Fl::add_check() on OS X (STR #1534) + - Documented tooltip inheritance (STR #1467) + - Better event mouse handling fixing detached menus and + sticky tooltips (STR #1463, STR #449) + - Added Fl::scrollbar_size() methods that are used by all + of the scrollbar-using widgets (STR #1500) + - fl_read_image() was broken on Intel-based Macs (STR #1490) + - Fl_Progress was using the wrong width to calculate + progress (STR #1492) + - Fl::x(), Fl::y(), Fl::w(), and Fl::h() did not report + the desktop work area on X11 (STR #1482) + - Shortcut events could be sent to the wrong window (STR #1451) + - Fl_Spinner did not handle the arrow keys properly (STR #1476) + - Fl_File_Browser did not calculate the width of + directory items correctly (STR #1469, STR #1470) + - Fl_Pack incorrectly started widgets at an offset of 1/2 + the spacing value. + - FLUID did not generate correct window class code if + the class name was not a standard FLTK window class. + - FLUID incorrectly included for + widget classes that were not subclassed from a standard + FLTK widget class. + - The demo master test program now supports scheme + selection and all demos use it (STR #1459) + - fl_arc() and fl_pie() did not draw properly on WIN32 + when the start and end points were identical (STR #1461) + - Fl_Input and Fl_Text_Editor now hide the mouse pointer + when typing into them (STR #1466) + - Implemented alpha blending for Quartz, WIN32, and X11 + - Check buttons did not redraw properly with box() set to + FL_NO_BOX (STR #1440) + - Added the Bluecurve-inspired scheme "gtk+". + - Updated documentation (STR #1420, STR #1421) + - Fixed font caching issue (STR #1415) + - Fixed crash in fl_file_chooser (STR #1410) + - Fixed Fluid hotspot bug (STR #1416) + - Fixed image copy code (STR #1412) + - Fixed latin-to-roman text conversion (STR #1411) + - Fixed Cygwin timeout for "select" calls (STR #1151) + - Improved Mac OS X subwindow handling (STR #1402) + - Fixed more inconsistencies between fl_draw and + fl_measure (STR #1408) + - Fixed fl_measure which mistook a trailing '@@' for a + symbol (STR #1406) + - Fixed GLUT behavior on window creation (STR #1403) + - Fixed OS X bug that would hide tooltips before they + were shown (STR #1392) + - Fixed Fl_Tabs tooltip reappearing (STR #1324) + - Added a new demo game called "Block Attack!" + - Updated the Sudoku game to show a notice about Hard and + Impossible puzzles having multiple solutions which are + not a bug or error (STR #1361) + - Fixed filechooser to behave as documented when file + pattern changes (STR #1359) + - Completed the global function index and added an + alphabetical list of all methods (STR #1319) + - Avoiding problems with some platforms that don't + implement hypot() (STR #1366) + - Fixed floating point value formatting for Fl_Spinner + (STR #1331) + - Fixed Fl_Positioner callback when released (STR #1387) + - Fixed WIN32 zero size window issue (STR #1387) + - Fixed Sudoku window positioning (STR #1398) + - Fluid Code Declarations can now handle C++ style + comments (STR #1383) + - Fixed uninitialized data in OS X and WIN32 timeout + functions (STR #1374). + - Fixed speed issues when measuring text on OS X with + Quartz (STR #1386). + - Fixed focus issues on OS X (STR #1377) + - Optional precision argument when storing floats or + doubles in a Preferences file (STR #1381) + - Fixed callback not called when using arrow keys in + Fl_Slider (STR #1333) + - Changing the shortcut of a widget in fluid now marks the + document as dirty (STR #1382) + - Fl_Text_Editor now correctly handles middle mouse + clicks (STR #1384) + - Added some GLUT4 functions (STR #1370) + - Added "context_changed()" function for OpenGL windows + which allows efficient texture loading (STR #1372) + - Added missing "const" to GLUT call (STR #1371) + - Fixed stray FL_RELEASE events after clicking system + areas on OS X (STR #1376) + - FLUID now only writes definitions of "o" and "w" + variables as needed, reducing the number of "variable + is shadowed" warnings from GCC. + - Added access to Xft font pointer (STR #1328) + - Fixed endianness in OS X mouse cursor graphics (STR + #1348) + - Fixed crash on mixed use of keyboard and mouse for + Fl_Menu_Button (STR #1356) + - Fixed Fl_Window::visible() and shown() for OS X + (STR #1341) + - Fixed Fl_Window::copy_label() losing copy (STR #1332) + - Documentation fixes (STR #1336, STR #1329, STR #1339, + STR #1340) + - Added support for floating point Fl_Spinner in the + API, documentation, and Fluid (STR #1331) + - Repeat button now cancels timeout if it should get + deactivated during a callback (STR #1330) + - Added support for assigning Fl_Menu_Items to array + variables in Fluid (STR #1280) + - Added --with-archflags configure option to allow + passing of specific architecture-selection options to + the compiler and linker. + - Fixed WIN32 window stacking bug (STR #1296) + - Fixed wrong code generated by FLUID for Scrollbars (STR + #1287) + - Loading a file would not update the Widget Properties + dialog in FLUID (STR #1326) + - Fixed key compose sequences for shifted keys (STR + #1194) + - Added text selection and copy to Fl_Help_View. + - Fixed position of popup menu titles (STR #1322) + - Showing any window will disable the current tooltip + so it won't pop over menus (STR #1321) + - Updated documentation to reflect limitation of + Fl::delete_widget() (STR #1306) + - Fixed line wrapping in Fl_Text_Display (STR #1227) + - New function Fl::event_original_key() returns key code + before NumLock handling. + - Many OS X Quartz fixes (STR #1310, etc.) + - Fixed shortcut and default focus for message dialogs + (STR #1298) + - Fixed focus issues (STR #1286, STR #1289, STR #1296) + - Fixed window resizing in OS X (STR #1297) + - In FLUID, declarations starting with the keyword + 'typedef', 'class', or 'struct' are now treated + correctly if inside a class (STR #1283) + - Tabs now show the correct tooltip (STR #1282) + - Included fltk.spec in configure.in (STR #1274) + - Fixed insufficiently invalidated cache + in Fl_Browser (STR #1265) + - Attempt to fix multi monitor issues (STR #1153) + - Fixed warnings when compiling w/Cygwin (STR #1152) + - Fixed missing reset of flag in FLUID (STR #1187) + - Fixed maximizing in OS X (STR #1221) + - Fixed 'make distclean' to remove binaries inside + MacOS app packages (STR #1169) + - FLUID Code Viewer is now truly a viewer, not a text + editor because edited text can not be saved. + - Fl_Spinner is now fully supported by FLUID (STR #1158) + - Fixed usage of deleted object after menu pulldown + (STR #1162) + - Calling fl_font(0, 0) under Xft would access a NULL + pointer (STR #1205) + - Setting a new value in Fl_Input_ wil now actually move + cursor to the end of the input field as documented + (STR #1161) + - FLUID crashed on WIN32 with international characters + (STR #1176) + - Fl_Check_Browser did not allow the user to toggle the + check boxes (STR #1232) + - Fl_Help_View crashed on WIN32 with international + characters (STR #1228) + - Fl::run() no longer clears resources on WIN32 (STR + #1231) + - Fl::add_timeout() leaked resources on OSX (STR #1233) + - Accented characters could not be entered on OSX (STR + #1195) + - The caret key lookup was missing for OS X + - FLUID didn't handle loading .fl files with + international characters properly with all compilers + (STR #1150) + - Fl_Spinner's minimum() and maximum() "get" methods were + misspelled (STR #1146) + - The largefile support changes in 1.1.7 broke binary + compability for fl_filename_list(); you must now use + "--enable-largefile" when configuring to get large file + support, and the large file support definitions are + added to the output of "fltk-config --cflags" (STR + #1159) -CHANGES IN FLTK 1.1.7 RELEASED: Jan 17 2006 +CHANGES IN FLTK 1.1.7 RELEASED: Jan 17 2006 - - Documentation fixes (STR #571, STR #648, STR #692, STR - #730, STR #744, STR #745, STR #931, STR #942, STR #960, - STR #969) - - Various menu widget fixes (STR #1140, STR #1143, STR - #1144) - - The threads demo would display negative prime numbers - on MacOS X; this appears to be a MacOS X bug, but we - added a workaround to "fix" this (STR #1138) - - Fl::dnd() now sets the content type of the drag to - "text/uri-list" when it sees the dragged text is - composed of URIs. - - Fixed keyboard shortcut handling in FLUID and shortcut - labeling in FLTK (STR #1129) - - Fixed include path for CMake build (STR #1123) - - Fixed unnecessary delay in WIN32 event handling - (STR #1104) - - Fixed handling of Ctrl-C in Fl_Text_Display (STR #1122) - - OS X Quartz version now draw a nice resize control (STR - #1099) - - FLTK now enables large file support when available (STR - #1087) - - Fl_Clock_Output depended on a time value that was the - same as an unsigned long, which is incorrect for WIN64 - and VC++ 2005 (STR #1079) - - Fl_Text_Display::wrap_mode() would crash if no buffer - was associated with the widget (STR #1069) - - Updated the default label and text colors of all widgets - to use FL_FOREGROUND_COLOR instead of FL_BLACK (STR - #1052) - - Fl::set_fonts() now works with Xft (STR #1012) - - Fl_Value_Input now uses the screen-absolute position - instead of the window-relative position when dragging - the value; this avoids some jumping conditions (STR - #1037) - - Menus now pop up fully inside the screen if possible - (STR #973) - - Fixed illegal access in Preferences (STR #1025) - - Fixed x-offset problem in Help_Widget (STR #998) - - Clipboard will persist if owner window is hidden (STR - #1019) - - Fixed handling of Win32 Device Contexts (STR #1007) - - Fixed C++ style comments in C files (STR #997) - - Fixed signedness of scanf() argument (STR #996) - - Fixed cross-compiling problem (STR #995). - - FLUID now knows if a static callback is already - declared in a class and won't declare it 'extern' (STR - #776) - - Some actions in FLUID would not set the "changed" flag - (STR #984, STR #999) - - fl_filename_list now always appends a forward slash to - directory names (STR #874) - - Multiline Input will update right if a space character is - inserted in word wrap mode (STR #981) - - FLUID group labels redraw correctly (STR #959) - - FLUID now updates color of Fl_Tabs children (STR #979) - - FLUID now supports 'size_range()' (STR #851) - - FLUID selection boxes now synchronised (STR #964) - - fl_filename_list() now recognizes pathnames without - trailing slash as directions (STR #854) - - Fl_Text_Display now auto-scrolls in all - directions (STR #915) - - Borderless windows will not show in the taskbar anymore - on X11 (STR #933) - - Fixed event_text() field on FL_DND_* event on - OS X and WIN32 (STR #968) - - The fltk-config utility now supports "--cc" and "--cxx" - options to get the C and C++ compilers that were used - to compile FLTK (STR #868) - - Fl_Valuator-derived widgets could show more digits than - were necessary (STR #971) - - Fl_GIF_Image did not handle images with an incorrect - number of data bits (STR #914) - - Fixed some plastic drawing artifacts (STR #906) - - Fl_Help_View now draws the box outside the scrollbars, - like the other scrollable widgets (STR #871) - - The fltk-config script now handles invocation via a - symlink (STR #869) - - Updated WIN32 cut/paste code to consistently handle DOS - text (STR #961) - - Added shared library support for Cygwin and MingW (STR - #893) - - Fl_File_Chooser did not implement the user_data() - methods (STR #970) - - Compilation could fail if a previous installation of - FLTK was in the same (non-standard) directory as an - image library (STR #926) - - Fixed OSX compilation problems with non-HFS filesystems - (STR #972) - - Problems with CMake on MinGW have been solved, thanks - to Mr. "fltk.x0", who submitted the patch. (STR #863) - - Fixed memory leak in Fl_Check_Browser reported by - "miguel2i". (STR #967) - - Fl_File_Input could draw in the wrong window (STR #958) - - WIN32: Internal WM_PAINT message now ignored (STR #831) - - Added Windows support for Fl_Window::xclass() (STR #848) - - Floating point input field allows characters from - current locale (STR #903) - - Fixed integration of Fl_Input_Choice into FLUID (STR - #879) - - New windows touching the right screen border would be - positioned all the way to the left (STR #898) - - Made pie drawing size for WIN32 and OS X the same as - X11 (STR #905) - - Fixed OS X issue with OpenGL windows inside of Tabs - (STR #602) - - FLUID Code Editor would occasionally not draw the last - character in the buffer (STR #798) - - FLUID Declaration private flag fixed (STR #799) - - FLUID overlay now shows a seperate bounding box of - selected items with correct handles and a dotted - boundig box for all labels (STR #790) - - Fixed left overhang of large chracters in Fl_Input_ - (STR #941) - - Fixed button resizing in File Chooser (STR #884) - - Fixed FLUID redraw issue (STR #912) - - Added 32bit BMP Image file format support (STR #918) - - Value Sliders would not receive focus when clicked on - (STR #911) - - Added redraw of some widgets to show focus change (STR - #910) - - Fl::set_font would not clear 'pretty' name (STR #902) - - Fixed unescaped '@' in fonts demo (STR #867) - - FLUID should not open the Display connection anymore if - creating code only (STR #904) - - Improved hidden copy / ctor implementation (STR #860) - - Increased matrix stack depth and added over/underflow - error (STR #924) - - Reverted Mac Carbon Clipping simplification that broke - subwindow clipping (STR #908, SVN r4386) - - Fixed bitmap scaling code - - Fixed tiny memory leak (STR #878) - - Fixed hang on corrupt jpeg (STR #915) - - Fixed static allocation of font buffer in demo (STR #909) - - Added symbols 'refresh', 'reload', 'undo', and 'redo'. - - Fixed focus loss on Fl_Window:resize() - - Fl::delete_widget would hang fl_wait after deleting the - window (STR #679) - - Fl::paste would sometimes not recoginze external - changes of the clipboard (STR #722) - - Clipping fixes for OSX - - Removed attempt to find items via - Fl_Menu_::find_item() in linked submenus - - FLUID interactive window resizing fixes (STR #873, 791) - - FLUID panel resize and alignment fixes (STR #891) - - Fl_Window::show(argc, argv) now sets the scheme before - showing the window; this should eliminate any - flickering between the standard and plastic schemes on - startup (STR #886) - - Selected tabs are now drawn slightly larger than - unselected tabs so they stand out more (STR #882) - - Round Plastic boxes now draw round (STR #841) - - FL_PLASTIC_DOWN_BOX drew with artifacts (STR #852) - - Changed initializations on WIN32 (STR #862) - - Fl_Preferences::getUserdataPath() didn't work for - sub-groups (STR #872) - - Fixed some redraw issues on Windows XP. - - FLUID didn't set the initial size of widgets properly - (STR #850) - - Fl_Tabs would steal focus away from its children on a - window focus change (STR #870) - - filename_relative() now converts the current directory - to forward slashes as needed on WIN32 (STR #816) - - Fl_File_Chooser::value() and ::directory() now handle - paths with backslashes on WIN32 (STR #811) - - Added the standard rgb.txt file from X11 to the test - directory, allowing all platforms to try the colbrowser - demo (STR #843) - - Resizing of OpenGL subwindows was broken on OSX (STR #804) - - The fltk-config script now supports running from a - source directory (STR #840) - - Fl_Browser_ didn't update the position properly when an - item was deleted (STR #839) - - fl_contrast() now compares the luminosity of each color - (STR #837) - - Fl_Input_ crashed on some platforms when wrapping - international text characters (STR #836) - - Fixed some BMP images loading bugs (STR #825) - - Fl_File_Chooser now returns directory names with a - trailing slash to avoid problems with relative - filenames (STR #819) - - Fl_Help_View now supports the FONT and U elements (STR - #815) - - OpenGL windows that were completely off-screen caused - problems with some graphics cards on WIN32 (STR #831) - - Multiple screen support didn't work on Windows NT and - 95 (STR #821) - - Fl_Scrollbar didn't compute the correct knob size when - using the "nice" types (STR #845) - - fl_draw() would segfault on WIN32 if no font was set; - it now uses the default font (STR #828) - - Fl_Browser_ was calling the callback multiple times for - a single selection change with FL_WHEN_CHANGED (STR - #834) - - Added "filenew", "fileopen", "filesave", "filesaveas", - and "fileprint" symbols with standard toolbar - symbology. - - Updated Fl_Tabs to check the contrast of the label - color against the tab background, and to highlight the - top 5 lines of the tab pane with the selection color so - that selected tabs stand out more. - - The example programs can now compile separate from the - FLTK source distribution (STR #809) - - The example programs are now installed with the - documentation (STR #809) - - Fixed the drawing of the Fl_Browser_ selection box (STR - #786) - - Dropped Codewarrier project files and support. - - The FLTK string functions are now compiled in on all - systems (STR #774) - - Fixed symbol demo label bug (STR #777) - - Fixed position of menu titles (STR #795) - - Added missing Fl_Window::copy_label() method. - - Fixed wrong tooltip in FLUID (STR #784) - - Added zlib path to FLUID (STR #783) - - Menus and other pop-up windows now obey screen - boundaries on multi-screen displays (STR #781) - - Fl_Chart would draw outside its bounding box (STR #780) - - Added Fl::screen_count() and Fl::screen_xywh() APIs to - support multi-screen displays. - - FLUID now supports direct creation of widget classes. - - Fl_File_Chooser now correctly handles multiple - selections that are a mix of files and directories. - - Fl_File_Chooser no longer resets the type() when - choosing a single file, and it now works when selecting - multiple directories (STR #747) - - Fl_File_Icon::load_system_icons() now only loads 16x16 - and 32x32 icon images to improve startup performance. - - Pressing Enter in the file chooser when selecting a - directory will choose that directory if it is currently - shown (STR #746) - - Added a fl_file_chooser_ok_label() function to set the - "OK" button label for the fl_file_chooser() and - fl_dir_chooser() functions. - - Added Fl_File_Chooser::ok_label() methods to set the - "OK" button label. - - The fl_ask() function is now deprecated since it does - not conform to the FLTK Human Interface Guidelines. - - The Fl_File_Chooser window now properly resizes its - controls (STR #766) - - The Fl_Help_Dialog window now properly resizes its - controls (STR #768) - - The Fl_File_Chooser favorites window is now resizable - (STR #770) - - Now provide FL_PLASTIC_ROUND_UP/DOWN_BOX box types - which are used by the plastic scheme. - - FLUID windows that are resized through the widget panel - now remain resizable by the window manager. - - Increased the size of the background image used by - the plastic scheme to reduce the CPU load of redraws - (STR #769) - - Fixed a syntax highlighting bug in the editor demo. - - Fl_Progress now contrasts the label color with the bar - color, so labels will be readable at all times. - - fl_read_image() didn't use the right red, green, and - blue masks on XFree86. - - Fixed Quickdraw drawing of 3 and 4 sided polygons (STR - #765) - - Fixed fl_message() code so that it does not get - accidentaly addded to the current group (STR #253) - - FLUID now highlights code in the widget callback and - code editors. - - FLUID now supports printing of windows. - - Fixed inactive drawing of border, embossed, and - engraved box types. - - Added Fl_Spinner widget (another combination of - existing widgets in a header file) - - FLUID now provides support for UI templates. - - fl_not_clipped() incorrectly used the current window - dimensions for gross clipping, which interfered with - off-screen rendering. - - Fl_Window::draw() and Fl_Window::iconlabel() could leak - memory if copy_label() was used on the window. - - fl_shortcut_label() now shows letter shortcuts in - uppercase, e.g. "Ctrl+N" instead of "Ctrl+n" to be - consistent with other toolkits. - - FLUID now provides unlimited undo/redo support. - - FLUID now provides an option to choose which scheme - (default, none, plastic) to display. - - Fixed scheme background issue with windows in FLUID. - - In FLUID, new widgets are now created with the ideal - size by default, and menu bars are positioned to use - the entire width of the window. - - Added Layout/Widget Size submenu to select default - label and text size (Tiny, Small, and Normal). - - Added Edit/Duplicate command to FLUID to duplicate the - current selection. - - FLUID now tracks the current state of the widget bin - and overlays. - - Now fill the widget image paths with relative - filenames. - - Fixed frame drawing of Fl_Text_Display (STR #762) - - Fl_Clock_Output::value() did not return the previously - set value (STR #748) - - Added comment type to FLUID. This is useful for - generating copyright notices in the source and header - files. - - Fl_Valuator would not format text output with decimal - point when the step value was fractional, but above 1. - - fl_filename_relative() didn't compare drive letters in - a case-insensitive way (STR #741) - - Fixed menu item width calculations with symbols (STR - #740) - - The keyboard shortcut handling code did not handle - 8-bit characters properly (STR #731) - - Fl_JPEG_Image could still crash an app with a corrupt - JPEG file (STR #739) - - Using the layout alignment controls on a menu widget - would cause FLUID to crash (STR #742) - - Added QNX bug workaround for menu handling (STR #704) - - Added Greg Ercolano's simple Fl_Input_Choice widget - which is a combination of the Fl_Input and - Fl_Menu_Button widgets (STR #650) - - Fl_Multiline_Input now scrolls the full height of the - widget instead of 5 lines when the user presses PageUp - or PageDown (STR #727) - - CMake build fixes (STR #724) - - Fl_Browser::swap() didn't handle redraws properly when - the swapped lines had different heights (STR #729) - - FL_MOUSEWHEEL events are now sent first to the widget - under the mouse pointer and then to the first widget - which accepts them. This is similar to the way - shortcut events are handled and is consistent with the - way the mouse wheel is handled by other toolkits. - - Fl::wait() could block on WIN32 if the window was - deleted via Fl::delete_widget() (STR #679) - - Fl_Preferences::RootNode did not find the user's home - directory on some non-US versions of Windows (STR - #720) - - Fl_Window::hide() didn't delete the current clipping - region on WIN32, causing a GDI resource leak in some - situations (STR #723) - - Removed a few warnings when compiling on OS X - - Fl_Menu now draws the arrow more like other toolkits - and 2.0 (STR #651) - - Fixed a VC++ compiler error in Fl_JPEG_Image.cxx (STR - #676) - - FL_SHADOW_BOX/FRAME drew outside of the bounding box - (STR #694) - - Fl_Widget::copy_label(NULL) didn't work (STR #707) - - Fl_Choice now allows click selection like - Fl_Menu_Button and Fl_Menubar (STR #706) - - Updated cmake support (STR #645) - - Fl_Check_Browser didn't draw properly when inactive - (STR #681) - - Removed some redundant code in Fl_Group::handle() (STR - #669) - - The file chooser didn't always deactivate the OK - button when necessary (STR #653) - - Image drawing on OSX changed the current drawing - colors (STR #662) - - Fixed some compiler errors on WIN32 (STR #647, STR - #726) - - FLUID didn't update the widget panel X/Y/W/H values - when moving the selected window (STR #701) - - FLUID didn't use the label type constant names for - menu items, causing them to be drawn using the normal - label type (STR #668) - - Fl_File_Chooser was slow with large directories (STR - #654) - - FLUID didn't add xclass() calls to windows (STR #718) - - The X11 DND code did not correctly select a text - format for incoming data (STR #711) - - Fixes to Fl_JPEG_Image error handler. - - Fl_Menu::popup() and ::pulldown() would crash an - application if a callback created widgets before they - returned (STR #685) - - Fl_Double_Window would cause a full redraw, even if - only small parts of the UI were changed on Mac OS X. - - Fl_JPEG_Image did not correctly handle errors reported - by the JPEG library (STR #652) - - Fl_Menu now draws sub-menu arrows like other toolkits - and FLTK 2.0 (STR #651) - - Fixed a compiler warning in Fl_Window.H (STR #641) - - Tooltips disabled shortcut processing (STR #643) - - Fl::event_number() didn't always match the value sent - to the handle() method (STR #634) - - Fl_Shared_Image::reload() didn't set the image_ - pointer properly in all cases (STR #632) - - Fl_Help_View::topline() incorrectly set the changed() - flag (STR #631) - - Fl_Choice::value() now supports NULL or -1 to deselect - the current item (STR #637) - - More VC++ 6 project file fixes (STR #638) - - Added missing Watcom makefile in the test directory - (STR #636) - - Fl_Text_Display::word_left would hang if the cursor - was at position 0 (STR #635) + - Documentation fixes (STR #571, STR #648, STR #692, STR + #730, STR #744, STR #745, STR #931, STR #942, STR #960, + STR #969) + - Various menu widget fixes (STR #1140, STR #1143, STR + #1144) + - The threads demo would display negative prime numbers + on MacOS X; this appears to be a MacOS X bug, but we + added a workaround to "fix" this (STR #1138) + - Fl::dnd() now sets the content type of the drag to + "text/uri-list" when it sees the dragged text is + composed of URIs. + - Fixed keyboard shortcut handling in FLUID and shortcut + labeling in FLTK (STR #1129) + - Fixed include path for CMake build (STR #1123) + - Fixed unnecessary delay in WIN32 event handling + (STR #1104) + - Fixed handling of Ctrl-C in Fl_Text_Display (STR #1122) + - OS X Quartz version now draw a nice resize control (STR + #1099) + - FLTK now enables large file support when available (STR + #1087) + - Fl_Clock_Output depended on a time value that was the + same as an unsigned long, which is incorrect for WIN64 + and VC++ 2005 (STR #1079) + - Fl_Text_Display::wrap_mode() would crash if no buffer + was associated with the widget (STR #1069) + - Updated the default label and text colors of all widgets + to use FL_FOREGROUND_COLOR instead of FL_BLACK (STR + #1052) + - Fl::set_fonts() now works with Xft (STR #1012) + - Fl_Value_Input now uses the screen-absolute position + instead of the window-relative position when dragging + the value; this avoids some jumping conditions (STR + #1037) + - Menus now pop up fully inside the screen if possible + (STR #973) + - Fixed illegal access in Preferences (STR #1025) + - Fixed x-offset problem in Help_Widget (STR #998) + - Clipboard will persist if owner window is hidden (STR + #1019) + - Fixed handling of Win32 Device Contexts (STR #1007) + - Fixed C++ style comments in C files (STR #997) + - Fixed signedness of scanf() argument (STR #996) + - Fixed cross-compiling problem (STR #995). + - FLUID now knows if a static callback is already + declared in a class and won't declare it 'extern' (STR + #776) + - Some actions in FLUID would not set the "changed" flag + (STR #984, STR #999) + - fl_filename_list now always appends a forward slash to + directory names (STR #874) + - Multiline Input will update right if a space character is + inserted in word wrap mode (STR #981) + - FLUID group labels redraw correctly (STR #959) + - FLUID now updates color of Fl_Tabs children (STR #979) + - FLUID now supports 'size_range()' (STR #851) + - FLUID selection boxes now synchronised (STR #964) + - fl_filename_list() now recognizes pathnames without + trailing slash as directions (STR #854) + - Fl_Text_Display now auto-scrolls in all + directions (STR #915) + - Borderless windows will not show in the taskbar anymore + on X11 (STR #933) + - Fixed event_text() field on FL_DND_* event on + OS X and WIN32 (STR #968) + - The fltk-config utility now supports "--cc" and "--cxx" + options to get the C and C++ compilers that were used + to compile FLTK (STR #868) + - Fl_Valuator-derived widgets could show more digits than + were necessary (STR #971) + - Fl_GIF_Image did not handle images with an incorrect + number of data bits (STR #914) + - Fixed some plastic drawing artifacts (STR #906) + - Fl_Help_View now draws the box outside the scrollbars, + like the other scrollable widgets (STR #871) + - The fltk-config script now handles invocation via a + symlink (STR #869) + - Updated WIN32 cut/paste code to consistently handle DOS + text (STR #961) + - Added shared library support for Cygwin and MingW (STR + #893) + - Fl_File_Chooser did not implement the user_data() + methods (STR #970) + - Compilation could fail if a previous installation of + FLTK was in the same (non-standard) directory as an + image library (STR #926) + - Fixed OSX compilation problems with non-HFS filesystems + (STR #972) + - Problems with CMake on MinGW have been solved, thanks + to Mr. "fltk.x0", who submitted the patch. (STR #863) + - Fixed memory leak in Fl_Check_Browser reported by + "miguel2i". (STR #967) + - Fl_File_Input could draw in the wrong window (STR #958) + - WIN32: Internal WM_PAINT message now ignored (STR #831) + - Added Windows support for Fl_Window::xclass() (STR #848) + - Floating point input field allows characters from + current locale (STR #903) + - Fixed integration of Fl_Input_Choice into FLUID (STR + #879) + - New windows touching the right screen border would be + positioned all the way to the left (STR #898) + - Made pie drawing size for WIN32 and OS X the same as + X11 (STR #905) + - Fixed OS X issue with OpenGL windows inside of Tabs + (STR #602) + - FLUID Code Editor would occasionally not draw the last + character in the buffer (STR #798) + - FLUID Declaration private flag fixed (STR #799) + - FLUID overlay now shows a seperate bounding box of + selected items with correct handles and a dotted + boundig box for all labels (STR #790) + - Fixed left overhang of large chracters in Fl_Input_ + (STR #941) + - Fixed button resizing in File Chooser (STR #884) + - Fixed FLUID redraw issue (STR #912) + - Added 32bit BMP Image file format support (STR #918) + - Value Sliders would not receive focus when clicked on + (STR #911) + - Added redraw of some widgets to show focus change (STR + #910) + - Fl::set_font would not clear 'pretty' name (STR #902) + - Fixed unescaped '@' in fonts demo (STR #867) + - FLUID should not open the Display connection anymore if + creating code only (STR #904) + - Improved hidden copy / ctor implementation (STR #860) + - Increased matrix stack depth and added over/underflow + error (STR #924) + - Reverted Mac Carbon Clipping simplification that broke + subwindow clipping (STR #908, SVN r4386) + - Fixed bitmap scaling code + - Fixed tiny memory leak (STR #878) + - Fixed hang on corrupt jpeg (STR #915) + - Fixed static allocation of font buffer in demo (STR #909) + - Added symbols 'refresh', 'reload', 'undo', and 'redo'. + - Fixed focus loss on Fl_Window:resize() + - Fl::delete_widget would hang fl_wait after deleting the + window (STR #679) + - Fl::paste would sometimes not recoginze external + changes of the clipboard (STR #722) + - Clipping fixes for OSX + - Removed attempt to find items via + Fl_Menu_::find_item() in linked submenus + - FLUID interactive window resizing fixes (STR #873, 791) + - FLUID panel resize and alignment fixes (STR #891) + - Fl_Window::show(argc, argv) now sets the scheme before + showing the window; this should eliminate any + flickering between the standard and plastic schemes on + startup (STR #886) + - Selected tabs are now drawn slightly larger than + unselected tabs so they stand out more (STR #882) + - Round Plastic boxes now draw round (STR #841) + - FL_PLASTIC_DOWN_BOX drew with artifacts (STR #852) + - Changed initializations on WIN32 (STR #862) + - Fl_Preferences::getUserdataPath() didn't work for + sub-groups (STR #872) + - Fixed some redraw issues on Windows XP. + - FLUID didn't set the initial size of widgets properly + (STR #850) + - Fl_Tabs would steal focus away from its children on a + window focus change (STR #870) + - filename_relative() now converts the current directory + to forward slashes as needed on WIN32 (STR #816) + - Fl_File_Chooser::value() and ::directory() now handle + paths with backslashes on WIN32 (STR #811) + - Added the standard rgb.txt file from X11 to the test + directory, allowing all platforms to try the colbrowser + demo (STR #843) + - Resizing of OpenGL subwindows was broken on OSX (STR #804) + - The fltk-config script now supports running from a + source directory (STR #840) + - Fl_Browser_ didn't update the position properly when an + item was deleted (STR #839) + - fl_contrast() now compares the luminosity of each color + (STR #837) + - Fl_Input_ crashed on some platforms when wrapping + international text characters (STR #836) + - Fixed some BMP images loading bugs (STR #825) + - Fl_File_Chooser now returns directory names with a + trailing slash to avoid problems with relative + filenames (STR #819) + - Fl_Help_View now supports the FONT and U elements (STR + #815) + - OpenGL windows that were completely off-screen caused + problems with some graphics cards on WIN32 (STR #831) + - Multiple screen support didn't work on Windows NT and + 95 (STR #821) + - Fl_Scrollbar didn't compute the correct knob size when + using the "nice" types (STR #845) + - fl_draw() would segfault on WIN32 if no font was set; + it now uses the default font (STR #828) + - Fl_Browser_ was calling the callback multiple times for + a single selection change with FL_WHEN_CHANGED (STR + #834) + - Added "filenew", "fileopen", "filesave", "filesaveas", + and "fileprint" symbols with standard toolbar + symbology. + - Updated Fl_Tabs to check the contrast of the label + color against the tab background, and to highlight the + top 5 lines of the tab pane with the selection color so + that selected tabs stand out more. + - The example programs can now compile separate from the + FLTK source distribution (STR #809) + - The example programs are now installed with the + documentation (STR #809) + - Fixed the drawing of the Fl_Browser_ selection box (STR + #786) + - Dropped Codewarrier project files and support. + - The FLTK string functions are now compiled in on all + systems (STR #774) + - Fixed symbol demo label bug (STR #777) + - Fixed position of menu titles (STR #795) + - Added missing Fl_Window::copy_label() method. + - Fixed wrong tooltip in FLUID (STR #784) + - Added zlib path to FLUID (STR #783) + - Menus and other pop-up windows now obey screen + boundaries on multi-screen displays (STR #781) + - Fl_Chart would draw outside its bounding box (STR #780) + - Added Fl::screen_count() and Fl::screen_xywh() APIs to + support multi-screen displays. + - FLUID now supports direct creation of widget classes. + - Fl_File_Chooser now correctly handles multiple + selections that are a mix of files and directories. + - Fl_File_Chooser no longer resets the type() when + choosing a single file, and it now works when selecting + multiple directories (STR #747) + - Fl_File_Icon::load_system_icons() now only loads 16x16 + and 32x32 icon images to improve startup performance. + - Pressing Enter in the file chooser when selecting a + directory will choose that directory if it is currently + shown (STR #746) + - Added a fl_file_chooser_ok_label() function to set the + "OK" button label for the fl_file_chooser() and + fl_dir_chooser() functions. + - Added Fl_File_Chooser::ok_label() methods to set the + "OK" button label. + - The fl_ask() function is now deprecated since it does + not conform to the FLTK Human Interface Guidelines. + - The Fl_File_Chooser window now properly resizes its + controls (STR #766) + - The Fl_Help_Dialog window now properly resizes its + controls (STR #768) + - The Fl_File_Chooser favorites window is now resizable + (STR #770) + - Now provide FL_PLASTIC_ROUND_UP/DOWN_BOX box types + which are used by the plastic scheme. + - FLUID windows that are resized through the widget panel + now remain resizable by the window manager. + - Increased the size of the background image used by + the plastic scheme to reduce the CPU load of redraws + (STR #769) + - Fixed a syntax highlighting bug in the editor demo. + - Fl_Progress now contrasts the label color with the bar + color, so labels will be readable at all times. + - fl_read_image() didn't use the right red, green, and + blue masks on XFree86. + - Fixed Quickdraw drawing of 3 and 4 sided polygons (STR + #765) + - Fixed fl_message() code so that it does not get + accidentaly addded to the current group (STR #253) + - FLUID now highlights code in the widget callback and + code editors. + - FLUID now supports printing of windows. + - Fixed inactive drawing of border, embossed, and + engraved box types. + - Added Fl_Spinner widget (another combination of + existing widgets in a header file) + - FLUID now provides support for UI templates. + - fl_not_clipped() incorrectly used the current window + dimensions for gross clipping, which interfered with + off-screen rendering. + - Fl_Window::draw() and Fl_Window::iconlabel() could leak + memory if copy_label() was used on the window. + - fl_shortcut_label() now shows letter shortcuts in + uppercase, e.g. "Ctrl+N" instead of "Ctrl+n" to be + consistent with other toolkits. + - FLUID now provides unlimited undo/redo support. + - FLUID now provides an option to choose which scheme + (default, none, plastic) to display. + - Fixed scheme background issue with windows in FLUID. + - In FLUID, new widgets are now created with the ideal + size by default, and menu bars are positioned to use + the entire width of the window. + - Added Layout/Widget Size submenu to select default + label and text size (Tiny, Small, and Normal). + - Added Edit/Duplicate command to FLUID to duplicate the + current selection. + - FLUID now tracks the current state of the widget bin + and overlays. + - Now fill the widget image paths with relative + filenames. + - Fixed frame drawing of Fl_Text_Display (STR #762) + - Fl_Clock_Output::value() did not return the previously + set value (STR #748) + - Added comment type to FLUID. This is useful for + generating copyright notices in the source and header + files. + - Fl_Valuator would not format text output with decimal + point when the step value was fractional, but above 1. + - fl_filename_relative() didn't compare drive letters in + a case-insensitive way (STR #741) + - Fixed menu item width calculations with symbols (STR + #740) + - The keyboard shortcut handling code did not handle + 8-bit characters properly (STR #731) + - Fl_JPEG_Image could still crash an app with a corrupt + JPEG file (STR #739) + - Using the layout alignment controls on a menu widget + would cause FLUID to crash (STR #742) + - Added QNX bug workaround for menu handling (STR #704) + - Added Greg Ercolano's simple Fl_Input_Choice widget + which is a combination of the Fl_Input and + Fl_Menu_Button widgets (STR #650) + - Fl_Multiline_Input now scrolls the full height of the + widget instead of 5 lines when the user presses PageUp + or PageDown (STR #727) + - CMake build fixes (STR #724) + - Fl_Browser::swap() didn't handle redraws properly when + the swapped lines had different heights (STR #729) + - FL_MOUSEWHEEL events are now sent first to the widget + under the mouse pointer and then to the first widget + which accepts them. This is similar to the way + shortcut events are handled and is consistent with the + way the mouse wheel is handled by other toolkits. + - Fl::wait() could block on WIN32 if the window was + deleted via Fl::delete_widget() (STR #679) + - Fl_Preferences::RootNode did not find the user's home + directory on some non-US versions of Windows (STR + #720) + - Fl_Window::hide() didn't delete the current clipping + region on WIN32, causing a GDI resource leak in some + situations (STR #723) + - Removed a few warnings when compiling on OS X + - Fl_Menu now draws the arrow more like other toolkits + and 2.0 (STR #651) + - Fixed a VC++ compiler error in Fl_JPEG_Image.cxx (STR + #676) + - FL_SHADOW_BOX/FRAME drew outside of the bounding box + (STR #694) + - Fl_Widget::copy_label(NULL) didn't work (STR #707) + - Fl_Choice now allows click selection like + Fl_Menu_Button and Fl_Menubar (STR #706) + - Updated cmake support (STR #645) + - Fl_Check_Browser didn't draw properly when inactive + (STR #681) + - Removed some redundant code in Fl_Group::handle() (STR + #669) + - The file chooser didn't always deactivate the OK + button when necessary (STR #653) + - Image drawing on OSX changed the current drawing + colors (STR #662) + - Fixed some compiler errors on WIN32 (STR #647, STR + #726) + - FLUID didn't update the widget panel X/Y/W/H values + when moving the selected window (STR #701) + - FLUID didn't use the label type constant names for + menu items, causing them to be drawn using the normal + label type (STR #668) + - Fl_File_Chooser was slow with large directories (STR + #654) + - FLUID didn't add xclass() calls to windows (STR #718) + - The X11 DND code did not correctly select a text + format for incoming data (STR #711) + - Fixes to Fl_JPEG_Image error handler. + - Fl_Menu::popup() and ::pulldown() would crash an + application if a callback created widgets before they + returned (STR #685) + - Fl_Double_Window would cause a full redraw, even if + only small parts of the UI were changed on Mac OS X. + - Fl_JPEG_Image did not correctly handle errors reported + by the JPEG library (STR #652) + - Fl_Menu now draws sub-menu arrows like other toolkits + and FLTK 2.0 (STR #651) + - Fixed a compiler warning in Fl_Window.H (STR #641) + - Tooltips disabled shortcut processing (STR #643) + - Fl::event_number() didn't always match the value sent + to the handle() method (STR #634) + - Fl_Shared_Image::reload() didn't set the image_ + pointer properly in all cases (STR #632) + - Fl_Help_View::topline() incorrectly set the changed() + flag (STR #631) + - Fl_Choice::value() now supports NULL or -1 to deselect + the current item (STR #637) + - More VC++ 6 project file fixes (STR #638) + - Added missing Watcom makefile in the test directory + (STR #636) + - Fl_Text_Display::word_left would hang if the cursor + was at position 0 (STR #635) -CHANGES IN FLTK 1.1.6 RELEASED: Nov 23 2004 +CHANGES IN FLTK 1.1.6 RELEASED: Nov 23 2004 - - Documentation updates (STR #552, STR #608) - - Added the 2.0 Fl_Widget::copy_label() method to - allow FLTK 1.x applications to have their label - strings managed by FLTK (STR #630) - - Added Fl::delete_widget() method to safely delete - widgets in callback methods (STR #629) - - Fl_Widget::damage(uchar,int,int,int,int) didn't clip - the bounding box properly (STR #626) - - Windows could appear on the wrong screen on OSX (STR - #628) - - Fl_Double_Window produced an error on resize with X11 - - FLUID didn't display menu items using images properly - (STR #564) - - Fl_Sys_Menu_Bar didn't compile on case-sensitive - file-systems (STR #622) - - FLUID didn't handle default function parameters - properly (STR #579) - - Moving or resizing widgets in FLUID didn't always - update the widget panel (STR #600) - - FLTK windows could appear off-screen on X11 (STR #586) - - The configure script did not support - --disable-localfoo to completely disable image file - support (STR #582) - - The Visual C++ 6.0 project files still listed the old - JPEG, PNG, and ZLIB library names (STR #577) - - Fixed the scandir() conditional code for HP-UX 11i - (STR #585) - - Fl_Text_Display didn't support CTRL/CMD-A/C (STR #601) - - Watcom fixes (STR #581, STR #584, STR #594, STR #595, - STR #623, STR #627) - - Fixed library include order when building DSOs on - MacOS X (STR #596) - - fl_xid() could cause a WIN32 application to crash (STR - #560, STR #576, STR #618) - - Fl_Browser::remove_() removed the item from the list - before computing the item height, which caused - problems with some programs (STR #613) + - Documentation updates (STR #552, STR #608) + - Added the 2.0 Fl_Widget::copy_label() method to + allow FLTK 1.x applications to have their label + strings managed by FLTK (STR #630) + - Added Fl::delete_widget() method to safely delete + widgets in callback methods (STR #629) + - Fl_Widget::damage(uchar,int,int,int,int) didn't clip + the bounding box properly (STR #626) + - Windows could appear on the wrong screen on OSX (STR + #628) + - Fl_Double_Window produced an error on resize with X11 + - FLUID didn't display menu items using images properly + (STR #564) + - Fl_Sys_Menu_Bar didn't compile on case-sensitive + file-systems (STR #622) + - FLUID didn't handle default function parameters + properly (STR #579) + - Moving or resizing widgets in FLUID didn't always + update the widget panel (STR #600) + - FLTK windows could appear off-screen on X11 (STR #586) + - The configure script did not support + --disable-localfoo to completely disable image file + support (STR #582) + - The Visual C++ 6.0 project files still listed the old + JPEG, PNG, and ZLIB library names (STR #577) + - Fixed the scandir() conditional code for HP-UX 11i + (STR #585) + - Fl_Text_Display didn't support CTRL/CMD-A/C (STR #601) + - Watcom fixes (STR #581, STR #584, STR #594, STR #595, + STR #623, STR #627) + - Fixed library include order when building DSOs on + MacOS X (STR #596) + - fl_xid() could cause a WIN32 application to crash (STR + #560, STR #576, STR #618) + - Fl_Browser::remove_() removed the item from the list + before computing the item height, which caused + problems with some programs (STR #613) -CHANGES IN FLTK 1.1.5 RELEASED: Oct 19 2004 +CHANGES IN FLTK 1.1.5 RELEASED: Oct 19 2004 - - Documentation updates (STR #568, STR #570) - - Shortcuts were incorrectly underlined in multi-line - labels (STR #566) - - More CMake updates (STR #499) - - The Watcom C++ compiler needed a small change (STR - #567) - - Added DESTDIR support and now remove all man pages for - the "uninstall" target (STR #545) - - Fix PNG drawing on buggy WIN32 graphics cards (STR - #548) - - The configure script didn't propagate the CPPFLAGS - environment variable (STR #549) - - The numpad keys didn't work properly on WIN32 (STR - #502) - - fl_input() and friends now set the input focus to the - text field when the dialog is shown (STR #553) - - Fixed background color mixup when drawing Fl_Choice - menus (STR #544) - - Fixed MingW makefiles (STR #550) - - More VC++ project file tweaking (STR #559) - - Fl_PNG_Image didn't use the png_set_trns_to_alpha - function when available (STR #547) - - The FL_UNFOCUS event wasn't always sent when switching - tabs (STR #558) + - Documentation updates (STR #568, STR #570) + - Shortcuts were incorrectly underlined in multi-line + labels (STR #566) + - More CMake updates (STR #499) + - The Watcom C++ compiler needed a small change (STR + #567) + - Added DESTDIR support and now remove all man pages for + the "uninstall" target (STR #545) + - Fix PNG drawing on buggy WIN32 graphics cards (STR + #548) + - The configure script didn't propagate the CPPFLAGS + environment variable (STR #549) + - The numpad keys didn't work properly on WIN32 (STR + #502) + - fl_input() and friends now set the input focus to the + text field when the dialog is shown (STR #553) + - Fixed background color mixup when drawing Fl_Choice + menus (STR #544) + - Fixed MingW makefiles (STR #550) + - More VC++ project file tweaking (STR #559) + - Fl_PNG_Image didn't use the png_set_trns_to_alpha + function when available (STR #547) + - The FL_UNFOCUS event wasn't always sent when switching + tabs (STR #558) CHANGES IN FLTK 1.1.5rc3 - - Documentation updates (STR #505, STR #513) - - Updated PNG library source to 1.2.7. - - Updated ZLIB library source to 1.2.1. - - Fixed VC++ project file problems (STR #476, STR #478, - STR #520, STR #527, STR #537) - - Now look for 8 bits of alpha when the developer has - requested FL_RGB8 (STR #541) - - The last line in an Fl_Help_View widget was not - aligned properly (STR #536) - - The "search" symbol looked like a Q (STR #536) - - Changed Fl_Help_View::get_color() to use a lookup - table to avoid serious Borland C++ 5.5 compiler bugs - (STR #533) - - Fixed Watcom compiler warnings with FL/Fl_Widget.H - (STR #540) - - The image class copy() methods did not always make a - separate copy of the image data (STR #539) - - Fixed an edge case in fl_old_shortcut() that could - cause it to read beyond then end of the shortcut - string (used for XForms named shortcuts) - - Added (unsupported) CMake files (STR #499) - - Tooltips would not reappear on the same widget, and - the initial tooltip delay was not used after a tooltip - was shown (STR #465) - - Fixed a compile problem with the Linux 2.6 threading - support (STR #483) - - Fixed problems with 2-byte Xpm files on 64-bit - platforms (STR #525) - - FLTK didn't handle the ReparentNotify event on X11 - (STR #524) - - The old source file "fl_set_gray.cxx" is not needed - (STR #516) - - Fl_Text_Display still called delete[] instead of - free() in one place (STR #503) - - The symbol test program did not handle the @+ symbol - properly (STR #490) - - Fl_File_Chooser didn't correctly call isprint() and - isspace() when checking to see if the current file was - text that can be previewed (STR #517) - - FLUID didn't compile with Borland C++ due to a - compiler bug (STR #496) - - Fl_Positioner did not handle reversed min and max - values (STR #510) - - fl_descent(), fl_height(), and fl_width() would crash - a program if you didn't call fl_font() first; they now - return -1 if no font is set (STR #500) - - Added test/unittests to verify pixel drawing and - alignment across platforms - - Fl_Menu_::find_item() didn't determine the menu path - properly (STR #481) - - The build system now installs image library header - files in FL/images/filename.h so that FLTK programs - will use the same header files as the FLTK image - libraries. - - The build system now creates image libraries named - "libfltk_name.a" instead of "libname.a" to avoid - clobbering an existing installed library (STR #480) + - Documentation updates (STR #505, STR #513) + - Updated PNG library source to 1.2.7. + - Updated ZLIB library source to 1.2.1. + - Fixed VC++ project file problems (STR #476, STR #478, + STR #520, STR #527, STR #537) + - Now look for 8 bits of alpha when the developer has + requested FL_RGB8 (STR #541) + - The last line in an Fl_Help_View widget was not + aligned properly (STR #536) + - The "search" symbol looked like a Q (STR #536) + - Changed Fl_Help_View::get_color() to use a lookup + table to avoid serious Borland C++ 5.5 compiler bugs + (STR #533) + - Fixed Watcom compiler warnings with FL/Fl_Widget.H + (STR #540) + - The image class copy() methods did not always make a + separate copy of the image data (STR #539) + - Fixed an edge case in fl_old_shortcut() that could + cause it to read beyond then end of the shortcut + string (used for XForms named shortcuts) + - Added (unsupported) CMake files (STR #499) + - Tooltips would not reappear on the same widget, and + the initial tooltip delay was not used after a tooltip + was shown (STR #465) + - Fixed a compile problem with the Linux 2.6 threading + support (STR #483) + - Fixed problems with 2-byte Xpm files on 64-bit + platforms (STR #525) + - FLTK didn't handle the ReparentNotify event on X11 + (STR #524) + - The old source file "fl_set_gray.cxx" is not needed + (STR #516) + - Fl_Text_Display still called delete[] instead of + free() in one place (STR #503) + - The symbol test program did not handle the @+ symbol + properly (STR #490) + - Fl_File_Chooser didn't correctly call isprint() and + isspace() when checking to see if the current file was + text that can be previewed (STR #517) + - FLUID didn't compile with Borland C++ due to a + compiler bug (STR #496) + - Fl_Positioner did not handle reversed min and max + values (STR #510) + - fl_descent(), fl_height(), and fl_width() would crash + a program if you didn't call fl_font() first; they now + return -1 if no font is set (STR #500) + - Added test/unittests to verify pixel drawing and + alignment across platforms + - Fl_Menu_::find_item() didn't determine the menu path + properly (STR #481) + - The build system now installs image library header + files in FL/images/filename.h so that FLTK programs + will use the same header files as the FLTK image + libraries. + - The build system now creates image libraries named + "libfltk_name.a" instead of "libname.a" to avoid + clobbering an existing installed library (STR #480) CHANGES IN FLTK 1.1.5rc2 - - Documentation updates (STR #365, STR #399, STR #407, - STR #412, STR #414, STR #452, STR #462) - - Fl_Text_Display did not handle drawing of overlapping - text (italic next to plain, etc.) properly (STR #381) - - All of the core widgets now consistently set changed() - before calling the callback function for a change in - value; this allows programs to check the changed() - state in a callback to see why they are being called - (STR #475) - - Fl_File_Chooser did not handle some cases for filename - completion (STR #376) - - Fl_Help_View didn't properly compute the default - maximum width of the page properly, resulting in - non-wrapped text in table cells (STR #464) - - Fl_Text_Editor no longer tries to emulate the Emacs - CTRL-A shortcut to move to the first column, since - there is a key for that and the widget does not - emulate any other Emacs keys (STR #421) - - Fl_File_Chooser always disabled the OK button when the - user pressed DELETE or BACKSPACE (STR #397) - - Added Fl_Browser::swap() methods (STR #459) - - Fl_Counter didn't use a thin down box for the text - field if the box type was set to FL_THIN_UP_BOX (STR - #467) - - Fl_Help_View now resets the scrollbars if they go - outside the current view (STR #464) - - fl_dir_chooser() did not show the previous selection - as documented (STR #443) - - Fl_Text_Display used delete[] instead of free() in - some places (STR #466) - - FLTK now includes copies of the PNG, JPEG, and ZLIB - libraries for platforms that do not have them (STR - #441) - - The fltk-config script did not include the - "-mno-cygwin" option under CygWin (STR #434) - - Fl_Help_View::find() did not check for a NULL value - (STR #442) - - Added search symbol to the search field of - Fl_Help_Dialog (STR #417) - - Added two new symbols, @search and @FLTK, which can be - used in labels. - - MacOS X: fixed NumLock mixup, added support for - FL_Menu and FL_Delete keys on external (PC) keyboards - (STR #445) - - Fl_File_Icon::draw() did not support drawing of complex - polygons in icon descriptions (STR #474) - - The configure script now offers options for JPEG, PNG, - and ZLIB libraries (STR #416) - - The first menu item in a list would not go invisible - (STR #406) - - Fl_Text_Buffer::replace() now range checks its input - (STR #385) - - FLTK now builds with the current release of MinGW (STR - #325, STR #401, STR #402) - - FLTK now honors the numlock key state (STR #369) - - The Fl_Text_Display widget did not redraw selections - when focus changed (STR #390) - - The plastic background image is now less contrasty - (STR #394) - - Fl_Scroll now uses a full redraw when the scheme is - set to plastic and the box type is a frame (STR #205) - - Fl_Window::resize() did not work properly with KDE 3.2 - (STR #356) - - FLTK didn't delete font bitmaps when the last OpenGL - window was deleted, preventing future text from - displaying (STR #310) - - FLUID didn't include a full initialization record for - the trailing NULL menu items (STR #375) - - Fl_Browser::item_width() did not properly handle - format modifiers (STR #372) - - Fl_Browser::item_height() did not handle columns - properly (STR #371) - - Fl_Gl_Window's on WIN32 now prefer accelerated pixel - formats over generic formats (STR #382) - - Fl_Window::resize() did not work on some systems if - the window was not shown (STR #373) - - FLUID did not write the user_data type if the - user_data field was empty (STR #374) - - The value(const Fl_Menu_Item*) method was not - implemented for Fl_Choice (STR #366) - - Fl_Pack didn't draw child widget labels the same way - as Fl_Group, causing display problems (STR #360) - - fl_read_image() didn't work when reading from an - offscreen buffer with some X11 servers (STR #364) + - Documentation updates (STR #365, STR #399, STR #407, + STR #412, STR #414, STR #452, STR #462) + - Fl_Text_Display did not handle drawing of overlapping + text (italic next to plain, etc.) properly (STR #381) + - All of the core widgets now consistently set changed() + before calling the callback function for a change in + value; this allows programs to check the changed() + state in a callback to see why they are being called + (STR #475) + - Fl_File_Chooser did not handle some cases for filename + completion (STR #376) + - Fl_Help_View didn't properly compute the default + maximum width of the page properly, resulting in + non-wrapped text in table cells (STR #464) + - Fl_Text_Editor no longer tries to emulate the Emacs + CTRL-A shortcut to move to the first column, since + there is a key for that and the widget does not + emulate any other Emacs keys (STR #421) + - Fl_File_Chooser always disabled the OK button when the + user pressed DELETE or BACKSPACE (STR #397) + - Added Fl_Browser::swap() methods (STR #459) + - Fl_Counter didn't use a thin down box for the text + field if the box type was set to FL_THIN_UP_BOX (STR + #467) + - Fl_Help_View now resets the scrollbars if they go + outside the current view (STR #464) + - fl_dir_chooser() did not show the previous selection + as documented (STR #443) + - Fl_Text_Display used delete[] instead of free() in + some places (STR #466) + - FLTK now includes copies of the PNG, JPEG, and ZLIB + libraries for platforms that do not have them (STR + #441) + - The fltk-config script did not include the + "-mno-cygwin" option under CygWin (STR #434) + - Fl_Help_View::find() did not check for a NULL value + (STR #442) + - Added search symbol to the search field of + Fl_Help_Dialog (STR #417) + - Added two new symbols, @search and @FLTK, which can be + used in labels. + - MacOS X: fixed NumLock mixup, added support for + FL_Menu and FL_Delete keys on external (PC) keyboards + (STR #445) + - Fl_File_Icon::draw() did not support drawing of complex + polygons in icon descriptions (STR #474) + - The configure script now offers options for JPEG, PNG, + and ZLIB libraries (STR #416) + - The first menu item in a list would not go invisible + (STR #406) + - Fl_Text_Buffer::replace() now range checks its input + (STR #385) + - FLTK now builds with the current release of MinGW (STR + #325, STR #401, STR #402) + - FLTK now honors the numlock key state (STR #369) + - The Fl_Text_Display widget did not redraw selections + when focus changed (STR #390) + - The plastic background image is now less contrasty + (STR #394) + - Fl_Scroll now uses a full redraw when the scheme is + set to plastic and the box type is a frame (STR #205) + - Fl_Window::resize() did not work properly with KDE 3.2 + (STR #356) + - FLTK didn't delete font bitmaps when the last OpenGL + window was deleted, preventing future text from + displaying (STR #310) + - FLUID didn't include a full initialization record for + the trailing NULL menu items (STR #375) + - Fl_Browser::item_width() did not properly handle + format modifiers (STR #372) + - Fl_Browser::item_height() did not handle columns + properly (STR #371) + - Fl_Gl_Window's on WIN32 now prefer accelerated pixel + formats over generic formats (STR #382) + - Fl_Window::resize() did not work on some systems if + the window was not shown (STR #373) + - FLUID did not write the user_data type if the + user_data field was empty (STR #374) + - The value(const Fl_Menu_Item*) method was not + implemented for Fl_Choice (STR #366) + - Fl_Pack didn't draw child widget labels the same way + as Fl_Group, causing display problems (STR #360) + - fl_read_image() didn't work when reading from an + offscreen buffer with some X11 servers (STR #364) CHANGES IN FLTK 1.1.5rc1 - - Documentation updates (STR #186, STR #245, STR #250, - STR #277, STR #281, STR #328, STR #338) - - fl_scroll() did not handle scrolling from off-screen on - WIN32 (STR #315) - - Fl_File_Chooser did not allow manual entry of a drive - letter (STR #339) - - Fl_Menu now uses the boxtype to redraw the menu - background (STR #204) - - Fl_Scroll now shows the background image when a framed - box type is used and the Fl_Scroll is a direct - decendent of a window (STR #205) - - Added a new_directory_tooltip string pointer to allow - localization of the file chooser's new directory - button (STR #340) - - Added Fl_Menu_::find_item() method (STR #316) - - The Fl_Widget copy operator definitions were not - conditionally compiled properly (STR #329) - - FLUID's Layout functionality did not move child - widgets when laying out group widgets (STR #319) - - FLUID's Layout->Center In Group functionality did not - properly handle widgets that were children of a - Fl_Window widget (STR #318) - - The Fl_Text_Display destructor did not remove the - predelete callback associated with the current buffer - (STR #332) - - Fixed several bugs in the MacOS X Fl::add_fd() - handling (STR #333, STR #337) - - The Fl_Text_Display widget did not display selections - set by the application (STR #322) - - FLUID crashed if you did layout with a window widget - (STR #317) - - Fl_Scroll::clear() didn't remove the child widget from - the Fl_Scroll widget (STR #327) - - Fl_Value_Slider::draw_bg() didn't always apply the - clipping rectangle (STR #235) - - fl_filename_relative() returned the wrong string if - the absolute pathname was equal to the current working - directory (STR #224) - - Fl_Help_Dialog didn't correctly restore the scroll - position when going forward/back in the link history - if the file changed (STR #218) - - glutGetModifiers() did not mask off extra state bits, - confusing some GLUT-based applications (STR #213) - - Fixed mouse capture problems on MacOS X (STR #209, STR - #229) - - Fl_Sys_Menu_Bar is now built into the library for - MacOS X (STR #229) - - Fl_Menu_ now provides item_pathname() methods to get - the "pathname" of a menu item, e.g. "File/Quit" (STR - #283) - - Fl_Text_Display now provides cursor_color() methods to - get and set the cursor color (STR #271) - - Fl_Scroll didn't honor FL_NO_BOX (STR #305) - - FLUID declaration blocks didn't support public/private - definitions (STR #301) - - Fl_Preferences incorrectly created the preferences - directory before necessary (STR #247) - - The WIN32 project files still defined the (obsolete) - FL_STATIC constant (STR #279) - - Fl_Text_Display::buffer() did not support NULL values, - making it impossible to clean up text buffers from a - subclass (STR #295) - - Fl_Text_Display did not support a NULL - unfinishedStyleCB function (STR #241) - - Fl::background2() incorrectly marked the foreground - color as initialized (STR #255) - - Fixed the X11 CTRL + "-" detection code to properly - track the state of the CTRL key (STR #264) - - Fl_File_Icon::load_system_icons() didn't support KDE - 3.x (STR #299) - - WIN32's scandir() emulation did not allocate enough - memory for directory names (STR #263) - - Fl::compose() did not handle special keys like - backspace properly (STR #293) - - Fl_Choice did not clip its text when drawing using the - plastic scheme (STR #287) - - Fl_Group incorrectly mapped the emacs CTRL keys to - keyboard navigation (STR #228) - - Fl_File_Browser::load() didn't handle a NULL directory - name (STR #266) - - 64-bit library fixes (STR #261) - - The Fl_Valuator::format() function did not limit the - size of the number buffer (STR #268) - - The keypad Enter key works as the normal Enter/Return - key in common widgets (STR #191) - - Fixed some OS/2-specific build problems (STR #185, STR - #197) - - Calling Fl_Text_Display::buffer() with the same buffer - would cause an application to lockup (STR #196) - - Some of the widgets could crash an application if the - cursor was changed after a window was deleted (STR - #181) - - The Fl_Gl_Window WIN32 pixel format code did not - choose the pixel format with the largest depth buffer - (STR #175) - - The configure script didn't leave space between the - CFLAGS/CXXFLAGS and X_CFLAGS variables (STR #174) - - The Fl_JPEG_Image and Fl_PNG_Image classes did not - trap errors from the corresponding image libraries - (STR #168) - - Added "--with-links" configure option to control - whether symlinks are created for the FLTK header files - (STR #164) - - Added new hoverdelay() to Fl_Tooltip to control how - quickly recent tooltips appear (STR #126) - - FLUID now sets the size range when a window is shown. - This seems to be necessary with some window managers - (STR #166) + - Documentation updates (STR #186, STR #245, STR #250, + STR #277, STR #281, STR #328, STR #338) + - fl_scroll() did not handle scrolling from off-screen on + WIN32 (STR #315) + - Fl_File_Chooser did not allow manual entry of a drive + letter (STR #339) + - Fl_Menu now uses the boxtype to redraw the menu + background (STR #204) + - Fl_Scroll now shows the background image when a framed + box type is used and the Fl_Scroll is a direct + decendent of a window (STR #205) + - Added a new_directory_tooltip string pointer to allow + localization of the file chooser's new directory + button (STR #340) + - Added Fl_Menu_::find_item() method (STR #316) + - The Fl_Widget copy operator definitions were not + conditionally compiled properly (STR #329) + - FLUID's Layout functionality did not move child + widgets when laying out group widgets (STR #319) + - FLUID's Layout->Center In Group functionality did not + properly handle widgets that were children of a + Fl_Window widget (STR #318) + - The Fl_Text_Display destructor did not remove the + predelete callback associated with the current buffer + (STR #332) + - Fixed several bugs in the MacOS X Fl::add_fd() + handling (STR #333, STR #337) + - The Fl_Text_Display widget did not display selections + set by the application (STR #322) + - FLUID crashed if you did layout with a window widget + (STR #317) + - Fl_Scroll::clear() didn't remove the child widget from + the Fl_Scroll widget (STR #327) + - Fl_Value_Slider::draw_bg() didn't always apply the + clipping rectangle (STR #235) + - fl_filename_relative() returned the wrong string if + the absolute pathname was equal to the current working + directory (STR #224) + - Fl_Help_Dialog didn't correctly restore the scroll + position when going forward/back in the link history + if the file changed (STR #218) + - glutGetModifiers() did not mask off extra state bits, + confusing some GLUT-based applications (STR #213) + - Fixed mouse capture problems on MacOS X (STR #209, STR + #229) + - Fl_Sys_Menu_Bar is now built into the library for + MacOS X (STR #229) + - Fl_Menu_ now provides item_pathname() methods to get + the "pathname" of a menu item, e.g. "File/Quit" (STR + #283) + - Fl_Text_Display now provides cursor_color() methods to + get and set the cursor color (STR #271) + - Fl_Scroll didn't honor FL_NO_BOX (STR #305) + - FLUID declaration blocks didn't support public/private + definitions (STR #301) + - Fl_Preferences incorrectly created the preferences + directory before necessary (STR #247) + - The WIN32 project files still defined the (obsolete) + FL_STATIC constant (STR #279) + - Fl_Text_Display::buffer() did not support NULL values, + making it impossible to clean up text buffers from a + subclass (STR #295) + - Fl_Text_Display did not support a NULL + unfinishedStyleCB function (STR #241) + - Fl::background2() incorrectly marked the foreground + color as initialized (STR #255) + - Fixed the X11 CTRL + "-" detection code to properly + track the state of the CTRL key (STR #264) + - Fl_File_Icon::load_system_icons() didn't support KDE + 3.x (STR #299) + - WIN32's scandir() emulation did not allocate enough + memory for directory names (STR #263) + - Fl::compose() did not handle special keys like + backspace properly (STR #293) + - Fl_Choice did not clip its text when drawing using the + plastic scheme (STR #287) + - Fl_Group incorrectly mapped the emacs CTRL keys to + keyboard navigation (STR #228) + - Fl_File_Browser::load() didn't handle a NULL directory + name (STR #266) + - 64-bit library fixes (STR #261) + - The Fl_Valuator::format() function did not limit the + size of the number buffer (STR #268) + - The keypad Enter key works as the normal Enter/Return + key in common widgets (STR #191) + - Fixed some OS/2-specific build problems (STR #185, STR + #197) + - Calling Fl_Text_Display::buffer() with the same buffer + would cause an application to lockup (STR #196) + - Some of the widgets could crash an application if the + cursor was changed after a window was deleted (STR + #181) + - The Fl_Gl_Window WIN32 pixel format code did not + choose the pixel format with the largest depth buffer + (STR #175) + - The configure script didn't leave space between the + CFLAGS/CXXFLAGS and X_CFLAGS variables (STR #174) + - The Fl_JPEG_Image and Fl_PNG_Image classes did not + trap errors from the corresponding image libraries + (STR #168) + - Added "--with-links" configure option to control + whether symlinks are created for the FLTK header files + (STR #164) + - Added new hoverdelay() to Fl_Tooltip to control how + quickly recent tooltips appear (STR #126) + - FLUID now sets the size range when a window is shown. + This seems to be necessary with some window managers + (STR #166) -CHANGES IN FLTK 1.1.4 RELEASED: Sep 08 2003 +CHANGES IN FLTK 1.1.4 RELEASED: Sep 08 2003 - - The fl_read_image() function was not implemented on - OSX (STR #161) - - VC++ 7.1 didn't like how the copy operators were - disabled for the Fl_Widget class; now include inline - code which will never be used but makes VC++ happy - (STR #156) - - Fixed an IRIX compile problem caused by a missing - #include (STR #157) - - FLUID didn't write color/selection_color() calls using - the symbolic names when possible, nor did it cast - integer colors to Fl_Color (STR #146) - - Fl_File_Chooser was very close for multiple file - selection in large directories (STR #140) - - Fl_Text_Display/Editor did not disable the current - selection when focus was shifted to another widget - (STR #131) - - Fl_Choice didn't use the normal focus box when the - plastic scheme was in use (STR #129) - - Fl_Text_Editor didn't use selection_color() - consistently (STR #130) - - The fltk_forms, fltk_gl, and fltk_images DSO's and - HP-UX shared libraries are now linked against the fltk - shared library to provide complete dependency - resolution (STR #118) - - The configure.in file did not work with autoconf 2.57. - - FLUID didn't redraw widgets when changing the X, Y, W, - or H values in the widget panel (STR #120) - - Fl_Window::show(argc, argv) wasn't calling - Fl::get_system_colors() as documented (STR #119) - - DSO (shared library) building wasn't quite right for - some platforms (STR #118) - - OSX: some changes to make ProjectBuilder compiles - possible. - - OSX: FLTK would not know where a window was positioned - by the OS. As a result, popup menus could open at - wrong positions. + - The fl_read_image() function was not implemented on + OSX (STR #161) + - VC++ 7.1 didn't like how the copy operators were + disabled for the Fl_Widget class; now include inline + code which will never be used but makes VC++ happy + (STR #156) + - Fixed an IRIX compile problem caused by a missing + #include (STR #157) + - FLUID didn't write color/selection_color() calls using + the symbolic names when possible, nor did it cast + integer colors to Fl_Color (STR #146) + - Fl_File_Chooser was very close for multiple file + selection in large directories (STR #140) + - Fl_Text_Display/Editor did not disable the current + selection when focus was shifted to another widget + (STR #131) + - Fl_Choice didn't use the normal focus box when the + plastic scheme was in use (STR #129) + - Fl_Text_Editor didn't use selection_color() + consistently (STR #130) + - The fltk_forms, fltk_gl, and fltk_images DSO's and + HP-UX shared libraries are now linked against the fltk + shared library to provide complete dependency + resolution (STR #118) + - The configure.in file did not work with autoconf 2.57. + - FLUID didn't redraw widgets when changing the X, Y, W, + or H values in the widget panel (STR #120) + - Fl_Window::show(argc, argv) wasn't calling + Fl::get_system_colors() as documented (STR #119) + - DSO (shared library) building wasn't quite right for + some platforms (STR #118) + - OSX: some changes to make ProjectBuilder compiles + possible. + - OSX: FLTK would not know where a window was positioned + by the OS. As a result, popup menus could open at + wrong positions. CHANGES IN FLTK 1.1.4rc2 - - Fl_Window::show(argc,argv) incorrectly opened the - display prior to parsing the arguments; this prevented - the "-display foo" option from working (STR #111) - - Images were not clipped properly on MacOS X (STR #114) - - Fl::reload_scheme() and Fl::scheme("foo") incorrectly - called Fl::get_system_colors(). This prevented an - application from setting its own color preferences - (STR #115) - - The 'Enter' key event on OS X would not set - Fl::e_text. - - Changed behaviour of FLUID to always paste into - a selected group (STR #88) - - Menuitem now changes font, even if fontsize - is not set (STR #110) - - Swapped shortcut labels in OS X (STR #86) - - Non-square Fl_Dial would calculate angle from user - input wrong (STR #101) - - Updated documentatiopn of fl_draw (STR #94) - and Fl_Menu_::add() (STR #99) - - FLUID collapse triangle events were not offset by - horizontal scroll (STR #106) - - QuitAppleEvent now correctly returns from Fl::run() - instead of just exiting (STR #87) - - Hiding the first created OpenGL context was not - possible. FLTK now manages a list of contexts (STR #77) - - FLUID didn't keep the double/single buffer type for - windows. - - FLTK didn't work with Xft2. - - OSX window resizing didn't work (STR #64) - - Fixed MacOS X shared library generation (STR #51) - - Several widgets defined their own size() method but - didn't provide an inline method that mapped to the - Fl_Widget::size() method (STR #62) - - Fl_Scroll didn't provide its own clear() method, so - calling clear() on a Fl_Scroll widget would also - destroy the scrollbars (STR #75) - - Fl::event_text() was sometimes initialized to NULL - instead of an empty string (STR #70) - - fl_draw() didn't properly handle a trailing escaped - "@" character (STR #84) - - Added documentation for all forms of - Fl_Widget::damage() (STR #61) - - Fl_Double_Window now has a type() value of - FL_DOUBLE_WINDOW, to allow double-buffered windows to - process redraws properly on WIN32 (STR #46) - - Added FL_DAMAGE_USER1 and FL_DAMAGE_USER2 damage bits - for use by widget developers (STR #57) - - Fl_Help_View didn't support numeric character entities - (STR #66) - - Menu shortcuts didn't use the Mac key names under - MacOS X (STR #71) - - CodeWarrior Mac OS X updated to work with current - CW8.3 (STR #34) - - Apple-C/X/V/Z didn't work in the Fl_Input widget due - to a bad mapping to control keys (STR #79) - - Added the OSX-specific fl_open_callback() function to - handle Open Documents messages from the Finder (STR - #80) - - The configure script contained erroneous whitespace in - various tests which caused errors on some platforms - (STR #60) - - The fltk-config script still supported the deprecated - --prefix and --exec-prefix options; dropped them since - they serve no useful purpose and would never have - worked for the intended purpose anyways... (STR #56) - - fl_filename_list returned 0 on Win32 if no directory - existed (STR #54) - - Pressing 'home' after the last letter in a Text_Editor - would move the cursor to pos 0 (STR #39) - - Fl::get_key(x) would mix up Ctrl and Meta on OS X (STR - #55) - - The configure script used the wrong dynamic library - linking command for OSX (STR #51) - - The Fl_Text_Editor widget did not set changed() nor - did it call the widget's callback function for - FL_WHEN_CHANGED when processing characters that - Fl::compose() handles (STR #52) + - Fl_Window::show(argc,argv) incorrectly opened the + display prior to parsing the arguments; this prevented + the "-display foo" option from working (STR #111) + - Images were not clipped properly on MacOS X (STR #114) + - Fl::reload_scheme() and Fl::scheme("foo") incorrectly + called Fl::get_system_colors(). This prevented an + application from setting its own color preferences + (STR #115) + - The 'Enter' key event on OS X would not set + Fl::e_text. + - Changed behaviour of FLUID to always paste into + a selected group (STR #88) + - Menuitem now changes font, even if fontsize + is not set (STR #110) + - Swapped shortcut labels in OS X (STR #86) + - Non-square Fl_Dial would calculate angle from user + input wrong (STR #101) + - Updated documentatiopn of fl_draw (STR #94) + and Fl_Menu_::add() (STR #99) + - FLUID collapse triangle events were not offset by + horizontal scroll (STR #106) + - QuitAppleEvent now correctly returns from Fl::run() + instead of just exiting (STR #87) + - Hiding the first created OpenGL context was not + possible. FLTK now manages a list of contexts (STR #77) + - FLUID didn't keep the double/single buffer type for + windows. + - FLTK didn't work with Xft2. + - OSX window resizing didn't work (STR #64) + - Fixed MacOS X shared library generation (STR #51) + - Several widgets defined their own size() method but + didn't provide an inline method that mapped to the + Fl_Widget::size() method (STR #62) + - Fl_Scroll didn't provide its own clear() method, so + calling clear() on a Fl_Scroll widget would also + destroy the scrollbars (STR #75) + - Fl::event_text() was sometimes initialized to NULL + instead of an empty string (STR #70) + - fl_draw() didn't properly handle a trailing escaped + "@" character (STR #84) + - Added documentation for all forms of + Fl_Widget::damage() (STR #61) + - Fl_Double_Window now has a type() value of + FL_DOUBLE_WINDOW, to allow double-buffered windows to + process redraws properly on WIN32 (STR #46) + - Added FL_DAMAGE_USER1 and FL_DAMAGE_USER2 damage bits + for use by widget developers (STR #57) + - Fl_Help_View didn't support numeric character entities + (STR #66) + - Menu shortcuts didn't use the Mac key names under + MacOS X (STR #71) + - CodeWarrior Mac OS X updated to work with current + CW8.3 (STR #34) + - Apple-C/X/V/Z didn't work in the Fl_Input widget due + to a bad mapping to control keys (STR #79) + - Added the OSX-specific fl_open_callback() function to + handle Open Documents messages from the Finder (STR + #80) + - The configure script contained erroneous whitespace in + various tests which caused errors on some platforms + (STR #60) + - The fltk-config script still supported the deprecated + --prefix and --exec-prefix options; dropped them since + they serve no useful purpose and would never have + worked for the intended purpose anyways... (STR #56) + - fl_filename_list returned 0 on Win32 if no directory + existed (STR #54) + - Pressing 'home' after the last letter in a Text_Editor + would move the cursor to pos 0 (STR #39) + - Fl::get_key(x) would mix up Ctrl and Meta on OS X (STR + #55) + - The configure script used the wrong dynamic library + linking command for OSX (STR #51) + - The Fl_Text_Editor widget did not set changed() nor + did it call the widget's callback function for + FL_WHEN_CHANGED when processing characters that + Fl::compose() handles (STR #52) CHANGES IN FLTK 1.1.4rc1 - - The file chooser did not reset the click count when - changing directories; if you clicked on a file in the - same position after changing directories with a - double-click, the chooser treated it as a triple - click (STR #27) - - Symbols with outlines did not get drawn inactive. - - The Fl_Help_View widget now provides a find() method - to search for text within the page. - - The Fl_Help_Dialog widget now provides a search box - for entering text to search for. - - The default font encoding on OSX did not match the - default on WIN32 or X11. - - Menu items were not drawn using the font specified in - the Fl_Menu_Item structure (STR #30) - - Long menus that were aligned such that the top of an - item was exactly at the top of the screen would not - scroll (STR #33) - - The OS issues appendix incorrectly stated that MacOS - 8.6 and 9 were supported; they are not (STR #28) - - Fixed handling of nested double-buffered windows (STR - #1) - - Showing a subwindow inside a hidden window would crash - the application (STR #23) - - OSX users couldn't enter some special chars when using - some foreign key layouts (STR #32) - - Hiding subwindows on OSX would hide the parent window - (STR #22) - - Added thin plastic box types. - - Fl_Pack ignored the box() setting and cleared any - unused areas to the widget color; it now only does so - if the box() is set to something other than FL_NO_BOX. - - Updated the Fl_Tabs widget to offset the first tab by - the box dx value to avoid visual errors. - - Updated the plastic up box to draw only a single - border frame instead of the old double one for - improved appearance. - - Updated the default background color on OSX to provide - better contrast. - - Fl_Text_Display and friends now look for the next - non-punctuation/space character for word boundaries - (STR #26) - - gl_font() didn't work properly for X11 when Xft was - used (STR #12) - - Fl_File_Browser incorrectly included "." on WIN32 (STR - #9) - - Include shellapi.h instead of ShellAPI.h in the WIN32 - drag-n-drop code in order to work with the MingW cross - compiler (STR #6) - - The cursor was not properly restored when doing - drag-n-drop on X11 (STR #4) - - Fl::remove_fd() didn't recalculate the highest file - descriptor properly (STR #20) - - Fl_Preferences::deleteGroup() didn't work properly - (STR #13) - - Fixed the fl_show_file_selector() function - it was - copying using the wrong string size (STR #14) - - fl_font() and fl_size() were not implemented on MacOS - X. - - Sorted the icon menu bar in FLUID. - - Fixed minor memory access complaints from Valgrind - - Compiling src/flstring.h on OS X with BSD header would - fail. - - Fl_Text_Editor didn't scroll the buffer when the user - pressed Ctrl+End or Ctrl+Home. - - Fl_Text_Editor didn't show its cursor when the mouse - was moved inside the window. - - FLUID now uses an Fl_Text_Display widget for command - output, which allows you to copy and paste text from - command output into other windows. - - Fl_Gl_Window could cause a bus error on MacOS X if the - parent window was not yet shown. - - FLUID could crash after displaying a syntax error - dialog for the callback code. - - FLUID would reset the callback code if you opened the - widget panel for multiple widgets. - - Added a NULL check to Fl_Text_Display (SF Bug #706921). - - The fltk-config script placed the LDFLAGS at the wrong - place in the linker options. - - Fl_Text_Display didn't draw the outer box in the right - dimensions, so it was invisible. - - Fl_Help_Dialog used the same color for links as for - the background, causing links to be invisible on pages - without a background color set. - - -CHANGES IN FLTK 1.1.3 RELEASED: Feb 13 2003 - - - Documentation updates. - - FLTK now ignores KeyRelease events when X11 sends them - for repeating keys. - - FLUID now supports up to two additional qualifiers - before a class name (FL_EXPORT, etc.) to aide in - developing DLL interfaces for WIN32. - - Additional NULL checks in Fl_Button, - fl_draw_boxtype(), Fl_File_Chooser, and - Fl_Window::hotspot(). - - The Fl_Preferences header file needed to FL_EXPORT all - of the nested classes for WIN32. - - Fl_Double_Window couldn't be nested on WIN32. [SF Bug - #658219] - - Fl_Slider didn't call the callback function when the - user changed the value using the keyboard and the - "when" condition was FL_WHEN_RELEASE. [SF Bug #647072] - - Lines with less than 2 unique vertices and polygons - with less the 3 unique vertices were not drawn - properly. [SF Bug #647067] - - The size_range() values were not honored under MacOS - X. [SF Bug #647074] - - OpenGL windows didn't resize correctly on MacOS X. - [SF Bug #667855] - - The menus incorrectly used the overlay visual when one - or more menu items contained an image. [SF Bug #653846] - - Changed some error messages to use Fl::error() instead - of fprintf()... - - Fl_Text_Buffer and Fl_Text_Display used free to free - memory that was allocated using the new operator. - - Tweeked the plastic scheme under MacOSX to better - match the colors. - - The Fl_Image.H always included the x.H header file, - which included many system headers that could - interfere with normal GUI applications. It now uses - the corresponding based types for the image id and - mask to avoid this. - - The FLUID widget panel wasn't sorted, so keyboard - navigation was strange. [SF Bug #647069] - - Fl_Scroll didn't compute the location of labels to the - right or below when determining the area to erase. - - Added backward-compatibility macro for - filename_setext(). - - Fl_Bitmap::copy(), Fl_Pixmap::copy(), and - Fl_RGB_Image::copy() all could overflow the source - image when scaling the image. - - Double/triple clicks in Fl_Input fields didn't copy - the expanded selection to the clipboard. - - Fl_Glut_Window and Fl_Gl_Window didn't always initialize - the OpenGL context on MacOS. - - -CHANGES IN FLTK 1.1.2 RELEASED: Nov 25 2002 - - - Fl_Menu_Bar now supports drawing vertical dividers - between menu items and submenus in the menu bar. - - Fl_File_Chooser::value() didn't return NULL when the - user clicked Cancel while selecting a directory. This - bug also affected fl_dir_chooser(). - - Fl_Menu_::add(const char *) used too small a menu item - label buffer and didn't do bounds checking. - - Eliminate some compiler warnings with CodeWarrier - under WIN32 (Paul Chambers) - - Fl_Gl_Window widgets did not resize properly under - MacOS X. - - The cursor could be set for the wrong window in the - text widgets. - - Fl_Check_Browser didn't provide const char * add - methods as documented. - - Fl_Check_Browser didn't draw the same style of check - marks at the other widgets. - - Fl_Button, Fl_Choice, and Fl_Menu_Button incorrectly - activated the button/menu when the spacebar was - pressed in conjunction with shift, control, alt, or - meta. - - FLTK should now compile with Xft 2.0. - - Some versions of Tru64 4.0 have snprintf and - vnsprintf, but don't have the prototypes for those - functions. - - FLTK had trouble doing character composition with some - keyboard layouts under X11 (in particular, Belgian). - - Fl_Text_Editor would cause a segfault if the user - pressed CTRL-V (paste) without having any data in the - clipboard... - - The tab key moved backwards in menus instead of - forwards. Shift-tab still moves backwards. - - The redraw_label() method didn't damage the parent - window when the label was outside the widget's - bounding box. - - Added a "draw_children()" method to Fl_Group to make - subclassing Fl_Group with a custom draw() function - easier. - - Fl_Text_Editor now supports basic undo functionality. - - FLUID now uses Fl_Text_Editor widgets for all - multi-line code fields. - - Added new widget bin and icons to FLUID. - - FLUID would try running multiple commands in parallel, - even though it wasn't capable of handling it. - - FLUID didn't generate code for some attributes when - using custom/named widget classes. - - Added a new FL_COMMAND state bit which maps to FL_CTRL - on X11 and WIN32 and FL_META on MacOS. - - MacOS keyboard modifiers mapping corrections. Cmd and - Control are no longer swapped, event_key and event_text - return (mostly) the same values as on other platforms. - - The Fl_Tabs widget should no longer be a focus hog; - previously it would take focus from child widgets. - - The file chooser now activates the OK button when - opening a directory in directory selection mode. - - Fixed a bug in the file chooser when entering an - absolute path. - - Back-ported some FLTK 2.0 tooltip changes to eliminate - erroneous tooltip display. - - MacOS windows were resizable, even when size_range - would not allow for resizing. - - Fl_Text_Editor now supports Shift+Delete, Ctrl+Insert, - and Shift+Insert for cut, copy, and paste, - respectively. - - Fl_Text_Display didn't restore the mouse pointer when - hidden. - - Fl::arg() now ignores the MacOS X -psn_N_NNNNN option. - - Added another change to the WIN32 redraw handling for - the MingW compilers. - - Fl_File_Chooser didn't handle WIN32 home directories - that used backslashes instead of forward slashes. - - Fl_Text_Display didn't limit the resize height to 1 - line. - - Fl_Scrollbar widgets incorrectly took keyboard focus - when clicked on. This caused widgets such as - Fl_Text_Display to hide the cursor when you scrolled - the text. - - -CHANGES IN FLTK 1.1.1 RELEASED: ??? ?? 2002 - - - Fl_Text_Display didn't always show the cursor. - - Fl_Tabs now only redraws the tabs themselves when - making focus changes. This reduces flicker in tabbed - interfaces. - - The WIN32 redraw handler now correctly merges the FLTK - and Windows redraw regions. - - The Fl_Text_* widgets use the C++ bool type, which is - not supported by older C++ compilers. Added a - configure check and workaround code for this. - - Fl_X::set_xid() didn't initialize the backbuffer_bad - element that was used with XDBE. - - Fl_Shared_Image::uncache() was not implemented. - - Fl::set_font() didn't 0-initialize all font descriptor - data. - - Some OpenGL implementations don't support single- - buffered visuals. The Fl_Gl_Window class now emulates - single-buffered windows using double-buffered - windows. - - Added a workaround for a compiler bug in Borland C++ - that prevented Fl_Help_View.cxx from compiling. - - Checkmarks didn't scale properly; copied the 2.0 check - mark code over. - - Replaced several memcpy's with memmove's for - portability (memmove allows for overlapping copies, - memcpy does not) - - Bug #621737: Fl_Bitmap::copy(), Fl_Pixmap::copy(), and - Fl_RGB_Image::copy() now range-check the new width and - height to make sure they are positive integers. - - Bug #621740: the WIN32 port needed to handle WM_MOUSELEAVE events - in order to avoid problems with tooltips. - - Fl_PNM_Image didn't set the "alloc" flag for the data, - which could lead to a memory leak. - - fl_filename_match() was inconsistently doing case- - insensitive matching. - - Fl_Button redraw fix for bug #620979 (focus boxes and - check buttons). - - Fl_Text_Display fix for bug #620633 (crash on - redisplay). - - Fl_Output now calls its callback when the user clicks - or drags in the widget. - - Shortcuts now cause buttons to take focus when visible - focus is enabled. - - fl_filename_relative() didn't check that the path was - absolute under WIN32. - - fl_filename_relative() didn't check that the path was - on the current drive under WIN32. - - The Fl_BMP_Image class now handles 16-bit BMP files - and BMP files with a transparency mask. - - The fltk-config script didn't add the required include - path, if any, when compiling a program. - - Added a license clarification that the FLTK manual is - covered by the same license as FLTK itself. - - Fl_Check_Browser wasn't documented. - - Fl_Preferences::Node::addChild(), deleteEntry(), and - remove() didn't set the "dirty" flag. - - The "no change" button didn't work in the FLUID widget - panel. - - Vertical scrollbars did not draw the arrows inactive - when the scrollbar was inactive. - - -CHANGES IN FLTK 1.1.0 RELEASED: ??? ?? 2002 - - - Documentation updates. - - Added a Fl_Widget::redraw_label() method which flags a - redraw of the appropriate area. This helps to - eliminate flicker when updating the value of a widget. - - Fl_Wizard::value() now resets the mouse cursor to the - window's default cursor. - - Fl_File_Chooser::type() didn't enable/disable the new - directory button correctly. - - Fl_Preferences::entryExists() did not work properly. - - FLUID's image file chooser pattern was incorrect. - - Fl_File_Icon::load_system_icons() now detects KDE - icons in /opt/kde, /usr/local, and /usr automatically, - and supports the KDEDIR environment variable as well. - - Submenus now display to the left of the parent menu if - they won't fit to the right. Previously they would - display right on top of the parent menu... - - Fl_Menu_:add() didn't handle a trailing "\" character - gracefully. - - Clicking/dragging the middle mouse button in a - scrollbar now moves directly to that scroll position, - matching the behavior of other toolkits. - - Added some more range checking to the Fl_Text_Display - widget. - - The editor demo did not correctly update the style - (syntax highlighting) information. - - -CHANGES IN FLTK 1.1.0rc7 CANDIDATE: ??? ?? 2002 - - - Updated the Fl_Text_Buffer and Fl_Text_Display classes - to be based on NEdit 5.3 (patch from George Garvey). - - Fixed a problem with Fl::wait(0.0) on MacOS X 10.2; - this affected the fractals demo and other OpenGL - applications. - - Fl_Glut_Window now takes keyboard focus and handles - shortcut events. - - The MacOS X implementation of fl_ready() now checks - the event queue for events. - - Fl_PNM_Image now supports the XV/GIMP thumbnail format - (P7). - - Fl_Preferences would not find groups inside the root - group. - - Small bug fixes for Fl_Chart, Fl_Scrollbar, Fl_Tabs, - and FLUID from Matthew Morrise. - - Fl_Chart didn't have its own destructor, so data in - the chart wasn't freed. - - Fl_Menu_Button no longer responds to focus or keyboard - events when box() is FL_NO_BOX. - - FLTK convenience dialogs put the buttons in the wrong - order. - - Fl_BMP_Image didn't load 4-bit BMP files properly. - - Minor tweeks to the WIN32 DLL support. - - Fl_Text_Display::resize() could go into an infinite - loop if the buffer is emptied. - - Fl::handle() didn't pass FL_RELEASE events to the - grab() widget if pushed() was set (for proper menu - handling...) - - DND events were being sent to the target window - instead of the target widget under WIN32. - - The newest Cygwin needs the same scandir() handling as - HP-UX. - - FLUID didn't register the image formats in the - fltk_images library, and had some other image - management problems. - - Fixed one more redraw bug in Fl_Browser_ where we - weren't using the box function to erase empty space in - the list. - - Fl_Text_Display::buffer() now calls resize() to show - the buffer. - - Fl_Help_View didn't support HTML comments. - - Fl_Help_View didn't include the extra cellpadding when - handling colspan attributes in cells. - - Fl_Help_View didn't support table alignment. - - -CHANGES IN FLTK 1.1.0rc6 CANDIDATE: ??? ?? 2002 - - - Documentation updates. - - Fl::handle() didn't apply the modal tests for - FL_RELEASE events, which caused Fl_Tabs to allow users - to change tabs even when a modal window was open. - - Fl_Browser_, Fl_Input_, Fl_Slider now use the box - function to erase the background. This fixes some - long-standing redraw problems. - - More snprintf/strlcpy/strlcat changes where needed. - - Fl::get_font_name() would leak 128 bytes. - - Eliminated most of the "shadowed" variables to avoid - potential problems with using the wrong copy of "foo" - in a class method. - - Moved Fl_BMP_Image, Fl_GIF_Image, and Fl_PNM_Image to - the fltk_images library, so the only image formats - that are supported by the core library are XBM and XPM - files. This reduces the size of the FLTK core library - by about 16k... - - The Fl_Text_Display::resize() method was incorrectly - flagged as protected. - - Fixed some memory/initialization bugs in - Fl_File_Chooser that valgrind caught. - - The PNG library png_read_destroy() is deprecated and - does not free all of the memory allocated by - png_create_read_struct(). This caused a memory leak in - FLTK apps that loaded PNG images. - - Added uncache() method to Fl_Image and friends. - - Added image() methods to Fl_Menu_Item. - - Added default_cursor() method and data to Fl_Window. - - Fl_Group would send FL_ENTER events before FL_LEAVE - events, causing problems with adjacent widgets. - - Fixed filename problems with Fl_File_Chooser - - changing the filename field directly or choosing files - from the root directory could yield interesting - filenames. - - Fl_Input_ could crash if it received an empty paste - event. - - The mouse pointer now changes to the I beam - (FL_CURSOR_INSERT) when moved over an input field or - text widget. - - "make install" didn't automatically (re)compile the - FLUID executable. - - Added an Fl::get_boxtype() method to get the current - drawing function for a specific box type. - - Fl_Output and Fl_Multiline_Output didn't prevent - middle-mouse pastes. - - Fl_JPEG_Image didn't compile out-of-the-box with Cygwin - due to a bug in the Cygwin JPEG library headers. - - Fl_BMP_Image still didn't work with some old BMP files. - - "make distclean" didn't really clean out everything. - - Tweeked the look of the check button with a patch from - Albrecht Schlosser. - - -CHANGES IN FLTK 1.1.0rc5 CANDIDATE: ??? ?? 2002 - - - Added "wrap" type bit to Fl_Input_, so you can now - have a multiline text field that wraps text. - - Setting the value() of an output text field no longer - selects the text in it. - - Output text fields now show a caret for the cursor - instead of the vertical bar. - - The newButton and previewButton widgets are now public - members of the Fl_File_Chooser class. This allows - developers to disable or hide the "new directory" and - "preview" buttons as desired. - - Added new visible focus flag bit and methods to - Fl_Widget, so it is now possible to do both global and - per-widget keyboard focus control. - - Removed extra 3 pixel border around input fields. - - No longer quote characters from 0x80 to 0x9f in input - fields. - - Improved speed of Fl_Browser_::display() method with - large lists (patch from Stephen Davies.) - - Fl_Help_View didn't properly handle NULL from the link - callback (the original filename/directory name were - not preserved...) - - Fl_Help_View didn't use the boxtype border values when - clipping the page that was displayed. - - Added first steps to CodeWarrior/OS_X support (see - fltk-1.1.x/CodeWarrior/OS_X.sit) - - Cleaned up the WIN32 export definitions for some of - the widget classes. - - Fixed a filename completion bug when changing - directories. - - Fl_File_Chooser::value() would return directories with - a trailing slash, but would not accept a directory - without a trailing slash. - - When installing shared libraries, FLUID is now linked - against the shared libraries. - - MacOS: missing compile rule for .dylib files. - - Fl_Group::current(), Fl_Group::begin(), and - Fl_Group::end() are no longer inlined so that they are - properly exported in DLLs under WIN32. Similar - changes for all static inline methods in other - classes. - - MacOS: support for Mac system menu (Fl_Sys_Menu_Bar) - - MacOS: wait(0) would not handle all pending events - - Added new makeinclude file for MingW using GCC 3.1.x. - - Fl_Choice::value(n) didn't range check "n". - - The MingW and OS/2 makeinclude files didn't have the - new fltk_images library definitions. - - Fl_Text_Editor didn't scroll the text in the widget - when dragging text. - - Config header file changes for Borland C++. - - FLTK didn't provide a Fl::remove_handler() method. - - -CHANGES IN FLTK 1.1.0rc4 CANDIDATE: Jul 02 2002 - - - Added new filter_value() methods to Fl_File_Chooser to - get and set the current file filters. - - Added support for custom filters to Fl_File_Chooser. - - Added Borland C++ Builder IDE project files from - Alexey Parshin. - - Resource leak fixes under WIN32 from Ori Berger. - - Now register a WIN32 message for thread messages. - - Fl_Window didn't initialize the min and max window - size fields. - - The JPEG and PNG image classes have been moved to the - fltk_images library, a la FLTK 2.0. You can register - all image file formats provided in fltk_images using - the new fl_register_images() function. - - Fl_XBM_Image didn't correctly load XBM files. - - MacOS: Added Greg Ercolano's file descriptor support. - - MacOS: Fixed text width bug. - - A change in fl_fix_focus() broken click-focus in FLWM. - - Cygwin with -mnocygwin didn't like the FL/math.h - header file. - - Fl_Browser_ cleared the click count unnecessarily. - - MacOS: Pixmap draw fix, gl_font implemented - FL_FOCUS fix, window type fix for modal and nonmodal - windows, glut uninitialised 'display' proc fix - - Now support FLTK_1_0_COMPAT symbol to define - compatibility macros for the old FLTK 1.0.x function - names to the 1.1.x names. - - Now translate the window coordinates when a window is - shown, moved, or resized. This should fix the "menus - showing up at the wrong position" bug under XFree86. - - Fixed some more problems with the Fl_BMP_Image file - loader. - - BC++ fixes. - - The pixmap_browser demo didn't check for a NULL image - pointer. - - Fl_File_Icon::find() now uses fl_filename_isdir() - under WIN32 to check for directories. - - Fl_File_Chooser's preview code called refcount() - on the deleted image's object. - - Fixed another problem with the Fl_BMP_Image loader. - - The fl_file_chooser() callback was being called with a - NULL filename. - - Documented that fl_push_clip() is preferred over - fl_clip(), with a corresponding source change. - - Minor changes to the MacOS X event handling code. - - Added syntax highlighting example code to the editor - test program. - - Fl_Text_Display didn't range check style buffer - values. - - Added "dark" color constants (FL_DARK_RED, etc.) - - The MacOS font code was missing definitions for - fl_font_ and fl_size_. - - -CHANGES IN FLTK 1.1.0rc3 CANDIDATE: ??? ?? ???? - - - Documentation updates. - - New file chooser from design contest. - - Did some testing with Valgrind and fixed some memory - problems in Fl_Help_View::Fl_HelpView, - Fl_Menu_::remove(), Fl_Text_Display::draw_vline(), and - resizeform() (convenience dialogs). - - Fixed some redraw() bugs, and now redraw portions of - the parent widget when the label appears outside the - widget. - - The boolean (char) value methods in Fl_Preferences - have been removed since some C++ compilers can't - handle char and int value methods with the same name. - - Added fl_read_image() function. - - Fixed Fl_Valuator::format() so that the correct format - type is used when step == 1.0. - - Fl_Help_View didn't support the TT markup. - - Fl_Shared_Image used a double-pointer to the image - handler functions, which was unnecessary and - unintuitive. - - Fl_PNM_Image didn't load the height of the image - properly. - - Fl_BMP_Image, Fl_JPEG_Image, Fl_PNG_Image, and - Fl_Shared_Image didn't delete image data that was - allocated. - - Enabled the OpenGL and threads demos when compiling - for MingW. - - Fl_File_Input didn't update the directory buttons if a - callback was registered with the widget. - - The file chooser would return the last selected - file(s) when cancel was pressed. - - The file chooser limited the resizing of the chooser - window unnecessarily. - - Fixed WM_PAINT handling under WIN32. - - Minor tweeks to MingW and OS/2 config headers. - - Fl_Value_Input now correctly determines if step() - specifies an integer value. - - Fl_Help_View didn't add links inside PRE elements. - - OS/2 build fixes from Alexander Mai. - - Now use strlcat() instead of strncat() which could - cause buffer overflows. - - Now use of strlcpy() instead of strncpy() to simplify - the code. - - Drag-n-drop under WIN32 now shows a [+] cursor instead - of the link cursor. - - Fixed widget width tooltip and default argument - handling code in FLUID. - - Fixed colors used when drawing antialiased text using - Xft. - - Fl_Preferences::makePath() now uses access() instead - of stat() when checking to see if the destination - directory already exists. - - Fl_BMP_Image now supports older BMP files with the 12 - byte header. - - Optimized the redrawing of tabs and radio/check - buttons when the keyboard focus changes. - - More tooltip fixes. - - DND text operations would loop under X11. - - -CHANGES IN FLTK 1.1.0rc2 CANDIDATE: ??? ?? ???? - - - Portability fixes. - - Backported 2.0 tooltip changes. - - Several of the valuators did not support tooltips. - - The last menu item in a menu didn't pick up on font - changes. - - FLUID now properly handles default argument parameters - properly. - - Fixed WM_PAINT handling under WIN32 - didn't validate - the correct region that was drawn. - - Fl_Multiline_Output would insert the enter key. - - Fl_File_Browser didn't clip items to the column width. - - Fl_Window::draw() cleared the window label but didn't - restore it, so windows could lose their titles. - - Eliminated multiple definitions of dirent structure - when compiling under WIN32. - - Adjusted the size of the circle that is drawn inside - radio buttons to scale better for larger labels. - - FLUID was opening the display when it shouldn't have. - - Fl_File_Chooser.cxx defined the file chooser functions - again; they should only be defined in the header file. - - Wide arcs would draw with "teeth". - - The preferences demo included Fl/Fl_Preferences.H - instead of FL/Fl_Preferences.H. - - -CHANGES IN FLTK 1.1.0rc1 CANDIDATE: ??? ?? ???? - - - The fl_file_chooser() and fl_dir_chooser() functions - now support an optional "relative" argument to get - relative pathnames; the default is to return absolute - pathnames. - - The backspace and delete keys now work as expected in - the file chooser when doing filename completion. - - FLUID now supports running shell commands. - - New Fl_File_Input widget that shows directory - separators with filename in input field. - - The Fl_File_Chooser dialog now shows the absolute path - in the filename field using the Fl_File_Input widget. - - FLUID now keeps track of grid, tooltip, and other - GUI options, along with the last 10 files opened. - - Tooltip windows would show up in the task bar under - WIN32. - - Now append trailing slash to directory names in names - in WIN32 version of scandir(). This takes care of a - file chooser performance problem with large - directories. - - Added Fl_Preferences class from Matthias Melcher, - including binary data support. - - FLUID now recognizes the "using" keyword in - declarations. - - fl_file_chooser() didn't highlight the requested file - the second time the file chooser dialog was shown. - - Fixed rendering of Fl_Light_Button with the plastic - scheme. - - Fixed a bug in the MacOS font enumeration code. - - Now show a "locked" icon next to static/private - elements in FLUID, and "unlocked" icon next to - global/public elements. - - Implemented Fl_Menu_Item image labels using older - 1.0.x labeltype method. - - Updated the PNG library check to support both png.h - and libpng/png.h. - - Fixed a recursion bug in tooltips that was causing - random crashes. - - fl_file_chooser() could cause a segfault when passed a - NULL filename parameter in some situations. - - Added a "-g" option to fltk-config to support quick - compiling with debugging enabled. - - Fixed redraw problem with Fl_Input and anti-aliased - text. - - Added threading support for MacOS X and Darwin. - - The filesystem list in the file chooser now works under - MacOS X and Darwin. - - The fl_msg structure now contains all data passed to - the WndProc function under WIN32. - - Fixed some window focus/positioning problems under - MacOS X. - - Added fl_create_alphamask() function to create an alpha - mask from 8-bit data; currently this always generates a - 1-bit screen-door bitmask, however in the future it will - allow us to generate N-bit masks as needed by various - OS's. - - Fl_File_Browser::load() didn't properly show drives - when compiled in Cygwin mode. - - Now pass correctly pass keyboard and mouse events to - widget under tooltip as needed... - - Added new Fl::dnd_text_ops() methods to enable/disable - drag-and-drop text operations. - - Fl_Input now supports clicking inside a selection to - set the new text position when drag-and-drop is - enabled. - - Added support of X resources for scheme, dnd_text_ops, - tooltips, and visible_focus... - - Fixed some case problems in includes for the MacOS X - code. - - Fl_Widget::handle() returned 1 for FL_ENTER and - FL_LEAVE events, which caused some compatibility - problems with 1.0 code. - - Fl_Box::handle() now returns 1 for FL_ENTER and - FL_LEAVE events so that tooltips will work with Fl_Box - widgets. - - Some source files still defined strcasecmp and - strncasecmp under WIN32. - - Some source files still used the "false" and "true" - C++ keywords, even though several of our "supported" - C++ compilers don't support them. Using 0 and 1 until - FLTK 2.0 (which uses the bool type instead of int for - any boolean values...) - - Minor Fl_Color revamping, so that color constants map - to the color cube and FL_FOREGROUND_COLOR, - FL_BACKGROUND_COLOR, FL_BACKGROUND2_COLOR, - FL_INACTIVE_COLOR, and FL_SELECTION_COLOR map to the - user-defined colors. - - -CHANGES IN FLTK 1.1.0b13 BETA: ??? ?? ???? - - - Fixed a bug in the Xft support in Fl_Window::hide() - (the config header wasn't included, so the Xft code - wasn't getting called) - - Xdbe support must now be enabled explicitly using - --enable-xdbe due to inconsistent bugs in XFree86 and - others. - - Windows resized by a program would revert to their - original size when moved under WIN32. - - Cygwin can only compile the new WIN32 drag-n-drop code - using GCC 3.x. - - Tooltips now appear for inactive and output widgets. - - Tooltips no longer steal keyboard events other than - ESCape. - - Tooltips are no longer delayed when moving between - adjacent widgets. - - fl_beep(FL_BEEP_DEFAULT) now uses the PC speaker under - Windows (0xFFFFFFFF) rather than an event sound. - - The configure script didn't include the -mwindows or - -DWIN32 compiler options in the output of fltk-config - when using the Cygwin tools. - - Fl_Output didn't take input focus when needed, so it - was unable to support CTRL-C for copying text in the - field and did not unhighlight selections when the - widget lost focus. - - The fl_filename_name() function didn't handle a NULL - input string. - - The input field used by the fl_input() and - fl_password() functions was resized too small in - 1.1.0b12. - - Added casts in fl_set_fonts_win32.cxx for VC++ 5.0. - - Fl_File_Icon::find() did not check the basename of a - filename for a match; this caused matches for a - specific filename (e.g. "fluid") to fail. - - The Fl_Shared_Image class now supports additional - image handling functions - this allows you to support - additional image file formats transparently. - - -CHANGES IN FLTK 1.1.0b12 BETA: ??? ?? ???? - - - Documentation updates. - - Fl_Choice didn't clip the current value properly - it - wasn't accounting for the box border width. - - The forms compatibility functions are now placed in a - "fltk_forms" library to match FLTK 2.0. - - Renamed down() and frame() to fl_down() and - fl_frame(), filename_xyz() to fl_filename_xyz(), and - all of the define_FL_FOO() functions for the custom - boxtypes to fl_define_FL_FOO() to avoid namespace - clashes. - - Stereo OpenGL support (patch from Stuart Levy) - - All of the convenience functions defined in fl_ask.H - now resize the widgets and dialog window as needed for - the labels and prompt. - - Backported FLTK 2.0 dual cut/paste buffer code. - - Added support for Xft library to provide anti-aliased - text on X11. - - Fl_Help_View didn't keep track of the background color - of cells properly. - - Fl_Browser::item_width() didn't compute the width of - the item properly when column_widths() was set. - - Fl_Button didn't check to see if the widget could - accept focus before taking input focus. - - Fl_Help_View didn't preserve target names (e.g. - "filename.html#target") when following links. - - Drag-and-drop support for MacOS. - - Updated MacOS issues documentation. - - -CHANGES IN FLTK 1.1.0b11 BETA: ??? ?? ???? - - - Now conditionally use the WIN32 TrackMouseEvent API - (default is no...) - - Fixed a table rendering bug in the Fl_Help_View - widget. - - The fltk-config script now recognizes all common C++ - extensions. - - The menu code was using overlay visuals when the - scheme was set to "plastic". - - Fixed some drawing problems with Fl_Light_Button and - its subclasses. - - Fixed a minor event propagation bug in Fl_Group that - caused mousewheel events to be passed to scrollbars - that were not visible. - - The fl_file_chooser() function did not preserve the - old file/directory like the old file chooser did. - - The prototypes for fl_input() and fl_password() did - not default the "default value" to NULL. - - Fl_Tabs now draws tabs using the selection_color() of - the child groups; this allows the tabs to be colored - separately from the body. Selected tabs are a mix of - the Fl_Tabs selection_color() and the child group's - selection_color(). - - Fl_Tabs didn't include images in the measurement of - the tabs if no label text was defined. - - The WIN32 code didn't return 0 from the window - procedure after handling WM_PAINT messages. - - fl_draw() would incorrectly test the clipping of - labels the lay outside the bounding box. - - filename_relative() didn't always return the correct - relative path. - - Updated the test makefile to work with more versions - of "make". - - Added new "--with-optim" configure option to set the - optimization flags to use when compiling FLTK. - - The fltk-config script no longer reports the - optimization flags that were used to compile FLTK. - - Initial port of FLTK 2.0 drag-and-drop support. - - -CHANGES IN FLTK 1.1.0b10 BETA: ??? ?? ???? - - - Fixed the new WIN32 TrackMouseEvent code. - - Fixed the VC++ project files to link against - comctl32.lib. - - -CHANGES IN FLTK 1.1.0b9 BETA: ??? ?? ???? - - - Better FL_LEAVE event handling for WIN32. - - The alpha mask was bit-reversed. - - Fl::scheme() applied the scheme tile image to overlay - and menu windows, which caused problems when the - overlay planes were in use. - - Fixed Fl::event_button() value when hiding tooltip on - some systems. - - Added Fl_BMP_Image class to support loading of Windows - bitmap (BMP) files. - - The shiny demo didn't work on some systems (no - single-buffered OpenGL visual), and the new box types - were reset when show(argc, argv) was called. - - Fl::scheme() didn't update windows that were not - shown. - - The fractals demo would get far ahead of the UI with - some Linux OpenGL drivers. Now use glFinish() instead - of glFlush() so we are at most 1 frame ahead. - - The fractals demo Y axis controls were backwards for - the "flying" mode. - - MacOS: cleaned up src/Fl_mac.cxx - - MacOS: fixed Fl::wait(0.0), fixed Cmd-Q handling - - Update CygWin support for Fl::add_fd(). - - Update the plastic scheme to not override the default - colors - move the color code to the MacOS-specific - code. Also updates the tile image colormap to match - the current background color. - - Add fl_parse_color() to X11 as well, removing a bunch - of conditional code and providing a common interface - for looking up color values. - - Fixed the make problems in the test directory - some - make programs had trouble handling the recursive - dependencies on the FLUID files... - - Now use rint() to round floating-point coordinates. - - Demo cleanup - made sure they all worked with schemes. - - Fl_Tabs no longer clears the unused area of the tab - bar. - - Added show(argc, argv) method to Fl_Help_Dialog. - - MacOS: implemented cut/copy/paste. - - MacOS: improved keyboard handling, fixed keyboard - focus handling, fixed get_key, modified 'keyboard' - demo to show second mouse wheel and additional keys - 'help' and FL_NK+'=' - - -CHANGES IN FLTK 1.1.0b8 BETA: ??? ?? ???? - - - OS/2 build fixes. - - fl_draw() didn't ignore symbol escapes properly for - the browsers... - - New Fl::scheme() methods from FLTK 2.0; currently only - the standard ("") and plastic ("plastic") methods are - supported. Schemes can be set on the command-line - ("-scheme plastic") or using the FLTK_SCHEME - environment variable. - - MacOS: fixed iBook keyboard handling, moved - remaining message handling to Carbon, added mouse - capture support, added timer support, added overlay - support, fixed double-buffering side effects. - - The configure script wasn't using the -fpermissive or - -fno-exceptions options with GCC. - - Fl_JPEG_Image and friends didn't set the depth if the - image file couldn't be loaded; since Fl_RGB_Image - didn't check for this, it could fail when displaying - or copying these images. - - filename_absolute() did not always free its temporary - buffer. - - filename_relative() did not do a case-insensitive - comparison under MacOS, OS/2, and Windows. - - filename_isdir() didn't properly handle "D:L" under - WIN32. - - Fl_Shared_Image::get() did not check to see if the - image could not be loaded. - - Fl_Help_View didn't clear the line array in the - Fl_Help_Block structure; this causes erratic - formatting for some pages. - - The font and size members of Fl_Help_Block were never - used. - - The threading functions (Fl::lock() and friends) were - not exported under WIN32. - - The Fl_Text_Display destructor deleted the scrollbars - twice... - - Fl_Help_View didn't reset the horizontal scroll - position when showing a new page. - - Fl_Pack now allows any child widget to be the - resizable() widget, not just the last one. - - MacOS: opaque window resizing, all events except - Mac menus are now handled using Carbon, window - activation fixed, GL_SWAP_TYPE default changed to - make gl_overlay work. - - Fl_Help_View::resize() didn't resize the horizontal - scrollbar. - - MacOS: list all fonts, fixed clipping and mouse - pointer bugs. - - The Fl_File_Chooser widget now uses hotspot() to - position the dialog under the mouse pointer prior to - showing it. - - Added a configure check for *BSD - use -pthread option - instead of -lpthread. - - Fl_Text_Display could get in an infinite loop when - redrawing a portion of the screen. Added a check for - the return value from fl_clip_box() so that the - correct bounding box is used. - - Removed the Fl_Mutex and Fl_Signal_Mutex classes from - the threads example, since they weren't being used - and apparently are not very portable. - - Fl_Help_View now ignores links when the link callback - returns NULL, and displays a sensible error message - when an unhandled URI scheme is used (e.g. http:, - ftp:) - - Fl_File_Icon::load_system_icons() no longer complains - about missing icon files, just files that exist but - can't be loaded. - - FLUID didn't list the plastic box and frame types. - - Now hide the tooltip window whenever a window is - hidden. Otherwise a tooltip window could keep an - application running. - - Updated FLUID to only append a trailing semicolon to - code lines in a callback (so "#include" and friends - will work...) - - The Fl_Color_Chooser widget now supports keyboard - navigation. - - Fixed button and valuator widgets to call Fl::focus() - instead of take_focus(). - - Tweeked the radio button drawing code for better - circles with different boxtypes. - - The Fl_File_Chooser widget did not provide a shown() - method, and fl_file_chooser() and fl_dir_chooser() did - not wait on shown(); this would cause them to return - prematurely if you switched desktops/workspaces. - - Cosmetic changes to plastic boxtypes. Now look much - better for large areas and the buttons now have a much - greater "3D" feeling to them. - - Added new Fl::draw_box_active() method so that - boxtypes can find out if the widget they are drawing - for is active or not. - - Fl_Button and its subclasses did not redraw the parent - when the boxtype was FL_NO_BOX and they lost keyboard - focus (the parent redraw clears the focus box.) - - Fixed the example program makefile - wasn't building - the mandelbrot and shiny demos right. - - Fl::set_font(Fl_Font, Fl_Font) was not implemented. - - Fixed the documentation Makefile commands; was not - using the fltk.book file for some reason... - - -CHANGES IN FLTK 1.1.0b7 BETA: ??? ?? ???? - - - More documentation updates... - - Mac OS X support works 95% - - The Fl_Window::hotspot() off-screen avoidance code was - commented out. - - Mac OS X uses mostly Carbon event handling to support - Mousewheel, three buttons, all modifier keys, etc. - - Updated paragraph 4 of the FLTK license exceptions; - there was some question about the requirement to show - that a program uses FLTK, which is required by section - 6 of the LGPL. The new exemption specifies that - inclusion of the FLTK license is not required, just a - statement that the program uses FLTK. - - Fl_Button::handle() was calling take_focus() for both - FL_PUSH and FL_DRAG. - - File and memory fixes for Fl_GIF_Image, Fl_PNG_Image, - Fl_PNM_Image, Fl_Shared_Image, Fl_Tiled_Image, and - Fl_XBM_Image. - - filename_match() didn't handle backslashes properly - under WIN32, and didn't use a case-insensitive - comparison under MacOS X. - - The Fl class was missing access methods for the - FL_MOUSEWHEEL event values - Fl::event_dx() and - Fl::event_dy(). - - The default help string didn't include the -nokbd - option. - - "make uninstall" didn't uninstall the static OpenGL - widget library. - - Mac cursor shapes added... - - Fl_Text_Display would lockup when all text was - deleted; for example, when running the editor - demo, you couldn't load a second file. - - Added Fl::lock() and friends from FLTK 2.0 to - support multi-threaded applications; see the - "threads" demo for an example of this. - - Fl_Check_Button and Fl_Round_Button now use the - FL_NO_BOX box type to show the background of the - parent widget. - - Tweeked the plastic boxtype code to draw with the - right shading for narrow, but horizontal buttons. - - Fl_Progress now shades the bounding box instead of - drawing a polygon inside it. - - Fl::warning() under WIN32 defaults to no action. This - avoids warning dialogs when an image file cannot be - loaded. - - Some Win32 drivers would draw into wrong buffers - after OpenGL mode change - - The file chooser would cause a segfault if you - clicked in an empty area of the file list. - - Fl_File_Icon::labeltype() would cause a segfault - if the value pointer was NULL. - - Fl_File_Icon::load_image() could cause segfaults - (NULL data and incrementing the data pointer too - often.) - - Fl_File_Icon::load_image() now handles 2-byte - per color XPM files. - - Some Win32 drivers would draw into wrong buffers - after OpenGL mode change. - - Message handling and Resources for MacOS port. - - Fl_Help_View could get in an infinitely loop when - determining the maximum width of the page; this - was due to a bug in the get_length() method with - percentages (100% width would cause the bug.) - - Don't need -lgdi32 for CygWin, since -mwindows - does this for us. - - The WIN32 event handler did not properly handle - WM_SYNCPAINT messages. - - Fl_Tabs now uses the boxtype exclusively to draw - both the tabs and surrounding box, so alternate - box types actually work and the look is a little - nicer. - - Fixed the drawing of large areas with the new - plastic boxtypes. - - Updated the Visual C++ demo projects to use FLUID - to generate the GUI files as needed. - - The demo program didn't load the right menu file - when compiled for debugging under WIN32. - - Added plastic box types to forms demo. - - Added mousewheel to keyboard demo. - - The Fl_Text_Editor widget caused an infinite loop - when it received keyboard focus. - - filename_isdir() didn't properly handle drive letters - properly; WIN32 needs a trailing slash for drive - letters by themselves, but cannot have a trailing - slash for directory names, go figure... - - The Fl_Text_Buffer and Fl_Text_Display classes did not - initialize all of their members. - - fl_normal_label() had a totally redundant set of - if/else tests, which the new code handles all from - fl_draw(). - - The Fl_File_Chooser dialog contained two hotspots. - - The fl_draw_pixmap() function didn't free the 2-byte - color lookup table properly (delete instead of - delete[]). - - fl_draw() reset the text color under WIN32, causing - bitmaps to draw incorrectly. - - Fl::get_font_sizes() is now implemented under WIN32. - - Fl_Text_Display now uses the same default colors for - selection and text as Fl_Input_ and friends. - - Changed the default line scrolling in Fl_Text_Display - to 3 lines for the mouse wheel and scrollbar arrows. - - -CHANGES IN FLTK 1.1.0b6 BETA: ??? ?? ???? - - - Documentation updates... - - The configure script now works within the CygWin - environment. - - Tooltips are now enabled by default, but are not - re-enabled when calling the Fl_Widget::tooltip() - method. - - Added new Fl::version() method to get the current - FLTK library version (for shared libraries/DLLs) - - Added new Fl::event() method to get the current - event that is being processed. - - Added new fl_beep() function to do audible - notifications of various types. - - Added new Fl_GIF_Image, Fl_JPEG_Image, Fl_PNG_Image, - Fl_PNM_Image, Fl_XBM_Image, and Fl_XPM_Image classes. - - Added new Fl_Shared_Image class, a la FLTK 2.0. - - Added new Fl_Tiled_Image class for tiled backgrounds. - - Added new copy(), desaturate(), inactive(), and - color_average() methods to the Fl_Image classes. - - Added a horizontal scrollbar to the Fl_Help_View - widget. - - Added new FL_PLASTIC_{UP/DOWN}_{BOX/FRAME} boxtypes - for a more "modern" look (sort of a cross between KDE - 2.2 and Aqua.) - - Fl_Float_Input and Fl_Int_Input no longer accept - pasted text that is not a floating point or integer - value. Pasted numbers now replace text in these - widgets. - - Implemented the Fl_File_Icon::load_png() method. - - The Fl_File_Icon::load_system_icons() method now - supports KDE 2.x icons. - - Fixed PNG support in Fl_Help_View. - - Removed the "Microsoft" mode button from the menubar - demo. - - The browser demo now makes sure that the input field - contains a number. - - The Fl_Browser::make_visible() method now range checks - the input. - - Updated the fl_draw() and fl_measure() methods to - accept an optional draw_symbols argument, which - controls whether symbols are drawn in the text. - - Added new Fl::visible_focus() methods to control - whether the focus box is drawn. - - The focus box is now drawn using the contrast color. - - Fl_Repeat_Button didn't accept keyboard focus. - - Added new Fl::visible_focus() method and standard - "-kbd" and "-nokbd" options in Fl::args() processing - to control whether keyboard focus is shown and handled - by non-text widgets. - - The wrong tooltip could be shown if the user moved the - mouse over adjacent widgets with tooltips. - - The drop-down button on Fl_Choice widgets was not - limited in width. - - Tooltips could appear off the screen. - - Mouse wheel events are now sent to the focus widget - first, then to any other interested widget. - - The Fl_RGB_Image class now supports images with an - alpha channel. Images are currently drawn using - "screen door" transparency... See the "image" demo - for an example. - - Added new fl_create_bitmask() and fl_delete_bitmask() - functions that create bitmap objects for masking and - bitmap drawing. - - Was sending FL_RELEASE events for buttons 4 and 5 - under X11, which are only for FL_MOUSEWHEEL. - - Fl_Help_View now supports the EM and STRONG elements. - - Didn't do callbacks when changing tabs via keyboard. - - FLUID didn't write tooltip strings to the message - catalog file. - - Fl_File_Icon now uses Fl_Shared_Image to load icon - images; the load_png() and load_xpm() methods have - been replaced by a single load_image() method. - - Fl_File_Icon::load_system_icons() now does a better - job of finding KDE icons. - - Now use Fl::warning() and Fl::error() in place of - printf's in some of the newer widgets. - - The default behavior of Fl::error() is now to display - an error but not to exit; Fl::fatal() still exits. - - FLUID now uses the Fl_Shared_Image class, so FLUID- - generated GUIs can embed any of the supported image - file formats. - - New filename_relative() function to convert an - absolute filename to a relative one. - - Updated the filename_absolute(), filename_expand(), - and filename_setext() functions to take the - destination string size, with inline functions for the - old FL_PATH_MAX size. - - fl_file_chooser() and fl_dir_chooser() now return a - relative path. - - Fl_Help_View now supports all ampersand escapes. - - -CHANGES IN FLTK 1.1.0b5 BETA: ??? ?? ???? - - **** NOTE: DUE TO CHANGES IN THE WIDGET CLASSES, **** - **** YOU MUST RECOMPILE ALL SOURCE FILES **** - **** THAT USE FLTK!!! **** - - - All FLTK color values are now 32-bits and support - both the legacy 8-bit color values as well as 24-bit - RGB values (0xRRGGBB00 for 24-bit RGB, 0x000000II - for indexed color). - - Fl::set_boxtype() and fl_internal_boxtype() now keep - track of when a boxtype is changed; this allows you to - override the "special" boxtypes without references to - those boxtypes causing them to be reset. - - Fl_Help_Func now takes a Fl_Widget pointer as well as - a pathname. - - Added code to support FL_KEYUP events. - - Focus did not return to the Fl_Text_Display and Editor - widgets when scrolling and then clicking inside the - editor window. - - Now set the line size of the vertical scrollbar in the - text editor to 1. - - The symbols demo didn't show the strings needed to - show the corresponding symbol (the label string was - not quoted...) - - FLTK should now compile with Cygwin cleanly. - - Shortcut changes were not being saved by FLUID. - - FLUID didn't write the deimage() static data. - - -CHANGES IN FLTK 1.1.0b4 BETA: ??? ?? ???? - - **** NOTE: DUE TO CHANGES IN THE FL_WIDGET CLASS, **** - **** YOU MUST RECOMPILE ALL SOURCE FILES **** - **** THAT USE FLTK!!! **** - - - Updated the flags_ member of Fl_Widget to be an - integer instead of uchar, to support the new - FL_OVERRIDE flag for Fl_Window. - - - The parent() method of Fl_Widget now uses pointers to - Fl_Group instead of Fl_Widget. - - - Fl_Window now provides the FLTK 2.0 "override()" and - "set_override()" methods for windows. - - - Added a configure check (and warning) for GCC 3.0.x. - - - Updated the configure script to check for the - png_set_tRNS_to_alpha() function. - - - Updated the config.h files for all platforms for the - image and FLTK documentation defines. - - - Updated the makeinclude files for all platforms to - match the current makeinclude.in file. - - - FLUID would crash if you cleared an image for a - widget. - - - Fl_Help_View::add_image() did not initialize the image - member of the base (unscaled) image. + - The file chooser did not reset the click count when + changing directories; if you clicked on a file in the + same position after changing directories with a + double-click, the chooser treated it as a triple + click (STR #27) + - Symbols with outlines did not get drawn inactive. + - The Fl_Help_View widget now provides a find() method + to search for text within the page. + - The Fl_Help_Dialog widget now provides a search box + for entering text to search for. + - The default font encoding on OSX did not match the + default on WIN32 or X11. + - Menu items were not drawn using the font specified in + the Fl_Menu_Item structure (STR #30) + - Long menus that were aligned such that the top of an + item was exactly at the top of the screen would not + scroll (STR #33) + - The OS issues appendix incorrectly stated that MacOS + 8.6 and 9 were supported; they are not (STR #28) + - Fixed handling of nested double-buffered windows (STR + #1) + - Showing a subwindow inside a hidden window would crash + the application (STR #23) + - OSX users couldn't enter some special chars when using + some foreign key layouts (STR #32) + - Hiding subwindows on OSX would hide the parent window + (STR #22) + - Added thin plastic box types. + - Fl_Pack ignored the box() setting and cleared any + unused areas to the widget color; it now only does so + if the box() is set to something other than FL_NO_BOX. + - Updated the Fl_Tabs widget to offset the first tab by + the box dx value to avoid visual errors. + - Updated the plastic up box to draw only a single + border frame instead of the old double one for + improved appearance. + - Updated the default background color on OSX to provide + better contrast. + - Fl_Text_Display and friends now look for the next + non-punctuation/space character for word boundaries + (STR #26) + - gl_font() didn't work properly for X11 when Xft was + used (STR #12) + - Fl_File_Browser incorrectly included "." on WIN32 (STR + #9) + - Include shellapi.h instead of ShellAPI.h in the WIN32 + drag-n-drop code in order to work with the MingW cross + compiler (STR #6) + - The cursor was not properly restored when doing + drag-n-drop on X11 (STR #4) + - Fl::remove_fd() didn't recalculate the highest file + descriptor properly (STR #20) + - Fl_Preferences::deleteGroup() didn't work properly + (STR #13) + - Fixed the fl_show_file_selector() function - it was + copying using the wrong string size (STR #14) + - fl_font() and fl_size() were not implemented on MacOS + X. + - Sorted the icon menu bar in FLUID. + - Fixed minor memory access complaints from Valgrind + - Compiling src/flstring.h on OS X with BSD header would + fail. + - Fl_Text_Editor didn't scroll the buffer when the user + pressed Ctrl+End or Ctrl+Home. + - Fl_Text_Editor didn't show its cursor when the mouse + was moved inside the window. + - FLUID now uses an Fl_Text_Display widget for command + output, which allows you to copy and paste text from + command output into other windows. + - Fl_Gl_Window could cause a bus error on MacOS X if the + parent window was not yet shown. + - FLUID could crash after displaying a syntax error + dialog for the callback code. + - FLUID would reset the callback code if you opened the + widget panel for multiple widgets. + - Added a NULL check to Fl_Text_Display (SF Bug #706921). + - The fltk-config script placed the LDFLAGS at the wrong + place in the linker options. + - Fl_Text_Display didn't draw the outer box in the right + dimensions, so it was invisible. + - Fl_Help_Dialog used the same color for links as for + the background, causing links to be invisible on pages + without a background color set. + + +CHANGES IN FLTK 1.1.3 RELEASED: Feb 13 2003 + + - Documentation updates. + - FLTK now ignores KeyRelease events when X11 sends them + for repeating keys. + - FLUID now supports up to two additional qualifiers + before a class name (FL_EXPORT, etc.) to aide in + developing DLL interfaces for WIN32. + - Additional NULL checks in Fl_Button, + fl_draw_boxtype(), Fl_File_Chooser, and + Fl_Window::hotspot(). + - The Fl_Preferences header file needed to FL_EXPORT all + of the nested classes for WIN32. + - Fl_Double_Window couldn't be nested on WIN32. [SF Bug + #658219] + - Fl_Slider didn't call the callback function when the + user changed the value using the keyboard and the + "when" condition was FL_WHEN_RELEASE. [SF Bug #647072] + - Lines with less than 2 unique vertices and polygons + with less the 3 unique vertices were not drawn + properly. [SF Bug #647067] + - The size_range() values were not honored under MacOS + X. [SF Bug #647074] + - OpenGL windows didn't resize correctly on MacOS X. + [SF Bug #667855] + - The menus incorrectly used the overlay visual when one + or more menu items contained an image. [SF Bug #653846] + - Changed some error messages to use Fl::error() instead + of fprintf()... + - Fl_Text_Buffer and Fl_Text_Display used free to free + memory that was allocated using the new operator. + - Tweeked the plastic scheme under MacOSX to better + match the colors. + - The Fl_Image.H always included the x.H header file, + which included many system headers that could + interfere with normal GUI applications. It now uses + the corresponding based types for the image id and + mask to avoid this. + - The FLUID widget panel wasn't sorted, so keyboard + navigation was strange. [SF Bug #647069] + - Fl_Scroll didn't compute the location of labels to the + right or below when determining the area to erase. + - Added backward-compatibility macro for + filename_setext(). + - Fl_Bitmap::copy(), Fl_Pixmap::copy(), and + Fl_RGB_Image::copy() all could overflow the source + image when scaling the image. + - Double/triple clicks in Fl_Input fields didn't copy + the expanded selection to the clipboard. + - Fl_Glut_Window and Fl_Gl_Window didn't always initialize + the OpenGL context on MacOS. + + +CHANGES IN FLTK 1.1.2 RELEASED: Nov 25 2002 + + - Fl_Menu_Bar now supports drawing vertical dividers + between menu items and submenus in the menu bar. + - Fl_File_Chooser::value() didn't return NULL when the + user clicked Cancel while selecting a directory. This + bug also affected fl_dir_chooser(). + - Fl_Menu_::add(const char *) used too small a menu item + label buffer and didn't do bounds checking. + - Eliminate some compiler warnings with CodeWarrier + under WIN32 (Paul Chambers) + - Fl_Gl_Window widgets did not resize properly under + MacOS X. + - The cursor could be set for the wrong window in the + text widgets. + - Fl_Check_Browser didn't provide const char * add + methods as documented. + - Fl_Check_Browser didn't draw the same style of check + marks at the other widgets. + - Fl_Button, Fl_Choice, and Fl_Menu_Button incorrectly + activated the button/menu when the spacebar was + pressed in conjunction with shift, control, alt, or + meta. + - FLTK should now compile with Xft 2.0. + - Some versions of Tru64 4.0 have snprintf and + vnsprintf, but don't have the prototypes for those + functions. + - FLTK had trouble doing character composition with some + keyboard layouts under X11 (in particular, Belgian). + - Fl_Text_Editor would cause a segfault if the user + pressed CTRL-V (paste) without having any data in the + clipboard... + - The tab key moved backwards in menus instead of + forwards. Shift-tab still moves backwards. + - The redraw_label() method didn't damage the parent + window when the label was outside the widget's + bounding box. + - Added a "draw_children()" method to Fl_Group to make + subclassing Fl_Group with a custom draw() function + easier. + - Fl_Text_Editor now supports basic undo functionality. + - FLUID now uses Fl_Text_Editor widgets for all + multi-line code fields. + - Added new widget bin and icons to FLUID. + - FLUID would try running multiple commands in parallel, + even though it wasn't capable of handling it. + - FLUID didn't generate code for some attributes when + using custom/named widget classes. + - Added a new FL_COMMAND state bit which maps to FL_CTRL + on X11 and WIN32 and FL_META on MacOS. + - MacOS keyboard modifiers mapping corrections. Cmd and + Control are no longer swapped, event_key and event_text + return (mostly) the same values as on other platforms. + - The Fl_Tabs widget should no longer be a focus hog; + previously it would take focus from child widgets. + - The file chooser now activates the OK button when + opening a directory in directory selection mode. + - Fixed a bug in the file chooser when entering an + absolute path. + - Back-ported some FLTK 2.0 tooltip changes to eliminate + erroneous tooltip display. + - MacOS windows were resizable, even when size_range + would not allow for resizing. + - Fl_Text_Editor now supports Shift+Delete, Ctrl+Insert, + and Shift+Insert for cut, copy, and paste, + respectively. + - Fl_Text_Display didn't restore the mouse pointer when + hidden. + - Fl::arg() now ignores the MacOS X -psn_N_NNNNN option. + - Added another change to the WIN32 redraw handling for + the MingW compilers. + - Fl_File_Chooser didn't handle WIN32 home directories + that used backslashes instead of forward slashes. + - Fl_Text_Display didn't limit the resize height to 1 + line. + - Fl_Scrollbar widgets incorrectly took keyboard focus + when clicked on. This caused widgets such as + Fl_Text_Display to hide the cursor when you scrolled + the text. + + +CHANGES IN FLTK 1.1.1 RELEASED: ??? ?? 2002 + + - Fl_Text_Display didn't always show the cursor. + - Fl_Tabs now only redraws the tabs themselves when + making focus changes. This reduces flicker in tabbed + interfaces. + - The WIN32 redraw handler now correctly merges the FLTK + and Windows redraw regions. + - The Fl_Text_* widgets use the C++ bool type, which is + not supported by older C++ compilers. Added a + configure check and workaround code for this. + - Fl_X::set_xid() didn't initialize the backbuffer_bad + element that was used with XDBE. + - Fl_Shared_Image::uncache() was not implemented. + - Fl::set_font() didn't 0-initialize all font descriptor + data. + - Some OpenGL implementations don't support single- + buffered visuals. The Fl_Gl_Window class now emulates + single-buffered windows using double-buffered + windows. + - Added a workaround for a compiler bug in Borland C++ + that prevented Fl_Help_View.cxx from compiling. + - Checkmarks didn't scale properly; copied the 2.0 check + mark code over. + - Replaced several memcpy's with memmove's for + portability (memmove allows for overlapping copies, + memcpy does not) + - Bug #621737: Fl_Bitmap::copy(), Fl_Pixmap::copy(), and + Fl_RGB_Image::copy() now range-check the new width and + height to make sure they are positive integers. + - Bug #621740: the WIN32 port needed to handle WM_MOUSELEAVE events + in order to avoid problems with tooltips. + - Fl_PNM_Image didn't set the "alloc" flag for the data, + which could lead to a memory leak. + - fl_filename_match() was inconsistently doing case- + insensitive matching. + - Fl_Button redraw fix for bug #620979 (focus boxes and + check buttons). + - Fl_Text_Display fix for bug #620633 (crash on + redisplay). + - Fl_Output now calls its callback when the user clicks + or drags in the widget. + - Shortcuts now cause buttons to take focus when visible + focus is enabled. + - fl_filename_relative() didn't check that the path was + absolute under WIN32. + - fl_filename_relative() didn't check that the path was + on the current drive under WIN32. + - The Fl_BMP_Image class now handles 16-bit BMP files + and BMP files with a transparency mask. + - The fltk-config script didn't add the required include + path, if any, when compiling a program. + - Added a license clarification that the FLTK manual is + covered by the same license as FLTK itself. + - Fl_Check_Browser wasn't documented. + - Fl_Preferences::Node::addChild(), deleteEntry(), and + remove() didn't set the "dirty" flag. + - The "no change" button didn't work in the FLUID widget + panel. + - Vertical scrollbars did not draw the arrows inactive + when the scrollbar was inactive. + + +CHANGES IN FLTK 1.1.0 RELEASED: ??? ?? 2002 + + - Documentation updates. + - Added a Fl_Widget::redraw_label() method which flags a + redraw of the appropriate area. This helps to + eliminate flicker when updating the value of a widget. + - Fl_Wizard::value() now resets the mouse cursor to the + window's default cursor. + - Fl_File_Chooser::type() didn't enable/disable the new + directory button correctly. + - Fl_Preferences::entryExists() did not work properly. + - FLUID's image file chooser pattern was incorrect. + - Fl_File_Icon::load_system_icons() now detects KDE + icons in /opt/kde, /usr/local, and /usr automatically, + and supports the KDEDIR environment variable as well. + - Submenus now display to the left of the parent menu if + they won't fit to the right. Previously they would + display right on top of the parent menu... + - Fl_Menu_:add() didn't handle a trailing "\" character + gracefully. + - Clicking/dragging the middle mouse button in a + scrollbar now moves directly to that scroll position, + matching the behavior of other toolkits. + - Added some more range checking to the Fl_Text_Display + widget. + - The editor demo did not correctly update the style + (syntax highlighting) information. + + +CHANGES IN FLTK 1.1.0rc7 CANDIDATE: ??? ?? 2002 + + - Updated the Fl_Text_Buffer and Fl_Text_Display classes + to be based on NEdit 5.3 (patch from George Garvey). + - Fixed a problem with Fl::wait(0.0) on MacOS X 10.2; + this affected the fractals demo and other OpenGL + applications. + - Fl_Glut_Window now takes keyboard focus and handles + shortcut events. + - The MacOS X implementation of fl_ready() now checks + the event queue for events. + - Fl_PNM_Image now supports the XV/GIMP thumbnail format + (P7). + - Fl_Preferences would not find groups inside the root + group. + - Small bug fixes for Fl_Chart, Fl_Scrollbar, Fl_Tabs, + and FLUID from Matthew Morrise. + - Fl_Chart didn't have its own destructor, so data in + the chart wasn't freed. + - Fl_Menu_Button no longer responds to focus or keyboard + events when box() is FL_NO_BOX. + - FLTK convenience dialogs put the buttons in the wrong + order. + - Fl_BMP_Image didn't load 4-bit BMP files properly. + - Minor tweeks to the WIN32 DLL support. + - Fl_Text_Display::resize() could go into an infinite + loop if the buffer is emptied. + - Fl::handle() didn't pass FL_RELEASE events to the + grab() widget if pushed() was set (for proper menu + handling...) + - DND events were being sent to the target window + instead of the target widget under WIN32. + - The newest Cygwin needs the same scandir() handling as + HP-UX. + - FLUID didn't register the image formats in the + fltk_images library, and had some other image + management problems. + - Fixed one more redraw bug in Fl_Browser_ where we + weren't using the box function to erase empty space in + the list. + - Fl_Text_Display::buffer() now calls resize() to show + the buffer. + - Fl_Help_View didn't support HTML comments. + - Fl_Help_View didn't include the extra cellpadding when + handling colspan attributes in cells. + - Fl_Help_View didn't support table alignment. + + +CHANGES IN FLTK 1.1.0rc6 CANDIDATE: ??? ?? 2002 + + - Documentation updates. + - Fl::handle() didn't apply the modal tests for + FL_RELEASE events, which caused Fl_Tabs to allow users + to change tabs even when a modal window was open. + - Fl_Browser_, Fl_Input_, Fl_Slider now use the box + function to erase the background. This fixes some + long-standing redraw problems. + - More snprintf/strlcpy/strlcat changes where needed. + - Fl::get_font_name() would leak 128 bytes. + - Eliminated most of the "shadowed" variables to avoid + potential problems with using the wrong copy of "foo" + in a class method. + - Moved Fl_BMP_Image, Fl_GIF_Image, and Fl_PNM_Image to + the fltk_images library, so the only image formats + that are supported by the core library are XBM and XPM + files. This reduces the size of the FLTK core library + by about 16k... + - The Fl_Text_Display::resize() method was incorrectly + flagged as protected. + - Fixed some memory/initialization bugs in + Fl_File_Chooser that valgrind caught. + - The PNG library png_read_destroy() is deprecated and + does not free all of the memory allocated by + png_create_read_struct(). This caused a memory leak in + FLTK apps that loaded PNG images. + - Added uncache() method to Fl_Image and friends. + - Added image() methods to Fl_Menu_Item. + - Added default_cursor() method and data to Fl_Window. + - Fl_Group would send FL_ENTER events before FL_LEAVE + events, causing problems with adjacent widgets. + - Fixed filename problems with Fl_File_Chooser - + changing the filename field directly or choosing files + from the root directory could yield interesting + filenames. + - Fl_Input_ could crash if it received an empty paste + event. + - The mouse pointer now changes to the I beam + (FL_CURSOR_INSERT) when moved over an input field or + text widget. + - "make install" didn't automatically (re)compile the + FLUID executable. + - Added an Fl::get_boxtype() method to get the current + drawing function for a specific box type. + - Fl_Output and Fl_Multiline_Output didn't prevent + middle-mouse pastes. + - Fl_JPEG_Image didn't compile out-of-the-box with Cygwin + due to a bug in the Cygwin JPEG library headers. + - Fl_BMP_Image still didn't work with some old BMP files. + - "make distclean" didn't really clean out everything. + - Tweeked the look of the check button with a patch from + Albrecht Schlosser. + + +CHANGES IN FLTK 1.1.0rc5 CANDIDATE: ??? ?? 2002 + + - Added "wrap" type bit to Fl_Input_, so you can now + have a multiline text field that wraps text. + - Setting the value() of an output text field no longer + selects the text in it. + - Output text fields now show a caret for the cursor + instead of the vertical bar. + - The newButton and previewButton widgets are now public + members of the Fl_File_Chooser class. This allows + developers to disable or hide the "new directory" and + "preview" buttons as desired. + - Added new visible focus flag bit and methods to + Fl_Widget, so it is now possible to do both global and + per-widget keyboard focus control. + - Removed extra 3 pixel border around input fields. + - No longer quote characters from 0x80 to 0x9f in input + fields. + - Improved speed of Fl_Browser_::display() method with + large lists (patch from Stephen Davies.) + - Fl_Help_View didn't properly handle NULL from the link + callback (the original filename/directory name were + not preserved...) + - Fl_Help_View didn't use the boxtype border values when + clipping the page that was displayed. + - Added first steps to CodeWarrior/OS_X support (see + fltk-1.1.x/CodeWarrior/OS_X.sit) + - Cleaned up the WIN32 export definitions for some of + the widget classes. + - Fixed a filename completion bug when changing + directories. + - Fl_File_Chooser::value() would return directories with + a trailing slash, but would not accept a directory + without a trailing slash. + - When installing shared libraries, FLUID is now linked + against the shared libraries. + - MacOS: missing compile rule for .dylib files. + - Fl_Group::current(), Fl_Group::begin(), and + Fl_Group::end() are no longer inlined so that they are + properly exported in DLLs under WIN32. Similar + changes for all static inline methods in other + classes. + - MacOS: support for Mac system menu (Fl_Sys_Menu_Bar) + - MacOS: wait(0) would not handle all pending events + - Added new makeinclude file for MingW using GCC 3.1.x. + - Fl_Choice::value(n) didn't range check "n". + - The MingW and OS/2 makeinclude files didn't have the + new fltk_images library definitions. + - Fl_Text_Editor didn't scroll the text in the widget + when dragging text. + - Config header file changes for Borland C++. + - FLTK didn't provide a Fl::remove_handler() method. + + +CHANGES IN FLTK 1.1.0rc4 CANDIDATE: Jul 02 2002 + + - Added new filter_value() methods to Fl_File_Chooser to + get and set the current file filters. + - Added support for custom filters to Fl_File_Chooser. + - Added Borland C++ Builder IDE project files from + Alexey Parshin. + - Resource leak fixes under WIN32 from Ori Berger. + - Now register a WIN32 message for thread messages. + - Fl_Window didn't initialize the min and max window + size fields. + - The JPEG and PNG image classes have been moved to the + fltk_images library, a la FLTK 2.0. You can register + all image file formats provided in fltk_images using + the new fl_register_images() function. + - Fl_XBM_Image didn't correctly load XBM files. + - MacOS: Added Greg Ercolano's file descriptor support. + - MacOS: Fixed text width bug. + - A change in fl_fix_focus() broken click-focus in FLWM. + - Cygwin with -mnocygwin didn't like the FL/math.h + header file. + - Fl_Browser_ cleared the click count unnecessarily. + - MacOS: Pixmap draw fix, gl_font implemented + FL_FOCUS fix, window type fix for modal and nonmodal + windows, glut uninitialised 'display' proc fix + - Now support FLTK_1_0_COMPAT symbol to define + compatibility macros for the old FLTK 1.0.x function + names to the 1.1.x names. + - Now translate the window coordinates when a window is + shown, moved, or resized. This should fix the "menus + showing up at the wrong position" bug under XFree86. + - Fixed some more problems with the Fl_BMP_Image file + loader. + - BC++ fixes. + - The pixmap_browser demo didn't check for a NULL image + pointer. + - Fl_File_Icon::find() now uses fl_filename_isdir() + under WIN32 to check for directories. + - Fl_File_Chooser's preview code called refcount() + on the deleted image's object. + - Fixed another problem with the Fl_BMP_Image loader. + - The fl_file_chooser() callback was being called with a + NULL filename. + - Documented that fl_push_clip() is preferred over + fl_clip(), with a corresponding source change. + - Minor changes to the MacOS X event handling code. + - Added syntax highlighting example code to the editor + test program. + - Fl_Text_Display didn't range check style buffer + values. + - Added "dark" color constants (FL_DARK_RED, etc.) + - The MacOS font code was missing definitions for + fl_font_ and fl_size_. + + +CHANGES IN FLTK 1.1.0rc3 CANDIDATE: ??? ?? ???? + + - Documentation updates. + - New file chooser from design contest. + - Did some testing with Valgrind and fixed some memory + problems in Fl_Help_View::Fl_HelpView, + Fl_Menu_::remove(), Fl_Text_Display::draw_vline(), and + resizeform() (convenience dialogs). + - Fixed some redraw() bugs, and now redraw portions of + the parent widget when the label appears outside the + widget. + - The boolean (char) value methods in Fl_Preferences + have been removed since some C++ compilers can't + handle char and int value methods with the same name. + - Added fl_read_image() function. + - Fixed Fl_Valuator::format() so that the correct format + type is used when step == 1.0. + - Fl_Help_View didn't support the TT markup. + - Fl_Shared_Image used a double-pointer to the image + handler functions, which was unnecessary and + unintuitive. + - Fl_PNM_Image didn't load the height of the image + properly. + - Fl_BMP_Image, Fl_JPEG_Image, Fl_PNG_Image, and + Fl_Shared_Image didn't delete image data that was + allocated. + - Enabled the OpenGL and threads demos when compiling + for MingW. + - Fl_File_Input didn't update the directory buttons if a + callback was registered with the widget. + - The file chooser would return the last selected + file(s) when cancel was pressed. + - The file chooser limited the resizing of the chooser + window unnecessarily. + - Fixed WM_PAINT handling under WIN32. + - Minor tweeks to MingW and OS/2 config headers. + - Fl_Value_Input now correctly determines if step() + specifies an integer value. + - Fl_Help_View didn't add links inside PRE elements. + - OS/2 build fixes from Alexander Mai. + - Now use strlcat() instead of strncat() which could + cause buffer overflows. + - Now use of strlcpy() instead of strncpy() to simplify + the code. + - Drag-n-drop under WIN32 now shows a [+] cursor instead + of the link cursor. + - Fixed widget width tooltip and default argument + handling code in FLUID. + - Fixed colors used when drawing antialiased text using + Xft. + - Fl_Preferences::makePath() now uses access() instead + of stat() when checking to see if the destination + directory already exists. + - Fl_BMP_Image now supports older BMP files with the 12 + byte header. + - Optimized the redrawing of tabs and radio/check + buttons when the keyboard focus changes. + - More tooltip fixes. + - DND text operations would loop under X11. + + +CHANGES IN FLTK 1.1.0rc2 CANDIDATE: ??? ?? ???? + + - Portability fixes. + - Backported 2.0 tooltip changes. + - Several of the valuators did not support tooltips. + - The last menu item in a menu didn't pick up on font + changes. + - FLUID now properly handles default argument parameters + properly. + - Fixed WM_PAINT handling under WIN32 - didn't validate + the correct region that was drawn. + - Fl_Multiline_Output would insert the enter key. + - Fl_File_Browser didn't clip items to the column width. + - Fl_Window::draw() cleared the window label but didn't + restore it, so windows could lose their titles. + - Eliminated multiple definitions of dirent structure + when compiling under WIN32. + - Adjusted the size of the circle that is drawn inside + radio buttons to scale better for larger labels. + - FLUID was opening the display when it shouldn't have. + - Fl_File_Chooser.cxx defined the file chooser functions + again; they should only be defined in the header file. + - Wide arcs would draw with "teeth". + - The preferences demo included Fl/Fl_Preferences.H + instead of FL/Fl_Preferences.H. + + +CHANGES IN FLTK 1.1.0rc1 CANDIDATE: ??? ?? ???? + + - The fl_file_chooser() and fl_dir_chooser() functions + now support an optional "relative" argument to get + relative pathnames; the default is to return absolute + pathnames. + - The backspace and delete keys now work as expected in + the file chooser when doing filename completion. + - FLUID now supports running shell commands. + - New Fl_File_Input widget that shows directory + separators with filename in input field. + - The Fl_File_Chooser dialog now shows the absolute path + in the filename field using the Fl_File_Input widget. + - FLUID now keeps track of grid, tooltip, and other + GUI options, along with the last 10 files opened. + - Tooltip windows would show up in the task bar under + WIN32. + - Now append trailing slash to directory names in names + in WIN32 version of scandir(). This takes care of a + file chooser performance problem with large + directories. + - Added Fl_Preferences class from Matthias Melcher, + including binary data support. + - FLUID now recognizes the "using" keyword in + declarations. + - fl_file_chooser() didn't highlight the requested file + the second time the file chooser dialog was shown. + - Fixed rendering of Fl_Light_Button with the plastic + scheme. + - Fixed a bug in the MacOS font enumeration code. + - Now show a "locked" icon next to static/private + elements in FLUID, and "unlocked" icon next to + global/public elements. + - Implemented Fl_Menu_Item image labels using older + 1.0.x labeltype method. + - Updated the PNG library check to support both png.h + and libpng/png.h. + - Fixed a recursion bug in tooltips that was causing + random crashes. + - fl_file_chooser() could cause a segfault when passed a + NULL filename parameter in some situations. + - Added a "-g" option to fltk-config to support quick + compiling with debugging enabled. + - Fixed redraw problem with Fl_Input and anti-aliased + text. + - Added threading support for MacOS X and Darwin. + - The filesystem list in the file chooser now works under + MacOS X and Darwin. + - The fl_msg structure now contains all data passed to + the WndProc function under WIN32. + - Fixed some window focus/positioning problems under + MacOS X. + - Added fl_create_alphamask() function to create an alpha + mask from 8-bit data; currently this always generates a + 1-bit screen-door bitmask, however in the future it will + allow us to generate N-bit masks as needed by various + OS's. + - Fl_File_Browser::load() didn't properly show drives + when compiled in Cygwin mode. + - Now pass correctly pass keyboard and mouse events to + widget under tooltip as needed... + - Added new Fl::dnd_text_ops() methods to enable/disable + drag-and-drop text operations. + - Fl_Input now supports clicking inside a selection to + set the new text position when drag-and-drop is + enabled. + - Added support of X resources for scheme, dnd_text_ops, + tooltips, and visible_focus... + - Fixed some case problems in includes for the MacOS X + code. + - Fl_Widget::handle() returned 1 for FL_ENTER and + FL_LEAVE events, which caused some compatibility + problems with 1.0 code. + - Fl_Box::handle() now returns 1 for FL_ENTER and + FL_LEAVE events so that tooltips will work with Fl_Box + widgets. + - Some source files still defined strcasecmp and + strncasecmp under WIN32. + - Some source files still used the "false" and "true" + C++ keywords, even though several of our "supported" + C++ compilers don't support them. Using 0 and 1 until + FLTK 2.0 (which uses the bool type instead of int for + any boolean values...) + - Minor Fl_Color revamping, so that color constants map + to the color cube and FL_FOREGROUND_COLOR, + FL_BACKGROUND_COLOR, FL_BACKGROUND2_COLOR, + FL_INACTIVE_COLOR, and FL_SELECTION_COLOR map to the + user-defined colors. + + +CHANGES IN FLTK 1.1.0b13 BETA: ??? ?? ???? + + - Fixed a bug in the Xft support in Fl_Window::hide() + (the config header wasn't included, so the Xft code + wasn't getting called) + - Xdbe support must now be enabled explicitly using + --enable-xdbe due to inconsistent bugs in XFree86 and + others. + - Windows resized by a program would revert to their + original size when moved under WIN32. + - Cygwin can only compile the new WIN32 drag-n-drop code + using GCC 3.x. + - Tooltips now appear for inactive and output widgets. + - Tooltips no longer steal keyboard events other than + ESCape. + - Tooltips are no longer delayed when moving between + adjacent widgets. + - fl_beep(FL_BEEP_DEFAULT) now uses the PC speaker under + Windows (0xFFFFFFFF) rather than an event sound. + - The configure script didn't include the -mwindows or + -DWIN32 compiler options in the output of fltk-config + when using the Cygwin tools. + - Fl_Output didn't take input focus when needed, so it + was unable to support CTRL-C for copying text in the + field and did not unhighlight selections when the + widget lost focus. + - The fl_filename_name() function didn't handle a NULL + input string. + - The input field used by the fl_input() and + fl_password() functions was resized too small in + 1.1.0b12. + - Added casts in fl_set_fonts_win32.cxx for VC++ 5.0. + - Fl_File_Icon::find() did not check the basename of a + filename for a match; this caused matches for a + specific filename (e.g. "fluid") to fail. + - The Fl_Shared_Image class now supports additional + image handling functions - this allows you to support + additional image file formats transparently. + + +CHANGES IN FLTK 1.1.0b12 BETA: ??? ?? ???? + + - Documentation updates. + - Fl_Choice didn't clip the current value properly - it + wasn't accounting for the box border width. + - The forms compatibility functions are now placed in a + "fltk_forms" library to match FLTK 2.0. + - Renamed down() and frame() to fl_down() and + fl_frame(), filename_xyz() to fl_filename_xyz(), and + all of the define_FL_FOO() functions for the custom + boxtypes to fl_define_FL_FOO() to avoid namespace + clashes. + - Stereo OpenGL support (patch from Stuart Levy) + - All of the convenience functions defined in fl_ask.H + now resize the widgets and dialog window as needed for + the labels and prompt. + - Backported FLTK 2.0 dual cut/paste buffer code. + - Added support for Xft library to provide anti-aliased + text on X11. + - Fl_Help_View didn't keep track of the background color + of cells properly. + - Fl_Browser::item_width() didn't compute the width of + the item properly when column_widths() was set. + - Fl_Button didn't check to see if the widget could + accept focus before taking input focus. + - Fl_Help_View didn't preserve target names (e.g. + "filename.html#target") when following links. + - Drag-and-drop support for MacOS. + - Updated MacOS issues documentation. + + +CHANGES IN FLTK 1.1.0b11 BETA: ??? ?? ???? + + - Now conditionally use the WIN32 TrackMouseEvent API + (default is no...) + - Fixed a table rendering bug in the Fl_Help_View + widget. + - The fltk-config script now recognizes all common C++ + extensions. + - The menu code was using overlay visuals when the + scheme was set to "plastic". + - Fixed some drawing problems with Fl_Light_Button and + its subclasses. + - Fixed a minor event propagation bug in Fl_Group that + caused mousewheel events to be passed to scrollbars + that were not visible. + - The fl_file_chooser() function did not preserve the + old file/directory like the old file chooser did. + - The prototypes for fl_input() and fl_password() did + not default the "default value" to NULL. + - Fl_Tabs now draws tabs using the selection_color() of + the child groups; this allows the tabs to be colored + separately from the body. Selected tabs are a mix of + the Fl_Tabs selection_color() and the child group's + selection_color(). + - Fl_Tabs didn't include images in the measurement of + the tabs if no label text was defined. + - The WIN32 code didn't return 0 from the window + procedure after handling WM_PAINT messages. + - fl_draw() would incorrectly test the clipping of + labels the lay outside the bounding box. + - filename_relative() didn't always return the correct + relative path. + - Updated the test makefile to work with more versions + of "make". + - Added new "--with-optim" configure option to set the + optimization flags to use when compiling FLTK. + - The fltk-config script no longer reports the + optimization flags that were used to compile FLTK. + - Initial port of FLTK 2.0 drag-and-drop support. + + +CHANGES IN FLTK 1.1.0b10 BETA: ??? ?? ???? + + - Fixed the new WIN32 TrackMouseEvent code. + - Fixed the VC++ project files to link against + comctl32.lib. + + +CHANGES IN FLTK 1.1.0b9 BETA: ??? ?? ???? + + - Better FL_LEAVE event handling for WIN32. + - The alpha mask was bit-reversed. + - Fl::scheme() applied the scheme tile image to overlay + and menu windows, which caused problems when the + overlay planes were in use. + - Fixed Fl::event_button() value when hiding tooltip on + some systems. + - Added Fl_BMP_Image class to support loading of Windows + bitmap (BMP) files. + - The shiny demo didn't work on some systems (no + single-buffered OpenGL visual), and the new box types + were reset when show(argc, argv) was called. + - Fl::scheme() didn't update windows that were not + shown. + - The fractals demo would get far ahead of the UI with + some Linux OpenGL drivers. Now use glFinish() instead + of glFlush() so we are at most 1 frame ahead. + - The fractals demo Y axis controls were backwards for + the "flying" mode. + - MacOS: cleaned up src/Fl_mac.cxx + - MacOS: fixed Fl::wait(0.0), fixed Cmd-Q handling + - Update CygWin support for Fl::add_fd(). + - Update the plastic scheme to not override the default + colors - move the color code to the MacOS-specific + code. Also updates the tile image colormap to match + the current background color. + - Add fl_parse_color() to X11 as well, removing a bunch + of conditional code and providing a common interface + for looking up color values. + - Fixed the make problems in the test directory - some + make programs had trouble handling the recursive + dependencies on the FLUID files... + - Now use rint() to round floating-point coordinates. + - Demo cleanup - made sure they all worked with schemes. + - Fl_Tabs no longer clears the unused area of the tab + bar. + - Added show(argc, argv) method to Fl_Help_Dialog. + - MacOS: implemented cut/copy/paste. + - MacOS: improved keyboard handling, fixed keyboard + focus handling, fixed get_key, modified 'keyboard' + demo to show second mouse wheel and additional keys + 'help' and FL_NK+'=' + + +CHANGES IN FLTK 1.1.0b8 BETA: ??? ?? ???? + + - OS/2 build fixes. + - fl_draw() didn't ignore symbol escapes properly for + the browsers... + - New Fl::scheme() methods from FLTK 2.0; currently only + the standard ("") and plastic ("plastic") methods are + supported. Schemes can be set on the command-line + ("-scheme plastic") or using the FLTK_SCHEME + environment variable. + - MacOS: fixed iBook keyboard handling, moved + remaining message handling to Carbon, added mouse + capture support, added timer support, added overlay + support, fixed double-buffering side effects. + - The configure script wasn't using the -fpermissive or + -fno-exceptions options with GCC. + - Fl_JPEG_Image and friends didn't set the depth if the + image file couldn't be loaded; since Fl_RGB_Image + didn't check for this, it could fail when displaying + or copying these images. + - filename_absolute() did not always free its temporary + buffer. + - filename_relative() did not do a case-insensitive + comparison under MacOS, OS/2, and Windows. + - filename_isdir() didn't properly handle "D:L" under + WIN32. + - Fl_Shared_Image::get() did not check to see if the + image could not be loaded. + - Fl_Help_View didn't clear the line array in the + Fl_Help_Block structure; this causes erratic + formatting for some pages. + - The font and size members of Fl_Help_Block were never + used. + - The threading functions (Fl::lock() and friends) were + not exported under WIN32. + - The Fl_Text_Display destructor deleted the scrollbars + twice... + - Fl_Help_View didn't reset the horizontal scroll + position when showing a new page. + - Fl_Pack now allows any child widget to be the + resizable() widget, not just the last one. + - MacOS: opaque window resizing, all events except + Mac menus are now handled using Carbon, window + activation fixed, GL_SWAP_TYPE default changed to + make gl_overlay work. + - Fl_Help_View::resize() didn't resize the horizontal + scrollbar. + - MacOS: list all fonts, fixed clipping and mouse + pointer bugs. + - The Fl_File_Chooser widget now uses hotspot() to + position the dialog under the mouse pointer prior to + showing it. + - Added a configure check for *BSD - use -pthread option + instead of -lpthread. + - Fl_Text_Display could get in an infinite loop when + redrawing a portion of the screen. Added a check for + the return value from fl_clip_box() so that the + correct bounding box is used. + - Removed the Fl_Mutex and Fl_Signal_Mutex classes from + the threads example, since they weren't being used + and apparently are not very portable. + - Fl_Help_View now ignores links when the link callback + returns NULL, and displays a sensible error message + when an unhandled URI scheme is used (e.g. http:, + ftp:) + - Fl_File_Icon::load_system_icons() no longer complains + about missing icon files, just files that exist but + can't be loaded. + - FLUID didn't list the plastic box and frame types. + - Now hide the tooltip window whenever a window is + hidden. Otherwise a tooltip window could keep an + application running. + - Updated FLUID to only append a trailing semicolon to + code lines in a callback (so "#include" and friends + will work...) + - The Fl_Color_Chooser widget now supports keyboard + navigation. + - Fixed button and valuator widgets to call Fl::focus() + instead of take_focus(). + - Tweeked the radio button drawing code for better + circles with different boxtypes. + - The Fl_File_Chooser widget did not provide a shown() + method, and fl_file_chooser() and fl_dir_chooser() did + not wait on shown(); this would cause them to return + prematurely if you switched desktops/workspaces. + - Cosmetic changes to plastic boxtypes. Now look much + better for large areas and the buttons now have a much + greater "3D" feeling to them. + - Added new Fl::draw_box_active() method so that + boxtypes can find out if the widget they are drawing + for is active or not. + - Fl_Button and its subclasses did not redraw the parent + when the boxtype was FL_NO_BOX and they lost keyboard + focus (the parent redraw clears the focus box.) + - Fixed the example program makefile - wasn't building + the mandelbrot and shiny demos right. + - Fl::set_font(Fl_Font, Fl_Font) was not implemented. + - Fixed the documentation Makefile commands; was not + using the fltk.book file for some reason... + + +CHANGES IN FLTK 1.1.0b7 BETA: ??? ?? ???? + + - More documentation updates... + - Mac OS X support works 95% + - The Fl_Window::hotspot() off-screen avoidance code was + commented out. + - Mac OS X uses mostly Carbon event handling to support + Mousewheel, three buttons, all modifier keys, etc. + - Updated paragraph 4 of the FLTK license exceptions; + there was some question about the requirement to show + that a program uses FLTK, which is required by section + 6 of the LGPL. The new exemption specifies that + inclusion of the FLTK license is not required, just a + statement that the program uses FLTK. + - Fl_Button::handle() was calling take_focus() for both + FL_PUSH and FL_DRAG. + - File and memory fixes for Fl_GIF_Image, Fl_PNG_Image, + Fl_PNM_Image, Fl_Shared_Image, Fl_Tiled_Image, and + Fl_XBM_Image. + - filename_match() didn't handle backslashes properly + under WIN32, and didn't use a case-insensitive + comparison under MacOS X. + - The Fl class was missing access methods for the + FL_MOUSEWHEEL event values - Fl::event_dx() and + Fl::event_dy(). + - The default help string didn't include the -nokbd + option. + - "make uninstall" didn't uninstall the static OpenGL + widget library. + - Mac cursor shapes added... + - Fl_Text_Display would lockup when all text was + deleted; for example, when running the editor + demo, you couldn't load a second file. + - Added Fl::lock() and friends from FLTK 2.0 to + support multi-threaded applications; see the + "threads" demo for an example of this. + - Fl_Check_Button and Fl_Round_Button now use the + FL_NO_BOX box type to show the background of the + parent widget. + - Tweeked the plastic boxtype code to draw with the + right shading for narrow, but horizontal buttons. + - Fl_Progress now shades the bounding box instead of + drawing a polygon inside it. + - Fl::warning() under WIN32 defaults to no action. This + avoids warning dialogs when an image file cannot be + loaded. + - Some Win32 drivers would draw into wrong buffers + after OpenGL mode change + - The file chooser would cause a segfault if you + clicked in an empty area of the file list. + - Fl_File_Icon::labeltype() would cause a segfault + if the value pointer was NULL. + - Fl_File_Icon::load_image() could cause segfaults + (NULL data and incrementing the data pointer too + often.) + - Fl_File_Icon::load_image() now handles 2-byte + per color XPM files. + - Some Win32 drivers would draw into wrong buffers + after OpenGL mode change. + - Message handling and Resources for MacOS port. + - Fl_Help_View could get in an infinitely loop when + determining the maximum width of the page; this + was due to a bug in the get_length() method with + percentages (100% width would cause the bug.) + - Don't need -lgdi32 for CygWin, since -mwindows + does this for us. + - The WIN32 event handler did not properly handle + WM_SYNCPAINT messages. + - Fl_Tabs now uses the boxtype exclusively to draw + both the tabs and surrounding box, so alternate + box types actually work and the look is a little + nicer. + - Fixed the drawing of large areas with the new + plastic boxtypes. + - Updated the Visual C++ demo projects to use FLUID + to generate the GUI files as needed. + - The demo program didn't load the right menu file + when compiled for debugging under WIN32. + - Added plastic box types to forms demo. + - Added mousewheel to keyboard demo. + - The Fl_Text_Editor widget caused an infinite loop + when it received keyboard focus. + - filename_isdir() didn't properly handle drive letters + properly; WIN32 needs a trailing slash for drive + letters by themselves, but cannot have a trailing + slash for directory names, go figure... + - The Fl_Text_Buffer and Fl_Text_Display classes did not + initialize all of their members. + - fl_normal_label() had a totally redundant set of + if/else tests, which the new code handles all from + fl_draw(). + - The Fl_File_Chooser dialog contained two hotspots. + - The fl_draw_pixmap() function didn't free the 2-byte + color lookup table properly (delete instead of + delete[]). + - fl_draw() reset the text color under WIN32, causing + bitmaps to draw incorrectly. + - Fl::get_font_sizes() is now implemented under WIN32. + - Fl_Text_Display now uses the same default colors for + selection and text as Fl_Input_ and friends. + - Changed the default line scrolling in Fl_Text_Display + to 3 lines for the mouse wheel and scrollbar arrows. + + +CHANGES IN FLTK 1.1.0b6 BETA: ??? ?? ???? + + - Documentation updates... + - The configure script now works within the CygWin + environment. + - Tooltips are now enabled by default, but are not + re-enabled when calling the Fl_Widget::tooltip() + method. + - Added new Fl::version() method to get the current + FLTK library version (for shared libraries/DLLs) + - Added new Fl::event() method to get the current + event that is being processed. + - Added new fl_beep() function to do audible + notifications of various types. + - Added new Fl_GIF_Image, Fl_JPEG_Image, Fl_PNG_Image, + Fl_PNM_Image, Fl_XBM_Image, and Fl_XPM_Image classes. + - Added new Fl_Shared_Image class, a la FLTK 2.0. + - Added new Fl_Tiled_Image class for tiled backgrounds. + - Added new copy(), desaturate(), inactive(), and + color_average() methods to the Fl_Image classes. + - Added a horizontal scrollbar to the Fl_Help_View + widget. + - Added new FL_PLASTIC_{UP/DOWN}_{BOX/FRAME} boxtypes + for a more "modern" look (sort of a cross between KDE + 2.2 and Aqua.) + - Fl_Float_Input and Fl_Int_Input no longer accept + pasted text that is not a floating point or integer + value. Pasted numbers now replace text in these + widgets. + - Implemented the Fl_File_Icon::load_png() method. + - The Fl_File_Icon::load_system_icons() method now + supports KDE 2.x icons. + - Fixed PNG support in Fl_Help_View. + - Removed the "Microsoft" mode button from the menubar + demo. + - The browser demo now makes sure that the input field + contains a number. + - The Fl_Browser::make_visible() method now range checks + the input. + - Updated the fl_draw() and fl_measure() methods to + accept an optional draw_symbols argument, which + controls whether symbols are drawn in the text. + - Added new Fl::visible_focus() methods to control + whether the focus box is drawn. + - The focus box is now drawn using the contrast color. + - Fl_Repeat_Button didn't accept keyboard focus. + - Added new Fl::visible_focus() method and standard + "-kbd" and "-nokbd" options in Fl::args() processing + to control whether keyboard focus is shown and handled + by non-text widgets. + - The wrong tooltip could be shown if the user moved the + mouse over adjacent widgets with tooltips. + - The drop-down button on Fl_Choice widgets was not + limited in width. + - Tooltips could appear off the screen. + - Mouse wheel events are now sent to the focus widget + first, then to any other interested widget. + - The Fl_RGB_Image class now supports images with an + alpha channel. Images are currently drawn using + "screen door" transparency... See the "image" demo + for an example. + - Added new fl_create_bitmask() and fl_delete_bitmask() + functions that create bitmap objects for masking and + bitmap drawing. + - Was sending FL_RELEASE events for buttons 4 and 5 + under X11, which are only for FL_MOUSEWHEEL. + - Fl_Help_View now supports the EM and STRONG elements. + - Didn't do callbacks when changing tabs via keyboard. + - FLUID didn't write tooltip strings to the message + catalog file. + - Fl_File_Icon now uses Fl_Shared_Image to load icon + images; the load_png() and load_xpm() methods have + been replaced by a single load_image() method. + - Fl_File_Icon::load_system_icons() now does a better + job of finding KDE icons. + - Now use Fl::warning() and Fl::error() in place of + printf's in some of the newer widgets. + - The default behavior of Fl::error() is now to display + an error but not to exit; Fl::fatal() still exits. + - FLUID now uses the Fl_Shared_Image class, so FLUID- + generated GUIs can embed any of the supported image + file formats. + - New filename_relative() function to convert an + absolute filename to a relative one. + - Updated the filename_absolute(), filename_expand(), + and filename_setext() functions to take the + destination string size, with inline functions for the + old FL_PATH_MAX size. + - fl_file_chooser() and fl_dir_chooser() now return a + relative path. + - Fl_Help_View now supports all ampersand escapes. + + +CHANGES IN FLTK 1.1.0b5 BETA: ??? ?? ???? + + **** NOTE: DUE TO CHANGES IN THE WIDGET CLASSES, **** + **** YOU MUST RECOMPILE ALL SOURCE FILES **** + **** THAT USE FLTK!!! **** + + - All FLTK color values are now 32-bits and support + both the legacy 8-bit color values as well as 24-bit + RGB values (0xRRGGBB00 for 24-bit RGB, 0x000000II + for indexed color). + - Fl::set_boxtype() and fl_internal_boxtype() now keep + track of when a boxtype is changed; this allows you to + override the "special" boxtypes without references to + those boxtypes causing them to be reset. + - Fl_Help_Func now takes a Fl_Widget pointer as well as + a pathname. + - Added code to support FL_KEYUP events. + - Focus did not return to the Fl_Text_Display and Editor + widgets when scrolling and then clicking inside the + editor window. + - Now set the line size of the vertical scrollbar in the + text editor to 1. + - The symbols demo didn't show the strings needed to + show the corresponding symbol (the label string was + not quoted...) + - FLTK should now compile with Cygwin cleanly. + - Shortcut changes were not being saved by FLUID. + - FLUID didn't write the deimage() static data. + + +CHANGES IN FLTK 1.1.0b4 BETA: ??? ?? ???? + + **** NOTE: DUE TO CHANGES IN THE FL_WIDGET CLASS, **** + **** YOU MUST RECOMPILE ALL SOURCE FILES **** + **** THAT USE FLTK!!! **** + + - Updated the flags_ member of Fl_Widget to be an + integer instead of uchar, to support the new + FL_OVERRIDE flag for Fl_Window. + + - The parent() method of Fl_Widget now uses pointers to + Fl_Group instead of Fl_Widget. + + - Fl_Window now provides the FLTK 2.0 "override()" and + "set_override()" methods for windows. + + - Added a configure check (and warning) for GCC 3.0.x. + + - Updated the configure script to check for the + png_set_tRNS_to_alpha() function. + + - Updated the config.h files for all platforms for the + image and FLTK documentation defines. + + - Updated the makeinclude files for all platforms to + match the current makeinclude.in file. + + - FLUID would crash if you cleared an image for a + widget. + + - Fl_Help_View::add_image() did not initialize the image + member of the base (unscaled) image. - - Fl_Help_View didn't support A elements with both a - NAME and HREF attribute - the HREF was ignored. + - Fl_Help_View didn't support A elements with both a + NAME and HREF attribute - the HREF was ignored. - - Miscellaneous compile warning fixes. + - Miscellaneous compile warning fixes. - - Tooltips were being reset by Fl::belowmouse(), which - caused problems with the FLUID main window (flashing - tooltip windows and serious problems with KDE 2.2) + - Tooltips were being reset by Fl::belowmouse(), which + caused problems with the FLUID main window (flashing + tooltip windows and serious problems with KDE 2.2) - - The editor demo had the save and discard button - actions reversed. + - The editor demo had the save and discard button + actions reversed. - - The Fl_Help_View widget now uses - png_destroy_read_struct() if the older - png_read_destroy() function is not available. + - The Fl_Help_View widget now uses + png_destroy_read_struct() if the older + png_read_destroy() function is not available. - - The WIN32 DLL library now includes the OpenGL widgets. - This is a simpler solution for the export/import - dillemma under WIN32, as OpenGL and non-OpenGL symbols - need to be exported at different times with the - separate library scheme. Since OpenGL is standard - under Windows, this is less of a problem than under - UNIX... + - The WIN32 DLL library now includes the OpenGL widgets. + This is a simpler solution for the export/import + dillemma under WIN32, as OpenGL and non-OpenGL symbols + need to be exported at different times with the + separate library scheme. Since OpenGL is standard + under Windows, this is less of a problem than under + UNIX... -CHANGES IN FLTK 1.1.0b3 BETA: ??? ?? ???? +CHANGES IN FLTK 1.1.0b3 BETA: ??? ?? ???? - - The top-level makefile did not include the makeinclude - file, causing the fltk-config installation commands to - fail. + - The top-level makefile did not include the makeinclude + file, causing the fltk-config installation commands to + fail. - - The fl_file_chooser.cxx source file conflicted with - Fl_File_Chooser.cxx under Windows. Similarly, the - fl_file_chooser.H header file conflicts with the - Fl_File_Chooser.H header file. + - The fl_file_chooser.cxx source file conflicted with + Fl_File_Chooser.cxx under Windows. Similarly, the + fl_file_chooser.H header file conflicts with the + Fl_File_Chooser.H header file. - - Now save and restore the GDI pen object when - responding to WIN32 paint messages. + - Now save and restore the GDI pen object when + responding to WIN32 paint messages. - - Documentation updates from A. Suatoni. + - Documentation updates from A. Suatoni. -CHANGES IN FLTK 1.1.0b2 BETA: ??? ?? ???? +CHANGES IN FLTK 1.1.0b2 BETA: ??? ?? ???? - - New fltk-config script. + - New fltk-config script. - - Fixed image/text label handling; in b1 the label - needed a non-blank text string to display the image. - This bug also caused all sorts of crashes and display - problems. + - Fixed image/text label handling; in b1 the label + needed a non-blank text string to display the image. + This bug also caused all sorts of crashes and display + problems. - - Added new filetype() method to Fl_FileBrowser to allow - for file or directory browsing. + - Added new filetype() method to Fl_FileBrowser to allow + for file or directory browsing. - - Fixed the drawing of the focus box around - Fl_Return_Button. + - Fixed the drawing of the focus box around + Fl_Return_Button. - - Fixed menu item measurement bug (wasn't initializing - image pointers to 0...) + - Fixed menu item measurement bug (wasn't initializing + image pointers to 0...) - - Radio and checkbox menu items now draw with the new - style (round radio buttons with dots and square check - buttons with check marks.) + - Radio and checkbox menu items now draw with the new + style (round radio buttons with dots and square check + buttons with check marks.) - - Improved the appearance of Fl_Check_Button. + - Improved the appearance of Fl_Check_Button. - - Improved the Fl_HelpView table formatting code; now - dynamically sizes the table columns, and supports - COLSPAN. + - Improved the Fl_HelpView table formatting code; now + dynamically sizes the table columns, and supports + COLSPAN. - - The FLUID keyboard shortcuts now work as expected - (CTRL-C copies, SHIFT-CTRL-C writes code, etc.) + - The FLUID keyboard shortcuts now work as expected + (CTRL-C copies, SHIFT-CTRL-C writes code, etc.) - - The FLTK_DOCDIR environment variable can now be - used to tell FLUID where to find the on-line - documentation files. + - The FLTK_DOCDIR environment variable can now be + used to tell FLUID where to find the on-line + documentation files. - - FLUID now supports image labels in addition to text - labels + text over image alignment. + - FLUID now supports image labels in addition to text + labels + text over image alignment. - - FLUID now supports tooltips. + - FLUID now supports tooltips. - - The widget panel in FLUID is now tabbed, a la FLTK - 2.0. + - The widget panel in FLUID is now tabbed, a la FLTK + 2.0. - - The FLUID pixmap destructor tried to free 1 too many - lines of image data. + - The FLUID pixmap destructor tried to free 1 too many + lines of image data. - - FLUID now provides on-line help. + - FLUID now provides on-line help. - - Changed Fl_FileXYZ to Fl_File_XYZ. + - Changed Fl_FileXYZ to Fl_File_XYZ. - - Changed Fl_HelpXYZ to Fl_Help_XYZ. + - Changed Fl_HelpXYZ to Fl_Help_XYZ. - - Tooltip fixes for Fl_Browser_, Fl_Choice, and Fl_Input_. + - Tooltip fixes for Fl_Browser_, Fl_Choice, and Fl_Input_. - - Added tooltips to FLUID, help dialog, and file chooser. + - Added tooltips to FLUID, help dialog, and file chooser. - - Now load system icons in FLUID. + - Now load system icons in FLUID. CHANGES IN FLTK 1.1.0b1 - - Added new image() and deimage() methods to support - image + text labels more easily. + - Added new image() and deimage() methods to support + image + text labels more easily. - - Added new alignment bit FL_ALIGN_TEXT_OVER_IMAGE. + - Added new alignment bit FL_ALIGN_TEXT_OVER_IMAGE. - - Added tooltip support using Jacques Tremblay's tooltip - patch. + - Added tooltip support using Jacques Tremblay's tooltip + patch. - - Added keyboard navigation to all widgets. + - Added keyboard navigation to all widgets. - - Added support for mouse wheels using the new - FL_MOUSEWHEEL event type. Get the mouse wheel - movement values from Fl::e_dx (horizontal) and - Fl::e_dy (vertical). + - Added support for mouse wheels using the new + FL_MOUSEWHEEL event type. Get the mouse wheel + movement values from Fl::e_dx (horizontal) and + Fl::e_dy (vertical). - - Added the Fl_Check_Browser, Fl_FileBrowser, - Fl_FileChooser, Fl_FileIcon, Fl_HelpDialog, - Fl_HelpView, Fl_Progress, and Fl_Wizard widgets from - the bazaar. + - Added the Fl_Check_Browser, Fl_FileBrowser, + Fl_FileChooser, Fl_FileIcon, Fl_HelpDialog, + Fl_HelpView, Fl_Progress, and Fl_Wizard widgets from + the bazaar. - - Added 2.0 Fl_Text_Display and Fl_Text_Editor widgets - based on NEdit. + - Added 2.0 Fl_Text_Display and Fl_Text_Editor widgets + based on NEdit. - - The Fl_Choice widget now looks more line a combo box - than a Motif option menu. + - The Fl_Choice widget now looks more line a combo box + than a Motif option menu. - - Moved the OpenGL widgets into a separate library - called fltkgl - this eliminates shared library - dependencies on OpenGL when no OpenGL functionality is - used/required. + - Moved the OpenGL widgets into a separate library + called fltkgl - this eliminates shared library + dependencies on OpenGL when no OpenGL functionality is + used/required. - - FLUID now supports the new Fl_CheckBrowser, - Fl_FileBrowser, Fl_FileIcon, Fl_HelpView, - Fl_Text_Display, Fl_Text_Editor, and Fl_Wizard - widgets. + - FLUID now supports the new Fl_CheckBrowser, + Fl_FileBrowser, Fl_FileIcon, Fl_HelpView, + Fl_Text_Display, Fl_Text_Editor, and Fl_Wizard + widgets. - - Updated configure stuff to support shared libraries - under AIX (link to -lfltk_s) + - Updated configure stuff to support shared libraries + under AIX (link to -lfltk_s) - - Symbol labels can now contain regular text. + - Symbol labels can now contain regular text. - - FLUID now supports relative filenames for the source - and header files you generate. + - FLUID now supports relative filenames for the source + and header files you generate. - - Fl_Menu_Item::add() didn't use the flags that were - passed in. + - Fl_Menu_Item::add() didn't use the flags that were + passed in. - - Fixed a bug in Fl_Scrollbar - clicking in the "trough" - of the scrollbar would move the scroller in the wrong - direction. + - Fixed a bug in Fl_Scrollbar - clicking in the "trough" + of the scrollbar would move the scroller in the wrong + direction. - - Made the Forms pixmap parameter const to match the - Fl_Pixmap.H definitions. + - Made the Forms pixmap parameter const to match the + Fl_Pixmap.H definitions. - - Changed the Fl_Pixmap constructor to use the explicit - keyword which should work for all C++ compilers. + - Changed the Fl_Pixmap constructor to use the explicit + keyword which should work for all C++ compilers. - - Fl_Menu_add of a menu item with the same name as an - existing submenu title would mess up by replacing that - menu title, it now adds a new item. + - Fl_Menu_add of a menu item with the same name as an + existing submenu title would mess up by replacing that + menu title, it now adds a new item. - - Fl_Menu::add() of text starting with '/' to a menu is - assumed to be a filename. So "/foo/bar" creates a - single menu item. You can also put filenames into - submenus by doing "submenu//foo/bar", this will create - a submenu called "submenu" with an item "/foo/bar". - Menu items starting with "\_" will insert an item - starting with '_' rather than a divider line. These - changes make the menus compatable with fltk 2.0. + - Fl_Menu::add() of text starting with '/' to a menu is + assumed to be a filename. So "/foo/bar" creates a + single menu item. You can also put filenames into + submenus by doing "submenu//foo/bar", this will create + a submenu called "submenu" with an item "/foo/bar". + Menu items starting with "\_" will insert an item + starting with '_' rather than a divider line. These + changes make the menus compatable with fltk 2.0. - - Another little fix for the BoXX OpenGL overlays. - - - Fl_Gl_Window no longer blanks the mouse pointer on - WIN32 unless an OpenGL overlay is being used. This - should make non-overlay displays faster when a cursor - is set. + - Another little fix for the BoXX OpenGL overlays. + - Fl_Gl_Window no longer blanks the mouse pointer on + WIN32 unless an OpenGL overlay is being used. This + should make non-overlay displays faster when a cursor + is set. diff --git a/CHANGES_1.3.txt b/CHANGES_1.3.txt index 1dfccb0d5..8844aa027 100644 --- a/CHANGES_1.3.txt +++ b/CHANGES_1.3.txt @@ -1,761 +1,761 @@ -CHANGES IN FLTK 1.3.5 RELEASED: Mar 03 2019 - -Bug fixes and other improvements - - - Updated CHANGES for release, removed one wrong entry - +CHANGES IN FLTK 1.3.5 RELEASED: Mar 03 2019 + + Bug fixes and other improvements + + - Updated CHANGES for release, removed one wrong entry + -CHANGES IN FLTK 1.3.5rc2 RELEASED: Feb 17 2019 +CHANGES IN FLTK 1.3.5rc2 RELEASED: Feb 17 2019 -Bug fixes and other improvements + Bug fixes and other improvements - - Fix Xcode FLTK project for use under macOS 10.14 + - Fix Xcode FLTK project for use under macOS 10.14 -CHANGES IN FLTK 1.3.5rc1 RELEASED: Feb 11 2019 +CHANGES IN FLTK 1.3.5rc1 RELEASED: Feb 11 2019 -New features and enhancements (highlights) + New features and enhancements (highlights) - - Add support for macOS 10.13 "High Sierra" and 10.14 "Mojave". - - Add FL/platform.H for compatibility with FLTK 1.4 and higher. - - Improve OpenGL(3+) support. - - Improve Cairo support and (CMake) Cairo detection. + - Add support for macOS 10.13 "High Sierra" and 10.14 "Mojave". + - Add FL/platform.H for compatibility with FLTK 1.4 and higher. + - Improve OpenGL(3+) support. + - Improve Cairo support and (CMake) Cairo detection. -Bug fixes and other improvements + Bug fixes and other improvements - - Fix for STR 3473 (and its duplicate STR 3507) to restore configure-based - builds on recent Linux/Unix distributions where the freetype-config - command has been replaced by pkg-config. - - Fix Fl_Tree::insert() with pos out ouf range (issue #18). - - Fix Fl_GIF_Image Color Table handling (STR 3491). - - Make sure not to access Fl_Menu_ widgets if the widget gets - deleted while the menu (pulldown) is open (STR 3503). - - Fix CMake build (fluid) on case sensitive macOS file systems. - - Windows/OpenGL: improve pixel format detection (STR 3119). - - Add support for macOS 10.14 "Mojave": all drawing to windows is done - through "layer-backed views" when the app is linked to SDK 10.14. - - MacOS platform: fix regression in macOS 10.13 where an unbundled app - had its system menu bar unresponsive. - - MacOS 10.10 platform: Fl_Window::fullscreen() and fullscreen_off() - no longer call Fl_Window::hide() + Fl_Window::show(). - The new procedure essentially resizes the window, as done on - the X11+EWMH and Windows platforms. This improves in particular - the possibility to turn an Fl_Gl_Window fullscreen on and off. - - MacOS platform: Support \r\n as end of line used by recent - MS Office apps in clipboard. - - Fix Fl_Text_Editor overstrike mode (STR 3463). - - More consistent and optimized "gleam" scheme box drawing. - - Fix a MinGW build error with new MinGW versions as of Feb 2018 - (undefined S_OK and __FD_ISSET), see STR 3454. - - Windows/CMake: Add missing definition of WIN32 for Windows builds. - This seems to be necessary for VS2017 and other compilers that - don't #define WIN32, but FLTK relies on this preprocessor macro. - Autoconf/configure and bundled IDE files #define WIN32 as well. - - Fix illegal memory access after free when closing fluid (valgrind - reports "Invalid read of size 4"), see also STR 3427. - - Fix crash when closing fluid with Fl_Table (STR 3427). - - Fix ignored buffer pre-allocation (requestedSize) in Fl_Text_Buffer. - See fltk.general "Fl_Text_Buffer constructor bug" on Dec 5, 2016. - - Fix Fl_Browser background and text color parsing (STR 3376). - - Fix Windows CreateDC/DeleteDC mismatch (STR 3373). - - Update bundled configure scripts config.guess and config.sub. - - Fix configure --enable-cairo --enable-cairoext, - see report in fltk.general: - https://groups.google.com/forum/#!topic/fltkgeneral/x80qQ6wt0s4 - - Fix macOS timer implementation (STR 3387). - - Fix drop-to-FLTK-widget under MSWindows when the desktop is - rescaled (STR 3390). - - Add support for macOS 10.13 "High Sierra". Subwindows don't - move correctly under 10.13 without this fix. - - -CHANGES IN FLTK 1.3.4-1 RELEASED: Nov 15 2016 - -Bug fixes and other improvements - - - Fix Windows IDE solutions VisualC2008 and VisualC2010 to - build properly if the FLTK source directory is located - in a path that contains spaces. - - Note: this is a source tar file update that is only necessary - if you build one of the above mentioned Visual Studio IDE - solutions in a path with spaces. Nothing else changed, no - documentation updates. - - -CHANGES IN FLTK 1.3.4 RELEASED: Nov 11 2016 - -Bug fixes and other improvements - - - Fix test/native-filechooser help display artifact (STR #3349). - - MacOS: fix a crash when closing a fullscreen window. - - Accept empty Fl_Pixmap in Fl_RGB_Image c'tor (STR #3348). - - MacOS: fix drawing error when a window containing a hidden subwindow - is changed to fullscreen (error visible with the tabs test program). - - MacOS: fix possible crash when enabling fullscreen in test/scroll. - - Add a snapshot of known STR's and RFE's (KNOWN_BUGS.html). - -CHANGES IN FLTK 1.3.4rc3 RELEASED: Oct 31 2016 - - Bug fixes and other improvements - - - Fix string truncation in fluid (STR #2722 continued). - - MacOS: fix a small problem where the Command-Quit menu hotkey - may not work if Fl_Native_File_Chooser is used before any - window is shown. - - -CHANGES IN FLTK 1.3.4rc2 RELEASED: Oct 24 2016 - - Bug fixes and other improvements - - - Make sure the "File Systems" menu item of Fl_File_Chooser - lists "/" as the first mounted file system (Linux/Unix platform). - - Added line numbers to fluid Edit -> Show Source Code viewer. - - Improved fluid's template handling (STR #3335). - - -CHANGES IN FLTK 1.3.4rc1 RELEASED: Oct 17 2016 - - New features and extensions - - - Added support for Mac OS 10.11 "El Capitan" and 10.12 "Sierra". - - Added full support of true subwindows to the Mac OS X platform. - Window nesting to any depth is possible. An Fl_Gl_Window window or - subwindow can contain Fl_Window's as subwindows. - - Fluid now supports external editors (STR #3213) - See: Edit -> GUI Settings -> Use external editor - - Added method Fl_Widget::is_label_copied(). - - Added methods Fl_Copy_Surface::w(), Fl_Copy_Surface::h(), - and Fl_Copy_Surface::draw_decorated_window(). - - Added method Fl_Image_Surface::draw_decorated_window(). - - Added method Fl_Shared_Image *Fl_Image_Surface::highres_image() - to draw into a high-resolution bitmap image (Mac OS X only). - - Added support for OpenGL version 3 and later. - - Added method Fl_Mac_App_Menu::custom_application_menu_items() - allowing customization of the application menu (Mac OS X only). - - Added 'fluid -u' command-line switch to upgrade fluid files in - batch mode. This option opens a fluid ('.fl') file and saves it - overwriting the old file with the current syntax and library version - number. Use with care (input file is overwritten unconditionally). - - Added FL_ZOOM_GESTURE gesture for OS X (only). Needs implementation - on other platforms. - - Added FL_ABI_VERSION, FL_API_VERSION, Fl::abi_version(), and - Fl::api_version(). Constants can be used to determine the compiled - FLTK version. Functions can be used to find the linked library version. - - Added Fl::abi_check() method to test if the runtime (linked) - ABI version is correct. - - Added Fl_Image::fail() to test if an image was loaded successfully - to allow for easier error detection when loading images (STR #2873). - - Added line numbers to fluid's source code viewer for New -> Code - - New configuration options (ABI version) - - - FLTK's ABI version can now be configured with 'configure', CMake, or - by editing a supplied file when using the bundled IDE projects. - See documentation in README.abi-version.txt. - - 1.3.4 ABI FEATURES - - - Added deactivated user icon to Fl_Tree. - - Added Fl_Shared_Image::scale(width, height) which gives a shared - image its own drawing size, independently of the size of the - underlying image. This improves image drawing on high resolution - surfaces such as Laser printers, PDF files, and Apple retina displays. - - Other improvements - - - Configure now correctly sets HAVE_* variables only if both the - library and the header files were found. The configuration process - is aborted if Xft was requested explicitly with --enable-xft and - Xft was not found. The configuration summary now shows _found_ - options as opposed to requested options. - - Improved drawing of rounded box (STR #2943). - - Full support of Apple 'retina' displays for which one drawing unit - corresponds to two pixels. - - The Mac OS X platform no longer uses the deprecated AGL - (Apple GL library) to draw OpenGL data. Instead, it uses standard - Cocoa APIs. This allows FLTK to support drawing GL scenes at high - resolution when an Fl_Gl_Window is mapped to a 'retina' display. - - Added Fl_Gl_Window::pixel_w(), Fl_Gl_Window::pixel_h(), and - Fl_Gl_Window::pixels_per_unit() useful for high resolution OpenGL windows. - - fl_read_image() now captures all pixels within the rectangle - described by its arguments, whether they belong to a GL scene - or not (STR #3142). It also captures subwindows of GL windows. - - Fl::delete_widget() now hides the widget or window immediately - (i.e. when called) - only destruction is delayed as before. - - FLTK header files don't expose X11 definitions in user code any more - unless requested by including FL/x.H explicitly or implicitly. - - The PostScript code output when printing images under Linux/Unix - is now much smaller by using lossless compression techniques. - - The Linux/Unix printer dialog now uses BSD-style printing commands - (lpr/lpq) when SystemV-style commands (lp/lpstat) are not available. - - Drawing alpha-blended images under X11 is now accelerated with - Xrender. - - The font used for the FL_COURIER font family was changed on the Mac OS X - platform from 'Courier New' to 'Courier' because it was too thin. - - Text drawing on the Mac platform supports Unicode 'variation selectors' - in the range [0xFE00-0xFE0F]. - - Added a Mac OS implementation of Fl_Window::wait_for_expose() that - became necessary with Mac OS 10.10 "Yosemite". - - Added the libfltk target to the Xcode project producing a static - version of the FLTK library (Mac OS X). - - Restored the possibility to call Fl::set_font() before main() starts. - - Allow using the --enable-x11 configure option on the Mac OS platform - which produces an X11 version of the FLTK library (don't use unless - you know what you're doing). - - FLTK code and fluid-generated code can be used in static initializers. - - Added light gray separator line to fluid's widget browser (STR #2997). - - Improved tooltip behavior for huge tooltips: remove flicker, support - key/mouse dismiss (STR #2650). - - Modifier key names displayed in shortcut labels can now be localized. - See documentation of fl_shortcut_label(). You can set modifier key - names for Ctrl, Alt, Shift, and Meta by assigning global string - pointers to your translated modifier key names. - - Many documentation improvements and fixes. - - Fixed many compiler warnings (STR #2988). - - Fluid now generates code with less compiler warnings (STR #2813). - - Many CMake improvements and fixes. Note: CMake is mostly operating - now, but not yet recommended for production use. Please test and - report issues. - - Updated bundled zlib from 1.2.5 to 1.2.8. - - Updated bundled libjpeg from jpeg-8c to jpeg-9a. - - - Bug fixes - - - Fix potential crash when using keyboard navigation on Fl_Tabs - widget without children (STR #3333). - - Fix potential crash if Fl_Window::icon(NULL) was called to clear - (reset) a window icon. This is now legal and documented behavior. - The same applies to Fl_Window::default_icon(). - - Allow widget callback to be NULL, i.e. no callback (STR #2835). - - Fixed Fl_Help_View buffer overflow (STR #3275). - - Fl_Browser now correctly adjusts its scrollbars when the default - text size is changed with textsize(int) (STR #3057). - - Fixed Fl_Text_Display/Fl_Text_Editor slow scrolling, line number - display, wrap mode "hiding" text behind scrollbars, and more - scrollbar handling (alignment) (STR #3272). - - Fixed valgrind warning (uninitialized variable) in Fl_Window. - Visible only with FLTK_ABI_VERSION >= 10303, since FLTK 1.3.3. - - Fixed Windows drag'n'drop not showing insert position if the drop - target is inside the same window or process (STR #3209). - - Fixed undefined reference building shared cairo library (STR #3276). - - Fixed Fl_Browser if text argument to some methods is NULL (STR #3269). - - Fixed missing image release in fluid (STR #2840). - - Fixed out-of-bounds memory access in fluid (STR #3263). - - Fixed trailing white space in fluid .fl files (STR #3239). - - Several box types were not drawn correctly when deactivated. - The background color for deactivated widgets is now correct: - fl_inactive(color()) (STR #2907). - - Fix inconsistent interpretation of ld() in image handling - (STR #3308). This is a minor issue since ld() is usually 0 or - w()*d(). Documentation has been fixed, and ld() handling is now - consistent in Fl_(RGB_)Image and fl_draw_image() and friends. See - documentation of Fl_Image and Fl_RGB_Image for more information. - - Fixed Fl_Pixmap (background) drawing to respect the clip region - (STR #3206). - - Fixed reading .pbm image files: 1 is now interpreted as black, - and images whose width are a multiple of 8 are correctly read. - Note: if you relied on the faulty behavior you may need to fix - your image files. - - Restored window background drawing, particularly the 'plastic' - scheme's background (STR #3059). This was a regression since - FLTK 1.3.0. - - Prevent sending (FL_SHORTCUT) events to inactive widgets (STR #3216). - - Fixed button label clipping (STR #3237). - - Fixed Fl_Menu_::item_pathname() handling of descending submenu - pointers (STR #3177). - - Fl_Text_Display: style buffer colors are no longer manipulated by - fl_contrast() for normal text drawing (fltk.coredev thread started - 04/08/15, Subject: "RFC: Fl_Text_Display style buffer color weirdness") - - Fl_Tree::deactivate() now affects draw color of items (must have - ABI 1.3.3 or higher enabled). For icons to draw deactivated, - enable ABI 1.3.4. (test/tree has a 'deactivate tree' button) - - Fl_Tree::find_item() did not find items if the pathname contained - identical strings (STR #3234). - - Fixed possible bad border effect when a set of radio menu items - is located first in its menu (STR #3176): Fl_Menu_Item::set_only() - is deprecated and replaced by Fl_Menu_::set_only(Fl_Menu_item*). - - Restore the correct state of mouse buttons and keyboard modifier keys - after closing a file or printer dialog (STR #3221). - - Fix for deactivate colors issue with Fl_Text_Display/Editor (STR #3219). - - Fixed issue with MSWindows platform where the program kept running - after closing all its windows (STR #3165). - - Fix potential buffer overflow (MSWindows: BEX64 error) and problem with - MSWindows environment variables "HOME"(MinGW) vs. "UserProfile"(DOS) - - Fix issue with MSWindows platform where a window would decrease - in size after each close/open (STR #3167). - - Fix undefined reference XGetUtf8FontAndGlyph (STR #3191). - - Fix potential keyboard hangup (STR #3192). - - Fix for: .xbm images were not previewed (STR #3131). - - Fixed crash on Mac platform when resizing a not yet shown() Fl_Gl_Window. - - Fixed potential Windows GDI leak (STR #3254). - - Fixed Linux/Unix potential program hang when dialog pops up while - a menu is open (STR #3179). - - Fixed a crash when a Unix/Linux program calls take_focus() before any - window has been show()n. - - Fixed an error on the Mac platform when drawing to an Fl_Image_Surface - object without using the Fl_Image_Surface::draw() method. - - Fixed STR #3268 where a fullscreen window could become relocated - behind the menu bar and dock (Mac OS only). - - Fixed STR #3207: ^C not working when numlock or capslock is on. - - Fixed code editor in Fluid (STR #3184). - - Fixed a potential hangup of the Fl::awake() queue under Windows if - a window is resized or moved while the Fl::awake() message is sent - (STR #3143). - - Fixed a regression: restore the possibility to call - fl_draw_image(buf,X,Y,W,H,D,L) with negative D and/or L arguments. - - Fixed overflow in Fl_Valuator::precision(int) to 0...9 (STR #3280). - - -CHANGES IN FLTK 1.3.3 RELEASED: Nov 03 2014 - - New features and extensions - - - New class Fl_Copy_Surface allows copying graphical data to the - clipboard in a cross-platform way (STR #3058). - - Support for pasting graphical data from the clipboard to a widget. - - New class Fl_Image_Surface allows drawing into an Fl_Image object. - - Methods Fl::add_clipboard_notify() and Fl::remove_clipboard_notify() - to get notifications whenever the clipboard changes (STR #2636). - - New method Fl_Window::wait_for_expose() (STR #3124, STR #3129). - - New bilinear scaling method for RGB images (STR #2869, STR #3062). - - New method Fl_Widget::top_window() (STR #2948). - - New method Fl_Widget::top_window_offset() (part of STR #2944). - - New Fl_Tree_Item methods label_x(), label_y(), label_w(), label_h(). - - New methods Fl::enable_im() and Fl::disable_im() to enable/disable - system Input Methods (IM). - - New methods Fl::add_system_handler() and Fl::remove_system_handler() - to intercept low level system events. - - New FLTK scheme "gleam" (STR #2672). - - New method Fl::is_scheme() to compare the current scheme name. - - New method to set custom icons for windows (STR #2816), - see Fl_Window::icon() for more info. - - New method to set any custom cursor, based on a Fl_RGB_Image object. - Also changed fallback cursors to use this method, so that fallback - cursors are handled in a platform independent manner (STR #2660). - - New ability to convert Fl_Pixmap to Fl_RGB_Image (STR #2659). - - Support for full screen windows over multiple monitors. - - New optional line numbers in Fl_Text_Display and options to control - line numbers and word wrapping (on/off) in example test/editor.cxx. - - On Linux/Unix, class Fl_Native_File_Chooser uses file dialogs from - the Gnome environment (provided by the libgtk dynamic library) if - available, and falls back to Fl_File_Chooser if not (STR #3088). - Use option Fl::OPTION_FNFC_USES_GTK to enable/disable this feature. - - New support for the Mac OS text input system that deals with character - composition and input of languages with large character sets (e.g. - Chinese and Japanese). This implementation has been reported to work - well for Chinese. Superficial testing suggests it's also operational - for Japanese. In-depth testing remains needed though. - - Other improvements - - - Many CMake improvements (e.g. STR #2962, 2977, 2994, 3045, 3055). - - Some autoconf, configure improvements. - - Removed 1024 bytes constraint in labels and browser lines (STR #2990). - - Mac OS version of Fl_Native_File_Chooser: when using filters in a - save file dialog, the output file extension gets changed when the - user modifies the output file type. - - Many Mac OS X improvements related to Fl_Sys_Menu_Bar. - - Improved Mac OS X keyboard handling of special keys or combinations. - - General Mac OS X improvements, incl. high resolution (Retina) - displays, and support up to Mac OS X 10.10. - - Documentation improvements and clarifications. - - Printing support improvements, including GL windows. - - Many improvements related to Fl_Tree (some of them only as ABI - breaking features, see below). - - Some static data has been made 'const' to improve memory usage - with shared libraries. - - Don't grab navkeys with modifiers (CTRL, ALT), as the application - may want them (STR #3104). - - Check compiler support of -fvisibility, -fvisibility-inlines-hidden, - and use it, if available. Reduces shared library size. - - Drag'n'drop behaves better now: if text is dropped in the widget it - comes from, then it works like cut and paste. - - Other improvements of DND handling when dragging text from other - applications, e.g. Firefox and Thunderbird. - - Windows message WM_QUIT is processed like SIGTERM, i.e. as a - request to terminate the program. - - Fluid no longer closes the code window when hitting ESC (STR #2997). - - Improved Fl_Widget::when() handling in Fl_Tabs (STR #2939). - - Improved support for more recent compilers (clang and gcc) that - issue more warnings, and fixed some 32-/64-bit compilation issues. - - Added method Fl_Window::clear_modal_states() to make it possible - to remove the modal or non-modal state from a window (STR #3123). - - Bug fixes - - - Fixed word selection dragging in text input (STR #3014). - - Fixed border padding for special cases (STR #3061, Windows only). - - Fixed crash if Fl_Window::flush() called while window not shown() - (STR #3028). - - Fixed segfault in fl_set_fonts_xft.cxx when loading fonts not named - as expected (STR #2976). - - Fixed a memory leak in font loading/allocation (STR #3069). - - Fixed minor memory leaks in handling/freeing of X11 objects. - - Fixed OS X fl_read_image() and Fl_Paged_Device::print_window_part() - when using a Retina display. - - Fixed MinGW build if configure didn't find strcasecmp() (STR #2994). - - Fixed access of protected member under Linux/Unix (STR #2903). - - Fixed various Mac specific OpenGL issues (STR #2944) - - Fixed PostScript printing with non-english locale (STR #3130). - - Fixed a regression in Fl_File_Chooser since FLTK 1.1.8: the - Enter key now selects the file again. - - Fixed a bug in Fl_Native_File_Chooser (Windows) for some file name - input filters (STR #3101). - - Fixed out-of-bounds memory access in Fl_Text_Display (STR #2730). - - 1.3.3 ABI FEATURES - - To enable the following ABI features, put: - #define FLTK_ABI_VERSION 10303 - ..at the top of your FL/Enumerations.H and rebuild FLTK and your app. - - - Added Fl_Window::shape(const Fl_Image*) to create arbitrarily-shaped - windows - - Made Fl_Help_View::handle() public and Fl_Help_View::draw() protected - to enable inheritance and for consistency (STR #2834). - Note: both methods were private. - - Made Fl_Scroll::recalc_scrollbars() protected so that it can be used - in derived widgets to calculate scrollbar visibility and positions. - - Added Fl_Table::tab_cell_nav() for controlling Tab key navigation of table - - Added Fl_Tree::get_selected_items(), returns the selected items as an array - - Added Fl_Tree::item_draw_callback(), letting one define a custom draw - function for Fl_Tree_Item's. - - Fl_Tree: various related changes: - o Added horizontal scrollbar - o Separated draw() and tree size calculation - o Added new public methods: - > resize() -- uses optimized dim calc, avoids tree recalc - > next_item() -- added parameters: direction, visibility - > extend_selection() -- added parameters, improved algorithm - > calc_dimensions() -- calc tix/y/w/h, tox/y/w/h and scrollbars - > calc_tree() -- calc tree_w/tree_h - > recalc_tree() -- schedules calc_tree() - > first_visible_item(), last_visible_item(), next_visible_item() - > first_selected_item(), last_selected_item(), next_selected_item() - o Added protected variables: - > _tix/y/w/h -- tree widget 'inner' dimension - > _tox/y/w/h -- tree widget 'outer' dimension - > _tree_w,_tree_h -- entire tree hierarchy width/height - o Deprecated: - > item_clicked() -- use callback_item() instead - > first_visible() -- use first_visible_item() instead - > last_visible() -- use last_visible_item() instead - - - Fl_Tree_Item: various related changes: - o Added Fl_Tree ptr: needed for auto-recalc when item modified directly - o Added new methods tree(), recalc_tree() - o Added new ctor that accepts Fl_Tree* - o draw() parameters changed to include tree size calculations - o Deprecated: - > ctor using Fl_Tree_Prefs parameter (Fl_Tree* version better, - and must be used for 1.3.3 ABI features to work correctly) - > next_displayed() -- use next_visible() instead - > prev_displayed() -- use prev_visible() instead - - test/tree: added tests for newly added features - -CHANGES IN FLTK 1.3.2 RELEASED: Dec 12 2012 - - - Removed unnecessary drawing calls (STR #2898) - - Fixed regression in FLTK 1.3.1 for unbundled Mac OS FLTK applications - that did not appear in dock nor have a menu bar (STR #2890). - - Fl_Table::clear() now calls table->clear() for consistency. (STR #2889) - - Fixed Fl_Scroll widget that fails under Mac OS X 10.8 and Retina - display (STR #2887). - - Prevents scrollbars from drawing when widget is sized too small - to be visible (STR #2886). - - Documented how to make a Mac OS X FLTK application launchable - by dropping files on its icon. - - Fixed a Mac-specific issue that appeared with OS 10.8 (Mountain Lion): - long delay before opening when the application is started by dragging - a file on the application icon. - - Fixed use of PNG image from in-memory data (STR #2884). - - Added static Fl_RGB_Image::max_size(size_t) to limit the maximum - memory size allowed to RGB images (STR #2881). - -CHANGES IN FLTK 1.3.1 RELEASED: Nov 06 2012 - - - Fixed utf_strncasecmp and utf_strcasecmp - - Moved all inline constructors into source file to avoid bad DLLs - - Fixed Fl_Widget::copy_label() and Fl_Window::copy_label() when - called with the old label() (STR #2836) - - Fixed Fl_Input_::maximum_size() documentation and replace() method - to honor maximum_size() as number of allowed characters (STR #2747). - - Fixed a potential crash if Fl_Double_Window::flush() was called - before show() - - Fixed regression (in FLTK 1.3.0) that could clear a radio - button by using the keyboard (space or shortcut) (STR #2748) - - Fixed fl_pie() drawing too small on X11 (STR #2703) - - Fixed Fl_Menu issue with unusual menu flags (STR #2680) - - Fixed Windows DLL import of fl_xid() (STR #2670) - - Added Fl::screen_work_area() functions that compute the work area - of a screen. These functions improve the positioning of menus. - Changed Fl::x(), Fl::y(), Fl::w(), Fl::h() functions - to return the origin and size of the work area of the main screen - (STR #2695 + 2697) - - Created the FL_SCREEN_CONFIGURATION_CHANGED event that is triggered - when a screen is added, removed, moved or when resolution is changed - (STR #2600) - - Improved the description of page size and orientation by - Fl_PostScript_File_Device. - - Added support for horizontal wheel movement under X11 and Windows - Vista and above (STR #2644). - - 1.3.1 ABI FEATURES - (To enable the following ABI features, put: #define FLTK_ABI_VERSION 10301 - at the top of your FL/Enumerations.H and rebuild FLTK and your app) - - Fl_Tree optimized to support large trees (eg. 100k items): - Added _next_sibling and _prev_sibling to Fl_Tree_Item class, - and support methods. - - -CHANGES IN FLTK 1.3.0 RELEASED: Jun 16 2011 - - New Features - - - Added UTF-8 Unicode support throughout FLTK and Fluid - - Added Fl_Tree widget for hierarchical views - - Added Fl_Table widget for widget layout - - Added Fl_Native_Filechooser as a widget and global options - - Added printing support (Fl_Printer class and friends) for native - printing on Windows and Mac OS X, PostScript printing on X11 - with CUPS or lp, and PostScript file output on all platforms - - Added basic Fl_Device abstraction layer for all drawing functions - - Moved OS X code base to the more modern Cocoa toolkit thanks - to the awesome work of Manolo Gouy (STR #2221) - - API and ABI Compatibility to FLTK 1.1.x - - - All strings are expected to be in UTF-8 Unicode encoding - - Replaced Fl_Scroll::position(int,int) with scroll_to(int,int) - to avoid overriding Fl_Widget::position(int,int) (STR #1303) - - Although FLTK 1.3 maintains source code compatibility as good - as possible, the binary interface changed considerably. - - Updated the bundled libpng to v1.5.1 (released Feb 3, 2011) - - Updated the bundled libjpeg to v8c (released Jan 16, 2011) - - Updated the bundled zlib to v1.2.5 (released Apr 19, 2010) - - API Enhancements and Changes - - - Changed font index to 32 bit - - Changed font size to 32 bit - - Changed widget coordinates to 32 bit - - Corrected const methods of Fl_Text_{Buffer|Display|Selection} - to be declared const, corrected an Fl_Text_Buffer attrib. typo - - All draw() methods of widgets are now protected (STR #2142). - - Changed Fl_Group::clip_children() to public (STR #2017) - - Changed socket library to winsock2 (ws2_32.dll) instead of - wsock32.dll for Windows. The dll is now loaded dynamically only - if/when needed. - - Changed hide() and show() methods. They are now virtual from - Fl_Widget. - - Added new label and image alignments (STR #2269) - - Added global UI options (STR #2471) - - Added class Fl_Widget_Tracker to simplify safe handling of widget - deletion in callbacks. This is used in Fl_Widget::do_callback() - to prevent accessing widgets after deletion in the callback. - - Added sorting to Fl_Browser_ (STR #2113) - - Added new method client_area() for easier positioning of children - in Fl_Tabs (STR #2480) - - Added interface to set color chooser mode (STR #2407) - - Added Fl_Menu_::find_item by callback - - Added loading jpeg images from memory - - Added support for shortcuts for Fl_Input_, Fl_Value_Input, and - Fl_Text_Display derived widgets (STR #1770) - - Added Fl_Menu_ methods: insert(), find_index(), clear_submenu() - - Hotspot behavior of fl_message() and other common dialogs is now - optional (STR #2561). - - Common dialogs like fl_message() and fl_ask() can now have a window - title (STR #2562). - - IDE Support and Command Line Build Options - - - FLTK now supports Apple Xcode 3, MS VisualC 2008, and - MS VisualC 2010. MS VisualC 6 support is maintained as a - compatibility base for VisualC.net, etc. . FLTK continues - to support configure/make and improved CMake build files. - - Added step by step README's for MSWindows, OS X, and four - Linux distros. - - Added "ide" subdirectory for all IDE support files - - Added template to generate new projects with Xcode. - - Added --enable-cairo and --enable-cairoext configure options. - - redesigned CMake files (STR #2317). - - The new configure option --enable-x11 (lowercase 'x') enables - Cygwin builds under Windows (with --enable-cygwin) to use X11 - instead of GDI drawing (STR #2147, #2183) and is ignored otherwise. - - Changed "fltk-config --post foo" to create an application - bundle rather than attaching a resource fork. - - Changed default for configure option --with-links for common - misspellings on case sensitive file systems like Unix/Linux. - The new default is --without-links; use --with-links on - Unix/Linux only if you need the links (e.g. lowercase '.h') - - Fluid - - - Added argument-less constructor in Fluid Widget Class - - Added jpeg support to Fluid image() element - - Added binary data type to Fluid - - Empty functions in Fluid no longer create an - implementation (STR #2259) - - Fixed internationalisation of menus using Fluid (STR #2246) - - Fixed menu item counting issue in Fluid (STR #2322) - - Fixed lost top item in Fluid's tree browser (STR #2233) - - Fixed Fluid dependency on X11 (STR #2261) - - Fixed Fluid textcolor output (STR #1992) - - Fixed wrong default value of Fl_Spinner in Fluid (STR #1991) - - Documentation - - - Added documentation for event delivery (STR #1983) - - Added Fl_Scroll::bbox() documentation (STR #1893) - - Updated documentation for Fl_Input_ - - Updated Copyright dates to 2010 (STR #2036) - - Updated mirror sites in documentation (STR #2220) - - Fixed documentation for Fl_Progress (STR #2209) - - Fixed documentation (added missing COMCTL32.LIB dependency) - - Other Improvements - - - Added drag'n'drop support for Fl_Text_* - - Added visual feedback for button shortcuts (STR #2372) - - Added callback when double-clicking file in a file chooser - (STR #2346) - - Added alternative Xft font names (STR #2215) - - Added mouse!=0 check in Fl_Glut_Window::handle (STR #2381) - - Added indexing to Fl_Preferences - - Added OS X cursor control to Fl_Input (STR #2169) - - Added menu shortcut alignment for OS X - - Added drop box to UTF-8 test that will show the UTF-8 encoding - for the first dropped character - - Added flexible gap size for text buffer (STR #2046) - - Added clarification to Fl_GL_Window mode function (STR #1945) - - Added alternative text input awareness on OS X - - Improved handling of composed keys in OS X 10.5 and up - - Improved stability of fl_read_image (STR #2021) - - Much faster fl_read_image() for Windows (STR #2387). - - Improved support for faulty X11 clients (STR #2385) - - Integrated default menu into Demo test app - - Replaced _WIN32 symbols that had come with UTF-8 and the - new Fl_Table widget with WIN32 - - Widgets now remove stale entries from the default callback - queue when they are deleted (STR #2302) - - Managing all Widget flags in a single location now (STR #2161) - - File chooser preview now recognizes UTF-8 encoded - text files (STR #2218) - - Setting a default font for Xft (STR #2216) - - Restructured the unittest application - - Fl_Preferences.H now doesn't include windows.h any more - (Windows only, STR #2173). - - Fl_Window::draw() now doesn't reset its x/y-coordinates to 0 - anymore before drawing itself and its children. - - Fl_Help_View handles HTML2 font color specification (STR #890) - - Widgets now remove themselves from their parent group (if any), - when destroyed (STR #1894) - - Changed Fl_Group and Fl_Scroll to resize themselves before - resizing their children (STR #2032) - - Bug Fixes - - - Fixed potential crash in fl_xid() on Linux (STR #2635) - - Fixed keyboard navigation in fl_choice() (STR #2591) - - Fixed alpha blending under X11 when line data size != 0 (STR #2606) - - Fixed Fl_Tabs selection border drawing, if tabs are at the bottom - of the widget (STR #2480) - - Fixed Compiling with mingw-w64 (STR #2308). - - Fixed crashes when detecting illegal UTF-8 sequences - in Fl_Text_* widgets (STR #2348) - - Fixed Fl_Text_Display Tabulator calculations (STR #2450) - - Fixed file access code to use UTF-8 strings (STR #2440) - - Fixed ARM Unicode cross compilation issue (STR #2432) - - Fixed xclass support for Fl_Window (STR #2053) - - Fixed Caps Lock handling in X11/XIM (STR #2366) - - Fixed handling of missing fonts in Xft (STR #2355) - - Fixed OpenGL hide/show issue in OS X (STR #2260) - - Fixed File Chooser preview hang if a device was choosen - - Fixed blinking of selection when the mouse was dragged - outside of the Fl_Text_* widget - - Fixed Unicode support for Fl_Text_* widgets - - Fixed menu and shortcut handling (STR #2243) - - Fixed fltk-config to give --libs on one line (STR #2408) - - Fixed outside label redraw damage areas (STR #2436) - - Fixed compile errors when HAVE_LIBJPEG was not defined - (STR #2382) - - Fixed special handling for ISO back-tab keycode (STR #2369) - - Fixed static allocation in Fl_Tabs (STR #2370) - - Fixed Fl_Widget::measure_label() to const (STR #2406) - - Fixed unbalanced Windows OleInitialize/OleUnitialize calls - when loading/unloading the FLTK dll (STR #2417) - - Fixed X11/XDBE double buffering (STR #2152, #2197) - - Fixed menu and tooltip window animation bug under X11 (compiz) - by setting an appropriate window type (STR #2082) - - Fixed max. fd calculation, if USE_POLL is enabled (STR #2324) - - Fixed clipping for offscreen rendering (OSX, STR #2330) - - Fixed possibility of wrong flags() in Fl_Window::iconlabel() - (STR #2161) - - Fixed Scrollbar events when max is less than min (STR #2283) - - Fixed crash in test/Editor when freeing buffer - too soon (STR #2294) - - Fixed Fl_Preferences Cygwin wide character bug (STR #2164) - - Fixed sorting in Fl_Browser - last item would not - be sorted (STR #2300) - - Fixed window levels in OS X Cocoa (STR #2316) - - Fixed a buffer overflow in fl_utf8from_mb() (STR #2279) - - Fixed a Windows GDI leak when testing alpha blending capabilities - - Fixed crashes for recursive common dialogs (STR #1986, #2150) - - Fixed a name conflict with new (VS 2008 Express) winsock2.h - versions and another conflict that produced compile errors - with VS 2008 Express (STR #2301) - - Fixed all color related calls to Fl_Color type (STR #2208) - - Fixed Fl_Choice contrast with light-on-dark settings (STR #2219) - - Fixed X server "lock", if a modal dialog window is opened - while a menu is active (STR #1986) - - Fixed Windows compile bug with "#define USE_COLORMAP 0" - (STR #2241) - - Fixed glibc 2.10 compiler problems (Fedora 11 and others) - with scandir() and strchr() (STR #2222) - - Fixed OpenGL shared context handling (STR #2135) - - Fixed gray-scale images with alpha channel (STR #2105) - - Fixed unexpected shortcut behavior for Win32 (STR #2199) - - Fixed fl_draw_image to obey the alpha channel (OS X only) - - Fix for multiple popups, when dragging and calling fl_alert() - and friends from the callback (STR #2159) - - Fixed control key keycodes with modifiers on OS X - - Fixed bad system menu handling in OS X (STR #2153) - - Fixed File Input mouse pointer dragging (STR #2181) - - Fixed 'del' keycode on OS X - - Fixed OS X support for sending and receiving dnd data as UTF-8 - - Fixed Copy/Paste operations with UTF-8, UTF-16 support and - fltk1.1 compatibility. (STR #2104, 2121). - - Fixed fl_set_spot() for Windows (STR #2101) - - Fixed callback that would not be called when shortcut was used - with radio and toggle buttons in default FL_RELEASE mode. - - Fixed a problem with TrackMouseEvent() (Windows only) that would - generate wrong FL_LEAVE events with subwindows. TrackMouseEvent - is now enabled by default (it was disabled for GNU compilers). - It can be disabled by defining NO_TRACK_MOUSE. - Improved test/subwindow.cxx (STR #2079) - - Fixed menu position close to screen border (STR #2057) - - Fixed adding an idle handler during a draw() call (STR #1950) - - Fixed first modifier key event (STR #1952) - - Fixed Fl_Scroll inside Fl_Scroll (STR #265) - - Removed Features - - - Removed Watcom compiler support because it was introduced in - 1.1.6 as a partial solution and never completed. - - Removed an XForms compatibility "feature" that prevented the - down array of Fl_Menu_Button from drawing (STR #2141). - - Removed support for gcc 2.x (or older) - - Removed redundant Fl_Group casts + - Fix for STR 3473 (and its duplicate STR 3507) to restore configure-based + builds on recent Linux/Unix distributions where the freetype-config + command has been replaced by pkg-config. + - Fix Fl_Tree::insert() with pos out ouf range (issue #18). + - Fix Fl_GIF_Image Color Table handling (STR 3491). + - Make sure not to access Fl_Menu_ widgets if the widget gets + deleted while the menu (pulldown) is open (STR 3503). + - Fix CMake build (fluid) on case sensitive macOS file systems. + - Windows/OpenGL: improve pixel format detection (STR 3119). + - Add support for macOS 10.14 "Mojave": all drawing to windows is done + through "layer-backed views" when the app is linked to SDK 10.14. + - MacOS platform: fix regression in macOS 10.13 where an unbundled app + had its system menu bar unresponsive. + - MacOS 10.10 platform: Fl_Window::fullscreen() and fullscreen_off() + no longer call Fl_Window::hide() + Fl_Window::show(). + The new procedure essentially resizes the window, as done on + the X11+EWMH and Windows platforms. This improves in particular + the possibility to turn an Fl_Gl_Window fullscreen on and off. + - MacOS platform: Support \r\n as end of line used by recent + MS Office apps in clipboard. + - Fix Fl_Text_Editor overstrike mode (STR 3463). + - More consistent and optimized "gleam" scheme box drawing. + - Fix a MinGW build error with new MinGW versions as of Feb 2018 + (undefined S_OK and __FD_ISSET), see STR 3454. + - Windows/CMake: Add missing definition of WIN32 for Windows builds. + This seems to be necessary for VS2017 and other compilers that + don't #define WIN32, but FLTK relies on this preprocessor macro. + Autoconf/configure and bundled IDE files #define WIN32 as well. + - Fix illegal memory access after free when closing fluid (valgrind + reports "Invalid read of size 4"), see also STR 3427. + - Fix crash when closing fluid with Fl_Table (STR 3427). + - Fix ignored buffer pre-allocation (requestedSize) in Fl_Text_Buffer. + See fltk.general "Fl_Text_Buffer constructor bug" on Dec 5, 2016. + - Fix Fl_Browser background and text color parsing (STR 3376). + - Fix Windows CreateDC/DeleteDC mismatch (STR 3373). + - Update bundled configure scripts config.guess and config.sub. + - Fix configure --enable-cairo --enable-cairoext, + see report in fltk.general: + https://groups.google.com/forum/#!topic/fltkgeneral/x80qQ6wt0s4 + - Fix macOS timer implementation (STR 3387). + - Fix drop-to-FLTK-widget under MSWindows when the desktop is + rescaled (STR 3390). + - Add support for macOS 10.13 "High Sierra". Subwindows don't + move correctly under 10.13 without this fix. + + +CHANGES IN FLTK 1.3.4-1 RELEASED: Nov 15 2016 + + Bug fixes and other improvements + + - Fix Windows IDE solutions VisualC2008 and VisualC2010 to + build properly if the FLTK source directory is located + in a path that contains spaces. + + Note: this is a source tar file update that is only necessary + if you build one of the above mentioned Visual Studio IDE + solutions in a path with spaces. Nothing else changed, no + documentation updates. + + +CHANGES IN FLTK 1.3.4 RELEASED: Nov 11 2016 + + Bug fixes and other improvements + + - Fix test/native-filechooser help display artifact (STR #3349). + - MacOS: fix a crash when closing a fullscreen window. + - Accept empty Fl_Pixmap in Fl_RGB_Image c'tor (STR #3348). + - MacOS: fix drawing error when a window containing a hidden subwindow + is changed to fullscreen (error visible with the tabs test program). + - MacOS: fix possible crash when enabling fullscreen in test/scroll. + - Add a snapshot of known STR's and RFE's (KNOWN_BUGS.html). + +CHANGES IN FLTK 1.3.4rc3 RELEASED: Oct 31 2016 + + Bug fixes and other improvements + + - Fix string truncation in fluid (STR #2722 continued). + - MacOS: fix a small problem where the Command-Quit menu hotkey + may not work if Fl_Native_File_Chooser is used before any + window is shown. + + +CHANGES IN FLTK 1.3.4rc2 RELEASED: Oct 24 2016 + + Bug fixes and other improvements + + - Make sure the "File Systems" menu item of Fl_File_Chooser + lists "/" as the first mounted file system (Linux/Unix platform). + - Added line numbers to fluid Edit -> Show Source Code viewer. + - Improved fluid's template handling (STR #3335). + + +CHANGES IN FLTK 1.3.4rc1 RELEASED: Oct 17 2016 + + New features and extensions + + - Added support for Mac OS 10.11 "El Capitan" and 10.12 "Sierra". + - Added full support of true subwindows to the Mac OS X platform. + Window nesting to any depth is possible. An Fl_Gl_Window window or + subwindow can contain Fl_Window's as subwindows. + - Fluid now supports external editors (STR #3213) + See: Edit -> GUI Settings -> Use external editor + - Added method Fl_Widget::is_label_copied(). + - Added methods Fl_Copy_Surface::w(), Fl_Copy_Surface::h(), + and Fl_Copy_Surface::draw_decorated_window(). + - Added method Fl_Image_Surface::draw_decorated_window(). + - Added method Fl_Shared_Image *Fl_Image_Surface::highres_image() + to draw into a high-resolution bitmap image (Mac OS X only). + - Added support for OpenGL version 3 and later. + - Added method Fl_Mac_App_Menu::custom_application_menu_items() + allowing customization of the application menu (Mac OS X only). + - Added 'fluid -u' command-line switch to upgrade fluid files in + batch mode. This option opens a fluid ('.fl') file and saves it + overwriting the old file with the current syntax and library version + number. Use with care (input file is overwritten unconditionally). + - Added FL_ZOOM_GESTURE gesture for OS X (only). Needs implementation + on other platforms. + - Added FL_ABI_VERSION, FL_API_VERSION, Fl::abi_version(), and + Fl::api_version(). Constants can be used to determine the compiled + FLTK version. Functions can be used to find the linked library version. + - Added Fl::abi_check() method to test if the runtime (linked) + ABI version is correct. + - Added Fl_Image::fail() to test if an image was loaded successfully + to allow for easier error detection when loading images (STR #2873). + - Added line numbers to fluid's source code viewer for New -> Code + + New configuration options (ABI version) + + - FLTK's ABI version can now be configured with 'configure', CMake, or + by editing a supplied file when using the bundled IDE projects. + See documentation in README.abi-version.txt. + + 1.3.4 ABI FEATURES + + - Added deactivated user icon to Fl_Tree. + - Added Fl_Shared_Image::scale(width, height) which gives a shared + image its own drawing size, independently of the size of the + underlying image. This improves image drawing on high resolution + surfaces such as Laser printers, PDF files, and Apple retina displays. + + Other improvements + + - Configure now correctly sets HAVE_* variables only if both the + library and the header files were found. The configuration process + is aborted if Xft was requested explicitly with --enable-xft and + Xft was not found. The configuration summary now shows _found_ + options as opposed to requested options. + - Improved drawing of rounded box (STR #2943). + - Full support of Apple 'retina' displays for which one drawing unit + corresponds to two pixels. + - The Mac OS X platform no longer uses the deprecated AGL + (Apple GL library) to draw OpenGL data. Instead, it uses standard + Cocoa APIs. This allows FLTK to support drawing GL scenes at high + resolution when an Fl_Gl_Window is mapped to a 'retina' display. + - Added Fl_Gl_Window::pixel_w(), Fl_Gl_Window::pixel_h(), and + Fl_Gl_Window::pixels_per_unit() useful for high resolution OpenGL windows. + - fl_read_image() now captures all pixels within the rectangle + described by its arguments, whether they belong to a GL scene + or not (STR #3142). It also captures subwindows of GL windows. + - Fl::delete_widget() now hides the widget or window immediately + (i.e. when called) - only destruction is delayed as before. + - FLTK header files don't expose X11 definitions in user code any more + unless requested by including FL/x.H explicitly or implicitly. + - The PostScript code output when printing images under Linux/Unix + is now much smaller by using lossless compression techniques. + - The Linux/Unix printer dialog now uses BSD-style printing commands + (lpr/lpq) when SystemV-style commands (lp/lpstat) are not available. + - Drawing alpha-blended images under X11 is now accelerated with + Xrender. + - The font used for the FL_COURIER font family was changed on the Mac OS X + platform from 'Courier New' to 'Courier' because it was too thin. + - Text drawing on the Mac platform supports Unicode 'variation selectors' + in the range [0xFE00-0xFE0F]. + - Added a Mac OS implementation of Fl_Window::wait_for_expose() that + became necessary with Mac OS 10.10 "Yosemite". + - Added the libfltk target to the Xcode project producing a static + version of the FLTK library (Mac OS X). + - Restored the possibility to call Fl::set_font() before main() starts. + - Allow using the --enable-x11 configure option on the Mac OS platform + which produces an X11 version of the FLTK library (don't use unless + you know what you're doing). + - FLTK code and fluid-generated code can be used in static initializers. + - Added light gray separator line to fluid's widget browser (STR #2997). + - Improved tooltip behavior for huge tooltips: remove flicker, support + key/mouse dismiss (STR #2650). + - Modifier key names displayed in shortcut labels can now be localized. + See documentation of fl_shortcut_label(). You can set modifier key + names for Ctrl, Alt, Shift, and Meta by assigning global string + pointers to your translated modifier key names. + - Many documentation improvements and fixes. + - Fixed many compiler warnings (STR #2988). + - Fluid now generates code with less compiler warnings (STR #2813). + - Many CMake improvements and fixes. Note: CMake is mostly operating + now, but not yet recommended for production use. Please test and + report issues. + - Updated bundled zlib from 1.2.5 to 1.2.8. + - Updated bundled libjpeg from jpeg-8c to jpeg-9a. + + + Bug fixes + + - Fix potential crash when using keyboard navigation on Fl_Tabs + widget without children (STR #3333). + - Fix potential crash if Fl_Window::icon(NULL) was called to clear + (reset) a window icon. This is now legal and documented behavior. + The same applies to Fl_Window::default_icon(). + - Allow widget callback to be NULL, i.e. no callback (STR #2835). + - Fixed Fl_Help_View buffer overflow (STR #3275). + - Fl_Browser now correctly adjusts its scrollbars when the default + text size is changed with textsize(int) (STR #3057). + - Fixed Fl_Text_Display/Fl_Text_Editor slow scrolling, line number + display, wrap mode "hiding" text behind scrollbars, and more + scrollbar handling (alignment) (STR #3272). + - Fixed valgrind warning (uninitialized variable) in Fl_Window. + Visible only with FLTK_ABI_VERSION >= 10303, since FLTK 1.3.3. + - Fixed Windows drag'n'drop not showing insert position if the drop + target is inside the same window or process (STR #3209). + - Fixed undefined reference building shared cairo library (STR #3276). + - Fixed Fl_Browser if text argument to some methods is NULL (STR #3269). + - Fixed missing image release in fluid (STR #2840). + - Fixed out-of-bounds memory access in fluid (STR #3263). + - Fixed trailing white space in fluid .fl files (STR #3239). + - Several box types were not drawn correctly when deactivated. + The background color for deactivated widgets is now correct: + fl_inactive(color()) (STR #2907). + - Fix inconsistent interpretation of ld() in image handling + (STR #3308). This is a minor issue since ld() is usually 0 or + w()*d(). Documentation has been fixed, and ld() handling is now + consistent in Fl_(RGB_)Image and fl_draw_image() and friends. See + documentation of Fl_Image and Fl_RGB_Image for more information. + - Fixed Fl_Pixmap (background) drawing to respect the clip region + (STR #3206). + - Fixed reading .pbm image files: 1 is now interpreted as black, + and images whose width are a multiple of 8 are correctly read. + Note: if you relied on the faulty behavior you may need to fix + your image files. + - Restored window background drawing, particularly the 'plastic' + scheme's background (STR #3059). This was a regression since + FLTK 1.3.0. + - Prevent sending (FL_SHORTCUT) events to inactive widgets (STR #3216). + - Fixed button label clipping (STR #3237). + - Fixed Fl_Menu_::item_pathname() handling of descending submenu + pointers (STR #3177). + - Fl_Text_Display: style buffer colors are no longer manipulated by + fl_contrast() for normal text drawing (fltk.coredev thread started + 04/08/15, Subject: "RFC: Fl_Text_Display style buffer color weirdness") + - Fl_Tree::deactivate() now affects draw color of items (must have + ABI 1.3.3 or higher enabled). For icons to draw deactivated, + enable ABI 1.3.4. (test/tree has a 'deactivate tree' button) + - Fl_Tree::find_item() did not find items if the pathname contained + identical strings (STR #3234). + - Fixed possible bad border effect when a set of radio menu items + is located first in its menu (STR #3176): Fl_Menu_Item::set_only() + is deprecated and replaced by Fl_Menu_::set_only(Fl_Menu_item*). + - Restore the correct state of mouse buttons and keyboard modifier keys + after closing a file or printer dialog (STR #3221). + - Fix for deactivate colors issue with Fl_Text_Display/Editor (STR #3219). + - Fixed issue with MSWindows platform where the program kept running + after closing all its windows (STR #3165). + - Fix potential buffer overflow (MSWindows: BEX64 error) and problem with + MSWindows environment variables "HOME"(MinGW) vs. "UserProfile"(DOS) + - Fix issue with MSWindows platform where a window would decrease + in size after each close/open (STR #3167). + - Fix undefined reference XGetUtf8FontAndGlyph (STR #3191). + - Fix potential keyboard hangup (STR #3192). + - Fix for: .xbm images were not previewed (STR #3131). + - Fixed crash on Mac platform when resizing a not yet shown() Fl_Gl_Window. + - Fixed potential Windows GDI leak (STR #3254). + - Fixed Linux/Unix potential program hang when dialog pops up while + a menu is open (STR #3179). + - Fixed a crash when a Unix/Linux program calls take_focus() before any + window has been show()n. + - Fixed an error on the Mac platform when drawing to an Fl_Image_Surface + object without using the Fl_Image_Surface::draw() method. + - Fixed STR #3268 where a fullscreen window could become relocated + behind the menu bar and dock (Mac OS only). + - Fixed STR #3207: ^C not working when numlock or capslock is on. + - Fixed code editor in Fluid (STR #3184). + - Fixed a potential hangup of the Fl::awake() queue under Windows if + a window is resized or moved while the Fl::awake() message is sent + (STR #3143). + - Fixed a regression: restore the possibility to call + fl_draw_image(buf,X,Y,W,H,D,L) with negative D and/or L arguments. + - Fixed overflow in Fl_Valuator::precision(int) to 0...9 (STR #3280). + + +CHANGES IN FLTK 1.3.3 RELEASED: Nov 03 2014 + + New features and extensions + + - New class Fl_Copy_Surface allows copying graphical data to the + clipboard in a cross-platform way (STR #3058). + - Support for pasting graphical data from the clipboard to a widget. + - New class Fl_Image_Surface allows drawing into an Fl_Image object. + - Methods Fl::add_clipboard_notify() and Fl::remove_clipboard_notify() + to get notifications whenever the clipboard changes (STR #2636). + - New method Fl_Window::wait_for_expose() (STR #3124, STR #3129). + - New bilinear scaling method for RGB images (STR #2869, STR #3062). + - New method Fl_Widget::top_window() (STR #2948). + - New method Fl_Widget::top_window_offset() (part of STR #2944). + - New Fl_Tree_Item methods label_x(), label_y(), label_w(), label_h(). + - New methods Fl::enable_im() and Fl::disable_im() to enable/disable + system Input Methods (IM). + - New methods Fl::add_system_handler() and Fl::remove_system_handler() + to intercept low level system events. + - New FLTK scheme "gleam" (STR #2672). + - New method Fl::is_scheme() to compare the current scheme name. + - New method to set custom icons for windows (STR #2816), + see Fl_Window::icon() for more info. + - New method to set any custom cursor, based on a Fl_RGB_Image object. + Also changed fallback cursors to use this method, so that fallback + cursors are handled in a platform independent manner (STR #2660). + - New ability to convert Fl_Pixmap to Fl_RGB_Image (STR #2659). + - Support for full screen windows over multiple monitors. + - New optional line numbers in Fl_Text_Display and options to control + line numbers and word wrapping (on/off) in example test/editor.cxx. + - On Linux/Unix, class Fl_Native_File_Chooser uses file dialogs from + the Gnome environment (provided by the libgtk dynamic library) if + available, and falls back to Fl_File_Chooser if not (STR #3088). + Use option Fl::OPTION_FNFC_USES_GTK to enable/disable this feature. + - New support for the Mac OS text input system that deals with character + composition and input of languages with large character sets (e.g. + Chinese and Japanese). This implementation has been reported to work + well for Chinese. Superficial testing suggests it's also operational + for Japanese. In-depth testing remains needed though. + + Other improvements + + - Many CMake improvements (e.g. STR #2962, 2977, 2994, 3045, 3055). + - Some autoconf, configure improvements. + - Removed 1024 bytes constraint in labels and browser lines (STR #2990). + - Mac OS version of Fl_Native_File_Chooser: when using filters in a + save file dialog, the output file extension gets changed when the + user modifies the output file type. + - Many Mac OS X improvements related to Fl_Sys_Menu_Bar. + - Improved Mac OS X keyboard handling of special keys or combinations. + - General Mac OS X improvements, incl. high resolution (Retina) + displays, and support up to Mac OS X 10.10. + - Documentation improvements and clarifications. + - Printing support improvements, including GL windows. + - Many improvements related to Fl_Tree (some of them only as ABI + breaking features, see below). + - Some static data has been made 'const' to improve memory usage + with shared libraries. + - Don't grab navkeys with modifiers (CTRL, ALT), as the application + may want them (STR #3104). + - Check compiler support of -fvisibility, -fvisibility-inlines-hidden, + and use it, if available. Reduces shared library size. + - Drag'n'drop behaves better now: if text is dropped in the widget it + comes from, then it works like cut and paste. + - Other improvements of DND handling when dragging text from other + applications, e.g. Firefox and Thunderbird. + - Windows message WM_QUIT is processed like SIGTERM, i.e. as a + request to terminate the program. + - Fluid no longer closes the code window when hitting ESC (STR #2997). + - Improved Fl_Widget::when() handling in Fl_Tabs (STR #2939). + - Improved support for more recent compilers (clang and gcc) that + issue more warnings, and fixed some 32-/64-bit compilation issues. + - Added method Fl_Window::clear_modal_states() to make it possible + to remove the modal or non-modal state from a window (STR #3123). + + Bug fixes + + - Fixed word selection dragging in text input (STR #3014). + - Fixed border padding for special cases (STR #3061, Windows only). + - Fixed crash if Fl_Window::flush() called while window not shown() + (STR #3028). + - Fixed segfault in fl_set_fonts_xft.cxx when loading fonts not named + as expected (STR #2976). + - Fixed a memory leak in font loading/allocation (STR #3069). + - Fixed minor memory leaks in handling/freeing of X11 objects. + - Fixed OS X fl_read_image() and Fl_Paged_Device::print_window_part() + when using a Retina display. + - Fixed MinGW build if configure didn't find strcasecmp() (STR #2994). + - Fixed access of protected member under Linux/Unix (STR #2903). + - Fixed various Mac specific OpenGL issues (STR #2944) + - Fixed PostScript printing with non-english locale (STR #3130). + - Fixed a regression in Fl_File_Chooser since FLTK 1.1.8: the + Enter key now selects the file again. + - Fixed a bug in Fl_Native_File_Chooser (Windows) for some file name + input filters (STR #3101). + - Fixed out-of-bounds memory access in Fl_Text_Display (STR #2730). + +1.3.3 ABI FEATURES + + To enable the following ABI features, put: + #define FLTK_ABI_VERSION 10303 + ..at the top of your FL/Enumerations.H and rebuild FLTK and your app. + + - Added Fl_Window::shape(const Fl_Image*) to create arbitrarily-shaped + windows + - Made Fl_Help_View::handle() public and Fl_Help_View::draw() protected + to enable inheritance and for consistency (STR #2834). + Note: both methods were private. + - Made Fl_Scroll::recalc_scrollbars() protected so that it can be used + in derived widgets to calculate scrollbar visibility and positions. + - Added Fl_Table::tab_cell_nav() for controlling Tab key navigation of table + - Added Fl_Tree::get_selected_items(), returns the selected items as an array + - Added Fl_Tree::item_draw_callback(), letting one define a custom draw + function for Fl_Tree_Item's. + - Fl_Tree: various related changes: + o Added horizontal scrollbar + o Separated draw() and tree size calculation + o Added new public methods: + > resize() -- uses optimized dim calc, avoids tree recalc + > next_item() -- added parameters: direction, visibility + > extend_selection() -- added parameters, improved algorithm + > calc_dimensions() -- calc tix/y/w/h, tox/y/w/h and scrollbars + > calc_tree() -- calc tree_w/tree_h + > recalc_tree() -- schedules calc_tree() + > first_visible_item(), last_visible_item(), next_visible_item() + > first_selected_item(), last_selected_item(), next_selected_item() + o Added protected variables: + > _tix/y/w/h -- tree widget 'inner' dimension + > _tox/y/w/h -- tree widget 'outer' dimension + > _tree_w,_tree_h -- entire tree hierarchy width/height + o Deprecated: + > item_clicked() -- use callback_item() instead + > first_visible() -- use first_visible_item() instead + > last_visible() -- use last_visible_item() instead + + - Fl_Tree_Item: various related changes: + o Added Fl_Tree ptr: needed for auto-recalc when item modified directly + o Added new methods tree(), recalc_tree() + o Added new ctor that accepts Fl_Tree* + o draw() parameters changed to include tree size calculations + o Deprecated: + > ctor using Fl_Tree_Prefs parameter (Fl_Tree* version better, + and must be used for 1.3.3 ABI features to work correctly) + > next_displayed() -- use next_visible() instead + > prev_displayed() -- use prev_visible() instead + - test/tree: added tests for newly added features + +CHANGES IN FLTK 1.3.2 RELEASED: Dec 12 2012 + + - Removed unnecessary drawing calls (STR #2898) + - Fixed regression in FLTK 1.3.1 for unbundled Mac OS FLTK applications + that did not appear in dock nor have a menu bar (STR #2890). + - Fl_Table::clear() now calls table->clear() for consistency. (STR #2889) + - Fixed Fl_Scroll widget that fails under Mac OS X 10.8 and Retina + display (STR #2887). + - Prevents scrollbars from drawing when widget is sized too small + to be visible (STR #2886). + - Documented how to make a Mac OS X FLTK application launchable + by dropping files on its icon. + - Fixed a Mac-specific issue that appeared with OS 10.8 (Mountain Lion): + long delay before opening when the application is started by dragging + a file on the application icon. + - Fixed use of PNG image from in-memory data (STR #2884). + - Added static Fl_RGB_Image::max_size(size_t) to limit the maximum + memory size allowed to RGB images (STR #2881). + +CHANGES IN FLTK 1.3.1 RELEASED: Nov 06 2012 + + - Fixed utf_strncasecmp and utf_strcasecmp + - Moved all inline constructors into source file to avoid bad DLLs + - Fixed Fl_Widget::copy_label() and Fl_Window::copy_label() when + called with the old label() (STR #2836) + - Fixed Fl_Input_::maximum_size() documentation and replace() method + to honor maximum_size() as number of allowed characters (STR #2747). + - Fixed a potential crash if Fl_Double_Window::flush() was called + before show() + - Fixed regression (in FLTK 1.3.0) that could clear a radio + button by using the keyboard (space or shortcut) (STR #2748) + - Fixed fl_pie() drawing too small on X11 (STR #2703) + - Fixed Fl_Menu issue with unusual menu flags (STR #2680) + - Fixed Windows DLL import of fl_xid() (STR #2670) + - Added Fl::screen_work_area() functions that compute the work area + of a screen. These functions improve the positioning of menus. + Changed Fl::x(), Fl::y(), Fl::w(), Fl::h() functions + to return the origin and size of the work area of the main screen + (STR #2695 + 2697) + - Created the FL_SCREEN_CONFIGURATION_CHANGED event that is triggered + when a screen is added, removed, moved or when resolution is changed + (STR #2600) + - Improved the description of page size and orientation by + Fl_PostScript_File_Device. + - Added support for horizontal wheel movement under X11 and Windows + Vista and above (STR #2644). + +1.3.1 ABI FEATURES + (To enable the following ABI features, put: #define FLTK_ABI_VERSION 10301 + at the top of your FL/Enumerations.H and rebuild FLTK and your app) + - Fl_Tree optimized to support large trees (eg. 100k items): + Added _next_sibling and _prev_sibling to Fl_Tree_Item class, + and support methods. + + +CHANGES IN FLTK 1.3.0 RELEASED: Jun 16 2011 + + New Features + + - Added UTF-8 Unicode support throughout FLTK and Fluid + - Added Fl_Tree widget for hierarchical views + - Added Fl_Table widget for widget layout + - Added Fl_Native_Filechooser as a widget and global options + - Added printing support (Fl_Printer class and friends) for native + printing on Windows and Mac OS X, PostScript printing on X11 + with CUPS or lp, and PostScript file output on all platforms + - Added basic Fl_Device abstraction layer for all drawing functions + - Moved OS X code base to the more modern Cocoa toolkit thanks + to the awesome work of Manolo Gouy (STR #2221) + + API and ABI Compatibility to FLTK 1.1.x + + - All strings are expected to be in UTF-8 Unicode encoding + - Replaced Fl_Scroll::position(int,int) with scroll_to(int,int) + to avoid overriding Fl_Widget::position(int,int) (STR #1303) + - Although FLTK 1.3 maintains source code compatibility as good + as possible, the binary interface changed considerably. + - Updated the bundled libpng to v1.5.1 (released Feb 3, 2011) + - Updated the bundled libjpeg to v8c (released Jan 16, 2011) + - Updated the bundled zlib to v1.2.5 (released Apr 19, 2010) + + API Enhancements and Changes + + - Changed font index to 32 bit + - Changed font size to 32 bit + - Changed widget coordinates to 32 bit + - Corrected const methods of Fl_Text_{Buffer|Display|Selection} + to be declared const, corrected an Fl_Text_Buffer attrib. typo + - All draw() methods of widgets are now protected (STR #2142). + - Changed Fl_Group::clip_children() to public (STR #2017) + - Changed socket library to winsock2 (ws2_32.dll) instead of + wsock32.dll for Windows. The dll is now loaded dynamically only + if/when needed. + - Changed hide() and show() methods. They are now virtual from + Fl_Widget. + - Added new label and image alignments (STR #2269) + - Added global UI options (STR #2471) + - Added class Fl_Widget_Tracker to simplify safe handling of widget + deletion in callbacks. This is used in Fl_Widget::do_callback() + to prevent accessing widgets after deletion in the callback. + - Added sorting to Fl_Browser_ (STR #2113) + - Added new method client_area() for easier positioning of children + in Fl_Tabs (STR #2480) + - Added interface to set color chooser mode (STR #2407) + - Added Fl_Menu_::find_item by callback + - Added loading jpeg images from memory + - Added support for shortcuts for Fl_Input_, Fl_Value_Input, and + Fl_Text_Display derived widgets (STR #1770) + - Added Fl_Menu_ methods: insert(), find_index(), clear_submenu() + - Hotspot behavior of fl_message() and other common dialogs is now + optional (STR #2561). + - Common dialogs like fl_message() and fl_ask() can now have a window + title (STR #2562). + + IDE Support and Command Line Build Options + + - FLTK now supports Apple Xcode 3, MS VisualC 2008, and + MS VisualC 2010. MS VisualC 6 support is maintained as a + compatibility base for VisualC.net, etc. . FLTK continues + to support configure/make and improved CMake build files. + - Added step by step README's for MSWindows, OS X, and four + Linux distros. + - Added "ide" subdirectory for all IDE support files + - Added template to generate new projects with Xcode. + - Added --enable-cairo and --enable-cairoext configure options. + - redesigned CMake files (STR #2317). + - The new configure option --enable-x11 (lowercase 'x') enables + Cygwin builds under Windows (with --enable-cygwin) to use X11 + instead of GDI drawing (STR #2147, #2183) and is ignored otherwise. + - Changed "fltk-config --post foo" to create an application + bundle rather than attaching a resource fork. + - Changed default for configure option --with-links for common + misspellings on case sensitive file systems like Unix/Linux. + The new default is --without-links; use --with-links on + Unix/Linux only if you need the links (e.g. lowercase '.h') + + Fluid + + - Added argument-less constructor in Fluid Widget Class + - Added jpeg support to Fluid image() element + - Added binary data type to Fluid + - Empty functions in Fluid no longer create an + implementation (STR #2259) + - Fixed internationalisation of menus using Fluid (STR #2246) + - Fixed menu item counting issue in Fluid (STR #2322) + - Fixed lost top item in Fluid's tree browser (STR #2233) + - Fixed Fluid dependency on X11 (STR #2261) + - Fixed Fluid textcolor output (STR #1992) + - Fixed wrong default value of Fl_Spinner in Fluid (STR #1991) + + Documentation + + - Added documentation for event delivery (STR #1983) + - Added Fl_Scroll::bbox() documentation (STR #1893) + - Updated documentation for Fl_Input_ + - Updated Copyright dates to 2010 (STR #2036) + - Updated mirror sites in documentation (STR #2220) + - Fixed documentation for Fl_Progress (STR #2209) + - Fixed documentation (added missing COMCTL32.LIB dependency) + + Other Improvements + + - Added drag'n'drop support for Fl_Text_* + - Added visual feedback for button shortcuts (STR #2372) + - Added callback when double-clicking file in a file chooser + (STR #2346) + - Added alternative Xft font names (STR #2215) + - Added mouse!=0 check in Fl_Glut_Window::handle (STR #2381) + - Added indexing to Fl_Preferences + - Added OS X cursor control to Fl_Input (STR #2169) + - Added menu shortcut alignment for OS X + - Added drop box to UTF-8 test that will show the UTF-8 encoding + for the first dropped character + - Added flexible gap size for text buffer (STR #2046) + - Added clarification to Fl_GL_Window mode function (STR #1945) + - Added alternative text input awareness on OS X + - Improved handling of composed keys in OS X 10.5 and up + - Improved stability of fl_read_image (STR #2021) + - Much faster fl_read_image() for Windows (STR #2387). + - Improved support for faulty X11 clients (STR #2385) + - Integrated default menu into Demo test app + - Replaced _WIN32 symbols that had come with UTF-8 and the + new Fl_Table widget with WIN32 + - Widgets now remove stale entries from the default callback + queue when they are deleted (STR #2302) + - Managing all Widget flags in a single location now (STR #2161) + - File chooser preview now recognizes UTF-8 encoded + text files (STR #2218) + - Setting a default font for Xft (STR #2216) + - Restructured the unittest application + - Fl_Preferences.H now doesn't include windows.h any more + (Windows only, STR #2173). + - Fl_Window::draw() now doesn't reset its x/y-coordinates to 0 + anymore before drawing itself and its children. + - Fl_Help_View handles HTML2 font color specification (STR #890) + - Widgets now remove themselves from their parent group (if any), + when destroyed (STR #1894) + - Changed Fl_Group and Fl_Scroll to resize themselves before + resizing their children (STR #2032) + + Bug Fixes + + - Fixed potential crash in fl_xid() on Linux (STR #2635) + - Fixed keyboard navigation in fl_choice() (STR #2591) + - Fixed alpha blending under X11 when line data size != 0 (STR #2606) + - Fixed Fl_Tabs selection border drawing, if tabs are at the bottom + of the widget (STR #2480) + - Fixed Compiling with mingw-w64 (STR #2308). + - Fixed crashes when detecting illegal UTF-8 sequences + in Fl_Text_* widgets (STR #2348) + - Fixed Fl_Text_Display Tabulator calculations (STR #2450) + - Fixed file access code to use UTF-8 strings (STR #2440) + - Fixed ARM Unicode cross compilation issue (STR #2432) + - Fixed xclass support for Fl_Window (STR #2053) + - Fixed Caps Lock handling in X11/XIM (STR #2366) + - Fixed handling of missing fonts in Xft (STR #2355) + - Fixed OpenGL hide/show issue in OS X (STR #2260) + - Fixed File Chooser preview hang if a device was choosen + - Fixed blinking of selection when the mouse was dragged + outside of the Fl_Text_* widget + - Fixed Unicode support for Fl_Text_* widgets + - Fixed menu and shortcut handling (STR #2243) + - Fixed fltk-config to give --libs on one line (STR #2408) + - Fixed outside label redraw damage areas (STR #2436) + - Fixed compile errors when HAVE_LIBJPEG was not defined + (STR #2382) + - Fixed special handling for ISO back-tab keycode (STR #2369) + - Fixed static allocation in Fl_Tabs (STR #2370) + - Fixed Fl_Widget::measure_label() to const (STR #2406) + - Fixed unbalanced Windows OleInitialize/OleUnitialize calls + when loading/unloading the FLTK dll (STR #2417) + - Fixed X11/XDBE double buffering (STR #2152, #2197) + - Fixed menu and tooltip window animation bug under X11 (compiz) + by setting an appropriate window type (STR #2082) + - Fixed max. fd calculation, if USE_POLL is enabled (STR #2324) + - Fixed clipping for offscreen rendering (OSX, STR #2330) + - Fixed possibility of wrong flags() in Fl_Window::iconlabel() + (STR #2161) + - Fixed Scrollbar events when max is less than min (STR #2283) + - Fixed crash in test/Editor when freeing buffer + too soon (STR #2294) + - Fixed Fl_Preferences Cygwin wide character bug (STR #2164) + - Fixed sorting in Fl_Browser - last item would not + be sorted (STR #2300) + - Fixed window levels in OS X Cocoa (STR #2316) + - Fixed a buffer overflow in fl_utf8from_mb() (STR #2279) + - Fixed a Windows GDI leak when testing alpha blending capabilities + - Fixed crashes for recursive common dialogs (STR #1986, #2150) + - Fixed a name conflict with new (VS 2008 Express) winsock2.h + versions and another conflict that produced compile errors + with VS 2008 Express (STR #2301) + - Fixed all color related calls to Fl_Color type (STR #2208) + - Fixed Fl_Choice contrast with light-on-dark settings (STR #2219) + - Fixed X server "lock", if a modal dialog window is opened + while a menu is active (STR #1986) + - Fixed Windows compile bug with "#define USE_COLORMAP 0" + (STR #2241) + - Fixed glibc 2.10 compiler problems (Fedora 11 and others) + with scandir() and strchr() (STR #2222) + - Fixed OpenGL shared context handling (STR #2135) + - Fixed gray-scale images with alpha channel (STR #2105) + - Fixed unexpected shortcut behavior for Win32 (STR #2199) + - Fixed fl_draw_image to obey the alpha channel (OS X only) + - Fix for multiple popups, when dragging and calling fl_alert() + and friends from the callback (STR #2159) + - Fixed control key keycodes with modifiers on OS X + - Fixed bad system menu handling in OS X (STR #2153) + - Fixed File Input mouse pointer dragging (STR #2181) + - Fixed 'del' keycode on OS X + - Fixed OS X support for sending and receiving dnd data as UTF-8 + - Fixed Copy/Paste operations with UTF-8, UTF-16 support and + fltk1.1 compatibility. (STR #2104, 2121). + - Fixed fl_set_spot() for Windows (STR #2101) + - Fixed callback that would not be called when shortcut was used + with radio and toggle buttons in default FL_RELEASE mode. + - Fixed a problem with TrackMouseEvent() (Windows only) that would + generate wrong FL_LEAVE events with subwindows. TrackMouseEvent + is now enabled by default (it was disabled for GNU compilers). + It can be disabled by defining NO_TRACK_MOUSE. + Improved test/subwindow.cxx (STR #2079) + - Fixed menu position close to screen border (STR #2057) + - Fixed adding an idle handler during a draw() call (STR #1950) + - Fixed first modifier key event (STR #1952) + - Fixed Fl_Scroll inside Fl_Scroll (STR #265) + + Removed Features + + - Removed Watcom compiler support because it was introduced in + 1.1.6 as a partial solution and never completed. + - Removed an XForms compatibility "feature" that prevented the + down array of Fl_Menu_Button from drawing (STR #2141). + - Removed support for gcc 2.x (or older) + - Removed redundant Fl_Group casts CHANGES IN FLTK 1.1 - See CHANGES_1.1.txt + See CHANGES_1.1.txt CHANGES IN FLTK 1.0 - See CHANGES_1.0.txt + See CHANGES_1.0.txt diff --git a/CMake/Android/abi-version.cmake.in b/CMake/Android/abi-version.cmake.in index d9fe5a341..5200197a9 100644 --- a/CMake/Android/abi-version.cmake.in +++ b/CMake/Android/abi-version.cmake.in @@ -1,6 +1,4 @@ /* - * "$Id$" - * * Configuration file for the Fast Light Tool Kit (FLTK). * * Copyright 1998-2020 by Bill Spitzak and others. @@ -11,9 +9,9 @@ * * https://www.fltk.org/COPYING.php * - * Please report all bugs and problems on the following page: + * Please see the following page on how to report bugs and issues: * - * https://www.fltk.org/str.php + * https://www.fltk.org/bugs.php */ /* @@ -25,7 +23,3 @@ /* define FL_ABI_VERSION as 10x0y for FLTK ABI version 1.x.y */ /* #undef FL_ABI_VERSION */ - -/* - * End of "$Id$". - */ diff --git a/CMake/FLTKConfig.cmake.in b/CMake/FLTKConfig.cmake.in index 2fafb4b7a..c93f5f004 100644 --- a/CMake/FLTKConfig.cmake.in +++ b/CMake/FLTKConfig.cmake.in @@ -36,7 +36,3 @@ if (CMAKE_CROSSCOMPILING) else () set (FLTK_FLUID_EXECUTABLE fluid) endif (CMAKE_CROSSCOMPILING) - -# -# End of file -# diff --git a/CMake/FindSDL2.cmake b/CMake/FindSDL2.cmake index 026dc34e7..28cb8c603 100644 --- a/CMake/FindSDL2.cmake +++ b/CMake/FindSDL2.cmake @@ -68,46 +68,46 @@ message("") SET(SDL2_SEARCH_PATHS - ~/Library/Frameworks - /Library/Frameworks - /usr/local - /usr - /sw # Fink - /opt/local # DarwinPorts - /opt/csw # Blastwave - /opt - ${SDL2_PATH} + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + ${SDL2_PATH} ) FIND_PATH(SDL2_INCLUDE_DIR SDL.h - HINTS - $ENV{SDL2DIR} - PATH_SUFFIXES include/SDL2 include - PATHS ${SDL2_SEARCH_PATHS} + HINTS + $ENV{SDL2DIR} + PATH_SUFFIXES include/SDL2 include + PATHS ${SDL2_SEARCH_PATHS} ) FIND_LIBRARY(SDL2_LIBRARY_TEMP - NAMES SDL2 - HINTS - $ENV{SDL2DIR} - PATH_SUFFIXES lib64 lib - PATHS ${SDL2_SEARCH_PATHS} + NAMES SDL2 + HINTS + $ENV{SDL2DIR} + PATH_SUFFIXES lib64 lib + PATHS ${SDL2_SEARCH_PATHS} ) IF(NOT SDL2_BUILDING_LIBRARY) - IF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework") - # Non-OS X framework versions expect you to also dynamically link to - # SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms - # seem to provide SDL2main for compatibility even though they don't - # necessarily need it. - FIND_LIBRARY(SDL2MAIN_LIBRARY - NAMES SDL2main - HINTS - $ENV{SDL2DIR} - PATH_SUFFIXES lib64 lib - PATHS ${SDL2_SEARCH_PATHS} - ) - ENDIF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework") + IF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework") + # Non-OS X framework versions expect you to also dynamically link to + # SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms + # seem to provide SDL2main for compatibility even though they don't + # necessarily need it. + FIND_LIBRARY(SDL2MAIN_LIBRARY + NAMES SDL2main + HINTS + $ENV{SDL2DIR} + PATH_SUFFIXES lib64 lib + PATHS ${SDL2_SEARCH_PATHS} + ) + ENDIF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework") ENDIF(NOT SDL2_BUILDING_LIBRARY) # SDL2 may require threads on your system. @@ -115,50 +115,50 @@ ENDIF(NOT SDL2_BUILDING_LIBRARY) # frameworks may already provide it. # But for non-OSX systems, I will use the CMake Threads package. IF(NOT APPLE) - FIND_PACKAGE(Threads) + FIND_PACKAGE(Threads) ENDIF(NOT APPLE) # MinGW needs an additional library, mwindows # It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -lmwindows # (Actually on second look, I think it only needs one of the m* libraries.) IF(MINGW) - SET(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW") + SET(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW") ENDIF(MINGW) IF(SDL2_LIBRARY_TEMP) - # For SDL2main - IF(NOT SDL2_BUILDING_LIBRARY) - IF(SDL2MAIN_LIBRARY) - SET(SDL2_LIBRARY_TEMP ${SDL2MAIN_LIBRARY} ${SDL2_LIBRARY_TEMP}) - ENDIF(SDL2MAIN_LIBRARY) - ENDIF(NOT SDL2_BUILDING_LIBRARY) + # For SDL2main + IF(NOT SDL2_BUILDING_LIBRARY) + IF(SDL2MAIN_LIBRARY) + SET(SDL2_LIBRARY_TEMP ${SDL2MAIN_LIBRARY} ${SDL2_LIBRARY_TEMP}) + ENDIF(SDL2MAIN_LIBRARY) + ENDIF(NOT SDL2_BUILDING_LIBRARY) - # For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa. - # CMake doesn't display the -framework Cocoa string in the UI even - # though it actually is there if I modify a pre-used variable. - # I think it has something to do with the CACHE STRING. - # So I use a temporary variable until the end so I can set the - # "real" variable in one-shot. - IF(APPLE) - SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} "-framework Cocoa") - ENDIF(APPLE) + # For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa. + # CMake doesn't display the -framework Cocoa string in the UI even + # though it actually is there if I modify a pre-used variable. + # I think it has something to do with the CACHE STRING. + # So I use a temporary variable until the end so I can set the + # "real" variable in one-shot. + IF(APPLE) + SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} "-framework Cocoa") + ENDIF(APPLE) - # For threads, as mentioned Apple doesn't need this. - # In fact, there seems to be a problem if I used the Threads package - # and try using this line, so I'm just skipping it entirely for OS X. - IF(NOT APPLE) - SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} ${CMAKE_THREAD_LIBS_INIT}) - ENDIF(NOT APPLE) + # For threads, as mentioned Apple doesn't need this. + # In fact, there seems to be a problem if I used the Threads package + # and try using this line, so I'm just skipping it entirely for OS X. + IF(NOT APPLE) + SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} ${CMAKE_THREAD_LIBS_INIT}) + ENDIF(NOT APPLE) - # For MinGW library - IF(MINGW) - SET(SDL2_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL2_LIBRARY_TEMP}) - ENDIF(MINGW) + # For MinGW library + IF(MINGW) + SET(SDL2_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL2_LIBRARY_TEMP}) + ENDIF(MINGW) - # Set the final string here so the GUI reflects the final state. - SET(SDL2_LIBRARY ${SDL2_LIBRARY_TEMP} CACHE STRING "Where the SDL2 Library can be found") - # Set the temp variable to INTERNAL so it is not seen in the CMake GUI - SET(SDL2_LIBRARY_TEMP "${SDL2_LIBRARY_TEMP}" CACHE INTERNAL "") + # Set the final string here so the GUI reflects the final state. + SET(SDL2_LIBRARY ${SDL2_LIBRARY_TEMP} CACHE STRING "Where the SDL2 Library can be found") + # Set the temp variable to INTERNAL so it is not seen in the CMake GUI + SET(SDL2_LIBRARY_TEMP "${SDL2_LIBRARY_TEMP}" CACHE INTERNAL "") ENDIF(SDL2_LIBRARY_TEMP) message("") diff --git a/CMake/UseFLTK.cmake.in b/CMake/UseFLTK.cmake.in index 20ecb85d6..f9e9e0b6e 100644 --- a/CMake/UseFLTK.cmake.in +++ b/CMake/UseFLTK.cmake.in @@ -13,7 +13,3 @@ message(AUTHOR_WARNING * or later. Please use 'include_directories(\${FLTK_INCLUDE_DIRS})' or * 'target_include_directories( PUBLIC|PRIVATE \${FLTK_INCLUDE_DIRS})' * instead of 'include(\${FLTK_USE_FILE})'.") - -# -# End of file -# diff --git a/CMake/android.cmake b/CMake/android.cmake index 7255af3fe..b5db954cf 100644 --- a/CMake/android.cmake +++ b/CMake/android.cmake @@ -1,6 +1,4 @@ # -# "$Id$" -# # android.cmake to build the FLTK AndroidStudio project using CMake # Written by Matthias Melcher # @@ -10,11 +8,11 @@ # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # -# http://www.fltk.org/COPYING.php +# https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# http://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # # all target modules will be added here later diff --git a/CMake/export.cmake b/CMake/export.cmake index fecd1bd22..d6c07564a 100644 --- a/CMake/export.cmake +++ b/CMake/export.cmake @@ -1,6 +1,4 @@ # -# "$Id$" -# # Main CMakeLists.txt to build the FLTK project using CMake (www.cmake.org) # Written by Michael Surette # @@ -10,11 +8,11 @@ # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # -# http://www.fltk.org/COPYING.php +# https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# http://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # ####################################################################### @@ -79,7 +77,7 @@ configure_file( if (UNIX) execute_process(COMMAND chmod 755 fltk-config - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" ) endif (UNIX) diff --git a/CMake/install.cmake b/CMake/install.cmake index cb4f8fe71..0ab8e6073 100644 --- a/CMake/install.cmake +++ b/CMake/install.cmake @@ -1,6 +1,4 @@ # -# "$Id$" -# # Main CMakeLists.txt to build the FLTK project using CMake (www.cmake.org) # Written by Michael Surette # @@ -10,11 +8,11 @@ # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # -# http://www.fltk.org/COPYING.php +# https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# http://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # ####################################################################### diff --git a/CMake/macros.cmake b/CMake/macros.cmake index 4d5d4581d..b91b80b89 100644 --- a/CMake/macros.cmake +++ b/CMake/macros.cmake @@ -1,6 +1,4 @@ # -# "$Id$" -# # Macros used by the CMake build system for the Fast Light Tool Kit (FLTK). # Written by Michael Surette # @@ -10,11 +8,11 @@ # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # -# http://www.fltk.org/COPYING.php +# https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# http://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # ####################################################################### @@ -59,9 +57,9 @@ macro(FL_ADD_LIBRARY LIBNAME LIBTYPE LIBFILES) endif (${LIBTYPE} STREQUAL "SHARED") if (MSVC) - set (DEBUG_OUTPUT_NAME "${LIBNAME}d") + set (DEBUG_OUTPUT_NAME "${LIBNAME}d") else () - set (DEBUG_OUTPUT_NAME "${LIBNAME}") + set (DEBUG_OUTPUT_NAME "${LIBNAME}") endif (MSVC) add_library(${TARGET_NAME} ${LIBTYPE} ${LIBFILES}) @@ -72,33 +70,33 @@ macro(FL_ADD_LIBRARY LIBNAME LIBTYPE LIBFILES) DEBUG_OUTPUT_NAME ${DEBUG_OUTPUT_NAME} CLEAN_DIRECT_OUTPUT TRUE COMPILE_DEFINITIONS "FL_LIBRARY" - ) + ) if (${LIBTYPE} STREQUAL "SHARED") - set_target_properties(${TARGET_NAME} - PROPERTIES - OUTPUT_NAME ${LIBNAME} - DEBUG_OUTPUT_NAME ${DEBUG_OUTPUT_NAME} - VERSION ${FLTK_VERSION_FULL} - SOVERSION ${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR} - PREFIX "lib" # for MSVC static/shared coexistence - ) + set_target_properties(${TARGET_NAME} + PROPERTIES + OUTPUT_NAME ${LIBNAME} + DEBUG_OUTPUT_NAME ${DEBUG_OUTPUT_NAME} + VERSION ${FLTK_VERSION_FULL} + SOVERSION ${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR} + PREFIX "lib" # for MSVC static/shared coexistence + ) endif (${LIBTYPE} STREQUAL "SHARED") if (MSVC) - if (OPTION_LARGE_FILE) - set_target_properties(${TARGET_NAME} - PROPERTIES - LINK_FLAGS /LARGEADDRESSAWARE - ) - endif (OPTION_LARGE_FILE) + if (OPTION_LARGE_FILE) + set_target_properties(${TARGET_NAME} + PROPERTIES + LINK_FLAGS /LARGEADDRESSAWARE + ) + endif (OPTION_LARGE_FILE) - if (${LIBTYPE} STREQUAL "SHARED") - set_target_properties(${TARGET_NAME} - PROPERTIES - COMPILE_DEFINITIONS "FL_DLL" - ) - endif (${LIBTYPE} STREQUAL "SHARED") + if (${LIBTYPE} STREQUAL "SHARED") + set_target_properties(${TARGET_NAME} + PROPERTIES + COMPILE_DEFINITIONS "FL_DLL" + ) + endif (${LIBTYPE} STREQUAL "SHARED") endif (MSVC) install(TARGETS ${TARGET_NAME} @@ -106,7 +104,7 @@ macro(FL_ADD_LIBRARY LIBNAME LIBTYPE LIBFILES) RUNTIME DESTINATION ${FLTK_BINDIR} LIBRARY DESTINATION ${FLTK_LIBDIR} ARCHIVE DESTINATION ${FLTK_LIBDIR} - ) + ) list(APPEND FLTK_LIBRARIES "${TARGET_NAME}") set (FLTK_LIBRARIES ${FLTK_LIBRARIES} PARENT_SCOPE) @@ -119,14 +117,14 @@ function(FLTK_RUN_FLUID TARGET SOURCES) set (CXX_FILES) foreach(src ${SOURCES}) if ("${src}" MATCHES "\\.fl$") - string(REGEX REPLACE "(.*).fl" \\1 basename ${src}) - add_custom_command( - OUTPUT "${basename}.cxx" "${basename}.h" - COMMAND fluid -c ${CMAKE_CURRENT_SOURCE_DIR}/${src} - DEPENDS ${src} - MAIN_DEPENDENCY ${src} - ) - list(APPEND CXX_FILES "${basename}.cxx") + string(REGEX REPLACE "(.*).fl" \\1 basename ${src}) + add_custom_command( + OUTPUT "${basename}.cxx" "${basename}.h" + COMMAND fluid -c ${CMAKE_CURRENT_SOURCE_DIR}/${src} + DEPENDS ${src} + MAIN_DEPENDENCY ${src} + ) + list(APPEND CXX_FILES "${basename}.cxx") endif ("${src}" MATCHES "\\.fl$") set (${TARGET} ${CXX_FILES} PARENT_SCOPE) endforeach(src) @@ -135,11 +133,11 @@ endfunction(FLTK_RUN_FLUID TARGET SOURCES) ####################################################################### macro(CREATE_EXAMPLE NAME SOURCES LIBRARIES) - set (srcs) # source files - set (flsrcs) # fluid source files + set (srcs) # source files + set (flsrcs) # fluid source files - set (tname ${NAME}) # target name - set (oname ${NAME}) # output (executable) name + set (tname ${NAME}) # target name + set (oname ${NAME}) # output (executable) name foreach(src ${SOURCES}) if ("${src}" MATCHES "\\.fl$") @@ -151,7 +149,7 @@ macro(CREATE_EXAMPLE NAME SOURCES LIBRARIES) set (FLUID_SOURCES) if (flsrcs) - FLTK_RUN_FLUID(FLUID_SOURCES "${flsrcs}") + FLTK_RUN_FLUID(FLUID_SOURCES "${flsrcs}") endif (flsrcs) if (APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL)) diff --git a/CMake/options.cmake b/CMake/options.cmake index 701280806..63412ebc3 100644 --- a/CMake/options.cmake +++ b/CMake/options.cmake @@ -1,6 +1,4 @@ # -# "$Id$" -# # Main CMakeLists.txt to build the FLTK project using CMake (www.cmake.org) # Written by Michael Surette # @@ -12,9 +10,9 @@ # # https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# https://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # set (DEBUG_OPTIONS_CMAKE 0) @@ -471,7 +469,7 @@ if(X11_Xft_FOUND AND OPTION_USE_PANGO) set(USE_PANGO TRUE) list(APPEND FLTK_LDLIBS -lpango-1.0 -lpangoxft-1.0 -lgobject-2.0) else(PANGOXFT_FOUND) - + #this covers Debian, Ubuntu, FreeBSD, NetBSD, Darwin if(APPLE AND OPTION_APPLE_X11) find_file(FINK_PREFIX NAMES /opt/sw /sw) diff --git a/CMake/resources.cmake b/CMake/resources.cmake index 3676d3bc0..4539f6f87 100644 --- a/CMake/resources.cmake +++ b/CMake/resources.cmake @@ -1,6 +1,4 @@ # -# "$Id$" -# # Main CMakeLists.txt to build the FLTK project using CMake (www.cmake.org) # Written by Michael Surette # @@ -10,11 +8,11 @@ # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # -# http://www.fltk.org/COPYING.php +# https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# http://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # ####################################################################### @@ -208,31 +206,31 @@ if(HAVE_DLFCN_H) endif(HAVE_DLFCN_H) set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_DL_LIBS}) -CHECK_FUNCTION_EXISTS(dlsym HAVE_DLSYM) +CHECK_FUNCTION_EXISTS(dlsym HAVE_DLSYM) set(CMAKE_REQUIRED_LIBRARIES) -CHECK_FUNCTION_EXISTS(localeconv HAVE_LOCALECONV) +CHECK_FUNCTION_EXISTS(localeconv HAVE_LOCALECONV) if(LIB_png) set(CMAKE_REQUIRED_LIBRARIES ${LIB_png}) - CHECK_FUNCTION_EXISTS(png_get_valid HAVE_PNG_GET_VALID) - CHECK_FUNCTION_EXISTS(png_set_tRNS_to_alpha HAVE_PNG_SET_TRNS_TO_ALPHA) + CHECK_FUNCTION_EXISTS(png_get_valid HAVE_PNG_GET_VALID) + CHECK_FUNCTION_EXISTS(png_set_tRNS_to_alpha HAVE_PNG_SET_TRNS_TO_ALPHA) set(CMAKE_REQUIRED_LIBRARIES) endif(LIB_png) -CHECK_FUNCTION_EXISTS(scandir HAVE_SCANDIR) -CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF) +CHECK_FUNCTION_EXISTS(scandir HAVE_SCANDIR) +CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF) # not really true but we convert strcasecmp calls to _stricmp calls in flstring.h if(MSVC) set(HAVE_STRCASECMP 1) endif(MSVC) -CHECK_FUNCTION_EXISTS(strcasecmp HAVE_STRCASECMP) +CHECK_FUNCTION_EXISTS(strcasecmp HAVE_STRCASECMP) -CHECK_FUNCTION_EXISTS(strlcat HAVE_STRLCAT) -CHECK_FUNCTION_EXISTS(strlcpy HAVE_STRLCPY) -CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF) +CHECK_FUNCTION_EXISTS(strlcat HAVE_STRLCAT) +CHECK_FUNCTION_EXISTS(strlcpy HAVE_STRLCPY) +CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF) if(HAVE_SCANDIR AND NOT HAVE_SCANDIR_POSIX) set(MSG "POSIX compatible scandir") @@ -285,7 +283,3 @@ endif (DOXYGEN_FOUND) # Cleanup: unset local variables unset (CMAKE_REQUIRED_QUIET) - -# -# End of "$Id$". -# diff --git a/CMake/setup.cmake b/CMake/setup.cmake index 8a261bc97..8935ed2bf 100644 --- a/CMake/setup.cmake +++ b/CMake/setup.cmake @@ -1,6 +1,4 @@ # -# "$Id$" -# # CMakeLists.txt to build the FLTK project using CMake (www.cmake.org) # Written by Michael Surette # @@ -10,11 +8,11 @@ # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # -# http://www.fltk.org/COPYING.php +# https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# http://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # ####################################################################### diff --git a/CMake/variables.cmake b/CMake/variables.cmake index 4edf8b749..ebafe7b10 100644 --- a/CMake/variables.cmake +++ b/CMake/variables.cmake @@ -1,6 +1,4 @@ # -# "$Id$" -# # This file sets variables for common use in export.cmake and install.cmake # Written by Michael Surette # @@ -10,11 +8,11 @@ # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # -# http://www.fltk.org/COPYING.php +# https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# http://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # ####################################################################### diff --git a/CMakeLists.txt b/CMakeLists.txt index e5a1e7fa1..172a949d0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,4 @@ # -# "$Id$" -# # Main CMakeLists.txt to build the FLTK project using CMake (www.cmake.org) # Written by Michael Surette # @@ -10,11 +8,11 @@ # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # -# http://www.fltk.org/COPYING.php +# https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# http://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # # Prevent annoying warning under Cygwin; this must be before project(). diff --git a/COPYING b/COPYING index 954207522..de7016947 100644 --- a/COPYING +++ b/COPYING @@ -13,8 +13,8 @@ exceptions: The authors do request that such modifications be contributed to the FLTK project - send all contributions through the "Software Trouble Report" on the following page: - - http://www.fltk.org/str.php + + https://www.fltk.org/bugs.php 2. Widgets that are subclassed from FLTK widgets do not constitute a derivative work. @@ -42,7 +42,7 @@ exceptions: documentation to satisfy this requirement: [program/widget] is based in part on the work of - the FLTK project (http://www.fltk.org). + the FLTK project (https://www.fltk.org). ----------------------------------------------------------------------- diff --git a/CREDITS.txt b/CREDITS.txt index 28af320b3..440be5d18 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1,71 +1,71 @@ CREDITS.txt - Fast Light Tool Kit (FLTK) Version 1.4.0 ------------------------------------------------------ - This file lists the people responsible for the toolkit you are - now using. If you've been looking for your name in lights - but we've forgotten you here, please use the report on the - following page, and we'll update this file accordingly: + This file lists the people responsible for the toolkit you are + now using. If you've been looking for your name in lights + but we've forgotten you here, please use the report on the + following page, and we'll update this file accordingly: - https://www.fltk.org/str.php + https://www.fltk.org/bugs.php CORE DEVELOPERS - The following people do the day-to-day development of FLTK: + The following people do the day-to-day development of FLTK: - Greg Ercolano - Manolo Gouy - Lauri Kasanen - Ian MacArthur - Pierre Ossman - Albrecht Schlosser + Greg Ercolano + Manolo Gouy + Lauri Kasanen + Ian MacArthur + Pierre Ossman + Albrecht Schlosser - These people have previously been active developers of FLTK: + These people have previously been active developers of FLTK: - Fabien Costantini (fabien67@users.sf.net) - Craig P. Earls - Curtis Edwards (trilec@users.sourceforge.net) - Gustavo Hime (hime@users.sourceforge.net) - Talbot Hughes - Robert Kesterson (robertk@users.sourceforge.net) - Matthias Melcher (mm@robowerk.com) - James Dean Palmer (jamespalmer@users.sourceforge.net) - Vincent Penne (vincentp@users.sourceforge.net) - Bill Spitzak (spitzak@users.sourceforge.net) - Michael Sweet (easysw@users.sourceforge.net) - Carl Thompson (clip@users.sourceforge.net) - Nafees Bin Zafar (nafees@users.sourceforge.net) + Fabien Costantini (fabien67@users.sf.net) + Craig P. Earls + Curtis Edwards (trilec@users.sourceforge.net) + Gustavo Hime (hime@users.sourceforge.net) + Talbot Hughes + Robert Kesterson (robertk@users.sourceforge.net) + Matthias Melcher (mm@robowerk.com) + James Dean Palmer (jamespalmer@users.sourceforge.net) + Vincent Penne (vincentp@users.sourceforge.net) + Bill Spitzak (spitzak@users.sourceforge.net) + Michael Sweet (easysw@users.sourceforge.net) + Carl Thompson (clip@users.sourceforge.net) + Nafees Bin Zafar (nafees@users.sourceforge.net) OTHER CONTRIBUTORS - The following people have contributed fixes or enhancements - for FLTK: + The following people have contributed fixes or enhancements + for FLTK: - Laszlo Z. Antal (LZA) - Teun Burgers - Paul Chambers - Stephen Davies - Yuri D'Elia - Domingo Alvarez Duarte - Yuri Fedorchenko - George Garvey - Duncan Gibson - Mikael Hultgren - Stuart Levy - Jean-Marc Lienher (OksiD) - Howard Lightstone - Mike Lindner - Alexander Mai - Alexander Rabi - James Roth - Ivan Nieto (Mr.Satan) - Jamie Snape - Andrea Suatoni - Michael Surette - Paul Sydney - Aaron Ucko - Emanuele Vicentini - Josef Vitu - Jim Wilson - Ken Yarnall + Laszlo Z. Antal (LZA) + Teun Burgers + Paul Chambers + Stephen Davies + Yuri D'Elia + Domingo Alvarez Duarte + Yuri Fedorchenko + George Garvey + Duncan Gibson + Mikael Hultgren + Stuart Levy + Jean-Marc Lienher (OksiD) + Howard Lightstone + Mike Lindner + Alexander Mai + Alexander Rabi + James Roth + Ivan Nieto (Mr.Satan) + Jamie Snape + Andrea Suatoni + Michael Surette + Paul Sydney + Aaron Ucko + Emanuele Vicentini + Josef Vitu + Jim Wilson + Ken Yarnall diff --git a/DartConfig.cmake b/DartConfig.cmake index 90e1ff663..cbf7adb0a 100644 --- a/DartConfig.cmake +++ b/DartConfig.cmake @@ -9,15 +9,15 @@ SET (DROP_LOCATION "/cgi-bin/HTTPUploadDartFile.cgi") SET (TRIGGER_SITE "http://${DROP_SITE}/cgi-bin/Submit-Fltk-TestingResults.pl") # Project Home Page -SET (PROJECT_URL "http://www.fltk.org") +SET (PROJECT_URL "https://www.fltk.org") -# Dart server configuration +# Dart server configuration SET (ROLLUP_URL "http://${DROP_SITE}/cgi-bin/fltk-rollup-dashboard.sh") SET (CVS_WEB_URL "http://cvs.sourceforge.net/viewcvs.py/fltk/fltk/") SET (CVS_WEB_CVSROOT "fltk") SET (USE_GNATS "On") -SET (GNATS_WEB_URL "http://www.fltk.org/str.php") +SET (GNATS_WEB_URL "https://www.fltk.org/bugs.php") # Continuous email delivery variables SET (CONTINUOUS_FROM "fltk-dashboard@public.kitware.com") diff --git a/FL/Enumerations.H b/FL/Enumerations.H index cc718aa34..fad9dd964 100644 --- a/FL/Enumerations.H +++ b/FL/Enumerations.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Enumerations for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2020 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /** \file @@ -51,21 +49,21 @@ The major release version of this FLTK library. \see FL_VERSION */ -#define FL_MAJOR_VERSION 1 +#define FL_MAJOR_VERSION 1 /** The minor release version for this library. FLTK remains mostly source-code compatible between minor version changes. */ -#define FL_MINOR_VERSION 4 +#define FL_MINOR_VERSION 4 /** The patch version for this library. FLTK remains binary compatible between patches. */ -#define FL_PATCH_VERSION 0 +#define FL_PATCH_VERSION 0 /** The FLTK version number as a \em double. @@ -88,9 +86,9 @@ \see FL_API_VERSION \see Fl::api_version() */ -#define FL_VERSION ( (double)FL_MAJOR_VERSION + \ - (double)FL_MINOR_VERSION * 0.01 + \ - (double)FL_PATCH_VERSION * 0.0001 ) +#define FL_VERSION ( (double)FL_MAJOR_VERSION + \ + (double)FL_MINOR_VERSION * 0.01 + \ + (double)FL_PATCH_VERSION * 0.0001 ) /** The FLTK API version number as an \em int. @@ -127,7 +125,7 @@ \verbatim FLTK Version FL_API_VERSION FL_ABI_VERSION FL_VERSION (deprecated) 1.3.0 10300 10300 1.0300 - 1.3.4 10304 10300 1.0304 + 1.3.4 10304 10300 1.0304 \endverbatim Version 1.2.3 is actually stored as 10203 to allow for more than 9 @@ -152,7 +150,7 @@ This is done to prevent users from defining an illegal ABI version. Rule: FL_MAJOR_VERSION * 10000 + FL_MINOR_VERSION * 100 - <= FL_ABI_VERSION <= FL_API_VERSION. + <= FL_ABI_VERSION <= FL_API_VERSION. Example (FLTK 1.3.4): @@ -174,19 +172,19 @@ #endif -/*@}*/ // group: Version Numbers +/*@}*/ // group: Version Numbers /** 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. - - Events are identified by the integer argument passed to the - Fl_Widget::handle() virtual method. Other information about the - most recent event is stored in static locations and acquired by - calling the Fl::event_*() methods. This static information remains - valid until the next event is read from the window system, so it + + Events are identified by the integer argument passed to the + Fl_Widget::handle() virtual method. Other information about the + most recent event is stored in static locations and acquired by + calling the Fl::event_*() 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 handle() method. Event numbers can be converted to their actual names using the @@ -195,203 +193,203 @@ \see Fl::event_text(), Fl::event_key(), class Fl:: */ // DEV NOTE: Keep this list in sync with FL/names.h -enum Fl_Event { // events +enum Fl_Event { // events /** No event. */ - FL_NO_EVENT = 0, + FL_NO_EVENT = 0, /** A mouse button has gone down with the mouse pointing at this - widget. You can find out what button by calling Fl::event_button(). + widget. You can find out what button by calling Fl::event_button(). You find out the mouse position by calling Fl::event_x() and Fl::event_y(). - A widget indicates that it "wants" the mouse click by returning non-zero - from its Fl_Widget::handle() method. It will then become the - Fl::pushed() widget and will get FL_DRAG and the matching FL_RELEASE events. - If Fl_Widget::handle() returns zero then FLTK will try sending the FL_PUSH - to another widget. + A widget indicates that it "wants" the mouse click by returning non-zero + from its Fl_Widget::handle() method. It will then become the + Fl::pushed() widget and will get FL_DRAG and the matching FL_RELEASE events. + If Fl_Widget::handle() returns zero then FLTK will try sending the FL_PUSH + to another widget. */ - FL_PUSH = 1, + FL_PUSH = 1, - /** A mouse button has been released. You can find out what button by + /** A mouse button has been released. You can find out what button by calling Fl::event_button(). - In order to receive the FL_RELEASE event, the widget must return + In order to receive the FL_RELEASE event, the widget must return non-zero when handling FL_PUSH. */ - FL_RELEASE = 2, + FL_RELEASE = 2, /** 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 handle() method. It then - becomes the Fl::belowmouse() widget and will receive + becomes the Fl::belowmouse() widget and will receive FL_MOVE and FL_LEAVE events. */ - FL_ENTER = 3, + FL_ENTER = 3, /** The mouse has moved out of the widget. - In order to receive the FL_LEAVE event, the widget must + In order to receive the FL_LEAVE event, the widget must return non-zero when handling FL_ENTER. */ - FL_LEAVE = 4, + FL_LEAVE = 4, - /** The mouse has moved with a button held down. The current button state - is in Fl::event_state(). The mouse position is in Fl::event_x() and + /** The mouse has moved with a button held down. The current button state + is in Fl::event_state(). The mouse position is in Fl::event_x() and Fl::event_y(). - In order to receive FL_DRAG events, the widget must return non-zero + In order to receive FL_DRAG events, the widget must return non-zero when handling FL_PUSH. */ - FL_DRAG = 5, + FL_DRAG = 5, /** This indicates an attempt to give a widget the keyboard focus. - If a widget wants the focus, it should change itself to display the + 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 handle() method. - It then becomes the Fl::focus() widget and gets FL_KEYDOWN, FL_KEYUP, + It then becomes the Fl::focus() widget and gets FL_KEYDOWN, FL_KEYUP, and FL_UNFOCUS events. - 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 Fl::event_key() to figure out why - it moved. For navigation it will be the key pressed and for interaction + 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 Fl::event_key() to figure out why + it moved. For navigation it will be the key pressed and for interaction with the window manager it will be zero. */ - FL_FOCUS = 6, - - /** This event is sent to the previous Fl::focus() widget when another + FL_FOCUS = 6, + + /** This event is sent to the previous Fl::focus() widget when another widget gets the focus or the window loses focus. */ - FL_UNFOCUS = 7, + FL_UNFOCUS = 7, - /** A key was pressed (FL_KEYDOWN) or released (FL_KEYUP). + /** A key was pressed (FL_KEYDOWN) or released (FL_KEYUP). Fl_KEYBOARD is a synonym for FL_KEYDOWN. The key can be found in Fl::event_key(). - The text that the key should insert can be found with Fl::event_text() + The text that the key should insert can be found with Fl::event_text() and its length is in Fl::event_length(). If you use the key handle() - 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 + 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 FL_SHORTCUT event. To receive FL_KEYBOARD events you must also respond to the FL_FOCUS and FL_UNFOCUS events. - If you are writing a text-editing widget you may also want to call - the Fl::compose() function to translate individual keystrokes into + If you are writing a text-editing widget you may also want to call + the Fl::compose() function to translate individual keystrokes into non-ASCII characters. - FL_KEYUP events are sent to the widget that currently has focus. This - is not necessarily the same widget that received the corresponding + FL_KEYUP events are sent to the widget that currently has focus. This + is not necessarily the same widget that received the corresponding FL_KEYDOWN event because focus may have changed between events. */ - FL_KEYDOWN = 8, + FL_KEYDOWN = 8, /** Equivalent to FL_KEYDOWN. \see FL_KEYDOWN */ - FL_KEYBOARD = 8, - + FL_KEYBOARD = 8, + /** Key release event. \see FL_KEYDOWN */ - FL_KEYUP = 9, + FL_KEYUP = 9, /** The user clicked the close button of a window. This event is used internally only to trigger the callback of - Fl_Window derived classed. The default callback closes the + Fl_Window derived classed. The default callback closes the window calling Fl_Window::hide(). */ - FL_CLOSE = 10, + FL_CLOSE = 10, - /** The mouse has moved without any mouse buttons held down. + /** The mouse has moved without any mouse buttons held down. This event is sent to the Fl::belowmouse() widget. - In order to receive FL_MOVE events, the widget must return + In order to receive FL_MOVE events, the widget must return non-zero when handling FL_ENTER. */ - FL_MOVE = 11, + FL_MOVE = 11, /** If the Fl::focus() widget is zero or ignores an FL_KEYBOARD - event then FLTK tries sending this event to every widget it - can, until one of them returns non-zero. FL_SHORTCUT is first - sent to the Fl::belowmouse() 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 + event then FLTK tries sending this event to every widget it + can, until one of them returns non-zero. FL_SHORTCUT is first + sent to the Fl::belowmouse() 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! - You can also make "global" shortcuts by using Fl::add_handler(). A - global shortcut will work no matter what windows are displayed or + You can also make "global" shortcuts by using Fl::add_handler(). A + global shortcut will work no matter what windows are displayed or which one has the focus. */ - FL_SHORTCUT = 12, + FL_SHORTCUT = 12, - /** This widget is no longer active, due to Fl_Widget::deactivate() - being called on it or one of its parents. Fl_Widget::active() may + /** This widget is no longer active, due to Fl_Widget::deactivate() + being called on it or one of its parents. Fl_Widget::active() may still be true after this, the widget is only active if Fl_Widget::active() is true on it and all its parents (use Fl_Widget::active_r() to check this). */ - FL_DEACTIVATE = 13, + FL_DEACTIVATE = 13, - /** This widget is now active, due to Fl_Widget::activate() being + /** This widget is now active, due to Fl_Widget::activate() being called on it or one of its parents. */ - FL_ACTIVATE = 14, + FL_ACTIVATE = 14, - /** This widget is no longer visible, due to Fl_Widget::hide() being - called on it or one of its parents, or due to a parent window being - minimized. Fl_Widget::visible() may still be true after this, but the - widget is visible only if visible() is true for it and all its + /** This widget is no longer visible, due to Fl_Widget::hide() being + called on it or one of its parents, or due to a parent window being + minimized. Fl_Widget::visible() may still be true after this, but the + widget is visible only if visible() is true for it and all its parents (use Fl_Widget::visible_r() to check this). */ - FL_HIDE = 15, + FL_HIDE = 15, - /** This widget is visible again, due to Fl_Widget::show() being called on - it or one of its parents, or due to a parent window being restored. - Child Fl_Windows respond to this by actually creating the window if not - done already, so if you subclass a window, be sure to pass FL_SHOW + /** This widget is visible again, due to Fl_Widget::show() being called on + it or one of its parents, or due to a parent window being restored. + Child Fl_Windows respond to this by actually creating the window if not + done already, so if you subclass a window, be sure to pass FL_SHOW to the base class Fl_Widget::handle() method! */ - FL_SHOW = 16, + FL_SHOW = 16, - /** You should get this event some time after you call Fl::paste(). - The contents of Fl::event_text() is the text to insert and the number + /** You should get this event some time after you call Fl::paste(). + The contents of Fl::event_text() is the text to insert and the number of characters is in Fl::event_length(). */ - FL_PASTE = 17, + FL_PASTE = 17, - /** The Fl::selection_owner() 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 + /** The Fl::selection_owner() 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. */ - FL_SELECTIONCLEAR = 18, + FL_SELECTIONCLEAR = 18, /** The user has moved the mouse wheel. The Fl::event_dx() and Fl::event_dy() methods can be used to find the amount to scroll horizontally and vertically. */ - FL_MOUSEWHEEL = 19, + FL_MOUSEWHEEL = 19, - /** 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 + /** 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. */ - FL_DND_ENTER = 20, + FL_DND_ENTER = 20, - /** The mouse has been moved inside a widget while dragging data. A - widget that is interested in receiving drag'n'drop data should + /** 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. */ - FL_DND_DRAG = 21, + FL_DND_DRAG = 21, /** The mouse has moved out of the widget. */ - FL_DND_LEAVE = 22, + FL_DND_LEAVE = 22, - /** The user has released the mouse button dropping data into the widget. - If the widget returns 1, it will receive the data in the immediately + /** The user has released the mouse button dropping data into the widget. + If the widget returns 1, it will receive the data in the immediately following FL_PASTE event. */ - FL_DND_RELEASE = 23, + FL_DND_RELEASE = 23, /** The screen configuration (number, positions) was changed. Use Fl::add_handler() to be notified of this event. */ @@ -405,7 +403,7 @@ enum Fl_Event { // events Fl::event_x() and Fl::event_y() are set as well. This event is sent to the window's handle method. */ - FL_ZOOM_GESTURE = 26, + FL_ZOOM_GESTURE = 26, /** A zoom event (ctrl/+/-/0/ or cmd/+/-/0/) was processed. Use Fl::add_handler() to be notified of this event. */ @@ -421,17 +419,17 @@ enum Fl_Event { // events \todo doxygen comments for values are incomplete and maybe wrong or unclear */ enum Fl_When { // Fl_Widget::when(): - FL_WHEN_NEVER = 0, ///< Never call the callback - FL_WHEN_CHANGED = 1, ///< Do the callback only when the widget value changes - FL_WHEN_NOT_CHANGED = 2, ///< Do the callback whenever the user interacts with the widget - FL_WHEN_RELEASE = 4, ///< Do the callback when the button or key is released and the value changes - FL_WHEN_RELEASE_ALWAYS= 6, ///< Do the callback when the button or key is released, even if the value doesn't change - FL_WHEN_ENTER_KEY = 8, ///< Do the callback when the user presses the ENTER key and the value changes - FL_WHEN_ENTER_KEY_ALWAYS=10, ///< Do the callback when the user presses the ENTER key, even if the value doesn't change - FL_WHEN_ENTER_KEY_CHANGED=11 ///< ? + FL_WHEN_NEVER = 0, ///< Never call the callback + FL_WHEN_CHANGED = 1, ///< Do the callback only when the widget value changes + FL_WHEN_NOT_CHANGED = 2, ///< Do the callback whenever the user interacts with the widget + FL_WHEN_RELEASE = 4, ///< Do the callback when the button or key is released and the value changes + FL_WHEN_RELEASE_ALWAYS= 6, ///< Do the callback when the button or key is released, even if the value doesn't change + FL_WHEN_ENTER_KEY = 8, ///< Do the callback when the user presses the ENTER key and the value changes + FL_WHEN_ENTER_KEY_ALWAYS=10, ///< Do the callback when the user presses the ENTER key, even if the value doesn't change + FL_WHEN_ENTER_KEY_CHANGED=11 ///< ? }; -/*@}*/ // group: When Conditions +/*@}*/ // group: When Conditions /** \name Mouse and Keyboard Events @@ -441,53 +439,53 @@ enum Fl_When { // Fl_Widget::when(): \see Fl::event_key() and Fl::get_key(int) (use ASCII letters for all other keys): \todo FL_Button and FL_key... constants could be structured better - (use an enum or some doxygen grouping ?) + (use an enum or some doxygen grouping ?) */ /*@{*/ // FIXME: These codes collide with valid Unicode keys -#define FL_Button 0xfee8 ///< A mouse button; use Fl_Button + n for mouse button n. -#define FL_BackSpace 0xff08 ///< The backspace key. -#define FL_Tab 0xff09 ///< The tab key. -#define FL_Iso_Key 0xff0c ///< The additional key of ISO keyboards. -#define FL_Enter 0xff0d ///< The enter key. -#define FL_Pause 0xff13 ///< The pause key. -#define FL_Scroll_Lock 0xff14 ///< The scroll lock key. -#define FL_Escape 0xff1b ///< The escape key. +#define FL_Button 0xfee8 ///< A mouse button; use Fl_Button + n for mouse button n. +#define FL_BackSpace 0xff08 ///< The backspace key. +#define FL_Tab 0xff09 ///< The tab key. +#define FL_Iso_Key 0xff0c ///< The additional key of ISO keyboards. +#define FL_Enter 0xff0d ///< The enter key. +#define FL_Pause 0xff13 ///< The pause key. +#define FL_Scroll_Lock 0xff14 ///< The scroll lock key. +#define FL_Escape 0xff1b ///< The escape key. #define FL_Kana 0xff2e ///< The Kana key of JIS keyboards. #define FL_Eisu 0xff2f ///< The Eisu key of JIS keyboards. #define FL_Yen 0xff30 ///< The Yen key of JIS keyboards. #define FL_JIS_Underscore 0xff31 ///< The underscore key of JIS keyboards. -#define FL_Home 0xff50 ///< The home key. -#define FL_Left 0xff51 ///< The left arrow key. -#define FL_Up 0xff52 ///< The up arrow key. -#define FL_Right 0xff53 ///< The right arrow key. -#define FL_Down 0xff54 ///< The down arrow key. -#define FL_Page_Up 0xff55 ///< The page-up key. -#define FL_Page_Down 0xff56 ///< The page-down key. -#define FL_End 0xff57 ///< The end key. -#define FL_Print 0xff61 ///< The print (or print-screen) key. -#define FL_Insert 0xff63 ///< The insert key. -#define FL_Menu 0xff67 ///< The menu key. -#define FL_Help 0xff68 ///< The 'help' key on Mac keyboards -#define FL_Num_Lock 0xff7f ///< The num lock key. -#define FL_KP 0xff80 ///< One of the keypad numbers; use FL_KP + 'n' for digit n. -#define FL_KP_Enter 0xff8d ///< The enter key on the keypad, same as Fl_KP+'\\r'. -#define FL_KP_Last 0xffbd ///< The last keypad key; use to range-check keypad. -#define FL_F 0xffbd ///< One of the function keys; use FL_F + n for function key n. -#define FL_F_Last 0xffe0 ///< The last function key; use to range-check function keys. -#define FL_Shift_L 0xffe1 ///< The lefthand shift key. -#define FL_Shift_R 0xffe2 ///< The righthand shift key. -#define FL_Control_L 0xffe3 ///< The lefthand control key. -#define FL_Control_R 0xffe4 ///< The righthand control key. -#define FL_Caps_Lock 0xffe5 ///< The caps lock key. -#define FL_Meta_L 0xffe7 ///< The left meta/Windows key. -#define FL_Meta_R 0xffe8 ///< The right meta/Windows key. -#define FL_Alt_L 0xffe9 ///< The left alt key. -#define FL_Alt_R 0xffea ///< The right alt key. -#define FL_Delete 0xffff ///< The delete key. +#define FL_Home 0xff50 ///< The home key. +#define FL_Left 0xff51 ///< The left arrow key. +#define FL_Up 0xff52 ///< The up arrow key. +#define FL_Right 0xff53 ///< The right arrow key. +#define FL_Down 0xff54 ///< The down arrow key. +#define FL_Page_Up 0xff55 ///< The page-up key. +#define FL_Page_Down 0xff56 ///< The page-down key. +#define FL_End 0xff57 ///< The end key. +#define FL_Print 0xff61 ///< The print (or print-screen) key. +#define FL_Insert 0xff63 ///< The insert key. +#define FL_Menu 0xff67 ///< The menu key. +#define FL_Help 0xff68 ///< The 'help' key on Mac keyboards +#define FL_Num_Lock 0xff7f ///< The num lock key. +#define FL_KP 0xff80 ///< One of the keypad numbers; use FL_KP + 'n' for digit n. +#define FL_KP_Enter 0xff8d ///< The enter key on the keypad, same as Fl_KP+'\\r'. +#define FL_KP_Last 0xffbd ///< The last keypad key; use to range-check keypad. +#define FL_F 0xffbd ///< One of the function keys; use FL_F + n for function key n. +#define FL_F_Last 0xffe0 ///< The last function key; use to range-check function keys. +#define FL_Shift_L 0xffe1 ///< The lefthand shift key. +#define FL_Shift_R 0xffe2 ///< The righthand shift key. +#define FL_Control_L 0xffe3 ///< The lefthand control key. +#define FL_Control_R 0xffe4 ///< The righthand control key. +#define FL_Caps_Lock 0xffe5 ///< The caps lock key. +#define FL_Meta_L 0xffe7 ///< The left meta/Windows key. +#define FL_Meta_R 0xffe8 ///< The right meta/Windows key. +#define FL_Alt_L 0xffe9 ///< The left alt key. +#define FL_Alt_R 0xffea ///< The right alt key. +#define FL_Delete 0xffff ///< The delete key. // These use the Private Use Area (PUA) of the Basic Multilingual Plane // of Unicode. Guaranteed not to conflict with a proper Unicode character. @@ -510,7 +508,7 @@ enum Fl_When { // Fl_Widget::when(): #define FL_Sleep 0xEF2F /* Put system to sleep */ #define FL_Favorites 0xEF30 /* Show favorite locations */ -/*@}*/ // group: Mouse and Keyboard Events +/*@}*/ // group: Mouse and Keyboard Events /** \name Mouse Buttons @@ -521,43 +519,43 @@ enum Fl_When { // Fl_Widget::when(): /*@{*/ -#define FL_LEFT_MOUSE 1 ///< The left mouse button -#define FL_MIDDLE_MOUSE 2 ///< The middle mouse button -#define FL_RIGHT_MOUSE 3 ///< The right mouse button +#define FL_LEFT_MOUSE 1 ///< The left mouse button +#define FL_MIDDLE_MOUSE 2 ///< The middle mouse button +#define FL_RIGHT_MOUSE 3 ///< The right mouse button -/*@}*/ // group: Mouse Buttons +/*@}*/ // group: Mouse Buttons -/** \name Event States +/** \name Event States - The following constants define bits in the Fl::event_state() value. + The following constants define bits in the Fl::event_state() value. */ -/*@{*/ // group: Event States +/*@{*/ // group: Event States // FIXME: it would be nice to have the modifiers in the upper 8 bit so that // a unicode key (24bit) can be sent as an unsigned with the modifiers. -#define FL_SHIFT 0x00010000 ///< One of the shift keys is down -#define FL_CAPS_LOCK 0x00020000 ///< The caps lock is on -#define FL_CTRL 0x00040000 ///< One of the ctrl keys is down -#define FL_ALT 0x00080000 ///< One of the alt keys is down -#define FL_NUM_LOCK 0x00100000 ///< The num lock is on - // most X servers do this? -#define FL_META 0x00400000 ///< One of the meta/Windows keys is down - // correct for XFree86 -#define FL_SCROLL_LOCK 0x00800000 ///< The scroll lock is on - // correct for XFree86 -#define FL_BUTTON1 0x01000000 ///< Mouse button 1 is pushed -#define FL_BUTTON2 0x02000000 ///< Mouse button 2 is pushed -#define FL_BUTTON3 0x04000000 ///< Mouse button 3 is pushed -#define FL_BUTTONS 0x7f000000 ///< Any mouse button is pushed -#define FL_BUTTON(n) (0x00800000<<(n)) ///< Mouse button n (n > 0) is pushed +#define FL_SHIFT 0x00010000 ///< One of the shift keys is down +#define FL_CAPS_LOCK 0x00020000 ///< The caps lock is on +#define FL_CTRL 0x00040000 ///< One of the ctrl keys is down +#define FL_ALT 0x00080000 ///< One of the alt keys is down +#define FL_NUM_LOCK 0x00100000 ///< The num lock is on + // most X servers do this? +#define FL_META 0x00400000 ///< One of the meta/Windows keys is down + // correct for XFree86 +#define FL_SCROLL_LOCK 0x00800000 ///< The scroll lock is on + // correct for XFree86 +#define FL_BUTTON1 0x01000000 ///< Mouse button 1 is pushed +#define FL_BUTTON2 0x02000000 ///< Mouse button 2 is pushed +#define FL_BUTTON3 0x04000000 ///< Mouse button 3 is pushed +#define FL_BUTTONS 0x7f000000 ///< Any mouse button is pushed +#define FL_BUTTON(n) (0x00800000<<(n)) ///< Mouse button n (n > 0) is pushed -#define FL_KEY_MASK 0x0000ffff ///< All keys are 16 bit for now - // FIXME: Unicode needs 24 bits! +#define FL_KEY_MASK 0x0000ffff ///< All keys are 16 bit for now + // FIXME: Unicode needs 24 bits! -/*@}*/ // group: Event States +/*@}*/ // group: Event States /** \name Box Types \brief FLTK standard box types @@ -570,20 +568,20 @@ enum Fl_When { // Fl_Widget::when(): leading underscore in your code! Enum values with leading underscores are reserved for internal use and subject to change without notice! - FL_NO_BOX means nothing is drawn at all, so whatever is already - on the screen remains. The FL_..._FRAME types only draw their edges, - leaving the interior unchanged. The blue color in Figure 1 + FL_NO_BOX means nothing is drawn at all, so whatever is already + on the screen remains. The FL_..._FRAME types only draw their edges, + leaving the interior unchanged. The blue color in Figure 1 is the area that is not drawn by the frame types. \image html boxtypes.png "Figure 1: FLTK standard box types" \image latex boxtypes.png "FLTK standard box types" width=10cm - \todo Description of boxtypes is incomplete. - See below for the defined enum Fl_Boxtype. - \see src/Fl_get_system_colors.cxx + \todo Description of boxtypes is incomplete. + See below for the defined enum Fl_Boxtype. + \see src/Fl_get_system_colors.cxx */ -/*@{*/ // group: Box Types +/*@{*/ // group: Box Types /** \brief FLTK standard box types @@ -599,63 +597,63 @@ enum Fl_When { // Fl_Widget::when(): */ enum Fl_Boxtype { // boxtypes (if you change these you must also change fl_boxtype.cxx): - FL_NO_BOX = 0, ///< nothing is drawn at all, this box is invisible - FL_FLAT_BOX, ///< a flat box - FL_UP_BOX, ///< see figure 1 - FL_DOWN_BOX, ///< see figure 1 - FL_UP_FRAME, ///< see figure 1 - FL_DOWN_FRAME, ///< see figure 1 - FL_THIN_UP_BOX, ///< see figure 1 - FL_THIN_DOWN_BOX, ///< see figure 1 - FL_THIN_UP_FRAME, ///< see figure 1 - FL_THIN_DOWN_FRAME, ///< see figure 1 - FL_ENGRAVED_BOX, ///< see figure 1 - FL_EMBOSSED_BOX, ///< see figure 1 - FL_ENGRAVED_FRAME, ///< see figure 1 - FL_EMBOSSED_FRAME, ///< see figure 1 - FL_BORDER_BOX, ///< see figure 1 - _FL_SHADOW_BOX, ///< see figure 1, use FL_SHADOW_BOX - FL_BORDER_FRAME, ///< see figure 1 - _FL_SHADOW_FRAME, ///< see figure 1, use FL_SHADOW_FRAME - _FL_ROUNDED_BOX, ///< see figure 1, use FL_ROUNDED_BOX - _FL_RSHADOW_BOX, ///< see figure 1, use FL_RSHADOW_BOX - _FL_ROUNDED_FRAME, ///< see figure 1, use FL_ROUNDED_FRAME - _FL_RFLAT_BOX, ///< see figure 1, use FL_RFLAT_BOX - _FL_ROUND_UP_BOX, ///< see figure 1, use FL_ROUND_UP_BOX - _FL_ROUND_DOWN_BOX, ///< see figure 1, use FL_ROUND_DOWN_BOX - _FL_DIAMOND_UP_BOX, ///< see figure 1, use FL_DIAMOND_UP_BOX - _FL_DIAMOND_DOWN_BOX, ///< see figure 1, use FL_DIAMOND_DOWN_BOX - _FL_OVAL_BOX, ///< see figure 1, use FL_OVAL_BOX - _FL_OSHADOW_BOX, ///< see figure 1, use FL_OSHADOW_BOX - _FL_OVAL_FRAME, ///< see figure 1, use FL_OVAL_FRAME - _FL_OFLAT_BOX, ///< see figure 1, use FL_OFLAT_BOX - _FL_PLASTIC_UP_BOX, ///< plastic version of FL_UP_BOX, use FL_PLASTIC_UP_BOX - _FL_PLASTIC_DOWN_BOX, ///< plastic version of FL_DOWN_BOX, use FL_PLASTIC_DOWN_BOX - _FL_PLASTIC_UP_FRAME, ///< plastic version of FL_UP_FRAME, use FL_PLASTIC_UP_FRAME - _FL_PLASTIC_DOWN_FRAME, ///< plastic version of FL_DOWN_FRAME, use FL_PLASTIC_DOWN_FRAME - _FL_PLASTIC_THIN_UP_BOX, ///< plastic version of FL_THIN_UP_BOX, use FL_PLASTIC_THIN_UP_BOX - _FL_PLASTIC_THIN_DOWN_BOX, ///< plastic version of FL_THIN_DOWN_BOX, use FL_PLASTIC_THIN_DOWN_BOX - _FL_PLASTIC_ROUND_UP_BOX, ///< plastic version of FL_ROUND_UP_BOX, use FL_PLASTIC_ROUND_UP_BOX - _FL_PLASTIC_ROUND_DOWN_BOX, ///< plastic version of FL_ROUND_DOWN_BOX, use FL_PLASTIC_ROUND_DOWN_BOX - _FL_GTK_UP_BOX, ///< gtk+ version of FL_UP_BOX, use FL_GTK_UP_BOX - _FL_GTK_DOWN_BOX, ///< gtk+ version of FL_DOWN_BOX, use FL_GTK_DOWN_BOX - _FL_GTK_UP_FRAME, ///< gtk+ version of FL_UP_FRAME, use FL_GTK_UP_FRAME - _FL_GTK_DOWN_FRAME, ///< gtk+ version of FL_DOWN_FRAME, use FL_GTK_DOWN_FRAME - _FL_GTK_THIN_UP_BOX, ///< gtk+ version of FL_THIN_UP_BOX, use FL_GTK_THIN_UP_BOX - _FL_GTK_THIN_DOWN_BOX, ///< gtk+ version of FL_THIN_DOWN_BOX, use FL_GTK_THIN_DOWN_BOX - _FL_GTK_THIN_UP_FRAME, ///< gtk+ version of FL_THIN_UP_FRAME, use FL_GTK_THIN_UP_FRAME - _FL_GTK_THIN_DOWN_FRAME, ///< gtk+ version of FL_THIN_DOWN_FRAME, use FL_GTK_THIN_DOWN_FRAME - _FL_GTK_ROUND_UP_BOX, ///< gtk+ version of FL_ROUND_UP_BOX, use FL_GTK_ROUND_UP_BOX - _FL_GTK_ROUND_DOWN_BOX, ///< gtk+ version of FL_ROUND_DOWN_BOX, use FL_GTK_ROUND_DOWN_BOX - _FL_GLEAM_UP_BOX, ///< gleam version of FL_UP_BOX, use FL_GLEAM_UP_BOX - _FL_GLEAM_DOWN_BOX, ///< gleam version of FL_DOWN_BOX, use FL_GLEAM_DOWN_BOX - _FL_GLEAM_UP_FRAME, ///< gleam version of FL_UP_FRAME, use FL_GLEAM_UP_FRAME - _FL_GLEAM_DOWN_FRAME, ///< gleam version of FL_DOWN_FRAME, use FL_GLEAM_DOWN_FRAME - _FL_GLEAM_THIN_UP_BOX, ///< gleam version of FL_THIN_UP_BOX, use FL_GLEAM_THIN_UP_BOX - _FL_GLEAM_THIN_DOWN_BOX, ///< gleam version of FL_THIN_DOWN_BOX, use FL_GLEAM_THIN_DOWN_BOX - _FL_GLEAM_ROUND_UP_BOX, ///< gleam version of FL_ROUND_UP_BOX, use FL_GLEAM_ROUND_UP_BOX - _FL_GLEAM_ROUND_DOWN_BOX, ///< gleam version of FL_ROUND_DOWN_BOX, use FL_GLEAM_ROUND_DOWN_BOX - FL_FREE_BOXTYPE ///< the first free box type for creation of new box types + FL_NO_BOX = 0, ///< nothing is drawn at all, this box is invisible + FL_FLAT_BOX, ///< a flat box + FL_UP_BOX, ///< see figure 1 + FL_DOWN_BOX, ///< see figure 1 + FL_UP_FRAME, ///< see figure 1 + FL_DOWN_FRAME, ///< see figure 1 + FL_THIN_UP_BOX, ///< see figure 1 + FL_THIN_DOWN_BOX, ///< see figure 1 + FL_THIN_UP_FRAME, ///< see figure 1 + FL_THIN_DOWN_FRAME, ///< see figure 1 + FL_ENGRAVED_BOX, ///< see figure 1 + FL_EMBOSSED_BOX, ///< see figure 1 + FL_ENGRAVED_FRAME, ///< see figure 1 + FL_EMBOSSED_FRAME, ///< see figure 1 + FL_BORDER_BOX, ///< see figure 1 + _FL_SHADOW_BOX, ///< see figure 1, use FL_SHADOW_BOX + FL_BORDER_FRAME, ///< see figure 1 + _FL_SHADOW_FRAME, ///< see figure 1, use FL_SHADOW_FRAME + _FL_ROUNDED_BOX, ///< see figure 1, use FL_ROUNDED_BOX + _FL_RSHADOW_BOX, ///< see figure 1, use FL_RSHADOW_BOX + _FL_ROUNDED_FRAME, ///< see figure 1, use FL_ROUNDED_FRAME + _FL_RFLAT_BOX, ///< see figure 1, use FL_RFLAT_BOX + _FL_ROUND_UP_BOX, ///< see figure 1, use FL_ROUND_UP_BOX + _FL_ROUND_DOWN_BOX, ///< see figure 1, use FL_ROUND_DOWN_BOX + _FL_DIAMOND_UP_BOX, ///< see figure 1, use FL_DIAMOND_UP_BOX + _FL_DIAMOND_DOWN_BOX, ///< see figure 1, use FL_DIAMOND_DOWN_BOX + _FL_OVAL_BOX, ///< see figure 1, use FL_OVAL_BOX + _FL_OSHADOW_BOX, ///< see figure 1, use FL_OSHADOW_BOX + _FL_OVAL_FRAME, ///< see figure 1, use FL_OVAL_FRAME + _FL_OFLAT_BOX, ///< see figure 1, use FL_OFLAT_BOX + _FL_PLASTIC_UP_BOX, ///< plastic version of FL_UP_BOX, use FL_PLASTIC_UP_BOX + _FL_PLASTIC_DOWN_BOX, ///< plastic version of FL_DOWN_BOX, use FL_PLASTIC_DOWN_BOX + _FL_PLASTIC_UP_FRAME, ///< plastic version of FL_UP_FRAME, use FL_PLASTIC_UP_FRAME + _FL_PLASTIC_DOWN_FRAME, ///< plastic version of FL_DOWN_FRAME, use FL_PLASTIC_DOWN_FRAME + _FL_PLASTIC_THIN_UP_BOX, ///< plastic version of FL_THIN_UP_BOX, use FL_PLASTIC_THIN_UP_BOX + _FL_PLASTIC_THIN_DOWN_BOX, ///< plastic version of FL_THIN_DOWN_BOX, use FL_PLASTIC_THIN_DOWN_BOX + _FL_PLASTIC_ROUND_UP_BOX, ///< plastic version of FL_ROUND_UP_BOX, use FL_PLASTIC_ROUND_UP_BOX + _FL_PLASTIC_ROUND_DOWN_BOX, ///< plastic version of FL_ROUND_DOWN_BOX, use FL_PLASTIC_ROUND_DOWN_BOX + _FL_GTK_UP_BOX, ///< gtk+ version of FL_UP_BOX, use FL_GTK_UP_BOX + _FL_GTK_DOWN_BOX, ///< gtk+ version of FL_DOWN_BOX, use FL_GTK_DOWN_BOX + _FL_GTK_UP_FRAME, ///< gtk+ version of FL_UP_FRAME, use FL_GTK_UP_FRAME + _FL_GTK_DOWN_FRAME, ///< gtk+ version of FL_DOWN_FRAME, use FL_GTK_DOWN_FRAME + _FL_GTK_THIN_UP_BOX, ///< gtk+ version of FL_THIN_UP_BOX, use FL_GTK_THIN_UP_BOX + _FL_GTK_THIN_DOWN_BOX, ///< gtk+ version of FL_THIN_DOWN_BOX, use FL_GTK_THIN_DOWN_BOX + _FL_GTK_THIN_UP_FRAME, ///< gtk+ version of FL_THIN_UP_FRAME, use FL_GTK_THIN_UP_FRAME + _FL_GTK_THIN_DOWN_FRAME, ///< gtk+ version of FL_THIN_DOWN_FRAME, use FL_GTK_THIN_DOWN_FRAME + _FL_GTK_ROUND_UP_BOX, ///< gtk+ version of FL_ROUND_UP_BOX, use FL_GTK_ROUND_UP_BOX + _FL_GTK_ROUND_DOWN_BOX, ///< gtk+ version of FL_ROUND_DOWN_BOX, use FL_GTK_ROUND_DOWN_BOX + _FL_GLEAM_UP_BOX, ///< gleam version of FL_UP_BOX, use FL_GLEAM_UP_BOX + _FL_GLEAM_DOWN_BOX, ///< gleam version of FL_DOWN_BOX, use FL_GLEAM_DOWN_BOX + _FL_GLEAM_UP_FRAME, ///< gleam version of FL_UP_FRAME, use FL_GLEAM_UP_FRAME + _FL_GLEAM_DOWN_FRAME, ///< gleam version of FL_DOWN_FRAME, use FL_GLEAM_DOWN_FRAME + _FL_GLEAM_THIN_UP_BOX, ///< gleam version of FL_THIN_UP_BOX, use FL_GLEAM_THIN_UP_BOX + _FL_GLEAM_THIN_DOWN_BOX, ///< gleam version of FL_THIN_DOWN_BOX, use FL_GLEAM_THIN_DOWN_BOX + _FL_GLEAM_ROUND_UP_BOX, ///< gleam version of FL_ROUND_UP_BOX, use FL_GLEAM_ROUND_UP_BOX + _FL_GLEAM_ROUND_DOWN_BOX, ///< gleam version of FL_ROUND_DOWN_BOX, use FL_GLEAM_ROUND_DOWN_BOX + FL_FREE_BOXTYPE ///< the first free box type for creation of new box types }; extern FL_EXPORT Fl_Boxtype fl_define_FL_ROUND_UP_BOX(); #define FL_ROUND_UP_BOX fl_define_FL_ROUND_UP_BOX() @@ -743,7 +741,7 @@ inline Fl_Boxtype fl_frame(Fl_Boxtype b) { #define FL_CIRCLE_BOX FL_ROUND_DOWN_BOX #define FL_DIAMOND_BOX FL_DIAMOND_DOWN_BOX -/*@}*/ // group: Box Types +/*@}*/ // group: Box Types /** The labeltype() method sets the type of the label. @@ -896,9 +894,9 @@ extern Fl_Labeltype FL_EXPORT fl_define_FL_IMAGE_LABEL(); -# Although bits can be or'd together there are some unused/illegal combinations, for instance: - setting both FL_ALIGN_TOP and FL_ALIGN_BOTTOM in combinations other - than those given in the \p Fl_Align constants below (magic values) + than those given in the \p Fl_Align constants below (magic values) - setting both FL_ALIGN_LEFT and FL_ALIGN_RIGHT in combinations other - than those given in the \p Fl_Align constants below (magic values) + than those given in the \p Fl_Align constants below (magic values) - using one of the "magic values" (2) together with FL_ALIGN_INSIDE \note Using illegal bit combinations or undefined bits may yield unexpected @@ -910,37 +908,37 @@ extern Fl_Labeltype FL_EXPORT fl_define_FL_IMAGE_LABEL(); typedef unsigned Fl_Align; /** Align the label horizontally in the middle. */ -const Fl_Align FL_ALIGN_CENTER = 0x0000; +const Fl_Align FL_ALIGN_CENTER = 0x0000; /** Align the label at the top of the widget. Inside labels appear below the top, outside labels are drawn on top of the widget. */ -const Fl_Align FL_ALIGN_TOP = 0x0001; +const Fl_Align FL_ALIGN_TOP = 0x0001; /** Align the label at the bottom of the widget. */ -const Fl_Align FL_ALIGN_BOTTOM = 0x0002; +const Fl_Align FL_ALIGN_BOTTOM = 0x0002; /** Align the label at the left of the widget. Inside labels appear left-justified starting at the left side of the widget, outside labels are right-justified and drawn to the left of the widget. */ -const Fl_Align FL_ALIGN_LEFT = 0x0004; +const Fl_Align FL_ALIGN_LEFT = 0x0004; /** Align the label to the right of the widget. */ -const Fl_Align FL_ALIGN_RIGHT = 0x0008; +const Fl_Align FL_ALIGN_RIGHT = 0x0008; /** Draw the label inside of the widget. */ -const Fl_Align FL_ALIGN_INSIDE = 0x0010; +const Fl_Align FL_ALIGN_INSIDE = 0x0010; /** If the label contains an image, draw the text on top of the image. */ -const Fl_Align FL_ALIGN_TEXT_OVER_IMAGE = 0x0020; +const Fl_Align FL_ALIGN_TEXT_OVER_IMAGE = 0x0020; /** If the label contains an image, draw the text below the image. */ -const Fl_Align FL_ALIGN_IMAGE_OVER_TEXT = 0x0000; +const Fl_Align FL_ALIGN_IMAGE_OVER_TEXT = 0x0000; /** All parts of the label that are larger than the widget will not be drawn. */ -const Fl_Align FL_ALIGN_CLIP = 0x0040; +const Fl_Align FL_ALIGN_CLIP = 0x0040; /** Wrap text that does not fit the width of the widget. */ -const Fl_Align FL_ALIGN_WRAP = 0x0080; +const Fl_Align FL_ALIGN_WRAP = 0x0080; /** If the label contains an image, draw the text to the right of the image. */ const Fl_Align FL_ALIGN_IMAGE_NEXT_TO_TEXT = 0x0100; @@ -951,25 +949,25 @@ const Fl_Align FL_ALIGN_TEXT_NEXT_TO_IMAGE = 0x0120; /** If the label contains an image, draw the image or deimage in the background. */ const Fl_Align FL_ALIGN_IMAGE_BACKDROP = 0x0200; -const Fl_Align FL_ALIGN_TOP_LEFT = FL_ALIGN_TOP | FL_ALIGN_LEFT; -const Fl_Align FL_ALIGN_TOP_RIGHT = FL_ALIGN_TOP | FL_ALIGN_RIGHT; -const Fl_Align FL_ALIGN_BOTTOM_LEFT = FL_ALIGN_BOTTOM | FL_ALIGN_LEFT; -const Fl_Align FL_ALIGN_BOTTOM_RIGHT = FL_ALIGN_BOTTOM | FL_ALIGN_RIGHT; +const Fl_Align FL_ALIGN_TOP_LEFT = FL_ALIGN_TOP | FL_ALIGN_LEFT; +const Fl_Align FL_ALIGN_TOP_RIGHT = FL_ALIGN_TOP | FL_ALIGN_RIGHT; +const Fl_Align FL_ALIGN_BOTTOM_LEFT = FL_ALIGN_BOTTOM | FL_ALIGN_LEFT; +const Fl_Align FL_ALIGN_BOTTOM_RIGHT = FL_ALIGN_BOTTOM | FL_ALIGN_RIGHT; /** Outside only, left of widget, top position, magic value: TOP | BOTTOM | LEFT. */ -const Fl_Align FL_ALIGN_LEFT_TOP = 0x0007; +const Fl_Align FL_ALIGN_LEFT_TOP = 0x0007; /** Outside only, right of widget, top position, magic value: TOP | BOTTOM | RIGHT. */ -const Fl_Align FL_ALIGN_RIGHT_TOP = 0x000b; +const Fl_Align FL_ALIGN_RIGHT_TOP = 0x000b; /** Outside only, left of widget, bottom position, magic value: TOP | LEFT | RIGHT. */ -const Fl_Align FL_ALIGN_LEFT_BOTTOM = 0x000d; +const Fl_Align FL_ALIGN_LEFT_BOTTOM = 0x000d; /** Outside only, right of widget, bottom position, magic value: BOTTOM | LEFT | RIGHT. */ -const Fl_Align FL_ALIGN_RIGHT_BOTTOM = 0x000e; +const Fl_Align FL_ALIGN_RIGHT_BOTTOM = 0x000e; /** Nothing, same as FL_ALIGN_CENTER, for back compatibility. */ -const Fl_Align FL_ALIGN_NOWRAP = 0x0000; +const Fl_Align FL_ALIGN_NOWRAP = 0x0000; /** Mask value to test for TOP, BOTTOM, LEFT, and RIGHT flags. */ const Fl_Align FL_ALIGN_POSITION_MASK = 0x000f; @@ -986,27 +984,27 @@ const Fl_Align FL_ALIGN_IMAGE_MASK = 0x0320; /** A font number is an index into the internal font table. */ typedef int Fl_Font; -const Fl_Font FL_HELVETICA = 0; ///< Helvetica (or Arial) normal (0) -const Fl_Font FL_HELVETICA_BOLD = 1; ///< Helvetica (or Arial) bold -const Fl_Font FL_HELVETICA_ITALIC = 2; ///< Helvetica (or Arial) oblique -const Fl_Font FL_HELVETICA_BOLD_ITALIC = 3; ///< Helvetica (or Arial) bold-oblique -const Fl_Font FL_COURIER = 4; ///< Courier normal -const Fl_Font FL_COURIER_BOLD = 5; ///< Courier bold -const Fl_Font FL_COURIER_ITALIC = 6; ///< Courier italic -const Fl_Font FL_COURIER_BOLD_ITALIC = 7; ///< Courier bold-italic -const Fl_Font FL_TIMES = 8; ///< Times roman -const Fl_Font FL_TIMES_BOLD = 9; ///< Times roman bold -const Fl_Font FL_TIMES_ITALIC = 10; ///< Times roman italic -const Fl_Font FL_TIMES_BOLD_ITALIC = 11; ///< Times roman bold-italic -const Fl_Font FL_SYMBOL = 12; ///< Standard symbol font -const Fl_Font FL_SCREEN = 13; ///< Default monospaced screen font -const Fl_Font FL_SCREEN_BOLD = 14; ///< Default monospaced bold screen font -const Fl_Font FL_ZAPF_DINGBATS = 15; ///< Zapf-dingbats font +const Fl_Font FL_HELVETICA = 0; ///< Helvetica (or Arial) normal (0) +const Fl_Font FL_HELVETICA_BOLD = 1; ///< Helvetica (or Arial) bold +const Fl_Font FL_HELVETICA_ITALIC = 2; ///< Helvetica (or Arial) oblique +const Fl_Font FL_HELVETICA_BOLD_ITALIC = 3; ///< Helvetica (or Arial) bold-oblique +const Fl_Font FL_COURIER = 4; ///< Courier normal +const Fl_Font FL_COURIER_BOLD = 5; ///< Courier bold +const Fl_Font FL_COURIER_ITALIC = 6; ///< Courier italic +const Fl_Font FL_COURIER_BOLD_ITALIC = 7; ///< Courier bold-italic +const Fl_Font FL_TIMES = 8; ///< Times roman +const Fl_Font FL_TIMES_BOLD = 9; ///< Times roman bold +const Fl_Font FL_TIMES_ITALIC = 10; ///< Times roman italic +const Fl_Font FL_TIMES_BOLD_ITALIC = 11; ///< Times roman bold-italic +const Fl_Font FL_SYMBOL = 12; ///< Standard symbol font +const Fl_Font FL_SCREEN = 13; ///< Default monospaced screen font +const Fl_Font FL_SCREEN_BOLD = 14; ///< Default monospaced bold screen font +const Fl_Font FL_ZAPF_DINGBATS = 15; ///< Zapf-dingbats font -const Fl_Font FL_FREE_FONT = 16; ///< first one to allocate -const Fl_Font FL_BOLD = 1; ///< add this to helvetica, courier, or times -const Fl_Font FL_ITALIC = 2; ///< add this to helvetica, courier, or times -const Fl_Font FL_BOLD_ITALIC = 3; ///< add this to helvetica, courier, or times +const Fl_Font FL_FREE_FONT = 16; ///< first one to allocate +const Fl_Font FL_BOLD = 1; ///< add this to helvetica, courier, or times +const Fl_Font FL_ITALIC = 2; ///< add this to helvetica, courier, or times +const Fl_Font FL_BOLD_ITALIC = 3; ///< add this to helvetica, courier, or times /*@}*/ @@ -1015,9 +1013,9 @@ const Fl_Font FL_BOLD_ITALIC = 3; ///< add this to helvetica, courier */ typedef int Fl_Fontsize; -extern FL_EXPORT Fl_Fontsize FL_NORMAL_SIZE; ///< normal font size +extern FL_EXPORT Fl_Fontsize FL_NORMAL_SIZE; ///< normal font size -/** \name Colors +/** \name Colors The Fl_Color type holds an FLTK color value. Colors are either 8-bit indexes into a virtual colormap @@ -1035,7 +1033,7 @@ extern FL_EXPORT Fl_Fontsize FL_NORMAL_SIZE; ///< normal font size +--------- red component (8 bit) - A color can have either an index or an rgb value. Colors with rgb set + A color can have either an index or an rgb value. Colors with rgb set and an index >0 are reserved for special use. */ @@ -1044,22 +1042,22 @@ extern FL_EXPORT Fl_Fontsize FL_NORMAL_SIZE; ///< normal font size typedef unsigned int Fl_Color; // Standard colors. These are used as default colors in widgets and altered as necessary -const Fl_Color FL_FOREGROUND_COLOR = 0; ///< the default foreground color (0) used for labels and text -const Fl_Color FL_BACKGROUND2_COLOR = 7; ///< the default background color for text, list, and valuator widgets -const Fl_Color FL_INACTIVE_COLOR = 8; ///< the inactive foreground color -const Fl_Color FL_SELECTION_COLOR = 15; ///< the default selection/highlight color +const Fl_Color FL_FOREGROUND_COLOR = 0; ///< the default foreground color (0) used for labels and text +const Fl_Color FL_BACKGROUND2_COLOR = 7; ///< the default background color for text, list, and valuator widgets +const Fl_Color FL_INACTIVE_COLOR = 8; ///< the inactive foreground color +const Fl_Color FL_SELECTION_COLOR = 15; ///< the default selection/highlight color // boxtypes generally limit themselves to these colors so // the whole ramp is not allocated: -const Fl_Color FL_GRAY0 = 32; // 'A' -const Fl_Color FL_DARK3 = 39; // 'H' -const Fl_Color FL_DARK2 = 45; // 'N' -const Fl_Color FL_DARK1 = 47; // 'P' -const Fl_Color FL_BACKGROUND_COLOR = 49; // 'R' default background color -const Fl_Color FL_LIGHT1 = 50; // 'S' -const Fl_Color FL_LIGHT2 = 52; // 'U' -const Fl_Color FL_LIGHT3 = 54; // 'W' +const Fl_Color FL_GRAY0 = 32; // 'A' +const Fl_Color FL_DARK3 = 39; // 'H' +const Fl_Color FL_DARK2 = 45; // 'N' +const Fl_Color FL_DARK1 = 47; // 'P' +const Fl_Color FL_BACKGROUND_COLOR = 49; // 'R' default background color +const Fl_Color FL_LIGHT1 = 50; // 'S' +const Fl_Color FL_LIGHT2 = 52; // 'U' +const Fl_Color FL_LIGHT3 = 54; // 'W' // FLTK provides a 5x8x5 color cube that is used with colormap visuals @@ -1142,7 +1140,7 @@ inline Fl_Color fl_gray_ramp(int i) {return (Fl_Color)(i+FL_GRAY_RAMP);} inline Fl_Color fl_color_cube(int r, int g, int b) { return (Fl_Color)((b*FL_NUM_RED + r) * FL_NUM_GREEN + g + FL_COLOR_CUBE);} -/*@}*/ // group: Colors +/*@}*/ // group: Colors /** \name Cursors */ /*@{*/ @@ -1181,7 +1179,7 @@ enum Fl_Cursor { FL_CURSOR_NONE =255 /**< invisible. */ }; -/*@}*/ // group: Cursors +/*@}*/ // group: Cursors /** FD "when" conditions */ enum { // values for "when" passed to Fl::add_fd() @@ -1191,19 +1189,19 @@ enum { // values for "when" passed to Fl::add_fd() }; /** visual types and Fl_Gl_Window::mode() (values match Glut) */ -enum Fl_Mode { - FL_RGB = 0, - FL_INDEX = 1, - FL_SINGLE = 0, - FL_DOUBLE = 2, - FL_ACCUM = 4, - FL_ALPHA = 8, - FL_DEPTH = 16, - FL_STENCIL = 32, - FL_RGB8 = 64, +enum Fl_Mode { + FL_RGB = 0, + FL_INDEX = 1, + FL_SINGLE = 0, + FL_DOUBLE = 2, + FL_ACCUM = 4, + FL_ALPHA = 8, + FL_DEPTH = 16, + FL_STENCIL = 32, + FL_RGB8 = 64, FL_MULTISAMPLE= 128, FL_STEREO = 256, - FL_FAKE_SINGLE = 512, // Fake single buffered windows using double-buffer + FL_FAKE_SINGLE = 512, // Fake single buffered windows using double-buffer FL_OPENGL3 = 1024 }; @@ -1225,7 +1223,3 @@ enum Fl_Damage { // FLTK 1.0.x compatibility definitions (FLTK_1_0_COMPAT) dropped in 1.4.0 #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl.H b/FL/Fl.H index 3c4a0f011..4221d9588 100644 --- a/FL/Fl.H +++ b/FL/Fl.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Main header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2020 by Bill Spitzak and others. @@ -11,9 +9,9 @@ // // https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /** \file @@ -33,7 +31,7 @@ # include "fl_utf8.h" # include "Enumerations.H" # ifndef Fl_Object -# define Fl_Object Fl_Widget /**< for back compatibility - use Fl_Widget! */ +# define Fl_Object Fl_Widget /**< for back compatibility - use Fl_Widget! */ # endif # ifdef check @@ -72,7 +70,7 @@ extern FL_EXPORT const char* fl_local_shift; ///< string pointer used in shortcu callback function to handle such events in the user's code. \see Fl::add_handler(), Fl::add_timeout(), Fl::repeat_timeout(), - Fl::remove_timeout() and others + Fl::remove_timeout() and others @{ */ /** Signature of some label drawing functions passed as parameters */ @@ -206,7 +204,7 @@ public: // should be private! If true then flush() will do something. */ static void damage(int d) {damage_ = d;} - + public: /** Enumerator for global FLTK options. These options can be set system wide, per user, or for the running @@ -225,7 +223,7 @@ public: /// See also: Fl_Input_::tab_nav() /// OPTION_ARROW_FOCUS = 0, - // When switched on, FLTK will use the file chooser dialog that comes + // When switched on, FLTK will use the file chooser dialog that comes // with your operating system whenever possible. When switched off, FLTK // will present its own file chooser. // \todo implement me @@ -235,7 +233,7 @@ public: // decides to choose the file. // \todo implement me //OPTION_FILECHOOSER_PREVIEW, - /// If visible focus is switched on (default), FLTK will draw a dotted rectangle + /// If visible focus is switched on (default), FLTK will draw a dotted rectangle /// inside the widget that will receive the next keystroke. If switched /// off, no such indicator will be drawn and keyboard navigation /// is disabled. @@ -244,7 +242,7 @@ public: /// from any text widget. If disabled, no dragging is possible, however /// dropping text from other applications still works. OPTION_DND_TEXT, - /// If tooltips are enabled (default), hovering the mouse over a widget with a + /// If tooltips are enabled (default), hovering the mouse over a widget with a /// tooltip text will open a little tooltip window until the mouse leaves /// the widget. If disabled, no tooltip is shown. OPTION_SHOW_TOOLTIPS, @@ -265,26 +263,26 @@ public: OPTION_LAST } Fl_Option; -private: +private: static unsigned char options_[OPTION_LAST]; static unsigned char options_read_; static int program_should_quit_; // non-zero means the program was asked to cleanly terminate -public: +public: /* Return a global setting for all FLTK applications, possibly overridden by a setting specifically for this application. */ static bool option(Fl_Option opt); - + /* Override an option while the application is running. */ static void option(Fl_Option opt, bool val); - + /** The currently executing idle callback function: DO NOT USE THIS DIRECTLY! - + This is now used as part of a higher level system allowing multiple idle callback functions to be called. \see add_idle(), remove_idle() @@ -302,7 +300,7 @@ public: static int e_original_keysym; // late addition static int scrollbar_size_; - static int menu_linespacing_; // STR #2927 + static int menu_linespacing_; // STR #2927 #endif @@ -409,9 +407,9 @@ public: return (scheme_ && name && !strcmp(name,scheme_)); } /** - Called by scheme according to scheme name. - Loads or reloads the current scheme selection. - See void scheme(const char *name) + Called by scheme according to scheme name. + Loads or reloads the current scheme selection. + See void scheme(const char *name) */ static int reload_scheme(); // platform dependent static int scrollbar_size(); @@ -444,16 +442,16 @@ public: Adds a one-shot timeout callback. The function will be called by Fl::wait() at t seconds after this function is called. The optional void* argument is passed to the callback. - + You can have multiple timeout callbacks. To remove a timeout callback use Fl::remove_timeout(). - + If you need more accurate, repeated timeouts, use Fl::repeat_timeout() to reschedule the subsequent timeouts. - + The following code will print "TICK" each second on stdout with a fair degree of accuracy: - + \code #include #include @@ -520,7 +518,7 @@ int main() { @{ */ /** FLTK calls Fl::warning() to output a warning message. - + The default version on Windows returns \e without printing a warning message, because Windows programs normally don't have stderr (a console window) enabled. @@ -539,7 +537,7 @@ int main() { static void (*warning)(const char*, ...); /** FLTK calls Fl::error() to output a normal error message. - + The default version on Windows displays the error message in a MessageBox window. The default version on all other platforms prints the error message to stderr. @@ -554,11 +552,11 @@ int main() { static void (*error)(const char*, ...); /** FLTK calls Fl::fatal() to output a fatal error message. - + The default version on Windows displays the error message in a MessageBox window. The default version on all other platforms prints the error message to stderr. - + You can override the behavior by setting the function pointer to your own routine. @@ -589,14 +587,14 @@ int main() { */ static Fl_Window* modal() {return modal_;} /** Returns the window that currently receives all events. - + \return The window that currently receives all events, or NULL if event grabbing is currently OFF. */ static Fl_Window* grab() {return grab_;} - /** Selects the window to grab. + /** Selects the window to grab. 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 does not have to be shown() , this lets the handle() method of a @@ -604,26 +602,26 @@ int main() { map and unmap a complex set of windows (under both X and Windows some window must be mapped because the system interface needs a window id). - + If grab() 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. - + To turn off grabbing do Fl::grab(0). - + Be careful that your program does not enter an infinite loop while grab() is on. On X this will lock up your screen! - To avoid this potential lockup, all newer operating systems seem to - limit mouse pointer grabbing to the time during which a mouse button + 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. */ static void grab(Fl_Window*); // platform dependent /** @} */ /** \defgroup fl_events Events handling functions - Fl class events handling API declared in - @{ + Fl class events handling API declared in + @{ */ // event information: /** @@ -631,44 +629,44 @@ int main() { to determine if a callback is being done in response to a keypress, mouse click, etc. */ - static int event() {return e_number;} + static int event() {return e_number;} /** Returns the mouse position of the event relative to the Fl_Window it was passed to. */ - static int event_x() {return e_x;} + static int event_x() {return e_x;} /** Returns the mouse position of the event relative to the Fl_Window it was passed to. */ - static int event_y() {return e_y;} + static int event_y() {return e_y;} /** Returns the mouse position on the screen of the event. To find the absolute position of an Fl_Window on the screen, use the - difference between event_x_root(),event_y_root() and + difference between event_x_root(),event_y_root() and event_x(),event_y(). */ - static int event_x_root() {return e_x_root;} + static int event_x_root() {return e_x_root;} /** Returns the mouse position on the screen of the event. To find the absolute position of an Fl_Window on the screen, use the - difference between event_x_root(),event_y_root() and + difference between event_x_root(),event_y_root() and event_x(),event_y(). */ - static int event_y_root() {return e_y_root;} + static int event_y_root() {return e_y_root;} /** Returns the current horizontal mouse scrolling associated with the FL_MOUSEWHEEL event. Right is positive. */ - static int event_dx() {return e_dx;} + static int event_dx() {return e_dx;} /** Returns the current vertical mouse scrolling associated with the FL_MOUSEWHEEL event. Down is positive. */ - static int event_dy() {return e_dy;} + static int event_dy() {return e_dy;} /** Return where the mouse is on the screen by doing a round-trip query to - the server. You should use Fl::event_x_root() and + the server. You should use Fl::event_x_root() and Fl::event_y_root() 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 @@ -677,15 +675,15 @@ int main() { static void get_mouse(int &,int &); /** Returns non zero if we had a double click event. - \retval Non-zero if the most recent FL_PUSH or FL_KEYBOARD was a "double click". - \retval N-1 for N clicks. + \retval Non-zero if the most recent FL_PUSH or FL_KEYBOARD was a "double click". + \retval N-1 for N clicks. A double click is counted if the same button is pressed again while event_is_click() is true. - + */ - static int event_clicks() {return e_clicks;} + static int event_clicks() {return e_clicks;} /** - Manually sets the number returned by Fl::event_clicks(). + Manually sets the number returned by Fl::event_clicks(). This can be used to set it to zero so that later code does not think an item was double-clicked. \param[in] i corresponds to no double-click if 0, i+1 mouse clicks otherwise @@ -694,17 +692,17 @@ int main() { static void event_clicks(int i) {e_clicks = i;} /** Returns non-zero if the mouse has not moved far enough - and not enough time has passed since the last FL_PUSH or + and not enough time has passed since the last FL_PUSH or FL_KEYBOARD event for it to be considered a "drag" rather than a "click". You can test this on FL_DRAG, FL_RELEASE, - and FL_MOVE events. + and FL_MOVE events. */ - static int event_is_click() {return e_is_click;} + static int event_is_click() {return e_is_click;} /** - Clears the value returned by Fl::event_is_click(). + Clears the value returned by Fl::event_is_click(). Useful to prevent the next 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. + pick an item with a single click. Don't pass non-zero to this. */ static void event_is_click(int i) {e_is_click = i;} /** @@ -716,7 +714,7 @@ int main() { \retval FL_RIGHT_MOUSE. \see Fl::event_buttons() */ - static int event_button() {return e_keysym-FL_Button;} + static int event_button() {return e_keysym-FL_Button;} /** Returns the keyboard and mouse button states of the last event. @@ -735,14 +733,14 @@ int main() { - FL_BUTTON1 - FL_BUTTON2 - FL_BUTTON3 - + 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 after the shift key is pressed or released. */ - static int event_state() {return e_state;} + static int event_state() {return e_state;} /** Returns non-zero if any of the passed event state bits are turned on. @@ -754,74 +752,74 @@ int main() { Gets which key on the keyboard was last pushed. The returned integer 'key code' is not necessarily a text - equivalent for the keystroke. For instance: if someone presses '5' on the + equivalent for the keystroke. For instance: if someone presses '5' on the numeric keypad with numlock on, Fl::event_key() may return the 'key code' for this key, and NOT the character '5'. To always get the '5', use Fl::event_text() instead. - + \returns an integer 'key code', or 0 if the last event was not a key press or release. \see int event_key(int), event_text(), compose(int&). */ - static int event_key() {return e_keysym;} + static int event_key() {return e_keysym;} /** Returns the keycode of the last key event, regardless of the NumLock state. - - If NumLock is deactivated, FLTK translates events from the - numeric keypad into the corresponding arrow key events. + + If NumLock is deactivated, FLTK translates events from the + numeric keypad into the corresponding arrow key events. event_key() returns the translated key code, whereas event_original_key() returns the keycode before NumLock translation. */ static int event_original_key(){return e_original_keysym;} - /** + /** Returns true if the given \p key was held down (or pressed) during the last event. This is constant until the next event is read from the server. - + Fl::get_key(int) returns true if the given key is held down now. Under X this requires a round-trip to the server and is much slower than Fl::event_key(int). - + Keys are identified by the unshifted values. FLTK defines a set of symbols that should work on most modern machines for every key on the keyboard: - + \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. + character use the value of that ASCII character (as though shift, + ctrl, and caps lock were not on). The space bar is 32. \li All keys on the numeric keypad producing a printable ASCII - character use the value of that ASCII character plus FL_KP. - The highest possible value is FL_KP_Last so you can - range-check to see if something is on the keypad. - \li All numbered function keys use the number on the function key plus - FL_F. The highest possible number is FL_F_Last, so you - can range-check a value. + character use the value of that ASCII character plus FL_KP. + The highest possible value is FL_KP_Last so you can + range-check to see if something is on the keypad. + \li All numbered function keys use the number on the function key plus + FL_F. The highest possible number is FL_F_Last, so you + can range-check a value. \li Buttons on the mouse are considered keys, and use the button - number (where the left button is 1) plus FL_Button. + number (where the left button is 1) plus FL_Button. \li All other keys on the keypad have a symbol: 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_Iso_Key, 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. Be - careful not to confuse these with the very similar, but all-caps, - symbols used by Fl::event_state(). + 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_Iso_Key, 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. Be + careful not to confuse these with the very similar, but all-caps, + symbols used by Fl::event_state(). On X Fl::get_key(FL_Button+n) does not work. - + On Windows Fl::get_key(FL_KP_Enter) and Fl::event_key(FL_KP_Enter) do not work. */ static int event_key(int key); - /** - Returns true if the given \p key is held down now. + /** + Returns true if the given \p key is held down now. Under X this requires a round-trip to the server and is much slower than Fl::event_key(int). \see event_key(int) */ static int get_key(int key); // platform dependent - /** + /** Returns the text associated with the current event, including FL_PASTE or FL_DND_RELEASE events. This can be used in response to FL_KEYUP, FL_KEYDOWN, FL_PASTE, and FL_DND_RELEASE. When responding to FL_KEYUP/FL_KEYDOWN, use this function instead of Fl::event_key() - to get the text equivalent of keystrokes suitable for inserting into strings + to get the text equivalent of keystrokes suitable for inserting into strings and text widgets. The returned string is guaranteed to be NULL terminated. @@ -838,7 +836,7 @@ int main() { you paste a nul character. */ static int event_length() {return e_length;} - + /** During an FL_PASTE event of non-textual data, returns a pointer to the pasted data. The returned data is an Fl_RGB_Image * when the result of Fl::event_clipboard_type() is Fl::clipboard_image. */ @@ -861,16 +859,16 @@ int main() { // event destinations: static int handle(int, Fl_Window*); static int handle_(int, Fl_Window*); - /** Gets the widget that is below the mouse. + /** Gets the widget that is below the mouse. \see belowmouse(Fl_Widget*) */ static Fl_Widget* belowmouse() {return belowmouse_;} static void belowmouse(Fl_Widget*); /** Gets the widget that is being pushed. \see void pushed(Fl_Widget*) */ - static Fl_Widget* pushed() {return pushed_;} + static Fl_Widget* pushed() {return pushed_;} static void pushed(Fl_Widget*); /** Gets the current Fl::focus() widget. \sa Fl::focus(Fl_Widget*) */ - static Fl_Widget* focus() {return focus_;} + static Fl_Widget* focus() {return focus_;} static void focus(Fl_Widget*); static void add_handler(Fl_Event_Handler h); static void remove_handler(Fl_Event_Handler h); @@ -881,20 +879,20 @@ int main() { /** @} */ /** \defgroup fl_clipboard Selection & Clipboard functions - FLTK global copy/cut/paste functions declared in + FLTK global copy/cut/paste functions declared in @{ */ // cut/paste: /** - Copies the data pointed to by \p stuff to the selection buffer + Copies the data pointed to by \p stuff to the selection buffer (\p destination is 0), the clipboard (\p destination is 1), or both (\p destination is 2). Copying to both is only relevant on X11, on other platforms it maps to the clipboard (1). \p len is the number of relevant bytes in \p stuff. \p type is always Fl::clipboard_plain_text. The selection buffer is used for - middle-mouse pastes and for drag-and-drop selections. The + middle-mouse pastes and for drag-and-drop selections. The clipboard is used for traditional copy/cut/paste operations. - + \note This function is, at present, intended only to copy UTF-8 encoded textual data. To copy graphical data, use the Fl_Copy_Surface class. The \p type argument may allow in the future to copy other kinds of data. @@ -904,17 +902,17 @@ int main() { /** Pastes the data from the selection buffer (\p source is 0) or the clipboard (\p source is 1) into \p receiver. - + The selection buffer (\p source is 0) is used for middle-mouse pastes and for drag-and-drop selections. The clipboard (\p source is 1) is used for copy/cut/paste operations. - + If \p source is 1, the optional \p type argument indicates what type of data is requested from the clipboard. At present, Fl::clipboard_plain_text (requesting text data) and Fl::clipboard_image (requesting image data) are possible. Set things up so the handle function of the \p receiver widget will be called with an FL_PASTE event some time in the future if the clipboard does contain data of the requested type. - + The handle function of \p receiver can process the FL_PASTE event as follows: \li If the \p receiver widget is known to only receive text data, the text string from the specified \p source is in Fl::event_text() with UTF-8 encoding, and the @@ -929,13 +927,13 @@ int main() { If \p receiver accepts the clipboard image, receiver.handle() should return 1 and the application should take ownership of this image (that is, delete it after use). Conversely, if receiver.handle() returns 0, the application must not use the image. - + The receiver should be prepared to be called \e directly by this, or for it to happen \e later, or possibly not at all. 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. - + \par Platform details for image data: \li Unix/Linux platform: Clipboard images in PNG or BMP formats are recognized. Requires linking with the fltk_images library. \li Windows platform: Both bitmap and vectorial (Enhanced metafile) data from clipboard @@ -944,7 +942,7 @@ int main() { can be pasted as image data. */ static void paste(Fl_Widget &receiver, int source, const char *type = Fl::clipboard_plain_text); - + /** FLTK will call the registered callback whenever there is a change to the selection buffer or the clipboard. The source argument indicates which @@ -954,13 +952,13 @@ int main() { \code void clip_callback(int source, void *data) { if ( source == 0 ) printf("CLIP CALLBACK: selection buffer changed\n"); - if ( source == 1 ) printf("CLIP CALLBACK: clipboard changed\n"); + if ( source == 1 ) printf("CLIP CALLBACK: clipboard changed\n"); } [..] int main() { [..] - Fl::add_clipboard_notify(clip_callback); - [..] + Fl::add_clipboard_notify(clip_callback); + [..] } \endcode \note Some systems require polling to monitor the clipboard and may @@ -988,14 +986,14 @@ int main() { 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 text. - + Create a selection first using: Fl::copy(const char *stuff, int len, 0) */ static int dnd(); // platform dependent // These are for back-compatibility only: - /** back-compatibility only: Gets the widget owning the current selection + /** back-compatibility only: Gets the widget owning the current selection \see Fl_Widget* selection_owner(Fl_Widget*) */ static Fl_Widget* selection_owner() {return selection_owner_;} static void selection_owner(Fl_Widget*); @@ -1006,7 +1004,7 @@ int main() { /** \defgroup fl_screen Screen functions Fl global screen functions declared in . - + FLTK supports high-DPI screens using a screen scaling factor. The scaling factor is initialized by the library to a value based on information obtained from the OS. If this initial value @@ -1046,25 +1044,25 @@ int main() { /** \defgroup fl_attributes Color & Font functions - fl global color, font functions. - These functions are declared in or . + fl global color, font functions. + These functions are declared in or . @{ */ - + // color map: - static void set_color(Fl_Color, uchar, uchar, uchar); + static void set_color(Fl_Color, uchar, uchar, uchar); /** Sets an entry in the fl_color index table. You can set it to any 8-bit RGB color. The color is not allocated until fl_color(i) is used. */ - static void set_color(Fl_Color i, unsigned c); // platform dependent + static void set_color(Fl_Color i, unsigned c); // platform dependent static unsigned get_color(Fl_Color i); - static void get_color(Fl_Color i, uchar &red, uchar &green, uchar &blue); + static void get_color(Fl_Color i, uchar &red, uchar &green, uchar &blue); /** Frees the specified color from the colormap, if applicable. If overlay is non-zero then the color is freed from the overlay colormap. */ - static void free_color(Fl_Color i, int overlay = 0); // platform dependent + static void free_color(Fl_Color i, int overlay = 0); // platform dependent // fonts: static const char* get_font(Fl_Font); @@ -1073,9 +1071,9 @@ int main() { 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. - + The integer pointed to by \p attributes (if the pointer is not - zero) is set to zero, FL_BOLD or FL_ITALIC or + zero) is set to zero, FL_BOLD or FL_ITALIC or FL_BOLD | FL_ITALIC. To locate a "family" 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. @@ -1100,7 +1098,7 @@ int main() { face table. It will attempt to put "families" of faces together, so that the normal one is first, followed by bold, italic, and bold italic. - + The optional argument is a string to describe the set of fonts to add. Passing NULL will select only fonts that have the ISO8859-1 character set (and are thus usable by normal text). Passing @@ -1110,7 +1108,7 @@ int main() { values may be useful but are system dependent. With Windows NULL selects fonts with ISO8859-1 encoding and non-NULL selects all fonts. - + The return value is how many faces are in the table after this is done. */ static Fl_Font set_fonts(const char* = 0); // platform dependent @@ -1118,7 +1116,7 @@ int main() { /** @} */ /** \defgroup fl_drawings Drawing functions FLTK global graphics and GUI drawing functions. - These functions are declared in , + These functions are declared in , and in for offscreen buffer-related ones. @{ */ // @@ -1143,7 +1141,7 @@ int main() { static void set_box_color(Fl_Color); // back compatibility: - /** \addtogroup fl_windows + /** \addtogroup fl_windows @{ */ /** For back compatibility, sets the void Fl::fatal handler callback */ static void set_abort(Fl_Abort_Handler f) {fatal = f;} @@ -1155,7 +1153,7 @@ int main() { static void set_atclose(Fl_Atclose_Handler f) {atclose = f;} /** @} */ - /** \addtogroup fl_events + /** \addtogroup fl_events @{ */ /** Returns non-zero if the Shift key is pressed. */ static int event_shift() {return e_state&FL_SHIFT;} @@ -1167,9 +1165,9 @@ int main() { static int event_alt() {return e_state&FL_ALT;} /** Returns the mouse buttons state bits; if non-zero, then at least one - button is pressed now. This function returns the button state at the - time of the event. During an FL_RELEASE event, the state - of the released button will be 0. To find out, which button + button is pressed now. This function returns the button state at the + time of the event. During an FL_RELEASE event, the state + of the released button will be 0. To find out, which button caused an FL_RELEASE event, you can use Fl::event_button() instead. \return a bit mask value like { [FL_BUTTON1] | [FL_BUTTON2] | [FL_BUTTON3] } */ @@ -1234,7 +1232,7 @@ int main() { */ static int dnd_text_ops() { return option(OPTION_DND_TEXT); } /** \defgroup fl_multithread Multithreading support functions - fl multithreading support functions declared in + fl multithreading support functions declared in @{ */ // Multithreading support: @@ -1246,7 +1244,7 @@ int main() { /** The thread_message() method returns the last message that was sent from a child by the awake() method. - + See also: \ref advanced_multithreading */ static void* thread_message(); // platform dependent @@ -1268,17 +1266,17 @@ int main() { There are three groups of related methods: -# scheduled widget deletion - - Fl::delete_widget() schedules widgets for deletion - - Fl::do_widget_deletion() deletes all scheduled widgets + - Fl::delete_widget() schedules widgets for deletion + - Fl::do_widget_deletion() deletes all scheduled widgets -# widget watch list ("smart pointers") - - Fl::watch_widget_pointer() adds a widget pointer to the watch list - - Fl::release_widget_pointer() removes a widget pointer from the watch list - - Fl::clear_widget_pointer() clears a widget pointer \e in the watch list + - Fl::watch_widget_pointer() adds a widget pointer to the watch list + - Fl::release_widget_pointer() removes a widget pointer from the watch list + - Fl::clear_widget_pointer() clears a widget pointer \e in the watch list -# the class Fl_Widget_Tracker: - - the constructor calls Fl::watch_widget_pointer() - - the destructor calls Fl::release_widget_pointer() - - the access methods can be used to test, if a widget has been deleted - \see Fl_Widget_Tracker. + - the constructor calls Fl::watch_widget_pointer() + - the destructor calls Fl::release_widget_pointer() + - the access methods can be used to test, if a widget has been deleted + \see Fl_Widget_Tracker. @{ */ // Widget deletion: @@ -1288,7 +1286,7 @@ int main() { static void release_widget_pointer(Fl_Widget *&w); static void clear_widget_pointer(Fl_Widget const *w); /** @} */ - + /** sets whether GL windows should be drawn at high resolution on Apple computers with retina displays \version 1.3.4 @@ -1300,7 +1298,7 @@ int main() { \version 1.3.4 */ static int use_high_res_GL() { return use_high_res_GL_; } - + /** sets whether OpenGL uses textures to draw all text. By default, FLTK draws OpenGL text using textures, if the necessary hardware support is available. Call \p Fl::draw_GL_text_with_textures(0) @@ -1313,7 +1311,7 @@ int main() { \version 1.4.0 */ static void draw_GL_text_with_textures(int val) { draw_GL_text_with_textures_ = val; } - + /** returns whether whether OpenGL uses textures to draw all text. Default is yes. \see draw_GL_text_with_textures(int val) @@ -1324,7 +1322,7 @@ int main() { #ifdef FLTK_HAVE_CAIRO /** \defgroup group_cairo Cairo Support Functions and Classes - @{ + @{ */ public: // Cairo support API @@ -1336,19 +1334,19 @@ public: When you wish to associate a cairo context in this mode, you need to call explicitly in your draw() overridden method, Fl::cairo_make_current(Fl_Window*). This will create a cairo context - but only for this Window. - Still in custom cairo application it is possible to handle + but only for this Window. + Still in custom cairo application it is possible to handle completely this process automatically by setting \p alink to true. In this last case, you don't need anymore to call Fl::cairo_make_current(). You can use Fl::cairo_cc() to get the current cairo context anytime. \note Only available when configure has the --enable-cairo option */ static void cairo_autolink_context(bool alink) {cairo_state_.autolink(alink);} - /** + /** Gets the current autolink mode for cairo support. - \retval false if no cairo context autolink is made for each window. - \retval true if any fltk window is attached a cairo context when it - is current. \see void cairo_autolink_context(bool alink) + \retval false if no cairo context autolink is made for each window. + \retval true if any fltk window is attached a cairo context when it + is current. \see void cairo_autolink_context(bool alink) \note Only available when configure has the --enable-cairo option */ static bool cairo_autolink_context() {return cairo_state_.autolink();} @@ -1358,14 +1356,14 @@ public: Set \p own to true if you want fltk to handle this cc deletion. \note Only available when configure has the --enable-cairo option */ - static void cairo_cc(cairo_t * c, bool own=false){ cairo_state_.cc(c, own); } + static void cairo_cc(cairo_t * c, bool own=false){ cairo_state_.cc(c, own); } private: static cairo_t * cairo_make_current(void* gc); static cairo_t * cairo_make_current(void* gc, int W, int H); static Fl_Cairo_State cairo_state_; public: - /** @} */ + /** @} */ #endif // FLTK_HAVE_CAIRO @@ -1386,7 +1384,7 @@ public: variable, such that its destructor is called when the object's scope is left. This ensures that no stale widget pointers are left in the widget watch list (see example below). - + You can also create Fl_Widget_Tracker objects with \c new, but then it is your responsibility to delete the object (and thus remove the widget pointer from the watch list) when it is no longer needed. @@ -1454,12 +1452,8 @@ public: }; /** \defgroup fl_unicode Unicode and UTF-8 functions - fl global Unicode and UTF-8 handling functions declared in + fl global Unicode and UTF-8 handling functions declared in @{ */ /** @} */ #endif // !Fl_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_Adjuster.H b/FL/Fl_Adjuster.H index fb20f7d52..c2e308128 100644 --- a/FL/Fl_Adjuster.H +++ b/FL/Fl_Adjuster.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Adjuster widget header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -31,7 +29,7 @@ /** The Fl_Adjuster widget was stolen from Prisms, and has proven to be very useful for values that need a large dynamic range. - \image html adjuster1.png + \image html adjuster1.png \image latex adjuster1.png "Fl_Adjuster" width=4cm

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 @@ -67,7 +65,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_BMP_Image.H b/FL/Fl_BMP_Image.H index 0d60d7114..c779d6525 100644 --- a/FL/Fl_BMP_Image.H +++ b/FL/Fl_BMP_Image.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // BMP image header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2020 by Bill Spitzak and others. @@ -11,9 +9,9 @@ // // https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -41,7 +39,3 @@ class FL_EXPORT Fl_BMP_Image : public Fl_RGB_Image { }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Bitmap.H b/FL/Fl_Bitmap.H index 47818e7f9..e0fc2244d 100644 --- a/FL/Fl_Bitmap.H +++ b/FL/Fl_Bitmap.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Bitmap header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2017 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -38,7 +36,7 @@ public: const uchar *array; /** Non-zero if array points to bitmap data allocated internally */ int alloc_array; - + private: /** for internal use */ fl_uintptr_t id_; @@ -62,7 +60,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Box.H b/FL/Fl_Box.H index e1007a7f7..c168566aa 100644 --- a/FL/Fl_Box.H +++ b/FL/Fl_Box.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Box header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -45,7 +43,7 @@ public:

The destructor removes the box. */ Fl_Box(int X, int Y, int W, int H, const char *l=0); - + /** See Fl_Box::Fl_Box(int x, int y, int w, int h, const char * = 0) */ Fl_Box(Fl_Boxtype b, int X, int Y, int W, int H, const char *l); @@ -53,7 +51,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Browser.H b/FL/Fl_Browser.H index 323076362..707b3acc1 100644 --- a/FL/Fl_Browser.H +++ b/FL/Fl_Browser.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Browser header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2016 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -36,7 +34,7 @@ struct FL_BLINE; 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. - + \image html fl_hold_browser.png "Fl_Hold_Browser" \image latex fl_hold_browser.png "Fl_Hold_Browser" width=4cm @@ -57,9 +55,9 @@ struct FL_BLINE; describes. The base class does nothing when the user clicks on it. The - subclasses - Fl_Select_Browser, - Fl_Hold_Browser, and + subclasses + Fl_Select_Browser, + Fl_Hold_Browser, and Fl_Multi_Browser react to user clicks to select lines in the browser and do callbacks. @@ -76,7 +74,7 @@ struct FL_BLINE; \code // How to loop through all the items in the browser for ( int t=1; t<=browser->size(); t++ ) { // index 1 based..! - printf("item #%d, label='%s'\n", t, browser->text(t)); + printf("item #%d, label='%s'\n", t, browser->text(t)); } \endcode @@ -87,15 +85,15 @@ struct FL_BLINE; */ class FL_EXPORT Fl_Browser : public Fl_Browser_ { - FL_BLINE *first; // the array of lines + FL_BLINE *first; // the array of lines FL_BLINE *last; FL_BLINE *cache; - int cacheline; // line number of cache - int lines; // Number of lines + int cacheline; // line number of cache + int lines; // Number of lines int full_height_; const int* column_widths_; - char format_char_; // alternative to @-sign - char column_char_; // alternative to tab + char format_char_; // alternative to @-sign + char column_char_; // alternative to tab protected: @@ -218,7 +216,7 @@ public: Gets the current format code prefix character, which by default is '\@'. 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: - + \li '\@.' Print rest of line, don't look for more '\@' signs \li '\@\@' Doubling the format character prints the format character once, followed by the rest of line @@ -241,7 +239,7 @@ public: \li '\@-' draw an engraved line through the middle. Notice that the '\@.' command can be used to reliably - terminate the parsing. To print a random string in a random color, use + terminate the parsing. To print a random string in a random color, use sprintf("@C%d@.%s", color, string) and it will work even if the string starts with a digit or has the format character in it. */ @@ -330,7 +328,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Browser_.H b/FL/Fl_Browser_.H index 308f47ce6..af86bc2c7 100644 --- a/FL/Fl_Browser_.H +++ b/FL/Fl_Browser_.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Common browser header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2016 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -28,15 +26,15 @@ #include "Fl_Group.H" #endif #include "Fl_Scrollbar.H" -#include // Fl::scrollbar_size() +#include // Fl::scrollbar_size() -#define FL_NORMAL_BROWSER 0 /**< type() of Fl_Browser */ -#define FL_SELECT_BROWSER 1 /**< type() of FL_Select_Browser */ -#define FL_HOLD_BROWSER 2 /**< type() of Fl_Hold_Browser */ -#define FL_MULTI_BROWSER 3 /**< type() of Fl_Multi_Browser */ +#define FL_NORMAL_BROWSER 0 /**< type() of Fl_Browser */ +#define FL_SELECT_BROWSER 1 /**< type() of FL_Select_Browser */ +#define FL_HOLD_BROWSER 2 /**< type() of Fl_Hold_Browser */ +#define FL_MULTI_BROWSER 3 /**< type() of Fl_Multi_Browser */ -#define FL_SORT_ASCENDING 0 /**< sort browser items in ascending alphabetic order. */ -#define FL_SORT_DESCENDING 1 /**< sort in descending order */ +#define FL_SORT_ASCENDING 0 /**< sort browser items in ascending alphabetic order. */ +#define FL_SORT_DESCENDING 1 /**< sort in descending order */ /** This is the base class for browsers. To be useful it must be @@ -44,7 +42,7 @@ browser and the file chooser's browser are subclassed off of this. This has been designed so that the subclass has complete control - over the storage of the data, although because next() and + over the storage of the data, although because next() and prev() 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. @@ -76,21 +74,21 @@ Keyboard navigation of browser items extend a selection or de-selection. */ class FL_EXPORT Fl_Browser_ : public Fl_Group { - int position_; // where user wants it scrolled to - int real_position_; // the current vertical scrolling position - int hposition_; // where user wants it panned to - int real_hposition_; // the current horizontal scrolling position - int offset_; // how far down top_ item the real_position is - int max_width; // widest object seen so far - uchar has_scrollbar_; // which scrollbars are enabled + int position_; // where user wants it scrolled to + int real_position_; // the current vertical scrolling position + int hposition_; // where user wants it panned to + int real_hposition_; // the current horizontal scrolling position + int offset_; // how far down top_ item the real_position is + int max_width; // widest object seen so far + uchar has_scrollbar_; // which scrollbars are enabled Fl_Font textfont_; Fl_Fontsize textsize_; Fl_Color textcolor_; - void* top_; // which item scrolling position is in - void* selection_; // which is selected (except for FL_MULTI_BROWSER) + void* top_; // which item scrolling position is in + void* selection_; // which is selected (except for FL_MULTI_BROWSER) void *redraw1,*redraw2; // minimal update pointers - void* max_width_item; // which item has max_width_ - int scrollbar_size_; // size of scrollbar trough + void* max_width_item; // which item has max_width_ + int scrollbar_size_; // size of scrollbar trough void update_top(); @@ -98,7 +96,7 @@ protected: // All of the following must be supplied by the subclass: /** - This method must be provided by the subclass + This method must be provided by the subclass to return the first item in the list. \see item_first(), item_next(), item_last(), item_prev() */ @@ -121,8 +119,8 @@ protected: \see item_first(), item_next(), item_last(), item_prev() */ virtual void *item_last() const { return 0L; } - /** - This method must be provided by the subclass to return + /** + This method must be provided by the subclass to return the height of \p item in pixels. Allow for two additional pixels for the list selection box. \param[in] item The item whose height is returned. @@ -145,28 +143,28 @@ protected: */ virtual void item_draw(void *item,int X,int Y,int W,int H) const = 0; /** - This optional method returns a string (label) that may be used for sorting. + This optional method returns a string (label) that may be used for sorting. \param[in] item The item whose label text is returned. \returns The item's text label. (Can be NULL if blank) */ virtual const char *item_text(void *item) const { (void)item; return 0L; } /** - This optional method should be provided by the subclass + This optional method should be provided by the subclass to efficiently swap browser items \p a and \p b, such as for sorting. \param[in] a,b The two items to be swapped. */ virtual void item_swap(void *a,void *b) { (void)a; (void)b; } /** - This method must be provided by the subclass - to return the item for the specified \p index. + This method must be provided by the subclass + to return the item for the specified \p index. \param[in] index The \p index of the item to be returned \returns The item at the specified \p index. */ virtual void *item_at(int index) const { (void)index; return 0L; } // you don't have to provide these but it may help speed it up: - virtual int full_width() const ; // current width of all items - virtual int full_height() const ; // current height of all items - virtual int incr_height() const ; // average height of an item + virtual int full_width() const ; // current width of all items + virtual int full_height() const ; // current height of all items + virtual int incr_height() const ; // average height of an item // These only need to be done by subclass if you want a multi-browser: virtual void item_select(void *item,int val=1); virtual int item_selected(void *item) const ; @@ -178,9 +176,9 @@ protected: void *top() const { return top_; } /** Returns the item currently selected, or NULL if there is no selection. - + For multiple selection browsers this call returns the currently focused item, - even if it is not selected. To find all selected items, call + even if it is not selected. To find all selected items, call Fl_Multi_Browser::selected() for every item in question. */ void *selection() const { return selection_; } @@ -197,9 +195,9 @@ protected: */ void redraw_lines() { damage(FL_DAMAGE_SCROLL); } // redraw all of them void bbox(int &X,int &Y,int &W,int &H) const; - int leftedge() const; // x position after scrollbar & border + int leftedge() const; // x position after scrollbar & border void *find_item(int ypos); // item under mouse - + void draw(); Fl_Browser_(int X,int Y,int W,int H,const char *L=0); @@ -223,7 +221,7 @@ public: /** Gets the vertical scroll position of the list as a pixel position \p pos. The position returned is how many pixels of the list are scrolled off the top edge - of the screen. Example: A position of '3' indicates the top 3 pixels of + of the screen. Example: A position of '3' indicates the top 3 pixels of the list are scrolled off the top edge of the screen. \see position(), hposition() */ @@ -250,13 +248,13 @@ public: - bit 3-31: reserved for future use */ enum { // values for has_scrollbar() - HORIZONTAL = 1, ///< Only show horizontal scrollbar. - VERTICAL = 2, ///< Only show vertical scrollbar. - BOTH = 3, ///< Show both scrollbars. (default) - ALWAYS_ON = 4, ///< Specified scrollbar(s) should 'always' be shown (to be used with HORIZONTAL/VERTICAL) - HORIZONTAL_ALWAYS = 5, ///< Horizontal scrollbar always on. - VERTICAL_ALWAYS = 6, ///< Vertical scrollbar always on. - BOTH_ALWAYS = 7 ///< Both scrollbars always on. + HORIZONTAL = 1, ///< Only show horizontal scrollbar. + VERTICAL = 2, ///< Only show vertical scrollbar. + BOTH = 3, ///< Show both scrollbars. (default) + ALWAYS_ON = 4, ///< Specified scrollbar(s) should 'always' be shown (to be used with HORIZONTAL/VERTICAL) + HORIZONTAL_ALWAYS = 5, ///< Horizontal scrollbar always on. + VERTICAL_ALWAYS = 6, ///< Vertical scrollbar always on. + BOTH_ALWAYS = 7 ///< Both scrollbars always on. }; /** Returns the current scrollbar mode, see Fl_Browser_::has_scrollbar(uchar) @@ -265,9 +263,9 @@ public: /** Sets whether the widget should have scrollbars or not (default Fl_Browser_::BOTH). By default you can scroll in both directions, and the scrollbars - disappear if the data will fit in the widget. + disappear if the data will fit in the widget. has_scrollbar() changes this based on the value of \p mode: - + - 0 - No scrollbars. - Fl_Browser_::HORIZONTAL - Only a horizontal scrollbar. @@ -317,9 +315,9 @@ public: /** Gets the current size of the scrollbars' troughs, in pixels. - If this value is zero (default), this widget will use the + If this value is zero (default), this widget will use the Fl::scrollbar_size() value as the scrollbar's width. - + \returns Scrollbar size in pixels, or 0 if the global Fl::scrollbar_size() is being used. \see Fl::scrollbar_size(int) */ @@ -330,24 +328,24 @@ public: Sets the pixel size of the scrollbars' troughs to \p newSize, in pixels. Normally you should not need this method, and should use - Fl::scrollbar_size(int) instead to manage the size of ALL - your widgets' scrollbars. This ensures your application + Fl::scrollbar_size(int) instead to manage the size of ALL + your widgets' scrollbars. This ensures your application has a consistent UI, is the default behavior, and is normally what you want. Only use THIS method if you really need to override the global scrollbar size. The need for this should be rare. - + Setting \p newSize to the special value of 0 causes the widget to track the global Fl::scrollbar_size(), which is the default. - + \param[in] newSize Sets the scrollbar size in pixels.\n If 0 (default), scrollbar size tracks the global Fl::scrollbar_size() \see Fl::scrollbar_size() */ void scrollbar_size(int newSize) { scrollbar_size_ = newSize; - } + } /** Returns the global value Fl::scrollbar_size(). \deprecated Use scrollbar_size() instead. @@ -379,7 +377,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Button.H b/FL/Fl_Button.H index 49f5dfa4b..e9ad92df8 100644 --- a/FL/Fl_Button.H +++ b/FL/Fl_Button.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Button header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2014 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -27,13 +25,13 @@ #endif // values for type() -#define FL_NORMAL_BUTTON 0 /**< value() will be set to 1 during the press of the button and +#define FL_NORMAL_BUTTON 0 /**< value() will be set to 1 during the press of the button and reverts back to 0 when the button is released */ -#define FL_TOGGLE_BUTTON 1 ///< value() toggles between 0 and 1 at every click of the button -#define FL_RADIO_BUTTON (FL_RESERVED_TYPE+2) /**< is set to 1 at button press, and all other - buttons in the same group with type() == FL_RADIO_BUTTON - are set to zero.*/ -#define FL_HIDDEN_BUTTON 3 ///< for Forms compatibility +#define FL_TOGGLE_BUTTON 1 ///< value() toggles between 0 and 1 at every click of the button +#define FL_RADIO_BUTTON (FL_RESERVED_TYPE+2) /**< is set to 1 at button press, and all other + buttons in the same group with type() == FL_RADIO_BUTTON + are set to zero.*/ +#define FL_HIDDEN_BUTTON 3 ///< for Forms compatibility extern FL_EXPORT Fl_Shortcut fl_old_shortcut(const char*); @@ -59,7 +57,7 @@ class Fl_Widget_Tracker; \li \c FL_TOGGLE_BUTTON: value() is inverted after button press. \li \c FL_RADIO_BUTTON: value() is set to 1 after button press, and all other buttons in the current group with type() == FL_RADIO_BUTTON - are set to zero. + are set to zero. \todo Refactor the doxygen comments for Fl_Button when() documentation. @@ -70,7 +68,7 @@ class Fl_Widget_Tracker; clicks the button, or when a shortcut is typed. \li \c FL_WHEN_CHANGED: 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). + dragged around in and out of the button). */ class FL_EXPORT Fl_Button : public Fl_Widget { @@ -170,7 +168,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Cairo.H b/FL/Fl_Cairo.H index 1994f0e5e..3a32647a4 100644 --- a/FL/Fl_Cairo.H +++ b/FL/Fl_Cairo.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Main header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2016 by Bill Spitzak and others. @@ -9,15 +7,15 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file - Handling transparently platform dependent cairo include files + Handling transparently platform dependent cairo include files */ #ifndef FL_CAIRO_H @@ -31,12 +29,12 @@ # include -/** +/** \addtogroup group_cairo @{ */ -/** +/** Contains all the necessary info on the current cairo context. A private internal & unique corresponding object is created to permit cairo context state handling while keeping it opaque. @@ -48,33 +46,33 @@ public: Fl_Cairo_State() : cc_(0), own_cc_(false), autolink_(false), window_(0), gc_(0) {} // access attributes - cairo_t* cc() const {return cc_;} ///< Gets the current cairo context - bool autolink() const {return autolink_;} ///< Gets the autolink option. See Fl::cairo_autolink_context(bool) + cairo_t* cc() const {return cc_;} ///< Gets the current cairo context + bool autolink() const {return autolink_;} ///< Gets the autolink option. See Fl::cairo_autolink_context(bool) /** Sets the current cairo context. - \p own == \e true (the default) indicates that the cairo context \p c - will be deleted by FLTK internally when another cc is set later. + \p own == \e true (the default) indicates that the cairo context \p c + will be deleted by FLTK internally when another cc is set later. - \p own == \e false indicates cc deletion is handled externally - by the user program. + \p own == \e false indicates cc deletion is handled externally + by the user program. */ void cc(cairo_t* c, bool own=true) { - if (cc_ && own_cc_) cairo_destroy(cc_); - cc_=c; - if (!cc_) window_=0; - own_cc_=own; + if (cc_ && own_cc_) cairo_destroy(cc_); + cc_=c; + if (!cc_) window_=0; + own_cc_=own; } void autolink(bool b); ///< Sets the autolink option, only available with --enable-cairoext - void window(void* w) {window_=w;} ///< Sets the window \p w to keep track on - void* window() const {return window_;} ///< Gets the last window attached to a cc - void gc(void* c) {gc_=c;} ///< Sets the gc \p c to keep track on - void* gc() const {return gc_;} ///< Gets the last gc attached to a cc + void window(void* w) {window_=w;} ///< Sets the window \p w to keep track on + void* window() const {return window_;} ///< Gets the last window attached to a cc + void gc(void* c) {gc_=c;} ///< Sets the gc \p c to keep track on + void* gc() const {return gc_;} ///< Gets the last gc attached to a cc private: - cairo_t * cc_; // contains the unique autoupdated cairo context - bool own_cc_; // indicates whether we must delete the cc, useful for internal cleanup - bool autolink_; // false by default, prevents the automatic cairo mapping on fltk windows - // for custom cairo implementations. + cairo_t * cc_; // contains the unique autoupdated cairo context + bool own_cc_; // indicates whether we must delete the cc, useful for internal cleanup + bool autolink_; // false by default, prevents the automatic cairo mapping on fltk windows + // for custom cairo implementations. void* window_, *gc_; // for keeping track internally of last win+gc treated }; @@ -82,7 +80,3 @@ private: # endif // FLTK_HAVE_CAIRO #endif // FL_CAIRO_H - -// -// End of "$Id$" . -// diff --git a/FL/Fl_Cairo_Window.H b/FL/Fl_Cairo_Window.H index dcec92f48..8d98cd5bd 100644 --- a/FL/Fl_Cairo_Window.H +++ b/FL/Fl_Cairo_Window.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Main header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2018 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -29,7 +27,7 @@ # include # include -/** +/** \addtogroup group_cairo @{ */ @@ -44,7 +42,7 @@ \note You can alternatively define your custom cairo FLTK window, and thus at least override the draw() method to provide custom cairo support. In this case you will probably use Fl::cairo_make_current(Fl_Window*) - to attach a context to your window. You should do it only when your window is + to attach a context to your window. You should do it only when your window is the current window. \see Fl_Window::current() */ class FL_EXPORT Fl_Cairo_Window : public Fl_Double_Window { @@ -62,7 +60,7 @@ protected: if (draw_cb_) { // call the Cairo draw callback // manual method ? if yes explicitly get a cairo_context here if (!Fl::cairo_autolink_context()) - Fl::cairo_make_current(this); + Fl::cairo_make_current(this); draw_cb_(this, Fl::cairo_cc()); // flush cairo drawings: necessary at least for Windows cairo_surface_t *s = cairo_get_target(Fl::cairo_cc()); @@ -73,7 +71,7 @@ protected: public: /** This defines the cairo draw callback prototype that you must further */ typedef void (*cairo_draw_cb) (Fl_Cairo_Window* self, cairo_t* def); - /** + /** You must provide a draw callback which will implement your cairo rendering. This method will permit you to set your cairo callback to \p cb. */ @@ -87,7 +85,3 @@ private: # endif // FLTK_HAVE_CAIRO #endif // FL_CAIRO_WINDOW_H - -// -// End of "$Id$" . -// diff --git a/FL/Fl_Chart.H b/FL/Fl_Chart.H index 8664d9742..a19b68cd6 100644 --- a/FL/Fl_Chart.H +++ b/FL/Fl_Chart.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Forms chart header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -27,24 +25,24 @@ #endif // values for type() -#define FL_BAR_CHART 0 /**< type() for Bar Chart variant */ -#define FL_HORBAR_CHART 1 /**< type() for Horizontal Bar Chart variant */ -#define FL_LINE_CHART 2 /**< type() for Line Chart variant */ -#define FL_FILL_CHART 3 /**< type() for Fill Line Chart variant */ -#define FL_SPIKE_CHART 4 /**< type() for Spike Chart variant */ -#define FL_PIE_CHART 5 /**< type() for Pie Chart variant */ -#define FL_SPECIALPIE_CHART 6 /**< type() for Special Pie Chart variant */ +#define FL_BAR_CHART 0 /**< type() for Bar Chart variant */ +#define FL_HORBAR_CHART 1 /**< type() for Horizontal Bar Chart variant */ +#define FL_LINE_CHART 2 /**< type() for Line Chart variant */ +#define FL_FILL_CHART 3 /**< type() for Fill Line Chart variant */ +#define FL_SPIKE_CHART 4 /**< type() for Spike Chart variant */ +#define FL_PIE_CHART 5 /**< type() for Pie Chart variant */ +#define FL_SPECIALPIE_CHART 6 /**< type() for Special Pie Chart variant */ -#define FL_FILLED_CHART FL_FILL_CHART /**< for compatibility */ +#define FL_FILLED_CHART FL_FILL_CHART /**< for compatibility */ -#define FL_CHART_MAX 128 /**< max entries per chart */ -#define FL_CHART_LABEL_MAX 18 /**< max label length for entry */ +#define FL_CHART_MAX 128 /**< max entries per chart */ +#define FL_CHART_LABEL_MAX 18 /**< max label length for entry */ /** For internal use only */ struct FL_CHART_ENTRY { - float val; /**< For internal use only. */ - unsigned col; /**< For internal use only. */ - char str[FL_CHART_LABEL_MAX+1]; /**< For internal use only. */ + float val; /**< For internal use only. */ + unsigned col; /**< For internal use only. */ + char str[FL_CHART_LABEL_MAX+1]; /**< For internal use only. */ }; /** @@ -52,7 +50,7 @@ struct FL_CHART_ENTRY { \brief Fl_Chart displays simple charts. It is provided for Forms compatibility. - \image html charts.png + \image html charts.png \image latex charts.png "Fl_Chart" width=10cm \todo Refactor Fl_Chart::type() information. @@ -145,7 +143,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Check_Browser.H b/FL/Fl_Check_Browser.H index 2184c721b..1031a64a3 100644 --- a/FL/Fl_Check_Browser.H +++ b/FL/Fl_Check_Browser.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Fl_Check_Browser header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -55,11 +53,11 @@ public: #ifndef FL_DOXYGEN /** For internal use only. */ struct cb_item { - cb_item *next; /**< For internal use only. */ - cb_item *prev; /**< For internal use only. */ - char checked; /**< For internal use only. */ - char selected; /**< For internal use only. */ - char *text; /**< For internal use only. */ + cb_item *next; /**< For internal use only. */ + cb_item *prev; /**< For internal use only. */ + char checked; /**< For internal use only. */ + char selected; /**< For internal use only. */ + char *text; /**< For internal use only. */ }; #endif // !FL_DOXYGEN @@ -81,7 +79,7 @@ public: ~Fl_Check_Browser() { clear(); } int add(char *s); // add an (unchecked) item int add(char *s, int b); // add an item and set checked - // both return the new nitems() + // both return the new nitems() int remove(int item); // delete an item. Returns nitems() // inline const char * methods to avoid breaking binary compatibility... @@ -114,7 +112,3 @@ public: #endif // Fl_Check_Browser_H -// -// End of "$Id$". -// - diff --git a/FL/Fl_Check_Button.H b/FL/Fl_Check_Button.H index 9c67c73bb..29a0a4aa6 100644 --- a/FL/Fl_Check_Button.H +++ b/FL/Fl_Check_Button.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Check button header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2014 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef Fl_Check_Button_H @@ -33,7 +31,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Choice.H b/FL/Fl_Choice.H index 676ec658e..31da14524 100644 --- a/FL/Fl_Choice.H +++ b/FL/Fl_Choice.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Choice header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -45,7 +43,7 @@ and then: - The item's callback is done if one has been set; the - Fl_Choice is passed as the Fl_Widget* argument, + Fl_Choice is passed as the Fl_Widget* argument, along with any userdata configured for the callback. - If the item does not have a callback, the Fl_Choice widget's @@ -100,7 +98,7 @@ return Fl::run(); } \endcode - + */ class FL_EXPORT Fl_Choice : public Fl_Menu_ { protected: @@ -122,7 +120,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Clock.H b/FL/Fl_Clock.H index 74c1ede63..aa29ec04a 100644 --- a/FL/Fl_Clock.H +++ b/FL/Fl_Clock.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Clock header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2017 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -30,12 +28,12 @@ // Please change doxygen documentation below (class Fl_Clock_Output) // accordingly as well when changing the following type values: -#define FL_SQUARE_CLOCK 0 /**< type() of Square Clock variant */ -#define FL_ROUND_CLOCK 1 /**< type() of Round Clock variant */ -#define FL_ANALOG_CLOCK FL_SQUARE_CLOCK /**< An analog clock is square */ +#define FL_SQUARE_CLOCK 0 /**< type() of Square Clock variant */ +#define FL_ROUND_CLOCK 1 /**< type() of Round Clock variant */ +#define FL_ANALOG_CLOCK FL_SQUARE_CLOCK /**< An analog clock is square */ #define FL_DIGITAL_CLOCK FL_SQUARE_CLOCK /**< Not yet implemented */ -// fabien: Please keep the horizontal formatting of both images in class desc, +// fabien: Please keep the horizontal formatting of both images in class desc, // don't lose vertical space for nothing! /** @@ -45,11 +43,11 @@ The time shown on the clock is not updated. To display the current time, use Fl_Clock instead. - \htmlonly
+ \htmlonly
type() FL_SQUARE_CLOCK and FL_ROUND_CLOCK
\endhtmlonly - \image html clock.png + \image html clock.png \htmlonly \endhtmlonly - \image html round_clock.png + \image html round_clock.png \htmlonly
\endhtmlonly \image latex clock.png "FL_SQUARE_CLOCK type" width=4cm \image latex round_clock.png "FL_ROUND_CLOCK type" width=4cm @@ -57,10 +55,10 @@ Values for clock type() (\#include \): \code - #define FL_SQUARE_CLOCK 0 // Square Clock variant - #define FL_ROUND_CLOCK 1 // Round Clock variant - #define FL_ANALOG_CLOCK FL_SQUARE_CLOCK // An analog clock is square - #define FL_DIGITAL_CLOCK FL_SQUARE_CLOCK // Not yet implemented + #define FL_SQUARE_CLOCK 0 // Square Clock variant + #define FL_ROUND_CLOCK 1 // Round Clock variant + #define FL_ANALOG_CLOCK FL_SQUARE_CLOCK // An analog clock is square + #define FL_DIGITAL_CLOCK FL_SQUARE_CLOCK // Not yet implemented \endcode */ @@ -76,8 +74,8 @@ public: Fl_Clock_Output(int X, int Y, int W, int H, const char *L = 0); - void value(ulong v); // set to this Unix time - + void value(ulong v); // set to this Unix time + void value(int H, int m, int s); /** @@ -108,9 +106,9 @@ public: /** Returns the shadow drawing mode of the hands. - \returns shadow drawing mode of the hands - \retval 0 no shadows - \retval 1 draw shadows of hands (default) + \returns shadow drawing mode of the hands + \retval 0 no shadows + \retval 1 draw shadows of hands (default) */ int shadow() const {return shadow_;} @@ -124,7 +122,7 @@ public: The default is to draw the shadows (1). - \param[in] mode 1 = shadows (default), 0 = no shadows + \param[in] mode 1 = shadows (default), 0 = no shadows */ void shadow(int mode) { shadow_ = mode ? 1 : 0; } }; @@ -135,18 +133,18 @@ public: \class Fl_Clock \brief This widget provides a round analog clock display. - Fl_Clock is provided for Forms compatibility. + Fl_Clock is provided for Forms compatibility. It installs a 1-second timeout callback using Fl::add_timeout(). You can choose the rounded or square type of the clock with type(). Please see Fl_Clock_Output widget for applicable values. - \htmlonly
+ \htmlonly
type() FL_SQUARE_CLOCK and FL_ROUND_CLOCK
\endhtmlonly - \image html clock.png + \image html clock.png \htmlonly \endhtmlonly - \image html round_clock.png + \image html round_clock.png \htmlonly
\endhtmlonly - \image latex clock.png "FL_SQUARE_CLOCK type" width=4cm + \image latex clock.png "FL_SQUARE_CLOCK type" width=4cm \image latex round_clock.png "FL_ROUND_CLOCK type" width=4cm \see class Fl_Clock_Output @@ -156,14 +154,10 @@ public: int handle(int); Fl_Clock(int X, int Y, int W, int H, const char *L = 0); - + Fl_Clock(uchar t, int X, int Y, int W, int H, const char *L); - + ~Fl_Clock(); }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Color_Chooser.H b/FL/Fl_Color_Chooser.H index db4fae37a..8ba252035 100644 --- a/FL/Fl_Color_Chooser.H +++ b/FL/Fl_Color_Chooser.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Color chooser header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2019 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /** \file @@ -67,7 +65,7 @@ public: #endif // !FL_DOXYGEN -/** \addtogroup group_comdlg +/** \addtogroup group_comdlg @{ */ /** @@ -122,21 +120,21 @@ class FL_EXPORT Fl_Color_Chooser : public Fl_Group { static void rgb_cb(Fl_Widget*, void*); static void mode_cb(Fl_Widget*, void*); public: - + int handle(int e); - /** - Returns which Fl_Color_Chooser variant is currently active - \return color modes are rgb(0), byte(1), hex(2), or hsv(3) + /** + Returns which Fl_Color_Chooser variant is currently active + \return color modes are rgb(0), byte(1), hex(2), or hsv(3) */ int mode() {return choice.value();} - - /** - Set which Fl_Color_Chooser variant is currently active - \param[in] newMode color modes are rgb(0), byte(1), hex(2), or hsv(3) + + /** + Set which Fl_Color_Chooser variant is currently active + \param[in] newMode color modes are rgb(0), byte(1), hex(2), or hsv(3) */ void mode(int newMode); - + /** Returns the current hue. 0 <= hue < 6. Zero is red, one is yellow, two is green, etc. @@ -190,7 +188,3 @@ FL_EXPORT int fl_color_chooser(const char* name, double& r, double& g, double& b FL_EXPORT int fl_color_chooser(const char* name, uchar& r, uchar& g, uchar& b, int m=-1); #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Copy_Surface.H b/FL/Fl_Copy_Surface.H index 65c169492..03faa14cc 100644 --- a/FL/Fl_Copy_Surface.H +++ b/FL/Fl_Copy_Surface.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Copy-to-clipboard code for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2014 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef Fl_Copy_Surface_H @@ -22,12 +20,12 @@ #include /** Supports copying of graphical data to the clipboard. - +
After creation of an Fl_Copy_Surface object, make it the current drawing surface calling Fl_Surface_Device::push_current(), and all subsequent graphics requests will be recorded in the clipboard. It's possible to draw widgets (using Fl_Copy_Surface::draw() ) or to use any of the \ref fl_drawings or the \ref fl_attributes. Finally, delete the Fl_Copy_Surface object to load the clipboard with the graphical data. -
Fl_Gl_Window 's can be copied to the clipboard as well. +
Fl_Gl_Window 's can be copied to the clipboard as well.
Usage example: \code Fl_Widget *g = ...; // a widget you want to copy to the clipboard @@ -44,7 +42,7 @@ 2) as a color bitmap. Applications to which the clipboard content is pasted can use the format that suits them best. \li Mac OS: The graphical data are copied to the clipboard (a.k.a. pasteboard) in two 'flavors': - 1) in vectorial form as PDF data; 2) in bitmap form as a TIFF image. + 1) in vectorial form as PDF data; 2) in bitmap form as a TIFF image. Applications to which the clipboard content is pasted can use the flavor that suits them best. \li X11: the graphical data are copied to the clipboard as an image in BMP format. */ @@ -78,7 +76,7 @@ public: /** A base class describing the interface between FLTK and draw-to-clipboard operations. - + This class is only for internal use by the FLTK library. A supported platform should implement the virtual methods of this class @@ -108,7 +106,3 @@ protected: */ #endif // Fl_Copy_Surface_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_Counter.H b/FL/Fl_Counter.H index 62ef38864..eaa71f5b4 100644 --- a/FL/Fl_Counter.H +++ b/FL/Fl_Counter.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Counter header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -29,8 +27,8 @@ #endif // values for type(): -#define FL_NORMAL_COUNTER 0 /**< type() for counter with fast buttons */ -#define FL_SIMPLE_COUNTER 1 /**< type() for counter without fast buttons */ +#define FL_NORMAL_COUNTER 0 /**< type() for counter with fast buttons */ +#define FL_SIMPLE_COUNTER 1 /**< type() for counter without fast buttons */ /** Controls a single floating point value with button (or keyboard) arrows. @@ -109,7 +107,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Device.H b/FL/Fl_Device.H index f88602aa4..c03219b70 100644 --- a/FL/Fl_Device.H +++ b/FL/Fl_Device.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Definition of classes Fl_Surface_Device, Fl_Display_Device // for the Fast Light Tool Kit (FLTK). // @@ -10,14 +8,14 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // -/** \file Fl_Device.H +/** \file Fl_Device.H \brief declaration of classes Fl_Surface_Device, Fl_Display_Device, Fl_Device_Plugin. */ @@ -36,7 +34,7 @@ class Fl_Widget; A drawing surface that's susceptible to receive graphical output. Any FLTK application has at any time a current drawing surface to which all drawing requests are directed. The current surface is given by Fl_Surface_Device::surface(). - When main() begins running, the current drawing surface has been set to the computer's display, + When main() begins running, the current drawing surface has been set to the computer's display, an instance of the Fl_Display_Device class. A drawing surface other than the computer's display, is typically used as follows: @@ -53,7 +51,7 @@ class Fl_Widget; For back-compatibility, it is also possible to use the Fl_Surface_Device::set_current() member function to change the current drawing surface, once to the new surface, once to the previous one. - + Class Fl_Surface_Device can also be derived to define new kinds of graphical output usable with FLTK drawing functions. An example would be to draw to a PDF file. This would require to create a new class, @@ -105,7 +103,7 @@ public: /** This plugin socket allows the integration of new device drivers for special - window or screen types. + window or screen types. This class is not intended for use outside the FLTK library. It is currently used to provide an automated printing service and screen capture for OpenGL windows, if linked with fltk_gl. @@ -130,7 +128,3 @@ public: }; #endif // Fl_Device_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_Dial.H b/FL/Fl_Dial.H index bf0de19ca..d88416164 100644 --- a/FL/Fl_Dial.H +++ b/FL/Fl_Dial.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Dial header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -27,14 +25,14 @@ #endif // values for type(): -#define FL_NORMAL_DIAL 0 /**< type() for dial variant with dot */ -#define FL_LINE_DIAL 1 /**< type() for dial variant with line */ -#define FL_FILL_DIAL 2 /**< type() for dial variant with filled arc */ +#define FL_NORMAL_DIAL 0 /**< type() for dial variant with dot */ +#define FL_LINE_DIAL 1 /**< type() for dial variant with line */ +#define FL_FILL_DIAL 2 /**< type() for dial variant with filled arc */ /** The Fl_Dial widget provides a circular dial to control a single floating point value. -

\image html dial.png +

\image html dial.png \image latex dial.png "Fl_Dial" width=4cm Use type() to set the type of the dial to:

    @@ -63,7 +61,7 @@ public: and label string. The default type is FL_NORMAL_DIAL. */ Fl_Dial(int x,int y,int w,int h, const char *l = 0); - /** + /** Sets Or gets 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 @@ -82,7 +80,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Double_Window.H b/FL/Fl_Double_Window.H index fe3396a52..7ba197f8b 100644 --- a/FL/Fl_Double_Window.H +++ b/FL/Fl_Double_Window.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Double-buffered window header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -50,13 +48,13 @@ public: void hide(); void flush(); ~Fl_Double_Window(); - + /** Creates a new Fl_Double_Window widget using the given position, size, and label (title) string. */ Fl_Double_Window(int W, int H, const char *l = 0); - + /** See Fl_Double_Window::Fl_Double_Window(int w, int h, const char *label = 0) */ @@ -65,7 +63,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Export.H b/FL/Fl_Export.H index 1b51c2584..6dee15a4c 100644 --- a/FL/Fl_Export.H +++ b/FL/Fl_Export.H @@ -1,6 +1,4 @@ /* - * "$Id$" - * * Windows DLL export . * * Copyright 1998-2018 by Bill Spitzak and others. @@ -9,11 +7,11 @@ * the file "COPYING" which should have been included with this file. If this * file is missing or damaged, see the license at: * - * http://www.fltk.org/COPYING.php + * https://www.fltk.org/COPYING.php * - * Please report all bugs and problems on the following page: + * Please see the following page on how to report bugs and issues: * - * http://www.fltk.org/str.php + * https://www.fltk.org/bugs.php */ #ifndef Fl_Export_H @@ -25,9 +23,9 @@ # if defined(FL_DLL) # ifdef FL_LIBRARY -# define FL_EXPORT __declspec(dllexport) +# define FL_EXPORT __declspec(dllexport) # else -# define FL_EXPORT __declspec(dllimport) +# define FL_EXPORT __declspec(dllimport) # endif /* FL_LIBRARY */ # elif __GNUC__ >= 4 # define FL_EXPORT __attribute__ ((visibility ("default"))) @@ -36,7 +34,3 @@ # endif /* FL_DLL */ #endif /* !Fl_Export_H */ - -/* - * End of "$Id$". - */ diff --git a/FL/Fl_File_Browser.H b/FL/Fl_File_Browser.H index 7e41e5e25..67b0a9d81 100644 --- a/FL/Fl_File_Browser.H +++ b/FL/Fl_File_Browser.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // FileBrowser definitions. // // Copyright 1999-2010 by Michael Sweet. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -37,17 +35,17 @@ /** The Fl_File_Browser widget displays a list of filenames, optionally with file-specific icons. */ class FL_EXPORT Fl_File_Browser : public Fl_Browser { - - int filetype_; - const char *directory_; - uchar iconsize_; - const char *pattern_; - int full_height() const; - int item_height(void *) const; - int item_width(void *) const; - void item_draw(void *, int, int, int, int) const; - int incr_height() const { return (item_height(0)); } + int filetype_; + const char *directory_; + uchar iconsize_; + const char *pattern_; + + int full_height() const; + int item_height(void *) const; + int item_width(void *) const; + void item_draw(void *, int, int, int, int) const; + int incr_height() const { return (item_height(0)); } public: enum { FILES, DIRECTORIES }; @@ -59,34 +57,34 @@ public: Fl_File_Browser(int, int, int, int, const char * = 0); /** Sets or gets the size of the icons. The default size is 20 pixels. */ - uchar iconsize() const { return (iconsize_); }; + uchar iconsize() const { return (iconsize_); }; /** Sets or gets the size of the icons. The default size is 20 pixels. */ - void iconsize(uchar s) { iconsize_ = s; redraw(); }; + void iconsize(uchar s) { iconsize_ = s; redraw(); }; /** Sets or gets the filename filter. The pattern matching uses the fl_filename_match() function in FLTK. */ - void filter(const char *pattern); + void filter(const char *pattern); /** Sets or gets the filename filter. The pattern matching uses the fl_filename_match() function in FLTK. */ - const char *filter() const { return (pattern_); }; + const char *filter() const { return (pattern_); }; /** Loads the specified directory into the browser. If icons have been loaded then the correct icon is associated with each file in the list. - +

    The sort argument specifies a sort function to be used with fl_filename_list(). */ - int load(const char *directory, Fl_File_Sort_F *sort = fl_numericsort); + int load(const char *directory, Fl_File_Sort_F *sort = fl_numericsort); Fl_Fontsize textsize() const { return Fl_Browser::textsize(); }; - void textsize(Fl_Fontsize s) { Fl_Browser::textsize(s); iconsize_ = (uchar)(3 * s / 2); }; + void textsize(Fl_Fontsize s) { Fl_Browser::textsize(s); iconsize_ = (uchar)(3 * s / 2); }; /** Sets or gets the file browser type, FILES or @@ -94,18 +92,14 @@ public: files and directories are shown. Otherwise only directories are shown. */ - int filetype() const { return (filetype_); }; + int filetype() const { return (filetype_); }; /** Sets or gets the file browser type, FILES or DIRECTORIES. When set to FILES, both files and directories are shown. Otherwise only directories are shown. */ - void filetype(int t) { filetype_ = t; }; + void filetype(int t) { filetype_ = t; }; }; #endif // !_Fl_File_Browser_H_ - -// -// End of "$Id$". -// diff --git a/FL/Fl_File_Chooser.H b/FL/Fl_File_Chooser.H index 4ce459ebf..702c4ff9f 100644 --- a/FL/Fl_File_Chooser.H +++ b/FL/Fl_File_Chooser.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Fl_File_Chooser dialog for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2015 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // // ======================================================================= // DO NOT EDIT FL/Fl_File_Chooser.H and src/Fl_File_Chooser.cxx !!! @@ -47,24 +45,24 @@ class FL_EXPORT Fl_File_Chooser { public: - enum { SINGLE = 0, MULTI = 1, CREATE = 2, DIRECTORY = 4 }; + enum { SINGLE = 0, MULTI = 1, CREATE = 2, DIRECTORY = 4 }; private: - static Fl_Preferences *prefs_; - void (*callback_)(Fl_File_Chooser*, void *); - void *data_; - char directory_[FL_PATH_MAX]; - char pattern_[FL_PATH_MAX]; - char preview_text_[2048]; - int type_; - void favoritesButtonCB(); - void favoritesCB(Fl_Widget *w); - void fileListCB(); - void fileNameCB(); - void newdir(); - static void previewCB(Fl_File_Chooser *fc); - void showChoiceCB(); - void update_favorites(); - void update_preview(); + static Fl_Preferences *prefs_; + void (*callback_)(Fl_File_Chooser*, void *); + void *data_; + char directory_[FL_PATH_MAX]; + char pattern_[FL_PATH_MAX]; + char preview_text_[2048]; + int type_; + void favoritesButtonCB(); + void favoritesCB(Fl_Widget *w); + void fileListCB(); + void fileNameCB(); + void newdir(); + static void previewCB(Fl_File_Chooser *fc); + void showChoiceCB(); + void update_favorites(); + void update_preview(); public: Fl_File_Chooser(const char *d, const char *p, int t, const char *title); private: @@ -131,10 +129,10 @@ public: void callback(void (*cb)(Fl_File_Chooser *, void *), void *d = 0); void color(Fl_Color c); Fl_Color color(); - int count(); - void directory(const char *d); + int count(); + void directory(const char *d); char * directory(); - void filter(const char *p); + void filter(const char *p); const char * filter(); int filter_value(); void filter_value(int f); @@ -145,15 +143,15 @@ public: const char * label(); void ok_label(const char *l); const char * ok_label(); - void preview(int e); - int preview() const { return previewButton->value(); }; + void preview(int e); + int preview() const { return previewButton->value(); }; private: - void showHidden(int e); - void remove_hidden_files(); + void showHidden(int e); + void remove_hidden_files(); public: - void rescan(); - void rescan_keep_filename(); - void show(); + void rescan(); + void rescan_keep_filename(); + void show(); int shown(); void textcolor(Fl_Color c); Fl_Color textcolor(); @@ -165,72 +163,72 @@ public: int type(); void * user_data() const; void user_data(void *d); - const char *value(int f = 1); - void value(const char *filename); + const char *value(int f = 1); + void value(const char *filename); int visible(); /** [standard text may be customized at run-time] */ - static const char *add_favorites_label; + static const char *add_favorites_label; /** [standard text may be customized at run-time] */ - static const char *all_files_label; + static const char *all_files_label; /** [standard text may be customized at run-time] */ - static const char *custom_filter_label; + static const char *custom_filter_label; /** [standard text may be customized at run-time] */ - static const char *existing_file_label; + static const char *existing_file_label; /** [standard text may be customized at run-time] */ - static const char *favorites_label; + static const char *favorites_label; /** [standard text may be customized at run-time] */ - static const char *filename_label; + static const char *filename_label; /** [standard text may be customized at run-time] */ - static const char *filesystems_label; + static const char *filesystems_label; /** [standard text may be customized at run-time] */ - static const char *manage_favorites_label; + static const char *manage_favorites_label; /** [standard text may be customized at run-time] */ - static const char *new_directory_label; + static const char *new_directory_label; /** [standard text may be customized at run-time] */ - static const char *new_directory_tooltip; + static const char *new_directory_tooltip; /** [standard text may be customized at run-time] */ - static const char *preview_label; + static const char *preview_label; /** [standard text may be customized at run-time] */ - static const char *save_label; + static const char *save_label; /** [standard text may be customized at run-time] */ - static const char *show_label; + static const char *show_label; /** [standard text may be customized at run-time] */ - static const char *hidden_label; + static const char *hidden_label; /** the sort function that is used when loading the contents of a directory. */ - static Fl_File_Sort_F *sort; + static Fl_File_Sort_F *sort; private: - Fl_Widget* ext_group; + Fl_Widget* ext_group; public: Fl_Widget* add_extra(Fl_Widget* gr); }; @@ -239,7 +237,3 @@ FL_EXPORT char *fl_file_chooser(const char *message,const char *pat,const char * FL_EXPORT void fl_file_chooser_callback(void (*cb)(const char*)); FL_EXPORT void fl_file_chooser_ok_label(const char*l); #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_File_Icon.H b/FL/Fl_File_Icon.H index 6ca93d28e..c63358689 100644 --- a/FL/Fl_File_Icon.H +++ b/FL/Fl_File_Icon.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Fl_File_Icon definitions. // // Copyright 1999-2010 by Michael Sweet. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -33,61 +31,61 @@ // Special color value for the icon color. // -# define FL_ICON_COLOR (Fl_Color)0xffffffff /**< icon color [background?]*/ +# define FL_ICON_COLOR (Fl_Color)0xffffffff /**< icon color [background?]*/ // // Fl_File_Icon class... // -/** - The Fl_File_Icon class manages icon images that can be used +/** + The Fl_File_Icon class manages icon images that can be used as labels in other widgets and as icons in the FileBrowser widget. */ -class FL_EXPORT Fl_File_Icon { //// Icon data +class FL_EXPORT Fl_File_Icon { //// Icon data - static Fl_File_Icon *first_; // Pointer to first icon/filetype - Fl_File_Icon *next_; // Pointer to next icon/filetype - const char *pattern_; // Pattern string - int type_; // Match only if directory or file? - int num_data_; // Number of data elements - int alloc_data_; // Number of allocated elements - short *data_; // Icon data + static Fl_File_Icon *first_; // Pointer to first icon/filetype + Fl_File_Icon *next_; // Pointer to next icon/filetype + const char *pattern_; // Pattern string + int type_; // Match only if directory or file? + int num_data_; // Number of data elements + int alloc_data_; // Number of allocated elements + short *data_; // Icon data public: - enum // File types + enum // File types { - ANY, // Any kind of file - PLAIN, // Only plain files - FIFO, // Only named pipes - DEVICE, // Only character and block devices - LINK, // Only symbolic links - DIRECTORY // Only directories + ANY, // Any kind of file + PLAIN, // Only plain files + FIFO, // Only named pipes + DEVICE, // Only character and block devices + LINK, // Only symbolic links + DIRECTORY // Only directories }; - enum // Data opcodes + enum // Data opcodes { - END, // End of primitive/icon - COLOR, // Followed by color value (2 shorts) - LINE, // Start of line - CLOSEDLINE, // Start of closed line - POLYGON, // Start of polygon - OUTLINEPOLYGON, // Followed by outline color (2 shorts) - VERTEX // Followed by scaled X,Y + END, // End of primitive/icon + COLOR, // Followed by color value (2 shorts) + LINE, // Start of line + CLOSEDLINE, // Start of closed line + POLYGON, // Start of polygon + OUTLINEPOLYGON, // Followed by outline color (2 shorts) + VERTEX // Followed by scaled X,Y }; Fl_File_Icon(const char *p, int t, int nd = 0, short *d = 0); ~Fl_File_Icon(); - short *add(short d); + short *add(short d); /** Adds a color value to the icon array, returning a pointer to it. \param[in] c color value */ - short *add_color(Fl_Color c) - { short *d = add((short)COLOR); add((short)(c >> 16)); add((short)c); return (d); } + short *add_color(Fl_Color c) + { short *d = add((short)COLOR); add((short)(c >> 16)); add((short)c); return (d); } /** Adds a vertex value to the icon array, returning a pointer to it. @@ -95,8 +93,8 @@ class FL_EXPORT Fl_File_Icon { //// Icon data The origin (0.0) is in the lower-lefthand corner of the icon. \param[in] x, y vertex coordinates */ - short *add_vertex(int x, int y) - { short *d = add((short)VERTEX); add((short)x); add((short)y); return (d); } + short *add_vertex(int x, int y) + { short *d = add((short)VERTEX); add((short)x); add((short)y); return (d); } /** Adds a vertex value to the icon array, returning a pointer to it. @@ -104,35 +102,35 @@ class FL_EXPORT Fl_File_Icon { //// Icon data The origin (0.0) is in the lower-lefthand corner of the icon. \param[in] x, y vertex coordinates */ - short *add_vertex(float x, float y) - { short *d = add((short)VERTEX); add((short)(x * 10000.0)); - add((short)(y * 10000.0)); return (d); } + short *add_vertex(float x, float y) + { short *d = add((short)VERTEX); add((short)(x * 10000.0)); + add((short)(y * 10000.0)); return (d); } /** Clears all icon data from the icon.*/ - void clear() { num_data_ = 0; } + void clear() { num_data_ = 0; } - void draw(int x, int y, int w, int h, Fl_Color ic, int active = 1); + void draw(int x, int y, int w, int h, Fl_Color ic, int active = 1); - void label(Fl_Widget *w); + void label(Fl_Widget *w); - static void labeltype(const Fl_Label *o, int x, int y, int w, int h, Fl_Align a); - void load(const char *f); - int load_fti(const char *fti); - int load_image(const char *i); + static void labeltype(const Fl_Label *o, int x, int y, int w, int h, Fl_Align a); + void load(const char *f); + int load_fti(const char *fti); + int load_image(const char *i); /** Returns next file icon object. See Fl_File_Icon::first() */ - Fl_File_Icon *next() { return (next_); } + Fl_File_Icon *next() { return (next_); } /** Returns the filename matching pattern for the icon.*/ - const char *pattern() { return (pattern_); } + const char *pattern() { return (pattern_); } /** Returns the number of words of data used by the icon.*/ - int size() { return (num_data_); } + int size() { return (num_data_); } /** Returns the filetype associated with the icon, which can be one of the following: - + \li Fl_File_Icon::ANY, any kind of file. \li Fl_File_Icon::PLAIN, plain files. \li Fl_File_Icon::FIFO, named pipes. @@ -140,20 +138,16 @@ class FL_EXPORT Fl_File_Icon { //// Icon data \li Fl_File_Icon::LINK, symbolic links. \li Fl_File_Icon::DIRECTORY, directories. */ - int type() { return (type_); } + int type() { return (type_); } /** Returns the data array for the icon.*/ - short *value() { return (data_); } + short *value() { return (data_); } static Fl_File_Icon *find(const char *filename, int filetype = ANY); /** Returns a pointer to the first icon in the list.*/ static Fl_File_Icon *first() { return (first_); } - static void load_system_icons(void); + static void load_system_icons(void); }; #endif // !_Fl_Fl_File_Icon_H_ - -// -// End of "$Id$". -// diff --git a/FL/Fl_File_Input.H b/FL/Fl_File_Input.H index 23de89b68..2c8ce4c2a 100644 --- a/FL/Fl_File_Input.H +++ b/FL/Fl_File_Input.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // File_Input header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -10,11 +8,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -36,7 +34,7 @@ FL_WHEN_RELEASE callback won't be called if the directory clicked is the same as the current one. -

    \image html Fl_File_Input.png

    +

    \image html Fl_File_Input.png

    \image latex Fl_File_Input.png "Fl_File_Input" width=6cm \note As all Fl_Input derived objects, Fl_File_Input may call its callback @@ -45,15 +43,15 @@ to avoid reentrant calls if you plan to show another window or dialog box in the callback. */ class FL_EXPORT Fl_File_Input : public Fl_Input { - - char ok_entry_; - uchar down_box_; - short buttons_[200]; - short pressed_; - void draw_buttons(); - int handle_button(int event); - void update_buttons(); + char ok_entry_; + uchar down_box_; + short buttons_[200]; + short pressed_; + + void draw_buttons(); + int handle_button(int event); + void update_buttons(); public: @@ -66,9 +64,9 @@ protected: public: /** Gets the box type used for the navigation bar. */ - Fl_Boxtype down_box() const { return (Fl_Boxtype)down_box_; } + Fl_Boxtype down_box() const { return (Fl_Boxtype)down_box_; } /** Sets the box type to use for the navigation bar. */ - void down_box(Fl_Boxtype b) { down_box_ = b; } + void down_box(Fl_Boxtype b) { down_box_ = b; } /** Gets the current error color. @@ -79,7 +77,7 @@ public: \deprecated Will be removed in FLTK 1.5.0 or higher. \todo Remove Fl_File_Input::errorcolor() in FLTK 1.5.0 or higher. */ - Fl_Color errorcolor() const { return FL_RED; } + Fl_Color errorcolor() const { return FL_RED; } /** Sets the current error color to \p c. @@ -89,21 +87,16 @@ public: \deprecated Will be removed in FLTK 1.5.0 or higher. \todo Remove Fl_File_Input::errorcolor(Fl_Color) in FLTK 1.5.0 or higher. */ - void errorcolor(Fl_Color c) {} + void errorcolor(Fl_Color c) {} - int value(const char *str); - int value(const char *str, int len); + int value(const char *str); + int value(const char *str, int len); /** Returns the current value, which is a pointer to an internal buffer and is valid only until the next event is handled. */ - const char *value() { return Fl_Input_::value(); } + const char *value() { return Fl_Input_::value(); } }; #endif // !Fl_File_Input_H - - -// -// End of "$Id$". -// diff --git a/FL/Fl_Fill_Dial.H b/FL/Fl_Fill_Dial.H index dbf2df05c..fc66cea62 100644 --- a/FL/Fl_Fill_Dial.H +++ b/FL/Fl_Fill_Dial.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Filled dial header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -32,7 +30,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Fill_Slider.H b/FL/Fl_Fill_Slider.H index 299c38e61..9290ed0c2 100644 --- a/FL/Fl_Fill_Slider.H +++ b/FL/Fl_Fill_Slider.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Filled slider header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -31,7 +29,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Float_Input.H b/FL/Fl_Float_Input.H index f60d4a284..7524e8dc2 100644 --- a/FL/Fl_Float_Input.H +++ b/FL/Fl_Float_Input.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Floating point input header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2011 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -41,7 +39,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_FormsBitmap.H b/FL/Fl_FormsBitmap.H index a0095fe6e..e5d6fb1db 100644 --- a/FL/Fl_FormsBitmap.H +++ b/FL/Fl_FormsBitmap.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Forms bitmap header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -24,7 +22,7 @@ #include "Fl_Bitmap.H" -/** +/** Forms compatibility Bitmap Image Widget */ class FL_EXPORT Fl_FormsBitmap : public Fl_Widget { @@ -41,7 +39,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_FormsPixmap.H b/FL/Fl_FormsPixmap.H index 6700addae..43cccd966 100644 --- a/FL/Fl_FormsPixmap.H +++ b/FL/Fl_FormsPixmap.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Forms pixmap header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -48,7 +46,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Free.H b/FL/Fl_Free.H index 2c6e4328a..1424a5956 100644 --- a/FL/Fl_Free.H +++ b/FL/Fl_Free.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Forms free header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -26,33 +24,33 @@ #include "Fl_Widget.H" #endif -#define FL_NORMAL_FREE 1 /**< normal event handling */ -#define FL_SLEEPING_FREE 2 /**< deactivate event handling */ -#define FL_INPUT_FREE 3 /**< accepts FL_FOCUS events */ -#define FL_CONTINUOUS_FREE 4 /**< repeated timeout handling */ -#define FL_ALL_FREE 5 /**< FL_INPUT_FREE and FL_CONTINOUS_FREE */ +#define FL_NORMAL_FREE 1 /**< normal event handling */ +#define FL_SLEEPING_FREE 2 /**< deactivate event handling */ +#define FL_INPUT_FREE 3 /**< accepts FL_FOCUS events */ +#define FL_CONTINUOUS_FREE 4 /**< repeated timeout handling */ +#define FL_ALL_FREE 5 /**< FL_INPUT_FREE and FL_CONTINOUS_FREE */ /** appropriate signature for handle function */ typedef int (*FL_HANDLEPTR)(Fl_Widget *, int , float, float, char); /** Emulation of the Forms "free" 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. There are five types of free, which determine when the handle function is called: - + \li \c FL_NORMAL_FREE normal event handling. \li \c FL_SLEEPING_FREE deactivates event handling (widget is inactive). \li \c FL_INPUT_FREE accepts FL_FOCUS events. \li \c FL_CONTINUOUS_FREE sets a timeout callback 100 times a second and provides an FL_STEP event. This has obvious - detrimental effects on machine performance. + detrimental effects on machine performance. \li \c FL_ALL_FREE same as FL_INPUT_FREE and FL_CONTINUOUS_FREE. - + */ class FL_EXPORT Fl_Free : public Fl_Widget { FL_HANDLEPTR hfunc; @@ -66,15 +64,11 @@ public: }; // old event names for compatibility: -#define FL_MOUSE FL_DRAG /**< for backward compatibility */ -#define FL_DRAW 100 /**< for backward compatibility [UNUSED]*/ -#define FL_STEP 101 /**< for backward compatibility */ -#define FL_FREEMEM 102 /**< for backward compatibility [UNUSED]*/ -#define FL_FREEZE 103 /**< for backward compatibility [UNUSED]*/ -#define FL_THAW 104 /**< for backward compatibility [UNUSED]*/ +#define FL_MOUSE FL_DRAG /**< for backward compatibility */ +#define FL_DRAW 100 /**< for backward compatibility [UNUSED]*/ +#define FL_STEP 101 /**< for backward compatibility */ +#define FL_FREEMEM 102 /**< for backward compatibility [UNUSED]*/ +#define FL_FREEZE 103 /**< for backward compatibility [UNUSED]*/ +#define FL_THAW 104 /**< for backward compatibility [UNUSED]*/ #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_GIF_Image.H b/FL/Fl_GIF_Image.H index ff781acd8..673e9c0a7 100644 --- a/FL/Fl_GIF_Image.H +++ b/FL/Fl_GIF_Image.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // GIF image header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2020 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -42,7 +40,3 @@ protected: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Gl_Window.H b/FL/Fl_Gl_Window.H index 1369b58e8..218cf676e 100644 --- a/FL/Fl_Gl_Window.H +++ b/FL/Fl_Gl_Window.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // OpenGL header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2016 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -28,7 +26,7 @@ class Fl_Gl_Choice; // structure to hold result of glXChooseVisual class Fl_Gl_Window_Driver; /** The Fl_Gl_Window widget sets things up so OpenGL works. - + It also keeps an OpenGL "context" 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 draw() returns. @@ -42,7 +40,7 @@ class Fl_Gl_Window_Driver; Please note that the FLTK drawing and clipping functions will not work inside an Fl_Gl_Window. All drawing should be done using OpenGL calls exclusively. - + \see \ref opengl_highdpi \note FLTK 1.4 introduces a driver system for graphic calls. It is now possible @@ -81,9 +79,9 @@ public: int handle(int); /** Returns a pointer to the window's Fl_Gl_Window_Driver object */ Fl_Gl_Window_Driver *gl_driver() {return pGlWindowDriver;} - + /** - Is turned off when FLTK creates a new context for this window or + Is turned off when FLTK creates a new context for this window or when the window resizes, and is turned on \e after draw() is called. You can use this inside your draw() method to avoid unnecessarily initializing the OpenGL context. Just do this: @@ -100,28 +98,28 @@ public: ... draw your geometry here ... } \endcode - + You can turn valid() on by calling valid(1). You should only do this after fixing the transformation inside a draw() - or after make_current(). This is done automatically after + or after make_current(). This is done automatically after draw() returns. */ char valid() const {return valid_f_ & 1;} /** - See char Fl_Gl_Window::valid() const + See char Fl_Gl_Window::valid() const */ void valid(char v) {if (v) valid_f_ |= 1; else valid_f_ &= 0xfe;} void invalidate(); /** - Will only be set if the + Will only be set if the OpenGL context is created or recreated. It differs from Fl_Gl_Window::valid() which is also set whenever the context changes size. */ char context_valid() const {return valid_f_ & 2;} /** - See char Fl_Gl_Window::context_valid() const + See char Fl_Gl_Window::context_valid() const */ void context_valid(char v) {if (v) valid_f_ |= 2; else valid_f_ &= 0xfd;} @@ -139,7 +137,7 @@ public: /** Set or change the OpenGL capabilites of the window. The value can be any of the following OR'd together: - + - \c FL_RGB - RGB color (not indexed) - \c FL_RGB8 - RGB color with at least 8 bits of each color - \c FL_INDEX - Indexed mode @@ -151,14 +149,14 @@ public: - \c FL_STENCIL - stencil buffer - \c FL_MULTISAMPLE - multisample antialiasing - \c FL_OPENGL3 - use OpenGL version 3.0 or more. - + FL_RGB and FL_SINGLE have a value of zero, so they are "on" unless you give FL_INDEX or FL_DOUBLE. - + If the desired combination cannot be done, FLTK will try turning off FL_MULTISAMPLE. If this also fails the show() will call Fl::error() and not show the window. - + 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 @@ -166,14 +164,14 @@ public: window to blink, raise to the top, and be de-iconized, and the xid() 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! - + mode() must not be called within draw() since it changes the current context. - + The FL_OPENGL3 flag is required to access OpenGL version 3 or more under the X11 and MacOS platforms; it's optional under Windows. See more details in \ref opengl3. - + \version the FL_OPENGL3 flag appeared in version 1.3.4 */ int mode(int a) {return mode(a,0);} @@ -204,7 +202,7 @@ public: // Note: Doxygen docs in Fl_Widget.H to avoid redundancy. virtual Fl_Gl_Window* as_gl_window() {return this;} - + float pixels_per_unit(); /** Gives the window width in OpenGL pixels. When an Fl_Gl_Window is mapped to a HighDPI display, the value given by Fl_Gl_Window::w() @@ -226,10 +224,10 @@ public: \version 1.3.4 */ int pixel_h() { return int(pixels_per_unit() * h() + 0.5f); } - + ~Fl_Gl_Window(); /** - Creates a new Fl_Gl_Window widget using the given size, and label string. + Creates a new Fl_Gl_Window widget using the given size, and label string. The default boxtype is FL_NO_BOX. The default mode is FL_RGB|FL_DOUBLE|FL_DEPTH. */ Fl_Gl_Window(int W, int H, const char *l=0) : Fl_Window(W,H,l) {init();} @@ -244,7 +242,3 @@ public: }; #endif // Fl_Gl_Window_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_Graphics_Driver.H b/FL/Fl_Graphics_Driver.H index b49e71185..88c70b3fd 100644 --- a/FL/Fl_Graphics_Driver.H +++ b/FL/Fl_Graphics_Driver.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Definition of classes Fl_Graphics_Driver, Fl_Surface_Device, Fl_Display_Device // for the Fast Light Tool Kit (FLTK). // @@ -10,11 +8,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /** @@ -64,9 +62,9 @@ struct Fl_Fontdesc; drawing operations (e.g., fl_rectf()) that operate on the current drawing surface (see Fl_Surface_Device). Drawing operations are functionally presented in \ref drawing and as function lists in the \ref fl_drawings and \ref fl_attributes modules. - + Fl_Surface_Device::surface()->driver() - gives at any time the graphics driver used by all drawing operations. + gives at any time the graphics driver used by all drawing operations. For compatibility with older FLTK versions, the \ref fl_graphics_driver global variable gives the same result. Its value changes when drawing operations are directed to another drawing surface by Fl_Surface_Device::push_current() / @@ -130,7 +128,7 @@ and draw_fixed(Fl_RGB_Image *,....) because scale-and-draw may require function Alphablend() from MSIMG32.DLL. In the absence of that, the draw_rgb() implementation calls Fl_Graphics_Driver::draw_rgb() which runs Fl_GDI_Graphics_Driver::draw_fixed(Fl_RGB_Image*,...). - + Graphics drivers also implement cache(Fl_Pixmap*), cache(Fl_Bitmap*) and cache(Fl_RGB_Image*) to compute the cached form of all image types, and uncache(Fl_RGB_Image *,...), uncache_pixmap(fl_uintptr_t) and delete_bitmask(Fl_Bitmask) to destroy cached image forms. @@ -235,7 +233,7 @@ protected: static Fl_Offscreen get_offscreen_and_delete_image_surface(Fl_Image_Surface*); /** For internal library use only */ static void draw_empty(Fl_Image* img, int X, int Y) {img->draw_empty(X, Y);} - + Fl_Graphics_Driver(); void cache_size(Fl_Image *img, int &width, int &height); static unsigned need_pixmap_bg_color; @@ -402,10 +400,10 @@ struct Fl_Fontdesc { - scale the cached offscreen of image objects - scale the pixel arrays used when performing direct image draws - call the member functions of a platform-specific, - Fl_Scalable_Graphics_Driver-derived class that do the drawings with adequately + Fl_Scalable_Graphics_Driver-derived class that do the drawings with adequately scaled coordinates. The member functions are named with the _unscaled suffix. - scale and unscale the clipping region. - + This class is presently used by the X11 and Windows platforms to support HiDPI displays. In the future, it may also be used by other platforms. */ @@ -492,7 +490,3 @@ protected: \} \endcond */ - -// -// End of "$Id$". -// diff --git a/FL/Fl_Group.H b/FL/Fl_Group.H index e782b5219..26baf9726 100644 --- a/FL/Fl_Group.H +++ b/FL/Fl_Group.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Group header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2017 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -52,7 +50,7 @@ class FL_EXPORT Fl_Group : public Fl_Widget { int navigation(int); static Fl_Group *current_; - + // unimplemented copy ctor and assignment operator Fl_Group(const Fl_Group&); Fl_Group& operator=(const Fl_Group&); @@ -84,7 +82,7 @@ public: Fl_Widget* child(int n) const {return array()[n];} int find(const Fl_Widget*) const; /** - See int Fl_Group::find(const Fl_Widget *w) const + See int Fl_Group::find(const Fl_Widget *w) const */ int find(const Fl_Widget& o) const {return find(&o);} Fl_Widget* const* array() const; @@ -98,7 +96,7 @@ public: virtual ~Fl_Group(); void add(Fl_Widget&); /** - See void Fl_Group::add(Fl_Widget &w) + See void Fl_Group::add(Fl_Widget &w) */ void add(Fl_Widget* o) {add(*o);} void insert(Fl_Widget&, int i); @@ -117,7 +115,7 @@ public: void clear(); /** - See void Fl_Group::resizable(Fl_Widget *box) + See void Fl_Group::resizable(Fl_Widget *box) */ void resizable(Fl_Widget& o) {resizable_ = &o;} /** @@ -132,11 +130,11 @@ public: \image html resizebox1.png
    - + \image html resizebox2.png - + \image latex resizebox1.png "before resize" width=4cm - + \image latex resizebox2.png "after resize" width=4.85cm The resizable may be set to the group itself, in which case all the @@ -152,7 +150,7 @@ public: */ void resizable(Fl_Widget* o) {resizable_ = o;} /** - See void Fl_Group::resizable(Fl_Widget *box) + See void Fl_Group::resizable(Fl_Widget *box) */ Fl_Widget* resizable() const {return resizable_;} /** @@ -164,7 +162,7 @@ public: /** Controls whether the group widget clips the drawing of child widgets to its bounding box. - + Set \p c to 1 if you want to clip the child widgets to the bounding box. @@ -204,7 +202,7 @@ public: /** This is a dummy class that allows you to end a Fl_Group in a constructor list of a class: - \code + \code class MyClass { Fl_Group group; Fl_Button button_in_group; @@ -218,7 +216,7 @@ public: end(), button_outside_group(10,120,60,30) { [..ctor code..] - } + } \endcode */ class FL_EXPORT Fl_End { @@ -228,7 +226,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Help_Dialog.H b/FL/Fl_Help_Dialog.H index 67c3e9f87..ef5f31028 100644 --- a/FL/Fl_Help_Dialog.H +++ b/FL/Fl_Help_Dialog.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Fl_Help_Dialog dialog for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2015 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // // ======================================================================== // DO NOT EDIT FL/Fl_Help_Dialog.H and src/Fl_Help_Dialog.cxx !!! @@ -36,11 +34,11 @@ #include class FL_EXPORT Fl_Help_Dialog { - int index_; - int max_; + int index_; + int max_; int line_[100]; // FIXME: we must remove those static numbers char file_[100][FL_PATH_MAX]; // FIXME: we must remove those static numbers - int find_pos_; + int find_pos_; public: Fl_Help_Dialog(); private: @@ -84,7 +82,3 @@ public: int y(); }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Help_View.H b/FL/Fl_Help_View.H index 19932cb2e..4df878bf3 100644 --- a/FL/Fl_Help_View.H +++ b/FL/Fl_Help_View.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Help Viewer widget definitions. // // Copyright 1997-2010 by Easy Software Products. @@ -10,11 +8,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -45,15 +43,15 @@ typedef const char *(Fl_Help_Func)(Fl_Widget *, const char *); // struct Fl_Help_Block { - const char *start, // Start of text - *end; // End of text - uchar border; // Draw border? - Fl_Color bgcolor; // Background color - int x, // Indentation/starting X coordinate - y, // Starting Y coordinate - w, // Width - h; // Height - int line[32]; // Left starting position for each line + const char *start, // Start of text + *end; // End of text + uchar border; // Draw border? + Fl_Color bgcolor; // Background color + int x, // Indentation/starting X coordinate + y, // Starting Y coordinate + w, // Width + h; // Height + int line[32]; // Left starting position for each line }; // @@ -61,12 +59,12 @@ struct Fl_Help_Block { // /** Definition of a link for the html viewer. */ struct Fl_Help_Link { - char filename[192], ///< Reference filename - name[32]; ///< Link target (blank if none) - int x, ///< X offset of link text - y, ///< Y offset of link text - w, ///< Width of link text - h; ///< Height of link text + char filename[192], ///< Reference filename + name[32]; ///< Link target (blank if none) + int x, ///< X offset of link text + y, ///< Y offset of link text + w, ///< Width of link text + h; ///< Height of link text }; /* @@ -93,22 +91,22 @@ struct FL_EXPORT Fl_Help_Font_Stack { nfonts_ = 0; } - void init(Fl_Font f, Fl_Fontsize s, Fl_Color c) { + void init(Fl_Font f, Fl_Fontsize s, Fl_Color c) { nfonts_ = 0; elts_[nfonts_].set(f, s, c); - fl_font(f, s); + fl_font(f, s); fl_color(c); } /** Gets the top (current) element on the stack. */ void top(Fl_Font &f, Fl_Fontsize &s, Fl_Color &c) { elts_[nfonts_].get(f, s, c); } /** Pushes the font style triplet on the stack, also calls fl_font() & fl_color() adequately */ - void push(Fl_Font f, Fl_Fontsize s, Fl_Color c) { + void push(Fl_Font f, Fl_Fontsize s, Fl_Color c) { if (nfonts_ < MAX_FL_HELP_FS_ELTS-1) nfonts_ ++; elts_[nfonts_].set(f, s, c); - fl_font(f, s); fl_color(c); + fl_font(f, s); fl_color(c); } /** Pops from the stack the font style triplet and calls fl_font() & fl_color() adequately */ - void pop(Fl_Font &f, Fl_Fontsize &s, Fl_Color &c) { + void pop(Fl_Font &f, Fl_Fontsize &s, Fl_Color &c) { if (nfonts_ > 0) nfonts_ --; top(f, s, c); fl_font(f, s); fl_color(c); @@ -117,15 +115,15 @@ struct FL_EXPORT Fl_Help_Font_Stack { size_t count() const {return nfonts_;} // Gets the current number of fonts in the stack protected: - size_t nfonts_; ///< current number of fonts in stack + size_t nfonts_; ///< current number of fonts in stack Fl_Help_Font_Style elts_[MAX_FL_HELP_FS_ELTS]; ///< font elements }; /** Fl_Help_Target structure */ struct Fl_Help_Target { - char name[32]; ///< Target name - int y; ///< Y offset of target + char name[32]; ///< Target name + int y; ///< Y offset of target }; /** @@ -193,42 +191,42 @@ struct Fl_Help_Target { - yen Yuml yuml */ -class FL_EXPORT Fl_Help_View : public Fl_Group { // Help viewer widget - - enum { RIGHT = -1, CENTER, LEFT }; ///< Alignments +class FL_EXPORT Fl_Help_View : public Fl_Group { // Help viewer widget - char title_[1024]; ///< Title string - Fl_Color defcolor_, ///< Default text color - bgcolor_, ///< Background color - textcolor_, ///< Text color - linkcolor_; ///< Link color - Fl_Font textfont_; ///< Default font for text - Fl_Fontsize textsize_; ///< Default font size - const char *value_; ///< HTML text value - Fl_Help_Font_Stack fstack_; ///< font stack management - int nblocks_, ///< Number of blocks/paragraphs - ablocks_; ///< Allocated blocks - Fl_Help_Block *blocks_; ///< Blocks + enum { RIGHT = -1, CENTER, LEFT }; ///< Alignments - Fl_Help_Func *link_; ///< Link transform function + char title_[1024]; ///< Title string + Fl_Color defcolor_, ///< Default text color + bgcolor_, ///< Background color + textcolor_, ///< Text color + linkcolor_; ///< Link color + Fl_Font textfont_; ///< Default font for text + Fl_Fontsize textsize_; ///< Default font size + const char *value_; ///< HTML text value + Fl_Help_Font_Stack fstack_; ///< font stack management + int nblocks_, ///< Number of blocks/paragraphs + ablocks_; ///< Allocated blocks + Fl_Help_Block *blocks_; ///< Blocks - int nlinks_, ///< Number of links - alinks_; ///< Allocated links - Fl_Help_Link *links_; ///< Links + Fl_Help_Func *link_; ///< Link transform function - int ntargets_, ///< Number of targets - atargets_; ///< Allocated targets - Fl_Help_Target *targets_; ///< Targets + int nlinks_, ///< Number of links + alinks_; ///< Allocated links + Fl_Help_Link *links_; ///< Links - char directory_[FL_PATH_MAX];///< Directory for current file - char filename_[FL_PATH_MAX]; ///< Current filename - int topline_, ///< Top line in document - leftline_, ///< Lefthand position - size_, ///< Total document length - hsize_, ///< Maximum document width - scrollbar_size_; ///< Size for both scrollbars - Fl_Scrollbar scrollbar_, ///< Vertical scrollbar for document - hscrollbar_; ///< Horizontal scrollbar + int ntargets_, ///< Number of targets + atargets_; ///< Allocated targets + Fl_Help_Target *targets_; ///< Targets + + char directory_[FL_PATH_MAX];///< Directory for current file + char filename_[FL_PATH_MAX]; ///< Current filename + int topline_, ///< Top line in document + leftline_, ///< Lefthand position + size_, ///< Total document length + hsize_, ///< Maximum document width + scrollbar_size_; ///< Size for both scrollbars + Fl_Scrollbar scrollbar_, ///< Vertical scrollbar for document + hscrollbar_; ///< Horizontal scrollbar static int selection_first; static int selection_last; @@ -251,24 +249,24 @@ class FL_EXPORT Fl_Help_View : public Fl_Group { // Help viewer widget void pushfont(Fl_Font f, Fl_Fontsize s, Fl_Color c) {fstack_.push(f, s, c);} void popfont(Fl_Font &f, Fl_Fontsize &s, Fl_Color &c) {fstack_.pop(f, s, c);} - Fl_Help_Block *add_block(const char *s, int xx, int yy, int ww, int hh, uchar border = 0); - void add_link(const char *n, int xx, int yy, int ww, int hh); - void add_target(const char *n, int yy); - static int compare_targets(const Fl_Help_Target *t0, const Fl_Help_Target *t1); - int do_align(Fl_Help_Block *block, int line, int xx, int a, int &l); + Fl_Help_Block *add_block(const char *s, int xx, int yy, int ww, int hh, uchar border = 0); + void add_link(const char *n, int xx, int yy, int ww, int hh); + void add_target(const char *n, int yy); + static int compare_targets(const Fl_Help_Target *t0, const Fl_Help_Target *t1); + int do_align(Fl_Help_Block *block, int line, int xx, int a, int &l); protected: - void draw(); + void draw(); private: - void format(); - void format_table(int *table_width, int *columns, const char *table); - void free_data(); - int get_align(const char *p, int a); - const char *get_attr(const char *p, const char *n, char *buf, int bufsize); - Fl_Color get_color(const char *n, Fl_Color c); + void format(); + void format_table(int *table_width, int *columns, const char *table); + void free_data(); + int get_align(const char *p, int a); + const char *get_attr(const char *p, const char *n, char *buf, int bufsize); + Fl_Color get_color(const char *n, Fl_Color c); Fl_Shared_Image *get_image(const char *name, int W, int H); - int get_length(const char *l); + int get_length(const char *l); public: - int handle(int); + int handle(int); private: void hv_draw(const char *t, int x, int y, int entity_extra_length = 0); @@ -284,72 +282,72 @@ public: Fl_Help_View(int xx, int yy, int ww, int hh, const char *l = 0); ~Fl_Help_View(); /** Returns the current directory for the text in the buffer. */ - const char *directory() const { if (directory_[0]) return (directory_); - else return ((const char *)0); } + const char *directory() const { if (directory_[0]) return (directory_); + else return ((const char *)0); } /** Returns the current filename for the text in the buffer. */ - const char *filename() const { if (filename_[0]) return (filename_); - else return ((const char *)0); } - int find(const char *s, int p = 0); + const char *filename() const { if (filename_[0]) return (filename_); + else return ((const char *)0); } + int find(const char *s, int p = 0); /** This method assigns a callback function to use when a link is followed or a file is loaded (via Fl_Help_View::load()) that requires a different file or path. - + The callback function receives a pointer to the Fl_Help_View 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 NULL: - + \code const char *fn(Fl_Widget *w, const char *uri); \endcode - + 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 NULL, the value of the Fl_Help_View widget will remain unchanged. - + If the link callback cannot handle the URI scheme, it should return the uri value unchanged or set the value() of the widget before returning NULL. */ - void link(Fl_Help_Func *fn) { link_ = fn; } - int load(const char *f); - void resize(int,int,int,int); + void link(Fl_Help_Func *fn) { link_ = fn; } + int load(const char *f); + void resize(int,int,int,int); /** Gets the size of the help view. */ - int size() const { return (size_); } - void size(int W, int H) { Fl_Widget::size(W, H); } + int size() const { return (size_); } + void size(int W, int H) { Fl_Widget::size(W, H); } /** Sets the default text color. */ - void textcolor(Fl_Color c) { if (textcolor_ == defcolor_) textcolor_ = c; defcolor_ = c; } + void textcolor(Fl_Color c) { if (textcolor_ == defcolor_) textcolor_ = c; defcolor_ = c; } /** Returns the current default text color. */ - Fl_Color textcolor() const { return (defcolor_); } + Fl_Color textcolor() const { return (defcolor_); } /** Sets the default text font. */ - void textfont(Fl_Font f) { textfont_ = f; format(); } + void textfont(Fl_Font f) { textfont_ = f; format(); } /** Returns the current default text font. */ Fl_Font textfont() const { return (textfont_); } /** Sets the default text size. */ - void textsize(Fl_Fontsize s) { textsize_ = s; format(); } + void textsize(Fl_Fontsize s) { textsize_ = s; format(); } /** Gets the default text size. */ Fl_Fontsize textsize() const { return (textsize_); } /** Returns the current document title, or NULL if there is no title. */ - const char *title() { return (title_); } - void topline(const char *n); - void topline(int); + const char *title() { return (title_); } + void topline(const char *n); + void topline(int); /** Returns the current top line in pixels. */ - int topline() const { return (topline_); } - void leftline(int); + int topline() const { return (topline_); } + void leftline(int); /** Gets the left position in pixels. */ - int leftline() const { return (leftline_); } - void value(const char *val); + int leftline() const { return (leftline_); } + void value(const char *val); /** Returns the current buffer contents. */ - const char *value() const { return (value_); } + const char *value() const { return (value_); } void clear_selection(); void select_all(); /** Gets the current size of the scrollbars' troughs, in pixels. - If this value is zero (default), this widget will use the + If this value is zero (default), this widget will use the Fl::scrollbar_size() value as the scrollbar's width. - + \returns Scrollbar size in pixels, or 0 if the global Fl::scrollbar_size() is being used. \see Fl::scrollbar_size(int) */ @@ -360,28 +358,24 @@ public: Sets the pixel size of the scrollbars' troughs to \p newSize, in pixels. Normally you should not need this method, and should use - Fl::scrollbar_size(int) instead to manage the size of ALL - your widgets' scrollbars. This ensures your application + Fl::scrollbar_size(int) instead to manage the size of ALL + your widgets' scrollbars. This ensures your application has a consistent UI, is the default behavior, and is normally what you want. Only use THIS method if you really need to override the global scrollbar size. The need for this should be rare. - + Setting \p newSize to the special value of 0 causes the widget to track the global Fl::scrollbar_size(), which is the default. - + \param[in] newSize Sets the scrollbar size in pixels.\n If 0 (default), scrollbar size tracks the global Fl::scrollbar_size() \see Fl::scrollbar_size() */ void scrollbar_size(int newSize) { scrollbar_size_ = newSize; - } + } }; #endif // !Fl_Help_View_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_Hold_Browser.H b/FL/Fl_Hold_Browser.H index 79113b496..cc0192c39 100644 --- a/FL/Fl_Hold_Browser.H +++ b/FL/Fl_Hold_Browser.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Hold browser header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -25,7 +23,7 @@ #include "Fl_Browser.H" /** - The Fl_Hold_Browser is a subclass of Fl_Browser which lets the user + The Fl_Hold_Browser is a subclass of Fl_Browser which lets the user select a single item, or no items by clicking on the empty space. \image html fl_hold_browser.png "Fl_Hold_Browser" @@ -49,7 +47,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Hor_Fill_Slider.H b/FL/Fl_Hor_Fill_Slider.H index 934bc059c..c8890dbf4 100644 --- a/FL/Fl_Hor_Fill_Slider.H +++ b/FL/Fl_Hor_Fill_Slider.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Horizontal fill slider header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -30,7 +28,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Hor_Nice_Slider.H b/FL/Fl_Hor_Nice_Slider.H index c862f8bf1..e9393d449 100644 --- a/FL/Fl_Hor_Nice_Slider.H +++ b/FL/Fl_Hor_Nice_Slider.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Horizontal "nice" slider header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -30,7 +28,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Hor_Slider.H b/FL/Fl_Hor_Slider.H index 415cdb763..cfd2426f5 100644 --- a/FL/Fl_Hor_Slider.H +++ b/FL/Fl_Hor_Slider.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Horizontal slider header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2011 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -39,7 +37,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Hor_Value_Slider.H b/FL/Fl_Hor_Value_Slider.H index 183a1cfcb..88c6efe95 100644 --- a/FL/Fl_Hor_Value_Slider.H +++ b/FL/Fl_Hor_Value_Slider.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Horizontal value slider header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -30,7 +28,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Image.H b/FL/Fl_Image.H index decc5bdeb..dc09ed7a4 100644 --- a/FL/Fl_Image.H +++ b/FL/Fl_Image.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Image header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2017 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /** \file @@ -44,19 +42,19 @@ enum Fl_RGB_Scaling { /** \brief Base class for image caching, scaling and drawing. - + Fl_Image is the base class used for caching, scaling 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 + 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. - + Each image possesses two (width, height) pairs. 1) The width and height of the image raw data are returned by data_w() and data_h(). These values are set when the image is created and remain unchanged. 2) The width and height of the area filled by the image when it gets drawn are returned by w() and h(). The values are equal to data_w() and data_h() when the image is created, and can be changed by the scale() member function. - + Since the Fl_Image class does not support image drawing by itself, calling the draw() method results in a box with an X in it being drawn instead. @@ -67,7 +65,7 @@ public: static const int ERR_NO_IMAGE = -1; static const int ERR_FILE_ACCESS = -2; static const int ERR_FORMAT = -3; - + private: int w_, h_, d_, ld_, count_; int data_w_, data_h_; @@ -108,7 +106,7 @@ protected: to account for the extra data per line. */ void ld(int LD) {ld_ = LD;} - /** + /** Sets the current array pointer and count of pointers in the array. */ void data(const char * const *p, int c) {data_ = p; count_ = c;} @@ -120,7 +118,7 @@ protected: public: - /** + /** Returns the current image drawing width in FLTK units. The values of w() and data_w() are identical unless scale() has been called after which they may differ. @@ -233,10 +231,10 @@ public: /** Draws the image to the current drawing surface with a bounding box. Arguments X,Y,W,H specify - a bounding box for the image, with the origin + a bounding box for the image, with the origin (upper-left corner) of the image offset by the \c cx and \c cy arguments. - + In other words: fl_push_clip(X,Y,W,H) is applied, the image is drawn with its upper-left corner at X-cx,Y-cy and its own width and height, fl_pop_clip() is applied. @@ -256,7 +254,7 @@ public: static void RGB_scaling(Fl_RGB_Scaling); // get RGB image scaling method static Fl_RGB_Scaling RGB_scaling(); - + // set the image drawing size virtual void scale(int width, int height, int proportional = 1, int can_expand = 0); /** Sets what algorithm is used when resizing a source image to draw it. @@ -320,17 +318,17 @@ public: virtual void label(Fl_Menu_Item*m); virtual void uncache(); /** Sets the maximum allowed image size in bytes when creating an Fl_RGB_Image object. - + The image size in bytes of an Fl_RGB_Image object is the value of the product w() * h() * d(). - If this product exceeds size, the created object of a derived class of Fl_RGB_Image + If this product exceeds size, the created object of a derived class of Fl_RGB_Image won't be loaded with the image data. - This does not apply to direct RGB image creation with + This does not apply to direct RGB image creation with Fl_RGB_Image::Fl_RGB_Image(const uchar *bits, int W, int H, int D, int LD). - The default max_size() value is essentially infinite. + The default max_size() value is essentially infinite. */ static void max_size(size_t size) { max_size_ = size;} /** Returns the maximum allowed image size in bytes when creating an Fl_RGB_Image object. - + \sa void Fl_RGB_Image::max_size(size_t) */ static size_t max_size() {return max_size_;} @@ -343,7 +341,3 @@ public: }; #endif // !Fl_Image_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_Image_Surface.H b/FL/Fl_Image_Surface.H index 9c78f3d43..68596e930 100644 --- a/FL/Fl_Image_Surface.H +++ b/FL/Fl_Image_Surface.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Draw-to-image code for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2016 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef Fl_Image_Surface_H @@ -25,17 +23,17 @@ #include // for Fl_Offscreen -/** +/** \brief Directs all graphics requests to an Fl_Image. - + After creation of an Fl_Image_Surface object, make it the current drawing surface calling Fl_Surface_Device::push_current(), and all - subsequent graphics requests will be recorded in the image. It's possible to - draw widgets (using Fl_Image_Surface::draw()) or to use any of the + subsequent graphics requests will be recorded in the image. It's possible to + draw widgets (using Fl_Image_Surface::draw()) or to use any of the \ref fl_drawings or the \ref fl_attributes. Finally, call image() on the object to obtain a newly allocated Fl_RGB_Image object. Fl_Gl_Window objects can be drawn in the image as well. - + Usage example: \code // this is the widget that you want to draw into an image @@ -43,12 +41,12 @@ // create an Fl_Image_Surface object Fl_Image_Surface *image_surface = new Fl_Image_Surface(g->w(), g->h()); - + // direct all further graphics requests to the image Fl_Surface_Device::push_current(image_surface); // draw a white background - fl_color(FL_WHITE); + fl_color(FL_WHITE); fl_rectf(0, 0, g->w(), g->h()); // draw the g widget in the image @@ -59,7 +57,7 @@ // direct graphics requests back to their previous destination Fl_Surface_Device::pop_current(); - + // delete the image_surface object, but not the image itself delete image_surface; \endcode @@ -125,7 +123,3 @@ protected: */ #endif // Fl_Image_Surface_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_Input.H b/FL/Fl_Input.H index 9257ff29b..f165ddc6e 100644 --- a/FL/Fl_Input.H +++ b/FL/Fl_Input.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Input header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -40,16 +38,16 @@ @@ -140,16 +138,16 @@ @@ -264,8 +262,4 @@ public: Fl_Input(int,int,int,int,const char * = 0); }; -#endif - -// -// End of "$Id$". -// +#endif diff --git a/FL/Fl_Input_.H b/FL/Fl_Input_.H index a07a70282..315f24a68 100644 --- a/FL/Fl_Input_.H +++ b/FL/Fl_Input_.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Input base class header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2015 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -26,18 +24,18 @@ #include "Fl_Widget.H" #endif -#define FL_NORMAL_INPUT 0 -#define FL_FLOAT_INPUT 1 -#define FL_INT_INPUT 2 -#define FL_HIDDEN_INPUT 3 -#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_NORMAL_INPUT 0 +#define FL_FLOAT_INPUT 1 +#define FL_INT_INPUT 2 +#define FL_HIDDEN_INPUT 3 +#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) /** @@ -54,16 +52,16 @@ setting type() to one of the following values: \code - #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_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) \endcode @@ -113,8 +111,8 @@ class FL_EXPORT Fl_Input_ : public Fl_Widget { If \p position_ equals \p mark_, no text is selected */ int mark_; - /** \internal Behavior of Tab key in multiline input widget. - If enabled (default) Tab causes focus nav, otherwise Tab is inserted + /** \internal Behavior of Tab key in multiline input widget. + If enabled (default) Tab causes focus nav, otherwise Tab is inserted as a character. */ int tab_nav_; @@ -180,7 +178,7 @@ protected: /* Find the start of a line. */ int line_start(int i) const; - + /* Find the end of a line. */ int line_end(int i) const; @@ -238,8 +236,8 @@ public: This function returns the current value, which is a pointer to the internal buffer and is valid only until the next event is handled. - - \return pointer to an internal buffer - do not free() this + + \return pointer to an internal buffer - do not free() this \see Fl_Input_::value(const char*) */ const char* value() const {return value_;} @@ -248,9 +246,9 @@ public: Fl_Char index(int i) const; /** - Returns the number of bytes in value(). - - This may be greater than strlen(value()) if there are + Returns the number of bytes in value(). + + This may be greater than strlen(value()) if there are \c nul characters in the text. \return number of bytes in the text @@ -283,7 +281,7 @@ public: */ int position() const {return position_;} - /** Gets the current selection mark. + /** Gets the current selection mark. \return index into the text */ int mark() const {return mark_;} @@ -298,9 +296,9 @@ public: */ int position(int p) {return position(p, p);} - /** Sets the current selection mark. + /** Sets the current selection mark. mark(n) is the same as position(position(),n). - \param m new index of the mark + \param m new index of the mark \return 0 if the mark did not change \see position(), position(int, int) */ int mark(int m) {return position(position(), m);} @@ -377,11 +375,11 @@ public: \see Fl_Button::shortcut() */ int shortcut() const {return shortcut_;} - /** + /** Sets the shortcut key associated with this widget. Pressing the shortcut key gives text editing focus to this widget. - \param [in] s new shortcut keystroke - \see Fl_Button::shortcut() + \param [in] s new shortcut keystroke + \see Fl_Button::shortcut() */ void shortcut(int s) {shortcut_ = s;} @@ -414,52 +412,52 @@ public: \see textcolor() */ void textcolor(Fl_Color n) {textcolor_ = n;} - /** Gets the color of the cursor. + /** Gets the color of the cursor. \return the current cursor color */ Fl_Color cursor_color() const {return cursor_color_;} - /** Sets the color of the cursor. + /** Sets the color of the cursor. The default color for the cursor is \c FL_BLACK. \param [in] n the new cursor color */ void cursor_color(Fl_Color n) {cursor_color_ = n;} - /** Gets the input field type. + /** Gets the input field type. \return the current input type */ int input_type() const {return type() & FL_INPUT_TYPE; } - /** Sets the input field type. + /** Sets the input field type. A redraw() is required to reformat the input field. \param [in] t new input type */ void input_type(int t) { type((uchar)(t | readonly())); } - /** Gets the read-only state of the input field. + /** Gets the read-only state of the input field. \return non-zero if this widget is read-only */ int readonly() const { return type() & FL_INPUT_READONLY; } - /** Sets the read-only state of the input field. + /** Sets the read-only state of the input field. \param [in] b if \p b is 0, the text in this widget can be edited by the user */ void readonly(int b) { if (b) type((uchar)(type() | FL_INPUT_READONLY)); else type((uchar)(type() & ~FL_INPUT_READONLY)); } /** - Gets the word wrapping state of the input field. + Gets the word wrapping state of the input field. Word wrap is only functional with multi-line input fields. */ int wrap() const { return type() & FL_INPUT_WRAP; } /** - Sets the word wrapping state of the input field. + Sets the word wrapping state of the input field. Word wrap is only functional with multi-line input fields. */ void wrap(int b) { if (b) type((uchar)(type() | FL_INPUT_WRAP)); else type((uchar)(type() & ~FL_INPUT_WRAP)); } /** - Sets whether the Tab key does focus navigation, + Sets whether the Tab key does focus navigation, or inserts tab characters into Fl_Multiline_Input. - By default this flag is enabled to provide the 'normal' behavior - most users expect; Tab navigates focus to the next widget. + By default this flag is enabled to provide the 'normal' behavior + most users expect; Tab navigates focus to the next widget. To inserting an actual Tab character, users can use Ctrl-I or copy/paste. @@ -468,8 +466,8 @@ public: only the mouse can be used to navigate to the next field. History: This flag was provided for backwards support of FLTK's old 1.1.x - behavior where Tab inserts a tab character instead of navigating - focus to the next widget. This behavior was unique to Fl_Multiline_Input. + behavior where Tab inserts a tab character instead of navigating + focus to the next widget. This behavior was unique to Fl_Multiline_Input. With the advent of Fl_Text_Editor, this old behavior has been deprecated. \param [in] val If \p val is 1, Tab advances focus (default).
    @@ -496,8 +494,4 @@ public: } }; -#endif - -// -// End of "$Id$". -// +#endif diff --git a/FL/Fl_Input_Choice.H b/FL/Fl_Input_Choice.H index 80cee90b4..9f29ce968 100644 --- a/FL/Fl_Input_Choice.H +++ b/FL/Fl_Input_Choice.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // An input/chooser widget. // ______________ ____ // | || __ | @@ -14,11 +12,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -184,7 +182,3 @@ public: }; #endif // !Fl_Input_Choice_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_Int_Input.H b/FL/Fl_Int_Input.H index cb6e8141e..508a2f8ee 100644 --- a/FL/Fl_Int_Input.H +++ b/FL/Fl_Int_Input.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Integer input header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -40,7 +38,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_JPEG_Image.H b/FL/Fl_JPEG_Image.H index 50553823c..f4eeb42cf 100644 --- a/FL/Fl_JPEG_Image.H +++ b/FL/Fl_JPEG_Image.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // JPEG image header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -43,7 +41,3 @@ protected: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Light_Button.H b/FL/Fl_Light_Button.H index 8735f3dcb..2a3ca1007 100644 --- a/FL/Fl_Light_Button.H +++ b/FL/Fl_Light_Button.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Lighted button header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -25,14 +23,14 @@ #include "Fl_Button.H" /** - This subclass displays the "on" state by turning on a light, - rather than drawing pushed in. The shape of the "light" + This subclass displays the "on" state by turning on a light, + rather than drawing pushed in. The shape of the "light" is initially set to FL_DOWN_BOX. The color of the light when on is controlled with selection_color(), which defaults to FL_YELLOW. Buttons generate callbacks when they are clicked by the user. You control exactly when and how by changing the values for type() and when(). -

    \image html Fl_Light_Button.png

    +

    \image html Fl_Light_Button.png

    \image latex Fl_Light_Button.png "Fl_Light_Button" width=4cm */ class FL_EXPORT Fl_Light_Button : public Fl_Button { @@ -44,7 +42,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Line_Dial.H b/FL/Fl_Line_Dial.H index 150a05df5..873e82b48 100644 --- a/FL/Fl_Line_Dial.H +++ b/FL/Fl_Line_Dial.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Line dial header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -30,7 +28,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Menu.H b/FL/Fl_Menu.H index a0f2545dd..eb6caf740 100644 --- a/FL/Fl_Menu.H +++ b/FL/Fl_Menu.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Old menu header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,16 +7,12 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // // this include file is for back compatibility only #include "Fl_Menu_Item.H" - -// -// End of "$Id$". -// diff --git a/FL/Fl_Menu_.H b/FL/Fl_Menu_.H index 4ebfc5852..1bd10d4d7 100644 --- a/FL/Fl_Menu_.H +++ b/FL/Fl_Menu_.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Menu base class header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2019 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -59,7 +57,7 @@ class FL_EXPORT Fl_Menu_ : public Fl_Widget { protected: - uchar alloc; // flag indicates if menu_ is a dynamic copy (=1) or not (=0) + uchar alloc; // flag indicates if menu_ is a dynamic copy (=1) or not (=0) uchar down_box_; Fl_Font textfont_; Fl_Fontsize textsize_; @@ -204,7 +202,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Menu_Bar.H b/FL/Fl_Menu_Bar.H index 11a895430..a97ccf45a 100644 --- a/FL/Fl_Menu_Bar.H +++ b/FL/Fl_Menu_Bar.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Menu bar header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2017 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -96,7 +94,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Menu_Button.H b/FL/Fl_Menu_Button.H index 7f18eab66..b592dbb19 100644 --- a/FL/Fl_Menu_Button.H +++ b/FL/Fl_Menu_Button.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Menu button header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -26,15 +24,15 @@ /** This is a button that when pushed pops up a menu (or hierarchy of - menus) defined by an array of + menus) defined by an array of Fl_Menu_Item objects.

    \image html menu_button.png

    \image latex menu_button.png " menu_button" width=5cm

    Normally any mouse button will pop up a menu and it is lined up below the button as shown in the picture. However an Fl_Menu_Button may also control a pop-up menu. This is done by setting the type(). - If type() is zero a normal menu button is produced. - If it is nonzero then this is a pop-up menu. The bits in type() indicate + If type() is zero a normal menu button is produced. + If it is nonzero then this is a pop-up menu. The bits in type() indicate what mouse buttons pop up the menu (see Fl_Menu_Button::popup_buttons).

    The menu will also pop up in response to shortcuts indicated by putting a '&' character in the label().

    @@ -47,7 +45,7 @@ and then: - The item's callback is done if one has been set; the - Fl_Menu_Button is passed as the Fl_Widget* argument, + Fl_Menu_Button is passed as the Fl_Widget* argument, along with any userdata configured for the callback. - If the item does not have a callback, the Fl_Menu_Button's callback @@ -61,10 +59,10 @@ protected: public: /** \brief indicate what mouse buttons pop up the menu. - - Values for type() used to indicate what mouse buttons pop up the menu. + + Values for type() used to indicate what mouse buttons pop up the menu. Fl_Menu_Button::POPUP3 is usually what you want. - */ + */ enum popup_buttons {POPUP1 = 1, /**< pops up with the mouse 1st button. */ POPUP2, /**< pops up with the mouse 2nd button. */ POPUP12, /**< pops up with the mouse 1st or 2nd buttons. */ @@ -79,7 +77,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Menu_Item.H b/FL/Fl_Menu_Item.H index dbe1a80fb..65be443cd 100644 --- a/FL/Fl_Menu_Item.H +++ b/FL/Fl_Menu_Item.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Menu item header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef Fl_Menu_Item_H @@ -27,15 +25,15 @@ /// @file enum { // values for flags: - FL_MENU_INACTIVE = 1, ///< Deactivate menu item (gray out) - FL_MENU_TOGGLE= 2, ///< Item is a checkbox toggle (shows checkbox for on/off state) - FL_MENU_VALUE = 4, ///< The on/off state for checkbox/radio buttons (if set, state is 'on') - FL_MENU_RADIO = 8, ///< Item is a radio button (one checkbox of many can be on) - FL_MENU_INVISIBLE = 0x10, ///< Item will not show up (shortcut will work) - FL_SUBMENU_POINTER = 0x20, ///< Indicates user_data() is a pointer to another menu array - FL_SUBMENU = 0x40, ///< This item is a submenu to other items - FL_MENU_DIVIDER = 0x80, ///< Creates divider line below this item. Also ends a group of radio buttons. - FL_MENU_HORIZONTAL = 0x100 ///< ??? -- reserved + FL_MENU_INACTIVE = 1, ///< Deactivate menu item (gray out) + FL_MENU_TOGGLE= 2, ///< Item is a checkbox toggle (shows checkbox for on/off state) + FL_MENU_VALUE = 4, ///< The on/off state for checkbox/radio buttons (if set, state is 'on') + FL_MENU_RADIO = 8, ///< Item is a radio button (one checkbox of many can be on) + FL_MENU_INVISIBLE = 0x10, ///< Item will not show up (shortcut will work) + FL_SUBMENU_POINTER = 0x20, ///< Indicates user_data() is a pointer to another menu array + FL_SUBMENU = 0x40, ///< This item is a submenu to other items + FL_MENU_DIVIDER = 0x80, ///< Creates divider line below this item. Also ends a group of radio buttons. + FL_MENU_HORIZONTAL = 0x100 ///< ??? -- reserved }; extern FL_EXPORT Fl_Shortcut fl_old_shortcut(const char*); @@ -44,7 +42,7 @@ class Fl_Menu_; /** The Fl_Menu_Item structure defines a single menu item that - is used by the Fl_Menu_ class. + is used by the Fl_Menu_ class. \code struct Fl_Menu_Item { const char* text; // label() @@ -57,7 +55,7 @@ class Fl_Menu_; uchar labelsize_; uchar labelcolor_; }; - + enum { // values for flags: FL_MENU_INACTIVE = 1, // Deactivate menu item (gray out) FL_MENU_TOGGLE = 2, // Item is a checkbox toggle (shows checkbox for on/off state) @@ -96,7 +94,7 @@ class Fl_Menu_; \image html menu.png \image latex menu.png "menu" width=10cm - A submenu title is identified by the bit FL_SUBMENU in the + A submenu title is identified by the bit FL_SUBMENU in the flags field, and ends with a label() that is NULL. You can nest menus to any depth. A pointer to the first item in the submenu can be treated as an Fl_Menu array itself. It is also @@ -107,15 +105,15 @@ class Fl_Menu_; releases of FLTK. */ struct FL_EXPORT Fl_Menu_Item { - const char *text; ///< menu item text, returned by label() - int shortcut_; ///< menu item shortcut + const char *text; ///< menu item text, returned by label() + int shortcut_; ///< menu item shortcut Fl_Callback *callback_; ///< menu item callback - void *user_data_; ///< menu item user_data for the menu's callback - int flags; ///< menu item flags like FL_MENU_TOGGLE, FL_MENU_RADIO - uchar labeltype_; ///< how the menu item text looks like - Fl_Font labelfont_; ///< which font for this menu item text + void *user_data_; ///< menu item user_data for the menu's callback + int flags; ///< menu item flags like FL_MENU_TOGGLE, FL_MENU_RADIO + uchar labeltype_; ///< how the menu item text looks like + Fl_Font labelfont_; ///< which font for this menu item text Fl_Fontsize labelsize_; ///< size of menu item text - Fl_Color labelcolor_; ///< menu item text color + Fl_Color labelcolor_; ///< menu item text color // advance N items, skipping submenus: const Fl_Menu_Item *next(int=1) const; @@ -271,17 +269,17 @@ struct FL_EXPORT Fl_Menu_Item { /** 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 + value is a logical 'or' of a key and a set of shift flags, for instance FL_ALT+'a' or FL_ALT+FL_F+10 or just 'a'. A value of zero disables the shortcut. - The key can be any value returned by Fl::event_key(), but will usually - be an ASCII letter. Use a lower-case letter unless you require the shift + The key can be any value returned by Fl::event_key(), but will usually + be an ASCII letter. Use a lower-case letter unless you require the shift key to be held down. The shift flags can be any set of values accepted by Fl::event_state(). - 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 + 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 "don't care" setting). */ void shortcut(int s) {shortcut_ = s;} @@ -420,7 +418,7 @@ struct FL_EXPORT Fl_Menu_Item { /** See int add(const char*, int shortcut, Fl_Callback*, void*, int) */ int add(const char*a, const char* b, Fl_Callback* c, - void* d = 0, int e = 0) { + void* d = 0, int e = 0) { return add(a,fl_old_shortcut(b),c,d,e);} int size() const ; @@ -428,21 +426,17 @@ struct FL_EXPORT Fl_Menu_Item { typedef Fl_Menu_Item Fl_Menu; // back compatibility -enum { // back-compatibility enum: - FL_PUP_NONE = 0, - FL_PUP_GREY = FL_MENU_INACTIVE, - FL_PUP_GRAY = FL_MENU_INACTIVE, - FL_MENU_BOX = FL_MENU_TOGGLE, - FL_PUP_BOX = FL_MENU_TOGGLE, - FL_MENU_CHECK = FL_MENU_VALUE, - FL_PUP_CHECK = FL_MENU_VALUE, - FL_PUP_RADIO = FL_MENU_RADIO, +enum { // back-compatibility enum: + FL_PUP_NONE = 0, + FL_PUP_GREY = FL_MENU_INACTIVE, + FL_PUP_GRAY = FL_MENU_INACTIVE, + FL_MENU_BOX = FL_MENU_TOGGLE, + FL_PUP_BOX = FL_MENU_TOGGLE, + FL_MENU_CHECK = FL_MENU_VALUE, + FL_PUP_CHECK = FL_MENU_VALUE, + FL_PUP_RADIO = FL_MENU_RADIO, FL_PUP_INVISIBLE = FL_MENU_INVISIBLE, FL_PUP_SUBMENU = FL_SUBMENU_POINTER }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Menu_Window.H b/FL/Fl_Menu_Window.H index 90e6426b9..deae888af 100644 --- a/FL/Fl_Menu_Window.H +++ b/FL/Fl_Menu_Window.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Menu window header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -51,7 +49,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Multi_Browser.H b/FL/Fl_Multi_Browser.H index 39bd446b3..69a6395dc 100644 --- a/FL/Fl_Multi_Browser.H +++ b/FL/Fl_Multi_Browser.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Multi browser header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -26,16 +24,16 @@ /** The Fl_Multi_Browser class is a subclass of Fl_Browser - which lets the user select any set of the lines. + which lets the user select any set of the lines. \image html fl_multi_browser.png "Fl_Multi_Browser" \image latex fl_multi_browser.png "Fl_Multi_Browser" width=4cm 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 ctrl + click (Cmd+click on the Mac OS platform) toggles the items. + and ctrl + click (Cmd+click on the Mac OS platform) toggles the items. Shift + click extends the selection until the clicked item. - This is different from how forms did it. + This is different from how forms did it. Normally the callback is done when the user releases the mouse, but you can change this with when().

    See Fl_Browser for methods to add and remove lines from the browser. @@ -52,7 +50,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Multi_Label.H b/FL/Fl_Multi_Label.H index 1500964b3..ff46e32df 100644 --- a/FL/Fl_Multi_Label.H +++ b/FL/Fl_Multi_Label.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Multi-label header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2015 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef Fl_Multi_Label_H @@ -45,8 +43,8 @@ struct Fl_Menu_Item; Example Use: Fl_Menu_Bar \code - Fl_Pixmap *image = new Fl_Pixmap(..); // image for menu item; any Fl_Image based widget - Fl_Menu_Bar *menu = new Fl_Menu_Bar(..); // can be any Fl_Menu_ oriented widget (Fl_Choice, Fl_Menu_Button..) + Fl_Pixmap *image = new Fl_Pixmap(..); // image for menu item; any Fl_Image based widget + Fl_Menu_Bar *menu = new Fl_Menu_Bar(..); // can be any Fl_Menu_ oriented widget (Fl_Choice, Fl_Menu_Button..) // Create a menu item int i = menu->add("File/New", ..); @@ -96,7 +94,3 @@ struct FL_EXPORT Fl_Multi_Label { }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Multiline_Input.H b/FL/Fl_Multiline_Input.H index 4ac3441e9..552721005 100644 --- a/FL/Fl_Multiline_Input.H +++ b/FL/Fl_Multiline_Input.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Multiline input header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2011 by Bill Spitzak and others. @@ -9,15 +7,15 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file - Fl_Multiline_Input widget . */ + Fl_Multiline_Input widget . */ #ifndef Fl_Multiline_Input_H #define Fl_Multiline_Input_H @@ -54,7 +52,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Multiline_Output.H b/FL/Fl_Multiline_Output.H index d5ffdc5d6..a8bd088bc 100644 --- a/FL/Fl_Multiline_Output.H +++ b/FL/Fl_Multiline_Output.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Multi line output header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2011 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -32,7 +30,7 @@ Note that this widget does not support scrollbars, or per-character color control. - If you are presenting large amounts of read-only text + If you are presenting large amounts of read-only text and need scrollbars, or full color control of characters, then use Fl_Text_Display. If you want to display HTML text, use Fl_Help_View. @@ -50,7 +48,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Native_File_Chooser.H b/FL/Fl_Native_File_Chooser.H index 4f0cbc3e0..423560ccc 100644 --- a/FL/Fl_Native_File_Chooser.H +++ b/FL/Fl_Native_File_Chooser.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // FLTK native OS file chooser widget // // Copyright 1998-2016 by Bill Spitzak and others. @@ -10,11 +8,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /** \file @@ -38,15 +36,15 @@ Each platform must implement the constructor of the Fl_Native_File_Chooser class. This particular implementation: - + Fl_Native_File_Chooser::Fl_Native_File_Chooser(int val) { platform_fnfc = new Fl_Native_File_Chooser_FLTK_Driver(val); } - - can be used by any platform. + + can be used by any platform. No more code is required. The cross-platform Fl_Native_File_Chooser_FLTK.cxx file must be compiled in libfltk, and the default FLTK file chooser will be used. - + This other implementation: Fl_Native_File_Chooser::Fl_Native_File_Chooser(int val) { platform_fnfc = 0; @@ -63,19 +61,19 @@ class Fl_Native_File_Chooser_Driver; /** - This class lets an FLTK application easily and consistently access - the operating system's native file chooser. Some operating systems - have very complex and specific file choosers that many users want - access to specifically, instead of FLTK's default file chooser(s). - + This class lets an FLTK application easily and consistently access + the operating system's native file chooser. Some operating systems + have very complex and specific file choosers that many users want + access to specifically, instead of FLTK's default file chooser(s). + In cases where there is no native file browser, FLTK's own file browser is used instead. - + To use this widget, use the following include in your code: \code #include \endcode - + The following example shows how to pick a single file: \code // Create and post the local native file chooser @@ -94,15 +92,15 @@ class Fl_Native_File_Chooser_Driver; default: printf("PICKED: %s\n", fnfc.filename()); break; // FILE CHOSEN } \endcode - + The Fl_Native_File_Chooser widget transmits UTF-8 encoded filenames to its user. It is recommended to open files that may have non-ASCII names with the fl_fopen() or fl_open() utility functions that handle these names in a cross-platform way (whereas the standard fopen()/open() functions fail on the Windows platform to open files with a non-ASCII name). - + Platform Specific Caveats - + - Under X windows, and if Fl::OPTION_FNFC_USES_GTK has not been switched off, the widget attempts to use standard GTK file chooser dialogs if they are available at run-time on the platform, and falls back to use FLTK's Fl_File_Chooser if they are not. @@ -111,34 +109,34 @@ class Fl_Native_File_Chooser_Driver; at the start of main(), to enable the nicer looking file browser widgets. Use the static public attributes of class Fl_File_Chooser to localize the browser. - - Some operating systems support certain OS specific options; see + - Some operating systems support certain OS specific options; see Fl_Native_File_Chooser::options() for a list. - + \image html Fl_Native_File_Chooser.png "The Fl_Native_File_Chooser on different platforms." \image latex Fl_Native_File_Chooser.png "The Fl_Native_File_Chooser on different platforms" width=14cm - + */ class FL_EXPORT Fl_Native_File_Chooser { private: Fl_Native_File_Chooser_Driver *platform_fnfc; public: enum Type { - BROWSE_FILE = 0, ///< browse files (lets user choose one file) - BROWSE_DIRECTORY, ///< browse directories (lets user choose one directory) - BROWSE_MULTI_FILE, ///< browse files (lets user choose multiple files) - BROWSE_MULTI_DIRECTORY, ///< browse directories (lets user choose multiple directories) - BROWSE_SAVE_FILE, ///< browse to save a file - BROWSE_SAVE_DIRECTORY ///< browse to save a directory + BROWSE_FILE = 0, ///< browse files (lets user choose one file) + BROWSE_DIRECTORY, ///< browse directories (lets user choose one directory) + BROWSE_MULTI_FILE, ///< browse files (lets user choose multiple files) + BROWSE_MULTI_DIRECTORY, ///< browse directories (lets user choose multiple directories) + BROWSE_SAVE_FILE, ///< browse to save a file + BROWSE_SAVE_DIRECTORY ///< browse to save a directory }; enum Option { - NO_OPTIONS = 0x0000, ///< no options enabled - SAVEAS_CONFIRM = 0x0001, ///< Show native 'Save As' overwrite confirm dialog - NEW_FOLDER = 0x0002, ///< Show 'New Folder' icon (if supported) - PREVIEW = 0x0004, ///< enable preview mode (if supported) - USE_FILTER_EXT = 0x0008 ///< Chooser filter pilots the output file extension (if supported) + NO_OPTIONS = 0x0000, ///< no options enabled + SAVEAS_CONFIRM = 0x0001, ///< Show native 'Save As' overwrite confirm dialog + NEW_FOLDER = 0x0002, ///< Show 'New Folder' icon (if supported) + PREVIEW = 0x0004, ///< enable preview mode (if supported) + USE_FILTER_EXT = 0x0008 ///< Chooser filter pilots the output file extension (if supported) }; static const char *file_exists_message; - + /** The constructor. Internally allocates the native widgets. Optional \p val presets the type of browser this will be, @@ -213,7 +211,7 @@ public: /** A cross-platform implementation of Fl_Native_File_Chooser_Driver. This implementation uses a Fl_File_Chooser object as file chooser. - + Any platform can support the Fl_Native_File_Chooser class by implementing its constructor as follows: \code @@ -229,16 +227,16 @@ private: int exist_dialog(); void parse_filter(); protected: - int _btype; // kind-of browser to show() - int _options; // general options + int _btype; // kind-of browser to show() + int _options; // general options int _nfilters; - char *_filter; // user supplied filter - char *_parsedfilt; // parsed filter - int _filtvalue; // selected filter + char *_filter; // user supplied filter + char *_parsedfilt; // parsed filter + int _filtvalue; // selected filter char *_preset_file; - char *_prevvalue; // Returned filename + char *_prevvalue; // Returned filename char *_directory; - char *_errmsg; // error message + char *_errmsg; // error message Fl_File_Chooser *_file_chooser; public: Fl_Native_File_Chooser_FLTK_Driver(int val); @@ -272,7 +270,3 @@ public: #endif /*FL_NATIVE_FILE_CHOOSER_H*/ - -// -// End of "$Id$". -// diff --git a/FL/Fl_Nice_Slider.H b/FL/Fl_Nice_Slider.H index febeb940a..1887eacc4 100644 --- a/FL/Fl_Nice_Slider.H +++ b/FL/Fl_Nice_Slider.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // "Nice" slider header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -30,7 +28,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Object.H b/FL/Fl_Object.H index 9cbbcca3b..8098dd2d9 100644 --- a/FL/Fl_Object.H +++ b/FL/Fl_Object.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Old Fl_Object header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // // This file is provided for back compatibility only. Please use Fl_Widget @@ -21,7 +19,3 @@ #define Fl_Object Fl_Widget #endif #include "Fl_Widget.H" - -// -// End of "$Id$". -// diff --git a/FL/Fl_Output.H b/FL/Fl_Output.H index 5d1827164..06dfeb650 100644 --- a/FL/Fl_Output.H +++ b/FL/Fl_Output.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Output header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2011 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -25,7 +23,7 @@ #include "Fl_Input.H" /** This widget displays a piece of text. - + When you set the value() , Fl_Output does a strcpy() to its 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 @@ -56,8 +54,4 @@ public: Fl_Output(int X,int Y,int W,int H, const char *l = 0); }; -#endif - -// -// End of "$Id$". -// +#endif diff --git a/FL/Fl_Overlay_Window.H b/FL/Fl_Overlay_Window.H index 4d600a47f..d19bc3dc1 100644 --- a/FL/Fl_Overlay_Window.H +++ b/FL/Fl_Overlay_Window.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Overlay window header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -66,7 +64,7 @@ protected: Fl_Overlay_Window(int W, int H, const char *l=0); /** Creates a new Fl_Overlay_Window widget using the given - position, size, and label (title) string. If the + position, size, and label (title) string. If the positions (x,y) are not given, then the window manager will choose them. */ @@ -77,7 +75,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_PNG_Image.H b/FL/Fl_PNG_Image.H index 84c246926..b0bd92ffa 100644 --- a/FL/Fl_PNG_Image.H +++ b/FL/Fl_PNG_Image.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // PNG image header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -40,7 +38,3 @@ private: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_PNM_Image.H b/FL/Fl_PNM_Image.H index e5b05885f..ff0b63744 100644 --- a/FL/Fl_PNM_Image.H +++ b/FL/Fl_PNM_Image.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // PNM image header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -37,7 +35,3 @@ class FL_EXPORT Fl_PNM_Image : public Fl_RGB_Image { }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Pack.H b/FL/Fl_Pack.H index 26c5a33a7..cb2d7bb95 100644 --- a/FL/Fl_Pack.H +++ b/FL/Fl_Pack.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Pack header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2020 by Bill Spitzak and others. @@ -11,9 +9,9 @@ // // https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -93,7 +91,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Paged_Device.H b/FL/Fl_Paged_Device.H index 154fb5d7a..3229de8a4 100644 --- a/FL/Fl_Paged_Device.H +++ b/FL/Fl_Paged_Device.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Printing support for the Fast Light Tool Kit (FLTK). // // Copyright 2010-2016 by Bill Spitzak and others. @@ -9,14 +7,14 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // -/** \file Fl_Paged_Device.H +/** \file Fl_Paged_Device.H \brief declaration of class Fl_Paged_Device. */ @@ -32,7 +30,7 @@ /** \brief Represents page-structured drawing surfaces. - This class has no public constructor: don't instantiate it; use Fl_Printer + This class has no public constructor: don't instantiate it; use Fl_Printer or Fl_PostScript_File_Device instead. */ class FL_EXPORT Fl_Paged_Device : public Fl_Widget_Surface { @@ -42,7 +40,7 @@ protected: public: /** \brief Possible page formats. - + All paper formats with pre-defined width and height. */ enum Page_Format { @@ -92,15 +90,15 @@ public: */ typedef struct { /** \brief width in points */ - int width; + int width; /** \brief height in points */ - int height; + int height; /** \brief format name */ - const char *name; + const char *name; } page_format; /** \brief width, height and name of all elements of the enum \ref Page_Format. */ - static const page_format page_formats[NO_PAGE_FORMATS]; + static const page_format page_formats[NO_PAGE_FORMATS]; /** \brief The destructor */ virtual ~Fl_Paged_Device() {}; virtual int begin_job(int pagecount = 0, int *frompage = NULL, int *topage = NULL, char **perr_message = NULL); @@ -128,7 +126,3 @@ public: #endif // Fl_Paged_Device_H -// -// End of "$Id$" -// - diff --git a/FL/Fl_Pixmap.H b/FL/Fl_Pixmap.H index 384a25b22..c446a92be 100644 --- a/FL/Fl_Pixmap.H +++ b/FL/Fl_Pixmap.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Pixmap header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2017 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -47,7 +45,7 @@ protected: public: int alloc_data; // Non-zero if data was allocated - + private: // for internal use fl_uintptr_t id_; @@ -77,7 +75,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Plugin.H b/FL/Fl_Plugin.H index 6cbd840ad..aca8d4b8b 100644 --- a/FL/Fl_Plugin.H +++ b/FL/Fl_Plugin.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // A Plugin system for FLTK, implemented in Fl_Preferences.cxx. // // Copyright 2002-2010 by Matthias Melcher. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -27,7 +25,7 @@ /** \brief Fl_Plugin allows link-time and run-time integration of binary modules. - + Fl_Plugin and Fl_Plugin_Manager provide a small and simple solution for linking C++ classes at run-time, or optionally linking modules at compile time without the need to change the main application. @@ -35,7 +33,7 @@ Fl_Plugin_Manager uses static initialisation to create the plugin interface early during startup. Plugins are stored in a temporary database, organized in classes. - + Plugins should derive a new class from Fl_Plugin as a base: \code class My_Plugin : public Fl_Plugin { @@ -45,9 +43,9 @@ }; My_Plugin blur_plugin(); \endcode - + Plugins can be put into modules and either linked before distribution, or loaded - from dynamically linkable files. An Fl_Plugin_Manager is used to list and + from dynamically linkable files. An Fl_Plugin_Manager is used to list and access all currently loaded plugins. \code Fl_Plugin_Manager mgr("effects"); @@ -74,14 +72,14 @@ class FL_EXPORT Fl_Plugin_Manager : public Fl_Preferences { public: Fl_Plugin_Manager(const char *klass); ~Fl_Plugin_Manager(); - + /** \brief Return the number of plugins in the klass. */ int plugins() { return groups(); } Fl_Plugin *plugin(int index); Fl_Plugin *plugin(const char *name); Fl_Preferences::ID addPlugin(const char *name, Fl_Plugin *plugin); - + static void removePlugin(Fl_Preferences::ID id); static int load(const char *filename); static int loadAll(const char *filepath, const char *pattern=0); @@ -89,7 +87,3 @@ public: #endif // !Fl_Preferences_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_Positioner.H b/FL/Fl_Positioner.H index a47e64cd9..02d872e03 100644 --- a/FL/Fl_Positioner.H +++ b/FL/Fl_Positioner.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Positioner header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -31,7 +29,7 @@ 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 selection_color(). -

    \image html positioner.png

    +

    \image html positioner.png

    \image latex positioner.png " Fl_Positioner" width=4cm */ class FL_EXPORT Fl_Positioner : public Fl_Widget { @@ -88,7 +86,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_PostScript.H b/FL/Fl_PostScript.H index ad6a6cd4a..f5f55f4fd 100644 --- a/FL/Fl_PostScript.H +++ b/FL/Fl_PostScript.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Support for graphics output to PostScript file for the Fast Light Tool Kit (FLTK). // // Copyright 2010-2020 by Bill Spitzak and others. @@ -11,12 +9,12 @@ // // https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // -/** \file Fl_PostScript.H +/** \file Fl_PostScript.H \brief declaration of classes Fl_PostScript_Graphics_Driver, Fl_PostScript_File_Device. */ @@ -57,21 +55,21 @@ public: Fl_PostScript_Graphics_Driver(); #ifndef FL_DOXYGEN enum SHAPE{NONE=0, LINE, LOOP, POLYGON, POINTS}; - + class Clip { public: int x, y, w, h; Clip *prev; }; Clip * clip_; - + int lang_level_; int gap_; int pages_; - + double width_; double height_; - + int shape_; int linewidth_;// need for clipping, lang level 1-2 int linestyle_;// @@ -82,7 +80,7 @@ public: void reconcat(); //invert void recover(); //recovers the state after grestore (such as line styles...) void reset(); - + uchar * mask; int mx; // width of mask; int my; // mask lines @@ -91,16 +89,16 @@ public: int page_policy_; int nPages; int orientation_; - + float scale_x; float scale_y; float angle; int left_margin; int top_margin; - + FILE *output; double pw_, ph_; - + uchar bg_r, bg_g, bg_b; int start_postscript (int pagecount, enum Fl_Paged_Device::Page_Format format, enum Fl_Paged_Device::Page_Layout layout); /* int alpha_mask(const uchar * data, int w, int h, int D, int LD=0); @@ -108,10 +106,10 @@ public: void transformed_draw(const char* s, int n, double x, double y); //precise text placing void transformed_draw(const char* s, double x, double y); int alpha_mask(const uchar * data, int w, int h, int D, int LD=0); - + enum Fl_Paged_Device::Page_Format page_format_; char *ps_filename_; - + void page_policy(int p); int page_policy(){return page_policy_;}; void close_command(Fl_PostScript_Close_Command* cmd){close_cmd_=cmd;}; @@ -121,43 +119,43 @@ public: //Fl_PostScript_Graphics_Driver(FILE *o, int lang_level, int x, int y, int w, int h); //eps constructor void interpolate(int i){interpolate_=i;}; int interpolate(){return interpolate_;} - + void page(double pw, double ph, int media = 0); void page(int format); #endif // FL_DOXYGEN - + // implementation of drawing methods void color(Fl_Color c); void color(uchar r, uchar g, uchar b); - + void push_clip(int x, int y, int w, int h); int clip_box(int x, int y, int w, int h, int &X, int &Y, int &W, int &H); int not_clipped(int x, int y, int w, int h); void push_no_clip(); void pop_clip(); - + void line_style(int style, int width=0, char* dashes=0); - + void rect(int x, int y, int w, int h); void rectf(int x, int y, int w, int h); - + void xyline(int x, int y, int x1); void xyline(int x, int y, int x1, int y2); void xyline(int x, int y, int x1, int y2, int x3); - + void yxline(int x, int y, int y1); void yxline(int x, int y, int y1, int x2); void yxline(int x, int y, int y1, int x2, int y3); - + void line(int x1, int y1, int x2, int y2); - void line(int x1, int y1, int x2, int y2, int x3, int y3); - + void line(int x1, int y1, int x2, int y2, int x3, int y3); + void loop(int x0, int y0, int x1, int y1, int x2, int y2); void loop(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3); void polygon(int x0, int y0, int x1, int y1, int x2, int y2); void polygon(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3); void point(int x, int y); - + void begin_points(); void begin_line(); void begin_loop(); @@ -176,12 +174,12 @@ public: void gap(){gap_=1;}; void end_complex_polygon(){end_polygon();}; void transformed_vertex(double x, double y); - + void draw_image(const uchar* d, int x,int y,int w,int h, int delta=3, int ldelta=0); void draw_image_mono(const uchar* d, int x,int y,int w,int h, int delta=1, int ld=0); void draw_image(Fl_Draw_Image_Cb call, void* data, int x,int y, int w, int h, int delta=3); void draw_image_mono(Fl_Draw_Image_Cb call, void* data, int x,int y, int w, int h, int delta=1); - + void draw(const char* s, int nBytes, int x, int y) {transformed_draw(s,nBytes,x,y); }; void draw(const char* s, int nBytes, float x, float y) {transformed_draw(s,nBytes,x,y); }; void draw(int angle, const char *str, int n, int x, int y); @@ -206,7 +204,7 @@ public: // --- Fl_Bitmask create_bitmask(int w, int h, const uchar *array) { return 0L; } virtual int has_feature(driver_feature feature_mask) { return feature_mask & PRINTER; } - + int start_eps(int width, int height); void ps_origin(int x, int y); void ps_translate(int, int); @@ -222,7 +220,7 @@ public: To send graphical output to a PostScript file. This class is used exactly as the Fl_Printer class except for the begin_job() call, two variants of which are usable and allow to specify what page format and layout are desired. - + PostScript text uses vectorial fonts when using the FLTK standard fonts and the latin alphabet or a few other characters listed in the following table. The latin alphabet means all unicode characters between U+0020 and U+017F, or, in other words, @@ -274,7 +272,7 @@ public: @return 0 if OK, 1 if user cancelled the file dialog, 2 if fopen failed on user-selected output file. */ int begin_job(int pagecount = 0, enum Fl_Paged_Device::Page_Format format = Fl_Paged_Device::A4, - enum Fl_Paged_Device::Page_Layout layout = Fl_Paged_Device::PORTRAIT); + enum Fl_Paged_Device::Page_Layout layout = Fl_Paged_Device::PORTRAIT); /** Synonym of begin_job(). For API compatibility with FLTK 1.3.x */ int start_job(int pagecount = 0, enum Fl_Paged_Device::Page_Format format = Fl_Paged_Device::A4, @@ -292,7 +290,7 @@ public: @return always 0. */ int begin_job(FILE *ps_output, int pagecount = 0, enum Fl_Paged_Device::Page_Format format = Fl_Paged_Device::A4, - enum Fl_Paged_Device::Page_Layout layout = Fl_Paged_Device::PORTRAIT); + enum Fl_Paged_Device::Page_Layout layout = Fl_Paged_Device::PORTRAIT); /** Synonym of begin_job(). For API compatibility with FLTK 1.3.x */ int start_job(FILE *ps_output, int pagecount = 0, enum Fl_Paged_Device::Page_Format format = Fl_Paged_Device::A4, @@ -309,8 +307,8 @@ public: void rotate(float angle); void translate(int x, int y); void untranslate(void); - int end_page (void); - void end_job(void); + int end_page (void); + void end_job(void); /** \brief Label of the PostScript file chooser window */ static const char *file_chooser_title; }; @@ -368,7 +366,3 @@ public: }; #endif // Fl_PostScript_H - -// -// End of "$Id$" -// diff --git a/FL/Fl_Preferences.H b/FL/Fl_Preferences.H index 9690e456f..9378ec408 100644 --- a/FL/Fl_Preferences.H +++ b/FL/Fl_Preferences.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Preferences implementation for the Fast Light Tool Kit (FLTK). // // Copyright 2002-2010 by Matthias Melcher. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -23,7 +21,7 @@ # define Fl_Preferences_H # include -# include "Fl_Export.H" +# include "Fl_Export.H" /** \brief Fl_Preferences provides methods to store user @@ -51,7 +49,7 @@ reasons. One application can have multiple preferences files. Extensive binary data however should be stored in separate files: see \a Fl_Preferences::getUserdataPath() . - + \note Starting with FLTK 1.3, preference databases are expected to be in UTF-8 encoding. Previous databases were stored in the current character set or code page which renders them incompatible @@ -64,11 +62,11 @@ */ class FL_EXPORT Fl_Preferences { -public: +public: /** Define the scope of the preferences. */ - enum Root { + enum Root { SYSTEM = 0, ///< Preferences are used system-wide USER, ///< Preferences apply only to the current user ROOT_MASK = 0xFF, ///< masks for the values above @@ -76,16 +74,16 @@ public: CORE_SYSTEM = CORE|SYSTEM, CORE_USER = CORE|USER }; - + /** Every Fl_Preferences-Group has a uniqe ID. - + ID's can be retrieved from an Fl_Preferences-Group and can then be used - to create more Fl_Preference references to the same data set, as long as the + to create more Fl_Preference references to the same data set, as long as the database remains open. */ typedef void *ID; - + static const char *newUUID(); /** Set this, if no call to Fl_Preferences shall access the file sytem @@ -132,11 +130,11 @@ public: Fl_Preferences(const Fl_Preferences&); Fl_Preferences( ID id ); virtual ~Fl_Preferences(); - + /** Return an ID that can later be reused to open more references to this dataset. */ ID id() { return (ID)node; } - + /** Remove the group with this ID from a database. */ static char remove(ID id_) { return ((Node*)id_)->remove(); } @@ -144,11 +142,11 @@ public: /** Return the name of this entry. */ const char *name() { return node->name(); } - + /** Return the full path to this entry. */ const char *path() { return node->path(); } - + int groups(); const char *group( int num_group ); char groupExists( const char *key ); @@ -160,7 +158,7 @@ public: char entryExists( const char *key ); char deleteEntry( const char *entry ); char deleteAllEntries(); - + char clear(); char set( const char *entry, int value ); @@ -169,8 +167,8 @@ public: char set( const char *entry, double value ); char set( const char *entry, double value, int precision ); char set( const char *entry, const char *value ); - char set( const char *entry, const void *value, int size ); - + char set( const char *entry, const void *value, int size ); + char get( const char *entry, int &value, int defaultValue ); char get( const char *entry, float &value, float defaultValue ); char get( const char *entry, double &value, double defaultValue ); @@ -187,13 +185,13 @@ public: // char export( const char *filename, Type fileFormat ); // char import( const char *filename ); - + /** 'Name' provides a simple method to create numerical or more complex procedural names for entries and groups on the fly. - + Example: prefs.set(Fl_Preferences::Name("File%d",i),file[i]);. - + See test/preferences.cxx as a sample for writing arrays into preferences. 'Name' is actually implemented as a class inside Fl_Preferences. It casts @@ -204,7 +202,7 @@ public: char *data_; - public: + public: Name( unsigned int n ); Name( const char *format, ... ); @@ -221,7 +219,7 @@ public: char *name, *value; }; -private: +private: Fl_Preferences() : node(0), rootNode(0) { } Fl_Preferences &operator=(const Fl_Preferences&); @@ -232,13 +230,13 @@ private: public: // older Sun compilers need this (public definition of the following classes) class RootNode; - - class FL_EXPORT Node { // a node contains a list to all its entries - // and all means to manage the tree structure + + class FL_EXPORT Node { // a node contains a list to all its entries + // and all means to manage the tree structure Node *child_, *next_; - union { // these two are mutually exclusive - Node *parent_; // top_ bit clear - RootNode *root_; // top_ bit set + union { // these two are mutually exclusive + Node *parent_; // top_ bit clear + RootNode *root_; // top_ bit set }; char *path_; Entry *entry_; @@ -288,7 +286,7 @@ public: // older Sun compilers need this (public definition of the following cl }; friend class Node; - class FL_EXPORT RootNode { // the root node manages file paths and basic reading and writing + class FL_EXPORT RootNode { // the root node manages file paths and basic reading and writing Fl_Preferences *prefs_; char *filename_; char *vendor_, *application_; @@ -310,7 +308,3 @@ protected: }; #endif // !Fl_Preferences_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_Printer.H b/FL/Fl_Printer.H index 43b05c1be..320ec12f6 100644 --- a/FL/Fl_Printer.H +++ b/FL/Fl_Printer.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Printing support for the Fast Light Tool Kit (FLTK). // // Copyright 2010-2016 by Bill Spitzak and others. @@ -9,14 +7,14 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // -/** \file Fl_Printer.H +/** \file Fl_Printer.H \brief declaration of class Fl_Printer. */ @@ -29,11 +27,11 @@ \brief OS-independent print support. Fl_Printer allows to use all drawing, color, text, image, and clip FLTK functions, and to have them operate on printed page(s). There are two main, non exclusive, ways to use it. -
    • Print any widget (standard, custom, Fl_Window, Fl_Gl_Window) as it appears - on screen, with optional translation, scaling and rotation. This is done by calling print_widget(), +
      • Print any widget (standard, custom, Fl_Window, Fl_Gl_Window) as it appears + on screen, with optional translation, scaling and rotation. This is done by calling print_widget(), print_window() or print_window_part().
      • Use a series of FLTK graphics commands (e.g., font, text, lines, colors, clip, image) to - compose a page appropriately shaped for printing. + compose a page appropriately shaped for printing.
      In both cases, begin by begin_job(), begin_page(), printable_rect() and origin() calls and finish by end_page() and end_job() calls. @@ -111,12 +109,12 @@ public: /** \name These attributes are useful for the Linux/Unix platform only. \{ - */ - static const char *dialog_title; - static const char *dialog_printer; - static const char *dialog_range; - static const char *dialog_copies; - static const char *dialog_all; + */ + static const char *dialog_title; + static const char *dialog_printer; + static const char *dialog_range; + static const char *dialog_copies; + static const char *dialog_all; static const char *dialog_pages; static const char *dialog_from; static const char *dialog_to; @@ -131,13 +129,9 @@ public: static const char *property_use; static const char *property_save; static const char *property_cancel; - /** \} */ + /** \} */ /** The destructor */ ~Fl_Printer(void); }; #endif // Fl_Printer_H - -// -// End of "$Id$" -// diff --git a/FL/Fl_Progress.H b/FL/Fl_Progress.H index 769028f22..e0b5d8911 100644 --- a/FL/Fl_Progress.H +++ b/FL/Fl_Progress.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Progress bar widget definitions. // // Copyright 2000-2010 by Michael Sweet. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -36,10 +34,10 @@ Displays a progress bar for the user. */ class FL_EXPORT Fl_Progress : public Fl_Widget { - - float value_, - minimum_, - maximum_; + + float value_, + minimum_, + maximum_; protected: @@ -50,23 +48,19 @@ class FL_EXPORT Fl_Progress : public Fl_Widget { Fl_Progress(int x, int y, int w, int h, const char *l = 0); /** Sets the maximum value in the progress widget. */ - void maximum(float v) { maximum_ = v; redraw(); } + void maximum(float v) { maximum_ = v; redraw(); } /** Gets the maximum value in the progress widget. */ - float maximum() const { return (maximum_); } + float maximum() const { return (maximum_); } /** Sets the minimum value in the progress widget. */ - void minimum(float v) { minimum_ = v; redraw(); } + void minimum(float v) { minimum_ = v; redraw(); } /** Gets the minimum value in the progress widget. */ - float minimum() const { return (minimum_); } + float minimum() const { return (minimum_); } /** Sets the current value in the progress widget. */ - void value(float v) { value_ = v; redraw(); } + void value(float v) { value_ = v; redraw(); } /** Gets the current value in the progress widget. */ - float value() const { return (value_); } + float value() const { return (value_); } }; #endif // !_Fl_Progress_H_ - -// -// End of "$Id$". -// diff --git a/FL/Fl_RGB_Image.H b/FL/Fl_RGB_Image.H index 056d4145b..1584c2fcb 100644 --- a/FL/Fl_RGB_Image.H +++ b/FL/Fl_RGB_Image.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // RGB Image header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,18 +7,14 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef Fl_RGB_Image_H # define Fl_RGB_Image_H # include "Fl_Image.H" #endif // !Fl_RGB_Image_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_Radio_Button.H b/FL/Fl_Radio_Button.H index 5dafe42a8..9cfc31621 100644 --- a/FL/Fl_Radio_Button.H +++ b/FL/Fl_Radio_Button.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Radio button header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2014 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -30,7 +28,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Radio_Light_Button.H b/FL/Fl_Radio_Light_Button.H index 5945be11f..0877377db 100644 --- a/FL/Fl_Radio_Light_Button.H +++ b/FL/Fl_Radio_Light_Button.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Radio light button header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2014 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -30,7 +28,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Radio_Round_Button.H b/FL/Fl_Radio_Round_Button.H index 91f53481a..ab0dc55d2 100644 --- a/FL/Fl_Radio_Round_Button.H +++ b/FL/Fl_Radio_Round_Button.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Radio round button header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2014 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -30,7 +28,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Rect.H b/FL/Fl_Rect.H index 00e570a82..32ce01ffb 100644 --- a/FL/Fl_Rect.H +++ b/FL/Fl_Rect.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Fl_Rect header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2018 by Bill Spitzak and others. @@ -9,17 +7,17 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef Fl_Rect_H #define Fl_Rect_H -#include // for c'tor based on Fl_Widget +#include // for c'tor based on Fl_Widget /** Rectangle with standard FLTK coordinates (X, Y, W, H). @@ -60,10 +58,10 @@ public: Fl_Rect (const Fl_Widget* const widget) : x_(widget->x()), y_(widget->y()), w_(widget->w()), h_(widget->h()) {} - int x() const { return x_; } ///< gets the x coordinate (left edge) - int y() const { return y_; } ///< gets the y coordinate (top edge) - int w() const { return w_; } ///< gets the width - int h() const { return h_; } ///< gets the height + int x() const { return x_; } ///< gets the x coordinate (left edge) + int y() const { return y_; } ///< gets the y coordinate (top edge) + int w() const { return w_; } ///< gets the width + int h() const { return h_; } ///< gets the height /** gets the right edge (x + w). \note r() and b() are coordinates \b outside the area of the rectangle. @@ -74,15 +72,11 @@ public: */ int b() const { return y_ + h_; } - void x(int X) { x_ = X; } ///< sets the x coordinate (left edge) - void y(int Y) { y_ = Y; } ///< sets the y coordinate (top edge) - void w(int W) { w_ = W; } ///< sets the width - void h(int H) { h_ = H; } ///< sets the height + void x(int X) { x_ = X; } ///< sets the x coordinate (left edge) + void y(int Y) { y_ = Y; } ///< sets the y coordinate (top edge) + void w(int W) { w_ = W; } ///< sets the width + void h(int H) { h_ = H; } ///< sets the height }; // class Fl_Rect #endif // Fl_Rect_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_Repeat_Button.H b/FL/Fl_Repeat_Button.H index f22df8899..08ac61a33 100644 --- a/FL/Fl_Repeat_Button.H +++ b/FL/Fl_Repeat_Button.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Repeat button header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -48,7 +46,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Return_Button.H b/FL/Fl_Return_Button.H index 54b4ab5ef..845b15f7d 100644 --- a/FL/Fl_Return_Button.H +++ b/FL/Fl_Return_Button.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Return button header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -27,7 +25,7 @@ The Fl_Return_Button is a subclass of Fl_Button 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. -

      \image html Fl_Return_Button.png +

      \image html Fl_Return_Button.png \image latex Fl_Return_Button.png "Fl_Return_Button" width=4cm */ class FL_EXPORT Fl_Return_Button : public Fl_Button { @@ -44,7 +42,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Roller.H b/FL/Fl_Roller.H index c416c136a..4eeabd300 100644 --- a/FL/Fl_Roller.H +++ b/FL/Fl_Roller.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Roller header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -33,8 +31,8 @@ The roller can be controlled by clicking and dragging the mouse, by the corresponding arrow keys when the roller has the keyboard focus, or by the mousewheels when the mouse pointer is positioned over the roller widget. - -

      \image html Fl_Roller.png + +

      \image html Fl_Roller.png \image latex Fl_Roller.png "Fl_Roller" width=4cm */ class FL_EXPORT Fl_Roller : public Fl_Valuator { @@ -46,7 +44,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Round_Button.H b/FL/Fl_Round_Button.H index f5cb03325..8c84e44cf 100644 --- a/FL/Fl_Round_Button.H +++ b/FL/Fl_Round_Button.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Round button header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2014 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef Fl_Round_Button_H @@ -39,7 +37,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Round_Clock.H b/FL/Fl_Round_Clock.H index 3ae748256..5d9bf90ea 100644 --- a/FL/Fl_Round_Clock.H +++ b/FL/Fl_Round_Clock.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Round clock header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -32,7 +30,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_SVG_File_Surface.H b/FL/Fl_SVG_File_Surface.H index 9f5c7ace6..74437326f 100644 --- a/FL/Fl_SVG_File_Surface.H +++ b/FL/Fl_SVG_File_Surface.H @@ -9,9 +9,9 @@ // // https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef Fl_SVG_File_Surface_H diff --git a/FL/Fl_SVG_Image.H b/FL/Fl_SVG_Image.H index 4940ffb8c..9a2504c02 100644 --- a/FL/Fl_SVG_Image.H +++ b/FL/Fl_SVG_Image.H @@ -9,9 +9,9 @@ // // https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef FL_SVG_IMAGE_H @@ -22,28 +22,28 @@ struct NSVGimage; /** The Fl_SVG_Image class supports loading, caching and drawing of scalable vector graphics (SVG) images. - The FLTK library performs parsing and rasterization of SVG data using a modified version + The FLTK library performs parsing and rasterization of SVG data using a modified version of the \c nanosvg software (https://github.com/memononen/nanosvg). The software modification allows the option to change the image ratio while performing rasterization. - Use Fl_Image::fail() to check if the Fl_SVG_Image failed to load. fail() returns ERR_FILE_ACCESS - if the file could not be opened or read, and ERR_FORMAT if the SVG format could not be decoded. + Use Fl_Image::fail() to check if the Fl_SVG_Image failed to load. fail() returns ERR_FILE_ACCESS + if the file could not be opened or read, and ERR_FORMAT if the SVG format could not be decoded. If the image has loaded correctly, w(), h(), and d() should return values greater than zero. - Rasterization is not done until the image is first drawn or resize() or normalize() is called. Therefore, + Rasterization is not done until the image is first drawn or resize() or normalize() is called. Therefore, \ref array is NULL until then. The delayed rasterization ensures an Fl_SVG_Image is always rasterized to the exact screen resolution at which it is drawn. The Fl_SVG_Image class draws images computed by \c nanosvg with the following known limitations - + - text between \c and marks, - \c image elements, and - statements are not rendered. - The FLTK library can optionally be built without SVG support; in that case, + The FLTK library can optionally be built without SVG support; in that case, class Fl_SVG_Image is unavailable. Example of displaying a hard-coded svg file: @@ -117,7 +117,7 @@ struct NSVGimage; Fl_Box::resize(x, y, w, h); } }; - + int main(int argc, char **argv) { Fl_Window *win = new Fl_Window(130, 130); resizable_box *box = new resizable_box(win->w(), win->h()); @@ -166,7 +166,3 @@ public: }; #endif // FL_SVG_IMAGE_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_Scroll.H b/FL/Fl_Scroll.H index 9da8a2d32..bc51fe11c 100644 --- a/FL/Fl_Scroll.H +++ b/FL/Fl_Scroll.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Scroll header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2015 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -94,7 +92,7 @@ class FL_EXPORT Fl_Scroll : public Fl_Group { void fix_scrollbar_order(); static void draw_clip(void*,int,int,int,int); -protected: // (STR#1895) +protected: // (STR#1895) /** Structure to manage scrollbar and widget interior sizes. This is filled out by recalc_scrollbars() for use in calculations @@ -106,27 +104,27 @@ protected: // (STR#1895) typedef struct { int x,y,w,h; } Fl_Region_XYWH; /// A local struct to manage a region defined by left/right/top/bottom typedef struct { - int l; ///< (l)eft "x" position, aka x1 - int r; ///< (r)ight "x" position, aka x2 - int t; ///< (t)op "y" position, aka y1 - int b; ///< (b)ottom "y" position, aka y2 + int l; ///< (l)eft "x" position, aka x1 + int r; ///< (r)ight "x" position, aka x2 + int t; ///< (t)op "y" position, aka y1 + int b; ///< (b)ottom "y" position, aka y2 } Fl_Region_LRTB; /// A local struct to manage a scrollbar's xywh region and tab values typedef struct { int x,y,w,h; - int pos; ///< scrollbar tab's "position of first line displayed" - int size; ///< scrollbar tab's "size of window in lines" - int first; ///< scrollbar tab's "number of first line" - int total; ///< scrollbar tab's "total number of lines" + int pos; ///< scrollbar tab's "position of first line displayed" + int size; ///< scrollbar tab's "size of window in lines" + int first; ///< scrollbar tab's "number of first line" + int total; ///< scrollbar tab's "total number of lines" } Fl_Scrollbar_Data; - int scrollsize; ///< the effective scrollbar thickness (local or global) - Fl_Region_XYWH innerbox; ///< widget's inner box, excluding scrollbars - Fl_Region_XYWH innerchild; ///< widget's inner box, including scrollbars - Fl_Region_LRTB child; ///< child bounding box: left/right/top/bottom - int hneeded; ///< horizontal scrollbar visibility - int vneeded; ///< vertical scrollbar visibility - Fl_Scrollbar_Data hscroll; ///< horizontal scrollbar region + values - Fl_Scrollbar_Data vscroll; ///< vertical scrollbar region + values + int scrollsize; ///< the effective scrollbar thickness (local or global) + Fl_Region_XYWH innerbox; ///< widget's inner box, excluding scrollbars + Fl_Region_XYWH innerchild; ///< widget's inner box, including scrollbars + Fl_Region_LRTB child; ///< child bounding box: left/right/top/bottom + int hneeded; ///< horizontal scrollbar visibility + int vneeded; ///< vertical scrollbar visibility + Fl_Scrollbar_Data hscroll; ///< horizontal scrollbar region + values + Fl_Scrollbar_Data vscroll; ///< vertical scrollbar region + values } ScrollInfo; void recalc_scrollbars(ScrollInfo &si); @@ -199,7 +197,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Scrollbar.H b/FL/Fl_Scrollbar.H index 5563dcce1..f4542cfdc 100644 --- a/FL/Fl_Scrollbar.H +++ b/FL/Fl_Scrollbar.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Scroll bar header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -37,7 +35,7 @@ have to use casts to get at the floating-point versions of value() from Fl_Slider. - \image html scrollbar.png + \image html scrollbar.png \image latex scrollbar.png "Fl_Scrollbar" width=4cm */ class FL_EXPORT Fl_Scrollbar : public Fl_Slider { @@ -105,7 +103,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Secret_Input.H b/FL/Fl_Secret_Input.H index de9621c73..0c7eb1666 100644 --- a/FL/Fl_Secret_Input.H +++ b/FL/Fl_Secret_Input.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Secret input header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2011 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -45,7 +43,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Select_Browser.H b/FL/Fl_Select_Browser.H index 123e24cf8..b4651a0bd 100644 --- a/FL/Fl_Select_Browser.H +++ b/FL/Fl_Select_Browser.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Select browser header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -44,7 +42,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Shared_Image.H b/FL/Fl_Shared_Image.H index f68ec7af0..bc0575340 100644 --- a/FL/Fl_Shared_Image.H +++ b/FL/Fl_Shared_Image.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Shared image header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2017 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /** \file @@ -56,20 +54,20 @@ class FL_EXPORT Fl_Shared_Image : public Fl_Image { protected: - static Fl_Shared_Image **images_; // Shared images - static int num_images_; // Number of shared images - static int alloc_images_; // Allocated shared images - static Fl_Shared_Handler *handlers_; // Additional format handlers - static int num_handlers_; // Number of format handlers - static int alloc_handlers_; // Allocated format handlers + static Fl_Shared_Image **images_; // Shared images + static int num_images_; // Number of shared images + static int alloc_images_; // Allocated shared images + static Fl_Shared_Handler *handlers_; // Additional format handlers + static int num_handlers_; // Number of format handlers + static int alloc_handlers_; // Allocated format handlers - const char *name_; // Name of image file - int original_; // Original image? - int refcount_; // Number of times this image has been used - Fl_Image *image_; // The image that is shared - int alloc_image_; // Was the image allocated? + const char *name_; // Name of image file + int original_; // Original image? + int refcount_; // Number of times this image has been used + Fl_Image *image_; // The image that is shared + int alloc_image_; // Was the image allocated? - static int compare(Fl_Shared_Image **i0, Fl_Shared_Image **i1); + static int compare(Fl_Shared_Image **i0, Fl_Shared_Image **i1); // Use get() and release() to load/delete images in memory... Fl_Shared_Image(); @@ -80,12 +78,12 @@ protected: public: /** Returns the filename of the shared image */ - const char *name() { return name_; } + const char *name() { return name_; } /** Returns the number of references of this shared image. When reference is below 1, the image is deleted. */ - int refcount() { return refcount_; } + int refcount() { return refcount_; } /** Returns whether this is an original image. Images loaded from a file or from memory are marked \p original as @@ -96,8 +94,8 @@ public: */ int original() { return original_; } - void release(); - void reload(); + void release(); + void reload(); virtual Fl_Shared_Image *as_shared_image() { return this; @@ -115,9 +113,9 @@ public: static Fl_Shared_Image *get(const char *name, int W = 0, int H = 0); static Fl_Shared_Image *get(Fl_RGB_Image *rgb, int own_it = 1); static Fl_Shared_Image **images(); - static int num_images(); - static void add_handler(Fl_Shared_Handler f); - static void remove_handler(Fl_Shared_Handler f); + static int num_images(); + static void add_handler(Fl_Shared_Handler f); + static void remove_handler(Fl_Shared_Handler f); }; // @@ -129,7 +127,3 @@ public: FL_EXPORT extern void fl_register_images(); #endif // !Fl_Shared_Image_H - -// -// End of "$Id$" -// diff --git a/FL/Fl_Simple_Counter.H b/FL/Fl_Simple_Counter.H index 8edc907af..1ec214740 100644 --- a/FL/Fl_Simple_Counter.H +++ b/FL/Fl_Simple_Counter.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Simple counter header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -23,9 +21,9 @@ #define Fl_Simple_Counter_H #include "Fl_Counter.H" -/** - This widget creates a counter with only 2 arrow buttons -

      \image html counter.png

      +/** + This widget creates a counter with only 2 arrow buttons +

      \image html counter.png

      \image latex counter.png "Fl_Simple_Counter" width=4cm */ class FL_EXPORT Fl_Simple_Counter : public Fl_Counter { @@ -34,7 +32,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Simple_Terminal.H b/FL/Fl_Simple_Terminal.H index 5f4d5e6dc..158bf7d48 100644 --- a/FL/Fl_Simple_Terminal.H +++ b/FL/Fl_Simple_Terminal.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // A simple terminal widget for Fast Light Tool Kit (FLTK). // // Copyright 1998-2011 by Bill Spitzak and others. @@ -10,11 +8,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -192,7 +190,3 @@ protected: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Single_Window.H b/FL/Fl_Single_Window.H index a5f2cdc0a..01878db5c 100644 --- a/FL/Fl_Single_Window.H +++ b/FL/Fl_Single_Window.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Single-buffered window header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2015 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -35,7 +33,7 @@ class FL_EXPORT Fl_Single_Window : public Fl_Window { public: void show(); void show(int a, char **b) {Fl_Window::show(a,b);} - + /** Creates a new Fl_Single_Window widget using the given size, and label (title) string. @@ -47,12 +45,8 @@ public: position, size, and label (title) string. */ Fl_Single_Window(int X, int Y, int W, int H, const char *l=0); - + int make_current(); }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Slider.H b/FL/Fl_Slider.H index aceb62d5a..4761c6f11 100644 --- a/FL/Fl_Slider.H +++ b/FL/Fl_Slider.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Slider header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -27,12 +25,12 @@ #endif // values for type(), lowest bit indicate horizontal: -#define FL_VERT_SLIDER 0 -#define FL_HOR_SLIDER 1 -#define FL_VERT_FILL_SLIDER 2 -#define FL_HOR_FILL_SLIDER 3 -#define FL_VERT_NICE_SLIDER 4 -#define FL_HOR_NICE_SLIDER 5 +#define FL_VERT_SLIDER 0 +#define FL_HOR_SLIDER 1 +#define FL_VERT_FILL_SLIDER 2 +#define FL_HOR_FILL_SLIDER 3 +#define FL_VERT_NICE_SLIDER 4 +#define FL_HOR_NICE_SLIDER 5 /** The Fl_Slider widget contains a sliding knob inside a box. It is @@ -41,9 +39,9 @@ maximum(). The minimum() may be greater than the maximum() to reverse the slider direction. - Use void Fl_Widget::type(int) to set how the slider is drawn, + Use void Fl_Widget::type(int) to set how the slider is drawn, which can be one of the following: - + \li FL_VERTICAL - Draws a vertical slider (this is the default). \li FL_HORIZONTAL - Draws a horizontal slider. \li FL_VERT_FILL_SLIDER - Draws a filled vertical slider, @@ -55,7 +53,7 @@ \li FL_HOR_NICE_SLIDER - Draws a horizontal slider with a nice looking control knob. - \image html slider.png + \image html slider.png \image latex slider.png "Fl_Slider" width=4cm */ class FL_EXPORT Fl_Slider : public Fl_Valuator { @@ -105,7 +103,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Spinner.H b/FL/Fl_Spinner.H index 48fdaebfd..541078a8f 100644 --- a/FL/Fl_Spinner.H +++ b/FL/Fl_Spinner.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Spinner widget for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2017 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -38,17 +36,17 @@ */ class FL_EXPORT Fl_Spinner : public Fl_Group { - double value_; // Current value - double minimum_; // Minimum value - double maximum_; // Maximum value - double step_; // Amount to add/subtract for up/down - const char *format_; // Format string for input field - int wrap_; // wrap around at bounds (1/0) + double value_; // Current value + double minimum_; // Minimum value + double maximum_; // Maximum value + double step_; // Amount to add/subtract for up/down + const char *format_; // Format string for input field + int wrap_; // wrap around at bounds (1/0) private: static void sb_cb(Fl_Widget *w, Fl_Spinner *sb); // internal callback - void update(); // update input field + void update(); // update input field protected: @@ -60,13 +58,13 @@ protected: public: Fl_Spinner_Input(int X, int Y, int W, int H) : Fl_Input(X, Y, W, H) {} - int handle(int event); // implemented in src/Fl_Spinner.cxx + int handle(int event); // implemented in src/Fl_Spinner.cxx }; - Fl_Spinner_Input input_; // Input field for the value + Fl_Spinner_Input input_; // Input field for the value Fl_Repeat_Button - up_button_, // Up button - down_button_; // Down button + up_button_, // Up button + down_button_; // Down button public: @@ -120,9 +118,9 @@ public: FLTK 1.3.x and older versions. \note Wrap mode does not apply to the input field if the input value - is edited directly as a number. The input value is always - clipped to the allowed range as if wrap mode was off when the - input field is left (i.e. loses focus). + is edited directly as a number. The input value is always + clipped to the allowed range as if wrap mode was off when the + input field is left (i.e. loses focus). \see minimum(), maximum() @@ -207,8 +205,3 @@ public: }; #endif // !Fl_Spinner_H - - -// -// End of "$Id$". -// diff --git a/FL/Fl_Sys_Menu_Bar.H b/FL/Fl_Sys_Menu_Bar.H index c586625ac..beb4425a9 100644 --- a/FL/Fl_Sys_Menu_Bar.H +++ b/FL/Fl_Sys_Menu_Bar.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // MacOS system menu bar header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2017 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /** \file @@ -30,9 +28,9 @@ class Fl_Sys_Menu_Bar_Driver; /** A class to create and modify menus that appear on macOS in the menu bar at the top of the screen. - + On other than macOS platforms, Fl_Sys_Menu_Bar is a synonym of class Fl_Menu_Bar. - + On the macOS platform, replace Fl_Menu_Bar with Fl_Sys_Menu_Bar, and a system menu at the top of the screen will be available. This menu will match an array of Fl_Menu_Item's exactly as in all other FLTK menus (except for the submenu with the @@ -41,7 +39,7 @@ class Fl_Sys_Menu_Bar_Driver; from this class can be created, because macOS uses a single system menu bar. Therefore, porting to macOS an app that creates, on other platforms, several Fl_Menu_Bar objects, one for each of several windows, is more complex that just replacing Fl_Menu_Bar by Fl_Sys_Menu_Bar. - + On the macOS platform, the system menu bar of any FLTK app begins with the Application menu which the FLTK library automatically constructs. Functions Fl_Mac_App_Menu::custom_application_menu_items() and Fl_Sys_Menu_Bar::about() can be used to further customize @@ -51,13 +49,13 @@ class Fl_Sys_Menu_Bar_Driver; Other member functions of this class allow the app to generate the rest of the system menu bar. It is recommended to localize the system menu bar using the standard Mac OS X localization procedure (see \ref osissues_localize). - + Changes to the menu state are immediately visible in the menubar when they are made using member functions of the Fl_Sys_Menu_Bar class. Other changes (e.g., by a call to Fl_Menu_Item::set()) should be followed by a call to update() to be visible in the menubar across all platforms. macOS global variable \ref fl_sys_menu_bar points to the unique, current system menu bar. - + A few FLTK menu features are not supported by the Mac System menu: \li no symbolic labels \li no embossed labels @@ -66,11 +64,11 @@ class Fl_Sys_Menu_Bar_Driver; As described above, the submenu with the application's own name (usually the second submenu from the left, immediately following the "Apple" submenu) is a special case, and can be managed with - Fl_Mac_App_Menu::custom_application_menu_items(). + Fl_Mac_App_Menu::custom_application_menu_items(). For example, to make your own "Appname -> Preferences" dialog, you might use: \code - #include // for Fl_Mac_App_Menu class + #include // for Fl_Mac_App_Menu class #include // for Fl_Menu_Item : void prefs_cb(Fl_Widget *w, void *data) { @@ -84,7 +82,7 @@ class Fl_Sys_Menu_Bar_Driver; { "Preferences", 0, prefs_cb, 0, 0 }, { 0 }, { 0 } }; - Fl_Mac_App_Menu::custom_application_menu_items(appitems); // adds it + Fl_Mac_App_Menu::custom_application_menu_items(appitems); // adds it } \endcode @@ -114,7 +112,7 @@ public: void menu(const Fl_Menu_Item *m); virtual void update(); int add(const char* label, int shortcut, Fl_Callback*, void *user_data=0, int flags=0); - /** Adds a new menu item. + /** Adds a new menu item. \see Fl_Menu_::add(const char* label, int shortcut, Fl_Callback*, void *user_data=0, int flags=0) */ int add(const char* label, const char* shortcut, Fl_Callback* cb, void *user_data=0, int flags=0) { @@ -122,7 +120,7 @@ public: } int add(const char* str); int insert(int index, const char* label, int shortcut, Fl_Callback *cb, void *user_data=0, int flags=0); - /** Insert a new menu item. + /** Insert a new menu item. \see Fl_Menu_::insert(int index, const char* label, const char* shortcut, Fl_Callback *cb, void *user_data=0, int flags=0) */ int insert(int index, const char* label, const char* shortcut, Fl_Callback *cb, void *user_data=0, int flags=0) { @@ -132,14 +130,14 @@ public: void replace(int index, const char *name); void clear(); int clear_submenu(int index); - void mode (int i, int fl); + void mode (int i, int fl); /** Gets the flags of item i. */ int mode(int i) const { return Fl_Menu_::mode(i); } void shortcut (int i, int s); void setonly (Fl_Menu_Item *item); static void about(Fl_Callback *cb, void *data); - + static window_menu_style_enum window_menu_style(); static void window_menu_style(window_menu_style_enum style); static void create_window_menu(); @@ -150,7 +148,3 @@ public: extern Fl_Sys_Menu_Bar *fl_sys_menu_bar; #endif // Fl_Sys_Menu_Bar_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_Table.H b/FL/Fl_Table.H index ad91d62a6..ecc68efa7 100644 --- a/FL/Fl_Table.H +++ b/FL/Fl_Table.H @@ -1,7 +1,5 @@ // -// "$Id$" -// -// Fl_Table -- A table widget +// Fl_Table -- A table widget for the Fast Light Tool Kit (FLTK). // // Copyright 2002 by Greg Ercolano. // Copyright (c) 2004 O'ksi'D @@ -12,9 +10,9 @@ // // https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef _FL_TABLE_H @@ -25,20 +23,20 @@ /** A table of widgets or other content. - + This is the base class for table widgets. - + To be useful it must be subclassed and several virtual functions defined. - Normally applications use widgets derived from this widget, and do not use this - widget directly; this widget is usually too low level to be used directly by + Normally applications use widgets derived from this widget, and do not use this + widget directly; this widget is usually too low level to be used directly by applications. - + This widget does \em not handle the data in the table. The draw_cell() - method must be overridden by a subclass to manage drawing the contents of + method must be overridden by a subclass to manage drawing the contents of the cells. - + This widget can be used in several ways: - + - As a custom widget; see examples/table-simple.cxx and test/table.cxx. Very optimal for even extremely large tables. - As a table made up of a single FLTK widget instanced all over the table, @@ -46,63 +44,63 @@ examples/table-spreadsheet-with-keyboard-nav.cxx. Optimal for large tables. - As a regular container of FLTK widgets, one widget per cell. See examples/table-as-container.cxx. \em Not recommended for large tables. - + \image html table-simple.png \image latex table-simple.png "table-simple example" width=6cm \image html table-as-container.png \image latex table-as-container.png "table-as-container example" width=6cm - + When acting as part of a custom widget, events on the cells and/or headings - generate callbacks when they are clicked by the user. You control when events + generate callbacks when they are clicked by the user. You control when events are generated based on the setting for Fl_Table::when(). - - When acting as a container for FLTK widgets, the FLTK widgets maintain - themselves. Although the draw_cell() method must be overridden, its contents + + When acting as a container for FLTK widgets, the FLTK widgets maintain + themselves. Although the draw_cell() method must be overridden, its contents can be very simple. See the draw_cell() code in examples/table-simple.cxx. - + The following variables are available to classes deriving from Fl_Table: - - \anchor table_dimensions_diagram + + \anchor table_dimensions_diagram \image html table-dimensions.png \image latex table-dimensions.png "Fl_Table Dimensions" width=6cm - +
    Keyboard and mouse bindings.
    - Mouse button 1 + Mouse button 1 - Moves the cursor to this point. - Drag selects characters. - Double click selects words. + Moves the cursor to this point. + Drag selects characters. + Double click selects words. Triple click selects all line. Shift+click extends the selection. When you select text it is automatically copied to the selection buffer.
    - Mouse button 2 + Mouse button 2 Insert the selection buffer at the point clicked. You can also select a region and replace it with the selection buffer @@ -124,7 +122,7 @@ Command-V Paste the clipboard.
    - (Macs keyboards don't have "Insert" keys, + (Macs keyboards don't have "Insert" keys, but if they did, Shift-Insert would work)
    Command-Z Undo.
    - This is a single-level undo mechanism, but all adjacent + This is a single-level undo mechanism, but all adjacent deletions and insertions are concatenated into a single "undo". - Often this will undo a lot more than you expected. + Often this will undo a lot more than you expected.
    Shift-^Z Shift-Command-Z Redo.
    - Currently same behavior as ^Z. + Currently same behavior as ^Z. Reserved for future multilevel undo/redo.
    - - + - - + - +
    x()/y()/w()/h()Fl_Table widget's outer dimension. The outer edge of the border of the + Fl_Table widget's outer dimension. The outer edge of the border of the Fl_Table. (Red in the diagram above)
    wix/wiy/wiw/wihFl_Table widget's inner dimension. The inner edge of the border of the - Fl_Table. eg. if the Fl_Table's box() is FL_NO_BOX, these values are the same + Fl_Table widget's inner dimension. The inner edge of the border of the + Fl_Table. eg. if the Fl_Table's box() is FL_NO_BOX, these values are the same as x()/y()/w()/h(). (Yellow in the diagram above)
    tox/toy/tow/toh The table's outer dimension. The outer edge of the border around the cells, but inside the row/col headings and scrollbars. (Green in the diagram above)
    tix/tiy/tiw/tih The table's inner dimension. The inner edge of the border around the cells, - but inside the row/col headings and scrollbars. AKA the table's clip region. + but inside the row/col headings and scrollbars. AKA the table's clip region. eg. if the table_box() is FL_NO_BOX, these values are the same as tox/toy/tow/toh. (Blue in the diagram above)
    - + CORE DEVELOPERS - + - Greg Ercolano : 12/16/2002 - initial implementation 12/16/02. Fl_Table, Fl_Table_Row, docs. - Jean-Marc Lienher : 02/22/2004 - added keyboard nav + mouse selection, and ported Fl_Table into fltk-utf8-1.1.4 - + OTHER CONTRIBUTORS - + - Inspired by the Feb 2000 version of FLVW's Flvw_Table widget. Mucho thanks to those folks. - Mister Satan : 04/07/2003 - MinGW porting mods, and singleinput.cxx; a cool Fl_Input oriented spreadsheet example - Marek Paliwoda : 01/08/2003 - Porting mods for Borland - Ori Berger : 03/16/2006 - Optimizations for >500k rows/cols - + LICENSE - + Greg kindly gave his permission to integrate Fl_Table and Fl_Table_Row into FLTK, allowing FLTK license to apply while his widgets are part of the library. [updated by Greg, 04/26/17] @@ -116,30 +114,30 @@ public: or in a callback() to determine where a recent event occurred. */ enum TableContext { - CONTEXT_NONE = 0, ///< no known context - CONTEXT_STARTPAGE = 0x01, ///< before the table is redrawn - CONTEXT_ENDPAGE = 0x02, ///< after the table is redrawn - CONTEXT_ROW_HEADER = 0x04, ///< drawing or event occurred in the row header - CONTEXT_COL_HEADER = 0x08, ///< drawing or event occurred in the col header - CONTEXT_CELL = 0x10, ///< drawing or event occurred in a cell - CONTEXT_TABLE = 0x20, ///< drawing or event occurred in a dead zone of table - CONTEXT_RC_RESIZE = 0x40 ///< column or row is being resized + CONTEXT_NONE = 0, ///< no known context + CONTEXT_STARTPAGE = 0x01, ///< before the table is redrawn + CONTEXT_ENDPAGE = 0x02, ///< after the table is redrawn + CONTEXT_ROW_HEADER = 0x04, ///< drawing or event occurred in the row header + CONTEXT_COL_HEADER = 0x08, ///< drawing or event occurred in the col header + CONTEXT_CELL = 0x10, ///< drawing or event occurred in a cell + CONTEXT_TABLE = 0x20, ///< drawing or event occurred in a dead zone of table + CONTEXT_RC_RESIZE = 0x40 ///< column or row is being resized }; - + private: - int _rows, _cols; // total rows/cols - int _row_header_w; // width of row header - int _col_header_h; // height of column header - int _row_position; // last row_position set (not necessarily == toprow!) - int _col_position; // last col_position set (not necessarily == leftcol!) - - char _row_header; // row header enabled? - char _col_header; // col header enabled? - char _row_resize; // row resizing enabled? - char _col_resize; // col resizing enabled? - int _row_resize_min; // row minimum resizing height (default=1) - int _col_resize_min; // col minimum resizing width (default=1) - + int _rows, _cols; // total rows/cols + int _row_header_w; // width of row header + int _col_header_h; // height of column header + int _row_position; // last row_position set (not necessarily == toprow!) + int _col_position; // last col_position set (not necessarily == leftcol!) + + char _row_header; // row header enabled? + char _col_header; // col header enabled? + char _row_resize; // row resizing enabled? + char _col_resize; // col resizing enabled? + int _row_resize_min; // row minimum resizing height (default=1) + int _col_resize_min; // col minimum resizing width (default=1) + // OPTIMIZATION: partial row/column redraw variables int _redraw_toprow; int _redraw_botrow; @@ -147,15 +145,15 @@ private: int _redraw_rightcol; Fl_Color _row_header_color; Fl_Color _col_header_color; - + int _auto_drag; int _selecting; int _scrollbar_size; enum { - TABCELLNAV = 1<<0, ///> tab cell navigation flag + TABCELLNAV = 1<<0, ///> tab cell navigation flag }; unsigned int flags_; - + // An STL-ish vector without templates class FL_EXPORT IntVector { int *arr; @@ -166,10 +164,10 @@ private: } void copy(int *newarr, unsigned int newsize); public: - IntVector() { init(); } // CTOR - ~IntVector(); // DTOR - IntVector(IntVector&o) { init(); copy(o.arr, o._size); } // COPY CTOR - IntVector& operator=(IntVector&o) { // ASSIGN + IntVector() { init(); } // CTOR + ~IntVector(); // DTOR + IntVector(IntVector&o) { init(); copy(o.arr, o._size); } // COPY CTOR + IntVector& operator=(IntVector&o) { // ASSIGN init(); copy(o.arr, o._size); return(*this); @@ -182,34 +180,34 @@ private: void push_back(int val) { unsigned int x = _size; size(_size+1); arr[x] = val; } int back() { return(arr[_size-1]); } }; - - IntVector _colwidths; // column widths in pixels - IntVector _rowheights; // row heights in pixels - - Fl_Cursor _last_cursor; // last mouse cursor before changed to 'resize' cursor - + + IntVector _colwidths; // column widths in pixels + IntVector _rowheights; // row heights in pixels + + Fl_Cursor _last_cursor; // last mouse cursor before changed to 'resize' cursor + // EVENT CALLBACK DATA - TableContext _callback_context; // event context - int _callback_row, _callback_col; // event row/col - + TableContext _callback_context; // event context + int _callback_row, _callback_col; // event row/col + // handle() state variables. // Put here instead of local statics in handle(), so more // than one Fl_Table can exist without crosstalk between them. // - int _resizing_col; // column being dragged - int _resizing_row; // row being dragged - int _dragging_x; // starting x position for horiz drag - int _dragging_y; // starting y position for vert drag - int _last_row; // last row we FL_PUSH'ed - + int _resizing_col; // column being dragged + int _resizing_row; // row being dragged + int _dragging_x; // starting x position for horiz drag + int _dragging_y; // starting y position for vert drag + int _last_row; // last row we FL_PUSH'ed + // Redraw single cell void _redraw_cell(TableContext context, int R, int C); - + void _start_auto_drag(); void _stop_auto_drag(); void _auto_drag_cb(); static void _auto_drag_cb2(void *d); - + protected: enum ResizeFlag { RESIZE_NONE = 0, @@ -219,70 +217,70 @@ protected: RESIZE_ROW_BELOW = 4 }; - int table_w; ///< table's virtual width (in pixels) - int table_h; ///< table's virtual height (in pixels) - int toprow; ///< top row# of currently visible table on screen - int botrow; ///< bottom row# of currently visible table on screen - int leftcol; ///< left column# of currently visible table on screen - int rightcol; ///< right column# of currently visible table on screen - + int table_w; ///< table's virtual width (in pixels) + int table_h; ///< table's virtual height (in pixels) + int toprow; ///< top row# of currently visible table on screen + int botrow; ///< bottom row# of currently visible table on screen + int leftcol; ///< left column# of currently visible table on screen + int rightcol; ///< right column# of currently visible table on screen + // selection - int current_row; ///< selection cursor's current row (-1 if none) - int current_col; ///< selection cursor's current column (-1 if none) - int select_row; ///< extended selection row (-1 if none) - int select_col; ///< extended selection column (-1 if none) - + int current_row; ///< selection cursor's current row (-1 if none) + int current_col; ///< selection cursor's current column (-1 if none) + int select_row; ///< extended selection row (-1 if none) + int select_col; ///< extended selection column (-1 if none) + // OPTIMIZATION: Precomputed scroll positions for the toprow/leftcol - int toprow_scrollpos; ///< precomputed scroll position for top row - int leftcol_scrollpos; ///< precomputed scroll position for left column - + int toprow_scrollpos; ///< precomputed scroll position for top row + int leftcol_scrollpos; ///< precomputed scroll position for left column + // Data table's inner dimension - int tix; ///< Data table's inner x dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" - int tiy; ///< Data table's inner y dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" - int tiw; ///< Data table's inner w dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" - int tih; ///< Data table's inner h dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" + int tix; ///< Data table's inner x dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" + int tiy; ///< Data table's inner y dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" + int tiw; ///< Data table's inner w dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" + int tih; ///< Data table's inner h dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" // Data table's outer dimension - int tox; ///< Data table's outer x dimension, outside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" - int toy; ///< Data table's outer y dimension, outside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" - int tow; ///< Data table's outer w dimension, outside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" - int toh; ///< Data table's outer h dimension, outside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" + int tox; ///< Data table's outer x dimension, outside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" + int toy; ///< Data table's outer y dimension, outside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" + int tow; ///< Data table's outer w dimension, outside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" + int toh; ///< Data table's outer h dimension, outside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" // Table widget's inner dimension - int wix; ///< Table widget's inner x dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" - int wiy; ///< Table widget's inner y dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" - int wiw; ///< Table widget's inner w dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" - int wih; ///< Table widget's inner h dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" - - Fl_Scroll *table; ///< child Fl_Scroll widget container for child fltk widgets (if any) - Fl_Scrollbar *vscrollbar; ///< child vertical scrollbar widget - Fl_Scrollbar *hscrollbar; ///< child horizontal scrollbar widget - + int wix; ///< Table widget's inner x dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" + int wiy; ///< Table widget's inner y dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" + int wiw; ///< Table widget's inner w dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" + int wih; ///< Table widget's inner h dimension, inside bounding box. See \ref table_dimensions_diagram "Table Dimension Diagram" + + Fl_Scroll *table; ///< child Fl_Scroll widget container for child fltk widgets (if any) + Fl_Scrollbar *vscrollbar; ///< child vertical scrollbar widget + Fl_Scrollbar *hscrollbar; ///< child horizontal scrollbar widget + // Fltk - int handle(int e); // fltk handle() override - + int handle(int e); // fltk handle() override + // Class maintenance void recalc_dimensions(); - void table_resized(); // table resized; recalc - void table_scrolled(); // table scrolled; recalc - void get_bounds(TableContext context, // return x/y/w/h bounds for context + void table_resized(); // table resized; recalc + void table_scrolled(); // table scrolled; recalc + void get_bounds(TableContext context, // return x/y/w/h bounds for context int &X, int &Y, int &W, int &H); - void change_cursor(Fl_Cursor newcursor); // change mouse cursor to some other shape + void change_cursor(Fl_Cursor newcursor); // change mouse cursor to some other shape TableContext cursor2rowcol(int &R, int &C, ResizeFlag &resizeflag); - int find_cell(TableContext context, // find cell's x/y/w/h given r/c + int find_cell(TableContext context, // find cell's x/y/w/h given r/c int R, int C, int &X, int &Y, int &W, int &H); int row_col_clamp(TableContext context, int &R, int &C); // clamp r/c to known universe - + /** Subclass should override this method to handle drawing the cells. - + This method will be called whenever the table is redrawn, once per cell. - + Only cells that are completely (or partially) visible will be told to draw. - + \p context will be one of the following: - + @@ -319,25 +317,25 @@ protected:
    \p Fl_Table::CONTEXT_STARTPAGEWhenever table or row/column is resized or scrolled, either interactively or via col_width() or row_height().
    R/C/X/Y/W/H will all be zero. -

    +

    Useful for fltk containers that need to resize or move the child fltk widgets.

    - + \p row and \p col will be set to the row and column number of the cell being drawn. In the case of row headers, \p col will be \a 0. In the case of column headers, \p row will be \a 0. - + x/y/w/h will be the position and dimensions of where the cell should be drawn. - + In the case of custom widgets, a minimal draw_cell() override might look like the following. With custom widgets it is up to the caller to handle drawing everything within the dimensions of the cell, including handling the selection color. Note all clipping must be handled as well; this allows drawing outside the dimensions of the cell if so desired for 'custom effects'. - + \code // This is called whenever Fl_Table wants you to draw a cell void MyTable::draw_cell(TableContext context, int R=0, int C=0, int X=0, int Y=0, int W=0, int H=0) { @@ -347,7 +345,7 @@ protected: case CONTEXT_STARTPAGE: // Fl_Table telling us it's starting to draw page fl_font(FL_HELVETICA, 16); return; - + case CONTEXT_ROW_HEADER: // Fl_Table telling us to draw row/col headers case CONTEXT_COL_HEADER: fl_push_clip(X, Y, W, H); @@ -358,25 +356,25 @@ protected: } fl_pop_clip(); return; - + case CONTEXT_CELL: // Fl_Table telling us to draw cells fl_push_clip(X, Y, W, H); { // BG COLOR fl_color( row_selected(R) ? selection_color() : FL_WHITE); fl_rectf(X, Y, W, H); - + // TEXT fl_color(FL_BLACK); fl_draw(s, X, Y, W, H, FL_ALIGN_CENTER); - + // BORDER fl_color(FL_LIGHT2); fl_rect(X, Y, W, H); } fl_pop_clip(); return; - + default: return; } @@ -384,24 +382,24 @@ protected: } \endcode */ - virtual void draw_cell(TableContext context, int R=0, int C=0, + virtual void draw_cell(TableContext context, int R=0, int C=0, int X=0, int Y=0, int W=0, int H=0) - { } // overridden by deriving class - - long row_scroll_position(int row); // find scroll position of row (in pixels) - long col_scroll_position(int col); // find scroll position of col (in pixels) - + { } // overridden by deriving class + + long row_scroll_position(int row); // find scroll position of row (in pixels) + long col_scroll_position(int col); // find scroll position of col (in pixels) + /** Does the table contain any child fltk widgets? */ - int is_fltk_container() { // does table contain fltk widgets? - return( Fl_Group::children() > 3 ); // (ie. more than box and 2 scrollbars?) + int is_fltk_container() { // does table contain fltk widgets? + return( Fl_Group::children() > 3 ); // (ie. more than box and 2 scrollbars?) } - - static void scroll_cb(Fl_Widget*,void*); // h/v scrollbar callback - + + static void scroll_cb(Fl_Widget*,void*); // h/v scrollbar callback + void damage_zone(int r1, int c1, int r2, int c2, int r3 = 0, int c3 = 0); - + /** Define region of cells to be redrawn by specified range of rows/cols, and then sets damage(DAMAGE_CHILD). Extends any previously defined range to redraw. @@ -430,7 +428,7 @@ protected: public: Fl_Table(int X, int Y, int W, int H, const char *l=0); ~Fl_Table(); - + /** Clears the table to zero rows (rows(0)), zero columns (cols(0)), and clears any widgets (table->clear()) that were added with begin()/end() or add()/insert()/etc. @@ -441,9 +439,9 @@ public: cols(0); table->clear(); } - + // \todo: add topline(), middleline(), bottomline() - + /** Sets the kind of box drawn around the data table, the default being FL_NO_BOX. Changing this value will cause the table @@ -453,40 +451,40 @@ public: table->box(val); table_resized(); } - + /** Returns the current box type used for the data table. */ inline Fl_Boxtype table_box( void ) { return(table->box()); } - - virtual void rows(int val); // set/get number of rows - + + virtual void rows(int val); // set/get number of rows + /** Returns the number of rows in the table. */ inline int rows() { return(_rows); } - - virtual void cols(int val); // set/get number of columns - - /** + + virtual void cols(int val); // set/get number of columns + + /** Get the number of columns in the table. */ inline int cols() { return(_cols); } - + /** - Returns the range of row and column numbers for all visible + Returns the range of row and column numbers for all visible and partially visible cells in the table. - + These values can be used e.g. by your draw_cell() routine during CONTEXT_STARTPAGE to figure out what cells are about to be redrawn for the purposes of locking the data from a database before it's drawn. - + \code leftcol rightcol : : @@ -498,10 +496,10 @@ public: | | botrow .. '-------------------` \endcode - + e.g. in a table where the visible rows are 5-20, and the visible columns are 100-120, then those variables would be: - + - toprow = 5 - botrow = 20 - leftcol = 100 @@ -512,33 +510,33 @@ public: r2 = botrow; c1 = leftcol; c2 = rightcol; - } - + } + /** Returns 1 if someone is interactively resizing a row or column. You can currently call this only from within your callback(). */ int is_interactive_resize() { return(_resizing_row != -1 || _resizing_col != -1); - } - + } + /** Returns if row resizing by the user is allowed. */ inline int row_resize() { return(_row_resize); } - + /** Allows/disallows row resizing by the user. 1=allow interactive resizing, 0=disallow interactive resizing. Since interactive resizing is done via the row headers, row_header() must also be enabled to allow resizing. - */ - void row_resize(int flag) { // enable row resizing + */ + void row_resize(int flag) { // enable row resizing _row_resize = flag; } - + /** Returns if column resizing by the user is allowed. */ @@ -552,17 +550,17 @@ public: Since interactive resizing is done via the column headers, \p col_header() must also be enabled to allow resizing. */ - void col_resize(int flag) { // enable col resizing + void col_resize(int flag) { // enable col resizing _col_resize = flag; } - + /** Returns the current column minimum resize value. */ - inline int col_resize_min() { // column minimum resizing width + inline int col_resize_min() { // column minimum resizing width return(_col_resize_min); } - + /** Sets the current column minimum resize value. This is used to prevent the user from interactively resizing @@ -570,15 +568,15 @@ public: */ void col_resize_min(int val) { _col_resize_min = ( val < 1 ) ? 1 : val; - } - + } + /** Returns the current row minimum resize value. */ - inline int row_resize_min() { // column minimum resizing width + inline int row_resize_min() { // column minimum resizing width return(_row_resize_min); } - + /** Sets the current row minimum resize value. This is used to prevent the user from interactively resizing @@ -587,14 +585,14 @@ public: void row_resize_min(int val) { _row_resize_min = ( val < 1 ) ? 1 : val; } - + /** Returns if row headers are enabled or not. */ - inline int row_header() { // set/get row header enable flag + inline int row_header() { // set/get row header enable flag return(_row_header); } - + /** Enables/disables showing the row headers. 1=enabled, 0=disabled. If changed, the table is redrawn. @@ -604,14 +602,14 @@ public: table_resized(); redraw(); } - + /** Returns if column headers are enabled or not. */ - inline int col_header() { // set/get col header enable flag + inline int col_header() { // set/get col header enable flag return(_col_header); } - + /** Enable or disable column headers. If changed, the table is redrawn. @@ -621,97 +619,97 @@ public: table_resized(); redraw(); } - + /** Sets the height in pixels for column headers and redraws the table. */ - inline void col_header_height(int height) { // set/get col header height + inline void col_header_height(int height) { // set/get col header height _col_header_h = height; table_resized(); redraw(); } - + /** Gets the column header height. */ inline int col_header_height() { return(_col_header_h); } - + /** Sets the row header width to n and causes the screen to redraw. */ - inline void row_header_width(int width) { // set/get row header width + inline void row_header_width(int width) { // set/get row header width _row_header_w = width; table_resized(); redraw(); } - + /** Returns the current row header width (in pixels). */ inline int row_header_width() { return(_row_header_w); } - + /** Sets the row header color and causes the screen to redraw. */ - inline void row_header_color(Fl_Color val) { // set/get row header color + inline void row_header_color(Fl_Color val) { // set/get row header color _row_header_color = val; redraw(); } - + /** Returns the current row header color. */ inline Fl_Color row_header_color() { return(_row_header_color); - } - + } + /** Sets the color for column headers and redraws the table. */ - inline void col_header_color(Fl_Color val) { // set/get col header color + inline void col_header_color(Fl_Color val) { // set/get col header color _col_header_color = val; redraw(); } - + /** Gets the color for column headers. */ inline Fl_Color col_header_color() { return(_col_header_color); } - - void row_height(int row, int height); // set/get row height - + + void row_height(int row, int height); // set/get row height + /** Returns the current height of the specified row as a value in pixels. */ inline int row_height(int row) { return((row<0 || row>=(int)_rowheights.size()) ? 0 : _rowheights[row]); } - - void col_width(int col, int width); // set/get a column's width - + + void col_width(int col, int width); // set/get a column's width + /** Returns the current width of the specified column in pixels. */ inline int col_width(int col) { return((col<0 || col>=(int)_colwidths.size()) ? 0 : _colwidths[col]); } - + /** Convenience method to set the height of all rows to the same value, in pixels. The screen is redrawn. */ - void row_height_all(int height) { // set all row/col heights + void row_height_all(int height) { // set all row/col heights for ( int r=0; rshow(); } else { table->hide(); - } + } } /** @@ -844,7 +842,7 @@ public: table->show(); } else { table->hide(); - } + } Fl_Group::current(Fl_Group::parent()); } @@ -855,11 +853,11 @@ public: Fl_Widget*const* array() { return(table->array()); } - + /** Returns the child widget by an index. - When using the Fl_Table as a container for FLTK widgets, this method returns + When using the Fl_Table as a container for FLTK widgets, this method returns the widget pointer from the internal array of widgets in the container. Typically used in loops, eg: @@ -873,11 +871,11 @@ public: Fl_Widget *child(int n) const { return(table->child(n)); } - + /** Returns the number of children in the table. - When using the Fl_Table as a container for FLTK widgets, this method returns + When using the Fl_Table as a container for FLTK widgets, this method returns how many child widgets the table has. \see child(int) @@ -894,10 +892,10 @@ public: // (doxygen will substitute Fl_Group's docs here) int find(const Fl_Widget &wgt) const { return(table->find(wgt)); - } + } // CALLBACKS - + /** Returns the current row the event occurred on. @@ -906,7 +904,7 @@ public: int callback_row() { return(_callback_row); } - + /** Returns the current column the event occurred on. @@ -915,7 +913,7 @@ public: int callback_col() { return(_callback_col); } - + /** Returns the current 'table context'. @@ -924,7 +922,7 @@ public: TableContext callback_context() { return(_callback_context); } - + /** Calls the widget callback. @@ -938,24 +936,24 @@ public: _callback_col = col; Fl_Widget::do_callback(); } - + #ifdef FL_DOXYGEN /** The Fl_Widget::when() function is used to set a group of flags, determining when the widget callback is called: - + @@ -970,24 +968,24 @@ public: */ void when(Fl_When flags); #endif - + #ifdef FL_DOXYGEN /** Callbacks will be called depending on the setting of Fl_Widget::when(). - - Callback functions should use the following functions to determine the + + Callback functions should use the following functions to determine the context/row/column: - Fl_Table::callback_row() returns current row - Fl_Table::callback_col() returns current column - Fl_Table::callback_context() returns current table context - callback_row() and callback_col() will be set to the row and column number the - event occurred on. If someone clicked on a row header, \p col will be \a 0. + callback_row() and callback_col() will be set to the row and column number the + event occurred on. If someone clicked on a row header, \p col will be \a 0. If someone clicked on a column header, \p row will be \a 0. - + callback_context() will return one of the following: - +
    \p FL_WHEN_CHANGED - callback() will be called when rows or columns are resized (interactively or - via col_width() or row_height()), passing CONTEXT_RC_RESIZE via + callback() will be called when rows or columns are resized (interactively or + via col_width() or row_height()), passing CONTEXT_RC_RESIZE via callback_context().
    \p FL_WHEN_RELEASE - callback() will be called during FL_RELEASE events, such as when someone + callback() will be called during FL_RELEASE events, such as when someone releases a mouse button somewhere on the table.
    @@ -998,7 +996,7 @@ public: @@ -1007,19 +1005,19 @@ public:
    Fl_Table::CONTEXT_ROW_HEADER Someone clicked on a row header. Excludes resizing.Fl_Table::CONTEXT_CELL Someone clicked on a cell. - + To receive callbacks for FL_RELEASE events, you must set when(FL_WHEN_RELEASE). Someone is resizing rows/columns either interactively, or via the col_width() or row_height() API. - + Use is_interactive_resize() to determine interactive resizing. - + If resizing a column, R=0 and C=column being resized. - + If resizing a row, C=0 and R=row being resized. - + NOTE: To receive resize events, you must set when(FL_WHEN_CHANGED).
    - + \code class MyTable : public Fl_Table { [..] @@ -1032,13 +1030,13 @@ public: fprintf(stderr, "callback: Row=%d Col=%d Context=%d Event=%d\n", R, C, (int)context, (int)Fl::event()); } - + // Actual static callback static void event_callback(Fl_Widget*, void* data) { MyTable *o = (MyTable*)data; o->event_callback2(); } - + public: // Constructor MyTable() { @@ -1055,9 +1053,9 @@ public: /** Gets the current size of the scrollbars' troughs, in pixels. - If this value is zero (default), this widget will use the + If this value is zero (default), this widget will use the Fl::scrollbar_size() value as the scrollbar's width. - + \returns Scrollbar size in pixels, or 0 if the global Fl::scrollbar_size() is being used. \see Fl::scrollbar_size(int) */ @@ -1078,7 +1076,7 @@ public: Setting \p newSize to the special value of 0 causes the widget to track the global Fl::scrollbar_size(), which is the default. - + \param[in] newSize Sets the scrollbar size in pixels.\n If 0 (default), scrollbar size tracks the global Fl::scrollbar_size() \see Fl::scrollbar_size() @@ -1119,7 +1117,3 @@ public: }; #endif /*_FL_TABLE_H*/ - -// -// End of "$Id$". -// diff --git a/FL/Fl_Table_Row.H b/FL/Fl_Table_Row.H index 0a8fcca8f..655efab81 100644 --- a/FL/Fl_Table_Row.H +++ b/FL/Fl_Table_Row.H @@ -1,12 +1,10 @@ // -// "$Id$" -// #ifndef _FL_TABLE_ROW_H #define _FL_TABLE_ROW_H // -// Fl_Table_Row -- A row oriented table widget +// Fl_Table_Row -- A row oriented table widget for the Fast Light Tool Kit (FLTK). // // A class specializing in a table of rows. // Handles row-specific selection behavior. @@ -17,37 +15,39 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems to "erco at seriss dot com". +// Please see the following page on how to report bugs and issues: +// +// https://www.fltk.org/bugs.php // #include /** A table with row selection capabilities. - + This class implements a simple table with the ability to select rows. This widget is similar to an Fl_Browser with columns. Most methods of importance will be found in the Fl_Table widget, such as Fl_Table::rows() and Fl_Table::cols(). - + To be useful it must be subclassed and at minimum the draw_cell() method must be overridden to provide the content of the cells. This widget does \em not manage the cell's data content; it is up to the parent class's draw_cell() method override to provide this. - - Events on the cells and/or headings generate callbacks when they are + + Events on the cells and/or headings generate callbacks when they are clicked by the user. You control when events are generated based on the values you supply for Fl_Table::when(). */ class FL_EXPORT Fl_Table_Row : public Fl_Table { public: enum TableRowSelectMode { - SELECT_NONE, // no selection allowed - SELECT_SINGLE, // single row selection - SELECT_MULTI // multiple row selection (default) - }; + SELECT_NONE, // no selection allowed + SELECT_SINGLE, // single row selection + SELECT_MULTI // multiple row selection (default) + }; private: // An STL-ish vector without templates class FL_EXPORT CharVector { @@ -59,15 +59,15 @@ private: } void copy(char *newarr, int newsize); public: - CharVector() { // CTOR + CharVector() { // CTOR init(); } - ~CharVector(); // DTOR - CharVector(CharVector&o) { // COPY CTOR + ~CharVector(); // DTOR + CharVector(CharVector&o) { // COPY CTOR init(); copy(o.arr, o._size); } - CharVector& operator=(CharVector&o) { // ASSIGN + CharVector& operator=(CharVector&o) { // ASSIGN init(); copy(o.arr, o._size); return(*this); @@ -97,33 +97,33 @@ private: } }; - CharVector _rowselect; // selection flag for each row - + CharVector _rowselect; // selection flag for each row + // handle() state variables. // Put here instead of local statics in handle(), so more // than one instance can exist without crosstalk between. // - int _dragging_select; // dragging out a selection? + int _dragging_select; // dragging out a selection? int _last_row; - int _last_y; // last event's Y position - int _last_push_x; // last PUSH event's X position - int _last_push_y; // last PUSH event's Y position - + int _last_y; // last event's Y position + int _last_push_x; // last PUSH event's X position + int _last_push_y; // last PUSH event's Y position + TableRowSelectMode _selectmode; - + protected: int handle(int event); - int find_cell(TableContext context, // find cell's x/y/w/h given r/c + int find_cell(TableContext context, // find cell's x/y/w/h given r/c int R, int C, int &X, int &Y, int &W, int &H) { return(Fl_Table::find_cell(context, R, C, X, Y, W, H)); } - + public: /** The constructor for the Fl_Table_Row. This creates an empty table with no rows or columns, with headers and row/column resize behavior disabled. - */ + */ Fl_Table_Row(int X, int Y, int W, int H, const char *l=0) : Fl_Table(X,Y,W,H,l) { _dragging_select = 0; _last_row = -1; @@ -132,60 +132,56 @@ public: _last_push_y = -1; _selectmode = SELECT_MULTI; } - + /** The destructor for the Fl_Table_Row. Destroys the table and its associated widgets. */ ~Fl_Table_Row() { } - - void rows(int val); // set number of rows - int rows() { // get number of rows + + void rows(int val); // set number of rows + int rows() { // get number of rows return(Fl_Table::rows()); } - + /** Sets the table selection mode. - + - \p Fl_Table_Row::SELECT_NONE - No selection allowed - \p Fl_Table_Row::SELECT_SINGLE - Only single rows can be selected - \p Fl_Table_Row::SELECT_MULTI - Multiple rows can be selected */ - void type(TableRowSelectMode val); // set selection mode - - TableRowSelectMode type() const { // get selection mode + void type(TableRowSelectMode val); // set selection mode + + TableRowSelectMode type() const { // get selection mode return(_selectmode); } - + /** Checks to see if 'row' is selected. Returns 1 if selected, 0 if not. You can change the selection of a row by clicking on it, or by using select_row(row, flag) */ - int row_selected(int row); // is row selected? (0=no, 1=yes, -1=range err) - + int row_selected(int row); // is row selected? (0=no, 1=yes, -1=range err) + /** Changes the selection state for 'row', depending on the value of 'flag'. 0=deselected, 1=select, 2=toggle existing state. */ - int select_row(int row, int flag=1); // select state for row: flag:0=off, 1=on, 2=toggle + int select_row(int row, int flag=1); // select state for row: flag:0=off, 1=on, 2=toggle // returns: 0=no change, 1=changed, -1=range err - + /** - This convenience function changes the selection state + This convenience function changes the selection state for \em all rows based on 'flag'. 0=deselect, 1=select, 2=toggle existing state. */ - void select_all_rows(int flag=1); // all rows to a known state - + void select_all_rows(int flag=1); // all rows to a known state + void clear() { - rows(0); // implies clearing selection + rows(0); // implies clearing selection cols(0); - Fl_Table::clear(); // clear the table + Fl_Table::clear(); // clear the table } }; #endif /*_FL_TABLE_ROW_H*/ - -// -// End of "$Id$". -// diff --git a/FL/Fl_Tabs.H b/FL/Fl_Tabs.H index dd0820418..eadeb8999 100644 --- a/FL/Fl_Tabs.H +++ b/FL/Fl_Tabs.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Tab header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2017 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -28,22 +26,22 @@ The Fl_Tabs widget is the "file card tabs" interface that allows you to put lots and lots of buttons and switches in a panel, as popularized by many toolkits. - + \image html tabs.png \image latex tabs.png "Fl_Tabs" width=8cm - + Clicking the tab makes a child visible() by calling show() on it, and all other children are made invisible by calling hide() on them. Usually the children are Fl_Group widgets containing several widgets themselves. - + Each child makes a card, and its label() 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. '&' in labels are used to prefix a shortcut that is drawn underlined and that activates the corresponding tab; repeated '&&' avoids that. - + 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 Fl_Tabs), and the tabs may be placed @@ -51,7 +49,7 @@ 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. - + The background area behind and to the right of the tabs is "transparent", exposing the background detail of the parent. The value of Fl_Tabs::box() does not affect this area. So if Fl_Tabs is @@ -70,15 +68,15 @@ Fl_Tabs *tabs = new Fl_Tabs(10,10,300,200); { Fl_Group *grp1 = new Fl_Group(20,30,280,170,"Tab1"); - { - ..widgets that go in tab#1.. + { + ..widgets that go in tab#1.. } - grp1->end(); + grp1->end(); Fl_Group *grp2 = new Fl_Group(20,30,280,170,"Tab2"); - { - ..widgets that go in tab#2.. - } - grp2->end(); + { + ..widgets that go in tab#2.. + } + grp2->end(); } tabs->end(); \endcode @@ -115,7 +113,7 @@ \b Uniform \b Tab \b and \b Panel \b Appearance In order to have uniform tab and panel appearance, not only must the color() - and selection_color() for each child group be set, but also the + and selection_color() for each child group be set, but also the selection_color() of the Fl_Tab itself any time a new "tab" is selected. This can be achieved within the Fl_Tab callback, e.g. @@ -174,7 +172,7 @@ grp2 = new Fl_Group(..); .. tabs->end(); - tabs->resizable(grp1); // keeps tab height constant + tabs->resizable(grp1); // keeps tab height constant \endcode \par Callback's Use Of when() @@ -190,15 +188,15 @@ -# The above flags can be logically OR-ed (|) or added (+) to combine behaviors. -# The default value for when() is \ref FL_WHEN_RELEASE (inherited from Fl_Widget). - -# If \ref FL_WHEN_RELEASE is the \em only flag specified, + -# If \ref FL_WHEN_RELEASE is the \em only flag specified, the behavior will be as if (\ref FL_WHEN_RELEASE|\ref FL_WHEN_CHANGED) was specified. -# The value of changed() will be valid during the callback. - -# If both \ref FL_WHEN_CHANGED and \ref FL_WHEN_NOT_CHANGED are specified, + -# If both \ref FL_WHEN_CHANGED and \ref FL_WHEN_NOT_CHANGED are specified, the callback is invoked whether the tab has been changed or not. - The changed() method can be used to determine the cause. + The changed() method can be used to determine the cause. -# \ref FL_WHEN_NOT_CHANGED can happen if someone clicks on an already selected tab, or if a keyboard navigation attempt results in no change to the tabs, - such as using the arrow keys while at the left or right end of the tabs. + such as using the arrow keys while at the left or right end of the tabs. */ class FL_EXPORT Fl_Tabs : public Fl_Group { @@ -206,13 +204,13 @@ class FL_EXPORT Fl_Tabs : public Fl_Group { protected: - int *tab_pos; // array of x-offsets of tabs per child + 1 - int *tab_width; // array of widths of tabs per child + 1 - int tab_count; // array size - Fl_Align tab_align_; // tab label alignment + int *tab_pos; // array of x-offsets of tabs per child + 1 + int *tab_width; // array of widths of tabs per child + 1 + int tab_count; // array size + Fl_Align tab_align_; // tab label alignment virtual void redraw_tabs(); - virtual int tab_positions(); // allocate and calculate tab positions + virtual int tab_positions(); // allocate and calculate tab positions virtual void clear_tab_positions(); virtual void draw_tab(int x1, int x2, int W, int H, Fl_Widget* o, int sel=0); virtual int tab_height(); @@ -267,7 +265,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Text_Buffer.H b/FL/Fl_Text_Buffer.H index c8e749c1e..473e61c77 100644 --- a/FL/Fl_Text_Buffer.H +++ b/FL/Fl_Text_Buffer.H @@ -1,19 +1,19 @@ // -// "$Id$" -// // Header file for Fl_Text_Buffer class. // // Copyright 2001-2017 by Bill Spitzak and others. // Original code Copyright Mark Edel. Permission to distribute under // the LGPL for the FLTK library granted by Mark Edel. // -// Please report all bugs and problems on the following page: +// This library is free software. Distribution and use rights are outlined in +// the file "COPYING" which should have been included with this file. If this +// file is missing or damaged, see the license at: // -// http://www.fltk.org/str.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -22,7 +22,7 @@ #ifndef FL_TEXT_BUFFER_H #define FL_TEXT_BUFFER_H -#include /* va_start/end */ +#include /* va_start/end */ #undef ASSERT_UTF8 @@ -134,7 +134,7 @@ public: /** \brief Returns true if any text is selected. \return \p true if any text has been selected, or \p false - if no text is selected. + if no text is selected. */ bool selected() const { return mSelected; } @@ -839,7 +839,3 @@ protected: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Text_Display.H b/FL/Fl_Text_Display.H index 6d077fbb7..59dc24bee 100644 --- a/FL/Fl_Text_Display.H +++ b/FL/Fl_Text_Display.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Header file for Fl_Text_Display class. // // Copyright 2001-2020 by Bill Spitzak and others. @@ -13,9 +11,9 @@ // // https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -24,7 +22,7 @@ #ifndef FL_TEXT_DISPLAY_H #define FL_TEXT_DISPLAY_H -#include // Fl::scrollbar_size() +#include // Fl::scrollbar_size() #include "fl_draw.H" #include "Fl_Group.H" #include "Fl_Widget.H" @@ -33,7 +31,7 @@ /** \brief Rich text display widget. - + This is the FLTK text display widget. It allows the user to view multiple lines of text and supports highlighting, word wrap, mixes of font faces and colors, line numbers and scrolling. The buffer @@ -57,7 +55,7 @@ Fl_Text_Display *disp = new Fl_Text_Display(10, 10, 640, 480); disp->buffer(buff); // attach text buffer to display widget buff->text("line one\nline two"); // add some text to buffer - .. + .. } \endcode @@ -80,9 +78,9 @@ class FL_EXPORT Fl_Text_Display: public Fl_Group { public: - - /** - text display cursor shapes enumeration + + /** + text display cursor shapes enumeration */ enum { NORMAL_CURSOR, /**< I-beam */ @@ -92,18 +90,18 @@ public: HEAVY_CURSOR, /**< thick I-beam */ SIMPLE_CURSOR /**< as cursor as Fl_Input cursor */ }; - + /** - the character position is the left edge of a character, whereas + the character position is the left edge of a character, whereas the cursor is thought to be between the centers of two consecutive characters. */ enum { - CURSOR_POS, + CURSOR_POS, CHARACTER_POS }; - - /** + + /** drag types - they match Fl::event_clicks() so that single clicking to start a collection selects by character, double clicking selects by word and triple clicking selects by line. @@ -111,11 +109,11 @@ public: enum { DRAG_NONE = -2, DRAG_START_DND = -1, - DRAG_CHAR = 0, - DRAG_WORD = 1, + DRAG_CHAR = 0, + DRAG_WORD = 1, DRAG_LINE = 2 }; - + /** wrap types - used in wrap_mode() */ @@ -124,13 +122,13 @@ public: WRAP_AT_COLUMN, /**< wrap text at the given text column */ WRAP_AT_PIXEL, /**< wrap text at a pixel position */ WRAP_AT_BOUNDS /**< wrap text so that it fits into the widget width */ - }; - + }; + friend void fl_text_drag_me(int pos, Fl_Text_Display* d); - + typedef void (*Unfinished_Style_Cb)(int, void *); - - /** + + /** This structure associates the color, font, and font size of a string to draw with an attribute mask matching attr. @@ -144,19 +142,19 @@ public: \see Fl_Text_Display::highlight_data() */ struct Style_Table_Entry { - Fl_Color color; ///< text color - Fl_Font font; ///< text font - Fl_Fontsize size; ///< text font size - unsigned attr; ///< currently unused (this may be changed in the future) + Fl_Color color; ///< text color + Fl_Font font; ///< text font + Fl_Fontsize size; ///< text font size + unsigned attr; ///< currently unused (this may be changed in the future) }; - + Fl_Text_Display(int X, int Y, int W, int H, const char *l = 0); ~Fl_Text_Display(); - + virtual int handle(int e); - + void buffer(Fl_Text_Buffer* buf); - + /** Sets the current text buffer associated with the text widget. Multiple text widgets can be associated with the same text buffer. @@ -164,7 +162,7 @@ public: \see Fl_Text_Display::buffer(Fl_Text_Buffer* buf) */ void buffer(Fl_Text_Buffer& buf) { buffer(&buf); } - + /** Gets the current text buffer associated with the text widget. Multiple text widgets can be associated with the same text buffer. @@ -173,7 +171,7 @@ public: \see Fl_Text_Display::buffer(Fl_Text_Buffer& buf) */ Fl_Text_Buffer* buffer() const { return mBuffer; } - + void redisplay_range(int start, int end); void scroll(int topLineNum, int horizOffset); void insert(const char* text); @@ -196,10 +194,10 @@ public: int in_selection(int x, int y) const; void show_insert_position(); - + int move_right(); int move_left(); - int move_up(); + int move_up(); int move_down(); int count_lines(int start, int end, bool start_pos_is_line_start) const; int line_start(int pos) const; @@ -208,29 +206,29 @@ public: int rewind_lines(int startPos, int nLines); void next_word(void); void previous_word(void); - + void show_cursor(int b = 1); - + /** Hides the text cursor. */ void hide_cursor() { show_cursor(0); } - + void cursor_style(int style); int cursor_style() const { return mCursorStyle; } - + /** - Gets the text cursor color. + Gets the text cursor color. \return cursor color */ Fl_Color cursor_color() const {return mCursor_color;} - - /** + + /** Sets the text cursor color. \param n new cursor color */ void cursor_color(Fl_Color n) {mCursor_color = n;} - + /** Returns the global value Fl::scrollbar_size() unless a specific scrollbar_width_ has been set. \deprecated Use scrollbar_size() instead. @@ -249,13 +247,13 @@ public: Fl::scrollbar_size(width); scrollbar_width_ = 0; } - + /** Gets the current size of the scrollbars' troughs, in pixels. - If this value is zero (default), this widget will use the + If this value is zero (default), this widget will use the Fl::scrollbar_size() value as the scrollbar's width. - + \returns Scrollbar size in pixels, or 0 if the global Fl::scrollbar_size() is being used. \see Fl::scrollbar_size(int) */ @@ -267,114 +265,114 @@ public: Sets the pixel size of the scrollbars' troughs to \p newSize, in pixels. Normally you should not need this method, and should use - Fl::scrollbar_size(int) instead to manage the size of ALL - your widgets' scrollbars. This ensures your application + Fl::scrollbar_size(int) instead to manage the size of ALL + your widgets' scrollbars. This ensures your application has a consistent UI, is the default behavior, and is normally what you want. Only use THIS method if you really need to override the global scrollbar size. The need for this should be rare. - + Setting \p newSize to the special value of 0 causes the widget to track the global Fl::scrollbar_size(), which is the default. - + \param[in] newSize Sets the scrollbar size in pixels.\n If 0 (default), scrollbar size tracks the global Fl::scrollbar_size() \see Fl::scrollbar_size() */ void scrollbar_size(int newSize) { scrollbar_width_ = newSize; - } + } /** Gets the scrollbar alignment type. \return scrollbar alignment */ Fl_Align scrollbar_align() const { return scrollbar_align_; } - + /** Sets the scrollbar alignment type. \param a new scrollbar alignment */ void scrollbar_align(Fl_Align a) { scrollbar_align_ = a; } - + /** Moves the insert position to the beginning of the current word. \param pos start calculation at this index \return beginning of the words */ int word_start(int pos) const { return buffer()->word_start(pos); } - - /** + + /** Moves the insert position to the end of the current word. \param pos start calculation at this index \return index of first character after the end of the word */ int word_end(int pos) const { return buffer()->word_end(pos); } - - + + void highlight_data(Fl_Text_Buffer *styleBuffer, const Style_Table_Entry *styleTable, int nStyles, char unfinishedStyle, Unfinished_Style_Cb unfinishedHighlightCB, void *cbArg); - + int position_style(int lineStartPos, int lineLen, int lineIndex) const; - - /** - \todo FIXME : get set methods pointing on shortcut_ - have no effects as shortcut_ is unused in this class and derived! + + /** + \todo FIXME : get set methods pointing on shortcut_ + have no effects as shortcut_ is unused in this class and derived! \return the current shortcut key */ int shortcut() const {return shortcut_;} - + /** - \todo FIXME : get set methods pointing on shortcut_ - have no effects as shortcut_ is unused in this class and derived! + \todo FIXME : get set methods pointing on shortcut_ + have no effects as shortcut_ is unused in this class and derived! \param s the new shortcut key */ void shortcut(int s) {shortcut_ = s;} - + /** Gets the default font used when drawing text in the widget. \return current text font face unless overridden by a style */ Fl_Font textfont() const {return textfont_;} - + /** Sets the default font used when drawing text in the widget. \param s default text font face */ void textfont(Fl_Font s) {textfont_ = s; mColumnScale = 0; } - + /** Gets the default size of text in the widget. \return current text height unless overridden by a style */ Fl_Fontsize textsize() const {return textsize_;} - + /** Sets the default size of text in the widget. \param s new text size */ void textsize(Fl_Fontsize s) {textsize_ = s; mColumnScale = 0; } - + /** Gets the default color of text in the widget. \return text color unless overridden by a style */ Fl_Color textcolor() const {return textcolor_;} - + /** Sets the default color of text in the widget. \param n new text color */ void textcolor(Fl_Color n) {textcolor_ = n;} - + int wrapped_column(int row, int column) const; int wrapped_row(int row) const; void wrap_mode(int wrap, int wrap_margin); - + virtual void recalc_display(); virtual void resize(int X, int Y, int W, int H); @@ -384,15 +382,15 @@ public: \return an approximate column number based on the main font */ double x_to_col(double x) const; - + /** Convert a column number into an x pixel position. \param col an approximate column number based on the main font \return number of pixels from the left margin to the left of an - average sized character + average sized character */ double col_to_x(double col) const; - + void linenumber_width(int width); int linenumber_width() const; void linenumber_font(Fl_Font val); @@ -413,57 +411,57 @@ protected: // draw(). // Anything with "vline" indicates thats it deals with currently // visible lines. - + virtual void draw(); void draw_text(int X, int Y, int W, int H); void draw_range(int start, int end); void draw_cursor(int, int); - + void draw_string(int style, int x, int y, int toX, const char *string, int nChars) const; - + void draw_vline(int visLineNum, int leftClip, int rightClip, int leftCharIndex, int rightCharIndex); - + int find_x(const char *s, int len, int style, int x) const; - - enum { - DRAW_LINE, + + enum { + DRAW_LINE, FIND_INDEX, FIND_INDEX_FROM_ZERO, GET_WIDTH, - FIND_CURSOR_INDEX // STR #2788 + FIND_CURSOR_INDEX // STR #2788 }; - - int handle_vline(int mode, + + int handle_vline(int mode, int lineStart, int lineLen, int leftChar, int rightChar, int topClip, int bottomClip, int leftClip, int rightClip) const; - + void draw_line_numbers(bool clearAll); - + void clear_rect(int style, int x, int y, int width, int height) const; void display_insert(); - + void offset_line_starts(int newTopLineNum); - + void calc_line_starts(int startLine, int endLine); - + void update_line_starts(int pos, int charsInserted, int charsDeleted, int linesInserted, int linesDeleted, int *scrolled); - + void calc_last_char(); - + int position_to_line( int pos, int* lineNum ) const; double string_width(const char* string, int length, int style) const; - + static void scroll_timer_cb(void*); - + static void buffer_predelete_cb(int pos, int nDeleted, void* cbArg); static void buffer_modified_cb(int pos, int nInserted, int nDeleted, int nRestyled, const char* deletedText, void* cbArg); - + static void h_scrollbar_cb(Fl_Scrollbar* w, Fl_Text_Display* d); static void v_scrollbar_cb( Fl_Scrollbar* w, Fl_Text_Display* d); void update_v_scrollbar(); @@ -473,7 +471,7 @@ protected: int empty_vlines() const; int vline_length(int visLineNum) const; int xy_to_position(int x, int y, int PosType = CHARACTER_POS) const; - + void xy_to_rowcol(int x, int y, int* row, int* column, int PosType = CHARACTER_POS) const; void maintain_absolute_top_line_number(int state); @@ -483,9 +481,9 @@ protected: void reset_absolute_top_line_number(); int position_to_linecol(int pos, int* lineNum, int* column) const; int scroll_(int topLineNum, int horizOffset); - + void extend_range_for_styles(int* start, int* end); - + void find_wrap_range(const char *deletedText, int pos, int nInserted, int nDeleted, int *modRangeStart, int *modRangeEnd, int *linesInserted, int *linesDeleted); @@ -499,7 +497,7 @@ protected: int *nextLineStart) const; double measure_proportional_character(const char *s, int colNum, int pos) const; int wrap_uses_character(int lineEndPos) const; - + int damage_range1_start, damage_range1_end; int damage_range2_start, damage_range2_end; int mCursorPos; @@ -521,7 +519,7 @@ protected: either to a newline or one character beyond the end of the buffer) */ int mContinuousWrap; /* Wrap long lines when displaying */ - int mWrapMarginPix; /* Margin in # of pixels for + int mWrapMarginPix; /* Margin in # of pixels for wrapping in continuousWrap mode */ int* mLineStarts; /* Array of the size mNVisibleLines. This array only keeps track of lines @@ -554,9 +552,9 @@ protected: Unfinished_Style_Cb mUnfinishedHighlightCB; /* Callback to parse "unfinished" */ /* regions */ void* mHighlightCBArg; /* Arg to unfinishedHighlightCB */ - + int mMaxsize; - + int mSuppressResync; /* Suppress resynchronization of line starts during buffer updates */ int mNLinesDeleted; /* Number of lines deleted during @@ -565,26 +563,26 @@ protected: int mModifyingTabDistance; /* Whether tab distance is being modified XXX: UNUSED */ mutable double mColumnScale; /* Width in pixels of an average character. This - value is calculated as needed (lazy eval); it + value is calculated as needed (lazy eval); it needs to be mutable so that it can be calculated within a method marked as "const" */ - + Fl_Color mCursor_color; - + Fl_Scrollbar* mHScrollBar; Fl_Scrollbar* mVScrollBar; - int scrollbar_width_; // size of scrollbar trough (behavior changed in 1.4) + int scrollbar_width_; // size of scrollbar trough (behavior changed in 1.4) Fl_Align scrollbar_align_; int dragPos, dragType, dragging; int display_insert_position_hint; struct { int x, y, w, h; } text_area; - + int shortcut_; - + Fl_Font textfont_; Fl_Fontsize textsize_; Fl_Color textcolor_; - + // Line number margin and width int mLineNumLeft, mLineNumWidth; @@ -598,7 +596,3 @@ protected: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Text_Editor.H b/FL/Fl_Text_Editor.H index b4e245164..48f8a1ac0 100644 --- a/FL/Fl_Text_Editor.H +++ b/FL/Fl_Text_Editor.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Header file for Fl_Text_Editor class. // // Copyright 2001-2010 by Bill Spitzak and others. @@ -11,11 +9,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -44,25 +42,25 @@ class FL_EXPORT Fl_Text_Editor : public Fl_Text_Display { /** Simple linked list item associating a key/state to a function. */ struct Key_Binding { - int key; ///< the key pressed - int state; ///< the state of key modifiers - Key_Func function; ///< associated function - Key_Binding* next; ///< next key binding in the list + int key; ///< the key pressed + int state; ///< the state of key modifiers + Key_Func function; ///< associated function + Key_Binding* next; ///< next key binding in the list }; Fl_Text_Editor(int X, int Y, int W, int H, const char* l = 0); ~Fl_Text_Editor() { remove_all_key_bindings(); } virtual int handle(int e); /** - Sets 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. + Sets 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. */ void insert_mode(int b) { insert_mode_ = b; } /** - 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. + 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. */ int insert_mode() { return insert_mode_; } void tab_nav(int val); @@ -138,7 +136,3 @@ class FL_EXPORT Fl_Text_Editor : public Fl_Text_Display { #endif -// -// End of "$Id$". -// - diff --git a/FL/Fl_Tile.H b/FL/Fl_Tile.H index c5a8e1703..5b818fe89 100644 --- a/FL/Fl_Tile.H +++ b/FL/Fl_Tile.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Tile header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2016 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef Fl_Tile_H @@ -35,7 +33,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Tiled_Image.H b/FL/Fl_Tiled_Image.H index 0eb17e2e2..66814a8fd 100644 --- a/FL/Fl_Tiled_Image.H +++ b/FL/Fl_Tiled_Image.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Tiled image header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2015 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -34,8 +32,8 @@ class FL_EXPORT Fl_Tiled_Image : public Fl_Image { protected: - Fl_Image *image_; // The image that is tiled - int alloc_image_; // Did we allocate this image? + Fl_Image *image_; // The image that is tiled + int alloc_image_; // Did we allocate this image? public: @@ -53,7 +51,3 @@ class FL_EXPORT Fl_Tiled_Image : public Fl_Image { }; #endif // !Fl_Tiled_Image_H - -// -// End of "$Id$" -// diff --git a/FL/Fl_Timer.H b/FL/Fl_Timer.H index 3000615dd..6c9db28a1 100644 --- a/FL/Fl_Timer.H +++ b/FL/Fl_Timer.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Timer header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -27,15 +25,15 @@ #endif // values for type(): -#define FL_NORMAL_TIMER 0 -#define FL_VALUE_TIMER 1 -#define FL_HIDDEN_TIMER 2 +#define FL_NORMAL_TIMER 0 +#define FL_VALUE_TIMER 1 +#define FL_HIDDEN_TIMER 2 /** 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 + future. You should directly call Fl::add_timeout() instead. */ class FL_EXPORT Fl_Timer : public Fl_Widget { @@ -72,7 +70,3 @@ public: #endif -// -// End of "$Id$". -// - diff --git a/FL/Fl_Toggle_Button.H b/FL/Fl_Toggle_Button.H index 008565563..b2e0eda3c 100644 --- a/FL/Fl_Toggle_Button.H +++ b/FL/Fl_Toggle_Button.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Toggle button header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -25,7 +23,7 @@ #include "Fl_Button.H" /** - The toggle button is a push button that needs to be clicked once + The toggle button is a push button that needs to be clicked once to toggle on, and one more time to toggle off. The Fl_Toggle_Button subclass displays the "on" state by drawing a pushed-in button.

    @@ -44,7 +42,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Toggle_Light_Button.H b/FL/Fl_Toggle_Light_Button.H index 8dd6e39f0..60dacd8de 100644 --- a/FL/Fl_Toggle_Light_Button.H +++ b/FL/Fl_Toggle_Light_Button.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Toggle light button header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // // provided for back-compatibility only @@ -22,7 +20,3 @@ #include "Fl_Light_Button.H" #define Fl_Toggle_Light_Button Fl_Light_Button #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Toggle_Round_Button.H b/FL/Fl_Toggle_Round_Button.H index ab87d1679..7fe5e1924 100644 --- a/FL/Fl_Toggle_Round_Button.H +++ b/FL/Fl_Toggle_Round_Button.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Toggle round button header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // // provided for back-compatibility only @@ -22,7 +20,3 @@ #include "Fl_Round_Button.H" #define Fl_Toggle_Round_Button Fl_Round_Button #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Tooltip.H b/FL/Fl_Tooltip.H index aa8fd880b..b79d93149 100644 --- a/FL/Fl_Tooltip.H +++ b/FL/Fl_Tooltip.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Tooltip header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2011 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -116,14 +114,10 @@ private: static Fl_Font font_; static Fl_Fontsize size_; static Fl_Widget* widget_; //!< Keeps track of the current target widget - static int margin_width_; //!< distance around tooltip text left+right - static int margin_height_; //!< distance around tooltip text top+bottom - static int wrap_width_; //!< maximum width of tooltip text before it word wraps + static int margin_width_; //!< distance around tooltip text left+right + static int margin_height_; //!< distance around tooltip text top+bottom + static int wrap_width_; //!< maximum width of tooltip text before it word wraps static const int draw_symbols_; // 1 = draw @-symbols in tooltips, 0 = no }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Tree.H b/FL/Fl_Tree.H index fc827ba9e..44509e978 100644 --- a/FL/Fl_Tree.H +++ b/FL/Fl_Tree.H @@ -1,6 +1,4 @@ // -// "$Id$" -// #ifndef FL_TREE_H #define FL_TREE_H @@ -26,9 +24,9 @@ // // https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /// @@ -80,7 +78,7 @@ tree.add("Simpsons/Lisa"); tree.end(); \endcode - + \par FEATURES Items can be added with add(),
    removed with remove(),
    @@ -124,7 +122,7 @@ widget() to be shown in place of the item's label (if it has one). Only the widget()'s width will be used; the widget()'s x() and y() position will be managed by the tree, and the h() will track the item's height. - This default behavior can be altered (ABI 1.3.1): + This default behavior can be altered (ABI 1.3.1): Setting Fl_Tree::item_draw_mode()'s FL_TREE_ITEM_DRAW_LABEL_AND_WIDGET flag causes the label + widget to be displayed together in that order, and adding the FL_TREE_ITEM_HEIGHT_FROM_WIDGET flag causes widget's height @@ -136,8 +134,8 @@ can either be changed globally with Fl_Tree::usericon(), or on a per-item basis with Fl_Tree_Item::usericon(). \par - Various default preferences can be globally manipulated via Fl_Tree_Prefs, - including colors, margins, icons, connection lines, etc. + Various default preferences can be globally manipulated via Fl_Tree_Prefs, + including colors, margins, icons, connection lines, etc. \par FONTS AND COLORS When adding new items to the tree, the new items get the @@ -165,7 +163,7 @@ \code void MyTreeCallback(Fl_Widget *w, void *data) { Fl_Tree *tree = (Fl_Tree*)w; - Fl_Tree_Item *item = (Fl_Tree_Item*)tree->callback_item(); // get selected item + Fl_Tree_Item *item = (Fl_Tree_Item*)tree->callback_item(); // get selected item switch ( tree->callback_reason() ) { case FL_TREE_REASON_SELECTED: [..] case FL_TREE_REASON_DESELECTED: [..] @@ -190,7 +188,7 @@ \code [..] char pathname[256] = "???"; - tree->item_pathname(pathname, sizeof(pathname), item); // eg. "Parent/Child/Item" + tree->item_pathname(pathname, sizeof(pathname), item); // eg. "Parent/Child/Item" [..] \endcode \par @@ -203,7 +201,7 @@ } \endcode \par - To recursively walk all the children of a particular item, + To recursively walk all the children of a particular item, define a function that uses recursion: \par \code @@ -220,8 +218,8 @@ \par \code tree = new Fl_Tree(..); - tree->item_labelfont(FL_COURIER); // Use Courier font for all new items - tree->item_labelfgcolor(FL_RED); // Use red color for labels of all new items + tree->item_labelfont(FL_COURIER); // Use Courier font for all new items + tree->item_labelfgcolor(FL_RED); // Use red color for labels of all new items [..] // Now create the items in the tree using the above defaults. tree->add("Aaa"); @@ -275,33 +273,33 @@ /// The reason the callback was invoked. /// enum Fl_Tree_Reason { - FL_TREE_REASON_NONE=0, ///< unknown reason - FL_TREE_REASON_SELECTED, ///< an item was selected - FL_TREE_REASON_DESELECTED, ///< an item was de-selected - FL_TREE_REASON_RESELECTED, ///< an item was re-selected (double-clicked). - ///< See ::Fl_Tree_Item_Reselect_Mode to enable this. - FL_TREE_REASON_OPENED, ///< an item was opened - FL_TREE_REASON_CLOSED, ///< an item was closed - FL_TREE_REASON_DRAGGED ///< an item was dragged into a new place + FL_TREE_REASON_NONE=0, ///< unknown reason + FL_TREE_REASON_SELECTED, ///< an item was selected + FL_TREE_REASON_DESELECTED, ///< an item was de-selected + FL_TREE_REASON_RESELECTED, ///< an item was re-selected (double-clicked). + ///< See ::Fl_Tree_Item_Reselect_Mode to enable this. + FL_TREE_REASON_OPENED, ///< an item was opened + FL_TREE_REASON_CLOSED, ///< an item was closed + FL_TREE_REASON_DRAGGED ///< an item was dragged into a new place }; class FL_EXPORT Fl_Tree : public Fl_Group { friend class Fl_Tree_Item; - Fl_Tree_Item *_root; // can be null! - Fl_Tree_Item *_item_focus; // item that has focus box - Fl_Tree_Item *_callback_item; // item invoked during callback (can be NULL) - Fl_Tree_Reason _callback_reason; // reason for the callback - Fl_Tree_Prefs _prefs; // all the tree's settings - int _scrollbar_size; // size of scrollbar trough + Fl_Tree_Item *_root; // can be null! + Fl_Tree_Item *_item_focus; // item that has focus box + Fl_Tree_Item *_callback_item; // item invoked during callback (can be NULL) + Fl_Tree_Reason _callback_reason; // reason for the callback + Fl_Tree_Prefs _prefs; // all the tree's settings + int _scrollbar_size; // size of scrollbar trough Fl_Tree_Item *_lastselect; // last selected item char _lastpushed; // FL_PUSH occurred on: 0=nothing, 1=open/close, 2=usericon, 3=label void fix_scrollbar_order(); protected: - Fl_Scrollbar *_vscroll; ///< Vertical scrollbar - Fl_Scrollbar *_hscroll; ///< Horizontal scrollbar - int _tox,_toy,_tow,_toh; ///< Tree widget outer xywh dimension: outside scrollbars, inside widget border - int _tix,_tiy,_tiw,_tih; ///< Tree widget inner xywh dimension: inside borders + scrollbars + Fl_Scrollbar *_vscroll; ///< Vertical scrollbar + Fl_Scrollbar *_hscroll; ///< Horizontal scrollbar + int _tox,_toy,_tow,_toh; ///< Tree widget outer xywh dimension: outside scrollbars, inside widget border + int _tix,_tiy,_tiw,_tih; ///< Tree widget inner xywh dimension: inside borders + scrollbars /// the calculated width of the entire tree hierarchy. See calc_tree() int _tree_w; @@ -352,14 +350,14 @@ public: Fl_Tree_Item* find_clicked(int yonly=0); Fl_Tree_Item *item_clicked(); Fl_Tree_Item *first(); - Fl_Tree_Item *first_visible(); // deprecated in ABI 10303 + Fl_Tree_Item *first_visible(); // deprecated in ABI 10303 Fl_Tree_Item *first_visible_item(); Fl_Tree_Item *next(Fl_Tree_Item *item=0); Fl_Tree_Item *prev(Fl_Tree_Item *item=0); Fl_Tree_Item *last(); - Fl_Tree_Item *last_visible(); // deprecated in ABI 10303 + Fl_Tree_Item *last_visible(); // deprecated in ABI 10303 Fl_Tree_Item *last_visible_item(); - Fl_Tree_Item *next_visible_item(Fl_Tree_Item *start, int dir); // made public in 1.3.3 ABI + Fl_Tree_Item *next_visible_item(Fl_Tree_Item *start, int dir); // made public in 1.3.3 ABI Fl_Tree_Item *first_selected_item(); Fl_Tree_Item *last_selected_item(); Fl_Tree_Item *next_item(Fl_Tree_Item *item, int dir=FL_Down, bool visible=false); @@ -392,13 +390,13 @@ public: int select_all(Fl_Tree_Item *item=0, int docallback=1); int extend_selection_dir(Fl_Tree_Item *from, Fl_Tree_Item *to, - int dir, - int val, - bool visible); + int dir, + int val, + bool visible); int extend_selection(Fl_Tree_Item *from, - Fl_Tree_Item *to, - int val=1, - bool visible=false); + Fl_Tree_Item *to, + int val=1, + bool visible=false); void set_item_focus(Fl_Tree_Item *item); Fl_Tree_Item *get_item_focus() const; int is_selected(Fl_Tree_Item *item) const; @@ -492,7 +490,3 @@ public: }; #endif /*FL_TREE_H*/ - -// -// End of "$Id$". -// diff --git a/FL/Fl_Tree_Item.H b/FL/Fl_Tree_Item.H index 99d52a4b9..d0e68d4e7 100644 --- a/FL/Fl_Tree_Item.H +++ b/FL/Fl_Tree_Item.H @@ -1,6 +1,4 @@ // -// "$Id$" -// #ifndef FL_TREE_ITEM_H #define FL_TREE_ITEM_H @@ -24,11 +22,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /// @@ -65,31 +63,31 @@ /// class Fl_Tree; class FL_EXPORT Fl_Tree_Item { - Fl_Tree *_tree; // parent tree - const char *_label; // label (memory managed) - Fl_Font _labelfont; // label's font face - Fl_Fontsize _labelsize; // label's font size - Fl_Color _labelfgcolor; // label's fg color - Fl_Color _labelbgcolor; // label's bg color (0xffffffff is 'transparent') + Fl_Tree *_tree; // parent tree + const char *_label; // label (memory managed) + Fl_Font _labelfont; // label's font face + Fl_Fontsize _labelsize; // label's font size + Fl_Color _labelfgcolor; // label's fg color + Fl_Color _labelbgcolor; // label's bg color (0xffffffff is 'transparent') /// \enum Fl_Tree_Item_Flags enum Fl_Tree_Item_Flags { - OPEN = 1<<0, ///> item is open - VISIBLE = 1<<1, ///> item is visible - ACTIVE = 1<<2, ///> item is active - SELECTED = 1<<3 ///> item is selected + OPEN = 1<<0, ///> item is open + VISIBLE = 1<<1, ///> item is visible + ACTIVE = 1<<2, ///> item is active + SELECTED = 1<<3 ///> item is selected }; - unsigned short _flags; // misc flags - int _xywh[4]; // xywh of this widget (if visible) - int _collapse_xywh[4]; // xywh of collapse icon (if visible) - int _label_xywh[4]; // xywh of label - Fl_Widget *_widget; // item's label widget (optional) - Fl_Image *_usericon; // item's user-specific icon (optional) - Fl_Image *_userdeicon; // deactivated usericon - Fl_Tree_Item_Array _children; // array of child items - Fl_Tree_Item *_parent; // parent item (=0 if root) - void *_userdata; // user data that can be associated with an item - Fl_Tree_Item *_prev_sibling; // previous sibling (same level) - Fl_Tree_Item *_next_sibling; // next sibling (same level) + unsigned short _flags; // misc flags + int _xywh[4]; // xywh of this widget (if visible) + int _collapse_xywh[4]; // xywh of collapse icon (if visible) + int _label_xywh[4]; // xywh of label + Fl_Widget *_widget; // item's label widget (optional) + Fl_Image *_usericon; // item's user-specific icon (optional) + Fl_Image *_userdeicon; // deactivated usericon + Fl_Tree_Item_Array _children; // array of child items + Fl_Tree_Item *_parent; // parent item (=0 if root) + void *_userdata; // user data that can be associated with an item + Fl_Tree_Item *_prev_sibling; // previous sibling (same level) + Fl_Tree_Item *_next_sibling; // next sibling (same level) // Protected methods protected: void _Init(const Fl_Tree_Prefs &prefs, Fl_Tree *tree); @@ -103,10 +101,10 @@ protected: Fl_Color drawbgcolor() const; public: - Fl_Tree_Item(const Fl_Tree_Prefs &prefs); // CTOR -- backwards compatible - Fl_Tree_Item(Fl_Tree *tree); // CTOR -- ABI 1.3.3+ - virtual ~Fl_Tree_Item(); // DTOR -- ABI 1.3.3+ - Fl_Tree_Item(const Fl_Tree_Item *o); // COPY CTOR + Fl_Tree_Item(const Fl_Tree_Prefs &prefs); // CTOR -- backwards compatible + Fl_Tree_Item(Fl_Tree *tree); // CTOR -- ABI 1.3.3+ + virtual ~Fl_Tree_Item(); // DTOR -- ABI 1.3.3+ + Fl_Tree_Item(const Fl_Tree_Item *o); // COPY CTOR /// The item's x position relative to the window int x() const { return(_xywh[0]); } /// The item's y position relative to the window @@ -130,8 +128,8 @@ public: /// \version 1.3.3 int label_h() const { return(_label_xywh[3]); } virtual int draw_item_content(int render); - void draw(int X, int &Y, int W, Fl_Tree_Item *itemfocus, - int &tree_item_xmax, int lastchild=1, int render=1); + void draw(int X, int &Y, int W, Fl_Tree_Item *itemfocus, + int &tree_item_xmax, int lastchild=1, int render=1); void show_self(const char *indent = "") const; void label(const char *val); const char *label() const; @@ -141,11 +139,11 @@ public: /// Retrieve the user-data value that has been assigned to the item. inline void* user_data() const { return _userdata; } - + /// Set item's label font face. void labelfont(Fl_Font val) { - _labelfont = val; - recalc_tree(); // may change tree geometry + _labelfont = val; + recalc_tree(); // may change tree geometry } /// Get item's label font face. Fl_Font labelfont() const { @@ -153,8 +151,8 @@ public: } /// Set item's label font size. void labelsize(Fl_Fontsize val) { - _labelsize = val; - recalc_tree(); // may change tree geometry + _labelsize = val; + recalc_tree(); // may change tree geometry } /// Get item's label font size. Fl_Fontsize labelsize() const { @@ -162,11 +160,11 @@ public: } /// Set item's label foreground text color. void labelfgcolor(Fl_Color val) { - _labelfgcolor = val; + _labelfgcolor = val; } /// Return item's label foreground text color. Fl_Color labelfgcolor() const { - return(_labelfgcolor); + return(_labelfgcolor); } /// Set item's label text color. Alias for labelfgcolor(Fl_Color)). void labelcolor(Fl_Color val) { @@ -174,42 +172,42 @@ public: } /// Return item's label text color. Alias for labelfgcolor() const). Fl_Color labelcolor() const { - return labelfgcolor(); + return labelfgcolor(); } /// Set item's label background color. /// A special case is made for color 0xffffffff which uses the parent tree's bg color. void labelbgcolor(Fl_Color val) { - _labelbgcolor = val; + _labelbgcolor = val; } /// Return item's label background text color. /// If the color is 0xffffffff, the default behavior is the parent tree's /// bg color will be used. (An overloaded draw_item_content() can override /// this behavior.) Fl_Color labelbgcolor() const { - return(_labelbgcolor); + return(_labelbgcolor); } /// Assign an FLTK widget to this item. void widget(Fl_Widget *val) { - _widget = val; - recalc_tree(); // may change tree geometry + _widget = val; + recalc_tree(); // may change tree geometry } /// Return FLTK widget assigned to this item. Fl_Widget *widget() const { - return(_widget); + return(_widget); } /// Return the number of children this item has. int children() const { - return(_children.total()); + return(_children.total()); } /// Return the child item for the given 'index'. Fl_Tree_Item *child(int index) { - return(_children[index]); + return(_children[index]); } /// Return the const child item for the given 'index'. const Fl_Tree_Item *child(int t) const; /// See if this item has children. int has_children() const { - return(children()); + return(children()); } int find_child(const char *name); int find_child(Fl_Tree_Item *item); @@ -228,15 +226,15 @@ public: // Adding items ////////////////// Fl_Tree_Item *add(const Fl_Tree_Prefs &prefs, - const char *new_label, - Fl_Tree_Item *newitem); + const char *new_label, + Fl_Tree_Item *newitem); Fl_Tree_Item *add(const Fl_Tree_Prefs &prefs, - const char *new_label); + const char *new_label); Fl_Tree_Item *add(const Fl_Tree_Prefs &prefs, - char **arr, - Fl_Tree_Item *newitem); + char **arr, + Fl_Tree_Item *newitem); Fl_Tree_Item *add(const Fl_Tree_Prefs &prefs, - char **arr); + char **arr); Fl_Tree_Item *replace(Fl_Tree_Item *new_item); Fl_Tree_Item *replace_child(Fl_Tree_Item *olditem, Fl_Tree_Item *newitem); Fl_Tree_Item *insert(const Fl_Tree_Prefs &prefs, const char *new_label, int pos=0); @@ -254,11 +252,11 @@ public: Fl_Tree_Item *next_sibling(); Fl_Tree_Item *prev_sibling(); void update_prev_next(int index); - Fl_Tree_Item *next_displayed(Fl_Tree_Prefs &prefs); // deprecated - Fl_Tree_Item *prev_displayed(Fl_Tree_Prefs &prefs); // deprecated + Fl_Tree_Item *next_displayed(Fl_Tree_Prefs &prefs); // deprecated + Fl_Tree_Item *prev_displayed(Fl_Tree_Prefs &prefs); // deprecated Fl_Tree_Item *next_visible(Fl_Tree_Prefs &prefs); Fl_Tree_Item *prev_visible(Fl_Tree_Prefs &prefs); - + /// Return the parent for this item. Returns NULL if we are the root. Fl_Tree_Item *parent() { return(_parent); @@ -299,7 +297,7 @@ public: } /// Toggle the item's open/closed state. void open_toggle() { - is_open()?close():open(); // handles calling recalc_tree() + is_open()?close():open(); // handles calling recalc_tree() } /// Change the item's selection state to the optionally specified 'val'. /// If 'val' is not specified, the item will be selected. @@ -310,9 +308,9 @@ public: /// Toggle the item's selection state. void select_toggle() { if ( is_selected() ) { - deselect(); // deselect if selected + deselect(); // deselect if selected } else { - select(); // select if deselected + select(); // select if deselected } } /// Select item and all its children. @@ -355,7 +353,7 @@ public: } /// Change the item's activation state to the optionally specified 'val'. /// - /// When deactivated, the item will be 'grayed out'; the callback() + /// When deactivated, the item will be 'grayed out'; the callback() /// won't be invoked if the user clicks on the label. If a widget() /// is associated with the item, its activation state will be changed as well. /// @@ -365,9 +363,9 @@ public: set_flag(ACTIVE,val); if ( _widget && val != (int)_widget->active() ) { if ( val ) { - _widget->activate(); + _widget->activate(); } else { - _widget->deactivate(); + _widget->deactivate(); } _widget->redraw(); } @@ -407,7 +405,7 @@ public: /// void usericon(Fl_Image *val) { _usericon = val; - recalc_tree(); // may change tree geometry + recalc_tree(); // may change tree geometry } /// Get the item's user icon as an Fl_Image. Returns '0' if disabled. Fl_Image *usericon() const { @@ -467,7 +465,7 @@ protected: /// Set a flag to an on or off value. val is 0 or 1. inline void set_flag(unsigned short flag,int val) { if ( flag==OPEN || flag==VISIBLE ) { - recalc_tree(); // may change tree geometry + recalc_tree(); // may change tree geometry } if ( val ) _flags |= flag; else _flags &= ~flag; } @@ -479,7 +477,3 @@ protected: }; #endif /*FL_TREE_ITEM_H*/ - -// -// End of "$Id$". -// diff --git a/FL/Fl_Tree_Item_Array.H b/FL/Fl_Tree_Item_Array.H index 05b3562c3..dc4da5ff3 100644 --- a/FL/Fl_Tree_Item_Array.H +++ b/FL/Fl_Tree_Item_Array.H @@ -1,6 +1,4 @@ // -// "$Id$" -// #ifndef _FL_TREE_ITEM_ARRAY_H #define _FL_TREE_ITEM_ARRAY_H @@ -8,8 +6,8 @@ #include #include "Fl_Export.H" -class FL_EXPORT Fl_Tree_Item; // forward decl must *precede* first doxygen comment block - // or doxygen will not document our class.. +class FL_EXPORT Fl_Tree_Item; // forward decl must *precede* first doxygen comment block + // or doxygen will not document our class.. ////////////////////////// // FL/Fl_Tree_Item_Array.H @@ -22,11 +20,11 @@ class FL_EXPORT Fl_Tree_Item; // forward decl must *precede* first doxygen comme // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /// @@ -45,19 +43,19 @@ class FL_EXPORT Fl_Tree_Item; // forward decl must *precede* first doxygen comme /// class FL_EXPORT Fl_Tree_Item_Array { - Fl_Tree_Item **_items; // items array - int _total; // #items in array - int _size; // #items *allocated* for array - int _chunksize; // #items to enlarge mem allocation + Fl_Tree_Item **_items; // items array + int _total; // #items in array + int _size; // #items *allocated* for array + int _chunksize; // #items to enlarge mem allocation enum { - MANAGE_ITEM = 1, ///> manage the Fl_Tree_Item's internals (internal use only) + MANAGE_ITEM = 1, ///> manage the Fl_Tree_Item's internals (internal use only) }; - char _flags; // flags to control behavior + char _flags; // flags to control behavior void enlarge(int count); public: - Fl_Tree_Item_Array(int new_chunksize = 10); // CTOR - ~Fl_Tree_Item_Array(); // DTOR - Fl_Tree_Item_Array(const Fl_Tree_Item_Array *o); // COPY CTOR + Fl_Tree_Item_Array(int new_chunksize = 10); // CTOR + ~Fl_Tree_Item_Array(); // DTOR + Fl_Tree_Item_Array(const Fl_Tree_Item_Array *o); // COPY CTOR /// Return the item and index \p i. Fl_Tree_Item *operator[](int i) { return(_items[i]); @@ -82,7 +80,7 @@ public: void remove(int index); int remove(Fl_Tree_Item *item); /// Option to control if Fl_Tree_Item_Array's destructor will also destroy the Fl_Tree_Item's. - /// If set: items and item array is destroyed. + /// If set: items and item array is destroyed. /// If clear: only the item array is destroyed, not items themselves. void manage_item_destroy(int val) { if ( val ) _flags |= MANAGE_ITEM; else _flags &= ~MANAGE_ITEM; @@ -93,7 +91,3 @@ public: }; #endif /*_FL_TREE_ITEM_ARRAY_H*/ - -// -// End of "$Id$". -// diff --git a/FL/Fl_Tree_Prefs.H b/FL/Fl_Tree_Prefs.H index a7a8bee30..e6e010734 100644 --- a/FL/Fl_Tree_Prefs.H +++ b/FL/Fl_Tree_Prefs.H @@ -1,11 +1,9 @@ // -// "$Id$" -// #ifndef FL_TREE_PREFS_H #define FL_TREE_PREFS_H -#include // needed for ABI version features (via Enumerations.H) +#include // needed for ABI version features (via Enumerations.H) ////////////////////// // FL/Fl_Tree_Prefs.H @@ -18,11 +16,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /// @@ -47,18 +45,18 @@ /// Sort order options for items added to the tree /// enum Fl_Tree_Sort { - FL_TREE_SORT_NONE=0, ///< No sorting; items are added in the order defined (default). - FL_TREE_SORT_ASCENDING=1, ///< Add items in ascending sort order. - FL_TREE_SORT_DESCENDING=2 ///< Add items in descending sort order. + FL_TREE_SORT_NONE=0, ///< No sorting; items are added in the order defined (default). + FL_TREE_SORT_ASCENDING=1, ///< Add items in ascending sort order. + FL_TREE_SORT_DESCENDING=2 ///< Add items in descending sort order. }; /// \enum Fl_Tree_Connector /// Defines the style of connection lines between items. /// enum Fl_Tree_Connector { - FL_TREE_CONNECTOR_NONE=0, ///< Use no lines connecting items - FL_TREE_CONNECTOR_DOTTED=1, ///< Use dotted lines connecting items (default) - FL_TREE_CONNECTOR_SOLID=2 ///< Use solid lines connecting items + FL_TREE_CONNECTOR_NONE=0, ///< Use no lines connecting items + FL_TREE_CONNECTOR_DOTTED=1, ///< Use dotted lines connecting items (default) + FL_TREE_CONNECTOR_SOLID=2 ///< Use solid lines connecting items }; /// \enum Fl_Tree_Select @@ -78,8 +76,8 @@ enum Fl_Tree_Select { /// via item_reselect_mode(). /// enum Fl_Tree_Item_Reselect_Mode { - FL_TREE_SELECTABLE_ONCE=0, ///< Item can only be selected once (default) - FL_TREE_SELECTABLE_ALWAYS, ///< Enables FL_TREE_REASON_RESELECTED events for callbacks + FL_TREE_SELECTABLE_ONCE=0, ///< Item can only be selected once (default) + FL_TREE_SELECTABLE_ALWAYS, ///< Enables FL_TREE_REASON_RESELECTED events for callbacks }; /// \enum Fl_Tree_Item_Draw_Mode @@ -87,10 +85,10 @@ enum Fl_Tree_Item_Reselect_Mode { /// via item_draw_mode(). /// enum Fl_Tree_Item_Draw_Mode { - FL_TREE_ITEM_DRAW_DEFAULT=0, ///< If widget() defined, draw in place of label, + FL_TREE_ITEM_DRAW_DEFAULT=0, ///< If widget() defined, draw in place of label, ///< and widget() tracks item height (default) - FL_TREE_ITEM_DRAW_LABEL_AND_WIDGET=1, ///< If widget() defined, include label to the left of the widget - FL_TREE_ITEM_HEIGHT_FROM_WIDGET=2 ///< If widget() defined, widget()'s height controls item's height + FL_TREE_ITEM_DRAW_LABEL_AND_WIDGET=1, ///< If widget() defined, include label to the left of the widget + FL_TREE_ITEM_HEIGHT_FROM_WIDGET=2 ///< If widget() defined, widget()'s height controls item's height }; class Fl_Tree_Item; @@ -105,41 +103,41 @@ typedef void (Fl_Tree_Item_Draw_Callback)(Fl_Tree_Item*, void*); /// instead of trying to accessing tree's preferences settings directly. /// class FL_EXPORT Fl_Tree_Prefs { - Fl_Font _labelfont; // label's font face - Fl_Fontsize _labelsize; // label's font size - int _margintop; // -- - int _marginleft; // |- tree's controllable margins - int _marginbottom; // -- - int _openchild_marginbottom; // extra space below an open child tree - int _usericonmarginleft; // space to left of user icon (if any) - int _labelmarginleft; // space to left of label - int _widgetmarginleft; // space to left of widget - int _connectorwidth; // connector width (right of open/close icon) - int _linespacing; // vertical space between lines + Fl_Font _labelfont; // label's font face + Fl_Fontsize _labelsize; // label's font size + int _margintop; // -- + int _marginleft; // |- tree's controllable margins + int _marginbottom; // -- + int _openchild_marginbottom; // extra space below an open child tree + int _usericonmarginleft; // space to left of user icon (if any) + int _labelmarginleft; // space to left of label + int _widgetmarginleft; // space to left of widget + int _connectorwidth; // connector width (right of open/close icon) + int _linespacing; // vertical space between lines // Colors - Fl_Color _labelfgcolor; // label's foreground color - Fl_Color _labelbgcolor; // label's background color - Fl_Color _connectorcolor; // connector dotted line color - Fl_Tree_Connector _connectorstyle; // connector line style - Fl_Image *_openimage; // the 'open' icon [+] - Fl_Image *_closeimage; // the 'close' icon [-] - Fl_Image *_userimage; // user's own icon - Fl_Image *_opendeimage; // deactivated 'open' icon - Fl_Image *_closedeimage; // deactivated 'close' icon - Fl_Image *_userdeimage; // deactivated user icon - char _showcollapse; // 1=show collapse icons, 0=don't - char _showroot; // show the root item as part of the tree - Fl_Tree_Sort _sortorder; // none, ascening, descending, etc. - Fl_Boxtype _selectbox; // selection box type - Fl_Tree_Select _selectmode; // selection mode - Fl_Tree_Item_Reselect_Mode _itemreselectmode; // controls item selection callback() behavior - Fl_Tree_Item_Draw_Mode _itemdrawmode; // controls how items draw label + widget() - Fl_Tree_Item_Draw_Callback *_itemdrawcallback; // callback to handle drawing items (0=none) - void *_itemdrawuserdata; // data for drawing items (0=none) + Fl_Color _labelfgcolor; // label's foreground color + Fl_Color _labelbgcolor; // label's background color + Fl_Color _connectorcolor; // connector dotted line color + Fl_Tree_Connector _connectorstyle; // connector line style + Fl_Image *_openimage; // the 'open' icon [+] + Fl_Image *_closeimage; // the 'close' icon [-] + Fl_Image *_userimage; // user's own icon + Fl_Image *_opendeimage; // deactivated 'open' icon + Fl_Image *_closedeimage; // deactivated 'close' icon + Fl_Image *_userdeimage; // deactivated user icon + char _showcollapse; // 1=show collapse icons, 0=don't + char _showroot; // show the root item as part of the tree + Fl_Tree_Sort _sortorder; // none, ascening, descending, etc. + Fl_Boxtype _selectbox; // selection box type + Fl_Tree_Select _selectmode; // selection mode + Fl_Tree_Item_Reselect_Mode _itemreselectmode; // controls item selection callback() behavior + Fl_Tree_Item_Draw_Mode _itemdrawmode; // controls how items draw label + widget() + Fl_Tree_Item_Draw_Callback *_itemdrawcallback; // callback to handle drawing items (0=none) + void *_itemdrawuserdata; // data for drawing items (0=none) public: Fl_Tree_Prefs(); ~Fl_Tree_Prefs(); - + //////////////////////////// // Labels //////////////////////////// @@ -188,7 +186,7 @@ public: inline Fl_Color labelbgcolor() const { return(item_labelbgcolor()); } /// Obsolete: Set the default label background color. Please use item_labelbgcolor(Fl_Color) instead. inline void labelbgcolor(Fl_Color val) { item_labelbgcolor(val); } - + //////////////////////////// // Margins //////////////////////////// @@ -258,7 +256,7 @@ public: inline void linespacing(int val) { _linespacing = val; } - + //////////////////////////// // Colors and Styles //////////////////////////// @@ -290,7 +288,7 @@ public: inline void connectorwidth(int val) { _connectorwidth = val; } - + //////////////////////////// // Icons //////////////////////////// @@ -342,7 +340,7 @@ public: inline Fl_Image *userdeicon() const { return _userdeimage; } - + //////////////////////////// // Options //////////////////////////// @@ -417,7 +415,7 @@ public: } /// Set the 'item draw mode' used for the tree to \p val. /// This affects how items in the tree are drawn, - /// such as when a widget() is defined. + /// such as when a widget() is defined. /// See Fl_Tree_Item_Draw_Mode for possible values. /// inline void item_draw_mode(Fl_Tree_Item_Draw_Mode val) { @@ -439,7 +437,3 @@ public: }; #endif /*FL_TREE_PREFS_H*/ - -// -// End of "$Id$". -// diff --git a/FL/Fl_Valuator.H b/FL/Fl_Valuator.H index 9fc36f7bf..d8288b7ed 100644 --- a/FL/Fl_Valuator.H +++ b/FL/Fl_Valuator.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Valuator header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2016 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -27,8 +25,8 @@ #endif // shared type() values for classes that work in both directions: -#define FL_VERTICAL 0 ///< The valuator can work vertically -#define FL_HORIZONTAL 1 ///< The valuator can work horizontally +#define FL_VERTICAL 0 ///< The valuator can work vertically +#define FL_HORIZONTAL 1 ///< The valuator can work horizontally /** The Fl_Valuator class controls a single floating-point value @@ -132,7 +130,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Value_Input.H b/FL/Fl_Value_Input.H index 1aabe8ed7..995b36a00 100644 --- a/FL/Fl_Value_Input.H +++ b/FL/Fl_Value_Input.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Value input header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -32,31 +30,31 @@ type(FL_FLOAT_INPUT) or type(FL_INT_INPUT) in there - and when they hit return or tab the value updates to what they typed and the callback is done. - +

    If step() 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 Fl_Input widget is of type(FL_FLOAT_INPUT).

    - +

    If step() is non-zero, the user can also drag the mouse across the object and thus slide the value. The left button moves one step() per pixel, the middle by 10 * step(), and the right button by 100 * step(). It is therefore impossible to select text by dragging across it, although clicking can still move the insertion cursor.

    - +

    If step() is non-zero and integral, then the range of numbers are limited to integers instead of floating point values. - -

    \image html Fl_Value_Input.png + +

    \image html Fl_Value_Input.png \image latex Fl_Value_Input.png "Fl_Value_Input" width=4cm \see Fl_Widget::shortcut_label(int) */ class FL_EXPORT Fl_Value_Input : public Fl_Valuator { public: - /* This is the encapsulated Fl_input attribute to which + /* This is the encapsulated Fl_input attribute to which this class delegates the value font, color and shortcut */ Fl_Input input; private: @@ -83,21 +81,21 @@ public: char soft() const {return soft_;} /** Returns the current shortcut key for the Input. - \see Fl_Value_Input::shortcut(int) + \see Fl_Value_Input::shortcut(int) */ int shortcut() const {return input.shortcut();} - /** + /** Sets the shortcut key to \p s. Setting this overrides the use of '&' in the label(). The value is a bitwise OR of a key and a set of shift flags, for example FL_ALT | 'a' , FL_ALT | (FL_F + 10), or just 'a'. A value of 0 disables the shortcut. - - The key can be any value returned by + + The key can be any value returned by Fl::event_key(), but will usually be an ASCII letter. Use a lower-case letter unless you require the shift key to be held down. - - The shift flags can be any set of values accepted by + + The shift flags can be any set of values accepted by Fl::event_state(). 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 "don't care" @@ -125,7 +123,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Value_Output.H b/FL/Fl_Value_Output.H index 2d817f579..6a2e7e900 100644 --- a/FL/Fl_Value_Output.H +++ b/FL/Fl_Value_Output.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Value output header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -30,12 +28,12 @@ The Fl_Value_Output widget displays a floating point value. If step() is not zero, the user can adjust the value by dragging the mouse left and right. The left button moves one step() - per pixel, the middle by 10 * step(), and the right button by + per pixel, the middle by 10 * step(), and the right button by 100 * step(). -

    This is much lighter-weight than +

    This is much lighter-weight than Fl_Value_Input because it contains no text editing code or character buffer.

    -

    \image html Fl_Value_Output.png +

    \image html Fl_Value_Output.png \image latex Fl_Value_Output.png "Fl_Value_Output" width=4cm */ class FL_EXPORT Fl_Value_Output : public Fl_Valuator { @@ -80,7 +78,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Value_Slider.H b/FL/Fl_Value_Slider.H index 462cdb424..b139de71b 100644 --- a/FL/Fl_Value_Slider.H +++ b/FL/Fl_Value_Slider.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Value slider header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -27,7 +25,7 @@ /** The Fl_Value_Slider widget is a Fl_Slider widget with a box displaying the current value. -

    \image html value_slider.png +

    \image html value_slider.png \image latex value_slider.png "Fl_Value_Slider" width=4cm */ class FL_EXPORT Fl_Value_Slider : public Fl_Slider { @@ -54,7 +52,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Widget.H b/FL/Fl_Widget.H index 6ca0787cd..0745b9063 100644 --- a/FL/Fl_Widget.H +++ b/FL/Fl_Widget.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Widget header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2020 by Bill Spitzak and others. @@ -11,9 +9,9 @@ // // https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /** \file @@ -72,16 +70,16 @@ struct FL_EXPORT Fl_Label { -/** Fl_Widget 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 subclass it. +/** Fl_Widget is the base class for all widgets in FLTK. - All "property" accessing methods, such as color(), parent(), or argument() - 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 color(n) or label(s) are also trivial inline - functions, even if they change the widget's appearance. It is up to the + You can't create one of these because the constructor is not public. + However you can subclass it. + + All "property" accessing methods, such as color(), parent(), or argument() + 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 color(n) or label(s) are also trivial inline + functions, even if they change the widget's appearance. It is up to the user code to call redraw() after these. */ class FL_EXPORT Fl_Widget { @@ -112,10 +110,10 @@ protected: /** Creates a widget at the given position and size. - The Fl_Widget is a protected constructor, but all derived widgets have a - matching public constructor. It takes a value for x(), y(), w(), h(), and + The Fl_Widget is a protected constructor, but all derived widgets have a + matching public constructor. It takes a value for x(), y(), w(), h(), and an optional value for label(). - + \param[in] x, y the position of the widget relative to the enclosing window \param[in] w, h size of the widget in pixels \param[in] label optional text for the widget label @@ -180,10 +178,10 @@ protected: public: /** Destroys the widget. - Destroying single widgets is not very common. You almost always want to - destroy the parent group instead, which will destroy all of the child widgets + Destroying single widgets is not very common. You almost always want to + destroy the parent group instead, which will destroy all of the child widgets and groups in that group. - + \since FLTK 1.3, the widget's destructor removes the widget from its parent group, if it is member of a group. */ @@ -207,17 +205,17 @@ public: */ virtual void draw() = 0; - /** Handles the specified event. - You normally don't call this method directly, but instead let FLTK do + /** 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. - - When implemented in a widget, this function must return 0 if the + + When implemented in a widget, this function must return 0 if the widget does not use the event or 1 otherwise. - Most of the time, you want to call the inherited handle() method in - your overridden method so that you don't short-circuit events that you + Most of the time, you want to call the inherited handle() method in + your overridden method so that you don't short-circuit events that you don't handle. In this last case you should return the callee retval. - + \param[in] event the kind of event received \retval 0 if the event was not used or understood \retval 1 if the event was used and can be deleted @@ -235,15 +233,15 @@ public: */ int is_label_copied() const {return ((flags_ & COPIED_LABEL) ? 1 : 0);} - /** Returns a pointer to the parent widget. - Usually this is a Fl_Group or Fl_Window. + /** Returns a pointer to the parent widget. + Usually this is a Fl_Group or Fl_Window. \retval NULL if the widget has no parent \see Fl_Group::add(Fl_Widget*) */ Fl_Group* parent() const {return parent_;} /** Internal use only - "for hacks only". - + It is \em \b STRONGLY recommended not to use this method, because it short-circuits Fl_Group's normal widget adding and removing methods, if the widget is already a child widget of another Fl_Group. @@ -255,7 +253,7 @@ public: /** Gets the widget type. Returns the widget type value, which is used for Forms compatibility and to simulate RTTI. - + \todo Explain "simulate RTTI" (currently only used to decide if a widget is a window, i.e. type()>=FL_WINDOW ?). Is type() really used in a way that ensures "Forms compatibility" ? @@ -289,20 +287,20 @@ public: /** Changes the size or position of the widget. - This is a virtual function so that the widget may implement its + This is a virtual function so that the widget may implement its own handling of resizing. The default version does \e not - call the redraw() 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. + call the redraw() 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. - Some window managers under X11 call resize() a lot more often - than needed. Please verify that the position or size of a widget + Some window managers under X11 call resize() a lot more often + than needed. Please verify that the position or size of a widget did actually change before doing any extensive calculations. - position(X, Y) is a shortcut for resize(X, Y, w(), h()), + position(X, Y) is a shortcut for resize(X, Y, w(), h()), and size(W, H) is a shortcut for resize(x(), y(), W, H). - - \param[in] x, y new position relative to the parent window + + \param[in] x, y new position relative to the parent window \param[in] w, h new size \see position(int,int), size(int,int) */ @@ -314,8 +312,8 @@ public: /** Repositions the window or widget. position(X, Y) is a shortcut for resize(X, Y, w(), h()). - - \param[in] X, Y new position relative to the parent window + + \param[in] X, Y new position relative to the parent window \see resize(int,int,int,int), size(int,int) */ void position(int X,int Y) {resize(X,Y,w_,h_);} @@ -323,7 +321,7 @@ public: /** Changes the size of the widget. size(W, H) is a shortcut for resize(x(), y(), W, H). - + \param[in] W, H new size \see position(int,int), resize(int,int,int,int) */ @@ -337,8 +335,8 @@ public: Fl_Align align() const {return label_.align_;} /** Sets the label alignment. - This controls how the label is displayed next to or inside the widget. - The default value is FL_ALIGN_CENTER, which centers the label inside + This controls how the label is displayed next to or inside the widget. + The default value is FL_ALIGN_CENTER, which centers the label inside the widget. \param[in] alignment new label alignment \see align(), Fl_Align @@ -350,10 +348,10 @@ public: \see box(Fl_Boxtype), Fl_Boxtype */ Fl_Boxtype box() const {return (Fl_Boxtype)box_;} - - /** Sets the box type for the widget. + + /** Sets the box type for the widget. This identifies a routine that draws the background of the widget. - See Fl_Boxtype for the available types. The default depends on the + See Fl_Boxtype for the available types. The default depends on the widget, but is usually FL_NO_BOX or FL_UP_BOX. \param[in] new_box the new box type \see box(), Fl_Boxtype @@ -366,11 +364,11 @@ public: */ Fl_Color color() const {return color_;} - /** 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 + /** 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 fl_rgb_color(). - + The default for most widgets is FL_BACKGROUND_COLOR. Use Fl::set_color() to redefine colors in the color map. \param[in] bg background color @@ -385,18 +383,18 @@ public: Fl_Color selection_color() const {return color2_;} /** Sets the selection color. - The selection color 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 + The selection color 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 color(Fl_Color bg, Fl_Color sel). \param[in] a the new selection color \see selection_color(), color(Fl_Color, Fl_Color) */ void selection_color(Fl_Color a) {color2_ = a;} - /** Sets the background and selection color of the widget. + /** Sets the background and selection color of the widget. - The two color form sets both the background and selection colors. + The two color form sets both the background and selection colors. \param[in] bg background color \param[in] sel selection color \see color(unsigned), selection_color(unsigned) @@ -413,17 +411,17 @@ public: The label is shown somewhere on or next to the widget. See \ref common_labels for details about what can be put in a label. - The passed pointer is stored unchanged in the widget (the string is \em not copied), so if - you need to set the label to a formatted value, make sure the buffer is - static, global, or allocated. The copy_label() method can be used + The passed pointer is stored unchanged in the widget (the string is \em not copied), so if + you need to set the label to a formatted value, make sure the buffer is + static, global, or allocated. The copy_label() method can be used to make a copy of the label string automatically. \param[in] text pointer to new label text \see copy_label() */ void label(const char* text); - /** Sets the current label. - Unlike label(), this method allocates a copy of the label + /** Sets the current label. + Unlike label(), this method allocates a copy of the label string instead of using the original string pointer. The internal copy will automatically be freed whenever you assign @@ -445,29 +443,29 @@ public: */ Fl_Labeltype labeltype() const {return (Fl_Labeltype)label_.type;} - /** Sets the label type. - The label type identifies the function that draws the label of the widget. - This is generally used for special effects such as embossing or for using - the label() pointer as another form of data such as an icon. The value + /** Sets the label type. + The label type identifies the function that draws the label of the widget. + This is generally used for special effects such as embossing or for using + the label() pointer as another form of data such as an icon. The value FL_NORMAL_LABEL prints the label as plain text. \param[in] a new label type \see Fl_Labeltype */ void labeltype(Fl_Labeltype a) {label_.type = a;} - /** Gets the label color. - The default color is FL_FOREGROUND_COLOR. + /** Gets the label color. + The default color is FL_FOREGROUND_COLOR. \return the current label color */ Fl_Color labelcolor() const {return label_.color;} - /** Sets the label color. - The default color is FL_FOREGROUND_COLOR. + /** Sets the label color. + The default color is FL_FOREGROUND_COLOR. \param[in] c the new label color */ void labelcolor(Fl_Color c) {label_.color=c;} - /** Gets the font to use. + /** Gets the font to use. Fonts are identified by indexes into a table. The default value uses a Helvetica typeface (Arial for Microsoft® Windows®). The function Fl::set_font() can define new typefaces. @@ -476,7 +474,7 @@ public: */ Fl_Font labelfont() const {return label_.font;} - /** Sets the font to use. + /** Sets the font to use. Fonts are identified by indexes into a table. The default value uses a Helvetica typeface (Arial for Microsoft® Windows®). The function Fl::set_font() can define new typefaces. @@ -485,7 +483,7 @@ public: */ void labelfont(Fl_Font f) {label_.font=f;} - /** Gets the font size in pixels. + /** Gets the font size in pixels. The default size is 14 pixels. \return the current font size */ @@ -547,8 +545,8 @@ public: */ const char *tooltip() const {return tooltip_;} - void tooltip(const char *text); // see Fl_Tooltip - void copy_tooltip(const char *text); // see Fl_Tooltip + void tooltip(const char *text); // see Fl_Tooltip + void copy_tooltip(const char *text); // see Fl_Tooltip /** Gets the current callback function for the widget. Each widget has a single callback. @@ -600,16 +598,16 @@ public: /** Gets the current user data (long) argument that is passed to the callback function. \note On platforms with sizeof(long) \< sizeof(void*), particularly - on Windows 64-bit platforms, this method can truncate stored addresses - \p (void*) to the size of a \p long value. Use with care and only - if you are sure that the stored user_data value fits in a \p long - value because it was stored with argument(long) or another method - using only \p long values. You may want to use user_data() instead. + on Windows 64-bit platforms, this method can truncate stored addresses + \p (void*) to the size of a \p long value. Use with care and only + if you are sure that the stored user_data value fits in a \p long + value because it was stored with argument(long) or another method + using only \p long values. You may want to use user_data() instead. \see user_data() \todo [Internal] The user_data value must be implemented using - \p fl_intptr_t or similar to avoid 64-bit platform incompatibilities. + \p fl_intptr_t or similar to avoid 64-bit platform incompatibilities. */ long argument() const {return (long)(fl_intptr_t)user_data_;} @@ -633,29 +631,29 @@ public: This controls when callbacks are done. The following values are useful, the default value is FL_WHEN_RELEASE: - + \li 0: The callback is not done, but changed() is turned on. \li FL_WHEN_CHANGED: The callback is done each time the text is changed by the user. - \li FL_WHEN_RELEASE: 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 changed() when the OK button on a panel is pressed. - \li FL_WHEN_ENTER_KEY: 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 Fl_Multiline_Input) - this changes the behavior. + \li FL_WHEN_RELEASE: 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 changed() when the OK button on a panel is pressed. + \li FL_WHEN_ENTER_KEY: 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 Fl_Multiline_Input) - this changes the behavior. \li FL_WHEN_ENTER_KEY|FL_WHEN_NOT_CHANGED: The Enter key will do the callback even if the text has not changed. Useful for command fields. - Fl_Widget::when() is a set of bitflags used by subclasses of + Fl_Widget::when() is a set of bitflags used by subclasses of Fl_Widget 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 + 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 do_callback() on all the ones that don't do their own callbacks in response to an "OK" button. \param[in] i set of flags @@ -692,20 +690,20 @@ public: \see hide(), visible(), visible_r() */ virtual void show(); - + /** Makes a widget invisible. \see show(), visible(), visible_r() */ virtual void hide(); - /** Makes the widget visible. - You must still redraw the parent widget to see a change in the + /** Makes the widget visible. + You must still redraw the parent widget to see a change in the window. Normally you want to use the show() method instead. */ void set_visible() {flags_ &= ~INVISIBLE;} - /** Hides the widget. - You must still redraw the parent to see a change in the window. + /** Hides the widget. + You must still redraw the parent to see a change in the window. Normally you want to use the hide() method instead. */ void clear_visible() {flags_ |= INVISIBLE;} @@ -716,27 +714,27 @@ public: */ unsigned int active() const {return !(flags_&INACTIVE);} - /** Returns whether the widget and all of its parents are active. + /** Returns whether the widget and all of its parents are active. \retval 0 if this or any of the parent widgets are inactive \see active(), activate(), deactivate() */ int active_r() const; /** Activates the widget. - Changing this value will send FL_ACTIVATE to the widget if + Changing this value will send FL_ACTIVATE to the widget if active_r() is true. \see active(), active_r(), deactivate() */ void activate(); /** Deactivates the widget. - 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 FL_ENTER, FL_MOVE, - FL_LEAVE, FL_SHORTCUT, and others) will still be sent. A widget is - only active if active() is true on it and all of its parents. + 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 FL_ENTER, FL_MOVE, + FL_LEAVE, FL_SHORTCUT, and others) will still be sent. A widget is + only active if active() is true on it and all of its parents. - Changing this value will send FL_DEACTIVATE to the widget if + Changing this value will send FL_DEACTIVATE to the widget if active_r() is true. Currently you cannot deactivate Fl_Window widgets. @@ -746,22 +744,22 @@ public: void deactivate(); /** Returns if a widget is used for output only. - output() means the same as !active() 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 + output() means the same as !active() 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. \retval 0 if the widget is used for input and output - \see set_output(), clear_output() + \see set_output(), clear_output() */ unsigned int output() const {return (flags_&OUTPUT);} /** Sets a widget to output only. - \see output(), clear_output() + \see output(), clear_output() */ void set_output() {flags_ |= OUTPUT;} /** Sets a widget to accept input. - \see set_output(), output() + \see set_output(), output() */ void clear_output() {flags_ &= ~OUTPUT;} @@ -815,31 +813,31 @@ public: void set_active() {flags_ &= ~INACTIVE;} /** Gives the widget the keyboard focus. - Tries to make this widget be the Fl::focus() widget, by first sending - it an FL_FOCUS event, and if it returns non-zero, setting - Fl::focus() to this widget. You should use this method to - assign the focus to a widget. + Tries to make this widget be the Fl::focus() widget, by first sending + it an FL_FOCUS event, and if it returns non-zero, setting + Fl::focus() to this widget. You should use this method to + assign the focus to a widget. \return true if the widget accepted the focus. */ int take_focus(); - /** Enables keyboard focus navigation with this widget. + /** 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. - \see visible_focus(), clear_visible_focus(), visible_focus(int) + \see visible_focus(), clear_visible_focus(), visible_focus(int) */ void set_visible_focus() { flags_ |= VISIBLE_FOCUS; } - /** Disables keyboard focus navigation with this widget. + /** Disables keyboard focus navigation with this widget. Normally, all widgets participate in keyboard focus navigation. - \see set_visible_focus(), visible_focus(), visible_focus(int) + \see set_visible_focus(), visible_focus(), visible_focus(int) */ void clear_visible_focus() { flags_ &= ~VISIBLE_FOCUS; } - /** Modifies keyboard focus navigation. + /** Modifies keyboard focus navigation. \param[in] v set or clear visible focus - \see set_visible_focus(), clear_visible_focus(), visible_focus() + \see set_visible_focus(), clear_visible_focus(), visible_focus() */ void visible_focus(int v) { if (v) set_visible_focus(); else clear_visible_focus(); } @@ -927,13 +925,13 @@ public: void redraw(); /** Schedules the drawing of the label. - Marks the widget or the parent as needing a redraw for the label area + Marks the widget or the parent as needing a redraw for the label area of a widget. */ void redraw_label(); - /** Returns non-zero if draw() needs to be called. - The damage value is actually a bit field that the widget + /** Returns non-zero if draw() 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. \return a bitmap of flags describing the kind of damage to the widget \see damage(uchar), clear_damage(uchar) @@ -948,7 +946,7 @@ public: \note Therefore it is possible to set damage bits with this method, but this should be avoided. Use damage(uchar) instead. - + \param[in] c new bitmask of damage flags (default: 0) \see damage(uchar), damage() */ @@ -973,7 +971,7 @@ public: /** Sets width ww and height hh accordingly with the label size. Labels with images will return w() and h() of the image. - + This calls fl_measure() internally. For more information about the arguments \p ww and \p hh and word wrapping \see fl_measure(const char*, int&, int&, int) @@ -991,15 +989,15 @@ public: non-NULL, then the widget in question is derived from Fl_Group, and you can use the returned pointer to access its children or other Fl_Group-specific methods. - + Example: \code void my_callback (Fl_Widget *w, void *) { Fl_Group *g = w->as_group(); - if (g) - printf ("This group has %d children\n", g->children()); - else - printf ("This widget is not a group!\n"); + if (g) + printf ("This group has %d children\n", g->children()); + else + printf ("This widget is not a group!\n"); } \endcode @@ -1038,7 +1036,7 @@ public: /** Returns non zero if MAC_USE_ACCENTS_MENU flag is set, 0 otherwise. */ int use_accents_menu() { return flags() & MAC_USE_ACCENTS_MENU; } - + /** For back compatibility only. \deprecated Use selection_color() instead. */ @@ -1080,7 +1078,3 @@ public: #define FL_RESERVED_TYPE 100 #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Widget_Surface.H b/FL/Fl_Widget_Surface.H index 94b8dbb2c..2faa2c8d8 100644 --- a/FL/Fl_Widget_Surface.H +++ b/FL/Fl_Widget_Surface.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Drivers code for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2016 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef Fl_Widget_Surface_h @@ -45,7 +43,3 @@ public: }; #endif /* Fl_Widget_Surface_h */ - -// -// End of "$Id$". -// diff --git a/FL/Fl_Window.H b/FL/Fl_Window.H index e7125d633..1db612b72 100644 --- a/FL/Fl_Window.H +++ b/FL/Fl_Window.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Window header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2016 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /** \file @@ -27,7 +25,7 @@ #include #include -#define FL_WINDOW 0xF0 ///< window type id all subclasses have type() >= this +#define FL_WINDOW 0xF0 ///< window type id all subclasses have type() >= this #define FL_DOUBLE_WINDOW 0xF1 ///< double window type id class Fl_X; @@ -83,7 +81,7 @@ private: uchar size_range_set; // cursor stuff Fl_Cursor cursor_default; - + void _Fl_Window(); // constructor innards // unimplemented copy ctor and assignment operator @@ -125,10 +123,10 @@ protected: public: /** - Creates a window from the given size and title. - If Fl_Group::current() is not NULL, the window is created as a + Creates a window from the given size and title. + If Fl_Group::current() is not NULL, the window is created as a subwindow of the parent window. - + The (w,h) form of the constructor creates a top-level window and asks the window manager to position the window. The (x,y,w,h) form of the constructor either creates a subwindow or a @@ -137,14 +135,14 @@ public: window, the window manager will pick a place to show the window or allow the user to pick a location. Use position(x,y) or hotspot() before calling show() to request a - position on the screen. See Fl_Window::resize() + position on the screen. See Fl_Window::resize() for some more details on positioning windows. - + Top-level windows initially have visible() set to 0 and parent() set to NULL. Subwindows initially have visible() set to 1 and parent() set to the parent window pointer. - + Fl_Widget::box() defaults to FL_FLAT_BOX. If you plan to completely fill the window with children widgets you should change this to FL_NO_BOX. If you turn the window border off @@ -161,7 +159,7 @@ public: /** The destructor also deletes all the children. 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 + all the children in the user code. A kludge has been done so the Fl_Window and all of its children can be automatic (local) variables, but you must declare the Fl_Window first so that it is destroyed last. @@ -180,10 +178,10 @@ public: You can also call the Fl_Widget methods size(x,y) and position(w,h), which are inline wrappers for this virtual function. - 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 + 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 resize request. */ virtual void resize(int X,int Y,int W,int H); @@ -196,11 +194,11 @@ public: Fast inline function to turn the window manager border off. It only works before show() is called. */ - void clear_border() {set_flag(NOBORDER);} + void clear_border() {set_flag(NOBORDER);} /** Returns whether the window possesses a border */ - unsigned int border() const {return !(flags() & NOBORDER);} + unsigned int border() const {return !(flags() & NOBORDER);} /** Activates the flags NOBORDER|FL_OVERRIDE */ - void set_override() {set_flag(NOBORDER|OVERRIDE);} + void set_override() {set_flag(NOBORDER|OVERRIDE);} /** Returns non zero if FL_OVERRIDE flag is set, 0 otherwise. */ unsigned int override() const { return flags()&OVERRIDE; } /** @@ -211,16 +209,16 @@ public: once, in which case only the last one shown gets events. You can see which window (if any) is modal by calling Fl::modal(). */ - void set_modal() {set_flag(MODAL);} + void set_modal() {set_flag(MODAL);} /** Returns true if this window is modal. */ - unsigned int modal() const {return flags() & MODAL;} + unsigned int modal() const {return flags() & MODAL;} /** A "non-modal" window (terminology borrowed from Microsoft Windows) acts like a modal() one in that it remains on top, but it has no effect on event delivery. There are three states for a window: modal, non-modal, and normal. */ - void set_non_modal() {set_flag(NON_MODAL);} + void set_non_modal() {set_flag(NON_MODAL);} /** Returns true if this window is modal or non-modal. */ unsigned int non_modal() const {return flags() & (NON_MODAL|MODAL);} @@ -276,11 +274,11 @@ public: This must be called before the window is shown and cannot be changed later. */ - void set_menu_window() {set_flag(MENU_WINDOW);} + void set_menu_window() {set_flag(MENU_WINDOW);} /** Returns true if this window is a menu window. */ unsigned int menu_window() const {return flags() & MENU_WINDOW;} - + /** Marks the window as a tooltip window. @@ -297,8 +295,8 @@ public: \note Since Fl_Tooltip_Window is derived from Fl_Menu_Window, this also \b clears the menu_window() state. */ - void set_tooltip_window() { set_flag(TOOLTIP_WINDOW); - clear_flag(MENU_WINDOW); } + void set_tooltip_window() { set_flag(TOOLTIP_WINDOW); + clear_flag(MENU_WINDOW); } /** Returns true if this window is a tooltip window. */ unsigned int tooltip_window() const {return flags() & TOOLTIP_WINDOW;} @@ -323,13 +321,13 @@ public: \deprecated please use force_position(0) instead */ - void free_position() {clear_flag(FORCE_POSITION);} + void free_position() {clear_flag(FORCE_POSITION);} void size_range(int minw, int minh, int maxw=0, int maxh=0, int dw=0, int dh=0, int aspect=0); /** See void Fl_Window::label(const char*) */ - const char* label() const {return Fl_Widget::label();} + const char* label() const {return Fl_Widget::label();} /** See void Fl_Window::iconlabel(const char*) */ - const char* iconlabel() const {return iconlabel_;} + const char* iconlabel() const {return iconlabel_;} /** Sets the window title bar label. */ void label(const char*); /** Sets the icon label. */ @@ -426,7 +424,7 @@ public: /** Makes the window completely fill one or more screens, without any window manager border visible. You must use fullscreen_off() to - undo this. + undo this. \note On some platforms, this can result in the keyboard being grabbed. The window may also be recreated, meaning hide() and @@ -440,18 +438,18 @@ public: */ void fullscreen_off(); /** - Turns off any side effects of fullscreen() and does + Turns off any side effects of fullscreen() and does resize(x,y,w,h). */ void fullscreen_off(int X,int Y,int W,int H); /** - Returns non zero if FULLSCREEN flag is set, 0 otherwise. + Returns non zero if FULLSCREEN flag is set, 0 otherwise. */ unsigned int fullscreen_active() const { return flags() & FULLSCREEN; } /** Sets which screens should be used when this window is in fullscreen mode. The window will be resized to the top of the screen with index - \p top, the bottom of the screen with index \p bottom, etc. + \p top, the bottom of the screen with index \p bottom, etc. If this method is never called, or if any argument is < 0, then the window will be resized to fill the screen it is currently on. @@ -467,7 +465,7 @@ public: Call show() to restore the window. When a window is iconified/restored (either by these calls or by the - user) the handle() method is called with FL_HIDE and + user) the handle() method is called with FL_HIDE and FL_SHOW events and visible() is turned on and off. There is no way to control what is drawn in the icon except with the @@ -510,16 +508,16 @@ public: void default_cursor(Fl_Cursor c, Fl_Color, Fl_Color=FL_WHITE); static void default_callback(Fl_Window*, void* v); - + /** Returns the window width including any frame added by the window manager. - + Same as w() if applied to a subwindow. */ int decorated_w() const; - /** Returns the window height including any window title bar and any frame + /** Returns the window height including any window title bar and any frame added by the window manager. - + Same as h() if applied to a subwindow. */ int decorated_h() const; @@ -536,7 +534,7 @@ public: Return non-null if this is an Fl_Double_Window object. */ virtual class Fl_Double_Window *as_double_window() {return 0L;} - + void shape(const Fl_Image* img); void shape(const Fl_Image& b) ; const Fl_Image *shape(); @@ -545,7 +543,3 @@ public: }; #endif - -// -// End of "$Id$". -// diff --git a/FL/Fl_Wizard.H b/FL/Fl_Wizard.H index e89203f60..785cee450 100644 --- a/FL/Fl_Wizard.H +++ b/FL/Fl_Wizard.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Fl_Wizard widget definitions. // // Copyright 1999-2010 by Easy Software Products. @@ -12,9 +10,9 @@ // // https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -58,7 +56,3 @@ public: }; #endif // !_Fl_Wizard_H_ - -// -// End of "$Id$". -// diff --git a/FL/Fl_XBM_Image.H b/FL/Fl_XBM_Image.H index 13938e26e..2c4e1b0f0 100644 --- a/FL/Fl_XBM_Image.H +++ b/FL/Fl_XBM_Image.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // XBM image header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file @@ -35,7 +33,3 @@ class FL_EXPORT Fl_XBM_Image : public Fl_Bitmap { }; #endif // !Fl_XBM_Image_H - -// -// End of "$Id$". -// diff --git a/FL/Fl_XPM_Image.H b/FL/Fl_XPM_Image.H index c910fbffa..a10a24825 100644 --- a/FL/Fl_XPM_Image.H +++ b/FL/Fl_XPM_Image.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // XPM image header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,15 +7,15 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /* \file - + Fl_XPM_Image class . */ #ifndef Fl_XPM_Image_H @@ -36,7 +34,3 @@ class FL_EXPORT Fl_XPM_Image : public Fl_Pixmap { }; #endif // !Fl_XPM_Image - -// -// End of "$Id$". -// diff --git a/FL/Makefile.in b/FL/Makefile.in index 52141e8d6..b34b55db6 100644 --- a/FL/Makefile.in +++ b/FL/Makefile.in @@ -1,6 +1,4 @@ # -# "$Id$" -# # Header makefile for the Fast Light Tool Kit (FLTK). # # Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # -# http://www.fltk.org/COPYING.php +# https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# http://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # include ../makeinclude @@ -47,8 +45,3 @@ uninstall: echo "Uninstalling include files..." $(RMDIR) $(DESTDIR)$(includedir)/FL @HLINKS@ $(RM) $(DESTDIR)$(includedir)/Fl - - -# -# End of "$Id$". -# diff --git a/FL/android.H b/FL/android.H index eea3d616c..f1ad220e1 100644 --- a/FL/android.H +++ b/FL/android.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Template header file for the Fast Light Tool Kit (FLTK). // // Copyright 2016-2018 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // // Do not directly include this file, instead use . @@ -159,8 +157,3 @@ enum Fl_Android_Platform_Event */ FL_ANDROID_EVENT_DESTROY }; - - -// -// End of "$Id$". -// diff --git a/FL/filename.H b/FL/filename.H index 5c1bab4d2..d9caa70bb 100644 --- a/FL/filename.H +++ b/FL/filename.H @@ -1,6 +1,4 @@ /* - * "$Id$" - * * Filename header file for the Fast Light Tool Kit (FLTK). * * Copyright 1998-2018 by Bill Spitzak and others. @@ -9,11 +7,11 @@ * the file "COPYING" which should have been included with this file. If this * file is missing or damaged, see the license at: * - * http://www.fltk.org/COPYING.php + * https://www.fltk.org/COPYING.php * - * Please report all bugs and problems on the following page: + * Please see the following page on how to report bugs and issues: * - * http://www.fltk.org/str.php + * https://www.fltk.org/bugs.php */ /** \file @@ -96,8 +94,8 @@ FL_EXPORT void fl_filename_free_list(struct dirent ***l, int n); * system-defined program (added in FLTK 1.1.8) */ -FL_EXPORT int fl_open_uri(const char *uri, char *msg = (char *)0, - int msglen = 0); +FL_EXPORT int fl_open_uri(const char *uri, char *msg = (char *)0, + int msglen = 0); FL_EXPORT void fl_decode_uri(char *uri); @@ -110,7 +108,3 @@ FL_EXPORT void fl_decode_uri(char *uri); #endif /* FL_FILENAME_H */ /** @} */ - -/* - * End of "$Id$". - */ diff --git a/FL/fl_ask.H b/FL/fl_ask.H index 2a9f1b107..84e9ef227 100644 --- a/FL/fl_ask.H +++ b/FL/fl_ask.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Standard dialog header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2020 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// https://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /** \file fl_ask.H @@ -26,7 +24,7 @@ # include "Enumerations.H" class Fl_Widget; -/** Different system beeps available. +/** Different system beeps available. \sa fl_beep(int) */ enum Fl_Beep { FL_BEEP_DEFAULT = 0, ///< Default beep. @@ -84,7 +82,3 @@ extern FL_EXPORT const char* fl_ok; extern FL_EXPORT const char* fl_cancel; extern FL_EXPORT const char* fl_close; #endif // !fl_ask_H - -// -// End of "$Id$". -// diff --git a/FL/fl_draw.H b/FL/fl_draw.H index 7f1a63451..4b9796acf 100644 --- a/FL/fl_draw.H +++ b/FL/fl_draw.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Portable drawing function header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2020 by Bill Spitzak and others. @@ -11,9 +9,9 @@ // // https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /** @@ -46,9 +44,9 @@ FL_EXPORT extern char fl_draw_shortcut; then a least-squares algorithm is used to find the closest color. If no valid graphical context (fl_gc) is available, the foreground is not set for the current window. - \param[in] c color + \param[in] c color */ -inline void fl_color(Fl_Color c) {fl_graphics_driver->color(c); } // select indexed color +inline void fl_color(Fl_Color c) {fl_graphics_driver->color(c); } // select indexed color /** for back compatibility - use fl_color(Fl_Color c) instead */ inline void fl_color(int c) {fl_color((Fl_Color)c);} /** @@ -61,7 +59,7 @@ inline void fl_color(int c) {fl_color((Fl_Color)c);} the foreground is not set for the current window. \param[in] r,g,b color components */ -inline void fl_color(uchar r, uchar g, uchar b) {fl_graphics_driver->color(r,g,b); } // select actual color +inline void fl_color(uchar r, uchar g, uchar b) {fl_graphics_driver->color(r,g,b); } // select actual color /** Returns the last fl_color() that was set. This can be used for state save/restore. @@ -94,7 +92,7 @@ inline void fl_push_clip(int x, int y, int w, int h) {fl_graphics_driver->push_c inline void fl_push_no_clip() {fl_graphics_driver->push_no_clip(); } /** Restores the previous clip region. - + You must call fl_pop_clip() once for every time you call fl_push_clip(). Unpredictable results may occur if the clip stack is not empty when you return to FLTK. @@ -137,9 +135,9 @@ inline int fl_not_clipped(int x, int y, int w, int h) { int X = 0, Y = 0, W = 0, H = 0; int ret = fl_clip_box(x(), y(), w(), h(), X, Y, W, H); if (ret == 0) { // entire group is visible (not clipped) - // full drawing code here + // full drawing code here } else { // parts of this group are clipped - // partial drawing code here (uses X, Y, W, and H to test) + // partial drawing code here (uses X, Y, W, and H to test) } } \endcode @@ -171,7 +169,7 @@ inline void fl_restore_clip() { /** Replaces the top of the clipping stack with a clipping region of any shape. - + Fl_Region is an operating system specific type. \note This function is mostly intended for internal use by the FLTK library when drawing to the display. @@ -200,7 +198,7 @@ inline void fl_point(int x, int y) { fl_graphics_driver->point(x,y); } Sets how to draw lines (the "pen"). If you change this it is your responsibility to set it back to the default using \c fl_line_style(0). - + \param[in] style A bitmask which is a bitwise-OR of a line style, a cap style, and a join style. If you don't specify a dash type you will get a solid line. If you don't specify a cap or join type @@ -215,7 +213,7 @@ inline void fl_point(int x, int y) { fl_graphics_driver->point(x,y); } with a zero-length entry. A \c NULL pointer or a zero-length array results in a solid line. Odd array sizes are not supported and result in undefined behavior. - + \note Because of how line styles are implemented on Win32 systems, you \e must set the line style \e after setting the drawing color. If you set the color after the line style you will lose @@ -225,26 +223,26 @@ inline void fl_point(int x, int y) { fl_graphics_driver->point(x,y); } */ inline void fl_line_style(int style, int width=0, char* dashes=0) {fl_graphics_driver->line_style(style,width,dashes); } enum { - FL_SOLID = 0, ///< line style: ___________ - FL_DASH = 1, ///< line style: _ _ _ _ _ _ - FL_DOT = 2, ///< line style: . . . . . . - FL_DASHDOT = 3, ///< line style: _ . _ . _ . - FL_DASHDOTDOT = 4, ///< line style: _ . . _ . . + FL_SOLID = 0, ///< line style: ___________ + FL_DASH = 1, ///< line style: _ _ _ _ _ _ + FL_DOT = 2, ///< line style: . . . . . . + FL_DASHDOT = 3, ///< line style: _ . _ . _ . + FL_DASHDOTDOT = 4, ///< line style: _ . . _ . . - FL_CAP_FLAT = 0x100, ///< cap style: end is flat - FL_CAP_ROUND = 0x200, ///< cap style: end is round - FL_CAP_SQUARE = 0x300, ///< cap style: end wraps end point + FL_CAP_FLAT = 0x100, ///< cap style: end is flat + FL_CAP_ROUND = 0x200, ///< cap style: end is round + FL_CAP_SQUARE = 0x300, ///< cap style: end wraps end point - FL_JOIN_MITER = 0x1000, ///< join style: line join extends to a point - FL_JOIN_ROUND = 0x2000, ///< join style: line join is rounded - FL_JOIN_BEVEL = 0x3000 ///< join style: line join is tidied + FL_JOIN_MITER = 0x1000, ///< join style: line join extends to a point + FL_JOIN_ROUND = 0x2000, ///< join style: line join is rounded + FL_JOIN_BEVEL = 0x3000 ///< join style: line join is tidied }; // rectangles tweaked to exactly fill the pixel rectangle: -/** +/** Draws a 1-pixel border \e inside the given bounding box. - This function is meant for quick drawing of simple boxes. The behavior is + This function is meant for quick drawing of simple boxes. The behavior is undefined for line widths that are not 1. */ inline void fl_rect(int x, int y, int w, int h) { fl_graphics_driver->rect(x,y,w,h); } @@ -287,7 +285,7 @@ inline void fl_loop(int x, int y, int x1, int y1, int x2, int y2) {fl_graphics_d /** Outlines a 4-sided polygon with lines */ -inline void fl_loop(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) +inline void fl_loop(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) {fl_graphics_driver->loop(x,y,x1,y1,x2,y2,x3,y3); } // filled polygons @@ -298,7 +296,7 @@ inline void fl_polygon(int x, int y, int x1, int y1, int x2, int y2) {fl_graphic /** Fills a 4-sided polygon. The polygon must be convex. */ -inline void fl_polygon(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) +inline void fl_polygon(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) { fl_graphics_driver->polygon(x,y,x1,y1,x2,y2,x3,y3); } // draw rectilinear lines, horizontal segment first: @@ -334,21 +332,21 @@ inline void fl_yxline(int x, int y, int y1, int x2, int y3) {fl_graphics_driver- // circular lines and pie slices (code in fl_arci.C): /** Draw ellipse sections using integer coordinates. - + These functions match the rather limited circle drawing code provided by X and Windows. The advantage over using fl_arc 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. - + If a complete circle is drawn it will fit inside the passed bounding box. The two angles are measured in degrees counter-clockwise from 3 o'clock and are the starting and ending angle of the arc, \p a2 must be greater or equal to \p a1. - + fl_arc() draws a series of lines to approximate the arc. Notice that the integer version of fl_arc() has a different number of arguments than the double version fl_arc(double x, double y, double r, double start, double end) - + \param[in] x,y,w,h bounding box of complete circle \param[in] a1,a2 start and end angles of arc measured in degrees counter-clockwise from 3 o'clock. \p a2 must be greater @@ -360,11 +358,11 @@ inline void fl_yxline(int x, int y, int y1, int x2, int y3) {fl_graphics_driver- inline void fl_arc(int x, int y, int w, int h, double a1, double a2) {fl_graphics_driver->arc(x,y,w,h,a1,a2); } /** Draw filled ellipse sections using integer coordinates. - + Like fl_arc(), but fl_pie() draws a filled-in pie slice. This slice may extend outside the line drawn by fl_arc(); to avoid this use w - 1 and h - 1. - + \param[in] x,y,w,h bounding box of complete circle \param[in] a1,a2 start and end angles of arc measured in degrees counter-clockwise from 3 o'clock. \p a2 must be greater @@ -379,7 +377,7 @@ FL_EXPORT void fl_chord(int x, int y, int w, int h, double a1, double a2); // ny // scalable drawing code (code in fl_vertex.C and fl_arc.C): /** - Saves the current transformation matrix on the stack. + Saves the current transformation matrix on the stack. The maximum depth of the stack is 32. */ inline void fl_push_matrix() { fl_graphics_driver->push_matrix(); } @@ -413,12 +411,12 @@ inline void fl_translate(double x, double y) { fl_graphics_driver->translate(x, inline void fl_rotate(double d) { fl_graphics_driver->rotate(d); } /** Concatenates another transformation onto the current one. - + \param[in] a,b,c,d,x,y transformation matrix elements such that X' = aX + cY + x and Y' = bX +dY + y */ -inline void fl_mult_matrix(double a, double b, double c, double d, double x,double y) - { fl_graphics_driver->mult_matrix(a, b, c, d, x, y); } +inline void fl_mult_matrix(double a, double b, double c, double d, double x,double y) + { fl_graphics_driver->mult_matrix(a, b, c, d, x, y); } /** Starts drawing a list of points. Points are added to the list with fl_vertex() */ @@ -482,7 +480,7 @@ inline void fl_curve(double X0, double Y0, double X1, double Y1, double X2, doub inline void fl_arc(double x, double y, double r, double start, double end) {fl_graphics_driver->arc(x,y,r,start,end); } /** fl_circle(x,y,r) is equivalent to fl_arc(x,y,r,0,360), but may be faster. - + It must be the \e only thing in the path: if you want a circle as part of a complex polygon you must use fl_arc() \param[in] x,y,r center and radius of circle @@ -506,13 +504,13 @@ inline void fl_end_loop() {fl_graphics_driver->end_loop(); } inline void fl_end_polygon() {fl_graphics_driver->end_polygon(); } /** Starts drawing a complex filled polygon. - + The polygon may be concave, may have holes in it, or may be several disconnected pieces. Call fl_gap() to separate loops of the path. - + To outline the polygon, use fl_begin_loop() and replace each fl_gap() with fl_end_loop();fl_begin_loop() pairs. - + \note For portability, you should only draw polygons that appear the same whether "even/odd" or "non-zero" winding rules are used to fill them. @@ -521,7 +519,7 @@ inline void fl_end_polygon() {fl_graphics_driver->end_polygon(); } inline void fl_begin_complex_polygon() {fl_graphics_driver->begin_complex_polygon(); } /** Call fl_gap() to separate loops of the path. - + It is unnecessary but harmless to call fl_gap() before the first vertex, after the last vertex, or several times in a row. */ @@ -558,8 +556,8 @@ inline double fl_transform_dy(double x, double y) {return fl_graphics_driver->tr inline void fl_transformed_vertex(double xf, double yf) {fl_graphics_driver->transformed_vertex(xf,yf); } /** Copy a rectangular area of the given offscreen buffer into the current drawing destination. - \param x,y position where to draw the copied rectangle - \param w,h size of the copied rectangle + \param x,y position where to draw the copied rectangle + \param w,h size of the copied rectangle \param pixmap offscreen buffer containing the rectangle to copy \param srcx,srcy origin in offscreen buffer of rectangle to copy */ @@ -620,7 +618,7 @@ inline double fl_width(const char* txt, int n) {return fl_graphics_driver->width \note if a valid fl_gc is NOT found then it uses the first window gc, or the screen gc if no fltk window is available when called. */ inline double fl_width(unsigned int c) {return fl_graphics_driver->width(c);} -/** Determines the minimum pixel dimensions of a nul-terminated string +/** Determines the minimum pixel dimensions of a nul-terminated string using the current fl_font(). Usage: given a string "txt" drawn using fl_draw(txt, x, y) you would determine @@ -717,9 +715,9 @@ inline void fl_draw(const char* str, int n, int x, int y) {fl_graphics_driver->d rotating \p angle degrees counter-clockwise. \note When using X11 (Unix, Linux, Cygwin et al.) this needs Xft to work. - Under plain X11 (w/o Xft) rotated text is not supported by FLTK. - A warning will be issued to stderr at runtime (only once) if you - use this method with an angle other than 0. + Under plain X11 (w/o Xft) rotated text is not supported by FLTK. + A warning will be issued to stderr at runtime (only once) if you + use this method with an angle other than 0. */ inline void fl_draw(int angle, const char* str, int n, int x, int y) {fl_graphics_driver->draw(angle,str,n,x,y); } /** @@ -747,16 +745,16 @@ FL_EXPORT void fl_draw_box(Fl_Boxtype, int x, int y, int w, int h, Fl_Color); Draws an 8-bit per color RGB or luminance image. \param[in] buf points at the "r" data of the top-left pixel. Color data must be in r,g,b order. - Luminance data is only one gray byte. + Luminance data is only one gray byte. \param[in] X,Y position where to put top-left corner of image \param[in] W,H size of the image \param[in] D delta to add to the pointer between pixels. It may be any value greater than or equal to 1, or it can be - negative to flip the image horizontally + negative to flip the image horizontally \param[in] L delta to add to the pointer between lines (if 0 is passed it uses \p W * \p D), and may be larger than - \p W * \p D to crop data, or negative to flip the - image vertically + \p W * \p D to crop data, or negative to flip the + image vertically It is highly recommended that you put the following code before the first show() of \e any window in your program to get rid of @@ -893,7 +891,3 @@ FL_EXPORT int fl_add_symbol(const char* name, void (*drawit)(Fl_Color), int scal /** @} */ #endif - -// -// End of "$Id$". -// diff --git a/FL/fl_message.H b/FL/fl_message.H index b83f13c67..5932b76b8 100644 --- a/FL/fl_message.H +++ b/FL/fl_message.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Standard message header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,15 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #include "fl_ask.H" - -// -// End of "$Id$". -// diff --git a/FL/fl_show_colormap.H b/FL/fl_show_colormap.H index 49dfaf0fb..97c93dc21 100644 --- a/FL/fl_show_colormap.H +++ b/FL/fl_show_colormap.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Colormap picker header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /** \file @@ -43,7 +41,3 @@ FL_EXPORT Fl_Color fl_show_colormap(Fl_Color oldcol); /** @} */ #endif - -// -// End of "$Id$". -// diff --git a/FL/fl_show_input.H b/FL/fl_show_input.H index 622cb22db..217556f0d 100644 --- a/FL/fl_show_input.H +++ b/FL/fl_show_input.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Standard input dialog header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,15 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #include "fl_ask.H" - -// -// End of "$Id$". -// diff --git a/FL/fl_types.h b/FL/fl_types.h index 631c7250b..c571f3dce 100644 --- a/FL/fl_types.h +++ b/FL/fl_types.h @@ -1,6 +1,4 @@ /* - * "$Id$" - * * Simple "C"-style types for the Fast Light Tool Kit (FLTK). * * Copyright 1998-2020 by Bill Spitzak and others. @@ -11,9 +9,9 @@ * * https://www.fltk.org/COPYING.php * - * Please report all bugs and problems on the following page: + * Please see the following page on how to report bugs and issues: * - * https://www.fltk.org/str.php + * https://www.fltk.org/bugs.php */ /** \file @@ -23,8 +21,8 @@ #ifndef FL_TYPES_H #define FL_TYPES_H -/** \name Miscellaneous */ -/*@{*/ /* group: Miscellaneous */ +/** \name Miscellaneous */ +/*@{*/ /* group: Miscellaneous */ /** unsigned char */ typedef unsigned char uchar; @@ -68,10 +66,6 @@ typedef unsigned int Fl_Shortcut; /** 24-bit Unicode character - upper 8 bits are unused */ typedef unsigned int Fl_Char; -/*@}*/ /* group: Miscellaneous */ +/*@}*/ /* group: Miscellaneous */ #endif - -/* - * End of "$Id$". - */ diff --git a/FL/fl_utf8.h b/FL/fl_utf8.h index faa69e7e8..8cf26900a 100644 --- a/FL/fl_utf8.h +++ b/FL/fl_utf8.h @@ -1,6 +1,4 @@ /* - * "$Id$" - * * Author: Jean-Marc Lienher ( http://oksid.ch ) * Copyright 2000-2010 by O'ksi'D. * Copyright 2016-2020 by Bill Spitzak and others. @@ -11,9 +9,9 @@ * * https://www.fltk.org/COPYING.php * - * Please report all bugs and problems on the following page: + * Please see the following page on how to report bugs and issues: * - * https://www.fltk.org/str.php + * https://www.fltk.org/bugs.php */ /* Merged in some functionality from the fltk-2 version. IMM. @@ -218,7 +216,3 @@ FL_EXPORT char fl_make_path( const char *path ); #endif /* _HAVE_FL_UTF8_HDR_ */ - -/* - * End of "$Id$". - */ diff --git a/FL/forms.H b/FL/forms.H index f14be6ab0..7e08b176b 100644 --- a/FL/forms.H +++ b/FL/forms.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Forms emulation header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2011 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef __FORMS_H__ @@ -38,116 +36,116 @@ typedef Fl_Window FL_FORM; #define TRUE 1 #endif -#define FL_ON 1 -#define FL_OK 1 -#define FL_VALID 1 -#define FL_PREEMPT 1 -#define FL_AUTO 2 -#define FL_WHEN_NEEDED FL_AUTO -#define FL_OFF 0 -#define FL_NONE 0 -#define FL_CANCEL 0 -#define FL_INVALID 0 -#define FL_IGNORE -1 -//#define FL_CLOSE -2 // this variable is never used in FLTK Forms. It is removed becaus it conflicts with the window FL_CLOSE event +#define FL_ON 1 +#define FL_OK 1 +#define FL_VALID 1 +#define FL_PREEMPT 1 +#define FL_AUTO 2 +#define FL_WHEN_NEEDED FL_AUTO +#define FL_OFF 0 +#define FL_NONE 0 +#define FL_CANCEL 0 +#define FL_INVALID 0 +#define FL_IGNORE -1 +//#define FL_CLOSE -2 // this variable is never used in FLTK Forms. It is removed becaus it conflicts with the window FL_CLOSE event -#define FL_LCOL FL_BLACK -#define FL_COL1 FL_GRAY -#define FL_MCOL FL_LIGHT1 -#define FL_LEFT_BCOL FL_LIGHT3 // 53 is better match -#define FL_TOP_BCOL FL_LIGHT2 // 51 -#define FL_BOTTOM_BCOL FL_DARK2 // 40 -#define FL_RIGHT_BCOL FL_DARK3 // 36 -#define FL_INACTIVE FL_INACTIVE_COLOR -#define FL_INACTIVE_COL FL_INACTIVE_COLOR -#define FL_FREE_COL1 FL_FREE_COLOR -#define FL_FREE_COL2 ((Fl_Color)(FL_FREE_COLOR+1)) -#define FL_FREE_COL3 ((Fl_Color)(FL_FREE_COLOR+2)) -#define FL_FREE_COL4 ((Fl_Color)(FL_FREE_COLOR+3)) -#define FL_FREE_COL5 ((Fl_Color)(FL_FREE_COLOR+4)) -#define FL_FREE_COL6 ((Fl_Color)(FL_FREE_COLOR+5)) -#define FL_FREE_COL7 ((Fl_Color)(FL_FREE_COLOR+6)) -#define FL_FREE_COL8 ((Fl_Color)(FL_FREE_COLOR+7)) -#define FL_FREE_COL9 ((Fl_Color)(FL_FREE_COLOR+8)) -#define FL_FREE_COL10 ((Fl_Color)(FL_FREE_COLOR+9)) -#define FL_FREE_COL11 ((Fl_Color)(FL_FREE_COLOR+10)) -#define FL_FREE_COL12 ((Fl_Color)(FL_FREE_COLOR+11)) -#define FL_FREE_COL13 ((Fl_Color)(FL_FREE_COLOR+12)) -#define FL_FREE_COL14 ((Fl_Color)(FL_FREE_COLOR+13)) -#define FL_FREE_COL15 ((Fl_Color)(FL_FREE_COLOR+14)) -#define FL_FREE_COL16 ((Fl_Color)(FL_FREE_COLOR+15)) -#define FL_TOMATO ((Fl_Color)(131)) -#define FL_INDIANRED ((Fl_Color)(164)) -#define FL_SLATEBLUE ((Fl_Color)(195)) -#define FL_DARKGOLD ((Fl_Color)(84)) -#define FL_PALEGREEN ((Fl_Color)(157)) -#define FL_ORCHID ((Fl_Color)(203)) -#define FL_DARKCYAN ((Fl_Color)(189)) -#define FL_DARKTOMATO ((Fl_Color)(113)) -#define FL_WHEAT ((Fl_Color)(174)) +#define FL_LCOL FL_BLACK +#define FL_COL1 FL_GRAY +#define FL_MCOL FL_LIGHT1 +#define FL_LEFT_BCOL FL_LIGHT3 // 53 is better match +#define FL_TOP_BCOL FL_LIGHT2 // 51 +#define FL_BOTTOM_BCOL FL_DARK2 // 40 +#define FL_RIGHT_BCOL FL_DARK3 // 36 +#define FL_INACTIVE FL_INACTIVE_COLOR +#define FL_INACTIVE_COL FL_INACTIVE_COLOR +#define FL_FREE_COL1 FL_FREE_COLOR +#define FL_FREE_COL2 ((Fl_Color)(FL_FREE_COLOR+1)) +#define FL_FREE_COL3 ((Fl_Color)(FL_FREE_COLOR+2)) +#define FL_FREE_COL4 ((Fl_Color)(FL_FREE_COLOR+3)) +#define FL_FREE_COL5 ((Fl_Color)(FL_FREE_COLOR+4)) +#define FL_FREE_COL6 ((Fl_Color)(FL_FREE_COLOR+5)) +#define FL_FREE_COL7 ((Fl_Color)(FL_FREE_COLOR+6)) +#define FL_FREE_COL8 ((Fl_Color)(FL_FREE_COLOR+7)) +#define FL_FREE_COL9 ((Fl_Color)(FL_FREE_COLOR+8)) +#define FL_FREE_COL10 ((Fl_Color)(FL_FREE_COLOR+9)) +#define FL_FREE_COL11 ((Fl_Color)(FL_FREE_COLOR+10)) +#define FL_FREE_COL12 ((Fl_Color)(FL_FREE_COLOR+11)) +#define FL_FREE_COL13 ((Fl_Color)(FL_FREE_COLOR+12)) +#define FL_FREE_COL14 ((Fl_Color)(FL_FREE_COLOR+13)) +#define FL_FREE_COL15 ((Fl_Color)(FL_FREE_COLOR+14)) +#define FL_FREE_COL16 ((Fl_Color)(FL_FREE_COLOR+15)) +#define FL_TOMATO ((Fl_Color)(131)) +#define FL_INDIANRED ((Fl_Color)(164)) +#define FL_SLATEBLUE ((Fl_Color)(195)) +#define FL_DARKGOLD ((Fl_Color)(84)) +#define FL_PALEGREEN ((Fl_Color)(157)) +#define FL_ORCHID ((Fl_Color)(203)) +#define FL_DARKCYAN ((Fl_Color)(189)) +#define FL_DARKTOMATO ((Fl_Color)(113)) +#define FL_WHEAT ((Fl_Color)(174)) -#define FL_ALIGN_BESIDE FL_ALIGN_INSIDE +#define FL_ALIGN_BESIDE FL_ALIGN_INSIDE -#define FL_PUP_TOGGLE 2 // FL_MENU_TOGGLE +#define FL_PUP_TOGGLE 2 // FL_MENU_TOGGLE #define FL_PUP_INACTIVE 1 // FL_MENU_INACTIVE -#define FL_NO_FRAME FL_NO_BOX -#define FL_ROUNDED3D_UPBOX FL_ROUND_UP_BOX -#define FL_ROUNDED3D_DOWNBOX FL_ROUND_DOWN_BOX -#define FL_OVAL3D_UPBOX FL_ROUND_UP_BOX -#define FL_OVAL3D_DOWNBOX FL_ROUND_DOWN_BOX +#define FL_NO_FRAME FL_NO_BOX +#define FL_ROUNDED3D_UPBOX FL_ROUND_UP_BOX +#define FL_ROUNDED3D_DOWNBOX FL_ROUND_DOWN_BOX +#define FL_OVAL3D_UPBOX FL_ROUND_UP_BOX +#define FL_OVAL3D_DOWNBOX FL_ROUND_DOWN_BOX -#define FL_MBUTTON1 1 -#define FL_LEFTMOUSE 1 -#define FL_MBUTTON2 2 -#define FL_MIDDLEMOUSE 2 -#define FL_MBUTTON3 3 -#define FL_RIGHTMOUSE 3 -#define FL_MBUTTON4 4 -#define FL_MBUTTON5 5 +#define FL_MBUTTON1 1 +#define FL_LEFTMOUSE 1 +#define FL_MBUTTON2 2 +#define FL_MIDDLEMOUSE 2 +#define FL_MBUTTON3 3 +#define FL_RIGHTMOUSE 3 +#define FL_MBUTTON4 4 +#define FL_MBUTTON5 5 #define FL_INVALID_STYLE 255 -#define FL_NORMAL_STYLE FL_HELVETICA -#define FL_BOLD_STYLE FL_HELVETICA_BOLD -#define FL_ITALIC_STYLE FL_HELVETICA_ITALIC +#define FL_NORMAL_STYLE FL_HELVETICA +#define FL_BOLD_STYLE FL_HELVETICA_BOLD +#define FL_ITALIC_STYLE FL_HELVETICA_ITALIC #define FL_BOLDITALIC_STYLE FL_HELVETICA_BOLD_ITALIC -#define FL_FIXED_STYLE FL_COURIER +#define FL_FIXED_STYLE FL_COURIER #define FL_FIXEDBOLD_STYLE FL_COURIER_BOLD #define FL_FIXEDITALIC_STYLE FL_COURIER_ITALIC #define FL_FIXEDBOLDITALIC_STYLE FL_COURIER_BOLD_ITALIC -#define FL_TIMES_STYLE FL_TIMES +#define FL_TIMES_STYLE FL_TIMES #define FL_TIMESBOLD_STYLE FL_TIMES_BOLD #define FL_TIMESITALIC_STYLE FL_TIMES_ITALIC #define FL_TIMESBOLDITALIC_STYLE FL_TIMES_BOLD_ITALIC // hacks to change the labeltype() when passed to fl_set_object_lstyle(): -#define FL_SHADOW_STYLE (FL_SHADOW_LABEL<<8) -#define FL_ENGRAVED_STYLE (FL_ENGRAVED_LABEL<<8) -#define FL_EMBOSSED_STYLE (FL_EMBOSSED_LABEL<<0) +#define FL_SHADOW_STYLE (FL_SHADOW_LABEL<<8) +#define FL_ENGRAVED_STYLE (FL_ENGRAVED_LABEL<<8) +#define FL_EMBOSSED_STYLE (FL_EMBOSSED_LABEL<<0) // size values are different from XForms, match older Forms: -#define FL_TINY_SIZE 8 -#define FL_SMALL_SIZE 11 // 10 -//#define FL_NORMAL_SIZE 14 // 12 -#define FL_MEDIUM_SIZE 18 // 14 -#define FL_LARGE_SIZE 24 // 18 -#define FL_HUGE_SIZE 32 // 24 -#define FL_DEFAULT_SIZE FL_SMALL_SIZE -#define FL_TINY_FONT FL_TINY_SIZE -#define FL_SMALL_FONT FL_SMALL_SIZE -#define FL_NORMAL_FONT FL_NORMAL_SIZE -#define FL_MEDIUM_FONT FL_MEDIUM_SIZE -#define FL_LARGE_FONT FL_LARGE_SIZE -#define FL_HUGE_FONT FL_HUGE_SIZE -#define FL_NORMAL_FONT1 FL_SMALL_FONT -#define FL_NORMAL_FONT2 FL_NORMAL_FONT -#define FL_DEFAULT_FONT FL_SMALL_FONT +#define FL_TINY_SIZE 8 +#define FL_SMALL_SIZE 11 // 10 +//#define FL_NORMAL_SIZE 14 // 12 +#define FL_MEDIUM_SIZE 18 // 14 +#define FL_LARGE_SIZE 24 // 18 +#define FL_HUGE_SIZE 32 // 24 +#define FL_DEFAULT_SIZE FL_SMALL_SIZE +#define FL_TINY_FONT FL_TINY_SIZE +#define FL_SMALL_FONT FL_SMALL_SIZE +#define FL_NORMAL_FONT FL_NORMAL_SIZE +#define FL_MEDIUM_FONT FL_MEDIUM_SIZE +#define FL_LARGE_FONT FL_LARGE_SIZE +#define FL_HUGE_FONT FL_HUGE_SIZE +#define FL_NORMAL_FONT1 FL_SMALL_FONT +#define FL_NORMAL_FONT2 FL_NORMAL_FONT +#define FL_DEFAULT_FONT FL_SMALL_FONT -#define FL_RETURN_END_CHANGED FL_WHEN_RELEASE -#define FL_RETURN_CHANGED FL_WHEN_CHANGED -#define FL_RETURN_END FL_WHEN_RELEASE_ALWAYS -#define FL_RETURN_ALWAYS (FL_WHEN_CHANGED|FL_WHEN_NOT_CHANGED) +#define FL_RETURN_END_CHANGED FL_WHEN_RELEASE +#define FL_RETURN_CHANGED FL_WHEN_CHANGED +#define FL_RETURN_END FL_WHEN_RELEASE_ALWAYS +#define FL_RETURN_ALWAYS (FL_WHEN_CHANGED|FL_WHEN_NOT_CHANGED) -#define FL_BOUND_WIDTH 3 +#define FL_BOUND_WIDTH 3 typedef int FL_Coord; typedef int FL_COLOR; @@ -276,31 +274,31 @@ inline void fl_set_form_geometry(Fl_Window* f,int x,int y,int w,int h) { inline void fl_adjust_form_size(Fl_Window*) {} FL_EXPORT void fl_show_form(Fl_Window* f,int p,int b,const char* n); -enum { // "p" argument values: - FL_PLACE_FREE = 0, // make resizable - FL_PLACE_MOUSE = 1, // mouse centered on form - FL_PLACE_CENTER = 2, // center of the screen +enum { // "p" argument values: + FL_PLACE_FREE = 0, // make resizable + FL_PLACE_MOUSE = 1, // mouse centered on form + FL_PLACE_CENTER = 2, // center of the screen FL_PLACE_POSITION = 4,// fixed position, resizable - FL_PLACE_SIZE = 8, // fixed size, normal fltk behavior + FL_PLACE_SIZE = 8, // fixed size, normal fltk behavior FL_PLACE_GEOMETRY =16,// fixed size and position - FL_PLACE_ASPECT = 32, // keep aspect ratio (ignored) + FL_PLACE_ASPECT = 32, // keep aspect ratio (ignored) FL_PLACE_FULLSCREEN=64,// fill screen FL_PLACE_HOTSPOT = 128,// enables hotspot FL_PLACE_ICONIC = 256,// iconic (ignored) - FL_FREE_SIZE=(1<<14), // force resizable - FL_FIX_SIZE =(1<<15) // force off resizable + FL_FREE_SIZE=(1<<14), // force resizable + FL_FIX_SIZE =(1<<15) // force off resizable }; #define FL_PLACE_FREE_CENTER (FL_PLACE_CENTER|FL_FREE_SIZE) #define FL_PLACE_CENTERFREE (FL_PLACE_CENTER|FL_FREE_SIZE) -enum { // "b" arguement values: +enum { // "b" arguement values: FL_NOBORDER = 0, FL_FULLBORDER, FL_TRANSIENT -//FL_MODAL = (1<<8) // not implemented yet in Forms +//FL_MODAL = (1<<8) // not implemented yet in Forms }; inline void fl_set_form_hotspot(Fl_Window* w,int x,int y) {w->hotspot(x,y);} inline void fl_set_form_hotobject(Fl_Window* w, Fl_Widget* o) {w->hotspot(o);} -extern FL_EXPORT char fl_flip; // in forms.C +extern FL_EXPORT char fl_flip; // in forms.C inline void fl_flip_yorigin() {fl_flip = 1;} #define fl_prepare_form_window fl_show_form @@ -346,8 +344,8 @@ inline void fl_drw_frame(Fl_Boxtype b,int x,int y,int w,int h,Fl_Color bgc,int=3 fl_draw_box(b,x,y,w,h,bgc);} inline void fl_drw_text(Fl_Align align, int x, int y, int w, int h, - Fl_Color fgcolor, int size, Fl_Font style, - const char* s) { + Fl_Color fgcolor, int size, Fl_Font style, + const char* s) { fl_font(style,size); fl_color(fgcolor); fl_draw(s,x,y,w,h,align); @@ -355,8 +353,8 @@ inline void fl_drw_text(Fl_Align align, int x, int y, int w, int h, // this does not work except for CENTER... inline void fl_drw_text_beside(Fl_Align align, int x, int y, int w, int h, - Fl_Color fgcolor, int size, Fl_Font style, - const char* s) { + Fl_Color fgcolor, int size, Fl_Font style, + const char* s) { fl_font(style,size); fl_color(fgcolor); fl_draw(s,x,y,w,h,align); @@ -465,13 +463,13 @@ inline int fl_isdisplayed_browser_line(Fl_Widget* o, int n) { #include "Fl_Button.H" -#define FL_NORMAL_BUTTON 0 -#define FL_TOUCH_BUTTON 4 -#define FL_INOUT_BUTTON 5 -#define FL_RETURN_BUTTON 6 -#define FL_HIDDEN_RET_BUTTON 7 -#define FL_PUSH_BUTTON FL_TOGGLE_BUTTON -#define FL_MENU_BUTTON 9 +#define FL_NORMAL_BUTTON 0 +#define FL_TOUCH_BUTTON 4 +#define FL_INOUT_BUTTON 5 +#define FL_RETURN_BUTTON 6 +#define FL_HIDDEN_RET_BUTTON 7 +#define FL_PUSH_BUTTON FL_TOGGLE_BUTTON +#define FL_MENU_BUTTON 9 FL_EXPORT Fl_Button* fl_add_button(uchar t,int x,int y,int w,int h,const char* l); inline int fl_get_button(Fl_Widget* b) {return ((Fl_Button*)b)->value();} @@ -528,9 +526,9 @@ inline void fl_set_chart_lcolor(Fl_Widget* o, Fl_Color v) { #include "Fl_Choice.H" -#define FL_NORMAL_CHOICE 0 -#define FL_NORMAL_CHOICE2 0 -#define FL_DROPLIST_CHOICE 0 +#define FL_NORMAL_CHOICE 0 +#define FL_NORMAL_CHOICE2 0 +#define FL_DROPLIST_CHOICE 0 forms_constructor(Fl_Choice, fl_add_choice) inline void fl_clear_choice(Fl_Widget* o) { @@ -631,7 +629,7 @@ inline Fl_Widget* fl_add_labelframe(Fl_Boxtype i,int x,int y,int w,int h,const c #include "Fl_Free.H" inline Fl_Free* fl_add_free(int t,double x,double y,double w,double h,const char* l, - FL_HANDLEPTR hdl) { + FL_HANDLEPTR hdl) { return (Fl_Free*)(fl_add_new( new Fl_Free(t,int(x),int(y),int(w),int(h),l,hdl))); } @@ -657,7 +655,7 @@ FL_EXPORT int fl_show_choice( inline void fl_set_goodies_font(Fl_Font a, Fl_Fontsize b) {fl_message_font(a,b);} #define fl_show_messages fl_message inline int fl_show_choices(const char* c,int n,const char* b1,const char* b2, - const char* b3, int) { + const char* b3, int) { return fl_show_choice(0,c,0,n,b1,b2,b3); } @@ -667,10 +665,10 @@ inline int do_matching(char* a, const char* b) {return fl_filename_match(a,b);} // Forms-compatible file chooser (implementation in fselect.C): FL_EXPORT char* fl_show_file_selector(const char* message,const char* dir, - const char* pat,const char* fname); -FL_EXPORT char* fl_get_directory(); -FL_EXPORT char* fl_get_pattern(); -FL_EXPORT char* fl_get_filename(); + const char* pat,const char* fname); +FL_EXPORT char* fl_get_directory(); +FL_EXPORT char* fl_get_pattern(); +FL_EXPORT char* fl_get_filename(); #include "Fl_Input.H" forms_constructor(Fl_Input, fl_add_input) @@ -705,9 +703,9 @@ inline const char* fl_get_input(Fl_Widget* o) {return ((Fl_Input*)o)->value();} #include "Fl_Menu_Button.H" // types are not implemented, they all act like FL_PUSH_MENU: -#define FL_TOUCH_MENU 0 -#define FL_PUSH_MENU 1 -#define FL_PULLDOWN_MENU 2 +#define FL_TOUCH_MENU 0 +#define FL_PUSH_MENU 1 +#define FL_PULLDOWN_MENU 2 forms_constructor(Fl_Menu_Button, fl_add_menu) inline void fl_clear_menu(Fl_Widget* o) { @@ -739,7 +737,7 @@ inline const char* fl_get_menu_text(Fl_Widget* o) { return ((Fl_Menu_Button*)o)->text();} #include "Fl_Positioner.H" -#define FL_NORMAL_POSITIONER 0 +#define FL_NORMAL_POSITIONER 0 forms_constructor(Fl_Positioner, fl_add_positioner) inline void fl_set_positioner_xvalue(Fl_Widget* o, double v) { ((Fl_Positioner*)o)->xvalue(v);} @@ -807,7 +805,7 @@ protected: void draw(); public: Fl_FormsText(Fl_Boxtype b, int X, int Y, int W, int H, const char* l=0) - : Fl_Widget(X,Y,W,H,l) {box(b); align(FL_ALIGN_LEFT);} + : Fl_Widget(X,Y,W,H,l) {box(b); align(FL_ALIGN_LEFT);} }; #define FL_NORMAL_TEXT FL_NO_BOX forms_constructorb(Fl_FormsText, fl_add_text) @@ -829,8 +827,4 @@ void FL_EXPORT fl_gettime(long* sec, long* usec); inline int fl_double_click() {return Fl::event_clicks();} inline void fl_draw() {Fl::flush();} -#endif /* define __FORMS_H__ */ - -// -// End of "$Id$". -// +#endif /* define __FORMS_H__ */ diff --git a/FL/gl.h b/FL/gl.h index bd0e8b6e6..4579be21a 100644 --- a/FL/gl.h +++ b/FL/gl.h @@ -1,6 +1,4 @@ // -// "$Id$" -// // OpenGL header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2018 by Bill Spitzak and others. @@ -16,11 +14,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // /** @@ -97,7 +95,3 @@ FL_EXPORT int gl_texture_pile_height(); FL_EXPORT void gl_draw_image(const uchar *, int x,int y,int w,int h, int d=3, int ld=0); #endif // !FL_gl_H - -// -// End of "$Id$". -// diff --git a/FL/gl2opengl.h b/FL/gl2opengl.h index b89614e0f..5ba1fef20 100644 --- a/FL/gl2opengl.h +++ b/FL/gl2opengl.h @@ -1,8 +1,8 @@ -/* gl.h +/* gl.h - GL to OpenGL translator. - If you include this, you might be able to port old GL programs. - There are also much better emulators available on the net. + GL to OpenGL translator. + If you include this, you might be able to port old GL programs. + There are also much better emulators available on the net. */ diff --git a/FL/gl_draw.H b/FL/gl_draw.H index 52c57fd4a..dbd17fd58 100644 --- a/FL/gl_draw.H +++ b/FL/gl_draw.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // OpenGL header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,18 +7,13 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #include "gl.h" extern FL_EXPORT void gl_remove_displaylist_fonts(); - - -// -// End of "$Id$". -// diff --git a/FL/glu.h b/FL/glu.h index cce6243fa..de923871b 100644 --- a/FL/glu.h +++ b/FL/glu.h @@ -1,6 +1,4 @@ // -// "$Id$" -// // GLu header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -16,11 +14,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #ifndef FL_glu_H @@ -45,7 +43,3 @@ # endif #endif // !FL_glu_H - -// -// End of "$Id$". -// diff --git a/FL/glut.H b/FL/glut.H index a447f4fe6..3e55bc7bd 100644 --- a/FL/glut.H +++ b/FL/glut.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // GLUT emulation header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2015 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // // Emulation of GLUT using fltk. @@ -37,7 +35,7 @@ # include "Fl.H" # include "Fl_Gl_Window.H" -/** +/** GLUT is emulated using this window class and these static variables (plus several more static variables hidden in glut_compatibility.cxx): */ @@ -67,8 +65,8 @@ public: // so the inline functions work ~Fl_Glut_Window(); }; -extern FL_EXPORT Fl_Glut_Window *glut_window; // the current window -extern FL_EXPORT int glut_menu; // the current menu +extern FL_EXPORT Fl_Glut_Window *glut_window; // the current window +extern FL_EXPORT int glut_menu; // the current menu // function pointers that are not per-window: extern FL_EXPORT void (*glut_idle_function)(); @@ -83,18 +81,18 @@ FL_EXPORT void glutInit(int *argcp, char **argv); // creates first window FL_EXPORT void glutInitDisplayMode(unsigned int mode); // the FL_ symbols have the same value as the GLUT ones: -# define GLUT_RGB FL_RGB -# define GLUT_RGBA FL_RGB -# define GLUT_INDEX FL_INDEX -# define GLUT_SINGLE FL_SINGLE -# define GLUT_DOUBLE FL_DOUBLE -# define GLUT_ACCUM FL_ACCUM -# define GLUT_ALPHA FL_ALPHA -# define GLUT_DEPTH FL_DEPTH -# define GLUT_STENCIL FL_STENCIL +# define GLUT_RGB FL_RGB +# define GLUT_RGBA FL_RGB +# define GLUT_INDEX FL_INDEX +# define GLUT_SINGLE FL_SINGLE +# define GLUT_DOUBLE FL_DOUBLE +# define GLUT_ACCUM FL_ACCUM +# define GLUT_ALPHA FL_ALPHA +# define GLUT_DEPTH FL_DEPTH +# define GLUT_STENCIL FL_STENCIL # define GLUT_MULTISAMPLE FL_MULTISAMPLE -# define GLUT_STEREO FL_STEREO -// # define GLUT_LUMINANCE 512 +# define GLUT_STEREO FL_STEREO +// # define GLUT_LUMINANCE 512 FL_EXPORT void glutInitWindowPosition(int x, int y); @@ -141,29 +139,29 @@ inline void glutFullScreen() {glut_window->fullscreen();} inline void glutSetCursor(Fl_Cursor cursor) {glut_window->cursor(cursor);} // notice that the numeric values are different than glut: -# define GLUT_CURSOR_RIGHT_ARROW ((Fl_Cursor)2) -# define GLUT_CURSOR_LEFT_ARROW ((Fl_Cursor)67) -# define GLUT_CURSOR_INFO FL_CURSOR_HAND -# define GLUT_CURSOR_DESTROY ((Fl_Cursor)45) -# define GLUT_CURSOR_HELP FL_CURSOR_HELP -# define GLUT_CURSOR_CYCLE ((Fl_Cursor)26) -# define GLUT_CURSOR_SPRAY ((Fl_Cursor)63) -# define GLUT_CURSOR_WAIT FL_CURSOR_WAIT -# define GLUT_CURSOR_TEXT FL_CURSOR_INSERT -# define GLUT_CURSOR_CROSSHAIR FL_CURSOR_CROSS -# define GLUT_CURSOR_UP_DOWN FL_CURSOR_NS -# define GLUT_CURSOR_LEFT_RIGHT FL_CURSOR_WE -# define GLUT_CURSOR_TOP_SIDE FL_CURSOR_N -# define GLUT_CURSOR_BOTTOM_SIDE FL_CURSOR_S -# define GLUT_CURSOR_LEFT_SIDE FL_CURSOR_W -# define GLUT_CURSOR_RIGHT_SIDE FL_CURSOR_E -# define GLUT_CURSOR_TOP_LEFT_CORNER FL_CURSOR_NW -# define GLUT_CURSOR_TOP_RIGHT_CORNER FL_CURSOR_NE -# define GLUT_CURSOR_BOTTOM_RIGHT_CORNER FL_CURSOR_SE -# define GLUT_CURSOR_BOTTOM_LEFT_CORNER FL_CURSOR_SW -# define GLUT_CURSOR_INHERIT FL_CURSOR_DEFAULT -# define GLUT_CURSOR_NONE FL_CURSOR_NONE -# define GLUT_CURSOR_FULL_CROSSHAIR FL_CURSOR_CROSS +# define GLUT_CURSOR_RIGHT_ARROW ((Fl_Cursor)2) +# define GLUT_CURSOR_LEFT_ARROW ((Fl_Cursor)67) +# define GLUT_CURSOR_INFO FL_CURSOR_HAND +# define GLUT_CURSOR_DESTROY ((Fl_Cursor)45) +# define GLUT_CURSOR_HELP FL_CURSOR_HELP +# define GLUT_CURSOR_CYCLE ((Fl_Cursor)26) +# define GLUT_CURSOR_SPRAY ((Fl_Cursor)63) +# define GLUT_CURSOR_WAIT FL_CURSOR_WAIT +# define GLUT_CURSOR_TEXT FL_CURSOR_INSERT +# define GLUT_CURSOR_CROSSHAIR FL_CURSOR_CROSS +# define GLUT_CURSOR_UP_DOWN FL_CURSOR_NS +# define GLUT_CURSOR_LEFT_RIGHT FL_CURSOR_WE +# define GLUT_CURSOR_TOP_SIDE FL_CURSOR_N +# define GLUT_CURSOR_BOTTOM_SIDE FL_CURSOR_S +# define GLUT_CURSOR_LEFT_SIDE FL_CURSOR_W +# define GLUT_CURSOR_RIGHT_SIDE FL_CURSOR_E +# define GLUT_CURSOR_TOP_LEFT_CORNER FL_CURSOR_NW +# define GLUT_CURSOR_TOP_RIGHT_CORNER FL_CURSOR_NE +# define GLUT_CURSOR_BOTTOM_RIGHT_CORNER FL_CURSOR_SE +# define GLUT_CURSOR_BOTTOM_LEFT_CORNER FL_CURSOR_SW +# define GLUT_CURSOR_INHERIT FL_CURSOR_DEFAULT +# define GLUT_CURSOR_NONE FL_CURSOR_NONE +# define GLUT_CURSOR_FULL_CROSSHAIR FL_CURSOR_CROSS inline void glutWarpPointer(int, int) { /* do nothing */ } @@ -212,11 +210,11 @@ inline void glutKeyboardFunc(void (*f)(uchar key, int x, int y)) { inline void glutMouseFunc(void (*f)(int b, int state, int x, int y)) { glut_window->mouse = f;} -# define GLUT_LEFT_BUTTON 0 -# define GLUT_MIDDLE_BUTTON 1 -# define GLUT_RIGHT_BUTTON 2 -# define GLUT_DOWN 0 -# define GLUT_UP 1 +# define GLUT_LEFT_BUTTON 0 +# define GLUT_MIDDLE_BUTTON 1 +# define GLUT_RIGHT_BUTTON 2 +# define GLUT_DOWN 0 +# define GLUT_UP 1 inline void glutMotionFunc(void (*f)(int x, int y)) {glut_window->motion= f;} @@ -244,28 +242,28 @@ enum {GLUT_MENU_NOT_IN_USE, GLUT_MENU_IN_USE}; inline void glutSpecialFunc(void (*f)(int key, int x, int y)) { glut_window->special = f;} -# define GLUT_KEY_F1 1 -# define GLUT_KEY_F2 2 -# define GLUT_KEY_F3 3 -# define GLUT_KEY_F4 4 -# define GLUT_KEY_F5 5 -# define GLUT_KEY_F6 6 -# define GLUT_KEY_F7 7 -# define GLUT_KEY_F8 8 -# define GLUT_KEY_F9 9 -# define GLUT_KEY_F10 10 -# define GLUT_KEY_F11 11 -# define GLUT_KEY_F12 12 +# define GLUT_KEY_F1 1 +# define GLUT_KEY_F2 2 +# define GLUT_KEY_F3 3 +# define GLUT_KEY_F4 4 +# define GLUT_KEY_F5 5 +# define GLUT_KEY_F6 6 +# define GLUT_KEY_F7 7 +# define GLUT_KEY_F8 8 +# define GLUT_KEY_F9 9 +# define GLUT_KEY_F10 10 +# define GLUT_KEY_F11 11 +# define GLUT_KEY_F12 12 // WARNING: Different values than GLUT uses: -# define GLUT_KEY_LEFT FL_Left -# define GLUT_KEY_UP FL_Up -# define GLUT_KEY_RIGHT FL_Right -# define GLUT_KEY_DOWN FL_Down -# define GLUT_KEY_PAGE_UP FL_Page_Up -# define GLUT_KEY_PAGE_DOWN FL_Page_Down -# define GLUT_KEY_HOME FL_Home -# define GLUT_KEY_END FL_End -# define GLUT_KEY_INSERT FL_Insert +# define GLUT_KEY_LEFT FL_Left +# define GLUT_KEY_UP FL_Up +# define GLUT_KEY_RIGHT FL_Right +# define GLUT_KEY_DOWN FL_Down +# define GLUT_KEY_PAGE_UP FL_Page_Up +# define GLUT_KEY_PAGE_DOWN FL_Page_Down +# define GLUT_KEY_HOME FL_Home +# define GLUT_KEY_END FL_End +# define GLUT_KEY_INSERT FL_Insert //inline void glutSpaceballMotionFunc(void (*)(int x, int y, int z)); @@ -286,14 +284,14 @@ inline void glutOverlayDisplayFunc(void (*f)()) { //inline void glutWindowStatusFunc(void (*)(int state)); //enum {GLUT_HIDDEN, GLUT_FULLY_RETAINED, GLUT_PARTIALLY_RETAINED, -// GLUT_FULLY_COVERED}; +// GLUT_FULLY_COVERED}; //inline void glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); //inline GLfloat glutGetColor(int ndx, int component); -//#define GLUT_RED 0 -//#define GLUT_GREEN 1 -//#define GLUT_BLUE 2 +//#define GLUT_RED 0 +//#define GLUT_GREEN 1 +//#define GLUT_BLUE 2 //inline void glutCopyColormap(int win); @@ -325,36 +323,36 @@ enum { //GLUT_ELAPSED_TIME, }; -# define GLUT_WINDOW_STENCIL_SIZE GL_STENCIL_BITS -# define GLUT_WINDOW_DEPTH_SIZE GL_DEPTH_BITS -# define GLUT_WINDOW_RED_SIZE GL_RED_BITS -# define GLUT_WINDOW_GREEN_SIZE GL_GREEN_BITS -# define GLUT_WINDOW_BLUE_SIZE GL_BLUE_BITS -# define GLUT_WINDOW_ALPHA_SIZE GL_ALPHA_BITS -# define GLUT_WINDOW_ACCUM_RED_SIZE GL_ACCUM_RED_BITS -# define GLUT_WINDOW_ACCUM_GREEN_SIZE GL_ACCUM_GREEN_BITS -# define GLUT_WINDOW_ACCUM_BLUE_SIZE GL_ACCUM_BLUE_BITS -# define GLUT_WINDOW_ACCUM_ALPHA_SIZE GL_ACCUM_ALPHA_BITS -# define GLUT_WINDOW_DOUBLEBUFFER GL_DOUBLEBUFFER -# define GLUT_WINDOW_RGBA GL_RGBA -# define GLUT_WINDOW_COLORMAP_SIZE GL_INDEX_BITS +# define GLUT_WINDOW_STENCIL_SIZE GL_STENCIL_BITS +# define GLUT_WINDOW_DEPTH_SIZE GL_DEPTH_BITS +# define GLUT_WINDOW_RED_SIZE GL_RED_BITS +# define GLUT_WINDOW_GREEN_SIZE GL_GREEN_BITS +# define GLUT_WINDOW_BLUE_SIZE GL_BLUE_BITS +# define GLUT_WINDOW_ALPHA_SIZE GL_ALPHA_BITS +# define GLUT_WINDOW_ACCUM_RED_SIZE GL_ACCUM_RED_BITS +# define GLUT_WINDOW_ACCUM_GREEN_SIZE GL_ACCUM_GREEN_BITS +# define GLUT_WINDOW_ACCUM_BLUE_SIZE GL_ACCUM_BLUE_BITS +# define GLUT_WINDOW_ACCUM_ALPHA_SIZE GL_ACCUM_ALPHA_BITS +# define GLUT_WINDOW_DOUBLEBUFFER GL_DOUBLEBUFFER +# define GLUT_WINDOW_RGBA GL_RGBA +# define GLUT_WINDOW_COLORMAP_SIZE GL_INDEX_BITS # ifdef GL_SAMPLES_SGIS -# define GLUT_WINDOW_NUM_SAMPLES GL_SAMPLES_SGIS +# define GLUT_WINDOW_NUM_SAMPLES GL_SAMPLES_SGIS # else -# define GLUT_WINDOW_NUM_SAMPLES GLUT_RETURN_ZERO +# define GLUT_WINDOW_NUM_SAMPLES GLUT_RETURN_ZERO # endif -# define GLUT_WINDOW_STEREO GL_STEREO +# define GLUT_WINDOW_STEREO GL_STEREO -# define GLUT_HAS_KEYBOARD 600 -# define GLUT_HAS_MOUSE 601 -# define GLUT_HAS_SPACEBALL 602 -# define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 -# define GLUT_HAS_TABLET 604 -# define GLUT_NUM_MOUSE_BUTTONS 605 -# define GLUT_NUM_SPACEBALL_BUTTONS 606 -# define GLUT_NUM_BUTTON_BOX_BUTTONS 607 -# define GLUT_NUM_DIALS 608 -# define GLUT_NUM_TABLET_BUTTONS 609 +# define GLUT_HAS_KEYBOARD 600 +# define GLUT_HAS_MOUSE 601 +# define GLUT_HAS_SPACEBALL 602 +# define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 +# define GLUT_HAS_TABLET 604 +# define GLUT_NUM_MOUSE_BUTTONS 605 +# define GLUT_NUM_SPACEBALL_BUTTONS 606 +# define GLUT_NUM_BUTTON_BOX_BUTTONS 607 +# define GLUT_NUM_DIALS 608 +# define GLUT_NUM_TABLET_BUTTONS 609 FL_EXPORT int glutDeviceGet(GLenum type); // WARNING: these values are different than GLUT uses: @@ -364,12 +362,12 @@ FL_EXPORT int glutDeviceGet(GLenum type); inline int glutGetModifiers() {return Fl::event_state() & (GLUT_ACTIVE_SHIFT | GLUT_ACTIVE_CTRL | GLUT_ACTIVE_ALT);} FL_EXPORT int glutLayerGet(GLenum); -# define GLUT_OVERLAY_POSSIBLE 800 -//#define GLUT_LAYER_IN_USE 801 -//#define GLUT_HAS_OVERLAY 802 -# define GLUT_TRANSPARENT_INDEX 803 -# define GLUT_NORMAL_DAMAGED 804 -# define GLUT_OVERLAY_DAMAGED 805 +# define GLUT_OVERLAY_POSSIBLE 800 +//#define GLUT_LAYER_IN_USE 801 +//#define GLUT_HAS_OVERLAY 802 +# define GLUT_TRANSPARENT_INDEX 803 +# define GLUT_NORMAL_DAMAGED 804 +# define GLUT_OVERLAY_DAMAGED 805 extern "C" { typedef void (*GLUTproc)(); @@ -378,16 +376,16 @@ typedef void (*GLUTproc)(); FL_EXPORT GLUTproc glutGetProcAddress(const char *procName); //inline int glutVideoResizeGet(GLenum param); -//#define GLUT_VIDEO_RESIZE_POSSIBLE 900 -//#define GLUT_VIDEO_RESIZE_IN_USE 901 -//#define GLUT_VIDEO_RESIZE_X_DELTA 902 -//#define GLUT_VIDEO_RESIZE_Y_DELTA 903 -//#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 +//#define GLUT_VIDEO_RESIZE_POSSIBLE 900 +//#define GLUT_VIDEO_RESIZE_IN_USE 901 +//#define GLUT_VIDEO_RESIZE_X_DELTA 902 +//#define GLUT_VIDEO_RESIZE_Y_DELTA 903 +//#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 //#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 -//#define GLUT_VIDEO_RESIZE_X 906 -//#define GLUT_VIDEO_RESIZE_Y 907 -//#define GLUT_VIDEO_RESIZE_WIDTH 908 -//#define GLUT_VIDEO_RESIZE_HEIGHT 909 +//#define GLUT_VIDEO_RESIZE_X 906 +//#define GLUT_VIDEO_RESIZE_Y 907 +//#define GLUT_VIDEO_RESIZE_WIDTH 908 +//#define GLUT_VIDEO_RESIZE_HEIGHT 909 //inline void glutSetupVideoResizing(); @@ -438,15 +436,15 @@ struct Fl_Glut_StrokeChar { }; struct Fl_Glut_StrokeFont { - char* Name; // The source font name - int Quantity; // Number of chars in font - GLfloat Height; // Height of the characters + char* Name; // The source font name + int Quantity; // Number of chars in font + GLfloat Height; // Height of the characters const Fl_Glut_StrokeChar** Characters;// The characters mapping }; extern FL_EXPORT Fl_Glut_StrokeFont glutStrokeRoman; extern FL_EXPORT Fl_Glut_StrokeFont glutStrokeMonoRoman; -# define GLUT_STROKE_ROMAN (&glutStrokeRoman) -# define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) +# define GLUT_STROKE_ROMAN (&glutStrokeRoman) +# define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) FL_EXPORT void glutStrokeCharacter(void *font, int character); FL_EXPORT GLfloat glutStrokeHeight(void *font); @@ -475,7 +473,3 @@ FL_EXPORT void glutWireIcosahedron(); FL_EXPORT void glutSolidIcosahedron(); #endif // !Fl_glut_H - -// -// End of "$Id$". -// diff --git a/FL/mac.H b/FL/mac.H index 7e4f345ff..588afcfc7 100644 --- a/FL/mac.H +++ b/FL/mac.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Mac header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2018 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // // Do not directly include this file, instead use . It will @@ -142,7 +140,7 @@ public: /** Localizable text for the "About xxx" application menu item */ static const char *about; /** Localizable text for the "Print Front Window" application menu item. - This menu item won't be displayed if Fl_Mac_App_Menu::print + This menu item won't be displayed if Fl_Mac_App_Menu::print is set to an empty string. */ static const char *print; @@ -166,7 +164,3 @@ public: /** @} */ -// -// End of "$Id$". -// - diff --git a/FL/math.h b/FL/math.h index e5182352b..b78357e07 100644 --- a/FL/math.h +++ b/FL/math.h @@ -1,6 +1,4 @@ // -// "$Id$" -// // Math header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2020 by Bill Spitzak and others. @@ -11,23 +9,23 @@ // // https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // // Xcode on macOS includes files by recursing down into directories. // This code catches the cycle and directly includes the required file. -#ifdef fl_math_h_cyclic_include +#ifdef fl_math_h_cyclic_include # include "/usr/include/math.h" #endif #ifndef fl_math_h # define fl_math_h -# define fl_math_h_cyclic_include +# define fl_math_h_cyclic_include # include -# undef fl_math_h_cyclic_include +# undef fl_math_h_cyclic_include # ifndef M_PI # define M_PI 3.14159265358979323846 @@ -50,8 +48,3 @@ inline double copysign(double a, double b) {return b<0 ? -a : a;} # endif // (_WIN32 || CRAY) && !__MINGW32__ #endif // !fl_math_h - - -// -// End of "$Id$". -// diff --git a/FL/names.h b/FL/names.h index 7b4700fbe..9aaef5490 100644 --- a/FL/names.h +++ b/FL/names.h @@ -1,6 +1,4 @@ // -// "$Id$" -// // Event names header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2016 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // // Thanks to Greg Ercolano for this addition. @@ -32,7 +30,7 @@ \b Example: \code - #include // array will be defined here + #include // array will be defined here int MyClass::handle(int e) { printf("Event was %s (%d)\n", fl_eventnames[e], e); // ..resulting output might be e.g. "Event was FL_PUSH (1)".. @@ -82,7 +80,7 @@ const char * const fl_eventnames[] = \b Example: \code - #include // array will be defined here + #include // array will be defined here int MyClass::my_callback(Fl_Widget *w, void*) { int fnum = w->labelfont(); // Resulting output might be e.g. "Label's font is FL_HELVETICA (0)" @@ -115,7 +113,3 @@ const char * const fl_fontnames[] = /** @} */ #endif /* FL_NAMES_H */ - -// -// End of "$Id$". -// diff --git a/FL/platform.H b/FL/platform.H index 834e30f81..7271b1feb 100644 --- a/FL/platform.H +++ b/FL/platform.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Platform header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2020 by Bill Spitzak and others. @@ -11,9 +9,9 @@ // // https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// https://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // // These are FLTK symbols that are necessary or useful for calling @@ -150,7 +148,3 @@ extern FL_EXPORT int fl_parse_color(const char* p, uchar& r, uchar& g, uchar& b) extern FL_EXPORT void fl_open_callback(void (*)(const char *)); #endif // !FL_PLATFORM_H - -// -// End of "$Id$". -// diff --git a/FL/platform_types.h b/FL/platform_types.h index c13448614..9b3fa8431 100644 --- a/FL/platform_types.h +++ b/FL/platform_types.h @@ -1,17 +1,15 @@ /* - * "$Id$" - * * Copyright 2016-2018 by Bill Spitzak and others. * * This library is free software. Distribution and use rights are outlined in * the file "COPYING" which should have been included with this file. If this * file is missing or damaged, see the license at: * - * http://www.fltk.org/COPYING.php + * https://www.fltk.org/COPYING.php * - * Please report all bugs and problems on the following page: + * Please see the following page on how to report bugs and issues: * - * http://www.fltk.org/str.php + * https://www.fltk.org/bugs.php */ /** \file @@ -101,8 +99,8 @@ typedef int FL_SOCKET; #include #include #include -# define FL_COMMAND FL_META -# define FL_CONTROL FL_CTRL +# define FL_COMMAND FL_META +# define FL_CONTROL FL_CTRL #elif defined(_WIN32) typedef struct HBITMAP__ *HBITMAP; @@ -110,7 +108,7 @@ typedef HBITMAP Fl_Offscreen; typedef HBITMAP Fl_Bitmask; typedef struct HRGN__ *Fl_Region; # if defined(_WIN64) && defined(_MSC_VER) -typedef unsigned __int64 FL_SOCKET; /* *FIXME* - FL_SOCKET (see above) */ +typedef unsigned __int64 FL_SOCKET; /* *FIXME* - FL_SOCKET (see above) */ # else typedef int FL_SOCKET; # endif @@ -153,14 +151,10 @@ typedef struct __GLXcontextRec *GLContext; #ifndef __APPLE__ -# define FL_COMMAND FL_CTRL /**< An alias for FL_CTRL on Windows and X11, or FL_META on MacOS X */ -# define FL_CONTROL FL_META /**< An alias for FL_META on Windows and X11, or FL_CTRL on MacOS X */ +# define FL_COMMAND FL_CTRL /**< An alias for FL_CTRL on Windows and X11, or FL_META on MacOS X */ +# define FL_CONTROL FL_META /**< An alias for FL_META on Windows and X11, or FL_CTRL on MacOS X */ #endif #endif /* FL_PLATFORM_TYPES_H */ #endif // FL_DOXYGEN - -/* - * End of "$Id$". - */ diff --git a/FL/win32.H b/FL/win32.H index 94cd44f78..018928d0b 100644 --- a/FL/win32.H +++ b/FL/win32.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // Windows system header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2018 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // // Do not directly include this file, instead use . It will @@ -29,7 +27,7 @@ typedef HWND Window; // this part is included only when compiling the FLTK library or if requested explicitly -#if defined(FL_LIBRARY) || defined(FL_INTERNALS) +#if defined(FL_LIBRARY) || defined(FL_INTERNALS) // In some of the distributions, the gcc header files are missing some stuff: #ifndef LPMINMAXINFO @@ -52,9 +50,9 @@ extern FL_EXPORT void fl_save_dc( HWND w, HDC dc); // most recent fl_color() or fl_rgbcolor() points at one of these: extern FL_EXPORT struct Fl_XMap { - COLORREF rgb; // this should be the type the RGB() macro returns - HPEN pen; // pen, 0 if none created yet - int brush; // ref to solid brush, 0 if none created yet + COLORREF rgb; // this should be the type the RGB() macro returns + HPEN pen; // pen, 0 if none created yet + int brush; // ref to solid brush, 0 if none created yet int pwidth; // the width of the pen, if present } *fl_current_xmap; inline COLORREF fl_RGB() {return fl_current_xmap->rgb;} @@ -69,7 +67,3 @@ extern FL_EXPORT HDC fl_GetDC(Window); extern FL_EXPORT HDC fl_makeDC(HBITMAP); #endif // FL_DOXYGEN - -// -// End of "$Id$". -// diff --git a/FL/x.H b/FL/x.H index 4fb9873a1..92bc2c8a0 100644 --- a/FL/x.H +++ b/FL/x.H @@ -1,6 +1,4 @@ // -// "$Id$" -// // *Deprecated* platform header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2018 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // // IMPORTANT: This file is deprecated since FLTK 1.4.0. DO NOT include it. @@ -22,11 +20,7 @@ // Please #include instead if you really need it. See // documentation in FL/platform.H to decide whether you need that file. -#if !defined(Fl_X_H) && !defined(FL_DOXYGEN) +#if !defined(Fl_X_H) && !defined(FL_DOXYGEN) # define Fl_X_H # include #endif // !Fl_X_H - -// -// End of "$Id$". -// diff --git a/GL/glut.h b/GL/glut.h index da03916ef..6d5ae2ac1 100644 --- a/GL/glut.h +++ b/GL/glut.h @@ -1,6 +1,4 @@ // -// "$Id$" -// // GLUT compatibility header for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2010 by Bill Spitzak and others. @@ -9,15 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #include - -// -// End of "$Id$". -// diff --git a/Makefile b/Makefile index cfd97b46d..386d91219 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,4 @@ # -# "$Id$" -# # Top-level makefile for the Fast Light Tool Kit (FLTK). # # Copyright 1998-2010 by Bill Spitzak and others. @@ -9,11 +7,11 @@ # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # -# http://www.fltk.org/COPYING.php +# https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# http://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # include makeinclude @@ -133,8 +131,3 @@ clang: scan-build -V -k -o `pwd`/clang $(MAKE) $(MFLAGS) clean all clang-changes: scan-build -V -k -o `pwd`/clang $(MAKE) $(MFLAGS) all - - -# -# End of "$Id$". -# diff --git a/README.Android.md b/README.Android.md index f9854045a..4dfba17df 100644 --- a/README.Android.md +++ b/README.Android.md @@ -26,7 +26,7 @@ device, you are ready to install FLTK. Build FLTK for your native platform first using CMake. AndroidStudio will need a native version of the user interface design tool _Fluid_. -The following example is for the _Xcode_ IDE on _macOS_. The same should work for +The following example is for the _Xcode_ IDE on _macOS_. The same should work for other IDEs and Makefiles on other platforms that run _AndroidStudio_. ```bash @@ -43,8 +43,8 @@ cmake -G "Unix Makefiles" \ -D OPTION_CREATE_ANDROID_STUDIO_IDE=On \ ../.. ``` -Note the last option, `-D OPTION_CREATE_ANDROID_STUDIO_IDE=On`. This option will -create the file needed to create an FLTK demo project in +Note the last option, `-D OPTION_CREATE_ANDROID_STUDIO_IDE=On`. This option will +create the file needed to create an FLTK demo project in `fltk-1.4.git/build/Xcode/AndroidStudio`. - open the `build/Xcode/AndroidStudio/` directory as a project in AndroidStudio3 diff --git a/README.CMake.txt b/README.CMake.txt index 370e97e43..57c0cc9b0 100644 --- a/README.CMake.txt +++ b/README.CMake.txt @@ -5,8 +5,8 @@ README.CMake.txt - Building and using FLTK with CMake CONTENTS ========== - 1 Introduction to CMake - 2 Using CMake to Build FLTK + 1 Introduction to CMake + 2 Using CMake to Build FLTK 2.1 Prerequisites 2.2 Options 2.3 Building under Linux with Unix Makefiles @@ -14,10 +14,10 @@ README.CMake.txt - Building and using FLTK with CMake 2.5 Building under Windows with MinGW using Makefiles 2.6 Building under MacOS with Xcode 2.7 Crosscompiling - 3 Using CMake with FLTK + 3 Using CMake with FLTK 3.1 Library Names 3.2 Using Fluid Files - 4 Document History + 4 Document History 1. INTRODUCTION TO CMAKE @@ -246,15 +246,15 @@ in the GUI (cmake-gui). to where you've extracted an fltk distribution tar file (or snapshot tar file), and run the following commands: - cd C:\fltk-1.4.x <-- change to your FLTK directory - mkdir build <-- create an empty directory + cd C:\fltk-1.4.x <-- change to your FLTK directory + mkdir build <-- create an empty directory cd build cmake -G "Visual Studio 7" -D CMAKE_BUILD_TYPE=Release .. IMPORTANT: The trailing ".." on the cmake command must be specified (it is NOT an ellipsis). ^^^^^^^^^^^^^^^^^ - This will create the file FLTK.sln in the current 'build' directory. + This will create the file FLTK.sln in the current 'build' directory. 3) Open Visual Studio 7, and choose File -> Open -> Project, and pick the "FLTK.sln" created by step #2 in the 'build' directory. @@ -267,7 +267,7 @@ in the GUI (cmake-gui). 5) In the "Solution Explorer", right click on: - Solution 'FLTK' (## projects) + Solution 'FLTK' (## projects) ..and in the popup menu, choose "Build Solution" @@ -275,25 +275,25 @@ in the GUI (cmake-gui). The test programs (*.exe) can be found in e.g. - Release: C:\fltk-1.4.x\build\bin\examples\release\*.exe - Debug: C:\fltk-1.4.x\build\bin\examples\debug\*.exe + Release: C:\fltk-1.4.x\build\bin\examples\release\*.exe + Debug: C:\fltk-1.4.x\build\bin\examples\debug\*.exe ..and the FLTK include files (*.H & *.h) your own apps can compile with can be found in: - Release & Debug: C:\fltk-1.4.x\build\FL - *and* [1] in: C:\fltk-1.4.x\FL + Release & Debug: C:\fltk-1.4.x\build\FL + *and* [1] in: C:\fltk-1.4.x\FL ..and the FLTK library files (*.lib) which your own apps can link with can be found in: - Release: C:\fltk-1.4.x\build\lib\release\*.lib - Debug: C:\fltk-1.4.x\build\lib\debug\*.lib + Release: C:\fltk-1.4.x\build\lib\release\*.lib + Debug: C:\fltk-1.4.x\build\lib\debug\*.lib [1] If you want to build your own FLTK application directly using - the build directories (i.e. without "installation") you need - to include both the build tree (first) and then the FLTK source - tree in the compiler's header search list. + the build directories (i.e. without "installation") you need + to include both the build tree (first) and then the FLTK source + tree in the compiler's header search list. 2.5 Building under Windows with MinGW using Makefiles @@ -540,8 +540,8 @@ include_directories(${FLTK_INCLUDE_DIRS}) #run fluid -c to generate CubeViewUI.cxx and CubeViewUI.h files add_custom_command( - OUTPUT "CubeViewUI.cxx" "CubeViewUI.h" - COMMAND fluid -c ${CMAKE_CURRENT_SOURCE_DIR}/CubeViewUI.fl + OUTPUT "CubeViewUI.cxx" "CubeViewUI.h" + COMMAND fluid -c ${CMAKE_CURRENT_SOURCE_DIR}/CubeViewUI.fl ) include_directories(${CMAKE_CURRENT_BINARY_DIR}) diff --git a/README.Cairo.txt b/README.Cairo.txt index 3e94196ea..d4b519d2a 100644 --- a/README.Cairo.txt +++ b/README.Cairo.txt @@ -139,21 +139,21 @@ on the various supported operating systems. ..and then rebuild FLTK: make distclean - ./configure --enable-cairo - make + ./configure --enable-cairo + make If you get this error: [..] - Linking cairo_test... - /usr/bin/ld: cannot find -lpixman-1 - collect2: ld returned 1 exit status - make[1]: *** [cairo_test] Error 1 + Linking cairo_test... + /usr/bin/ld: cannot find -lpixman-1 + collect2: ld returned 1 exit status + make[1]: *** [cairo_test] Error 1 ..remove "-lpixman-1" from FLTK's makeinclude file, i.e. change this line: - -CAIROLIBS = -lcairo -lpixman-1 - +CAIROLIBS = -lcairo + -CAIROLIBS = -lcairo -lpixman-1 + +CAIROLIBS = -lcairo ..then another 'make' should finish the build without errors. You should be able to then run the test/cairo_test program. @@ -161,7 +161,7 @@ on the various supported operating systems. According to the cairo site, "For Debian and Debian derivatives including Ubuntu" you need to install libcairo2-dev, i.e. - sudo apt-get install libcairo2-dev + sudo apt-get install libcairo2-dev This has been tested and works with Ubuntu 11.10. Note that this also installs libpixman-1-dev, so that dependencies on this should be resolved diff --git a/README.Unix.txt b/README.Unix.txt index 9450a57d3..60d6961db 100644 --- a/README.Unix.txt +++ b/README.Unix.txt @@ -4,7 +4,7 @@ README.Unix.txt - 2010-11-14 - Building FLTK on Unix CONTENTS -========== +========== 1 INTRODUCTION 2 PREREQUISITES @@ -44,7 +44,7 @@ platforms: - gcc command line tools - Code::Blocks - ... - + The Symbol font and the Zapf Dingbats font do not work on X11. This is correct behavior for UTF-8 platforms. @@ -60,7 +60,7 @@ behavior for UTF-8 platforms. Ubuntu Linux can be downloaded here: http://www.ubuntu.com/ - + If you have not done so yet, download and install Ubuntu. Open a shell and install some software: @@ -71,9 +71,9 @@ Open a shell and install some software: sudo apt-get install autoconf sudo apt-get install libx11-dev sudo apt-get install libglu1-mesa-dev - -These two are optional, but highly recommended: - + +These two are optional, but highly recommended: + sudo apt-get install libasound2-dev sudo apt-get install libxft-dev @@ -84,7 +84,7 @@ If you are planning to use the Code::Blocks IDE, also install this I like to use subversion to install the latest FLTK-1.3.release: svn co http://seriss.com/public/fltk/fltk/branches/branch-1.3/ fltk-1.3 - + To update to the latest version, just go into the fltk-1.3 directory and type svn update @@ -96,7 +96,7 @@ To update to the latest version, just go into the fltk-1.3 directory and type Linux Mint 9 can be downloaded here: http://www.linuxmint.com/ - + If you have not done so yet, download and install Linux Mint. Open a shell and install some software: @@ -107,9 +107,9 @@ Open a shell and install some software: sudo apt-get install autoconf sudo apt-get install libx11-dev sudo apt-get install libglu1-mesa-dev - -These two are optional, but highly recommended: - + +These two are optional, but highly recommended: + sudo apt-get install libasound2-dev sudo apt-get install libxft-dev @@ -120,7 +120,7 @@ If you are planning to use the Code::Blocks IDE, also install this I like to use subversion to install the latest FLTK-1.3.release: svn co http://seriss.com/public/fltk/fltk/branches/branch-1.3/ fltk-1.3 - + To update to the latest version, just go into the fltk-1.3 directory and type svn update @@ -134,10 +134,10 @@ FIXME: no FL_SYMBOL font (-*-symbol-*), font 15 (Zapf-Dingbats) Fedora 13 Linux can be downloaded here: http://fedoraproject.org/ - + If you have not done so yet, download and install Fedora. -Open a terminal window and install some software. In Fedora, the default user +Open a terminal window and install some software. In Fedora, the default user has no permission to call "sudo", so we will change user a few times: su root @@ -149,14 +149,14 @@ If you are planning to use the Code::Blocks IDE, also install this yum install codeblocks.i686 (for 64 bit machines) -Don't forget to leave root status (Ctrl-D) before loading FLTK. To install FLTK -for every user, you either have to set root user again, or use "visudo" to add +Don't forget to leave root status (Ctrl-D) before loading FLTK. To install FLTK +for every user, you either have to set root user again, or use "visudo" to add yourself to the "sudo" list. I like to use subversion to install the latest FLTK-1.3.release: svn co http://seriss.com/public/fltk/fltk/branches/branch-1.3/ fltk-1.3 - + To update to the latest version, just go into the fltk-1.3 directory and type svn update @@ -276,11 +276,11 @@ To install GNU autoconf from pkgsrc: Download FLTK from here: - http://www.fltk.org/software.php + https://www.fltk.org/software.php -If you are familiar with "subversion" and like to stay current with your -version, you will find the subversion access parameters at the bottom of that -page. Unpack FLTK into a convenient location. I like to have everything in my +If you are familiar with "subversion" and like to stay current with your +version, you will find the subversion access parameters at the bottom of that +page. Unpack FLTK into a convenient location. I like to have everything in my dev directory: cd @@ -289,7 +289,7 @@ dev directory: mv ~/Downloads/fltk-1.3.xxxx.tar.gz . tar xvfz fltk-1.3.xxxx.tar.gz cd fltk-1.3.xxxx - + 3.2 Configuring FLTK ----------------------- @@ -303,10 +303,10 @@ following: Now configure your FLTK installation: ./configure - -ADVANCED: type "./configure --help" to get a complete list of optional + +ADVANCED: type "./configure --help" to get a complete list of optional configuration parameters. These should be pretty self-explanatory. Some -more details can be found in README. +more details can be found in README. :END_ADVANCED The configuration script will check your machine for the required resources @@ -317,11 +317,11 @@ Review the Configuration Summary, maybe take some notes. 3.3 Building FLTK -------------------- -Now this is easy. Stay in your FLTK source-code directory and type: +Now this is easy. Stay in your FLTK source-code directory and type: make -The entire FLTK toolkit including many test programs will be built for you. No +The entire FLTK toolkit including many test programs will be built for you. No warnings should appear. If some do, please let the FLTK developer team know via the mailing list or the bug reporting template at www.fltk.org . @@ -340,19 +340,19 @@ After a successful build, you can test FLTK's capabilities: 3.5 Installing FLTK ---------------------- -If you did not change any of the configuration settings, FLTK will be installed +If you did not change any of the configuration settings, FLTK will be installed in "/usr/local/include" and "/usr/local/lib" by typing sudo make install - + If you are using the KDE, GNOME or XFCE desktop environments and want to call "fluid" from the desktop menu, you will need to install additional files and icons under "/usr/share" by typing: sudo make install-desktop - -It is possible to install FLTK without superuser privileges by changing the -installation path to a location within the user account by adding the + +It is possible to install FLTK without superuser privileges by changing the +installation path to a location within the user account by adding the "--prefix=PREFIX" parameters to the "./configure" command. @@ -377,16 +377,16 @@ recommend that you add it to the command search path. Code::Blocks is a free and popular C++ IDE in the Linux world. It also runs on OS X and Windows. Configured correctly, it can also cross-compile between -these platforms. This chapter focuses on creating a new FLTK project for Linux, -assuming that FLTK 1.3 was previously built and installed in its default +these platforms. This chapter focuses on creating a new FLTK project for Linux, +assuming that FLTK 1.3 was previously built and installed in its default location from the command line. -If not done yet, install Code::Blocks as described in the Prerequisites chapter -above, or download it from their web site. This description is based on +If not done yet, install Code::Blocks as described in the Prerequisites chapter +above, or download it from their web site. This description is based on version 10.05: http://www.codeblocks.org/ - + Start Code::Blocks. Select File > New > Project. In the "New from template" dialog box, click on "FLTK project" and follow the instructions. @@ -400,7 +400,7 @@ compiler flags, select your project in the tree view, then select the `fltk-config --cxxflags` in front of the second "`". The linker flags are located in the "Linker Settings" tab under "Other Linker -Options". Add the flags to `fltk-config --ldstaticflags` in front of the +Options". Add the flags to `fltk-config --ldstaticflags` in front of the second "`". CodeBlocks can be set up to use fluid to manage modules. @@ -409,24 +409,24 @@ The following info is from mingodad@gmail.com posted on fltk.general 06/17/2013: """ I have these settings in codeblocks on linux: - Settings -> + Settings -> Compiler and debugging settings -> - Other settings -> - Advanced options: + Other settings -> + Advanced options: -- Add an extension (in my case "fl") -- On command line macro: - cd $file_dir; fluid -c $file + cd $file_dir; fluid -c $file -- Generated files (to be further compiled): - $file_dir/$file_name.cxx - $file_dir/$file_name.h + $file_dir/$file_name.cxx + $file_dir/$file_name.h Settings -> Environment -> Files extension handling : - Wildcard : *.fl - To open file: Launch an external program - External program: fluid + Wildcard : *.fl + To open file: Launch an external program + External program: fluid With that I can double click on any fluid file I include on a project and it opens with fluid. When I press "run" or "build" codeblocks diff --git a/README.Windows.txt b/README.Windows.txt index d159f8aac..edfdbe56f 100644 --- a/README.Windows.txt +++ b/README.Windows.txt @@ -514,11 +514,11 @@ The following links may be of use: 1. Main Cygwin homepage: - https://www.cygwin.com/ + https://www.cygwin.com/ 2. Main MinGW homepage: - http://www.mingw.org/ + http://www.mingw.org/ In particular look for the MinGW FAQ at this link for a lot of useful MinGW-native development documentation. @@ -526,7 +526,7 @@ The following links may be of use: 3. Check out the FLTK newsgroups at the FLTK homepage: - https://www.fltk.org/ + https://www.fltk.org/ Its archival search facilities are EXTREMELY useful to check back through previous problems with this @@ -534,15 +534,15 @@ The following links may be of use: 4. GNU Compiler Collection (GCC) compiler homepage: - https://gcc.gnu.org/ + https://gcc.gnu.org/ 5. OpenGL page - for OpenGL and GLUT libs - https://www.opengl.org/ + https://www.opengl.org/ 6. CMake homepage: - https://cmake.org/ + https://cmake.org/ Note: all links in this document have been checked on Mar 21, 2020. We can't guarantee that these links are still valid any time later. diff --git a/README.abi-version.txt b/README.abi-version.txt index bf9d54f9f..19a42e99d 100644 --- a/README.abi-version.txt +++ b/README.abi-version.txt @@ -12,13 +12,13 @@ Since FLTK 1.3.1 the FLTK team began to introduce ABI-breaking features wrapped in so-called ABI guards in the library code, e.g. #if FL_ABI_VERSION >= 10401 - ... new, ABI breaking code ... + ... new, ABI breaking code ... #else - ... old, ABI preserving code ... + ... old, ABI preserving code ... #endif - Note: In FLTK 1.3.x this preprocessor macro was named FLTK_ABI_VERSION. - In FLTK 1.4.0 FLTK_ABI_VERSION was renamed to FL_ABI_VERSION. + Note: In FLTK 1.3.x this preprocessor macro was named FLTK_ABI_VERSION. + In FLTK 1.4.0 FLTK_ABI_VERSION was renamed to FL_ABI_VERSION. This documentation is written for FLTK 1.4.x, but it applies to all later versions as well. Replace the version numbers given here with the version @@ -53,9 +53,9 @@ the version number. ---------------------------------------------------------- Run - make clean - ./configure --with-abiversion=10401 - make + make clean + ./configure --with-abiversion=10401 + make This will generate FL/abi-version.h and build FLTK as usual. @@ -72,11 +72,11 @@ the version number. ABI version, use ccmake, cmake-gui, or run cmake with the following command: - cmake -D OPTION_ABI_VERSION:STRING=10401 /path/to/fltk + cmake -D OPTION_ABI_VERSION:STRING=10401 /path/to/fltk Then execute - make + make You can define OPTION_ABI_VERSION to the required version number using one of the graphical CMake tools. diff --git a/README.bundled-libs.txt b/README.bundled-libs.txt index f47ccee30..f1cb3a766 100644 --- a/README.bundled-libs.txt +++ b/README.bundled-libs.txt @@ -14,7 +14,7 @@ Current versions of bundled libraries: ** work in progress -- not yet completely upgraded ** - Library Version Release date FLTK Version + Library Version Release date FLTK Version -------------------------------------------------------------------------- jpeg jpeg-9c 2018-01-14 1.4.0 nanosvg f31098fa85 [1] 2019-05-23 1.4.0 @@ -23,7 +23,7 @@ Current versions of bundled libraries: Previous versions of bundled libraries: - Library Version Release date FLTK Version + Library Version Release date FLTK Version ------------------------------------------------------------------ nanosvg ce81a6577c [1] 2018-07-01 1.4.0 jpeg jpeg-9a 2014-01-19 1.3.5 diff --git a/README.macOS.md b/README.macOS.md index c804e5a72..6cef26876 100644 --- a/README.macOS.md +++ b/README.macOS.md @@ -33,7 +33,7 @@ _README.macOS.md - Building FLTK under Apple macOS_ * [Testing FLTK](#bam_test) * [Installing FLTK](#bam_install) * [Creating new Projects](#bam_new_projects) - + * [Make an Application Launchable by Dropping Files on its Icon](#dropstart) * [Document History](#doc_history) @@ -67,16 +67,16 @@ This option requires an Apple ID and the Administrator password. In order to build FLTK, you need to install _CMake_ and _Xcode_. -_Xcode_ is Apple's IDE (Integrated Devloper Environment) and can be downloaded via the +_Xcode_ is Apple's IDE (Integrated Devloper Environment) and can be downloaded via the [App Store](https://itunes.apple.com/de/app/xcode/id497799835?l=en&mt=12). You will need an Apple ID and administrator right for this. Installing _Xcode_ needs little to no user input, but will likely take well over an hour. -"CMake is used to control the software compilation process using simple platform and +"CMake is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice." -Please download and install the Mac OS X version of _CMake_ from +Please download and install the Mac OS X version of _CMake_ from [www.cmake.org](https://cmake.org/download/). Download the .dmg file, click it, and when the Finder window opens, drag the _CMake_ icon into the Applications folder. @@ -88,24 +88,24 @@ You will need to clone the repository to check out the source code onto your mac has the great benefit that the source code can be updated later simply by telling _git_ to _pull_ the newest release. -If you want to use _Xcode_ to clone the FLTK GitHub repository, you will have to give _Xcode_ +If you want to use _Xcode_ to clone the FLTK GitHub repository, you will have to give _Xcode_ access to your GitHub Account in the _Xcode_ preferences. If you don't have a GitHub -account, or don't want to share your credentials with _Xcode_, you can use still the command -line `git clone https://github.com/fltk/fltk.git fltk-1.4.git` +account, or don't want to share your credentials with _Xcode_, you can use still the command +line `git clone https://github.com/fltk/fltk.git fltk-1.4.git` to ceck out the repo. -Start _Xcode_. Select `Source Control >> Clone...` in the main menu. +Start _Xcode_. Select `Source Control >> Clone...` in the main menu. -A dialog box will open with a search field and a list of repositories. Enter `fltk/fltk` in -the search field. A list of matchin repositories appears. The first one should be named `fltk` +A dialog box will open with a search field and a list of repositories. Enter `fltk/fltk` in +the search field. A list of matchin repositories appears. The first one should be named `fltk` and be owned by `fltk`. Select it and click _Clone_. A file chooser appears. Navigate to your home directory. The create a new folder named `dev`. Enter `fltk-1.4.git` in the _Save As:_ field and click _Clone_, then _Done_ in the -previous dialog. +previous dialog. The local copy of your repository can be updated by loading it into _Xcode_ and selecting -`Source Control >> Pull...` in the main menu. +`Source Control >> Pull...` in the main menu. ### Configuring FLTK (CMake, Xcode) @@ -120,7 +120,7 @@ The next input field is marked _Where to build the binaries:_. Click _Browse Bui and navigate to your home folder, then `dev`, then `fltk-1.4.git`, then use _New Folder_ to create a folder named `build`, and inside that, create a folder named `Xcode`. Click _Open_. -The top two input fields should read +The top two input fields should read ``` /Users/your_name/dev/fltk-1.4.git ``` @@ -129,17 +129,17 @@ and /Users/your_name/dev/fltk-1.4.git/build/Xcode ``` -Back in the _CMake_ main window, click _Configure_, select _Xcode_ as the generator and +Back in the _CMake_ main window, click _Configure_, select _Xcode_ as the generator and click _Done_. _CMake_ will now analyse your system and find tools and dependencies. When -done, the upper list field in _CMake_ will show CMAKE, FLTK, and OPTION. Open the OPTION +done, the upper list field in _CMake_ will show CMAKE, FLTK, and OPTION. Open the OPTION field and find the entries OPTION_USE_SYSTEM_LIBJPEG and OPTION_USE_SYSTEM_LIBPNG, and disable both for maximum compatibility with other macOS installation. Finally, click _Generate_ to generate the _Xcode_ IDE file. -You may be wondering why we chose this rather involved way of creating the IDE files instead +You may be wondering why we chose this rather involved way of creating the IDE files instead of just including the IDEs in the repo. Well, we did for the longest time, but creating new IDEs -for every possible platform is quite involved. IDE file formats change, platforms change, and +for every possible platform is quite involved. IDE file formats change, platforms change, and FLTK changes as well, and maintenance of the IDEs had become a nightmare. _CMake_ on the other hand is very smart, knows about platforms and IDEs that we could never support manually, and usually needs to be run only once. Even when updating the FLTK source code later, @@ -149,22 +149,22 @@ _CMake_ will be smart enough to update the build files as well. ### Building FLTK (CMake, Xcode) Now this is easy if all the previous steps were successful. If you are still in _CMake_, just click -_Open Project_ and _CMake_ will launch _XCode_ for you. If not, just launch _XCode_ and +_Open Project_ and _CMake_ will launch _XCode_ for you. If not, just launch _XCode_ and open `Macintosh HDâ© â–¸ â¨Usersâ© â–¸ your_nameâ© â–¸ â¨devâ© â–¸ â¨fltk-1.4.gitâ© â–¸ â¨buildâ© â–¸ â¨Xcodeâ© â–¸ â¨FLTK.xcodeproj`. _XCode_ may or may not ask to Autocreate Schemes. Click _Automatically Create Schemes_. -In _Xcode_, set the 'active Scheme' to 'hello' or any other test program and press CMD+R +In _Xcode_, set the 'active Scheme' to 'hello' or any other test program and press CMD+R to compile and run that application. ### Testing FLTK (CMake, Xcode) -After a successful build, you can test FLTK's capabilities by choosing 'ALL_BUILD' as the -'active Scheme' and pressing CMD+B to build, then choosing 'demo' and pressing CMD+R to -run the demo program. +After a successful build, you can test FLTK's capabilities by choosing 'ALL_BUILD' as the +'active Scheme' and pressing CMD+B to build, then choosing 'demo' and pressing CMD+R to +run the demo program. -TODO: as of Jan 2019, compiling 'demo' will not compile any of the other demo programs. +TODO: as of Jan 2019, compiling 'demo' will not compile any of the other demo programs. We really have to update the dependencies! @@ -176,15 +176,15 @@ permission. ### Creating new Projects (CMake, Xcode) -TODO: we still need to write a simple CMake file for creating a minimal cross platform app. +TODO: we still need to write a simple CMake file for creating a minimal cross platform app. ## How to Build FLTK Using _CMake_ and _make_ This option is best for users who like to develop their apps without using Apple's Xcode IDE, -but like the advantages of _CMake_ over _autoconf_. Users should be comfortable with -using `bash` or `tcsh` in a terminal window. +but like the advantages of _CMake_ over _autoconf_. Users should be comfortable with +using `bash` or `tcsh` in a terminal window. This option requires neither administrator rights, nor an Apple ID. @@ -193,15 +193,15 @@ This option requires neither administrator rights, nor an Apple ID. In order to build FLTK, you need to install _CMake_ and the _Xcode_ command line tools. -"CMake is used to control the software compilation process using simple platform and +"CMake is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice." -Please download and install the Mac OS X version of _CMake_ from +Please download and install the Mac OS X version of _CMake_ from [www.cmake.org](https://cmake.org/download/). Download the .dmg file, click it, and when the Finder window opens, drag the _CMake_ icon into the Applications folder. -We will be using _CMake_ from the command line. Please launch _CMake_ and choose +We will be using _CMake_ from the command line. Please launch _CMake_ and choose `Tools > How to Install for Command Line Use` and follow the instructions in the dialog box. If you have admin right, you can also use @@ -209,14 +209,14 @@ in the dialog box. If you have admin right, you can also use sudo ln -s /Applications/CMake.app/Contents/bin/cmake /usr/local/bin/cmake ``` -Installing the _Xcode_ command line tools is pretty straight forward. Just enter this +Installing the _Xcode_ command line tools is pretty straight forward. Just enter this in your shell and follow the dialogs: ```bash xcode-select --install ``` -On older versions of macOS, you will have to install _Xcode_ from the +On older versions of macOS, you will have to install _Xcode_ from the [App Store](https://itunes.apple.com/de/app/xcode/id497799835?l=en&mt=12) and then install the command line tools from within _Xcode_. @@ -253,15 +253,15 @@ cmake -G "Unix Makefiles" \ _CMake_ runs a number of tests to find external headers, libraries, and tools. The configuration summary should not show any errors. You can now continue to build FLTK. -For the advanced user, there are a few more optinons to the _CMake_ setup. Type -`cmake -L ../..` to get a complete list of options. These should be pretty -self-explanatory. Some more details can be found in +For the advanced user, there are a few more optinons to the _CMake_ setup. Type +`cmake -L ../..` to get a complete list of options. These should be pretty +self-explanatory. Some more details can be found in [online documentation](https://www.fltk.org/doc-1.4/intro.html#intro_unix). ### Building FLTK (CMake, make) -Now this is easy if all the previous steps were successful. Stay in your `build/Makefiles` +Now this is easy if all the previous steps were successful. Stay in your `build/Makefiles` directory and type: ```bash @@ -308,7 +308,7 @@ file is: fltk-config --compile myProgram.cxx ``` -`fltk-config` and our user interface designer `fluid` will be installed in +`fltk-config` and our user interface designer `fluid` will be installed in `/usr/local/bin/` by default. I recommend that you add this directory to the shell `PATH` variable. @@ -317,35 +317,35 @@ fltk-config --compile myProgram.cxx ## How to Build FLTK Using _autoconf_ and _make_ This option is best for users who like to develop their apps without using Apple's Xcode IDE -and prefer minimal dependencies of a _Makefile_ over _CMake_. Users should be comfortable -with using `bash` or `tcsh` in a terminal window. +and prefer minimal dependencies of a _Makefile_ over _CMake_. Users should be comfortable +with using `bash` or `tcsh` in a terminal window. This option requires administrator rights, but no Apple ID. ### Prerequisites (autoconf, make) -In order to build FLTK from the command line, you need to install a C++ compiler +In order to build FLTK from the command line, you need to install a C++ compiler environment, `make` and `autoconf`. Installing the _Xcode_ command line tools is the easiest way to get all prerequisites in one simple step. -Launch _Terminal.app_ by pressing Command+Spacebar and typing `Terminal` and pressing _return_. +Launch _Terminal.app_ by pressing Command+Spacebar and typing `Terminal` and pressing _return_. I like to keep the Terminal in the Dock for future use (launch Terminal, right-click or control-click on the Terminal icon that is now in the docking bar, and choose _Options_->_Keep in Dock_). -Installing the _Xcode_ command line tools is pretty straight forward. Just enter this +Installing the _Xcode_ command line tools is pretty straight forward. Just enter this and follow the dialogs: ```bash xcode-select --install ``` -On older versions of macOS, you will have to install _Xcode_ from the +On older versions of macOS, you will have to install _Xcode_ from the [App Store](https://itunes.apple.com/de/app/xcode/id497799835?l=en&mt=12) and then install the command line tools from within _Xcode_. -Apple no longer includes _autoconf_ in the _Xcode_ command line tools. To install +Apple no longer includes _autoconf_ in the _Xcode_ command line tools. To install _autoconf_, we first need to installe _brew_ by typing this rather cryptic command in the shell you will need the root password): @@ -390,7 +390,7 @@ cd fltk-1.4.git Using you shell in the terminal, make sure that you are in the root directory of your FLTK source code tree. -If you are configuring fltk for the first time, you need to instruct FLTK to create some +If you are configuring fltk for the first time, you need to instruct FLTK to create some very basic configuration files. Type: ```bash @@ -408,15 +408,15 @@ and type The configuration script runs a number of tests to find external headers, libraries, and tools. The configuration summary should not show any errors. You can now continue to build FLTK. -For the advanced user, there are a few more optinons to the _configure_ script. Type -`./configure --help` to get a complete list of options. These should be pretty -self-explanatory. Some more details can be found in +For the advanced user, there are a few more optinons to the _configure_ script. Type +`./configure --help` to get a complete list of options. These should be pretty +self-explanatory. Some more details can be found in [online documentation](https://www.fltk.org/doc-1.4/intro.html#intro_unix). ### Building FLTK (autoconf, make) -Now this is easy if all the previous steps were successful. Stay in your FLTK source-code +Now this is easy if all the previous steps were successful. Stay in your FLTK source-code directory and type: ```bash @@ -472,7 +472,7 @@ fltk-config --compile main.cxx ./main ``` -`fltk-config` and our user interface designer `fluid` will be installed in +`fltk-config` and our user interface designer `fluid` will be installed in `/usr/local/bin/` by default. I recommend that you add this directory to the shell `PATH` variable. diff --git a/README.txt b/README.txt index af3292276..2e4c3e8df 100644 --- a/README.txt +++ b/README.txt @@ -28,7 +28,7 @@ ON-LINE DOCUMENTATION starting point. PostScript(tm) and PDF versions of this documentation is also available from the FLTK web site at: - http://www.fltk.org/documentation.php + https://www.fltk.org/documentation.php BUILDING AND INSTALLING FLTK UNDER UNIX AND Mac OS X @@ -54,22 +54,22 @@ BUILDING AND INSTALLING FLTK UNDER UNIX AND Mac OS X You can run configure yourself to get the exact setup you need. Type "./configure ". Options include: - --enable-cygwin - Enable the Cygwin libraries (Windows) - --enable-debug - Enable debugging code & symbols - --disable-gl - Disable OpenGL support - --enable-shared - Enable generation of shared libraries - --enable-threads - Enable multithreading support - --enable-xdbe - Enable the X double-buffer extension - --enable-xft - Enable the Xft library (anti-aliased fonts) + --enable-cygwin - Enable the Cygwin libraries (Windows) + --enable-debug - Enable debugging code & symbols + --disable-gl - Disable OpenGL support + --enable-shared - Enable generation of shared libraries + --enable-threads - Enable multithreading support + --enable-xdbe - Enable the X double-buffer extension + --enable-xft - Enable the Xft library (anti-aliased fonts) - --bindir=/path - Set the location for executables - [default = /usr/local/bin] - --libdir=/path - Set the location for libraries - [default = /usr/local/lib] - --includedir=/path - Set the location for include files. - [default = /usr/local/include] - --prefix=/dir - Set the directory prefix for files - [default = /usr/local] + --bindir=/path - Set the location for executables + [default = /usr/local/bin] + --libdir=/path - Set the location for libraries + [default = /usr/local/lib] + --includedir=/path - Set the location for include files. + [default = /usr/local/include] + --prefix=/dir - Set the directory prefix for files + [default = /usr/local] When the configure script is done you can just run the "make" command. This will build the library, FLUID tool, and @@ -119,11 +119,11 @@ BUILDING HTML DOCUMENTATION If you want to build the HTML documentation: - ( cd documentation && make html ) + ( cd documentation && make html ) If you want to build the PDF documentation: - ( cd documentation && make pdf ) + ( cd documentation && make pdf ) FLTK uses doxygen for documentation, so you'll at least need doxygen installed for creating html docs, and LaTeX for creating PDF docs. @@ -133,19 +133,19 @@ INTERNET RESOURCES FLTK is available on the 'net in a bunch of locations: - - WWW: http://www.fltk.org/ - http://www.fltk.org/str.php [for reporting bugs] - http://www.fltk.org/software.php [source code] + - WWW: https://www.fltk.org/ + https://www.fltk.org/bugs.php [for reporting bugs] + https://www.fltk.org/software.php [source code] To join the FLTK mailing list, go the following web page: - http://www.fltk.org/newsgroups.php + https://www.fltk.org/newsgroups.php REPORTING BUGS To report a bug in FLTK, use the form at: - http://www.fltk.org/str.php + https://www.fltk.org/bugs.php For general support and questions, please use the FLTK mailing list at "fltk@fltk.org". @@ -169,5 +169,4 @@ COPYRIGHT outlined in the file "COPYING" which should have been included with this file. If this file is missing or damaged, see the license at: - http://www.fltk.org/COPYING.php - + https://www.fltk.org/COPYING.php diff --git a/cairo/Fl_Cairo.cxx b/cairo/Fl_Cairo.cxx index de70d33df..28c0079f1 100644 --- a/cairo/Fl_Cairo.cxx +++ b/cairo/Fl_Cairo.cxx @@ -1,6 +1,4 @@ // -// "$Id$" -// // Main header file for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2018 by Bill Spitzak and others. @@ -9,11 +7,11 @@ // the file "COPYING" which should have been included with this file. If this // file is missing or damaged, see the license at: // -// http://www.fltk.org/COPYING.php +// https://www.fltk.org/COPYING.php // -// Please report all bugs and problems on the following page: +// Please see the following page on how to report bugs and issues: // -// http://www.fltk.org/str.php +// https://www.fltk.org/bugs.php // #include @@ -37,7 +35,7 @@ #endif // static Fl module initialization : -Fl_Cairo_State Fl::cairo_state_; ///< contains all necessary info for current cairo context mapping +Fl_Cairo_State Fl::cairo_state_; ///< contains all necessary info for current cairo context mapping // Fl cairo features implementation @@ -49,11 +47,11 @@ void Fl_Cairo_State::autolink(bool b) { autolink_ = b; #else Fl::fatal("In Fl::autolink(bool) : Cairo autolink() feature is only " - "available with the enable-cairoext configure option, now quitting."); + "available with the enable-cairoext configure option, now quitting."); #endif } -/** +/** Provides a corresponding cairo context for window \a wi. This is needed in a draw() override if Fl::cairo_autolink_context() returns false, which is the default. @@ -71,16 +69,16 @@ void Fl_Cairo_State::autolink(bool b) { */ cairo_t * Fl::cairo_make_current(Fl_Window* wi) { if (!wi) return NULL; // Precondition - + if (fl_gc==0) { // means remove current cc - Fl::cairo_cc(0); // destroy any previous cc - cairo_state_.window(0); - return 0; + Fl::cairo_cc(0); // destroy any previous cc + cairo_state_.window(0); + return 0; } // don't re-create a context if it's the same gc/window couple if (fl_gc==Fl::cairo_state_.gc() && fl_xid(wi) == (Window) Fl::cairo_state_.window()) - return Fl::cairo_cc(); + return Fl::cairo_cc(); cairo_state_.window(wi); @@ -100,7 +98,7 @@ cairo_t * Fl::cairo_make_current(Fl_Window* wi) { return cairo_ctxt; } -/* +/* Creates transparently a cairo_surface_t object. gc is an HDC context in Windows, a CGContext* in Quartz, and a display on X11 (not used on this platform) @@ -118,7 +116,7 @@ static cairo_surface_t * cairo_create_surface(void * gc, int W, int H) { # endif } -/** +/** Creates a cairo context from a \a gc only, gets its window size or offscreen size if fl_window is null. \note Only available when configure has the --enable-cairo option @@ -129,7 +127,7 @@ cairo_t * Fl::cairo_make_current(void *gc) { //FIXME X11 get W,H // gc will be the window handle here # warning FIXME get W,H for cairo_make_current(void*) -#elif defined(__APPLE_QUARTZ__) +#elif defined(__APPLE_QUARTZ__) if (fl_window) { W = Fl_Window::current()->w(); H = Fl_Window::current()->h(); @@ -144,14 +142,14 @@ cairo_t * Fl::cairo_make_current(void *gc) { # error Cairo is not supported on this platform. #endif if (!gc) { - Fl::cairo_cc(0); - cairo_state_.gc(0); // keep track for next time - return 0; + Fl::cairo_cc(0); + cairo_state_.gc(0); // keep track for next time + return 0; } - if (gc==Fl::cairo_state_.gc() && - fl_window== (Window) Fl::cairo_state_.window() && - cairo_state_.cc()!=0) - return Fl::cairo_cc(); + if (gc==Fl::cairo_state_.gc() && + fl_window== (Window) Fl::cairo_state_.window() && + cairo_state_.cc()!=0) + return Fl::cairo_cc(); cairo_state_.gc(fl_gc); // keep track for next time cairo_surface_t * s = cairo_create_surface(gc, W, H); cairo_t * c = cairo_create(s); @@ -160,15 +158,15 @@ cairo_t * Fl::cairo_make_current(void *gc) { return c; } -/** - Creates a cairo context from a \a gc and its size +/** + Creates a cairo context from a \a gc and its size \note Only available when configure has the --enable-cairo option */ cairo_t * Fl::cairo_make_current(void *gc, int W, int H) { - if (gc==Fl::cairo_state_.gc() && - fl_window== (Window) Fl::cairo_state_.window() && - cairo_state_.cc()!=0) // no need to create a cc, just return that one - return cairo_state_.cc(); + if (gc==Fl::cairo_state_.gc() && + fl_window== (Window) Fl::cairo_state_.window() && + cairo_state_.cc()!=0) // no need to create a cc, just return that one + return cairo_state_.cc(); // we need to (re-)create a fresh cc ... cairo_state_.gc(gc); // keep track for next time @@ -183,7 +181,3 @@ cairo_t * Fl::cairo_make_current(void *gc, int W, int H) { #include FL_EXPORT int fltk_cairo_dummy() { return 1;} #endif // FLTK_HAVE_CAIRO - -// -// End of "$Id$" . -// diff --git a/cairo/Makefile b/cairo/Makefile index 56f08edaa..c933f8504 100644 --- a/cairo/Makefile +++ b/cairo/Makefile @@ -1,6 +1,4 @@ # -# "$Id$" -# # CAIRO library makefile for the Fast Light Toolkit (FLTK). # # Copyright 1997-2009 by Easy Software Products. @@ -9,11 +7,11 @@ # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # -# http://www.fltk.org/COPYING.php +# https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# http://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # # Note: see ../configure.in and/or ../makeinclude for definition of @@ -172,7 +170,3 @@ depend: $(CAIROCPPFILES) mv makedepend.tmp makedepend include makedepend - -# -# End of "$Id$". -# diff --git a/configh.cmake.in b/configh.cmake.in index 8b6a86985..b47774498 100644 --- a/configh.cmake.in +++ b/configh.cmake.in @@ -1,7 +1,5 @@ /* @CONFIG_H@. Generated from @CONFIG_H_IN@ by CMake. */ /* - * "$Id$" - * * Configuration file for the Fast Light Tool Kit (FLTK). * * Copyright 1998-2016 by Bill Spitzak and others. @@ -10,11 +8,11 @@ * the file "COPYING" which should have been included with this file. If this * file is missing or damaged, see the license at: * - * http://www.fltk.org/COPYING.php + * https://www.fltk.org/COPYING.php * - * Please report all bugs and problems on the following page: + * Please see the following page on how to report bugs and issues: * - * http://www.fltk.org/str.php + * https://www.fltk.org/bugs.php */ /* @@ -372,7 +370,3 @@ */ #cmakedefine FL_CFG_NO_FILESYSTEM_SUPPORT 1 - -/* - * End of "$Id$". - */ diff --git a/configh.in b/configh.in index 65d90dc6d..f3133d7a2 100644 --- a/configh.in +++ b/configh.in @@ -1,6 +1,4 @@ /* - * "$Id$" - * * Configuration file for the Fast Light Tool Kit (FLTK). * * Copyright 1998-2016 by Bill Spitzak and others. @@ -9,11 +7,11 @@ * the file "COPYING" which should have been included with this file. If this * file is missing or damaged, see the license at: * - * http://www.fltk.org/COPYING.php + * https://www.fltk.org/COPYING.php * - * Please report all bugs and problems on the following page: + * Please see the following page on how to report bugs and issues: * - * http://www.fltk.org/str.php + * https://www.fltk.org/bugs.php */ /* @@ -366,7 +364,3 @@ */ #undef FL_CFG_NO_FILESYSTEM_SUPPORT - -/* - * End of "$Id$". - */ diff --git a/configure.ac b/configure.ac index 20fcbe05a..921b17814 100644 --- a/configure.ac +++ b/configure.ac @@ -11,9 +11,9 @@ dnl file is missing or damaged, see the license at: dnl dnl https://www.fltk.org/COPYING.php dnl -dnl Please report all bugs and problems on the following page: +dnl Please see the following page on how to report bugs and issues: dnl -dnl https://www.fltk.org/str.php +dnl https://www.fltk.org/bugs.php dnl dnl We need at least autoconf 2.50... @@ -49,10 +49,10 @@ AC_PROG_CXX dnl So --with-archflags option is used during "checking size of long" case $host_os in darwin*) - if test "x$with_archflags" != x ; then - CFLAGS="$CFLAGS $with_archflags" - fi - ;; + if test "x$with_archflags" != x ; then + CFLAGS="$CFLAGS $with_archflags" + fi + ;; esac dnl FLTK library versions... @@ -81,26 +81,26 @@ dnl host_os_gui equals $host_os unless we target Cygwin or Darwin in combination host_os_gui=$host_os case $host_os in cygwin*) - # Handle Cygwin option *first*, before all other tests. - AC_ARG_ENABLE(cygwin, [ --enable-cygwin use the Cygwin libraries [[default=no]]]) - AC_ARG_ENABLE(x11, [ --enable-x11 with Cygwin or Mac OS, use X11 [[default=no]]]) - if test x$enable_cygwin = xyes; then - # we target Cygwin in combination with X11 - if test x$enable_x11 = xyes; then - host_os_gui="X11$host_os" - fi - fi - ;; + # Handle Cygwin option *first*, before all other tests. + AC_ARG_ENABLE(cygwin, [ --enable-cygwin use the Cygwin libraries [[default=no]]]) + AC_ARG_ENABLE(x11, [ --enable-x11 with Cygwin or Mac OS, use X11 [[default=no]]]) + if test x$enable_cygwin = xyes; then + # we target Cygwin in combination with X11 + if test x$enable_x11 = xyes; then + host_os_gui="X11$host_os" + fi + fi + ;; darwin*) - if test x$enable_x11 = xyes; then - host_os_gui="X11" - OPTIM="-U__APPLE__ $OPTIM" - macosversion=`sw_vers -productVersion | cut -d. -f2` - if test $macosversion -ge "13" ; then - CXXFLAGS="$CXXFLAGS -mmacosx-version-min=10.9 -D_LIBCPP_HAS_THREAD_API_PTHREAD" - fi - fi - ;; + if test x$enable_x11 = xyes; then + host_os_gui="X11" + OPTIM="-U__APPLE__ $OPTIM" + macosversion=`sw_vers -productVersion | cut -d. -f2` + if test $macosversion -ge "13" ; then + CXXFLAGS="$CXXFLAGS -mmacosx-version-min=10.9 -D_LIBCPP_HAS_THREAD_API_PTHREAD" + fi + fi + ;; *) ;; esac @@ -140,30 +140,30 @@ AC_ARG_ENABLE(cairoext,[ --enable-cairoext use fltk code instrumentation AC_ARG_ENABLE(cairo, [ --enable-cairo use lib Cairo [[default=no]]]) if test x$enable_cairoext = xyes; then - AC_DEFINE(FLTK_USE_CAIRO) - AC_DEFINE(FLTK_HAVE_CAIRO) - dnl FIXME This part should be fixed so configure do not depend on - dnl we do not rely on pkg-config . - CAIRODIR="cairo" - CAIROFLAGS="`pkg-config --cflags cairo`" - CAIROLIBS="-lcairo -lpixman-1" - CXXFLAGS="$CAIROFLAGS $CXXFLAGS" - LINKFLTKCAIRO="../lib/libfltk_cairo.a" - FLTKCAIROOPTION="-L ../cairo -lfltk_cairo$SHAREDSUFFIX" - LIBS="$CAIROLIBS $LIBS" - dnl $LINKFLTKCAIRO - LINKFLTK+=" $LINKFLTKCAIRO" + AC_DEFINE(FLTK_USE_CAIRO) + AC_DEFINE(FLTK_HAVE_CAIRO) + dnl FIXME This part should be fixed so configure do not depend on + dnl we do not rely on pkg-config . + CAIRODIR="cairo" + CAIROFLAGS="`pkg-config --cflags cairo`" + CAIROLIBS="-lcairo -lpixman-1" + CXXFLAGS="$CAIROFLAGS $CXXFLAGS" + LINKFLTKCAIRO="../lib/libfltk_cairo.a" + FLTKCAIROOPTION="-L ../cairo -lfltk_cairo$SHAREDSUFFIX" + LIBS="$CAIROLIBS $LIBS" + dnl $LINKFLTKCAIRO + LINKFLTK+=" $LINKFLTKCAIRO" else if test x$enable_cairo = xyes; then - AC_DEFINE(FLTK_HAVE_CAIRO) - dnl FIXME This part should be fixed so configure do not depend on - dnl we do not rely on pkg-config . - CAIRODIR="cairo" - CAIROFLAGS="`pkg-config --cflags cairo`" - CAIROLIBS="-lcairo -lpixman-1" - CXXFLAGS="$CAIROFLAGS $CXXFLAGS" - LINKFLTKCAIRO="../lib/libfltk_cairo.a" - FLTKCAIROOPTION="-L ../cairo -lfltk_cairo$SHAREDSUFFIX" + AC_DEFINE(FLTK_HAVE_CAIRO) + dnl FIXME This part should be fixed so configure do not depend on + dnl we do not rely on pkg-config . + CAIRODIR="cairo" + CAIROFLAGS="`pkg-config --cflags cairo`" + CAIROLIBS="-lcairo -lpixman-1" + CXXFLAGS="$CAIROFLAGS $CXXFLAGS" + LINKFLTKCAIRO="../lib/libfltk_cairo.a" + FLTKCAIROOPTION="-L ../cairo -lfltk_cairo$SHAREDSUFFIX" fi fi @@ -228,156 +228,156 @@ if test x$enable_shared = xyes; then FLUID="fluid-shared" case $host_os in - darwin*) - DSONAME="libfltk.$FL_DSO_VERSION.dylib" - FLDSONAME="libfltk_forms.$FL_DSO_VERSION.dylib" - GLDSONAME="libfltk_gl.$FL_DSO_VERSION.dylib" - IMGDSONAME="libfltk_images.$FL_DSO_VERSION.dylib" - CAIRODSONAME="libfltk_cairo.$FL_DSO_VERSION.dylib" - DSOCOMMAND="\$(CXX) \$(ARCHFLAGS) \$(DSOFLAGS) -dynamiclib -lc -o" - ;; + darwin*) + DSONAME="libfltk.$FL_DSO_VERSION.dylib" + FLDSONAME="libfltk_forms.$FL_DSO_VERSION.dylib" + GLDSONAME="libfltk_gl.$FL_DSO_VERSION.dylib" + IMGDSONAME="libfltk_images.$FL_DSO_VERSION.dylib" + CAIRODSONAME="libfltk_cairo.$FL_DSO_VERSION.dylib" + DSOCOMMAND="\$(CXX) \$(ARCHFLAGS) \$(DSOFLAGS) -dynamiclib -lc -o" + ;; - solaris*) - DSONAME="libfltk.so.$FL_DSO_VERSION" - FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" - GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" - IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" - CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -h \$@ \$(LDLIBS) -G $DEBUGFLAG -o" - if test "x$libdir" != "x/usr/lib"; then - DSOLINK="-R$libdir" - fi - ;; - hpux*) - DSONAME="libfltk.sl.$FL_DSO_VERSION" - FLDSONAME="libfltk_forms.sl.$FL_DSO_VERSION" - GLDSONAME="libfltk_gl.sl.$FL_DSO_VERSION" - IMGDSONAME="libfltk_images.sl.$FL_DSO_VERSION" - CAIRODSONAME="libfltk_cairo.sl.$FL_DSO_VERSION" - DSOCOMMAND="ld \$(DSOFLAGS) -b -z +h \$@ $DEBUGFLAG -o" - if test "x$libdir" != "x/usr/lib"; then - DSOLINK="-Wl,-rpath,$libdir" - fi - ;; - irix*) - DSONAME="libfltk.so.$FL_DSO_VERSION" - FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" - GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" - IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" - CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@,-set_version,sgi1.1 \$(LDLIBS) -shared $DEBUGFLAG -o" - if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib32" -a "x$libdir" != "x/usr/lib64"; then - DSOLINK="-Wl,-rpath,$libdir" - fi - ;; - osf*) - DSONAME="libfltk.so.$FL_DSO_VERSION" - FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" - GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" - IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" - CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o" - if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib32"; then - DSOLINK="-Wl,-rpath,$libdir" - fi - ;; - linux* | *bsd*) - DSONAME="libfltk.so.$FL_DSO_VERSION" - FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" - GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" - IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" - CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared -fPIC $DEBUGFLAG -o" + solaris*) + DSONAME="libfltk.so.$FL_DSO_VERSION" + FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" + GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" + IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" + CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" + DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -h \$@ \$(LDLIBS) -G $DEBUGFLAG -o" + if test "x$libdir" != "x/usr/lib"; then + DSOLINK="-R$libdir" + fi + ;; + hpux*) + DSONAME="libfltk.sl.$FL_DSO_VERSION" + FLDSONAME="libfltk_forms.sl.$FL_DSO_VERSION" + GLDSONAME="libfltk_gl.sl.$FL_DSO_VERSION" + IMGDSONAME="libfltk_images.sl.$FL_DSO_VERSION" + CAIRODSONAME="libfltk_cairo.sl.$FL_DSO_VERSION" + DSOCOMMAND="ld \$(DSOFLAGS) -b -z +h \$@ $DEBUGFLAG -o" + if test "x$libdir" != "x/usr/lib"; then + DSOLINK="-Wl,-rpath,$libdir" + fi + ;; + irix*) + DSONAME="libfltk.so.$FL_DSO_VERSION" + FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" + GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" + IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" + CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" + DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@,-set_version,sgi1.1 \$(LDLIBS) -shared $DEBUGFLAG -o" + if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib32" -a "x$libdir" != "x/usr/lib64"; then + DSOLINK="-Wl,-rpath,$libdir" + fi + ;; + osf*) + DSONAME="libfltk.so.$FL_DSO_VERSION" + FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" + GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" + IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" + CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" + DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o" + if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib32"; then + DSOLINK="-Wl,-rpath,$libdir" + fi + ;; + linux* | *bsd*) + DSONAME="libfltk.so.$FL_DSO_VERSION" + FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" + GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" + IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" + CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" + DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared -fPIC $DEBUGFLAG -o" - # See if the compiler supports -fvisibility... - AC_CACHE_CHECK([if the compiler supports -fvisibility], - ac_cv_cxx_fvisibility, [ - OLDCXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -fvisibility=hidden" - AC_LANG_PUSH([C++]) - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[]], [[]])], - [ac_cv_cxx_fvisibility=yes], - [ac_cv_cxx_fvisibility=no]) - CXXFLAGS="$OLDCXXFLAGS" - AC_LANG_POP([]) - ]) - if test x"$ac_cv_cxx_fvisibility" = xyes; then - OPTIM="$OPTIM -fvisibility=hidden" - fi + # See if the compiler supports -fvisibility... + AC_CACHE_CHECK([if the compiler supports -fvisibility], + ac_cv_cxx_fvisibility, [ + OLDCXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fvisibility=hidden" + AC_LANG_PUSH([C++]) + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[]], [[]])], + [ac_cv_cxx_fvisibility=yes], + [ac_cv_cxx_fvisibility=no]) + CXXFLAGS="$OLDCXXFLAGS" + AC_LANG_POP([]) + ]) + if test x"$ac_cv_cxx_fvisibility" = xyes; then + OPTIM="$OPTIM -fvisibility=hidden" + fi - # See if the compiler supports -fvisibility-inlines-hidden... - AC_CACHE_CHECK([if the compiler supports -fvisibility-inlines-hidden], - ac_cv_cxx_fvisibility_inlines, [ - OLDCXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden" - AC_LANG_PUSH([C++]) - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[]], [[]])], - [ac_cv_cxx_fvisibility_inlines=yes], - [ac_cv_cxx_fvisibility_inlines=no]) - CXXFLAGS="$OLDCXXFLAGS" - AC_LANG_POP([]) - ]) - if test x"$ac_cv_cxx_fvisibility_inlines" = xyes; then - CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden" - fi + # See if the compiler supports -fvisibility-inlines-hidden... + AC_CACHE_CHECK([if the compiler supports -fvisibility-inlines-hidden], + ac_cv_cxx_fvisibility_inlines, [ + OLDCXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden" + AC_LANG_PUSH([C++]) + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[]], [[]])], + [ac_cv_cxx_fvisibility_inlines=yes], + [ac_cv_cxx_fvisibility_inlines=no]) + CXXFLAGS="$OLDCXXFLAGS" + AC_LANG_POP([]) + ]) + if test x"$ac_cv_cxx_fvisibility_inlines" = xyes; then + CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden" + fi - if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib64"; then - DSOLINK="-Wl,-rpath,$libdir" - fi - ;; - aix*) - DSONAME="libfltk_s.a" - FLDSONAME="libfltk_forms_s.a" - GLDSONAME="libfltk_gl_s.a" - IMGDSONAME="libfltk_images_s.a" - CAIRODSONAME="libfltk_cairo_s.a" - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-bexpall,-bM:SRE,-bnoentry -o" - SHAREDSUFFIX="_s" - ;; - cygwin* | mingw*) - PICFLAG=0 - if test x$enable_cygwin != xyes; then - DSONAME="mgwfltknox-$FL_DSO_VERSION.dll" - FLDSONAME="mgwfltknox_forms-$FL_DSO_VERSION.dll" - GLDSONAME="mgwfltknox_gl-$FL_DSO_VERSION.dll" - IMGDSONAME="mgwfltknox_images-$FL_DSO_VERSION.dll" - CAIRODSONAME="mgwfltknox_cairo-$FL_DSO_VERSION.dll" - else - if test x$enable_x11 = xyes; then - DSONAME="cygfltk-$FL_DSO_VERSION.dll" - FLDSONAME="cygfltk_forms-$FL_DSO_VERSION.dll" - GLDSONAME="cygfltk_gl-$FL_DSO_VERSION.dll" - IMGDSONAME="cygfltk_images-$FL_DSO_VERSION.dll" - CAIRODSONAME="cygfltk_cairo-$FL_DSO_VERSION.dll" - else - DSONAME="cygfltknox-$FL_DSO_VERSION.dll" - FLDSONAME="cygfltknox_forms-$FL_DSO_VERSION.dll" - GLDSONAME="cygfltknox_gl-$FL_DSO_VERSION.dll" - IMGDSONAME="cygfltknox_images-$FL_DSO_VERSION.dll" - CAIRODSONAME="cygfltknox_cairo-$FL_DSO_VERSION.dll" - fi - fi - #----------------------------------------------------------- - # -Wl,--enable-runtime-pseudo-reloc: See str 1585 - # appears to be necessary for older binutils versions < 2.16 - #----------------------------------------------------------- - LDFLAGS="$LDFLAGS -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc" - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -shared \ - -Wl,--whole-archive -Wl,--export-all-symbols \ - -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-import \ - -Wl,--enable-auto-image-base -o \$@" - ;; - *) - AC_MSG_WARN([Shared libraries may not be supported. Trying -shared option with compiler.]) - DSONAME="libfltk.so.$FL_DSO_VERSION" - FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" - GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" - IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" - CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o" - ;; + if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib64"; then + DSOLINK="-Wl,-rpath,$libdir" + fi + ;; + aix*) + DSONAME="libfltk_s.a" + FLDSONAME="libfltk_forms_s.a" + GLDSONAME="libfltk_gl_s.a" + IMGDSONAME="libfltk_images_s.a" + CAIRODSONAME="libfltk_cairo_s.a" + DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-bexpall,-bM:SRE,-bnoentry -o" + SHAREDSUFFIX="_s" + ;; + cygwin* | mingw*) + PICFLAG=0 + if test x$enable_cygwin != xyes; then + DSONAME="mgwfltknox-$FL_DSO_VERSION.dll" + FLDSONAME="mgwfltknox_forms-$FL_DSO_VERSION.dll" + GLDSONAME="mgwfltknox_gl-$FL_DSO_VERSION.dll" + IMGDSONAME="mgwfltknox_images-$FL_DSO_VERSION.dll" + CAIRODSONAME="mgwfltknox_cairo-$FL_DSO_VERSION.dll" + else + if test x$enable_x11 = xyes; then + DSONAME="cygfltk-$FL_DSO_VERSION.dll" + FLDSONAME="cygfltk_forms-$FL_DSO_VERSION.dll" + GLDSONAME="cygfltk_gl-$FL_DSO_VERSION.dll" + IMGDSONAME="cygfltk_images-$FL_DSO_VERSION.dll" + CAIRODSONAME="cygfltk_cairo-$FL_DSO_VERSION.dll" + else + DSONAME="cygfltknox-$FL_DSO_VERSION.dll" + FLDSONAME="cygfltknox_forms-$FL_DSO_VERSION.dll" + GLDSONAME="cygfltknox_gl-$FL_DSO_VERSION.dll" + IMGDSONAME="cygfltknox_images-$FL_DSO_VERSION.dll" + CAIRODSONAME="cygfltknox_cairo-$FL_DSO_VERSION.dll" + fi + fi + #----------------------------------------------------------- + # -Wl,--enable-runtime-pseudo-reloc: See str 1585 + # appears to be necessary for older binutils versions < 2.16 + #----------------------------------------------------------- + LDFLAGS="$LDFLAGS -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc" + DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -shared \ + -Wl,--whole-archive -Wl,--export-all-symbols \ + -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-import \ + -Wl,--enable-auto-image-base -o \$@" + ;; + *) + AC_MSG_WARN([Shared libraries may not be supported. Trying -shared option with compiler.]) + DSONAME="libfltk.so.$FL_DSO_VERSION" + FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" + GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" + IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" + CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" + DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o" + ;; esac LINKSHARED="-L../src $FLTKCAIROOPTION -lfltk_images$SHAREDSUFFIX -lfltk_forms$SHAREDSUFFIX -lfltk$SHAREDSUFFIX" @@ -423,16 +423,16 @@ AC_ARG_ENABLE(threads, [ --enable-threads enable multi-threading support AC_ARG_WITH(optim, [ --with-optim="flags" use custom optimization flags]) AC_ARG_WITH(archflags, [ --with-archflags="flags" - use custom architecture flags - (possible Mac OS X values include -arch i386, -arch x86_64, -arch ppc)], + use custom architecture flags + (possible Mac OS X values include -arch i386, -arch x86_64, -arch ppc)], ARCHFLAGS="$withval") dnl Find commands... AC_PROG_INSTALL case $host_os in osf*) - INSTALL="`pwd`/install-sh -c" - ;; + INSTALL="`pwd`/install-sh -c" + ;; esac if test "$INSTALL" = "$ac_install_sh"; then # Use full path to install-sh script... @@ -443,9 +443,9 @@ if test "x$NROFF" = "x:"; then # Try groff instead of nroff... AC_PATH_PROG(GROFF,groff) if test "x$GROFF" = "x:"; then - NROFF="echo" + NROFF="echo" else - NROFF="$GROFF -T ascii" + NROFF="$GROFF -T ascii" fi fi AC_PATH_PROG(DOXYDOC,doxygen) @@ -481,41 +481,41 @@ if test $ac_cv_sizeof_int -eq 4; then AC_DEFINE(U32,unsigned) else if test $ac_cv_sizeof_long -eq 4; then - AC_DEFINE(U32,unsigned long) + AC_DEFINE(U32,unsigned long) fi fi case $host_os in darwin*) - ;; + ;; *) - AC_C_BIGENDIAN + AC_C_BIGENDIAN - if test $ac_cv_sizeof_int -eq 8; then - AC_DEFINE(U64,unsigned) - else - if test $ac_cv_sizeof_long -eq 8; then - AC_DEFINE(U64,unsigned long) - fi - fi - ;; + if test $ac_cv_sizeof_int -eq 8; then + AC_DEFINE(U64,unsigned) + else + if test $ac_cv_sizeof_long -eq 8; then + AC_DEFINE(U64,unsigned long) + fi + fi + ;; esac dnl Does the C++ compiler support the bool type? AC_CACHE_CHECK(whether the compiler recognizes bool as a built-in type, ac_cv_cxx_bool,[ - AC_LANG_PUSH([C++]) - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[ - int f(int x){return 1;} - int f(char x){return 1;} - int f(bool x){return 1;} - ]], [[ - bool b = true; - return f(b); - ]])], - [ac_cv_cxx_bool=yes], - [ac_cv_cxx_bool=no]) - AC_LANG_POP([]) + AC_LANG_PUSH([C++]) + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ + int f(int x){return 1;} + int f(char x){return 1;} + int f(bool x){return 1;} + ]], [[ + bool b = true; + return f(b); + ]])], + [ac_cv_cxx_bool=yes], + [ac_cv_cxx_bool=no]) + AC_LANG_POP([]) ]) if test "$ac_cv_cxx_bool" != yes; then @@ -529,19 +529,19 @@ AC_CHECK_HEADERS([sys/select.h sys/stdtypes.h]) dnl Do we have the POSIX compatible scandir() prototype? AC_CACHE_CHECK([whether we have the POSIX compatible scandir() prototype], ac_cv_cxx_scandir_posix,[ - AC_LANG_PUSH([C++]) - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#include - int func (const char *d, dirent ***list, void *sort) { - int n = scandir(d, list, 0, (int(*)(const dirent **, const dirent **))sort); - return n; - } - ]], [[ - ]])], - [ac_cv_cxx_scandir_posix=yes], - [ac_cv_cxx_scandir_posix=no]) - AC_LANG_POP([]) + AC_LANG_PUSH([C++]) + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + int func (const char *d, dirent ***list, void *sort) { + int n = scandir(d, list, 0, (int(*)(const dirent **, const dirent **))sort); + return n; + } + ]], [[ + ]])], + [ac_cv_cxx_scandir_posix=yes], + [ac_cv_cxx_scandir_posix=no]) + AC_LANG_POP([]) ]) dnl Define both HAVE_SCANDIR... macros, if the POSIX compatible function is @@ -554,39 +554,39 @@ if test "$ac_cv_cxx_scandir_posix" = yes; then AC_DEFINE(HAVE_SCANDIR_POSIX) else AC_CHECK_FUNC(scandir,[ - case $host_os in - solaris* | *qnx*) - AC_MSG_WARN([Not using $host_os scandir emulation function.]) - ;; - *) - AC_DEFINE(HAVE_SCANDIR) - ;; - esac]) + case $host_os in + solaris* | *qnx*) + AC_MSG_WARN([Not using $host_os scandir emulation function.]) + ;; + *) + AC_DEFINE(HAVE_SCANDIR) + ;; + esac]) fi AC_CHECK_FUNC(vsnprintf,[ case $host_os in - hpux1020) - AC_MSG_WARN([Not using built-in vsnprintf function because you are running HP-UX 10.20.]) - ;; - osf4) - AC_MSG_WARN([Not using built-in vsnprintf function because you are running Tru64 4.0.]) - ;; - *) - AC_DEFINE(HAVE_VSNPRINTF) - ;; + hpux1020) + AC_MSG_WARN([Not using built-in vsnprintf function because you are running HP-UX 10.20.]) + ;; + osf4) + AC_MSG_WARN([Not using built-in vsnprintf function because you are running Tru64 4.0.]) + ;; + *) + AC_DEFINE(HAVE_VSNPRINTF) + ;; esac]) AC_CHECK_FUNC(snprintf,[ case $host_os in - hpux1020) - AC_MSG_WARN([Not using built-in snprintf function because you are running HP-UX 10.20.]) - ;; - osf4) - AC_MSG_WARN([Not using built-in snprintf function because you are running Tru64 4.0.]) - ;; - *) - AC_DEFINE(HAVE_SNPRINTF) - ;; + hpux1020) + AC_MSG_WARN([Not using built-in snprintf function because you are running HP-UX 10.20.]) + ;; + osf4) + AC_MSG_WARN([Not using built-in snprintf function because you are running Tru64 4.0.]) + ;; + *) + AC_DEFINE(HAVE_SNPRINTF) + ;; esac]) AC_CHECK_HEADERS(strings.h) AC_CHECK_FUNCS(strcasecmp strlcat strlcpy) @@ -603,32 +603,32 @@ AC_SYS_LARGEFILE dnl Define largefile options as needed... LARGEFILE="" if test x$enable_largefile != xno; then - LARGEFILE="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" + LARGEFILE="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" - if test x$ac_cv_sys_large_files = x1; then - LARGEFILE="$LARGEFILE -D_LARGE_FILES" - fi + if test x$ac_cv_sys_large_files = x1; then + LARGEFILE="$LARGEFILE -D_LARGE_FILES" + fi - if test x$ac_cv_sys_file_offset_bits = x64; then - LARGEFILE="$LARGEFILE -D_FILE_OFFSET_BITS=64" - fi + if test x$ac_cv_sys_file_offset_bits = x64; then + LARGEFILE="$LARGEFILE -D_FILE_OFFSET_BITS=64" + fi fi AC_SUBST(LARGEFILE) dnl Check for "long long" support... AC_CACHE_CHECK(for long long int, ac_cv_c_long_long, - [if test "$GCC" = yes; then - ac_cv_c_long_long=yes - else - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[]], - [[long long int i;]])], - [ac_cv_c_long_long=yes], - [ac_cv_c_long_long=no]) - fi]) + [if test "$GCC" = yes; then + ac_cv_c_long_long=yes + else + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[]], + [[long long int i;]])], + [ac_cv_c_long_long=yes], + [ac_cv_c_long_long=no]) + fi]) if test $ac_cv_c_long_long = yes; then - AC_DEFINE(HAVE_LONG_LONG) + AC_DEFINE(HAVE_LONG_LONG) fi dnl Check for dlopen/dlsym... @@ -640,19 +640,19 @@ AUDIOLIBS="" case $host_os in cygwin* | mingw*) - dnl Cygwin environment... - AUDIOLIBS="-lwinmm" - ;; + dnl Cygwin environment... + AUDIOLIBS="-lwinmm" + ;; darwin*) - AUDIOLIBS="-framework CoreAudio" - ;; + AUDIOLIBS="-framework CoreAudio" + ;; *) - AC_CHECK_HEADER(alsa/asoundlib.h, - AC_DEFINE(HAVE_ALSA_ASOUNDLIB_H) - AUDIOLIBS="-lasound") - ;; + AC_CHECK_HEADER(alsa/asoundlib.h, + AC_DEFINE(HAVE_ALSA_ASOUNDLIB_H) + AUDIOLIBS="-lasound") + ;; esac AC_SUBST(AUDIOLIBS) @@ -674,11 +674,11 @@ syszlib_ok=no syszinc_ok=no if test x$enable_localzlib != xyes; then AC_CHECK_LIB(z,gzgets, - [AC_CHECK_HEADER(zlib.h, - syszinc_ok=yes) - if test x$syszinc_ok = xyes; then - syszlib_ok=yes - fi]) + [AC_CHECK_HEADER(zlib.h, + syszinc_ok=yes) + if test x$syszinc_ok = xyes; then + syszlib_ok=yes + fi]) fi # Now set the Z lib and include flags according to the requested mode and availability if test x$enable_localzlib = xyes -o x$syszlib_ok = xno ; then @@ -691,7 +691,7 @@ if test x$enable_localzlib = xyes -o x$syszlib_ok = xno ; then ac_cv_lib_z_gzgets=no # fc: is still necessary ? # Finally, warn user if system lib was requested but not found if test x$enable_localzlib = xno; then - AC_MSG_WARN([Cannot find system z lib or header: choosing the local lib mode.]) + AC_MSG_WARN([Cannot find system z lib or header: choosing the local lib mode.]) fi else ZLIBINC="" @@ -714,13 +714,13 @@ syspnginc_ok=no if test x$enable_localpng != xyes; then AC_CHECK_LIB(png, png_read_info, [AC_CHECK_HEADER(png.h, - AC_DEFINE(HAVE_PNG_H) - syspnginc_ok=yes) + AC_DEFINE(HAVE_PNG_H) + syspnginc_ok=yes) AC_CHECK_HEADER(libpng/png.h, - AC_DEFINE(HAVE_LIBPNG_PNG_H) - syspnginc_ok=yes) + AC_DEFINE(HAVE_LIBPNG_PNG_H) + syspnginc_ok=yes) if test x$syspnginc_ok = xyes; then - syspnglib_ok=yes + syspnglib_ok=yes fi]) fi @@ -736,7 +736,7 @@ if test x$enable_localpng = xyes -o x$syspnglib_ok = xno ; then AC_DEFINE(HAVE_PNG_SET_TRNS_TO_ALPHA) # Finally, warn user if system lib was requested but not found if test x$enable_localpng = xno; then - AC_MSG_WARN([Cannot find system png lib or header: choosing the local lib mode.]) + AC_MSG_WARN([Cannot find system png lib or header: choosing the local lib mode.]) fi else PNGINC="" @@ -757,11 +757,11 @@ sysjpeglib_ok=no sysjpeginc_ok=no if test x$enable_localjpeg != xyes; then AC_CHECK_LIB(jpeg,jpeg_CreateCompress, - [AC_CHECK_HEADER(jpeglib.h, - sysjpeginc_ok=yes) - if test x$sysjpeginc_ok = xyes; then - sysjpeglib_ok=yes - fi]) + [AC_CHECK_HEADER(jpeglib.h, + sysjpeginc_ok=yes) + if test x$sysjpeginc_ok = xyes; then + sysjpeglib_ok=yes + fi]) fi # Now set the jpeg lib and include flags according to the requested mode and availability if test x$enable_localjpeg = xyes -o x$sysjpeglib_ok = xno; then @@ -772,7 +772,7 @@ if test x$enable_localjpeg = xyes -o x$sysjpeglib_ok = xno; then AC_DEFINE(HAVE_LIBJPEG) # Finally, warn user if system lib was requested but not found if test x$enable_localjpeg = xno; then - AC_MSG_WARN([Cannot find system jpeg lib or header: choosing the local lib mode.]) + AC_MSG_WARN([Cannot find system jpeg lib or header: choosing the local lib mode.]) fi else JPEGINC="" @@ -811,48 +811,48 @@ dnl native threads on Windows (even if libpthread is available) check_pthread=yes case $host_os in mingw*) - check_pthread=no - ;; + check_pthread=no + ;; cygwin*) - if test "x$enable_cygwin" != xyes; then - check_pthread=no - fi - ;; + if test "x$enable_cygwin" != xyes; then + check_pthread=no + fi + ;; *) - ;; + ;; esac if test "x$enable_threads" != xno -a x$check_pthread = xyes; then AC_CHECK_HEADERS(pthread.h) if test x$ac_cv_header_pthread_h = xyes; then - dnl Check various threading options for the platforms we support - for flag in -lpthreads -lpthread -pthread; do - AC_MSG_CHECKING([for pthread_create using $flag]) - SAVELIBS="$LIBS" - LIBS="$flag $LIBS" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include ]], - [[pthread_create(0, 0, 0, 0);]])], - [have_pthread=yes], - [LIBS="$SAVELIBS"]) - AC_MSG_RESULT([$have_pthread]) + dnl Check various threading options for the platforms we support + for flag in -lpthreads -lpthread -pthread; do + AC_MSG_CHECKING([for pthread_create using $flag]) + SAVELIBS="$LIBS" + LIBS="$flag $LIBS" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[pthread_create(0, 0, 0, 0);]])], + [have_pthread=yes], + [LIBS="$SAVELIBS"]) + AC_MSG_RESULT([$have_pthread]) - if test $have_pthread = yes; then - AC_DEFINE(HAVE_PTHREAD) - PTHREAD_FLAGS="-D_THREAD_SAFE -D_REENTRANT" + if test $have_pthread = yes; then + AC_DEFINE(HAVE_PTHREAD) + PTHREAD_FLAGS="-D_THREAD_SAFE -D_REENTRANT" - # Solaris requires -D_POSIX_PTHREAD_SEMANTICS to - # be POSIX-compliant... :( - case $host_os in - solaris*) - PTHREAD_FLAGS="$PTHREAD_FLAGS -D_POSIX_PTHREAD_SEMANTICS" - ;; - esac - break - fi - done + # Solaris requires -D_POSIX_PTHREAD_SEMANTICS to + # be POSIX-compliant... :( + case $host_os in + solaris*) + PTHREAD_FLAGS="$PTHREAD_FLAGS -D_POSIX_PTHREAD_SEMANTICS" + ;; + esac + break + fi + done fi fi @@ -870,184 +870,184 @@ UNINSTALL_DESKTOP="" case $host_os_gui in cygwin* | mingw*) - dnl Cygwin environment, using windows GDI ... - # Recent versions of Cygwin are seriously broken and the size - # checks don't work because the shell puts out \r\n instead of - # \n. Here we just force U32 to be defined to "unsigned"... - AC_DEFINE(U32,unsigned) - # We do no longer define WIN32 or _WIN32 (since FLTK 1.4.0) - # and we don't need to define USE_OPENGL32 (added in svn r6657 - # but never used, see STR #2147) - # CFLAGS="-mwindows -D_WIN32 -DUSE_OPENGL32 $CFLAGS" - # CXXFLAGS="-mwindows -D_WIN32 -DUSE_OPENGL32 $CXXFLAGS" - CFLAGS="-mwindows $CFLAGS" - CXXFLAGS="-mwindows $CXXFLAGS" - LDFLAGS="-mwindows $LDFLAGS" - DSOFLAGS="-mwindows $DSOFLAGS" - LIBS="$LIBS -lole32 -luuid -lcomctl32 -lws2_32" - BUILD="WIN" - if test "x$with_optim" = x; then - dnl Avoid -Os optimization on Cygwin/MinGW - with_optim="-O3" - fi + dnl Cygwin environment, using windows GDI ... + # Recent versions of Cygwin are seriously broken and the size + # checks don't work because the shell puts out \r\n instead of + # \n. Here we just force U32 to be defined to "unsigned"... + AC_DEFINE(U32,unsigned) + # We do no longer define WIN32 or _WIN32 (since FLTK 1.4.0) + # and we don't need to define USE_OPENGL32 (added in svn r6657 + # but never used, see STR #2147) + # CFLAGS="-mwindows -D_WIN32 -DUSE_OPENGL32 $CFLAGS" + # CXXFLAGS="-mwindows -D_WIN32 -DUSE_OPENGL32 $CXXFLAGS" + CFLAGS="-mwindows $CFLAGS" + CXXFLAGS="-mwindows $CXXFLAGS" + LDFLAGS="-mwindows $LDFLAGS" + DSOFLAGS="-mwindows $DSOFLAGS" + LIBS="$LIBS -lole32 -luuid -lcomctl32 -lws2_32" + BUILD="WIN" + if test "x$with_optim" = x; then + dnl Avoid -Os optimization on Cygwin/MinGW + with_optim="-O3" + fi - if test x$enable_gl != xno; then - AC_CHECK_HEADER(GL/gl.h, - AC_DEFINE(HAVE_GL) - GLLIBS="-lopengl32") - AC_CHECK_HEADER(GL/glu.h, - AC_DEFINE(HAVE_GL_GLU_H) - GLLIBS="-lglu32 $GLLIBS") - else - LINKFLTKGL="" - GLLIBNAME="" - GLDSONAME="" - GLDEMOS="" - fi + if test x$enable_gl != xno; then + AC_CHECK_HEADER(GL/gl.h, + AC_DEFINE(HAVE_GL) + GLLIBS="-lopengl32") + AC_CHECK_HEADER(GL/glu.h, + AC_DEFINE(HAVE_GL_GLU_H) + GLLIBS="-lglu32 $GLLIBS") + else + LINKFLTKGL="" + GLLIBNAME="" + GLDSONAME="" + GLDEMOS="" + fi - if test "x$enable_threads" != xno; then - if test x$have_pthread = xyes; then - AC_DEFINE(HAVE_PTHREAD) - fi - fi + if test "x$enable_threads" != xno; then + if test x$have_pthread = xyes; then + AC_DEFINE(HAVE_PTHREAD) + fi + fi - THREADS="threads$EXEEXT" + THREADS="threads$EXEEXT" - # Don't make symlinks since Windows is not case sensitive. - if test "x$with_links" != xyes; then - HLINKS="#" - fi - ;; + # Don't make symlinks since Windows is not case sensitive. + if test "x$with_links" != xyes; then + HLINKS="#" + fi + ;; darwin*) - AC_DEFINE(__APPLE_QUARTZ__) + AC_DEFINE(__APPLE_QUARTZ__) - BUILD="OSX" + BUILD="OSX" - # MacOS X uses Cocoa for graphics. - LIBS="$LIBS -framework Cocoa" + # MacOS X uses Cocoa for graphics. + LIBS="$LIBS -framework Cocoa" - if test x$have_pthread = xyes; then - AC_DEFINE(HAVE_PTHREAD) - THREADS="threads$EXEEXT" - fi + if test x$have_pthread = xyes; then + AC_DEFINE(HAVE_PTHREAD) + THREADS="threads$EXEEXT" + fi - if test x$enable_gl != xno; then - AC_DEFINE(HAVE_GL) - AC_DEFINE(HAVE_GL_GLU_H) - GLLIBS="-framework OpenGL" - else - LINKFLTKGL="" - GLLIBNAME="" - GLDSONAME="" - GLDEMOS="" - fi + if test x$enable_gl != xno; then + AC_DEFINE(HAVE_GL) + AC_DEFINE(HAVE_GL_GLU_H) + GLLIBS="-framework OpenGL" + else + LINKFLTKGL="" + GLLIBNAME="" + GLDSONAME="" + GLDEMOS="" + fi - # Don't make symlinks because HFS+ is not case sensitive... - if test "x$with_links" != xyes; then - HLINKS="#" - fi + # Don't make symlinks because HFS+ is not case sensitive... + if test "x$with_links" != xyes; then + HLINKS="#" + fi - # Some steps are only done for OS X package management - OSX_ONLY= + # Some steps are only done for OS X package management + OSX_ONLY= - # Install/Uninstall FLUID application - INSTALL_DESKTOP="install-osx" - UNINSTALL_DESKTOP="uninstall-osx" - ;; + # Install/Uninstall FLUID application + INSTALL_DESKTOP="install-osx" + UNINSTALL_DESKTOP="uninstall-osx" + ;; *) - # All others are UNIX/X11... - # This includes Cygwin target combined with X11 - if test x$have_pthread = xyes; then - AC_DEFINE(HAVE_PTHREAD) - THREADS="threads$EXEEXT" - fi + # All others are UNIX/X11... + # This includes Cygwin target combined with X11 + if test x$have_pthread = xyes; then + AC_DEFINE(HAVE_PTHREAD) + THREADS="threads$EXEEXT" + fi - dnl Check for X11... - AC_PATH_XTRA + dnl Check for X11... + AC_PATH_XTRA - if test x$no_x = xyes; then - AC_MSG_ERROR([Configure could not find required X11 libraries, aborting.]) - fi + if test x$no_x = xyes; then + AC_MSG_ERROR([Configure could not find required X11 libraries, aborting.]) + fi - if test "x$X_PRE_LIBS" != x; then - AC_MSG_WARN([Ignoring libraries "$X_PRE_LIBS" requested by configure.]) - fi + if test "x$X_PRE_LIBS" != x; then + AC_MSG_WARN([Ignoring libraries "$X_PRE_LIBS" requested by configure.]) + fi - LIBS="$LIBS -lX11 $X_EXTRA_LIBS" - CFLAGS="$CFLAGS $X_CFLAGS" - CXXFLAGS="$CXXFLAGS $X_CFLAGS" - LDFLAGS="$X_LIBS $LDFLAGS" - DSOFLAGS="$X_LIBS $DSOFLAGS" - AC_DEFINE(USE_X11) - BUILD="X11" - if test "x$x_includes" != x; then - ac_cpp="$ac_cpp -I$x_includes" - fi + LIBS="$LIBS -lX11 $X_EXTRA_LIBS" + CFLAGS="$CFLAGS $X_CFLAGS" + CXXFLAGS="$CXXFLAGS $X_CFLAGS" + LDFLAGS="$X_LIBS $LDFLAGS" + DSOFLAGS="$X_LIBS $DSOFLAGS" + AC_DEFINE(USE_X11) + BUILD="X11" + if test "x$x_includes" != x; then + ac_cpp="$ac_cpp -I$x_includes" + fi - dnl Check for OpenGL unless disabled... - GLLIBS= + dnl Check for OpenGL unless disabled... + GLLIBS= - if test x$enable_gl != xno; then - AC_SEARCH_LIBS(dlopen, dl) - AC_CHECK_HEADER(GL/gl.h, - AC_CHECK_LIB(GL, glXMakeCurrent, - [AC_DEFINE(HAVE_GL) - GLLIBS="-lGL"], - AC_CHECK_LIB(MesaGL, glXMakeCurrent, - [AC_DEFINE(HAVE_GL) - GLLIBS="-lMesaGL"],, - [-lm]), - [-lm]) - AC_CHECK_LIB(GL, glXGetProcAddressARB, - AC_DEFINE(HAVE_GLXGETPROCADDRESSARB),, [-lm]) - ) - AC_CHECK_HEADER(GL/glu.h, - AC_DEFINE(HAVE_GL_GLU_H) - if test x$ac_cv_lib_GL_glXMakeCurrent = xyes; then - GLLIBS="-lGLU $GLLIBS" - fi - if test x$ac_cv_lib_MesaGL_glXMakeCurrent = xyes; then - GLLIBS="-lMesaGLU $GLLIBS" - fi - ) + if test x$enable_gl != xno; then + AC_SEARCH_LIBS(dlopen, dl) + AC_CHECK_HEADER(GL/gl.h, + AC_CHECK_LIB(GL, glXMakeCurrent, + [AC_DEFINE(HAVE_GL) + GLLIBS="-lGL"], + AC_CHECK_LIB(MesaGL, glXMakeCurrent, + [AC_DEFINE(HAVE_GL) + GLLIBS="-lMesaGL"],, + [-lm]), + [-lm]) + AC_CHECK_LIB(GL, glXGetProcAddressARB, + AC_DEFINE(HAVE_GLXGETPROCADDRESSARB),, [-lm]) + ) + AC_CHECK_HEADER(GL/glu.h, + AC_DEFINE(HAVE_GL_GLU_H) + if test x$ac_cv_lib_GL_glXMakeCurrent = xyes; then + GLLIBS="-lGLU $GLLIBS" + fi + if test x$ac_cv_lib_MesaGL_glXMakeCurrent = xyes; then + GLLIBS="-lMesaGLU $GLLIBS" + fi + ) - if test x$ac_cv_lib_GL_glXMakeCurrent != xyes -a x$ac_cv_lib_MesaGL_glXMakeCurrent != xyes; then - LINKFLTKGL="" - GLLIBNAME="" - GLDSONAME="" - GLDEMOS="" - fi - else - LINKFLTKGL="" - GLLIBNAME="" - GLDSONAME="" - GLDEMOS="" - fi + if test x$ac_cv_lib_GL_glXMakeCurrent != xyes -a x$ac_cv_lib_MesaGL_glXMakeCurrent != xyes; then + LINKFLTKGL="" + GLLIBNAME="" + GLDSONAME="" + GLDEMOS="" + fi + else + LINKFLTKGL="" + GLLIBNAME="" + GLDSONAME="" + GLDEMOS="" + fi - dnl Check whether print support was disabled... - AC_ARG_ENABLE(print, [ --enable-print turn on print support (X11 platform) [[default=yes]]]) - if test x$enable_print = xno; then - AC_DEFINE(FL_NO_PRINT_SUPPORT) - fi + dnl Check whether print support was disabled... + AC_ARG_ENABLE(print, [ --enable-print turn on print support (X11 platform) [[default=yes]]]) + if test x$enable_print = xno; then + AC_DEFINE(FL_NO_PRINT_SUPPORT) + fi - dnl Check for Xinerama support unless disabled... - AC_ARG_ENABLE(xinerama, [ --enable-xinerama turn on Xinerama support [[default=yes]]]) + dnl Check for Xinerama support unless disabled... + AC_ARG_ENABLE(xinerama, [ --enable-xinerama turn on Xinerama support [[default=yes]]]) - xinerama_found=no - if test x$enable_xinerama != xno; then - AC_CHECK_LIB(Xinerama, XineramaIsActive, - [AC_DEFINE(HAVE_XINERAMA) - LIBS="-lXinerama $LIBS" - xinerama_found=yes]) - fi + xinerama_found=no + if test x$enable_xinerama != xno; then + AC_CHECK_LIB(Xinerama, XineramaIsActive, + [AC_DEFINE(HAVE_XINERAMA) + LIBS="-lXinerama $LIBS" + xinerama_found=yes]) + fi - dnl Check for the Xft library unless disabled... - AC_ARG_ENABLE(xft, [ --enable-xft turn on Xft support [[default=yes]]]) + dnl Check for the Xft library unless disabled... + AC_ARG_ENABLE(xft, [ --enable-xft turn on Xft support [[default=yes]]]) - xft_found=no - if test x$enable_xft != xno; then + xft_found=no + if test x$enable_xft != xno; then # Try pkg-config first (freetype2 deprecated freetype-config from some version on) AC_PATH_PROG(PKGCONFIG, pkg-config) FT_FLAGS="" @@ -1073,23 +1073,23 @@ case $host_os_gui in CFLAGS="$FT_FLAGS $CFLAGS" AC_CHECK_LIB(fontconfig, FcPatternCreate) - AC_CHECK_HEADER(X11/Xft/Xft.h, - AC_CHECK_LIB(Xft, XftDrawCreate, - [AC_DEFINE(USE_XFT) - LIBS="-lXft $LIBS" - BUILD="XFT" - xft_found=yes])) - fi + AC_CHECK_HEADER(X11/Xft/Xft.h, + AC_CHECK_LIB(Xft, XftDrawCreate, + [AC_DEFINE(USE_XFT) + LIBS="-lXft $LIBS" + BUILD="XFT" + xft_found=yes])) + fi - dnl Issue a warning message if Xft was not found, abort configure - dnl if Xft was requested explicitly (but not found) - if test x$enable_xft != xno -a x$xft_found != xyes; then - AC_MSG_WARN([could not find the required Xft headers and/or libraries.]) - AC_MSG_NOTICE([please install Xft headers and libraries or use 'configure --disable-xft'.]) - if test x$enable_xft = xyes; then - AC_MSG_ERROR([Aborting.]) - fi - fi + dnl Issue a warning message if Xft was not found, abort configure + dnl if Xft was requested explicitly (but not found) + if test x$enable_xft != xno -a x$xft_found != xyes; then + AC_MSG_WARN([could not find the required Xft headers and/or libraries.]) + AC_MSG_NOTICE([please install Xft headers and libraries or use 'configure --disable-xft'.]) + if test x$enable_xft = xyes; then + AC_MSG_ERROR([Aborting.]) + fi + fi dnl test if pango is asked but xft was not found if test x$enable_pango = xyes -a x$xft_found = xno; then @@ -1098,141 +1098,141 @@ case $host_os_gui in AC_MSG_ERROR([Aborting.]) fi - dnl Check for the pango library unless disabled... + dnl Check for the pango library unless disabled... AC_ARG_ENABLE(pango, [ --enable-pango turn on Pango support [[default=no]]]) pango_found=no - if test x$enable_pango = xyes; then + if test x$enable_pango = xyes; then if test x$PKGCONFIG != x; then CXXFLAGS="`$PKGCONFIG --cflags pangoxft` $CXXFLAGS" LIBS="`$PKGCONFIG --libs pangoxft` $LIBS" else - case $host_os in - linux*) - CXXFLAGS="-I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include $CXXFLAGS" - CXXFLAGS="-I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/lib/x86_64-linux-gnu/glib-2.0/include $CXXFLAGS" - ;; - freebsd*) - CXXFLAGS="-I/usr/local/include/pango-1.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include $CXXFLAGS" - ;; - netbsd*) - CXXFLAGS="-I/usr/pkg/include/pango-1.0 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include $CXXFLAGS" - CXXFLAGS="-I/usr/pkg/include/glib/glib-2.0 $CXXFLAGS" - PANGOLIBDIR="-L/usr/pkg/lib" - LDFLAGS="-Wl,-rpath,/usr/pkg/lib $LDFLAGS" - ;; - esac + case $host_os in + linux*) + CXXFLAGS="-I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include $CXXFLAGS" + CXXFLAGS="-I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/lib/x86_64-linux-gnu/glib-2.0/include $CXXFLAGS" + ;; + freebsd*) + CXXFLAGS="-I/usr/local/include/pango-1.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include $CXXFLAGS" + ;; + netbsd*) + CXXFLAGS="-I/usr/pkg/include/pango-1.0 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include $CXXFLAGS" + CXXFLAGS="-I/usr/pkg/include/glib/glib-2.0 $CXXFLAGS" + PANGOLIBDIR="-L/usr/pkg/lib" + LDFLAGS="-Wl,-rpath,/usr/pkg/lib $LDFLAGS" + ;; + esac LIBS="$PANGOLIBDIR -lpango-1.0 -lpangoxft-1.0 -lgobject-2.0 $LIBS" fi - CPPFLAGS="$CXXFLAGS" - AC_CHECK_HEADERS([pango/pango.h pango/pangoxft.h], - AC_CHECK_LIB(pango-1.0, pango_layout_new, - AC_CHECK_LIB(pangoxft-1.0, pango_xft_render_layout, - AC_DEFINE(USE_PANGO) + CPPFLAGS="$CXXFLAGS" + AC_CHECK_HEADERS([pango/pango.h pango/pangoxft.h], + AC_CHECK_LIB(pango-1.0, pango_layout_new, + AC_CHECK_LIB(pangoxft-1.0, pango_xft_render_layout, + AC_DEFINE(USE_PANGO) pango_found=yes))) - CPPFLAGS=$CXXFLAGS - fi + CPPFLAGS=$CXXFLAGS + fi - dnl Check for the Xdbe extension unless disabled... - AC_ARG_ENABLE(xdbe, [ --enable-xdbe turn on Xdbe support [[default=yes]]]) + dnl Check for the Xdbe extension unless disabled... + AC_ARG_ENABLE(xdbe, [ --enable-xdbe turn on Xdbe support [[default=yes]]]) - xdbe_found=no - if test x$enable_xdbe != xno; then - AC_CHECK_HEADER( - [X11/extensions/Xdbe.h], - [AC_CHECK_LIB(Xext, XdbeQueryExtension, - [AC_DEFINE(HAVE_XDBE) - LIBS="-lXext $LIBS" - xdbe_found=yes])], - [], - [#include ]) - fi + xdbe_found=no + if test x$enable_xdbe != xno; then + AC_CHECK_HEADER( + [X11/extensions/Xdbe.h], + [AC_CHECK_LIB(Xext, XdbeQueryExtension, + [AC_DEFINE(HAVE_XDBE) + LIBS="-lXext $LIBS" + xdbe_found=yes])], + [], + [#include ]) + fi - dnl Check for the Xfixes extension unless disabled... - AC_ARG_ENABLE(xfixes, [ --enable-xfixes turn on Xfixes support [[default=yes]]]) + dnl Check for the Xfixes extension unless disabled... + AC_ARG_ENABLE(xfixes, [ --enable-xfixes turn on Xfixes support [[default=yes]]]) - xfixes_found=no - if test x$enable_xfixes != xno; then - AC_CHECK_HEADER( - [X11/extensions/Xfixes.h], - [AC_CHECK_LIB(Xfixes, XFixesQueryExtension, - [AC_DEFINE(HAVE_XFIXES) - LIBS="-lXfixes $LIBS" - xfixes_found=yes])], - [], - [#include ]) - fi + xfixes_found=no + if test x$enable_xfixes != xno; then + AC_CHECK_HEADER( + [X11/extensions/Xfixes.h], + [AC_CHECK_LIB(Xfixes, XFixesQueryExtension, + [AC_DEFINE(HAVE_XFIXES) + LIBS="-lXfixes $LIBS" + xfixes_found=yes])], + [], + [#include ]) + fi - dnl Check for the Xcursor library unless disabled... - AC_ARG_ENABLE(xcursor, [ --enable-xcursor turn on Xcursor support [[default=yes]]]) + dnl Check for the Xcursor library unless disabled... + AC_ARG_ENABLE(xcursor, [ --enable-xcursor turn on Xcursor support [[default=yes]]]) - xcursor_found=no - if test x$enable_xcursor != xno; then - AC_CHECK_HEADER( - [X11/Xcursor/Xcursor.h], - [AC_CHECK_LIB(Xcursor, XcursorImageCreate, - [AC_DEFINE(HAVE_XCURSOR) - LIBS="-lXcursor $LIBS" - xcursor_found=yes])], - [], - [#include ]) - fi + xcursor_found=no + if test x$enable_xcursor != xno; then + AC_CHECK_HEADER( + [X11/Xcursor/Xcursor.h], + [AC_CHECK_LIB(Xcursor, XcursorImageCreate, + [AC_DEFINE(HAVE_XCURSOR) + LIBS="-lXcursor $LIBS" + xcursor_found=yes])], + [], + [#include ]) + fi - dnl Check for the Xrender library unless disabled... - AC_ARG_ENABLE(xrender, [ --enable-xrender turn on Xrender support [[default=yes]]]) + dnl Check for the Xrender library unless disabled... + AC_ARG_ENABLE(xrender, [ --enable-xrender turn on Xrender support [[default=yes]]]) - xrender_found=no - if test x$enable_xrender != xno; then - AC_CHECK_HEADER( - [X11/extensions/Xrender.h], - [AC_CHECK_LIB(Xrender, XRenderQueryVersion, - [AC_DEFINE(HAVE_XRENDER) - LIBS="-lXrender $LIBS" - xrender_found=yes])], - [], - [#include ]) - fi + xrender_found=no + if test x$enable_xrender != xno; then + AC_CHECK_HEADER( + [X11/extensions/Xrender.h], + [AC_CHECK_LIB(Xrender, XRenderQueryVersion, + [AC_DEFINE(HAVE_XRENDER) + LIBS="-lXrender $LIBS" + xrender_found=yes])], + [], + [#include ]) + fi - dnl Check for the X11/Xregion.h header file... - AC_CHECK_HEADER(X11/Xregion.h, AC_DEFINE(HAVE_X11_XREGION_H),, - [#include ]) + dnl Check for the X11/Xregion.h header file... + AC_CHECK_HEADER(X11/Xregion.h, AC_DEFINE(HAVE_X11_XREGION_H),, + [#include ]) - dnl Check for overlay visuals... - AC_PATH_PROG(XPROP, xprop) - AC_CACHE_CHECK(for X overlay visuals, ac_cv_have_overlay, - if test "x$XPROP" != x; then - if $XPROP -root 2>/dev/null | grep -c "SERVER_OVERLAY_VISUALS" >/dev/null; then - ac_cv_have_overlay=yes - else - ac_cv_have_overlay=no - fi - else - ac_cv_have_overlay=no - fi) + dnl Check for overlay visuals... + AC_PATH_PROG(XPROP, xprop) + AC_CACHE_CHECK(for X overlay visuals, ac_cv_have_overlay, + if test "x$XPROP" != x; then + if $XPROP -root 2>/dev/null | grep -c "SERVER_OVERLAY_VISUALS" >/dev/null; then + ac_cv_have_overlay=yes + else + ac_cv_have_overlay=no + fi + else + ac_cv_have_overlay=no + fi) - if test x$ac_cv_have_overlay = xyes; then - AC_DEFINE(HAVE_OVERLAY) - fi + if test x$ac_cv_have_overlay = xyes; then + AC_DEFINE(HAVE_OVERLAY) + fi - # Make symlinks since UNIX/Linux is case sensitive, - # but Cygwin in general not. - case $host_os in - cygwin*) - HLINKS="#" - ;; - *) - ;; - esac - # Make symlinks since UNIX/Linux is case sensitive, - # but only if explicitly configured (default=no) - if test "x$with_links" != xyes; then - HLINKS="#" - fi + # Make symlinks since UNIX/Linux is case sensitive, + # but Cygwin in general not. + case $host_os in + cygwin*) + HLINKS="#" + ;; + *) + ;; + esac + # Make symlinks since UNIX/Linux is case sensitive, + # but only if explicitly configured (default=no) + if test "x$with_links" != xyes; then + HLINKS="#" + fi - # Install/Uninstall FLUID application support files - INSTALL_DESKTOP="install-linux" - UNINSTALL_DESKTOP="uninstall-linux" - ;; + # Install/Uninstall FLUID application support files + INSTALL_DESKTOP="install-linux" + UNINSTALL_DESKTOP="uninstall-linux" + ;; esac AC_SUBST(GLDEMOS) @@ -1249,23 +1249,23 @@ AC_SUBST(BUILD) dnl Figure out the appropriate formatted man page extension... case "$host_os" in *bsd* | darwin*) - # *BSD - CAT1EXT=0 - CAT3EXT=0 - CAT6EXT=0 - ;; + # *BSD + CAT1EXT=0 + CAT3EXT=0 + CAT6EXT=0 + ;; irix*) - # SGI IRIX - CAT1EXT=z - CAT3EXT=z - CAT6EXT=z - ;; + # SGI IRIX + CAT1EXT=z + CAT3EXT=z + CAT6EXT=z + ;; *) - # All others - CAT1EXT=1 - CAT3EXT=3 - CAT6EXT=6 - ;; + # All others + CAT1EXT=1 + CAT3EXT=3 + CAT6EXT=6 + ;; esac AC_SUBST(CAT1EXT) @@ -1275,14 +1275,14 @@ AC_SUBST(CAT6EXT) dnl Fix "mandir" variable... if test "$mandir" = "\${prefix}/man" -a "$prefix" = "/usr"; then case "$host_os" in - *bsd* | darwin* | linux*) - # *BSD, Darwin, and Linux - mandir="\${prefix}/share/man" - ;; - irix*) - # SGI IRIX - mandir="\${prefix}/share/catman" - ;; + *bsd* | darwin* | linux*) + # *BSD, Darwin, and Linux + mandir="\${prefix}/share/man" + ;; + irix*) + # SGI IRIX + mandir="\${prefix}/share/catman" + ;; esac fi @@ -1297,12 +1297,12 @@ fi case $host_os in irix[1-5]*) - ;; + ;; irix*) - if test "$libdir" = "\${exec_prefix}/lib" -a "$exec_prefix" = "\${prefix}" -a "$prefix" = "/usr"; then - libdir="/usr/lib32" - fi - ;; + if test "$libdir" = "\${exec_prefix}/lib" -a "$exec_prefix" = "\${prefix}" -a "$prefix" = "/usr"; then + libdir="/usr/lib32" + fi + ;; esac dnl Define the command used to update the dependencies (this option @@ -1324,39 +1324,39 @@ if test -n "$GCC"; then # We know that Carbon is deprecated on OS X 10.4. To avoid hundreds of warnings # we will temporarily disable 'deprecated' warnings on OS X. case $host_os in - darwin[1-7]) - ;; - darwin*) - OPTIM="-Wno-deprecated-declarations $OPTIM" - ;; + darwin[1-7]) + ;; + darwin*) + OPTIM="-Wno-deprecated-declarations $OPTIM" + ;; esac # Set the default compiler optimizations... if test -z "$DEBUGFLAG"; then - # - # Note: Can't use -fomit-frame-pointer - prevents tools like - # libsafe from working! - # - # Don't use -fforce-mem, -fforce-addr, or -fcaller-saves. - # They all seem to make either no difference or enlarge - # the code by a few hundred bytes. - # - # "-Os" seems to be the best compromise between speed and - # code size. "-O3" and higher seem to make no effective - # difference in the speed of the code, but does bloat the - # library 10+%. - # + # + # Note: Can't use -fomit-frame-pointer - prevents tools like + # libsafe from working! + # + # Don't use -fforce-mem, -fforce-addr, or -fcaller-saves. + # They all seem to make either no difference or enlarge + # the code by a few hundred bytes. + # + # "-Os" seems to be the best compromise between speed and + # code size. "-O3" and higher seem to make no effective + # difference in the speed of the code, but does bloat the + # library 10+%. + # - if test "x$with_optim" != x; then - OPTIM="$with_optim $OPTIM" - else - OPTIM="-Os $OPTIM" - fi + if test "x$with_optim" != x; then + OPTIM="$with_optim $OPTIM" + else + OPTIM="-Os $OPTIM" + fi fi # Generate position-independent code when needed... if test $PICFLAG = 1; then - OPTIM="$OPTIM -fPIC" + OPTIM="$OPTIM -fPIC" fi # See if GCC supports -fno-exceptions... @@ -1364,10 +1364,10 @@ if test -n "$GCC"; then OLDCFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fno-exceptions" AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[]], [[]])], - [OPTIM="$OPTIM -fno-exceptions" - AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no)]) + [AC_LANG_PROGRAM([[]], [[]])], + [OPTIM="$OPTIM -fno-exceptions" + AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)]) CFLAGS="$OLDCFLAGS" # See if GCC supports -fno-strict-aliasing... @@ -1375,10 +1375,10 @@ if test -n "$GCC"; then OLDCFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fno-strict-aliasing" AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[]], [[]])], - [OPTIM="$OPTIM -fno-strict-aliasing" - AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no)]) + [AC_LANG_PROGRAM([[]], [[]])], + [OPTIM="$OPTIM -fno-strict-aliasing" + AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)]) CFLAGS="$OLDCFLAGS" dnl Make sure that shared libraries don't have undefined references @@ -1387,10 +1387,10 @@ dnl Make sure that shared libraries don't have undefined references OLDLDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -Wl,-no-undefined" AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[]], [[]])], - [DSOFLAGS="$DSOFLAGS -Wl,-no-undefined" - AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no)]) + [AC_LANG_PROGRAM([[]], [[]])], + [DSOFLAGS="$DSOFLAGS -Wl,-no-undefined" + AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)]) LDFLAGS="$OLDLDFLAGS" # See if ld supports -Bsymbolic-functions... @@ -1398,10 +1398,10 @@ dnl Make sure that shared libraries don't have undefined references OLDLDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions" AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[]], [[]])], - [DSOFLAGS="$DSOFLAGS -Wl,-Bsymbolic-functions" - AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no)]) + [AC_LANG_PROGRAM([[]], [[]])], + [DSOFLAGS="$DSOFLAGS -Wl,-Bsymbolic-functions" + AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)]) LDFLAGS="$OLDLDFLAGS" # See if toolchain supports a sectioned build... @@ -1411,11 +1411,11 @@ dnl Make sure that shared libraries don't have undefined references LDFLAGS="$LDFLAGS -Wl,-gc-sections" CFLAGS="$CFLAGS -ffunction-sections -fdata-sections" AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[]], [[]])], - [DSOFLAGS="$DSOFLAGS -Wl,-gc-sections" - OPTIM="$OPTIM -ffunction-sections -fdata-sections" - AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no)]) + [AC_LANG_PROGRAM([[]], [[]])], + [DSOFLAGS="$DSOFLAGS -Wl,-gc-sections" + OPTIM="$OPTIM -ffunction-sections -fdata-sections" + AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)]) LDFLAGS="$OLDLDFLAGS" CFLAGS="$OLDCFLAGS" @@ -1427,108 +1427,108 @@ dnl Make sure that shared libraries don't have undefined references # in CFLAGS and CXXFLAGS so that fltk-config will provide the option # to clients - otherwise client apps will not compile properly... case $host_os in - solaris*) - AC_MSG_CHECKING([if GCC supports -fpermissive]) + solaris*) + AC_MSG_CHECKING([if GCC supports -fpermissive]) - OLDCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fpermissive" - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[]], [[]])], - [CXXFLAGS="$CXXFLAGS -fpermissive" - AC_MSG_RESULT(yes)], - [CFLAGS="$OLDCFLAGS" - AC_MSG_RESULT(no)]) - ;; + OLDCFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fpermissive" + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[]], [[]])], + [CXXFLAGS="$CXXFLAGS -fpermissive" + AC_MSG_RESULT(yes)], + [CFLAGS="$OLDCFLAGS" + AC_MSG_RESULT(no)]) + ;; esac else case "$host_os" in - irix*) - # Running some flavor of IRIX; see which version and - # set things up according... - if test "$uversion" -ge 62; then - # We are running IRIX 6.2 or higher; uncomment the following - # lines if you don't have IDO 7.2 or higher: - # - # CXX="CC -n32 -mips3" - # CC="cc -n32 -mips3" - # LD="ld -n32 -mips3" - # MAKEDEPEND="CC -M" + irix*) + # Running some flavor of IRIX; see which version and + # set things up according... + if test "$uversion" -ge 62; then + # We are running IRIX 6.2 or higher; uncomment the following + # lines if you don't have IDO 7.2 or higher: + # + # CXX="CC -n32 -mips3" + # CC="cc -n32 -mips3" + # LD="ld -n32 -mips3" + # MAKEDEPEND="CC -M" - if test "x`grep abi=n32 /etc/compiler.defaults`" = x; then - AC_MSG_WARN([FOR BEST RESULTS BEFORE COMPILING: setenv SGI_ABI "-n32 -mips3"]) - fi + if test "x`grep abi=n32 /etc/compiler.defaults`" = x; then + AC_MSG_WARN([FOR BEST RESULTS BEFORE COMPILING: setenv SGI_ABI "-n32 -mips3"]) + fi - OPTIM="-fullwarn $OPTIM" - fi - if test -z "$DEBUGFLAG"; then - if test "x$with_optim" != x; then - OPTIM="$with_optim $OPTIM" - else - OPTIM="-O2 $OPTIM" - if test $uversion -gt 62; then - OPTIM="-OPT:Olimit=4000 $OPTIM" - fi - fi - fi - ;; - hpux*) - # Running HP-UX; these options should work for the HP compilers. - if test -z "$DEBUGFLAG"; then - if test "x$with_optim" != x; then - OPTIM="$with_optim $OPTIM" - else - OPTIM="+O2 $OPTIM" - fi - fi + OPTIM="-fullwarn $OPTIM" + fi + if test -z "$DEBUGFLAG"; then + if test "x$with_optim" != x; then + OPTIM="$with_optim $OPTIM" + else + OPTIM="-O2 $OPTIM" + if test $uversion -gt 62; then + OPTIM="-OPT:Olimit=4000 $OPTIM" + fi + fi + fi + ;; + hpux*) + # Running HP-UX; these options should work for the HP compilers. + if test -z "$DEBUGFLAG"; then + if test "x$with_optim" != x; then + OPTIM="$with_optim $OPTIM" + else + OPTIM="+O2 $OPTIM" + fi + fi - if test $PICFLAG = 1; then - OPTIM="+z $OPTIM" - fi + if test $PICFLAG = 1; then + OPTIM="+z $OPTIM" + fi - CXXFLAGS="$CXXFLAGS +W336,501,736,740,749,829" - ;; - OSF1*) - # Running Digital/Tru64 UNIX; these options should work for the - # Digital/Compaq/NewHP compilers. - if test -z "$DEBUGFLAG"; then - if test "x$with_optim" != x; then - OPTIM="$with_optim $OPTIM" - else - OPTIM="-O2 $OPTIM" - fi - fi - ;; - solaris*) - # Solaris - if test -z "$DEBUGFLAG"; then - if test "x$with_optim" != x; then - OPTIM="$with_optim $OPTIM" - else - OPTIM="-xO3 $OPTIM" - fi - fi + CXXFLAGS="$CXXFLAGS +W336,501,736,740,749,829" + ;; + OSF1*) + # Running Digital/Tru64 UNIX; these options should work for the + # Digital/Compaq/NewHP compilers. + if test -z "$DEBUGFLAG"; then + if test "x$with_optim" != x; then + OPTIM="$with_optim $OPTIM" + else + OPTIM="-O2 $OPTIM" + fi + fi + ;; + solaris*) + # Solaris + if test -z "$DEBUGFLAG"; then + if test "x$with_optim" != x; then + OPTIM="$with_optim $OPTIM" + else + OPTIM="-xO3 $OPTIM" + fi + fi - if test $PICFLAG = 1; then - OPTIM="-KPIC $OPTIM" - fi - ;; - aix*) - if test -z "$DEBUGFLAG"; then - if test "x$with_optim" != x; then - OPTIM="$with_optim $OPTIM" - else - OPTIM="-O2 $OPTIM" - fi - fi + if test $PICFLAG = 1; then + OPTIM="-KPIC $OPTIM" + fi + ;; + aix*) + if test -z "$DEBUGFLAG"; then + if test "x$with_optim" != x; then + OPTIM="$with_optim $OPTIM" + else + OPTIM="-O2 $OPTIM" + fi + fi - AC_MSG_WARN([The AIX C and C++ compilers are known not to correctly compile the FLTK library.]) - ;; - *) - # Running some other operating system; inform the user they - # should contribute the necessary options via the STR form.. - AC_MSG_WARN([Building FLTK with default compiler optimizations]) - AC_MSG_WARN([Send the FLTK developers your uname and compiler options via http://www.fltk.org/str.php]) - ;; + AC_MSG_WARN([The AIX C and C++ compilers are known not to correctly compile the FLTK library.]) + ;; + *) + # Running some other operating system; inform the user they + # should contribute the necessary options via the STR form.. + AC_MSG_WARN([Building FLTK with default compiler optimizations]) + AC_MSG_WARN([Send the FLTK developers your uname and compiler options via https://www.fltk.org/bugs.php]) + ;; esac fi @@ -1537,25 +1537,25 @@ OPTIM="$DEBUGFLAG $OPTIM" dnl Take archflags away from CFLAGS (makefiles use ARCHFLAGS explicitly) case $host_os in darwin*) - if test "x$with_archflags" != x ; then - CFLAGS="`echo $CFLAGS | sed -e "s/$with_archflags//g"`" - fi - ;; + if test "x$with_archflags" != x ; then + CFLAGS="`echo $CFLAGS | sed -e "s/$with_archflags//g"`" + fi + ;; esac dnl Define the FLTK documentation directory... case $host_os in mingw*) # Determine the path where MSys has /usr installed - msyspath=`mount | grep '\/usr ' | cut -d ' ' -f -1 | sed -e 's/\\\/\// g'` + msyspath=`mount | grep '\/usr ' | cut -d ' ' -f -1 | sed -e 's/\\\/\// g'` # Then substitute that in the Windows path instead of /usr - AC_DEFINE_UNQUOTED(FLTK_DOCDIR, "$msyspath/local/share/doc/fltk") + AC_DEFINE_UNQUOTED(FLTK_DOCDIR, "$msyspath/local/share/doc/fltk") ;; *) if test x$prefix = xNONE; then - AC_DEFINE_UNQUOTED(FLTK_DOCDIR, "/usr/local/share/doc/fltk") + AC_DEFINE_UNQUOTED(FLTK_DOCDIR, "/usr/local/share/doc/fltk") else - AC_DEFINE_UNQUOTED(FLTK_DOCDIR, "$prefix/share/doc/fltk") + AC_DEFINE_UNQUOTED(FLTK_DOCDIR, "$prefix/share/doc/fltk") fi ;; esac @@ -1574,35 +1574,35 @@ echo "-------------------------------------------------------------------------" case $host_os_gui in cygwin* | mingw*) - graphics="GDI" - ;; + graphics="GDI" + ;; darwin*) - graphics="Quartz" - ;; + graphics="Quartz" + ;; *) - graphics="X11" - if test x$xft_found = xyes; then - graphics="$graphics + Xft" - fi - if test x$xdbe_found = xyes; then - graphics="$graphics + Xdbe" - fi - if test x$xfixes_found = xyes; then - graphics="$graphics + Xfixes" - fi - if test x$xinerama_found = xyes; then - graphics="$graphics + Xinerama" - fi - if test x$xcursor_found = xyes; then - graphics="$graphics + Xcursor" - fi - if test x$xrender_found = xyes; then - graphics="$graphics + Xrender" - fi + graphics="X11" + if test x$xft_found = xyes; then + graphics="$graphics + Xft" + fi + if test x$xdbe_found = xyes; then + graphics="$graphics + Xdbe" + fi + if test x$xfixes_found = xyes; then + graphics="$graphics + Xfixes" + fi + if test x$xinerama_found = xyes; then + graphics="$graphics + Xinerama" + fi + if test x$xcursor_found = xyes; then + graphics="$graphics + Xcursor" + fi + if test x$xrender_found = xyes; then + graphics="$graphics + Xrender" + fi if test x$pango_found = xyes; then graphics="$graphics + pango" fi - ;; + ;; esac echo " Directories: prefix=$prefix" diff --git a/documentation/CMakeLists.txt b/documentation/CMakeLists.txt index b27568bf4..66546cfa6 100644 --- a/documentation/CMakeLists.txt +++ b/documentation/CMakeLists.txt @@ -1,6 +1,4 @@ # -# "$Id$" -# # CMakeLists.txt to build docs for the FLTK project using CMake (www.cmake.org) # # Copyright 1998-2020 by Bill Spitzak and others. @@ -11,9 +9,9 @@ # # https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# https://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # set (DOCS) @@ -36,29 +34,29 @@ if (OPTION_BUILD_HTML_DOCUMENTATION) # generate Doxygen file "Doxyfile" - set(GENERATE_HTML YES) - set(GENERATE_LATEX NO) - set(LATEX_HEADER "") + set(GENERATE_HTML YES) + set(GENERATE_LATEX NO) + set(LATEX_HEADER "") configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in - ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile - @ONLY + ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in + ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile + @ONLY ) configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/src/tiny.png - ${CMAKE_CURRENT_BINARY_DIR}/html/tiny.png - COPYONLY + ${CMAKE_CURRENT_SOURCE_DIR}/src/tiny.png + ${CMAKE_CURRENT_BINARY_DIR}/html/tiny.png + COPYONLY ) # generate html docs add_custom_target(html - # ALL - ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Generating HTML documentation" VERBATIM + # ALL + ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Generating HTML documentation" VERBATIM ) endif (OPTION_BUILD_HTML_DOCUMENTATION) @@ -73,14 +71,14 @@ if (OPTION_BUILD_PDF_DOCUMENTATION) # generate Doxygen file "Doxybook" - set(GENERATE_HTML NO) - set(GENERATE_LATEX YES) - set(LATEX_HEADER "${CMAKE_CURRENT_BINARY_DIR}/fltk-book.tex") + set(GENERATE_HTML NO) + set(GENERATE_LATEX YES) + set(LATEX_HEADER "${CMAKE_CURRENT_BINARY_DIR}/fltk-book.tex") configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in - ${CMAKE_CURRENT_BINARY_DIR}/Doxybook - @ONLY + ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in + ${CMAKE_CURRENT_BINARY_DIR}/Doxybook + @ONLY ) # generate LaTeX header fltk-book.tex @@ -88,30 +86,30 @@ if (OPTION_BUILD_PDF_DOCUMENTATION) set(FL_VERSION ${FLTK_VERSION_FULL}) set(DOXY_VERSION ${DOXYGEN_VERSION}) execute_process(COMMAND date +%Y - OUTPUT_VARIABLE YEAR + OUTPUT_VARIABLE YEAR ) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/fltk-book.tex.in - ${CMAKE_CURRENT_BINARY_DIR}/fltk-book.tex - @ONLY + ${CMAKE_CURRENT_BINARY_DIR}/fltk-book.tex + @ONLY ) # generate fltk.pdf add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/fltk.pdf - COMMAND ${DOXYGEN_EXECUTABLE} Doxybook - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/make_pdf - COMMAND cp -f latex/refman.pdf fltk.pdf - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Generating PDF documentation" VERBATIM + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/fltk.pdf + COMMAND ${DOXYGEN_EXECUTABLE} Doxybook + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/make_pdf + COMMAND cp -f latex/refman.pdf fltk.pdf + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Generating PDF documentation" VERBATIM ) # add target 'pdf' add_custom_target(pdf - # ALL - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/fltk.pdf + # ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/fltk.pdf ) endif(OPTION_BUILD_PDF_DOCUMENTATION) @@ -123,8 +121,8 @@ endif(OPTION_BUILD_PDF_DOCUMENTATION) if (DOCS) add_custom_target(docs - # ALL - DEPENDS ${DOCS} + # ALL + DEPENDS ${DOCS} ) endif (DOCS) @@ -136,7 +134,7 @@ endif (DOCS) if (OPTION_INSTALL_HTML_DOCUMENTATION AND OPTION_BUILD_HTML_DOCUMENTATION) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html - DESTINATION ${FLTK_DATADIR}/doc/fltk + DESTINATION ${FLTK_DATADIR}/doc/fltk ) endif (OPTION_INSTALL_HTML_DOCUMENTATION AND OPTION_BUILD_HTML_DOCUMENTATION) @@ -144,7 +142,7 @@ endif (OPTION_INSTALL_HTML_DOCUMENTATION AND OPTION_BUILD_HTML_DOCUMENTATION) if (OPTION_INSTALL_PDF_DOCUMENTATION AND OPTION_BUILD_PDF_DOCUMENTATION) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/fltk.pdf - DESTINATION ${FLTK_DATADIR}/doc/fltk/ + DESTINATION ${FLTK_DATADIR}/doc/fltk/ ) endif (OPTION_INSTALL_PDF_DOCUMENTATION AND OPTION_BUILD_PDF_DOCUMENTATION) diff --git a/documentation/Makefile b/documentation/Makefile index 97886ae03..0c03b8c56 100644 --- a/documentation/Makefile +++ b/documentation/Makefile @@ -1,6 +1,4 @@ # -# "$Id$" -# # Makefile for the Fast Light Tool Kit (FLTK) documentation. # # Copyright 1998-2020 by Bill Spitzak and others. @@ -9,11 +7,11 @@ # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # -# http://www.fltk.org/COPYING.php +# https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# http://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # # Get configuration stuff... @@ -187,7 +185,3 @@ src/fltk-book.tex: src/fltk-book.tex.in -e"s/@FL_VERSION@/$(FL_VERSION)/g" \ -e"s/@DOXY_VERSION@/$$DOXY_VERSION/g" \ < $< > $@ - -# -# End of "$Id$". -# diff --git a/documentation/README.txt b/documentation/README.txt index 6b7e39980..f144bc68b 100644 --- a/documentation/README.txt +++ b/documentation/README.txt @@ -71,8 +71,8 @@ more CMake options using cmake-gui, ccmake, or cmake -DOPTION... These options are predefined to OFF and can be switched ON: - - OPTION_BUILD_HTML_DOCUMENTATION:BOOL=OFF target: html - - OPTION_BUILD_PDF_DOCUMENTATION:BOOL=OFF target: pdf + - OPTION_BUILD_HTML_DOCUMENTATION:BOOL=OFF target: html + - OPTION_BUILD_PDF_DOCUMENTATION:BOOL=OFF target: pdf - OPTION_INSTALL_HTML_DOCUMENTATION:BOOL=OFF - OPTION_INSTALL_PDF_DOCUMENTATION:BOOL=OFF @@ -106,7 +106,7 @@ Bugs and Feature Requests: -------------------------- If you find any typos, things that are unclear, or would like to contribute an example, section, or chapter to the FLTK manual, please -post a question in the fltk newsgroup fltk.general or post a bug -report or feature request at: +post a question in the fltk group fltk.general or post a bug +report or feature request. For more information see this page: - https://www.fltk.org/str.php + https://www.fltk.org/bugs.php diff --git a/documentation/make_pdf b/documentation/make_pdf index dd8894895..7580cb1d8 100755 --- a/documentation/make_pdf +++ b/documentation/make_pdf @@ -1,7 +1,5 @@ #! /bin/sh # -# $Id$ -# # Makefile helper script for the Fast Light Tool Kit (FLTK) documentation. # # Copyright 1998-2015 by Bill Spitzak and others. @@ -10,11 +8,11 @@ # the file "COPYING" which should have been included with this file. If this # file is missing or damaged, see the license at: # -# http://www.fltk.org/COPYING.php +# https://www.fltk.org/COPYING.php # -# Please report all bugs and problems on the following page: +# Please see the following page on how to report bugs and issues: # -# http://www.fltk.org/str.php +# https://www.fltk.org/bugs.php # # This script generates latex/refman.pdf after doxygen has been executed. @@ -41,7 +39,3 @@ latex_count=`expr $latex_count - 1` done cd ..) > pdfall.log 2>&1 - -# -# End of "$Id$". -# diff --git a/documentation/src/basics.dox b/documentation/src/basics.dox index 97cdb53ea..2b839c322 100644 --- a/documentation/src/basics.dox +++ b/documentation/src/basics.dox @@ -1,7 +1,7 @@ /** \page basics FLTK Basics - + This chapter teaches you the basics of compiling programs that use FLTK. @@ -104,22 +104,22 @@ copy of it - it just uses the pointer. \subsection basics_hierarchies Creating Widget hierarchies -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 +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 myGroup->begin() -and +and myGroup->end(). In this example, \p myGroup would be the \e current group. Newly created groups and their derived widgets implicitly call -\p begin() in the constructor, effectively adding all +\p begin() in the constructor, effectively adding all subsequently created widgets to itself until \p end() is called. Setting the current group to \p NULL will stop automatic -hierarchies. New widgets can now be added manually using +hierarchies. New widgets can now be added manually using Fl_Group::add(...) and Fl_Group::insert(...). @@ -208,7 +208,7 @@ write, or when an error condition occurs on a file. They are most often used to monitor network connections (sockets) for data-driven displays. -FLTK applications must periodically check (Fl::check()) +FLTK applications must periodically check (Fl::check()) or wait (Fl::wait()) for events or use the Fl::run() method to enter a standard event processing loop. Calling Fl::run() is equivalent to the following code: @@ -310,10 +310,10 @@ SRCS = CubeMain.cxx CubeView.cxx CubeViewUI.cxx .SUFFIXES: .o .cxx %.o: %.cxx - $(CXX) $(CXXFLAGS) $(DEBUG) -c $< + $(CXX) $(CXXFLAGS) $(DEBUG) -c $< all: $(TARGET) - $(LINK) -o $(TARGET) $(OBJS) $(LDSTATIC) + $(LINK) -o $(TARGET) $(OBJS) $(LDSTATIC) $(TARGET): $(OBJS) CubeMain.o: CubeMain.cxx CubeViewUI.h @@ -321,16 +321,16 @@ CubeView.o: CubeView.cxx CubeView.h CubeViewUI.h CubeViewUI.o: CubeViewUI.cxx CubeView.h clean: $(TARGET) $(OBJS) - rm -f *.o 2> /dev/null - rm -f $(TARGET) 2> /dev/null + rm -f *.o 2> /dev/null + rm -f $(TARGET) 2> /dev/null \endcode \section basics_visual_cpp Compiling Programs with Microsoft Visual C++ In Visual C++ you will need to tell the compiler where to find the FLTK header files. This can be done by selecting -"Settings" from the "Project" menu and then changing the -"Preprocessor" settings under the "C/C++" tab. You will also +"Settings" from the "Project" menu and then changing the +"Preprocessor" settings under the "C/C++" tab. You will also need to add the FLTK (FLTK.LIB or FLTKD.LIB) and the Windows Common Controls (COMCTL32.LIB) libraries to the "Link" settings. diff --git a/documentation/src/blocks.man b/documentation/src/blocks.man index 920300708..18f263d42 100644 --- a/documentation/src/blocks.man +++ b/documentation/src/blocks.man @@ -21,6 +21,6 @@ Press the spacebar to pause the game. .SH SEE ALSO fltk(3) .br -FLTK Web Site, http://www.fltk.org/ +FLTK Web Site, https://www.fltk.org/ .SH AUTHOR Michael R Sweet. diff --git a/documentation/src/checkers.man b/documentation/src/checkers.man index 097277474..927f22c1c 100644 --- a/documentation/src/checkers.man +++ b/documentation/src/checkers.man @@ -19,6 +19,6 @@ to a "king" which can move both forwards and backwards. .SH SEE ALSO fltk(3) .br -FLTK Web Site, http://www.fltk.org/ +FLTK Web Site, https://www.fltk.org/ .SH AUTHORS Bill Spitzak and others. diff --git a/documentation/src/common.dox b/documentation/src/common.dox index 70cbe8901..2c586a352 100644 --- a/documentation/src/common.dox +++ b/documentation/src/common.dox @@ -1,6 +1,6 @@ /** - \page common Common Widgets and Attributes + \page common Common Widgets and Attributes This chapter describes many of the widgets that are provided with FLTK and covers how to query and set the standard @@ -46,10 +46,10 @@ lbutton->type(FL_TOGGLE_BUTTON); rbutton->type(FL_RADIO_BUTTON); \endcode -For toggle and radio buttons, the \p value() method returns +For toggle and radio buttons, the \p value() method returns the current button state (0 = off, 1 = on). The \p set() and -\p clear() methods can be used on toggle buttons to turn a -toggle button on or off, respectively. +\p clear() methods can be used on toggle buttons to turn a +toggle button on or off, respectively. Radio buttons can be turned on with the \p setonly() method; this will also turn off other radio buttons in the same group. @@ -64,7 +64,7 @@ FLTK provides several text widgets for displaying and receiving text: \li Fl_Multiline_Input - A multi-line text input field. -\li Fl_Multiline_Output - A multi-line text output field. +\li Fl_Multiline_Output - A multi-line text output field. \li Fl_Text_Display - A multi-line text display widget. @@ -76,7 +76,7 @@ The Fl_Output and Fl_Multiline_Output widgets allow the user to copy text from the output field but not change it. -The \p value() method is used to get or set the +The \p value() method is used to get or set the string that is displayed: \code @@ -113,7 +113,7 @@ strings. FLTK provides the following valuators: \image html valuators.png "Figure 3-2: FLTK valuator widgets" \image latex valuators.png "FLTK valuator widgets" width=10cm -The \p value() method gets and sets the current value +The \p value() method gets and sets the current value of the widget. The \p minimum() and \p maximum() methods set the range of values that are reported by the widget. @@ -329,14 +329,14 @@ The last 4 arguments to Fl::set_boxtype() are the offsets for the \p x, \p y, \p width, and \p height values that should be subtracted when drawing the label inside the box. -A complete box design contains four box types in this order: +A complete box design contains four box types in this order: a filled, neutral box (UP_BOX), a filled, depressed box (DOWN_BOX), and the same as outlines only (UP_FRAME and DOWN_FRAME). The function \ref common_fl_down "fl_down(Fl_Boxtype)" -expects the neutral design on a boxtype with a numerical -value evenly dividable by two. +expects the neutral design on a boxtype with a numerical +value evenly dividable by two. \ref common_fl_frame "fl_frame(Fl_Boxtype)" expects the \p UP_BOX design at a value dividable by four. @@ -507,7 +507,7 @@ 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. -To create a new symbol, you implement a drawing function +To create a new symbol, you implement a drawing function void drawit(Fl_Color c) which typically uses the functions described in \ref ssect_Complex to generate a vector shape inside a two-by-two units sized box @@ -567,28 +567,28 @@ button->when(FL_WHEN_CHANGED | FL_WHEN_NOT_CHANGED);

    - +
    Note: + Note: - 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 Fl::delete_widget() - method to mark your widget for deletion when it is safe - to do so. + 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 Fl::delete_widget() + method to mark your widget for deletion when it is safe + to do so. - Hint: + Hint: - 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 this pointer is not - initialized for class methods. + 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 this pointer is not + initialized for class methods. - 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 - \p callback() method of the widget can be a - pointer to the instance of your class. + 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 + \p callback() method of the widget can be a + pointer to the instance of your class. \code class Foo { @@ -601,7 +601,7 @@ class Foo { w->callback(my_static_callback, (void *)this); \endcode -
    diff --git a/documentation/src/development.dox b/documentation/src/development.dox index 13808e6a6..071db9263 100644 --- a/documentation/src/development.dox +++ b/documentation/src/development.dox @@ -15,14 +15,14 @@ This chapter describes FLTK development and documentation. /** \class Fl_Clock_Output \brief 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 Fl_Clock instead. - \image html clock.png - \image latex clock.png "" width=10cm + \image html clock.png + \image latex clock.png "" width=10cm \image html round_clock.png - \image latex clock.png "" width=10cm + \image latex clock.png "" width=10cm \image html round_clock.png "" width=10cm */ /** @@ -163,10 +163,10 @@ Alternatively you can use \b UTF-8 encoding within Doxygen comments. \section development_structure Document Structure - \li \b \\page creates a named page - \li \b \\section creates a named section within that page - \li \b \\subsection creates a named subsection within the current section - \li \b \\subsubsection creates a named subsubsection within the current subsection + \li \b \\page creates a named page + \li \b \\section creates a named section within that page + \li \b \\subsection creates a named subsection within the current section + \li \b \\subsubsection creates a named subsubsection within the current subsection All these statements take a "name" as their first argument, and a title as their second argument. The title can contain spaces. @@ -176,7 +176,7 @@ a size like \b "

    ", \b "

    ", and \b "

    ", and \b "

    ", respectively. By FLTK documentation convention, a file like this one with a doxygen documentation chapter has the name ".dox". -The \b \\page statement at the top of the page is +The \b \\page statement at the top of the page is "\page This is the title". Sections within a documentation page must be called \b "_
    ", where \b "" is the name part of the file, and \b "
    " is a @@ -190,18 +190,18 @@ links \b from normal (e.g. class) documentation \b to documentation sections This page has \code - \page development I - Developer Information + \page development I - Developer Information \endcode at its top. This section is \code - \section development_structure Document Structure + \section development_structure Document Structure \endcode The following section is \code - \section development_links Creating Links + \section development_links Creating Links \endcode diff --git a/documentation/src/drawing.dox b/documentation/src/drawing.dox index d49518a5f..4e12affb2 100644 --- a/documentation/src/drawing.dox +++ b/documentation/src/drawing.dox @@ -1,12 +1,12 @@ /** - \page drawing Drawing Things in FLTK + \page drawing Drawing Things in FLTK This chapter covers the drawing functions that are provided with FLTK. \section sect_WhenCanYouDraw When Can You Draw Things in FLTK? -There are only certain places you can execute FLTK code +There are only certain places you can execute FLTK code that draws to the computer's display. Calling these functions at other places will result in undefined behavior! @@ -22,16 +22,16 @@ Calling these functions at other places will result in undefined behavior! \li You can call Fl_Window::make_current() to do incremental update of a widget. Use Fl_Widget::window() to find the window. - + In contrast, code that draws to other drawing surfaces than the display -(i.e., instances of derived classes of the Fl_Surface_Device class, except -Fl_Display_Device, such as Fl_Printer and Fl_Copy_Surface) can be executed +(i.e., instances of derived classes of the Fl_Surface_Device class, except +Fl_Display_Device, such as Fl_Printer and Fl_Copy_Surface) can be executed at any time as follows: -
    1. Make your surface the new current drawing surface calling the +
      1. Make your surface the new current drawing surface calling the Fl_Surface_Device::push_current(Fl_Surface_Device*) function.
      2. Make a series of calls to any of the drawing functions described below; these will operate on the new current drawing surface; -
      3. Set the current drawing surface back to its previous state calling +
      4. Set the current drawing surface back to its previous state calling Fl_Surface_Device::pop_current().
      @@ -162,7 +162,7 @@ is the order of the line segments: \par Note that -\ref common_fl_frame "fl_frame(Fl_Boxtype b)" +\ref common_fl_frame "fl_frame(Fl_Boxtype b)" is described in the \ref common_boxtypes section. @@ -231,7 +231,7 @@ Fl_Region fl_clip_region() \par 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 +Fl_Region is an operating system specific type. The second form returns the current clipping region. @@ -529,8 +529,8 @@ use \p w-1 and \p h-1. void \ref fl_scroll(int X, int Y, int W, int H, int dx, int dy, void (*draw_area)(void*, int,int,int,int), void* data) \par Scroll a rectangle and draw the newly exposed portions. The contents -of the rectangular area is first shifted by \p dx and -\p dy \ref ssect_DrawingUnit "FLTK units". The callback is then called for every newly +of the rectangular area is first shifted by \p dx and +\p dy \ref ssect_DrawingUnit "FLTK units". The callback is then called for every newly exposed rectangular area, @@ -613,7 +613,7 @@ the path. It is unnecessary but harmless to call or several times in a row. \par -\p %fl_gap() should only be called between +\p %fl_gap() should only be called between \p %fl_begin_complex_polygon() and \p %fl_end_complex_polygon(). To outline the polygon, use @@ -687,13 +687,13 @@ the baseline of the font. To align to the bottom, subtract \p %fl_descent() from \p y. To align to the top, subtract \p %fl_descent() and add \p %fl_height(). This version of \p %fl_draw() provides direct access to -the text drawing function of the underlying OS. It does not apply any -special handling to control characters. +the text drawing function of the underlying OS. It does not apply any +special handling to control characters. void fl_rtl_draw(const char *str, int n, int x, int y) \par -Draw a UTF-8 string of length n bytes right to left starting at the given x, y location. +Draw a UTF-8 string of length n bytes right to left starting at the given x, y location. void fl_draw(const char* str, int x, int y, int w, int h, Fl_Align align, Fl_Image* img, int draw_symbols) @@ -769,7 +769,7 @@ ie. the 'inked area'. Given a string "txt" drawn using fl_draw(txt, x, y) you would determine its extents in \ref ssect_DrawingUnit "FLTK units" on the display using fl_text_extents(txt, dx, dy, wo, ho) such that a bounding box that exactly fits around the inked area of the text -could be drawn with fl_rect(x+dx, y+dy, wo, ho). +could be drawn with fl_rect(x+dx, y+dy, wo, ho). \par Refer to the full documentation for fl_text_extents() for details on usage. @@ -833,21 +833,21 @@ Returns the face and size set by the most recent call to \subsection ssect_CharacterEncoding Character Encoding -FLTK 1.3 expects all text in Unicode UTF-8 encoding. UTF-8 is -ASCII compatible for the first 128 characters. International -characters are encoded in multibyte sequences. +FLTK 1.3 expects all text in Unicode UTF-8 encoding. UTF-8 is +ASCII compatible for the first 128 characters. International +characters are encoded in multibyte sequences. -FLTK expects individual characters, characters that are not part of -a string, in UCS-4 encoding, which is also ASCII compatible, but +FLTK expects individual characters, characters that are not part of +a string, in UCS-4 encoding, which is also ASCII compatible, but requires 4 bytes to store a Unicode character. FLTK can draw accurately any Unicode-supported script for which the system contains relevant fonts. Under X11 platforms, this requires -to build the library with the OPTION_USE_PANGO CMake option turned On +to build the library with the OPTION_USE_PANGO CMake option turned On (or with configure --enable-pango). Plain text drawing starting at a user-given coordinate -is well supported by FLTK, including for right-to-left scripts. +is well supported by FLTK, including for right-to-left scripts. Further text-related operations (i.e., selection, formatting, input, and editing) are functional with left-to-right scripts only. @@ -917,7 +917,7 @@ or negative to flip the image vertically. \par It is highly recommended that you put the following code before the first show() of \e any window in your program to get rid -of the dithering if possible: +of the dithering if possible: \code Fl::visual(FL_RGB); @@ -1039,7 +1039,7 @@ for widgets using the \p image() and \p deimage() methods or drawn directly. Images can be drawn scaled to any size, independently from the size of the image's data (see Fl_Image::scale()). -The Fl_Image class does almost nothing by itself, but is instead +The Fl_Image class does almost nothing by itself, but is instead supported by three basic image types: \li Fl_Bitmap @@ -1054,29 +1054,29 @@ The Fl_Pixmap class encapsulates a colormapped image. The \p draw() method draws the image using the colors in the file, and masks off any transparent colors automatically. -The Fl_RGB_Image 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 draw() 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. +The Fl_RGB_Image 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 draw() 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. char fl_can_do_alpha_blending() \par \p %fl_can_do_alpha_blending() will return 1, if your -platform supports true alpha blending for RGBA images, or 0, +platform supports true alpha blending for RGBA images, or 0, if FLTK will use screen door transparency. FLTK also provides several image classes based on the three standard image types for common file formats: -\li Fl_GIF_Image -\li Fl_JPEG_Image -\li Fl_PNG_Image -\li Fl_PNM_Image -\li Fl_XBM_Image +\li Fl_GIF_Image +\li Fl_JPEG_Image +\li Fl_PNG_Image +\li Fl_PNM_Image +\li Fl_XBM_Image \li Fl_XPM_Image \li Fl_SVG_Image @@ -1127,7 +1127,7 @@ where img is a pointer to any Fl_Image type. \subsection ssect_Offscreen Offscreen Drawing 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 +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. Offscreen drawing functions are declared in . @@ -1148,8 +1148,8 @@ Delete a previously created offscreen buffer. All drawings are lost. void fl_begin_offscreen(Fl_Offscreen) \par -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 +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 Fl_Widget::draw() to occur. void fl_end_offscreen() diff --git a/documentation/src/editor.dox b/documentation/src/editor.dox index 2531dfbae..77c8bbaa5 100644 --- a/documentation/src/editor.dox +++ b/documentation/src/editor.dox @@ -1,6 +1,6 @@ /** - \page editor Designing a Simple Text Editor + \page editor Designing a Simple Text Editor This chapter takes you through the design of a simple FLTK-based text editor. diff --git a/documentation/src/enumerations.dox b/documentation/src/enumerations.dox index fee48b32d..b7c04d055 100644 --- a/documentation/src/enumerations.dox +++ b/documentation/src/enumerations.dox @@ -1,10 +1,10 @@ /** - \page enumerations FLTK Enumerations + \page enumerations FLTK Enumerations - \note This file is not actively maintained any more, but is left - here as a reference, until the doxygen documentation is - completed. + \note This file is not actively maintained any more, but is left + here as a reference, until the doxygen documentation is + completed. \sa \ref FL/Enumerations.H. @@ -31,10 +31,10 @@ The FLTK version number is stored in a number of compile-time constants: currently 10400 (default) \note The ABI version (FL_ABI_VERSION) is usually constant throughout one - major/minor release version, for instance 10300 if FL_API_VERSION is 10304. - Hence the ABI is constant if only the patch version is changed. - You can change this with configure or CMake though if you want the - latest enhancements (called "ABI features", see CHANGES). + major/minor release version, for instance 10300 if FL_API_VERSION is 10304. + Hence the ABI is constant if only the patch version is changed. + You can change this with configure or CMake though if you want the + latest enhancements (called "ABI features", see CHANGES). \section enumerations_events Events diff --git a/documentation/src/events.dox b/documentation/src/events.dox index 82718bec6..7657ce933 100644 --- a/documentation/src/events.dox +++ b/documentation/src/events.dox @@ -1,7 +1,7 @@ /** - \page events Handling Events - + \page events Handling Events + This chapter discusses the FLTK event model and how to handle events in your program or widget. @@ -20,7 +20,7 @@ Other information about the most recent event is stored in static locations and acquired by calling the \ref events_event_xxx. This static information remains valid until the next event -is read from the window system, so it is ok to look at it outside +is read from the window system, so it is ok to look at it outside of the \p handle() method. @@ -59,7 +59,7 @@ the matching \p FL_RELEASE events. If \p handle() returns zero then FLTK will try sending the \p FL_PUSH to -another widget. +another widget. \subsection events_fl_drag FL_DRAG @@ -84,7 +84,7 @@ return non-zero when handling \p FL_PUSH. \subsection events_fl_move FL_MOVE -The mouse has moved without any mouse buttons held down. +The mouse has moved without any mouse buttons held down. This event is sent to the Fl::belowmouse() widget. @@ -169,7 +169,7 @@ If you are writing a text-editing widget you may also want to call the Fl::compose() function to translate individual keystrokes into characters. -\p FL_KEYUP events are sent to the widget that +\p FL_KEYUP events are sent to the widget that currently has focus. This is not necessarily the same widget that received the corresponding \p FL_KEYDOWN event because focus may have changed between events. @@ -241,12 +241,12 @@ class \p handle() method! -\note The events in this chapter ("Widget Events"), i.e. - FL_ACTIVATE, FL_DEACTIVATE, FL_SHOW, and FL_HIDE, - are the only events deactivated and invisible widgets - can usually get, depending on their states. Under certain - circumstances, there may also be FL_LEAVE or FL_UNFOCUS - events delivered to deactivated or hidden widgets. +\note The events in this chapter ("Widget Events"), i.e. + FL_ACTIVATE, FL_DEACTIVATE, FL_SHOW, and FL_HIDE, + are the only events deactivated and invisible widgets + can usually get, depending on their states. Under certain + circumstances, there may also be FL_LEAVE or FL_UNFOCUS + events delivered to deactivated or hidden widgets. \section events_clipboard Clipboard Events @@ -266,17 +266,17 @@ selection indication. Most modern programs ignore this. \section events_dnd Drag and Drop Events -FLTK supports drag and drop of text and files from any +FLTK supports drag and drop of text and files from any application on the desktop to an FLTK widget. Text is transferred using UTF-8 encoding. Files are received as a list of full path -and file names, separated by newline. +and file names, separated by newline. On some X11 platforms, files are received as a URL-encoded UTF-8 string, -that is, non-ASCII bytes (and a few others such as space and %) are +that is, non-ASCII bytes (and a few others such as space and %) are replaced by the 3 bytes "%XY" where XY are the byte's hexadecimal value. The \ref fl_decode_uri() function can be used to transform in-place the received string into a proper UTF-8 string. On these platforms, -strings corresponding to dropped files are further prepended +strings corresponding to dropped files are further prepended by file:// (or other prefixes such as computer://). See Fl::dnd() for drag and drop from an FLTK widget. @@ -308,7 +308,7 @@ The mouse has moved out of the widget. \subsection events_fl_dnd_release FL_DND_RELEASE -The user has released the mouse button dropping data into +The user has released the mouse button dropping data into the widget. If the widget returns 1, it will receive the data in the immediately following \p FL_PASTE event. @@ -324,7 +324,7 @@ Use Fl::add_handler() to be notified of this event. The application window has been changed from normal to fullscreen, or from fullscreen to normal. If you are using a X window manager which supports Extended Window Manager Hints, this event will not be -delivered until the change has actually happened. +delivered until the change has actually happened. \section events_event_xxx Fl::event_*() methods @@ -337,7 +337,7 @@ and \p callback() methods. -These are all trivial inline functions and thus very fast and small: +These are all trivial inline functions and thus very fast and small: \li Fl::event_button() \li Fl::event_clicks() @@ -361,7 +361,7 @@ These are all trivial inline functions and thus very fast and small: Widgets receive events via the virtual handle() function. The argument indicates the type of event that can be handled. The widget must indicate if it handled the -event by returning 1. FLTK will then remove the event and wait for further events +event by returning 1. FLTK will then remove the event and wait for further events from the host. If the widget's handle function returns 0, FLTK may redistribute the event based on a few rules. @@ -399,7 +399,7 @@ Mouse motion (FL_MOVE) events are sent to the Fl::belowmouse() widget, i.e. the widget that returned 1 on the last FL_ENTER event. Mouse wheel events are sent to the window that caused the event. The window -propagates the event down the tree, first to the widget that is below the +propagates the event down the tree, first to the widget that is below the mouse pointer, and if that does not succeed, to all other widgets in the group. This ensures that scroll widgets work as expected with the widget furthest down in the hierarchy getting the first opportunity to use the wheel event, @@ -407,22 +407,22 @@ but also giving scroll bars, that are not directly below the mouse a chance. Keyboard events are sent directly to the widget that has keyboard focus. If the focused widget rejects the event, it is resent as a shortcut event, -first to the top-most window, then to the widget below the mouse pointer, +first to the top-most window, then to the widget below the mouse pointer, propagating up the hierarchy to all its parents. Those send the event also -to all widgets that are not below the mouse pointer. Now if that did not work +to all widgets that are not below the mouse pointer. Now if that did not work out, the shortcut is sent to all registered shortcut handlers. If we are still unsuccessful, the event handler flips the case of the shortcut -letter and starts over. Finally, if the key is "escape", FLTK sends a close +letter and starts over. Finally, if the key is "escape", FLTK sends a close event to the top-most window. -All other events are pretty much sent right away to the window that created +All other events are pretty much sent right away to the window that created the event. Widgets can "grab" events. The grabbing window gets all events exclusively, but usually by the same rules as described above. -Windows can also request exclusivity in event handling by making the +Windows can also request exclusivity in event handling by making the window modal. @@ -433,7 +433,7 @@ requires that you call the Fl::compose() function if you are writing your own text editor widget. Currently, all characters made by single key strokes -with or without modifier keys, or by system-defined character +with or without modifier keys, or by system-defined character compose sequences (that can involve dead keys or a compose key) can be input. You should call Fl::compose() in case any enhancements to this processing are done in the future. The diff --git a/documentation/src/examples.dox b/documentation/src/examples.dox index e7fa38154..4bd3ccd0d 100644 --- a/documentation/src/examples.dox +++ b/documentation/src/examples.dox @@ -1,6 +1,6 @@ /** - \page examples Example Source Code + \page examples Example Source Code The FLTK distribution contains over 60 sample applications written in, or ported to, FLTK. If the FLTK archive you received does not diff --git a/documentation/src/faq.dox b/documentation/src/faq.dox index a407327dd..b42aafeb7 100644 --- a/documentation/src/faq.dox +++ b/documentation/src/faq.dox @@ -1,6 +1,6 @@ /** - \page FAQ FAQ (Frequently Asked Questions) + \page FAQ FAQ (Frequently Asked Questions) A list of frequently asked questions about FLTK. @@ -32,7 +32,7 @@ and then read them, download and build FLTK from the source, then run the test/demo program. Also, go into the 'examples/' directory and run 'make', then run some of those programs. -If you prefer watching TV to reading books and code, google search for +If you prefer watching TV to reading books and code, google search for "FLTK video tutorials" which has some introductory examples of how to write FLTK programs in C++ and build them. @@ -79,8 +79,8 @@ clause ("exception") to allow for static linking. Specifically: example statement can be included in user documentation to satisfy this requirement: - [program/widget] is based in part on the work of the - FLTK project (http://www.fltk.org). + [program/widget] is based in part on the work of the + FLTK project (https://www.fltk.org). \endverbatim diff --git a/documentation/src/fltk-config.man b/documentation/src/fltk-config.man index 2fc3b7f09..6b53958b8 100644 --- a/documentation/src/fltk-config.man +++ b/documentation/src/fltk-config.man @@ -85,6 +85,6 @@ fluid(1), fltk(3) .br FLTK Programming Manual .br -FLTK Web Site, http://www.fltk.org/ +FLTK Web Site, https://www.fltk.org/ .SH AUTHORS Bill Spitzak and others. diff --git a/documentation/src/fltk.man b/documentation/src/fltk.man index 8950712cd..89d680a75 100644 --- a/documentation/src/fltk.man +++ b/documentation/src/fltk.man @@ -21,7 +21,7 @@ The authors do request that such modifications be contributed to the FLTK project - send all contributions through the "Software Trouble Report" on the following page: .IP - http://www.fltk.org/str.php + https://www.fltk.org/bugs.php .IP 2. Widgets that are subclassed from FLTK widgets do not constitute a derivative work. @@ -46,12 +46,12 @@ following example statement can be included in user documentation to satisfy this requirement: .IP [program/widget] is based in part on the work of the FLTK -project (http://www.fltk.org). +project (https://www.fltk.org). .SH SEE ALSO fltk\-config(1), fluid(1) .br FLTK Programming Manual .br -FLTK Web Site, http://www.fltk.org/ +FLTK Web Site, https://www.fltk.org/ .SH AUTHORS Bill Spitzak and others. diff --git a/documentation/src/fluid.dox b/documentation/src/fluid.dox index 1978ce636..9d1e1fcc4 100644 --- a/documentation/src/fluid.dox +++ b/documentation/src/fluid.dox @@ -3,7 +3,7 @@ - \page fluid Programming with FLUID + \page fluid Programming with FLUID This chapter shows how to use the Fast Light User-Interface Designer ("FLUID") to create your GUIs. @@ -135,7 +135,7 @@ files: \code my_panels.h my_panels.cxx: my_panels.fl - fluid -c my_panels.fl + fluid -c my_panels.fl \endcode Most versions of make support rules that cause .fl @@ -144,7 +144,7 @@ files to be compiled: \code .SUFFIXES: .fl .cxx .h .fl.h .fl.cxx: - fluid -c $< + fluid -c $< \endcode If you use diff --git a/documentation/src/fluid.man b/documentation/src/fluid.man index cb6849bc3..1e00598ac 100644 --- a/documentation/src/fluid.man +++ b/documentation/src/fluid.man @@ -9,7 +9,7 @@ fluid [ \-c [ \-o .I header-filename ] ] [ .I filename.fl -] +] .fi .SH DESCRIPTION \fIfluid\fR is an interactive GUI designer for FLTK. When run @@ -19,7 +19,7 @@ Functions, classes, windows, and GUI components can be manipulated as needed. .LP When used with the \fI\-c\fR option, \fIfluid\fR will create the -necessary C++ header and code files in the current directory. +necessary C++ header and code files in the current directory. You can override the default extensions, filenames, and directories using the \fI\-o\fR and \fI\-h\fR options. .SH SEE ALSO @@ -27,6 +27,6 @@ fltk\-config(1), fltk(3) .br FLTK Programming Manual, Chapter 9 .br -FLTK Web Site, http://www.fltk.org/ +FLTK Web Site, https://www.fltk.org/ .SH AUTHORS Bill Spitzak and others. diff --git a/documentation/src/forms.dox b/documentation/src/forms.dox index c2379e983..bb6279934 100644 --- a/documentation/src/forms.dox +++ b/documentation/src/forms.dox @@ -1,7 +1,7 @@ /** - \page forms Forms Compatibility + \page forms Forms Compatibility This appendix describes the Forms compatibility included with FLTK. @@ -27,7 +27,7 @@ new name so you don't write over the old one. 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, . +have more immediate luck with the forms compatibility header, . \section forms_using Using the Compatibility Header File @@ -42,31 +42,31 @@ without changes. 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. +files. Although FLTK was designed to be compatible with the GL Forms library (version 0.3 or so), XForms has bloated severely and its 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. +unused, or that was not X-specific. To use any new features of FLTK, you should rewrite your code to not use the inline functions and instead use "pure" 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 forms.H a lot. +even Digital Domain's inhouse code still uses forms.H a lot. \section forms_problems Problems You Will Encounter Many parts of XForms use X-specific structures like \c XEvent in their interface. I did not emulate these! Unfortunately these features (such as the "canvas" widget) are needed by most large -programs. You will need to rewrite these to use FLTK subclasses. +programs. You will need to rewrite these to use FLTK subclasses. Fl_Free widgets emulate the \e old Forms "free" widget. It may be useful for porting programs that change the \c handle() -function on widgets, but you will still need to rewrite things. +function on widgets, but you will still need to rewrite things. Fl_Timer widgets are provided to emulate the XForms timer. These work, but are quite @@ -77,33 +77,33 @@ the \p x, \p y, \p w, \p h, \p 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 "->x" with "->x()", etc. -Replace "boxtype" with "box()". +Replace "boxtype" with "box()". const char * arguments to most FLTK methods are simply stored, while Forms would \c strdup() the passed string. This is most noticeable with the label of widgets. Your program must always pass static data such as a string constant or malloc'd buffer to \c label(). If you are using labels to display program output you -may want to try the Fl_Output widget. +may want to try the Fl_Output widget. 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. +does. fdesign outputs a setting of a "fdui" 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 \c user_data() field of a window. To do this, search through the fdesign output for all occurrences of "->fdui" and edit to use "->user_data()" -instead. This will require casts and is not trivial. +instead. This will require casts and is not trivial. The prototype for the functions passed to \c fl_add_timeout() -and \c fl_set_idle_callback() callback are different. +and \c fl_set_idle_callback() callback are different. All the following XForms calls are missing: \li \c FL_REVISION, \c fl_library_version() -\li \c FL_RETURN_DBLCLICK (use Fl::event_clicks()) +\li \c FL_RETURN_DBLCLICK (use Fl::event_clicks()) \li \c fl_add_signal_callback() \li \c fl_set_form_atactivate() \c fl_set_form_atdeactivate() \li \c fl_set_form_property() @@ -111,38 +111,38 @@ and \c fl_set_idle_callback() callback are different. \li \c fl_set_form_minsize(), \c fl_set_form_maxsize() \li \c fl_set_form_event_cmask(), \c fl_get_form_event_cmask() \li \c fl_set_form_dblbuffer(), \c fl_set_object_dblbuffer() - (use an Fl_Double_Window instead) + (use an Fl_Double_Window instead) \li \c fl_adjust_form_size() \li \c fl_register_raw_callback() \li \c fl_set_object_bw(), \c fl_set_border_width() \li \c fl_set_object_resize(), \c fl_set_object_gravity() \li \c fl_set_object_shortcutkey() \li \c fl_set_object_automatic() -\li \c fl_get_object_bbox() (maybe FLTK should do this) +\li \c fl_get_object_bbox() (maybe FLTK should do this) \li \c fl_set_object_prehandler(), \c fl_set_object_posthandler() \li \c fl_enumerate_fonts() -\li Most drawing functions -\li \c fl_set_coordunit() (FLTK uses pixels all the time) +\li Most drawing functions +\li \c fl_set_coordunit() (FLTK uses pixels all the time) \li \c fl_ringbell() \li \c fl_gettime() -\li \c fl_win*() (all these functions) -\li \c fl_initialize(argc,argv,x,y,z) ignores last 3 arguments +\li \c fl_win*() (all these functions) +\li \c fl_initialize(argc,argv,x,y,z) ignores last 3 arguments \li \c fl_read_bitmapfile(), \c fl_read_pixmapfile() \li \c fl_addto_browser_chars() -\li \c FL_MENU_BUTTON just draws normally +\li \c FL_MENU_BUTTON just draws normally \li \c fl_set_bitmapbutton_file(), \c fl_set_pixmapbutton_file() -\li \c FL_CANVAS objects -\li \c FL_DIGITAL_CLOCK (comes out analog) +\li \c FL_CANVAS objects +\li \c FL_DIGITAL_CLOCK (comes out analog) \li \c fl_create_bitmap_cursor(), \c fl_set_cursor_color() \li \c fl_set_dial_angles() \li \c fl_show_oneliner() -\li \c fl_set_choice_shortcut(a,b,c) -\li command log -\li Only some of file selector is emulated +\li \c fl_set_choice_shortcut(a,b,c) +\li command log +\li Only some of file selector is emulated \li \c FL_DATE_INPUT -\li \c fl_pup*() (all these functions) -\li textbox object (should be easy but I had no sample programs) -\li xyplot object +\li \c fl_pup*() (all these functions) +\li textbox object (should be easy but I had no sample programs) +\li xyplot object \section forms_notes Additional Notes @@ -166,15 +166,15 @@ 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. None of this works with FLTK. Nor will it compile, the necessary -calls are not in the interface. +calls are not in the interface. You have to make a subclass of Fl_Gl_Window and write a \c draw() method and \c handle() method. This may require anywhere from a trivial to a -major rewrite. +major rewrite. If you draw into the overlay planes you will have to also write a \c draw_overlay() method and call \c redraw_overlay() on the -OpenGL window. +OpenGL window. One easy way to hack your program so it works is to make the \c draw() and \c handle() methods on your window set some static variables, storing @@ -186,7 +186,7 @@ they are events read from \c fl_queue. The file defines replacements for a lot of IRISGL calls, translating them to OpenGL. There are much better translators -available that you might want to investigate. +available that you might want to investigate. \par You Cannot Make Forms Subclasses @@ -200,10 +200,10 @@ if it "understood" the event. An attempt has been made to emulate the "free" widget. This appears to work quite well. It may be quicker to modify your subclass into a -"free" widget, since the "handle" functions match. +"free" widget, since the "handle" functions match. If your subclass draws into the overlay you are in trouble and will -have to rewrite things a lot. +have to rewrite things a lot. \par You Cannot Use diff --git a/documentation/src/glut.dox b/documentation/src/glut.dox index 985d3074f..0effbe5a4 100644 --- a/documentation/src/glut.dox +++ b/documentation/src/glut.dox @@ -1,6 +1,6 @@ /** - \page glut GLUT Compatibility + \page glut GLUT Compatibility This appendix describes the GLUT compatibility header file supplied with FLTK. FLTK's GLUT compatibility is based on the original GLUT 3.7 and @@ -42,7 +42,7 @@ to compile: \li \p glutLayerGet(GLUT_LAYER_IN_USE) \li \p glutPushWindow() \li \p glutSetColor(), \p glutGetColor(), \p glutCopyColormap() -\li \p glutVideoResize() missing. +\li \p glutVideoResize() missing. \li \p glutWarpPointer() \li \p glutWindowStatusFunc() \li Spaceball, buttonbox, dials, and tablet functions @@ -94,17 +94,17 @@ Fl_Window parent window must already be shown. \li Don't call \p glutInit(). \li Create your Fl_Window, and any FLTK widgets. Leave a - blank area in the window for your GLUT window. + blank area in the window for your GLUT window. \li \p show() the Fl_Window. Perhaps call \p show(argc,argv). \li Call window->begin() so that the GLUT window will be - automatically added to it. + automatically added to it. \li Use \p glutInitWindowSize() and \p glutInitWindowPosition() - to set the location in the parent window to put the GLUT window. + to set the location in the parent window to put the GLUT window. \li Put your GLUT code next. It probably does not need many changes. Call window->end() immediately after the \p glutCreateWindow()! \li You can call either \p glutMainLoop(), Fl::run(), - or loop calling Fl::wait() to run the program. + or loop calling Fl::wait() to run the program. \section glut_Fl_Glut_Window class Fl_Glut_Window @@ -139,7 +139,7 @@ or make the window current. window->make_current() is the same as \p glutSetWindow(number). If the window has not had \p show() called on it yet, some functions -that assume an OpenGL context will not work. +that assume an OpenGL context will not work. If you do \p show() the window, call \p make_current() again to set the context. @@ -152,57 +152,57 @@ be altered directly:
      - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +
      memberdescriptionmemberdescription
      displayA pointer to the function to call to draw the normal planes.displayA pointer to the function to call to draw the normal planes.
      entryA pointer to the function to call when the mouse moves into - or out of the window.entryA pointer to the function to call when the mouse moves into + or out of the window.
      keyboardA pointer to the function to call when a regular key is pressed.keyboardA pointer to the function to call when a regular key is pressed.
      menu[3]The menu to post when one of the mouse buttons is pressed.menu[3]The menu to post when one of the mouse buttons is pressed.
      mouseA pointer to the function to call when a button is pressed or - released.mouseA pointer to the function to call when a button is pressed or + released.
      motionA pointer to the function to call when the mouse is moved with - a button down.motionA pointer to the function to call when the mouse is moved with + a button down.
      overlaydisplayA pointer to the function to call to draw the overlay planes.overlaydisplayA pointer to the function to call to draw the overlay planes.
      passivemotionA pointer to the function to call when the mouse is moved with - no buttons down.passivemotionA pointer to the function to call when the mouse is moved with + no buttons down.
      reshapeA pointer to the function to call when the window is resized.reshapeA pointer to the function to call when the window is resized.
      specialA pointer to the function to call when a special key is pressed.specialA pointer to the function to call when a special key is pressed.
      visibilityA pointer to the function to call when the window is iconified - or restored (made visible.)visibilityA pointer to the function to call when the window is iconified + or restored (made visible.)
      diff --git a/documentation/src/html_footer b/documentation/src/html_footer index ac12b5f5f..4d60ab346 100644 --- a/documentation/src/html_footer +++ b/documentation/src/html_footer @@ -2,7 +2,7 @@

@@ -11,7 +11,7 @@