From 82a7afa3ac6078bf9da28192f589d583087c67c1 Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Sat, 19 Mar 2005 20:13:14 +0000 Subject: Added documentation for all programs in the 'test' directory (appendix i). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4135 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- documentation/examples.html | 370 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 370 insertions(+) create mode 100644 documentation/examples.html (limited to 'documentation/examples.html') diff --git a/documentation/examples.html b/documentation/examples.html new file mode 100644 index 000000000..73818f543 --- /dev/null +++ b/documentation/examples.html @@ -0,0 +1,370 @@ + + + +

I - Tests and Demo Source Code

+ +

March 19, 2005

+ +

The FLTK distribution contains over 60 sample applications written +in or ported to FLTK. If the FLTK archive you received does not +contain a 'test' directory, you can download the complete FLTK +distribution from +http://fltk.org/software.php.

+ +

Most of the example programs were created while testing a group of widgets. +They are not meant to be great achievements in clean C++ programming, but merely +a test platform to verify the functionality of the FLTK library.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Example Applications
adjusterarcaskbitmapboxtypebrowser
buttonbuttonscheckersclockcolbrowsercolor_chooser
cubeCubeViewcursorcurvedemodoublebuffer
editorfast_slowfile_chooserfluidfontsforms
fractalsfullscreengl_overlayglpuzzlehellohelp
iconizeimageinactiveinputinput_choicekeyboard
labelline_stylelist_visualsmandelbrotmenubarmessage
minimumnavigationoutputoverlaypackpixmap_browser
pixmappreferencesradioresizeboxresizescroll
shapesubwindowsymbolstabsthreadstile
tiled_imagevaluators
+ +

adjuster

+adjuster shows a nifty little widget for quickly +setting values in a great range. +

arc

+The arc demo explains how to derive your own widget to +generate some custom drawings. The sample drawings use the matrix +based arc drawing for some fun effects. +

ask

+ask shows some of FLTK's standard dialog boxes, but you +may end up in a loop, but you may end up in a loop, but... . +

bitmap

+This simple test shows the use of a single color bitmap as a +label for a box widget. Bitmaps are stored in the X11 '.bmp' +file format and can be part of the source code. +

boxtype

+boxtype gives an overview of readily available boxes and +frames in FLTK. More types can be added by the user. When using +themes, FLTK shuffles boxtypes around to give an app a new look. +

browser

+browser shows the capabilities of the Fl_Browser widget. +Important features tested are loading of files, line formatting, and +correct positioning of the browser data window. +

button

+The button test is a very simple demo of buttons and callbacks. +

buttons

+buttons shows a sample of FLTK button types. +

checkers

+Written by Steve Poulsen in early 1979, checkers shows +how to polish a VT100 text terminal based program into a neat +program with a graphical UI. Check out the code that drags the +pieces, and how the pieces are drawn by layering. Then tell me +how to beat this program. +

clock

+The clock demo shows two analog clocks. The innards of +teh Fl_Clock widget are pretty interesting as they explain +the use of timeouts and matrix based drawing. +

colbrowser

+colbrowser runs only on X11 systems. It reads +/usr/lib/X11/rgb.txt to show the color representation +of every text entry in the file. This is beautiful, but +only mederatly useful unless your UI is written in Motif. +

color_chooser

+The color_chooser gives a short demo of FLTK's palette based +color chooser and of the RGB based color wheel. +

cube

+The cube demo shows the speed of OpenGL. It also tests +the ability to render two OpenGL buffers into a single window, +and shows OpenGL text. +

CubeView

+CubeView shows how to create a UI containing OpenGL with fluid. +

cursor

+The cursor demo show all mouse cursor shapes that come standard +with FLTK. The fgcolor and bgcolor sliders work only +on few systems like Irix. +

curve

+curve draws a nice Bezier curve into a custom widget. The +points option for splines is not supported on all platforms. +

demo

