Go to file
Greg Ercolano d36882e67e Adds horizontal scrollbar to Fl_Tree as an ABI 1.3.3 feature.
***************************************************************
NOTE: You MUST uncomment the FLTK_ABI_VERSION in Enumerations.H
      to use these changes.
***************************************************************

Also: separated tree size calculation from draw() code,
so that one can cause the tree to recalculate immediately
after making modifications to the tree by calling Fl_Tree::calc_tree().

Numerous improvements to docs for the tree as well, enough
to create a rather large diff.

Large internal changes were needed to do this properly.
The following was added to the CHANGES file:

	- Fl_Tree: various related changes:
	    o Added horizontal scrollbar
	    o Separated draw() and tree size calculation
	    o Added new public methods:
	        > resize()           -- uses optimized dim calc, avoids tree recalc
		> next_item()        -- added parameters: direction, visibility
		> extend_selection() -- added parameters, improved algorithm
		> calc_dimensions()  -- calc tix/y/w/h, tox/y/w/h and scrollbars
		> calc_tree()        -- calc tree_w/tree_h
		> recalc_tree()      -- schedules calc_tree()
		> first_visible_item(), last_visible_item(), next_visible_item()
		> first_selected_item(), last_selected_item(), next_selected_item()
	    o Added protected variables:
	        > _tix/y/w/h      -- tree widget 'inner' dimension
		> _tox/y/w/h      -- tree widget 'outer' dimension
		> _tree_w,_tree_h -- entire tree hierarchy width/height
	    o Deprecated:
	        > item_clicked() -- use callback_item() instead
		> first_visible() -- use first_visible_item() instead
		> last_visible() -- use last_visible_item() instead

	- Fl_Tree_Item: various related changes:
	    o Added Fl_Tree ptr: needed for auto-recalc when item modified directly
	    o Added new methods tree(), recalc_tree()
	    o Added new ctor that accepts Fl_Tree*
	    o draw() parameters changed to include tree size calculations
	    o Deprecated:
	       > ctor using Fl_Tree_Prefs parameter (Fl_Tree* version better,
	         and must be used for 1.3.3 ABI features to work correctly)
	       > next_displayed() -- use next_visible() instead
	       > prev_displayed() -- use prev_visible() instead

	- test/tree: added tests for newly added features




