summaryrefslogtreecommitdiff
path: root/FL
AgeCommit message (Collapse)Author
2022-09-27Simpler code to support FLTK widgets in macOS OpenGL 3 windows.ManoloFLTK
Also, the application-level code to add widgets to a GL3 window becomes platform-independent.
2022-09-25Add cross-platform support for adding widgets to an OpenGL3-based Fl_Gl_Window.ManoloFLTK
Under non-macOS platforms, the key is to call glUseProgram(0); after having used OpenGL 3 which allows to then use OpenGL 1 and draw FLTK widgets over the OpenGL3 scene. Under macOS, this is impossible because macOS GL3 contexts are not compatible with GL1. The solution implemented here is to create an additional Fl_Gl_Window placed above and sized as the GL3-based window, to give it a non opaque, GL1-based context, and to put the FLTK widgets in that additional window.
2022-09-22Fix issue #501: build error under macOS 10.10ManoloFLTK
2022-09-21Improve docs of Fl_Copy_Surface and use of OpenGL 3.ManoloFLTK
2022-09-18Add Doxygen description of FL_FREE_COLOR.ManoloFLTK
2022-09-11Fix fl_read_image() under hybrid Wayland/X11 platform.ManoloFLTK
Function fl_read_image() obliges to keep a minimal use of global variable fl_window also under the Wayland platform, even if its type (Window) makes little sense for the hybrid library because it has its X11 value (given by X11/X.h) which is not meaningful for the Wayland leg of the hybrid platform. Virtual member function Fl_Surface_Device::as_image_surface() becomes useless.
2022-09-09New OPTION_WAYLAND_ONLY for CMake to build pure Wayland platform.ManoloFLTK
2022-09-08Add necessary virtual qualifier to ~Fl_Font_Descriptor() and derived.ManoloFLTK
2022-09-07Improve support of child windows that may leak outside their parent window.ManoloFLTK
1) add Wayland code that prevent subwindows from leaking outside their parent. This does not cover GL subwindows. 2) add macOS code that prevent GL subwindows from leaking outside their parent. This fixes issue #494 for the macOS platform. N.B.: Wayland GL subwindows are not prevented from leaking because no solution that would not require any change in client applications was found. Code that would cover Wayland GL subwindows but would require client applications to always use the FL_ALPHA flag is included in this commit in commented out form.
2022-08-30Hybrid Wayland/X11 platform: improve control of chosen backend.ManoloFLTK
2022-08-30Attempt to improve fl_disable_wayland().ManoloFLTK
2022-08-29Update dependencies, fix trailing whitespaceAlbrecht Schlosser
2022-08-29Make hybrid Wayland/X11 platform.ManoloFLTK
2022-08-25Fix dependencies and whitespace errorsAlbrecht Schlosser
No "real" code changes, but dependencies can affect building.
2022-08-23Comment-only changes.ManoloFLTK
2022-08-23Add FL_EXPORT directives erroneously removed at 7deff86.ManoloFLTK
2022-08-20Remove FL_EXPORT qualifier from platform-specific class declarations.ManoloFLTK
2022-08-20Add int Fl::system(const char *command) static member function.ManoloFLTK
2022-08-19Fl_Graphics_Driver: remove unused virtual qualifiers.ManoloFLTK
2022-08-10Fix Fl_Xlib_Graphics_Driver for drawing tiled images.ManoloFLTK
Conflicting demands arise in the implementation of class Fl_Xlib_Graphics_Driver for drawing images with the XRender library : 1) Issue #163 leads to use a bilinear filter to draw-and-scale images. 2) This tends to blur the edges of drawn areas which is bad for tiled images (that is because the edges get alpha values, even for an opaque source image). This commit resolves the conflict adding a means to detect whether the library is busy drawing a tiled image. If so, the bilinear filter is not applied, drawn areas don't have blurred edges, resulting in a nice tiling. With this commit, these test apps perform correctly: - tiled_image is correct at all scaling factor values also when modified to use a depth-3 or a depth-4 Fl_RGB_Image as tile; - unittests - Drawing Images is correct at all scaling factor values; - pixmap_browser scales correctly up and down JPEG and PNG images.
2022-08-07Fl_Flex: support different margin sizes, improve docsAlbrecht Schlosser
Support different margin sizes on all four edges. Default margin and gap size is now 0 (compatible with Fl_Pack). Doxygen: move the description from the constructor to the class declaration which constitutes a "description". Make some methods virtual and/or 'const'. Clarify demo programs, make them even more "FLTK style".
2022-08-01Add Fl_Flex widget from Karsten Pedersen (issue #255)Albrecht Schlosser
This work is based on the repository and latest commit: https://github.com/osen/FL_Flex.git commit 36e4ed75a00daac825b87e81295818b4650991f5 Author: Karsten Pedersen <...> Date: Fri Apr 23 12:06:16 2021 +0000 Added Fltk (LGPL) license. This widget is similar to Fl_Pack and supports either one row or one column of widgets but has some more features. Test and demo programs are included: test/flex_login.cxx: simple "login window" demo program test/flex_demo.cxx: slightly more complex demo program The original demo programs can still be compiled and built with the new widget provided you '#include <FL/Fl_Flex.H>'. Backwards compatible methods are included (except debug()). The original widget has been modified to match FLTK standards and enhanced in several ways, including: - support box frames - add HORIZONTAL and VERTICAL enum values (as in Fl_Pack) - add horizontal() method (as in Fl_Pack) - use type() rather than internal 'direction' variable - add standard widget constructor (x, y, w, h, label) - add margin and gap accessors rather than hard coding constants - improve test and demo programs - add documentation - replace <vector> with array as required by FLTK CMP - rename camelCase method names, keeping old names for compatibility: - change 'setSize(Fl_Widget*, int)' to 'set_size(Fl_Widget*, int)' - change 'bool isSetSize(Fl_Widget*)' to 'int set_size(Fl_Widget*)' - remove debug() method - add a way to "unset" fixed size: set_size(Fl_Widget *, 0) - add layout() method to force recalculation of children - unify resizeRow() and resizeCol() methods to avoid code duplication - improve widget size calculation.
2022-07-24Add Fl_PostScript_File_Device::set_current() and end_current() members.ManoloFLTK
2022-07-20Change prototype of virtual Fl_Graphics_Driver::pango_font_description().ManoloFLTK
2022-07-14Document that Fl_Help_View can't be used with FL_NO_BOXAlbrecht Schlosser
This widget overrides FL_NO_BOX internally by FL_UP_BOX for all practical purposes, e.g. draw(). This has been this way since its initial release and can't be changed.
2022-07-06Move member q_width from class Fl_Font_Descriptor to Fl_Quartz_Font_Descriptor.ManoloFLTK
That's because this member is used only in Fl_Quartz_Font_Descriptor.
2022-07-05Documentation: add missing mentions of the Wayland platform.ManoloFLTK
2022-07-04Documentation: add Wayland-related information for use of OpenGL 3.ManoloFLTK
2022-06-19Move input method support to Fl_Screen_Driver from Fl_Graphics_DriverManoloFLTK
2022-05-11Remove warning: 'virtual void Fl_Graphics_Driver::xyline(int, int, int, ↵ManoloFLTK
int)' was hidden.
2022-05-09Cleaner declaration of public function fl_wl_cairo().ManoloFLTK
2022-04-20Improve docs of Fl_Image and related classes (#431)Albrecht Schlosser
Clarifications as discussed since April 15, 2022 07:00 UTC (see GitHub issue #431).
2022-04-15Fix documentation typoAlbrecht Schlosser
Fix missing opening quote. (#431 cont'd)
2022-04-15Clarify documentation of Fl_Image::copy() and more (#431)Albrecht Schlosser
- emphasize that Fl_Image::copy(W, H) creates an image with w() == data_w() == W and h() == data_h() == H - clarify some more docs of Fl_Image methods (ensure that data_w() and data_h() are used where appropriate rather than w() and h() - improve wording, examples, and formatting of related docs. Closes #431
2022-04-14Fix for issue #429 : Segfault with Ctrl+/- with current git versionManoloFLTK
2022-04-13Make Fl_Image::copy() 'const', including all derived classesAlbrecht Schlosser
Copying an image does not (and must not) change the original object, hence copy() should always be 'const'. This is *necessary* if the given Fl_Image object is 'const'.
2022-04-13Fix for issue #427 - continued.ManoloFLTK
2022-04-12Fix for issue #427: Problems with data_w, data_h, w, h of Fl_Image.ManoloFLTK
2022-04-07Add note to doc of Fl_Cairo_Window about required build option.ManoloFLTK
2022-04-07Update doc of struct Fl_Menu_Item whose shortcut_ member is now an int.ManoloFLTK
2022-04-03Remove '#include <sys/stat.h>' from FL/platform_types.hAlbrecht Schlosser
- Add this include statement only where needed. - Rename Fl_System_Driver::stat() to flstat(). This fixes an issue when using some (!) MinGW 64-bit build systems that obviously '#define stat _stat64' or similar. This would result in compiler problems if 'stat()' is a member function of Fl_System_Driver.
2022-03-31Fix whitespace errors (no code changes)Albrecht Schlosser
2022-03-31Add support of Fl_Region to the Cairo graphics driverManoloFLTK
and remove it from the Wayland graphics driver.
2022-03-30Add method Fl_Shared_Image::image()Albrecht Schlosser
This public method returns a pointer to the internal Fl_Image object (const Fl_Image *). This is only for reference, the internal image must not be modified by user code but it can be inspected and copied to another image.
2022-03-27Wayland: replace public fl_event_time by static wld_event_time.ManoloFLTK
2022-03-26Add `const` to Fl_Image::fail() (PR #415)YX
2022-03-25Update documentation and dependenciesAlbrecht Schlosser
2022-03-24Remove platform-dependent type Fl_Bitmask (not in documented public API).ManoloFLTK
2022-03-23Wayland: replace global fl_display by function struct wl_display ↵ManoloFLTK
*fl_wl_display().
2022-03-21Avoid using same name (p) for distinct members of derived classes.ManoloFLTK