+This tool allows quick access to all programs in the test directory. +demo is viaully based on the IrixGL demo program and cna be +extended by editing test/demo.menu. +

doublebuffer

+The doublebuffer demo show the difference between a single +buffered window, which may flicker during a slow redraw, and a +double buffered window, which never flickers, but uses twice the +amount of RAM. Some modern OS's double buffer all windows automatically +to allow transparency and shadows on the desktop. FLTK is smart enough +to not tripple buffer a window in that case. +

editor

+FLTK has two very different text input widgets. Fl_Input +and derived classes are rather leight weight, however +Fl_Text_Editor is a complete port of nedit (with permission). +The editor test is almost a full application, showing custom +syntax highlighting and dialog creation. +

fast_slow

+fast_slow shows how an application can use then when() +setting to receive different kinds of callbacks. +

file_chooser

+The standard FLTK file_chooser is the result of many +iterations, trying to find a middle ground between a complex +browser and a fast light implementation. +

fonts

+fonts show all available text fonts on the host system. +If your machine still has some pixmap based fonts, the supported +sizes will be shown in bold face. Only the first 256 fonts will +be listed. +

forms

+forms is an XForms program with very few changes. +Search for "fltk" to find all changes necessary to port to fltk. +This demo show the different boxtypes. Note that some +boxtypes are not appropriate for some objects. +

fractals

+fractals shows how to mix OpenGL, Glut and FLTK code. +FLTK supports a rather large subset of Glut, so that many Glut +application compile just fine. +

fullscreen

+This demo shows how to do many of the window manipulations that +are popular on SGI programs, even though X does not really like +them. You can toggle the border on/off, change the visual to +switch between single/double buffer, and make the window take +over the screen. More information in the source code. +

gl_overlay

+gl_overlay shows OpenGL overlay plane rendering. If no +hardware overly plane is available, FLTK will simulate it +automatically. +

glpuzzle

+The glpuzzle test dhows how most Glut source code compiles +easily under FLTK. +

hello

+hello: Hello, World. Need I say maore? Well, maybe. This +tiny demo shows how little is needed to get a functioning application +running with FLTK. Quite impressive, I'd say. +

help

+help displays the built-in FLTK help browser. The +Fl_Help_Dialog understands a subset of html and renders +various image formats. It is a great help to provide help +pages to the user without depending on the operating system's +html browser. +

iconize

+iconize demonstrates the efeect of the window functions +hide(), iconize(), and show(). +

image

+The image demo shows how an image can be created on the fly. +This generated image contains an alpha (transparency) channel which +lets previous renderings 'shine through', either via true +transparency or by using screen door transparency (pixelation). +

inactive

+inactive tests the correct rendering of inactive widgets. +To see the inactive version of images, you can check the pixmap +or image test. +

input

+This tool shows and tests differnet types of text input fields based on +Fl_Input_. The input program also tests various +settings of Fl_Input::when(). +

input_choice

+input_choice tests the latest addition to FLTK1, a text input +field with an attached pulldown menu. Windows users will recognize +similarities to the 'ComboBox'. input_choice starts up in +'plastic' scheme, but the traditional scheme is also supported. +

keyboard

+FLTK unifies keyboard events for all platforms. The keyboard +test can be used to check the return values of Fl::event_key() +and Fl::event_text(). It is also great to see the modifier +buttons and the scroll wheel at work. Quit this application by closing +the window. The ESC key will not work. +

label

+Every FLTK widget can have a label attached to it. The label +demo shows alignment, clipping and wrapping of text labels. Labels +can contain symbols at the start and end of the text, like @FLTK +or @circle uh-huh @square. +

line_style

+Advanced line drawing can be tested with line_style. +Not all platforms support all line styles. +

list_visuals

+This little app finds all available pixel formats for the current X11 +screen. But since you are now an FLTK user, you don't have to worry +about any of this. +

mandelbrot

