Commit Graph

1256 Commits

Author SHA1 Message Date
Manolo Gouy 916b44e361 New member function Fl_Image::scale(int width, int height) to set the FLTK size of an image.
Each image has now two sizes implemented as follows:
   - the pixel size is stored in private members pixel_w_ and pixel_h_
    with public accessors pixel_w() and pixel_h()
   - the FLTK size is stored in private members w_ and h_ and read by w() and h()
   - when the image is constructed, the two sizes have the same value
   - the protected w(int) and h(int) member functions set both FLTK and pixel sizes.
   - the public scale(int, int) member function is essentially nothing but
   set the FLTK size and don't change the pixel size.
   - when the image is drawn, its FLTK size determines how big it is drawn, its pixel
   size determines how much data are available to draw it.

FLTK 1.3.4 with FL_ABI_VERSION=10304 contained an equivalent member function
but only for the Fl_Shared_Image class.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12776 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-19 17:43:18 +00:00
Manolo Gouy 67fc24f3d2 Remove mention of -DFLTK_HIDPI_SUPPORT which was removed.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12733 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-10 17:38:51 +00:00
Manolo Gouy 06b925964d Remove Fl::run_also_windowless() and FL::wait_also_windowless() from planned public FLTK 1.4 API.
These were introduced at r12647, that is, during development of the 1.4 API.
These functions provided windowless support only on the MacOS platform,
where this can be obtained without those functions.
Windowless support on other platforms would require changing the event 
loop. There's no evidence from STR's there's a demand for windowless mode
on other platforms.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12680 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-20 09:08:38 +00:00
Manolo Gouy dcc82d8926 STR#3450: Draw text with OpenGL using textures on all platforms.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12650 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-07 15:34:44 +00:00
Manolo Gouy 425ab2e8bc Add support for detection and processing of clean program termination request.
The default handling of cmd-Q/Quit program under MacOS was to terminate the
program if all its windows are closed without returning from FLTK's event loop.
This was running against a strong design feature of FLTK that programs
should always complete their event loop and return from main() when cleanly
terminating.

