This public, inline, and read-only accessor is intended for debugging
purposes but can be useful for user code as well.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12472 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This avoids repeating the default values "Shift", "Meta", etc... for several platforms.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12463 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
The following is valid, documented, "standard markdown" for headers in doxygen:
This is a level 1 header
========================
This is a level 2 header
------------------------
Upgrading doxygen from 1.7.4 to 1.8.13 fixed the problem.
So beware of 1.7.4 wrt to these kinds of header markdown;
the result in the docs was no header, the header text + underbars
were appearing inline with the text, crlfs removed.
Not sure exactly what version of doxygen this was fixed in;
a search in their bugzilla for 'headers' seemed to show no
directly relevant matches, other than maybe bug #681898.
https://bugzilla.gnome.org/show_bug.cgi?id=681898
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12459 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This has been working fine for years, not sure what version of doxygen dropped this.
I'm running 1.7.4 here, and that trick isn't working for the Fl_Browser_.H docs.
Changed to using <B> and </B> and <BR> which seems to work OK in both HTML and PDF
generation.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12458 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Removed obsolete '\todo' item from docs (done with recent commits).
Removed redundant code from label assignment (e.g. use FL_IMAGE_LABEL
instead of label type assignment + use of _FL_IMAGE_LABEL).
See recent commits.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12448 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
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
Consequently, remove the trailing _ from its name reserved for private class members.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12433 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This allows to use the virtual function mechanism to adapt scaled image drawing both to the
image type and the graphics driver type.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12410 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Possible side effect: programs that relied upon inclusion of unrelated
system headers by FL/Fl_Table.H or FL/Fl_Table_Row.H may fail to compile.
Removed include files (some only on certain platforms, list may be incomplete):
#include <FL/Fl.H> // moved to implementation (.cxx)
#include <FL/Fl_Box.H> // moved to implementation (.cxx)
#include <FL/Fl_Scrollbar.H> // moved to implementation (.cxx)
#include <sys/types.h>
#include <string.h> // memcpy
#include <malloc.h> // WINDOWS only: malloc/realloc
#include <stdlib.h> // UNIX: malloc/realloc
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12390 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
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
Windows are now rescaled with a call to Fl_Window::resize() which has been slightly modified.
Static member variable bool Fl_Window_Driver::in_resize_after_scale_change is created,
and is true if and only if Fl_Window::resize() is called by Fl_Window_Driver::resize_after_scale_change().
This new flag allows Fl_Window::resize() to perform correctly the rescaling of the window.
Fl_Gl_Window::resize() and Fl_Double_Window::resize() also consult the value of
the Fl_Window_Driver::in_resize_after_scale_change flag.
The platform-specific Fl_WinAPI_Window_Driver::resize() and Fl_X11_Window_Driver::resize()
also use the Fl_Window_Driver::in_resize_after_scale_change flag.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12349 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Clarify that all variants of do_callback() call clear_changed() after
the callback and that 'long Fl_Widget::argument()' may truncate the
user_data value on some (particularly Windows 64-bit) platforms.
Some code has been reformatted and refactored with better variable names,
but there are no effective code changes.
Obsolete, inactive code was removed.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12345 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
It is really an accessor to protected method Fl_Window::flush().
Rename it to Fl_Window_Driver::flush_Fl_Window to reflect that.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12340 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
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
This version is not yet used in existing code. It may be extended with
more methods if we find we need them.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12259 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
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
Corresponds to STR #3320
1) HiDPI support consists in detecting the adequate scaling factor for the screen on which
FLTK maps a window, and scaling all FLTK units by this factor. FLTK tries to detect the correct
value of this factor at startup (see more details below). Environment variable
FLTK_SCALING_FACTOR can also be used to set this value.
2) Rescaling support consists in changing the scaling factor of all FLTK windows
in reply to ctrl/+/-/0/ keystrokes.
More details for the various platforms :
- X11: Support is very advanced. Some details need still to be improved.
Automatic detection of the correct starting value of the scaling factor works well
with the gnome desktop. The present code contains no support for this on
other desktops. FLTK_SCALING_FACTOR provides a workaround.
-WIN32: Support is incomplete at this point, although many test
applications have partial or complete HiDPI and scaling support.
The current value of the system's scaling factor is correctly detected
at application startup. Apps respond to changes of this value in real time.
Support needs to define the FLTK_HIDPI_SUPPORT preprocessor variable
at compile time. This way, standard builds produce a code with the
default WIN32 HiDPI support, that is, where all graphics goes to an internal
buffer that gets enlarged by the system and then mapped to the HiDPI
display. To experiment with (or develop) the new HiDPI support requires
a modified build procedure in which FLTK_HIDPI_SUPPORT is defined
at compile time. When the support will be complete, the requirement for the
definition of this preprocessor variable will be removed. The present commit
contains support for a single scaling factor. Eventually, per-screen scaling
factors should be implemented, as done for X11.
- MacOS: this commit does not give new HiDPI for this platform.
Eventually, window rescaling in reply to command/+/-/0/ is desirable.
Per-screen scaling factor makes no sense on this platform because
the OS itself takes care of the difference between the resolutions of
traditional and retina displays.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12239 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
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
Solves STR# 3381.
Also: standardized doxygen comment style in both files;
> /** */ doxygen commenting
> 2 space indent
Removed some confusing non-doxygen comments, and rewrote some confusing ones.
Removed old license info Matt had imported from my original 2002 widget..
there was no reason for it to be in there; the Fl_Table code inside FLTK
is licensed under the FLTK GPL license, no need for the extra noise in the docs.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12228 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
The X11 platform uses this argument to restore the correct clipping state after
drawing to an Fl_Image_Surface object.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12226 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This helps ensure they are not part of the public API.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12199 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
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
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
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
Make clear that some alignment bit combinations are "illegal" and yield
undefined behavior that can be changed without notice.
Fix label alignment in some border cases where illegal bit combinations like
FL_ALIGN_LEFT and FL_ALIGN_RIGHT or FL_ALIGN_TOP and FL_ALIGN_BOTTOM are
both set, respectively.
Todo: There appears to be inconsistent handling WRT these "illegal" cases,
for instance with inside labels as opposed to outside labels, such that
the behavior seems to be unpredictable. See test/label.cxx.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12181 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Subject: Fl_Glut_Window::Fl_Glut_Window(int w, int h, const char *title = 0)... err huh well no, but it should be
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12151 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This ensures API compatibility with FLTK 1.3 where Fl_Surface_Device->set_current()
is used to change the current drawing surface.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12125 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
FLTK_ABI_VERSION has been renamed to FL_ABI_VERSION in FLTK 1.4.0.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12121 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Missing FL_EXPORT statements (attributes) affected only the configure/make
build because some compiler and linker options (visibility etc) are not
yet implemented in the CMake build.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12113 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Documentation has been fixed and clarified, and ld() handling is now
consistent in Fl_(RGB_)Image, their subclasses and fl_draw_image()
and similar functions.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12029 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Minor code changes (e.g. renaming of variables) included, but no functional
changes.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12003 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
The warning is issued to stderr only once (previously: every time rotated
text was used).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11978 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Missing statements found while merging fixes from branch-1.3.
Todo: check if they have been 'lost' in the porting process
or removed deliberately in branch-1.3-porting.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11976 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
HighDPI support is done with very different means across platforms, so a boolean
value is unlikely to be meaningful across platforms.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11950 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Also, document what is the value of alloc_array after construction of an Fl_RGB_Image object.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11897 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Now you can set OPTION_BUILD_SHARED_LIBS:BOOL=ON to build FLTK dll's with
Visual Studio. Tested and works (Visual Studio 2010 + 2015).
Note: Linux fixes included, tested and works (Ubuntu).
Todo: dll names and target directories may need some changes.
We really need to get rid of that "_SHARED" suffix in .so names.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11867 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Solves STR#3294; added methods to let user set the userdeicon,
and removed the performance degrading automatic deicon creation.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11841 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Some small Fl_Sys_Menu_Bar related doc mods as per STR#3317.
WIP -- more to come; just checking in what I have for now..
1) rank -> index
2) Added docs for index \return values for some methods
3) Some clarification in the internal docs about rank vs. index
4) Enabled Fl_Menu_Item's enum flags to be able to be links (added @file
to Fl_Menu_Item.H) so references to e.g. "::FL_MENU_TOGGLE" will show
up as links in doxygen docs.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11825 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Fixes STR #3306; const version of bound_key_function().
Also affects patches in STR #3305, which will be applied in next commit.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11819 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
It was before protected and Mac OS-specific.
This allows to call it after direct modification of menu items.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11785 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Thus, Fl_Graphics_Driver can be subclassed and only that part of its virtual methods
that is useful for an application is re-implemented.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11762 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
FL/platform_types.h: C++ style comments are not allowed in ISO C90.
src/Fl_Help_View.cxx: type qualifiers ignored on function return type.
src/Fl_Image_Surface.cxx: (Linux) converting to non-pointer type
‘long unsigned int’ from NULL [-Wconversion-null]
Line #70: In member function ‘Fl_Offscreen Fl_Image_Surface::offscreen()’
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11748 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This version works much better than the previous one:
- fixed buffer overflow ("stack corruption")
- fixed potential long text truncation
- fixed tab formatting at line start or any offset divisible by 8
- better handling of HTML entities (aka quoted characters)
- code simplifications, e.g. HV_Edit_Buffer::cmp() + width()
Todo:
- improve and standardize handling of HTML entities
- more tests
Missing features and known bugs:
- strike out text (not implemented)
- table and horizontal line formatting issues (STR #3227)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11746 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
If a platform does not support OpenGL, it can just typedef GLContext as void*
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11733 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Clarify that the resizable() box should be the first child to ensure
correct event delivery to children.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11727 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Class Fl_Gl_Window_Driver, with its platform-specific derived classes, is created
to hold platform-specific, OpenGL code.
File gl_draw.cxx still needs to be converted to the driver model.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11716 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
There is a deeper issue here: regions should be handled by the graphics driver that is associated with the Fl_Window of this widget... .
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11643 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Header files from src/.. must not be included in public header files.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11634 ea41ed52-d2ee-0310-a9c1-e6b18d33e121