+mandelbrot shows two advanced topics in one test. It creates +grayscale images on the fly, updating them via the idle callback +system. This is one of the few occasions where the idle callback +is very useful by giving all available processor time to the application +without blocking the UI or other apps. +

menubar

+The menubar tests many aspects of FLTK's popup menu system. +Among the features are radio buttons, menus taller than the screen, +arbitrary sub menu depth, and global shortcuts. +

message

+message pops up a few of FLTK's standars message boxes. +

minimum

+The minimum test program verifies that the update regions +are set correctly. In a real life application, the trail would +be avoided by choosing a smaller label or by setting label clipping. +correctly. +

navigation

+navigation demonstrates how the text cursor moves from +text field to text field by using the arrow keys, tab and shift-tab.. +

output

+output shows the difference between the single line and +multi line mode of the Fl_Output widget. Fonts can be +selected from the FLTK standard list of fonts. +

overlay

+The overlay test app show how easy an FLTK window can +be layered to display cursor and manipulator style elemnts. This +example derives a new class from Fl_Overly_WIndow and +provides a new function to draw custom overlays. +

pack

+The pack test program demonstrates the resizing +and repositioning of children of the Fl_Pack group. +Putting an Fl_Pack into an Fl_Scroll is +a useful way to create a kind of browser. +

pixmap_browser

+pixmap_browser tests the shared image interface. When using +the same image multiple times Fl_Shared_Image will keep it +only once in memory. +

pixmap

+This simple test shows the use of a LUT based pixmap as a +label for a box widget. Pixmaps are stored in the X11 '.xpm' +file format and can be part of the source code. Pixmaps support +one transparent color. +

preferences

+I do have my preferences in the morning, but sometimes I +just can't remember a thing. This is where the Fl_Preferences +come in handy. The remember any kind of data between program launches. +

radio

+The radio tool was created entirely with fluid. It +shows some of the available btton types and tests radio +button behavior. +

resizebox

+resizebox shows some possible ways of FLTK's automatic +resize bahavior.. +

resize

+The resize demo tests size and position functions with +the given window manager. +

scroll

+scroll shows how to scroll an area of widgets, one of +them beeing a slow custom drawing. Fl_Scroll uses +clipping and smart window area copying to improve redraw speed. +The buttons at the bottom of the window test decoration rendering +and updates. +

shape

+shape is a very minimal demo that shows how to create +your own OpenGL rendering widget. Now that you know that, go ahead +and write that flight simulator you always dreamt of. +

subwindow

+The subwindow demo tests messaging and drawing between +the main window and 'true' sub windows. A sub window is differnt +to a group by resetting the FLTK coordinate stystem to 0, 0 in the +top left corner. On Win32 and X11, subwindows have their own +operating system specific handle. +

symbols

+symbols are a speciality of FLTK. These little vector +drawings can be integrated into labels. They scale and rotate, +and with a little patience, you can define your own. The rotation +number refers to 45 degree rotations if you were looking at a +numeric keypad (2 is down, 6 is right, etc.). +

tabs

+The tabs tool was created with fluid. It tests +correct hiding and redisplaying of tabs, navigation across tabs, +resize behavior, and no unneeded redrawing of invisible widgets. +

threads

+FLTK can be used in a multithreading environment. There are some +limitations, mostly due to the underlying operating system. +threads show how to use Fl::lock(), +Fl::unlock(), and Fl::awake() in secondary threads +to keep FLTK happy. Although locking works on all platforms, +this demo is not available on every machine. +

tile

+The tile tool shows a nice way of using Fl_Tile. +To test correct resizing of subwindows, the widget for region +1 is created from an Fl_Window class. +

tiled_image

+The tiled_image demo uses an image as the background +for a window by repeating it over the full size of the widget. +Thw window is resizable and shows how the image gets repeated. +

valuators

+valuators shows all of FLTK's nifty widgets to change +numeric values. +

fluid

+fuid is not only a big test program, but also a very +useful visual UI designer. Many parts of fluid were +created using fluid. + + + -- cgit v1.2.3