git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10034 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2013-12-15 18:59:02 +00:00
CMake Updated CMake files with patches from Michael Surette (STR #2317). 2010-11-30 10:34:43 +00:00
FL Adds horizontal scrollbar to Fl_Tree as an ABI 1.3.3 feature. 2013-12-15 18:59:02 +00:00
GL Modifications to all LGPL headers for STR #2685. 2011-07-19 04:49:30 +00:00
cairo STR#3012 Fix: cairo_make_current(void*, int, int) would not release previously allocated cc in certain conditions, fixed the extra cc non null test condition erronously formulated in previous submission. 2013-12-11 06:33:14 +00:00
documentation Made smaller file size, tree image modified 2013-12-14 04:12:21 +00:00
examples o Added Fl_Tree::item_draw_callback(), letting one define a custom draw function for Fl_Tree_Item's. 2013-11-10 04:33:44 +00:00
fluid STR #2997: Disable ESC from closing code window. 2013-10-25 22:03:47 +00:00
ide Renamed src/Fl_Sys_Menu_Bar.cxx to src/Fl_Sys_Menu_Bar.mm because objective-c code is used. 2013-04-16 14:02:42 +00:00
jpeg Fixed more warnings in VC2010 32+64 bits builds 2012-04-24 03:34:26 +00:00
lib Use true instead of : for POSTBUILD on non-MacOS systems. 2002-06-24 19:49:45 +00:00
misc Stop relying on uname and instead ask autoconf what platform 2013-09-24 09:10:04 +00:00
png Fix STR#2846: revert CMakeLists.txt as before libpng upgrade 2012-05-29 14:08:40 +00:00
src Adds horizontal scrollbar to Fl_Tree as an ABI 1.3.3 feature. 2013-12-15 18:59:02 +00:00
test Adds horizontal scrollbar to Fl_Tree as an ABI 1.3.3 feature. 2013-12-15 18:59:02 +00:00
zlib Modifications to all LGPL headers for STR #2685. 2011-07-19 04:49:30 +00:00
ANNOUNCEMENT First checkin simply updating a few version numbers and copyright dates 2008-03-27 21:38:44 +00:00
CHANGES Adds horizontal scrollbar to Fl_Tree as an ABI 1.3.3 feature. 2013-12-15 18:59:02 +00:00
CMakeLists.txt STR 2636. Add ability to get notifications whenever the 2013-09-11 12:54:40 +00:00
COPYING Finished up changes for references to fltk-bugs@fltk.org -> STR form. 2010-04-28 07:21:41 +00:00
CREDITS Update even more version numbers. 2013-03-01 00:40:53 +00:00
DartConfig.cmake Cmake updates (STR #645) 2005-02-06 00:17:50 +00:00
Makefile Stop relying on uname and instead ask autoconf what platform 2013-09-24 09:10:04 +00:00
README STR# 2983. 2013-09-10 16:23:39 +00:00
README.CMake.txt Format tweaks, added some examples. 2013-05-16 13:29:49 +00:00
README.Cairo.txt Typos and formatting, again. 2011-12-10 15:35:00 +00:00
README.MSWindows.txt Add an autogen.sh script as is customary for autoconf based 2013-12-13 10:19:54 +00:00
README.OSX.txt Add an autogen.sh script as is customary for autoconf based 2013-12-13 10:19:54 +00:00
README.Unix.txt Add an autogen.sh script as is customary for autoconf based 2013-12-13 10:19:54 +00:00
autogen.sh Add an autogen.sh script as is customary for autoconf based 2013-12-13 10:19:54 +00:00
configh.cmake.in STR 2636. Add ability to get notifications whenever the 2013-09-11 12:54:40 +00:00
configh.in STR 2636. Add ability to get notifications whenever the 2013-09-11 12:54:40 +00:00
configure.in Stop relying on uname and instead ask autoconf what platform 2013-09-24 09:10:04 +00:00
fltk-config.cmake.in Added back the </dict> erroneously removed at r.9861 2013-04-06 16:15:17 +00:00
fltk-config.in Added the NSHighResolutionCapable item to fltk-config --post for fltk apps to be high-resolution ready. 2013-04-05 15:28:43 +00:00
fltk.list.in Modifications to all LGPL headers for STR #2685. 2011-07-19 04:49:30 +00:00
fltk.spec.in Modifications to all LGPL headers for STR #2685. 2011-07-19 04:49:30 +00:00
fltk.xpm Add FLTK logo file for distributions. 2003-06-13 17:35:17 +00:00
forms.h Initial revision 1998-10-06 18:21:25 +00:00
install-sh Make sure INSTALL command uses absolute path for install-sh... 2007-02-08 19:14:29 +00:00
mac_endianness.h Modifications to all LGPL headers for STR #2685. 2011-07-19 04:49:30 +00:00
makeinclude.in MacOS: create a bundled version of all example programs with fltk-config --post 2012-12-05 14:53:03 +00:00
makesrcdist Stop relying on uname and instead ask autoconf what platform 2013-09-24 09:10:04 +00:00

README

README - Fast Light Tool Kit (FLTK) Version 1.3.2
-------------------------------------------------

WHAT IS FLTK?

    The Fast Light Tool Kit ("FLTK", pronounced "fulltick") is a
    a cross-platform C++ GUI toolkit for UNIX(r)/Linux(r) (X11),
    Microsoft(r) Windows(r), and MacOS(r) X. FLTK provides
    modern GUI functionality without the bloat and supports 3D
    graphics via OpenGL(r) and its built-in GLUT emulation. It
    was originally developed by Mr. Bill Spitzak and is
    currently maintained by a small group of developers across
    the world with a central repository in the US.


LICENSING

    FLTK comes with complete free source code. FLTK is available
    under the terms of the GNU Library General Public License.
    Contrary to popular belief, it can be used in commercial
    software! (Even Bill Gates could use it.)


ON-LINE DOCUMENTATION

    All of the documentation is in HTML in the subdirectory
    "documentation". The "index.html" file should be your
    starting point.  PostScript(tm) and PDF versions of this
    documentation is also available from the FLTK web site at:

        http://www.fltk.org/documentation.php


BUILDING AND INSTALLING FLTK UNDER UNIX AND Mac OS X

    In most cases you can just type "make".  This will run
    configure with the default (no) options and then compile
    everything.

    FLTK uses GNU autoconf to configure itself for your UNIX
    platform. The main things that the configure script will
    look for are the X11, OpenGL (or Mesa), and JPEG header and
    library files.  Make sure that they are in the standard
    include/library locations.  If they aren't you need to
    define the CFLAGS, CXXFLAGS, and LDFLAGS environment
    variables.

    If you aren't using "gcc", "g++", "c++", or "CC" for your
    C++ compiler, you'll also need to set the CXX environment
    variable. Similarly, if you aren't using "gcc" or "cc" for
    your C compiler you'll need to set the CC environment
    variable.

    You can run configure yourself to get the exact setup you
    need. Type "./configure <options>".  Options include:

	--enable-cygwin         - Enable the Cygwin libraries (WIN32)
	--enable-debug          - Enable debugging code & symbols
	--disable-gl            - Disable OpenGL support
	--enable-shared         - Enable generation of shared libraries
	--enable-threads        - Enable multithreading support
	--enable-xdbe           - Enable the X double-buffer extension
	--enable-xft            - Enable the Xft library (anti-aliased fonts)

	--bindir=/path          - Set the location for executables
                        	  [default = /usr/local/bin]
	--libdir=/path          - Set the location for libraries
                        	  [default = /usr/local/lib]
	--includedir=/path      - Set the location for include files.
                        	  [default = /usr/local/include]
	--prefix=/dir           - Set the directory prefix for files
                        	  [default = /usr/local]

    When the configure script is done you can just run the
    "make" command. This will build the library, FLUID tool, and
    all of the test programs.

    To install the library, become root and type "make
    install".  This will copy the "fluid" executable to
    "bindir", the header files to "includedir", and the library
    files to "libdir".

    To install additional files and icons to be used by the main
    desktop environments such as KDE, GNOME and XFCE, you will also
    need to run "make install-desktop" as root.


BUILDING FLTK UNDER MICROSOFT WINDOWS

    There are two ways to build FLTK under Microsoft Windows.
    The first is to use the Visual C++ project files under the
    "ide/" directory.  See the file ide/README.IDE for more info.

    The second method is to use a GNU-based development tool.
    To build with the Cygwin or MinGW tools, use the supplied
    configure script as specified in the UNIX section above:

        sh configure ...options...


BUILDING HTML DOCUMENTATION

    If you want to build the HTML documentation:

    	( cd documentation && make html )

    If you want to build the PDF documentation:

    	( cd documentation && make pdf )
    
    FLTK uses doxygen for documentation, so you'll at least need doxygen
    installed for creating html docs, and LaTeX for creating PDF docs.


INTERNET RESOURCES

    FLTK is available on the 'net in a bunch of locations:

	- WWW:   http://www.fltk.org/
	         http://www.fltk.org/str.php [for reporting bugs]
	         http://www.fltk.org/software.php [source code]

	- FTP:   (offline Apr 20 '13) http://ftp.easysw.com/pub/fltk
	         (offline Apr 20 '13) ftp://ftp.easysw.com/pub/fltk
	         (offline Apr 20 '13) ftp://ftp2.easysw.com/pub/fltk
	         ftp://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub/fltk
	         ftp://linux.mathematik.tu-darmstadt.de/pub/linux/mirrors/misc/fltk
	         ftp://gd.tuwien.ac.at/hci/fltk

    To join the FLTK mailing list, go the following web page:

        http://www.fltk.org/newsgroups.php

REPORTING BUGS

    To report a bug in FLTK, use the form at:

        http://www.fltk.org/str.php

    For general support and questions, please use the FLTK
    mailing list at "fltk@fltk.org".


TRADEMARKS

    Microsoft and Windows are registered trademarks of Microsoft
    Corporation. UNIX is a registered trademark of the X/Open
    Group, Inc.  OpenGL is a registered trademark of Silicon
    Graphics, Inc.  Mac OS is a registered trademark of Apple
    Computers, Inc.


COPYRIGHT

    FLTK is copyright 1998-2013 by Bill Spitzak
    (spitzak@users.sourceforge.net) and others,
    see the CREDITS file for more info.

    This library is free software. Distribution and use rights are
    outlined in the file "COPYING" which should have been included with
    this file.  If this file is missing or damaged, see the license at:

        http://www.fltk.org/COPYING.php