In the new code for the MacOS platform, cmd-Q/Quit program no longer terminates
the program. Instead, the event loop is interrupted and a call to Fl::program_should_quit()
allows to detect that program termination has been requested, if necessary.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12647 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-06 17:26:11 +00:00
Albrecht Schlosser cc595ce4ed Replace FL/x.H with FL/platform.H - step 1.
This first step replaces FL/x.H with FL/platform.H but keeps a small
FL/x.H that #include's FL/platform.H for backwards compatibility.
Documentation sources in documentation/src/*.dox have been fixed,
but references in other source files need to be fixed in another step.
Dependencies have been adjusted.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12640 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-01-31 17:46:48 +00:00
Manolo Gouy d361de4d0d STR#3437 : Support display of windows in tabbed form as in MacOS 10.12 Sierra
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12596 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-12-18 15:19:15 +00:00
Albrecht Schlosser f9cfe1378d Rename fl_open_ext() parameter 'translation' to 'binary'.
The default (0) is 'text' mode, non-zero is 'binary' mode on platforms
that distinguish text and binary mode.

Currently Windows is the only supported platform that needs this.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12500 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-15 12:34:24 +00:00
Manolo Gouy b5027d4f29 Mention new function fl_open_ext().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12490 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-12 14:54:47 +00:00
Albrecht Schlosser 322208b855 Add missing Fl_Labeltype and Fl_Boxtype definitions.
Some labeltypes and boxtypes were missing a #define for the enum
without a leading underscore and the corresponding setup function
to initialize the internal table of boxtypes and labeltypes, for
instance _FL_MULTI_LABEL. This is now fixed so (hopefully) all boxtypes
and labeltypes can and _should_ be used w/o leading underscore.

Note: if there are still boxtypes or labeltypes that can't be used w/o
leading underscore this should be considered a bug and is to be fixed ASAP.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12443 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-11 18:54:10 +00:00
Albrecht Schlosser b0a2223642 Fix compiler warning and potential error in PNG error handling.
Compilation with gcc -Wall -Wextra displayed the following warning:

Fl_PNG_Image.cxx: In member function ‘void Fl_PNG_Image::load_png_(const char*, const unsigned char*, int)’:
Fl_PNG_Image.cxx:118:9: warning: variable ‘fp’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]

Making the variable static and initializing it properly avoids this
potential error in the PNG lib's error handling.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12439 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-10 11:38:23 +00:00
Manolo Gouy 8f81b81beb Annonce the new Fl_SVG_Image class and related configure/CMake options.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12416 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-03 14:20:31 +00:00
Albrecht Schlosser 6b24b20966 Fix confusing behavior of class Fl_Text_Selection.
Fl_Text_Selection got a new method length() and returns 0 in length()
and in all offsets (start(), end(), position()) if no text is selected
(selected() == false).

The behavior in FLTK 1.3 and earlier versions (returning undefined
values if !selected()) was confusing.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12356 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-26 12:32:13 +00:00
Albrecht Schlosser 463b3e5d9d Fix blocks demo keyboard handling, add new shortcut.
The blocks demo was unintentionally intercepting ctrl/+ which was
introduced in FLTK 1.4.0 to change scaling for HiDPI screens. Now this
is separated: use ctrl/+/-/0 to change scaling, use '+' alone to change
the game level.

The new keyboard shortcut ALT+SHIFT+H allows users to reset their high
scores without editing the preferences file.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12354 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-25 18:44:19 +00:00
Albrecht Schlosser 7dda366286 Remove documentation of STR #3374 from CHANGES.
We don't need to document STR fixes of bugs that have been introduced
and fixed in FLTK 1.4.0 svn since this is not a regression since 1.3.x.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12328 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-18 15:34:12 +00:00
Manolo Gouy 65b334777f Added support for MacOS 10.13 "High Sierra".
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12325 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-18 05:54:25 +00:00
Albrecht Schlosser 0c210ae867 Introduce Fl_Group::bounds(), deprecate Fl_Group::sizes().
The new method Fl_Group::bounds() replaces Fl_Group::sizes() whose
internal array structure was not documented.

Fl_Group::bounds() uses the new and documented class Fl_Rect for its
internal structure.

src/Fl_Tile.cxx now uses bounds() instead of sizes().


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12302 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-07 19:16:40 +00:00
Albrecht Schlosser 9ee09b1f90 Fix Fl_Browser background and text color parsing (STR #3376).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12252 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-04 14:39:05 +00:00
Manolo Gouy c6cb25aa1b Fix typo.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12250 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-02 09:18:59 +00:00
Manolo Gouy 7b52aafcec Document new HiDPI support under the X11 platform.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12249 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-02 09:13:47 +00:00
Albrecht Schlosser c364bb73f6 Make some methods of Fl_Tabs protected and/or virtual (STR #3211).
Patch proposed by Teklad (STR #3211, file #7):
  http://www.fltk.org/strfiles/3211/Fl_Tabs.H.patch
with minor modifications and adjustments for FLTK 1.4.0.

Method which() is now also virtual, as suggested by guyben in comment #24.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12243 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-05-22 14:34:38 +00:00
Albrecht Schlosser a1d3936554 Allow to disable shadows in Fl_Clock and derived widgets.
As discussed on 2017-05-15 in fltk.general, thread "Fl_clock".


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12237 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-05-15 15:30:52 +00:00
Manolo Gouy 660a65ed01 Mention fix for STR#3374
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12219 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-12 16:16:42 +00:00
Albrecht Schlosser cd10796251 Fix Windows CreateDC/DeleteDC mismatch (STR #3373).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12217 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-11 21:53:50 +00:00
Albrecht Schlosser a1d555bd80 Separated Fl_Input_Choice.H and Fl_Input_Choice.cxx (STR #2750).
As proposed in STR #2750 and #2752: only status quo, i.e.:

  - no new method Fl_Input_Choice::maximum_size(int) (STR #2750 and #2752)
  - no handling of FL_Down key to open menu (STR #2752)


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12192 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-11 23:26:32 +00:00
Albrecht Schlosser 5544404f7a Enable Up/Down keys in Fl_Spinner if input has focus (STR #2989).
Previously Up/Down keys worked only if one of the buttons was pressed
before so that it had the focus.

test/valuators.fl: The second Fl_Spinner widget (FL_FLOAT_INPUT) now has
wrap mode disabled whereas the first one (FL_INT_INPUT) uses wrap mode
(default, compatible with FLTK 1.3.x and older).


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12191 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-10 21:47:08 +00:00
Albrecht Schlosser b67ba50f14 New method Fl_Spinner::wrap(int) to set wrap mode at bounds (STR #3365).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12190 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-10 18:49:44 +00:00
Albrecht Schlosser 7123b78f3f Separated Fl_Spinner.H and Fl_Spinner.cxx (STR #2776).
Also removed deprecated (misspelled) method names mininum() and maxinum().


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12189 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-09 22:08:29 +00:00
Albrecht Schlosser 18bb55545e Fl_Tabs: improve tab label drawing (STR #3075, STR #3076).
New method Fl_Tabs::tab_align() supports icons in tabs (STR #3076).
This commit also enables drawing labels of Fl_Window children (STR #3075).

Setting tab_align(FL_IMAGE_NEXT_TO_TEXT) draws images (icons) in the tab
labels if the child has an image(). Currently this draws the image() even
if the child is deactived (so it should presumably draw the deimage()).

Todo: Label measurement and Fl_Windows as children still need fixups.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12185 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-06 16:54:33 +00:00
Albrecht Schlosser 16774ddc4e Rename test/help demo program to test/help_dialog.
This change avoids a name conflict with CMake's auto-generated target 'help'
for "Unix Makefiles", "Ninja", and supposedly other generators as well.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12171 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-02-08 02:06:52 +00:00
Albrecht Schlosser 759d2f1c99 Fix line number alignment in Fl_Text_Display/Editor (STR #3363).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12170 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-02-04 21:56:38 +00:00
Manolo Gouy 461750c38e X11 platform: Add optional use of the pango library to draw text, gaining the possibility to draw text in any script supported by Unicode.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12153 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-12-21 15:05:02 +00:00
Manolo Gouy d37f37e66e Mention Fl_Surface_Device::push_current(new_surface) and Fl_Surface_Device::pop_current().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12143 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-12-10 14:40:00 +00:00
Albrecht Schlosser 780755e46a Fl_Text_Display documentation clarifications.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12135 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-12-05 17:47:02 +00:00
Albrecht Schlosser b6bd386231 Fl_Text_Buffer constructor: fix "requestedSize ignored in mGapEnd".
mGapEnd should reflect the total allocated size after the constructor
is executed, i.e. the text buffer is empty. This was not the case.

See thread "Fl_Text_Buffer constructor bug" (2016-12-05) in fltk.general.
The bug was harmless, but the pre-allocation did not work as expected, i.e.
the pre-allocated buffer size was allocated but effectively ignored later.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12134 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-12-05 17:03:29 +00:00
Manolo Gouy 0701204518 Mention new --enable-print configure option.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12133 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-12-03 06:59:26 +00:00
Albrecht Schlosser 6fc796738d Fix build with configure --enable-cairo --enable-cairoext.
Add missing #include <config.h>, see this report in fltk.general:

  https://groups.google.com/forum/#!topic/fltkgeneral/x80qQ6wt0s4


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12123 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-11-25 15:15:09 +00:00
Albrecht Schlosser 8cdfb926f2 Reformat CHANGES and update dependencies (make depend).
Saved a few columns in CHANGES so more text fits in 80 columns.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12105 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-11-12 13:09:20 +00:00
Albrecht Schlosser d5295c3bf7 Start branch-1.4 after rename from branch-1.3-porting.
Added FLTK 1.3 CHANGES file as CHANGES_1.3, updated CHANGES to start
release info (changelog) for FLTK 1.4.

You can update the svn configuration of your working to get this
branch if you previously used branch-1.3-porting:

 $ svn switch http://seriss.com/public/fltk/fltk/branches/branch-1.4

If you used branch-1.3 previously we recommend to checkout the new
branch-1.4 in a new working copy.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12099 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-11-11 17:55:44 +00:00
Albrecht Schlosser d039f6f7bc Add new CHANGES file for FLTK 1.4.0.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11116 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-02 03:01:58 +00:00
Albrecht Schlosser 2ddf594bc3 Document configuration of ABI version, prepare CHANGES for 1.4.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11115 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-02 02:59:32 +00:00
Manolo Gouy 25fc85190e Mac OS: Fix for STR#3268 where a fullscreen window could become relocated
behind the menu bar and dock.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10975 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-21 13:38:49 +00:00
Manolo Gouy 9c2a7e4a72 FLTK code and fluid-generated code can be used in static initializers.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10974 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-19 07:27:11 +00:00
Manolo Gouy fc89c11ddf Mention the --enable-x11 configure option is now allowed on the Mac OS platform.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10968 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-15 17:34:47 +00:00
Albrecht Schlosser 14669685d8 Fix Fl_Browser if text argument to some methods is NULL (STR #3269).
Fl_Browser::add(), Fl_Browser::insert(), and Fl_Browser::text() didn't
test if the provided text argument was NULL, although this was explicitly
allowed in the documentation.

Also applied some minor documentation fixes.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10966 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-15 10:16:56 +00:00
Manolo Gouy 22af09dae7 Mac OS: support for high resolution OpenGL windows.
Methods Fl::event_x_pixel() and Fl::event_y_pixel() committed at r.10941
are removed. Instead method Fl_Gl_Window::pixels_per_unit() is added.

The documentation explains in more detail how to write cross-platform
FLTK code supporting high resolution OpenGL windows on retina displays.

The examples/OpenGL3test.cxx app exercises Fl_Gl_Window::pixels_per_unit().

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10945 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-02 09:59:37 +00:00
Manolo Gouy 82f68ac756 Fixed typo.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10943 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-01 16:29:23 +00:00
Manolo Gouy 6c9ceb3ab0 Mention new Fl_Gl_Window::pixel_w(), Fl_Gl_Window::pixel_w(),
Fl::event_x_pixel(),  and Fl::event_y_pixel() functions.
Also, put tab at start of lines, as required.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10942 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-01 16:28:17 +00:00
Manolo Gouy 28355afa15 Mention addition of Fl_Mac_App_Menu::custom_application_menu_items()
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10933 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-26 16:40:34 +00:00
Manolo Gouy 311bd8971e Mention Fl_Copy_Surface::draw_decorated_window().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10931 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-26 15:37:43 +00:00