I did not like the awake_cb system at all. These changes implement Fl::awake(Fl_Awake_Handler, void*) which is called from a thread and tells the main loop to call the specified handler (rather a callback I guess) as soon as possible from within the main thread. It is implemented as Fifo (currently 1024 entry ring buffer), so handlers are called in the order that they are generated in.
"test/threads" was modified to change the label color as soon as a thread reaches 10000 - pretty boring, but it show the wonderful simplicity of this approach: you can write libraries that don't need to add to the main loop or register a handler at all... .
I will do some more stress testing tonight.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5729 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
(Fl::scrollbar_size()) rather than a bunch of separate APIs and
hardcoded values (STR #1800)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5547 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
work area on X11 (STR #1482)
Fix another "missing sentinel" warning in the Xft code.
FL/Fl.H:
- Remove in-line x() and y() implementation for X11.
src/Fl_x.cxx:
- Fl::x(), Fl::y(): Added.
- fl_init_workarea(): Added to get _NET_WORKAREA property from the
root window; if none, is available, the code falls back to 0, 0,
DisplayWidth, and DisplayHeight.
src/fl_font_xft.cxx:
- Missing sentinel needs cast to void *.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5535 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
On Win32, releasing a numeric keypad key w/NumLock off wiould return the wrong keycode (keypad instead of arrow key).
Documentation changed accordingly. X11 code is yet to be tested.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5188 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
screen displays (currently only X11 support with Xinerama)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4223 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
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)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3917 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
the fltk_images library; saves about 16k in the FLTK core library on my
Intel system.
Fix a memory leak bug in most of the fl_set_fonts*.cxx implementations;
as a result, the Fl_Fontdesc structure now has a fontname member to old
the human-readable font name.
Lots of fixes for shadowed variables, etc.
Use snprintf, strlcpy, and strlcat in more places.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2566 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
(Praise the day when I finally stop screwing up cvs ;-/ )
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2536 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Fl_Input now conditionally supports DND out via run-time option.
Fl_Input now clears selection if you click inside the selection when
DND is turned on.
Added support for scheme, dndTextOps, and visibleFocus resources under
X11.
Documented all X resources supported under X11...
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2078 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This code splits the cut & paste into two buffers. The "SELECTION" is
used for the currently highlighted text and for middle-mouse paste and
(if possible) for handling drag & drop. The "CLIPBOARD" is for Ctrl+C
and Ctrl+V style cut & paste.
This matches how Motif, GTK, and KDE 3.0 work. But many older X
applications (including KDE 2) can only see SELECTION, this results in
cut & paste incompatability that is familiar to X users. However this
now moves fltk over to the majority camp. On all systems this
eliminates the annoying inability to select a region and replace it
with Ctrl+V.
On Mac and Win32 the SELECTION is local to the application, so
middle-mouse paste only works between fields in the application. There
may be tricks (special clipboard data types? use drag & drop?) to make
it communicate, but unless there are standards it would be fltk-only.
The file Fl_cutpaste.cxx has been deleted, so update the IDE files!
The Win32 and Mac versions have NOT BEEN TESTED! I tried to be careful
editing them but they may need some work.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1989 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
for new FLTK_SCHEME environment variable, which should get added to
FLTK 2.0 CVS, as well as the -scheme option...)
Revert Fl_Group/Fl_Widget destructor change - it doesn't work for
statically initialized widgets (like the widgets in a color chooser...)
Export fl_round_up_box() and fl_round_down_box() so they can be
restored in Fl::reload_scheme().
Use FL_DOWN_BOX and FL_ROUND_DOWN_BOX in menu drawing code.
Use a static string for the display environment variable in Fl::display().
Updated MacOS README file...
Added window tile image...
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1883 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
- Fl_GIF_Image and Fl_PNG_Image didn't close the file before
calling Fl::error().
- Fl_Help_View didn't clear the line array in Fl_Help_Block,
and Fl_Help_Block::font and ::size were not used.
- Fl_Shared_Image::get() didn't return NULL if the image
could not be loaded.
- Switched to more efficient code for
Fl_Tiled_Image::color_average() and ::desaturate().
- Don't delete children in Fl_Text_Display since the group
will do it.
- Fixes to filename_isdir(), filename_absolute(), and
filename_relative().
- Was using numbers instead of define constants for some
OpenGL stuff under WIN32.
- Wasn't exporting threading functions under WIN32.
- The Fl_Widget destructor now removes from the parent to
avoid a Purify error since the old widget would be
referenced by the parent when it was destroyed; this has
no apparent performance impact since Fl_Group::clear()
sets children_ to 0, making Fl_Group::remove() very
fast...
- WIN32 font enumeration datatype fixes...
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1878 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Redraw parent if child button loses focus and is using FL_NO_BOX.
Fix test/Makefile to build mandelbrot and shiny demos right.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1844 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Enable tooltips by default, and don't enable them when setting the
tooltip value, since that will negate any changes a program might
make when displaying the file chooser dialog, etc.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1777 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Doco updates (use <!-- NEW PAGE --> instead of <HR break>, plus more
Fl_Text_Buffer docos)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1773 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
**** THIS CODE COMPILES BUT DOES NOT WORK. ****
TODO: fix event handling - getting blank windows, etc.
TODO: re-port OpenGL code.
TODO: add support for images with alpha.
TODO: add support for more then just beeps in fl_beep().
TODO: other stuff I'm sure...
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1765 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
single @. Currently only 1 symbol per label, at the beginning or end of the
label string, with the remaining text (and image) getting formatted as
usual. The size of the symbol == lines * labelsize, unless there is
no text in which case the size == height of label area.
Fl_Menu_Item::draw() didn't clear the image field in the Fl_Label
structure.
Removed Fl::enable_symbols(), which is now the default.
Dropped FL_IMAGE_LABEL, FL_PIXMAP_LABEL, and FL_BITMAP_LABEL types,
which are no longer needed.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1561 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Updated the makefile to use config.status --recheck before calling
config.status (why they can't provide one that does both, I don't
know...)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1540 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
windows.
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.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@1347 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
"repeat_timeout", which is shorter and more accurately describes what
it does.
GLUT_STROKE_*_ROMAN in glut.h are defined as 0,1 on WIN32 to match the
glut header files there.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@1232 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
add_timeout will now do the callback at time t after the call to
add_timeout, like before.
add_interval_timeout is a new call that measures time from when the
last timeout was called. This has slightly less overhead and allows
accurate spacing of timeouts.
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.
Makefiles for no-cygwin from Paul Baxter (see README.win32 for info).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@1222 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Updated email addresses to point to fltk.org domain...
Updated README and CHANGES files accordingly.
Updated makeinclude and Makefile files to put -L../lib before the
LDFLAGS/GLDFLAGS to avoid problem reported by Alexander.
documentation/Makefile wasn't including makeinclude.
Updated FLUID about window to show version 1.0.9.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@1168 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
the window list. This window is used as the "parent" of any modal
windows you create so it is a good idea to be able to change it.
Normally it is whatever window got the last event.
Fixed Fl_Menu::global handler to use first_window so if a modal window
pops up in response it is parented to the window containing the
menubar rather than the current top window. This was an annoying bug!
Copied fl_line_style() and the line_style demo over from fltk 2.0
because I am tired of mailing this code to people. Better to advertise this
as "added fl_line_style() function to set line thickness, dash patterns,
and end caps".
Fixed the documentation for these changes.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@1117 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Updated the configure script for *BSD and GCC 2.95 (-fno-exceptions)
Added install rule to documentation directory.
Dumped old packages directory; added traditional RPM spec file and EPM
list file (that replace all of the packages stuff)
The FLUID man page is now "fluid.1" for the formatted page and "fluid.man"
for the non-formatted page, since only IRIX uses pack'd formatted man pages.
Whew!
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@1090 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
as many connections as you want (up to the maximum number handled by
select()).
Fl::remove_fd(fd, when) added. This allows you to remove the read,
write, and error callbacks individually. Fl::remove_fd(fd) does
Fl::remove_fd(fd,-1).
Fl::add_fd() calls Fl::remove_fd(), so it can be used safely to
replace callbacks with new ones for the same file descriptor.
Fl::add_timeout() also dynamically allocates it's array so there is no
limit on the number of pending timeouts.
I cut/pasted the changes into the Windoze version but this is
UNTESTED! Somebody please do a test compile.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@544 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
it takes a window pointer, and grab(0) releases. You can now call grab
repeatedly with the same or different values without it failing. The old
Fl::grab() and Fl::release() are emulated in inline functions in Fl.H
Added Fl_Menu_::copy(Fl_Menu_Item*), which will be useful for fluid, although
that use is nyi.
Fixes and cleanup to the code for Fl_Menu_::add(...).
git-svn-id: file:///fltk/svn/fltk/trunk@268 ea41ed52-d2ee-0310-a9c1-e6b18d33e121