This is a convenience method to support easier implementation of
scheme-specific code in draw() methods and elsewhere.
Also improved Fl::scheme(const char *name) documentation.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10075 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
some key opens a window with possible accented characters. This feature is used by the Fl_Input_ and
Fl_Text_Editor widgets. User-defined text input widgets can optionally use this feature, but the default
behavior is to not use it. Fl_Secret_Input turns it off, for example.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9792 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This introduces 3 new functions
static void Fl::screen_work_area(X,Y,W,H)
static void Fl::screen_work_area(X,Y,W,H,mx,my)
static void Fl::screen_work_area(X,Y,W,H,screen_no)
that compute screen work areas and are used by FLTK to position menu windows.
The Fl::x(),y(),w(),h() functions are made consistent across platforms: they return
the origin/size of the work area of the main screen (as far as possible, see below).
On the Mac OS platform, all screen functions reflect changes in screen number and
positions without requiring the application to restart.
On the X11 platform, I did not find an API to compute the main screen work area
in all conditions. What's used does compute the correct work area when there's
a single screen, but not when there are several, because it returns an area that
encompasses all screens. The implemented workaround is that Fl::x(),y(),w(),h()
and Fl::screen_work_area(X,Y,W,H,0) return the exact work area when there's
a single screen, and return the full screen area when there are several.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9084 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
main screen's work area (system-occupied space excluded); Fl::screen_xywh() functions
instead compute the full width and height of a screen.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8724 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
for middle-mouse paste and DnD, and "clipboard" for copy/paste.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8105 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
part of the confusion was the main page link to
Common Widgets and Attributes/Colors actually went to
Drawing Things in FLTK/Colors therefore making it harder
to find information.
Common Widgets and Attribute/Colors now simplified
Drawing Things in FLTK/Colors now expanded
FLTK Enumerations/Colors now simplified
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7762 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
harmonised parameter names in Fl.H and Fl_arg.cxx and reworked
doxygen comments to make them a bit clearer. More work required.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7729 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
function typedefs" so that they appear in an own documentation group.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7334 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
this is the first stage in putting tutorial type info together.
next stage is to put the functions into related groups for explanation.
corrected minor typo in Fl.H
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6766 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
1) Moved Fl::scrollbar_size() implementation from Fl_Browser_ to Fl::
2) Modified Fl_Browser as per fltk.dev discussions:
* Deprecate Fl_Browser scrollbar_width() method
* Introduce Fl_Browser scrollbar_size() method with global fallback behavior
* Docs for above
Todo: Make similar changes to other scrollbar oriented widgets
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6737 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
in callbacks. This is used e.g. in Fl_Widget::do_callback() to prevent
accessing widgets after deletion in the callback.
Documentation adjusted, Fl_Menu_Button.cxx changed to use Fl_Watch instead
of Fl::watch_widget_pointer.
Fl::watch_widget_pointer() and Fl::release_widget_pointer() have been
modified to use an array without "holes" (NULL pointers) for storing the
widget pointers for faster access: Fl::release_widget_pointer() now shifts
pointers to close gaps of freed pointers.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6651 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
- Added a new Drawing module, re-ordered it to follow color and fonts
module by ading a little defgroup hack in Fl.H
- Completed color and fonts module with global functions found in fl_draw.H
Modules should be quite exhaustive now, please review and add missing modules/ functions if any.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6607 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
- I see Fabien was/is? busy with Fl.H, so I submit the few changes
I've made and hope I haven't trodden on his toes too much :-)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6374 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This integration is minimum as discussed, in particular it does not feature any fltk cairo drawing substitution
as in fltk2.
Still it provides all the fundations to go further even in next 1.4 ...
By default *no* cairo features are implemented nor linked, it can only be activated by --enable-cairo
whose default is false.
Please visit the README.cairo for complete description.
+ fixed UTF8 compilation pb on linux ubuntu
+ minor comments fixes on the fly
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6350 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
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