Documentation updates.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1625 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Michael R Sweet 2001-09-30 20:25:36 +00:00
parent eb9a83b348
commit 2c61d60470
37 changed files with 121 additions and 134 deletions

View File

@ -15,6 +15,8 @@ CHANGES IN FLTK 1.1.0b3
- fl_line_style() used different default cap and join
options for WIN32 and X11.
- Documentation updates from A. Suatoni.
CHANGES IN FLTK 1.1.0b2

View File

@ -31,9 +31,10 @@ const char * = 0)
char *)</A></H4>
The first constructor sets <TT>box()</TT> to <TT>FL_NO_BOX</TT>, which
means it is invisible. However such widgets are useful as placeholders
or <A href="#Fl_Group.resizable"><TT>Fl_Group::resizable()</TT></A>
or <A href="Fl_Group.html#Fl_Group.resizable"><TT>Fl_Group::resizable()</TT></A>
values. To change the box to something visible, use <TT>box(n)</TT>.
<P>The second form of the constructor sets the box to the specified box
type. </P>
<H4><A name=Fl_Box.~Fl_Box>Fl_Box::~Fl_Box(void)</A></H4>
The destructor removes the box. </BODY></HTML>
The destructor removes the box.
</BODY></HTML>

View File

@ -38,6 +38,7 @@ putting a '&amp;' character in the <TT>label()</TT>. See <A href=Fl_Button.html
<P>Typing the <TT>shortcut()</TT> of any of the items will do exactly
the same as when you pick the item with the mouse. The '&amp;' character in
item names are only looked at when the menu is popped up, however. </P>
<P ALIGN=CENTER><IMG src="choice.gif" ALT="Fl_Choice widget."></P>
<H3>Methods</H3>
<UL>
<LI><A href=#Fl_Choice.Fl_Choice>Fl_Choice</A></LI>

View File

@ -20,6 +20,7 @@
This widget provides a round analog clock display and is provided for
Forms compatibility. It installs a 1-second timeout callback using <A href=functions.html#add_timeout>
<TT>Fl::add_timeout()</TT></A>.
<P ALIGN=CENTER><IMG src="clock.gif" ALT="Fl_Clock widget."> <IMG src="round_clock.gif" ALT="Fl_Clock widget."></P>
<H3>Methods</H3>
<UL>
<LI><A href=#Fl_Clock.Fl_Clock>Fl_Clock</A></LI>

View File

@ -29,7 +29,16 @@ or value is zero.
<UL>
<LI><A href=#Fl_Color_Chooser.Fl_Color_Chooser>Fl_Color_Chooser</A></LI>
<LI><A href=#Fl_Color_Chooser.~Fl_Color_Chooser>~Fl_Color_Chooser</A></LI>
<LI><A href=#Fl_Color_Chooser.add>add</A></LI>
<LI><A href=#Fl_Color_Chooser.b>b</A></LI>
<LI><A href=#Fl_Color_Chooser.g>g</A></LI>
<LI><A href=#Fl_Color_Chooser.hsv2rgb>hsv2rgb</A></LI>
<LI><A href=#Fl_Color_Chooser.hsv>hsv</A></LI>
<LI><A href=#Fl_Color_Chooser.hue>hue</A></LI>
<LI><A href=#Fl_Color_Chooser.rgb2hsv>rgb2hsv</A></LI>
<LI><A href=#Fl_Color_Chooser.rgb>rgb</A></LI>
<LI><A href=#Fl_Color_Chooser.r>r</A></LI>
<LI><A href=#Fl_Color_Chooser.saturation>saturation</A></LI>
<LI><A href=#Fl_Color_Chooser.value>value</A></LI>
</UL>
<H4><A name=Fl_Color_Chooser.Fl_Color_Chooser>
Fl_Color_Chooser::Fl_Color_Chooser(int x, int y, int w, int h, const

View File

@ -19,6 +19,7 @@
<H3>Description</H3>
The <TT>Fl_Counter</TT> widget is provided for forms compatibility.
It controls a single floating point value.
<P ALIGN=CENTER><IMG src="counter.gif" ALT="Fl_Counter widget."></P>
<H3>Methods</H3>
<UL>
<LI><A href=#Fl_Counter.Fl_Counter>Fl_Counter</A></LI>

View File

@ -19,6 +19,7 @@
<H3>Description</H3>
The <TT>Fl_Dial</TT> widget provides a circular dial to control a
single floating point value.
<P ALIGN=CENTER><IMG src="dial.gif" ALT="Fl_Dial widget."></P>
<H3>Methods</H3>
<UL>
<LI><A href=#Fl_Dial.Fl_Dial>Fl_Dial</A></LI>

View File

@ -5,11 +5,9 @@
<H3>Class Hierarchy</H3>
<UL>
<PRE>
<A href=Fl_Widget.html#Fl_Widget>Fl_Widget</A>
<A href=Fl_Window.html#Fl_Window>Fl_Window</A>
|
+----<B>Fl_Gl_Window</B>
|
+----<A href=Fl_Pack.html#Fl_Pack>Fl_Pack</A>, <A href=Fl_Scroll.html#Fl_Scroll>Fl_Scroll</A>, <A href=Fl_Tabs.html#Fl_Tabs>Fl_Tabs</A>, <A href=Fl_Tile.html#Fl_Tile>Fl_Tile</A>, <A href=Fl_Window.html#Fl_Window>Fl_Window</A>
</PRE>
</UL>
<H3>Include Files</H3>
@ -44,7 +42,6 @@ very well for single-buffered. </P>
<LI><A href=#Fl_Gl_Window.context>context</A></LI>
<LI><A href=#Fl_Gl_Window.draw>draw</A></LI>
<LI><A href=#Fl_Gl_Window.draw_overlay>draw_overlay</A></LI>
<LI><A href=#Fl_Gl_Window.handle>handle</A></LI>
</UL>
</TD><TD align=left valign=top>
<UL>
@ -129,12 +126,12 @@ Return or set a pointer to the GLContext that this window is
using. This is a system-dependent structure, but it is portable to copy
the context from one window to another. You can also set it to NULL,
which will force FLTK to recreate the context the next time <a
href=#make_current><tt>make_current()</tt></a> is called, this is
href=#Fl_Gl_Window.make_current><tt>make_current()</tt></a> is called, this is
useful for getting around bugs in OpenGL implementations.
<p>If <i>destroy_flag</i> is true the context will be destroyed by
fltk when the window is destroyed, or when the <a
href=#mode><tt>mode()</tt></a> is changed, or the next time
href=#Fl_Gl_Window.mode><tt>mode()</tt></a> is changed, or the next time
<tt>context(x)</tt> is called.
<H4><A name=Fl_Gl_Window.valid>char Fl_Gl_Window::valid() const

View File

@ -56,7 +56,7 @@ behavior.
<UL>
<LI><A href=#Fl_Group.insert>insert</A></LI>
<LI><A href=#Fl_Group.remove>remove</A></LI>
<LI><A href=#Fl_Group.resizeable>resizable</A></LI>
<LI><A href=#Fl_Group.resizable>resizable</A></LI>
</UL>
</TD></TR>
</TABLE>
@ -128,7 +128,7 @@ added to the widget tree will be added to the parent of the group.
Searches the child array for the widget and returns the index. Returns <A
href=#Fl_Group.children><TT>children()</TT></A> if the widget is <TT>
NULL</TT> or not found.
<H4><A name=Fl_Group.resizeable>void Fl_Group::resizable(Fl_Widget *box)
<H4><A name=Fl_Group.resizable>void Fl_Group::resizable(Fl_Widget *box)
<BR> void Fl_Group::resizable(Fl_Widget &amp;box)
<BR> Fl_Widget *Fl_Group::resizable() const</A></H4>
The resizable widget defines the resizing box for the group. When the

View File

@ -19,7 +19,7 @@
</PRE>
</UL>
<H3>Description</H3>
This is a virtual base class below <A href=functions.html#Fl_Input><TT>
This is a virtual base class below <A href=Fl_Input.html#Fl_Input><TT>
Fl_Input</TT></A>. It has all the same interfaces, but lacks the <TT>
handle()</TT> and <TT>draw()</TT> method. You may want to subclass it
if you are one of those people who likes to change how the editing keys

View File

@ -22,7 +22,7 @@
All widgets that have a menu in FLTK are subclassed off of this class.
Currently FLTK provides you with <A href=Fl_Menu_Button.html#Fl_Menu_Button>
<TT>Fl_Menu_Button</TT></A>, <A href=Fl_Menu_Bar.html#Fl_Menu_Bar><TT>
Fl_Menu_Bar</TT></A>, and <A href=functions.html#Fl_Choice><TT>Fl_Choice</TT>
Fl_Menu_Bar</TT></A>, and <A href=Fl_Choice.html#Fl_Choice><TT>Fl_Choice</TT>
</A>.
<P>The class contains a pointer to an array of structures of type <A

View File

@ -200,7 +200,7 @@ zero disables the shortcut.
<P>The key can be any value returned by <A href=functions.html#event_key>
<TT>Fl::event_key()</TT></A>, but will usually be an ASCII letter. Use
a lower-case letter unless you require the shift key to be held down. </P>
<P>The shift flags can be any set of values accepted by <A href=events.html#event_state>
<P>The shift flags can be any set of values accepted by <A href=functions.html#event_state>
<TT>Fl::event_state()</TT></A>. If the bit is on that shift key must
be pushed. Meta, Alt, Ctrl, and Shift must be off if they are not in
the shift flags (zero for the other bits indicates a &quot;don't care&quot;

View File

@ -5,7 +5,7 @@
<H3>Class Hierarchy</H3>
<UL>
<PRE>
<A href=functions.html#Fl_Input>Fl_Input</A>
<A href=Fl_Input.html#Fl_Input>Fl_Input</A>
|
+----<B>Fl_Multiline_Input</B>
</PRE>

View File

@ -37,7 +37,6 @@ set. </P>
<UL>
<LI><A href=#Fl_Output.Fl_Output>Fl_Output</A></LI>
<LI><A href=#Fl_Output.~Fl_Output>~Fl_Output</A></LI>
<LI><A href=#Fl_Output.cursor_color>cursor_color</A></LI>
<LI><A href=#Fl_Output.index>index</A></LI>
<LI><A href=#Fl_Output.size>size</A></LI>
<LI><A href=#Fl_Output.textcolor>textcolor</A></LI>

View File

@ -25,44 +25,15 @@ each other horizontally. If <TT>type()</TT> is not <TT>FL_HORIZONTAL</TT>
then the children are resized to the width and are stacked below each
other. Then the <TT>Fl_Pack</TT> resizes itself to surround the child
widgets. </P>
<P>This widget is needed for the <A href=#Fl_Tab><TT>Fl_Tab</TT></A>.
<P>This widget is needed for the <A href=Fl_Tabs.html#Fl_Tabs><TT>Fl_Tabs</TT></A>.
In addition you may want to put the <TT>Fl_Pack</TT> inside an <A href=Fl_Scroll.html#Fl_Scroll>
<TT>Fl_Scroll</TT></A>. </P>
<H3>Methods</H3>
<CENTER>
<TABLE width=90% summary="Fl_Pack methods.">
<TR><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Pack.Fl_Pack>Fl_Pack</A></LI>
<LI><A href=#Fl_Pack.~Fl_Pack>~Fl_Pack</A></LI>
<LI><A href=#Fl_Pack.add>add</A></LI>
<LI><A href=#Fl_Pack.spacing>spacing</A></LI>
</UL>
</TD><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Pack.add_resizeable>add_resizeable</A></LI>
<LI><A href=#Fl_Pack.array>array</A></LI>
<LI><A href=#Fl_Pack.begin>begin</A></LI>
</UL>
</TD><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Pack.child>child</A></LI>
<LI><A href=#Fl_Pack.children>children</A></LI>
<LI><A href=#Fl_Pack.current>current</A></LI>
</UL>
</TD><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Pack.end>end</A></LI>
<LI><A href=#Fl_Pack.find>find</A></LI>
<LI><A href=#Fl_Pack.insert>insert</A></LI>
</UL>
</TD><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Pack.remove>remove</A></LI>
<LI><A href=#Fl_Pack.resizeable>resizeable</A></LI>
</UL>
</TD></TR>
</TABLE>
</CENTER>
<H4><A name=Fl_Pack.Fl_Pack>Fl_Pack::Fl_Pack(int x, int y, int w, int
h, const char *label = 0)</A></H4>
Creates a new <TT>Fl_Pack</TT> widget using the given position, size,

View File

@ -19,6 +19,7 @@
<H3>Description</H3>
The <TT>Fl_Roller</TT> widget is a &quot;dolly&quot; control commonly used to
move 3D objects.
<P ALIGN=CENTER><IMG src="Fl_Roller.gif" ALT="Fl_Roller widget."></P>
<H3>Methods</H3>
<UL>
<LI><A href=#Fl_Roller.Fl_Roller>Fl_Roller</A></LI>

View File

@ -34,12 +34,12 @@ Fl_Double_Window</TT>. </P>
draw()</TT> method that draws the contents. The scrolling is done by
changing the <TT>x()</TT> and <TT>y()</TT> of the widget, so this child
must use the <TT>x()</TT> and <TT>y()</TT> to position it's drawing.
To speed up drawing it should test <A href=fl_clip><TT>fl_clip()</TT></A>
To speed up drawing it should test <A href=drawing.html#fl_clip><TT>fl_clip()</TT></A>
. </P>
<P>Another very useful child is a single <A href=Fl_Pack.html#Fl_Pack><TT>
Fl_Pack</TT></A>, which is itself a group that packs it's children
together and changes size to surround them. Filling the <TT>Fl_Pack</TT>
with <A href=#Fl_Tab><TT>Fl_Tab</TT></A> groups (and then putting
with <A href=Fl_Tabs.html#Fl_Tabs><TT>Fl_Tabs</TT></A> groups (and then putting
normal widgets inside those) gives you a very powerful scrolling list
of individually-openable panels. </P>
<P>Fluid lets you create these, but you can only lay out objects that

View File

@ -27,6 +27,7 @@ linesize()</TT>) and Home/End (they jump to the top or bottom).
integers). If desired you can set the <TT>step()</TT> to non-integer
values. You will then have to use casts to get at the floating-point
versions of <TT>value()</TT> from <TT>Fl_Slider</TT>. </P>
<P ALIGN=CENTER><IMG src="scrollbar.gif" ALT="Fl_Scrollbar widget."></P>
<H3>Methods</H3>
<UL>
<LI><A href=#Fl_Scrollbar.Fl_Scrollbar>Fl_Scrollbar</A></LI>

View File

@ -5,7 +5,7 @@
<H3>Class Hierarchy</H3>
<UL>
<PRE>
<A href=functions.html#Fl_Input>Fl_Input</A>
<A href=Fl_Input.html#Fl_Input>Fl_Input</A>
|
+----<B>Fl_Secret_Input</B>
</PRE>
@ -19,7 +19,7 @@
<H3>Description</H3>
The <TT>Fl_Secret_Input</TT> class is a subclass of <TT>Fl_Input</TT>
that displays its input as a string of asterisks. This subclass is
usually used to recieve passwords and other &quot;secret&quot; information.
usually used to receive passwords and other &quot;secret&quot; information.
<H3>Methods</H3>
<UL>
<LI><A href=#Fl_Secret_Input.Fl_Secret_Input>Fl_Secret_Input</A></LI>

View File

@ -24,6 +24,7 @@ if often used as a scrollbar. Moving the box all the way to the
top/left sets it to the <TT>minimum()</TT>, and to the bottom/right to
the <TT>maximum()</TT>. The <TT>minimum()</TT> may be greater than the <TT>
maximum()</TT> to reverse the slider direction.
<P ALIGN=CENTER><IMG src="slider.gif" ALT="Fl_Slider widget."></P>
<H3>Methods</H3>
<UL>
<LI><A href=#Fl_Slider.Fl_Slider>Fl_Slider</A></LI>
@ -43,7 +44,7 @@ size, and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>.
windowtop, int windowsize, int first, int totalsize)</A></H4>
Returns <A href=Fl_Scrollbar.html#Fl_Scrollbar.value><TT>
Fl_Scrollbar::value()</TT></A>.
<H4><A name=Fl_Slider.>Fl_Boxtype Fl_Slider::slider() const
<H4><A name=Fl_Slider.slider>Fl_Boxtype Fl_Slider::slider() const
<BR> void Fl_Slider::slider(Fl_Boxtype)</A></H4>
Set the type of box to draw for the moving part of the slider. The
color of the moving part (or of the notch in it for the nice sliders)

View File

@ -26,7 +26,7 @@ and insures that callbacks are done the same for every object.
<P>There are probably more of these classes in FLTK than any others: </P>
<P ALIGN=CENTER><IMG src="valuators.gif" ALT="Fl_Valuator widgets."></P>
<P>In the above diagram each box surrounds an actual subclass. These
are further differentiated by setting the <A href=#Fl_Widget.type><TT>
are further differentiated by setting the <A href=Fl_Widget.html#Fl_Widget.type><TT>
type()</TT></A> of the widget to the symbolic value labeling the
widget. The ones labelled &quot;0&quot; are the default versions with a <TT>
type(0)</TT>. For consistency the symbol <TT>FL_VERTICAL</TT> is

View File

@ -19,7 +19,7 @@
<H3>Description</H3>
The <TT>Fl_Value_Input</TT> widget displays a floating point value.
The user can click in the text field and edit it (there is in fact a
hidden <A href=#Fl_Input><TT>Fl_Input</TT></A> widget with <TT>
hidden <A href=Fl_Input.html#Fl_Input><TT>Fl_Input</TT></A> widget with <TT>
type(FL_FLOAT_INPUT)</TT> in there), and when they hit return or tab
the value updates to what they typed and the callback is done.
<P>If <TT>step()</TT> is not zero, the user can also drag the mouse
@ -28,6 +28,7 @@ step()</TT> per pixel, the middle by <TT>10 * step()</TT>, and the left
button by <TT>100 * step()</TT>. It is then impossible to select text
by dragging across it, although clicking can still move the insertion
cursor. </P>
<P ALIGN=CENTER><IMG src="Fl_Value_Input.gif" ALT="Fl_Value_Input widget."></P>
<H3>Methods</H3>
<UL>
<LI><A href=#Fl_Value_Input.Fl_Value_Input>Fl_Value_Input</A></LI>

View File

@ -25,6 +25,7 @@ dragging the mouse left and right. The left button moves one <TT>step()</TT>
<P>This is much lighter-weight than <A href=Fl_Value_Input.html#Fl_Value_Input>
<TT>Fl_Value_Input</TT></A> because it contains no text editing code or
character buffer. </P>
<P ALIGN=CENTER><IMG src="Fl_Value_Output.gif" ALT="Fl_Value_Output widget."></P>
<H3>Methods</H3>
<UL>
<LI><A href=#Fl_Value_Output.Fl_Value_Output>Fl_Value_Output</A></LI>

View File

@ -21,7 +21,7 @@
<H3>Description</H3>
<TT>Fl_Widget</TT> is the base class for all widgets in FLTK. You can't
create one of these because the constructor is not public. However you
can <A href="#subclassing">subclass</A> it.
can <A href="subclassing.html#subclassing">subclass</A> it.
<P>All &quot;property&quot; accessing methods, such as <TT>color()</TT>, <TT>
parent()</TT>, or <TT>argument()</TT> are implemented as trivial inline
functions and thus are as fast and small as accessing fields in a
@ -95,16 +95,16 @@ to call <TT>redraw()</TT> after these. </P>
</TD></TR>
</TABLE>
</CENTER>
<H4>Fl_Widget::Fl_Widget(int x, int y, int w, int h, const char*
label=0);</H4>
<H4><A NAME="Fl_Widget.Fl_Widget">Fl_Widget::Fl_Widget(int x, int y, int w, int h, const char*
label=0);</A></H4>
This is the protected constructor for an Fl_Widget, but all derived
widgets have a matching public constructor. It takes a value for x(),
y(), w(), h(), and an optional value for label().
<H4>virtual Fl_Widget::~Fl_Widget();</H4>
<H4><A NAME="Fl_Widget.~Fl_Widget">virtual Fl_Widget::~Fl_Widget();</A></H4>
Destroying single widgets is not very common. It is your
responsibility to either remove() them from any enclosing group, or to
destroy that group <I>immediately</I> after destroying the children.
<H4>uchar Fl_Widget::type() const;</H4>
<H4><A NAME="Fl_Widget.type">uchar Fl_Widget::type() const;</A></H4>
This value is used for Forms compatability and to simulate RTTI.
<H4><A name=Fl_Widget.x>short Fl_Widget::x() const</A>
<BR><A name=Fl_Widget.y>short Fl_Widget::y() const</A>
@ -161,7 +161,7 @@ the widget.
const char*)
<BR> uchar Fl_Widget::labeltype() const
<BR> void Fl_Widget::labeltype(Fl_Labeltype)</A></H4>
A <A href=#LabelTypes><TT>labeltype</TT></A> identifies a routine that
A <A href="common.html#labeltypes"><TT>labeltype</TT></A> identifies a routine that
draws the label of the widget. This can be used for special effects
such as emboss, or to use the <TT>label()</TT> pointer as another form
of data such as a bitmap. The value <TT>FL_NORMAL_LABEL</TT> prints
@ -275,7 +275,7 @@ FL_DEACTIVATE</TT> to the widget if <tt>active_r()</tt> is true.
<A name=Fl_Widget.set_output>void Fl_Widget::set_output()</A></BR>
<A name=Fl_Widget.clear_output>void Fl_Widget::clear_output()</A></H4>
<tt>output()</tt> means the same as <tt>!active()</tt> except it does
not change how the widget is drawn. The widget will not recieve any
not change how the widget is drawn. The widget will not receive any
events. This is useful for making scrollbars or buttons that work as
displays rather than input devices.
@ -284,9 +284,9 @@ displays rather than input devices.
This is the same as <TT>(active() &amp;&amp; visible() &amp;&amp;
!output())</TT> but is faster.
<H4><A name=Fl_Widget.redraw>void Fl_Widget::redraw()</A></H4>
Mark the widget as needing its <TT>draw()</TT> routine called.
Mark the widget as needing its <A HREF="subclassing.html#draw"><TT>draw()</TT></A> routine called.
<H4><A name=Fl_Widget.damage>uchar Fl_Widget::damage() const</A></H4>
Non-zero if <TT>draw()</TT> needs to be called. Actually this is a
Non-zero if <A HREF="subclassing.html#draw"><TT>draw()</TT></A> needs to be called. Actually this is a
bit field that the widget subclass can use to figure out what parts to
draw.
<H4><A name=Fl_Widget.parent>Fl_Widget *Fl_Widget::parent() const</A></H4>

View File

@ -128,16 +128,15 @@ are ignored. (this is ignored on WIN32)</LI>
window managers)</LI>
</UL>
If this function is not called, FLTK tries to figure out the range
from the setting of <A href=#Fl_Group.resizable><TT>resizeable()</TT></A>
:
from the setting of <A href="Fl_Group.html#Fl_Group.resizable"><TT>resizable()</TT></A>:
<UL>
<LI>If <TT>resizeable()</TT> is <TT>NULL</TT> (this is the default)
<LI>If <TT>resizable()</TT> is <TT>NULL</TT> (this is the default)
then the window cannot be resized and the resize border and max-size
control will not be displayed for the window. </LI>
<LI>If either dimension of <TT>resizeable()</TT> is less than 100,
<LI>If either dimension of <TT>resizable()</TT> is less than 100,
then that is considered the minimum size. Otherwise the <TT>
resizeable()</TT> has a minimum size of 100. </LI>
<LI>If either dimension of <TT>resizeable()</TT> is zero, then that is
resizable()</TT> has a minimum size of 100. </LI>
<LI>If either dimension of <TT>resizable()</TT> is zero, then that is
also the maximum size (so the window cannot resize in that direction). </LI>
</UL>
It is undefined what happens if the current size does not fit in the

View File

@ -143,7 +143,7 @@ the pointer.
Fl_Box draws, changing it from the default of <tt>FL_NO_BOX</tt>, which means
that no box is drawn. In our &quot;Hello, World!&quot; example we use <TT>
FL_UP_BOX</TT>, which means that a raised button border will be drawn
around the widget. You can learn more about boxtypes in <A href=#boytypes>
around the widget. You can learn more about boxtypes in <A href="common.html#boytypes">
Chapter 3</A>.
<p>You could examine the boxtype in by doing
<tt>box->box()</tt>. Fltk uses method name overloading to make

View File

@ -36,10 +36,10 @@ rbutton-&gt;type(FL_RADIO_BUTTON);
</UL>
For toggle and radio buttons, the <A href=Fl_Button.html#Fl_Button.value>
<TT>value()</TT></A> method returns the current button state (0 = off,
1 = on). The <A href=#Fl_Widget.set><TT>set()</TT></A> and <A href=#Fl_Widget.clear>
1 = on). The <A href="Fl_Button.html#Fl_Button.set"><TT>set()</TT></A> and <A href="Fl_Button.html#Fl_Button.clear">
<TT>clear()</TT></A> methods can be used on toggle buttons to turn a
toggle button on or off, respectively. Radio buttons can be turned on
with the <A href=#Fl_Widget.setonly><TT>setonly()</TT></A> method; this
with the <A href="Fl_Button.html#Fl_Button.setonly"><TT>setonly()</TT></A> method; this
will also turn off other radio buttons in the same group.
<H2>Text</H2>
FLTK provides several text widgets for displaying and receiving text:
@ -211,7 +211,7 @@ widget. </LI>
box. </LI>
<LI><TT>FL_ALIGN_WRAP</TT> - wrap the label text as needed. </LI>
</UL>
<H3>labeltype()</H3>
<H3><A NAME="labeltypes">labeltype()</A></H3>
The <TT>labeltype()</TT> method sets the type of the label. The
following standard label types are included:
<UL>
@ -239,7 +239,7 @@ program-generated letters or symbology.
<H5>Label Type Functions</H5>
To setup your own label type you will need to write two functions to
draw and measure the label. The draw function is called with a pointer
to a <A href=#Fl_Label><TT>Fl_Label</TT></A> structure containing the
to a <TT>Fl_Label</TT> structure containing the
label information, the bounding box for the label, and the label
alignment:
<UL>
@ -252,8 +252,8 @@ void xyz_draw(Fl_Label *label, int x, int y, int w, int h, Fl_Align align) {
The label should be drawn <I>inside</I> this bounding box, even if <TT>
FL_ALIGN_INSIDE</TT> is not enabled. The function is not called if the
label value is <TT>NULL</TT>.
<P>The measure function is called with a pointer to a <A href=#Fl_Label><TT>
Fl_Label</TT></A> structure and references to the width and height: </P>
<P>The measure function is called with a pointer to a <TT>Fl_Label</TT>
structure and references to the width and height: </P>
<UL>
<PRE>
void xyz_measure(Fl_Label *label, int &amp;w, int &amp;h) {

View File

@ -6,15 +6,15 @@
Calling these functions at other places will result in undefined
behavior!
<UL>
<LI>The most common is inside the virtual method <A href=#draw><TT>
<LI>The most common is inside the virtual method <A href="subclassing.html#draw"><TT>
Fl_Widget::draw()</TT></A>. To write code here, you must subclass one
of the existing <TT>Fl_Widget</TT> classes and implement your own
version of <TT>draw()</TT>. </LI>
<LI>You can also write <A href=common.html#boxtypes>boxtypes</A> and <A href=#labeltypes>
<LI>You can also write <A href=common.html#boxtypes>boxtypes</A> and <A href="common.html#labeltypes">
labeltypes</A>. These are small procedures that can be called by
existing <TT>Fl_Widget::draw()</TT> methods. These &quot;types&quot; are
identified by an 8-bit index that is stored in the widget's <TT>box()</TT>
, <TT>labeltype()</TT>, and possibly other properties. </LI>
existing <A HREF="subclassing.html#draw"><TT>Fl_Widget::draw()</TT></A> methods. These &quot;types&quot; are
identified by an 8-bit index that is stored in the widget's <TT>box()</TT>,
<TT>labeltype()</TT>, and possibly other properties. </LI>
<LI>You can call <A href=Fl_Window.html#Fl_Window.make_current><TT>
Fl_Window::make_current()</TT></A> to do incremental update of a
widget. Use <A href=Fl_Widget.html#Fl_Widget.window><TT>
@ -134,7 +134,7 @@ Windows 95/98, use the dash styles instead.</i>
These are used to draw almost all the FLTK widgets. They draw on
exact pixel boundaries and are as fast as possible, and their behavior
will be duplicated exactly on any platform FLTK is ported to. It is
undefined whether these are affected by the <A href=#complex_shapes>
undefined whether these are affected by the <A href=#complex>
transformation matrix</A>, so you should only call these while it is
the identity.
<H4>void fl_point(int x, int y)</H4>
@ -237,7 +237,7 @@ fl_gap()</TT> with <TT>fl_end_loop();fl_begin_loop()</TT>.</P>
y2, float x3, float y3)</H4>
Add a series of points on a Bezier curve to the path. The curve ends
(and two of the points) are at <TT>x,y</TT> and <TT>x3,y3</TT>.
<H4>void fl_arc(float x, float y, float r, float start, float end)</H4>
<H4><A NAME="fl_arc">void fl_arc(float x, float y, float r, float start, float end)</A></H4>
Add a series of points to the current path on the arc of a circle (you
can get elliptical paths by using scale and rotate before calling
this). <TT>x,y</TT> are the center of the circle, and <TT>r</TT> is its
@ -337,10 +337,10 @@ thus redrawing is <I>much</I> faster.
It is undefined whether the location or drawing of the image is
affected by the current transformation, so you should only call these
when it is the identity.
<H4>void fl_draw_image(const uchar *, int X, int Y, int W, int H, int D
<H4><A NAME="fl_draw_image">void fl_draw_image(const uchar *, int X, int Y, int W, int H, int D
= 3, int LD = 0)
<BR> void fl_draw_image_mono(const uchar *, int X, int Y, int W, int H,
int D = 1, int LD = 0)</H4>
int D = 1, int LD = 0)</A></H4>
Draw an 8-bit per color RGB or luminance image. The pointer points at
the &quot;r&quot; data of the top-left pixel. Data must be in <TT>r,g,b</TT>
order. <TT>X,Y</TT> are where to put the top-left corner. <TT>W</TT>

View File

@ -152,7 +152,7 @@ because some of the other callbacks will set the changed status to 0,
and also because we want to show the changed status in the window's
title bar.
<H3>copy_cb()</H3>
This callback function will call <A href=#Fl_Input.copy><TT>
This callback function will call <A href=Fl_Input_.html#Fl_Input_.copy><TT>
input-&gt;copy()</TT></A> to copy the currently selected text to the
clipboard:
<UL>
@ -230,7 +230,7 @@ void find2_cb(void) {
}
</PRE>
</UL>
If the search string cannot be found we use the <A href=#fl_alert><TT>
If the search string cannot be found we use the <A href="functions.html#fl_alert"><TT>
fl_alert()</TT></A> convenience function to display a message to that
effect.
<H3>new_cb()</H3>

View File

@ -9,12 +9,12 @@ useful to know when programming.
constants:
<UL>
<LI><TT>FL_MAJOR_VERSION</TT> - The major release number, currently 1. </LI>
<LI><TT>FL_MINOR_VERSION</TT> - The minor release number, currently 0. </LI>
<LI><TT>FL_MINOR_VERSION</TT> - The minor release number, currently 1. </LI>
<LI><TT>FL_PATCH_VERSION</TT> - The patch release number, currently 0. </LI>
<LI><TT>FL_VERSION</TT> - A combined floating-point version number for
the major and minor release numbers, currently 1.0. </LI>
the major, minor, and patch release numbers, currently 1.0100. </LI>
</UL>
<H2>Events</H2>
<H2><A NAME="events">Events</A></H2>
Events are identified by an <TT>Fl_Event</TT> enumeration value. The
following events are currently defined:
<UL>

View File

@ -9,7 +9,7 @@ a key, an event is generated and sent to your application. Events can also
come from other programs like the window manager.
<P>Events are identified by the integer argument passed to the
<A href=functions.html#handle> <TT>Fl_Widget::handle()</TT></A> virtual
<A href="subclassing.html#handle"> <TT>Fl_Widget::handle()</TT></A> virtual
method. Other information about the most recent event is stored in
static locations and acquired by calling the <A
href=#event_xxx><TT>Fl::event_*()</TT></A> methods. This static
@ -20,28 +20,28 @@ method).
<H2>Mouse Events</H2>
<H3>FL_PUSH</H3>
A mouse button has gone down with the mouse pointing at this widget.
You can find out what button by calling <A href=#event_button><TT>
You can find out what button by calling <A href="functions.html#event_button"><TT>
Fl::event_button()</TT></A>. You find out the mouse position by
calling <A href=#event_x><TT>Fl::event_x()</TT></A> and <A href=functions.html#event_y>
calling <A href="functions.html#event_x"><TT>Fl::event_x()</TT></A> and <A href="functions.html#event_y">
<TT>Fl::event_y()</TT></A>.
<P>A widget indicates that it &quot;wants&quot; the mouse click by returning
non-zero from its <A href=functions.html#handle><TT>handle()</TT></A>
method. It will then become the <A href=functions.html#pushed><TT>
non-zero from its <A href="subclassing.html#handle"><TT>handle()</TT></A>
method. It will then become the <A href="functions.html#pushed"><TT>
Fl::pushed()</TT></A> widget and will get <TT>FL_DRAG</TT> and the
matching <TT>FL_RELEASE</TT> events. If <TT>handle()</TT> returns zero
then FLTK will try sending the <TT>FL_PUSH</TT> to another widget. </P>
<H3>FL_DRAG</H3>
The mouse has moved with a button held down. The current button state is
in <a href="#event_state"><tt>Fl::event_state()</tt></a>. The mouse position
is in <a href="#event_x"><tt>Fl::event_x()</tt></a> and
<a href="#event_y"><tt>Fl::event_y()</tt></a>.
in <a href="functions.html#event_state"><tt>Fl::event_state()</tt></a>. The mouse position
is in <a href="functions.html#event_x"><tt>Fl::event_x()</tt></a> and
<a href="functions.html#event_y"><tt>Fl::event_y()</tt></a>.
<P>To receive <CODE>FL_DRAG</CODE> events you must also respond to the
<CODE>FL_PUSH</CODE> and <CODE>FL_RELEASE</CODE> events.
<H3>FL_RELEASE</H3>
A mouse button has been released. You can find out what button by
calling <A href=#event_button><TT>Fl::event_button()</TT></A>.
calling <A href="functions.html#event_button"><TT>Fl::event_button()</TT></A>.
<H3>FL_MOVE</H3>
The mouse has moved without any mouse buttons held down. This event
is sent to the <A href="functions.html#belowmouse"><TT>Fl::belowmouse()</TT></A>
@ -187,7 +187,7 @@ to leaf widgets. These procedures control those leaf widgets: </P>
<LI><A href=functions.html#grab><TT>Fl::grab</TT></A></LI>
<LI><A href=functions.html#modal><TT>Fl::modal</TT></A></LI>
<LI><A href=functions.html#pushed><TT>Fl::pushed</TT></A></LI>
<LI><A href=functions.html#release><TT>Fl::release</TT></A></LI>
<LI><TT>Fl::release</TT></LI>
<LI><A href=Fl_Widget.html#Fl_Widget.take_focus><TT>Fl_Widget::take_focus</TT></A>
</LI>
</UL>

View File

@ -661,7 +661,7 @@ easiest way is by typing Ctrl+j. </P>
<H4>Label style (pull down menu)</H4>
How to draw the label. Normal, shadowed, engraved, and embossed
change the appearance of the text. &quot;symbol&quot; requires the label to
start with an '@' sign to draw a named <A href=Labeltypes.html#symbols>
start with an '@' sign to draw a named <A href="common.html#symbols">
symbol</A>.
<P>From this menu you can also pick <A href=drawing.html#images>
&quot;Image...&quot;</A>. This lets you use the contents of a GIF, XPM, or

View File

@ -33,14 +33,14 @@ zero and leaves RGB unchanged.
<P>If you use the color chooser on an 8-bit screen, it will allocate
all the available colors, leaving you no space to exactly represent the
color the user picks! You can however use <A href=#fl_rectf><tt>
color the user picks! You can however use <A href="drawing.html#fast"><tt>
fl_rectf()</tt></A> to fill a region with a simulated color using
dithering.
<h3><A name=fl_show_colormap>int fl_show_colormap(int oldcol)</A></h3>
<tt>fl_show_colormap()</tt> pops up a panel of the 256 colors you can
access with <A href=#fl_color><tt>fl_color()</tt></A> and lets the user
access with <A href="drawing.html#fl_color"><tt>fl_color()</tt></A> and lets the user
pick one of them. It returns the new color index, or the old one if
the user types ESC or clicks outside the window.
<P ALIGN=CENTER><IMG src="fl_show_colormap.gif" ALT="The fl_show_colormap dialog">
@ -53,7 +53,7 @@ window, or may be many lines by putting <tt>\n</tt> characters into it.
The enter key is a shortcut for the OK button.
<P ALIGN=CENTER><IMG src="fl_message.gif" ALT="The fl_message window.">
<h3><A name=fl_>void fl_alert(const char *, ...)</A></h3>
<h3><A name="fl_alert">void fl_alert(const char *, ...)</A></h3>
Same as <tt>fl_message()</tt> except for the &quot;!&quot; symbol.
<P ALIGN=CENTER><IMG src="fl_alert.gif" ALT="The fl_alert window">
@ -585,7 +585,7 @@ FL_Left, FL_Up, FL_Right, FL_Down, FL_Shift_L, FL_Shift_R,
FL_Control_L, FL_Control_R, FL_Caps_Lock, FL_Alt_L, FL_Alt_R,
FL_Meta_L, FL_Meta_R, FL_Menu, FL_Num_Lock, FL_KP_Enter</tt>. Be
careful not to confuse these with the very similar, but all-caps,
symbols used by <A href=events.html#event_state><tt>Fl::event_state()</tt>
symbols used by <A href="#event_state"><tt>Fl::event_state()</tt>
</A>. </LI>
</UL>
@ -631,7 +631,7 @@ after</I> the shift key is pressed or released.
<h3><A name=event_text>char *Fl::event_text()</A></h3>
Returns the ASCII text (in the future this may be UTF-8) produced by
the last <tt>FL_KEYBOARD</tt> or <tt>FL_PASTEM</tt> or possibly other
the last <tt>FL_KEYBOARD</tt> or <tt>FL_PASTE</tt> or possibly other
event. A zero-length string is returned for any keyboard function keys
that do not produce text. This pointer points at a static buffer and is
only valid until the next event is processed.
@ -831,7 +831,7 @@ However the colors may flash as you move the cursor between windows.
<h3><A name=paste>static void Fl::paste(Fl_Widget *receiver)</A></h3>
Set things up so the receiver widget will be called with an <A href=#FL_PASTE>
Set things up so the receiver widget will be called with an <A href="enumerations.html#events">
<tt>FL_PASTE</tt></A> event some time in the future. The reciever
should be prepared to be called <I>directly</I> by this, or for it to
happen <I>later</I>, or possibly <I>not at all</I>. This allows the
@ -1001,7 +1001,7 @@ specific labeltype.
Test the current event, which must be an <tt>FL_KEYBOARD</tt> or <tt>
FL_SHORTCUT</tt>, against a shortcut value (described in <A href=Fl_Button.html#Fl_Button.shortcut>
<tt>Fl_Button</tt></A>). Returns non-zero if there is a match. Not to
be confused with <A href=#Fl_Widge.test_shortcut><tt>
be confused with <A href="subclassing.html#test_shortcut"><tt>
Fl_Widget::test_shortcut()</tt></A>.
<h3><A name=visual>static int Fl::visual(int)</A></h3>
@ -1017,7 +1017,7 @@ brain-dead notions.
<UL>
<LI><tt>Fl::visual(FL_RGB)</tt>
<BR>Full/true color (if there are several depths FLTK chooses the
largest). Do this if you use <A href=#fl_draw_image><tt>fl_draw_image</tt>
largest). Do this if you use <A href="drawing.html#fl_draw_image"><tt>fl_draw_image</tt>
</A> for much better (non-dithered) output.
<BR>&nbsp; </LI>
<LI><tt>Fl::visual(FL_RGB8)</tt>

View File

@ -88,7 +88,7 @@ foreign letter compose!</LI>
</UL>
<H2>Licensing</H2>
FLTK comes with complete free source code. FLTK is available under the
terms of the <A href=#licensing>GNU Library General Public License</A>.
terms of the <A href="license.html">GNU Library General Public License</A>.
Contrary to popular belief, it can be used in commercial software!
(Even Bill Gates could use it.)
<H2>What Does &quot;FLTK&quot; Mean?</H2>

View File

@ -21,7 +21,7 @@ To make a subclass of Fl_Gl_Window, you must provide:
<UL>
<LI>A class definition. </LI>
<LI>A <TT>draw()</TT> method. </LI>
<LI>A <TT>handle()</TT> method (if you need to recieve input from the
<LI>A <TT>handle()</TT> method (if you need to receive input from the
user). </LI>
</UL>
If your subclass provides static controls in the window, they must be
@ -142,7 +142,7 @@ the FLUID output file will compile. </LI>
You must put <TT>glwindow-&gt;show()</TT> in your main code after calling <TT>
show()</TT> on the window containing the OpenGL window.
<H2>Using OpenGL in Normal FLTK Windows</H2>
You can put OpenGL code into an <A href=#draw><TT>Fl_Widget::draw()</TT>
You can put OpenGL code into an <A href="subclassing.html#draw"><TT>Fl_Widget::draw()</TT>
</A> method or into the code for a <A href=common.html#boxtypes>boxtype</A>
or other places with some care.
<P>Most importantly, before you show <I>any</I> windows (including those
@ -223,7 +223,7 @@ the current OpenGL font at the given position.
<H4>void gl_draw(const char *, int x, int y, int w, int h, Fl_Align)</H4>
Draw a string formatted into a box, with newlines and tabs expanded,
other control characters changed to ^X, and aligned with the edges or
center. Exactly the same output as <A href=#fl_draw><TT>fl_draw()</TT></A>
center. Exactly the same output as <A href="drawing.html#text"><TT>fl_draw()</TT></A>
.

View File

@ -48,7 +48,7 @@ until they complete. In particular if a callback pops up a modal
window (by calling <A href=functions.html#fl_ask><TT>fl_ask()</TT></A>,
for instance) it will not return until the modal function returns. </P>
<H3>Drawing using Xlib</H3>
The following global variables are set before <TT>Fl_Widget::draw()</TT>
The following global variables are set before <A HREF="subclassing.html#draw"><TT>Fl_Widget::draw()</TT></A>
is called, or by <A href=Fl_Window.html#Fl_Window.make_current><TT>
Fl_Window::make_current()</TT></A>:
<UL>
@ -75,12 +75,12 @@ Fl_Window</TT> being drawn.
<H4><A name=fl_xpixel>unsigned long fl_xpixel(Fl_Color i)
<BR> unsigned long fl_xpixel(uchar r, uchar g, uchar b)</A></H4>
Returns the X pixel number used to draw the given FLTK color index or
RGB color. This is the X pixel that <A href=#fl_color><TT>fl_color()</TT>
RGB color. This is the X pixel that <A href="drawing.html#fl_color"><TT>fl_color()</TT>
</A> would use.
<H4><A name=fl_xfont>extern XFontStruct *fl_xfont</A></H4>
Points at the font selected by the most recent <A href=drawing.html#fl_font>
<TT>fl_font()</TT></A>. This is not necessarily the current font of <TT>
fl_gc</TT>, which is not set until <A href=#fl_draw><TT>fl_draw()</TT></A>
fl_gc</TT>, which is not set until <A href="drawing.html#text"><TT>fl_draw()</TT></A>
is called.
<H3>Changing the Display, Screen, or X Visual</H3>
FLTK uses only a single display, screen, X visual, and X colormap.
@ -296,7 +296,7 @@ shown()</TT>.
handle, or <TT>NULL</TT> if not found. This uses a cache so it is
slightly faster than iterating through the windows yourself.
<H3>Drawing Things Using the WIN32 GDI</H3>
When the virtual function <TT>Fl_Widget::draw()</TT> is called, FLTK
When the virtual function <A HREF="subclassing.html#draw"><TT>Fl_Widget::draw()</TT></A> is called, FLTK
has stashed in some global variables all the silly extra arguments you
need to make a proper GDI call. These are:
<UL>

View File

@ -164,7 +164,7 @@ Look through the header files for <TT>FL_RESERVED_TYPE</TT> to find an
unused number. If you make a subclass of <TT>Fl_Window</TT>
you must use <TT>FL_WINDOW + n</TT> (<TT>n</tt> must be in the
range 1 to 7). </P>
<H2>Handling Events</H2>
<H2><A NAME="handle">Handling Events</A></H2>
The virtual method <TT>int Fl_Widget::handle(int event)</TT> is called
to handle each event passed to the widget. It can:
<UL>
@ -173,7 +173,7 @@ to handle each event passed to the widget. It can:
</A> if the widget needs to be redisplayed. </LI>
<LI>Call <A href=Fl_Widget.html#Fl_Widget.damage><TT>
Fl_Widget::damage(n)</TT></A> if the widget needs a partial-update
(assumming you provide support for this in your <TT>Fl_Widget::draw()</TT>
(assuming you provide support for this in your <A HREF="#draw"><TT>Fl_Widget::draw()</TT></A>
method). </LI>
<LI>Call <A href=Fl_Widget.html#Fl_Widget.do_callback><TT>
Fl_Widget::do_callback()</TT></A> if a callback should be generated. </LI>
@ -226,7 +226,7 @@ int MyClass::handle(int event) {
You must return non-zero if your <TT>handle()</TT> method uses the
event. If you return zero it indicates to the parent widget that it can
try sending the event to another widget.
<H2>Drawing the Widget</H2>
<H2><A NAME="draw">Drawing the Widget</A></H2>
The <TT>draw()</TT> virtual method is called when FLTK wants you to
redraw your widget. It will be called if and only if <TT>damage()</TT>
is non-zero, and <TT>damage()</TT> will be cleared to zero after it
@ -366,7 +366,7 @@ may be UTF-8) between applications:
<UL>
<LI><A href=functions.html#paste><TT>Fl::paste</TT></A></LI>
<LI><A href=functions.html#selection><TT>Fl::selection</TT></A></LI>
<LI><A href=#selection_length><TT>Fl::selection_length</TT></A></LI>
<LI><A href=functions.html#selection_length><TT>Fl::selection_length</TT></A></LI>
<LI><A href=functions.html#selection_owner><TT>Fl::selection_owner</TT></A></LI>
</UL>
It may be possible to cut/paste non-text data by using <A href=osissues.html#add_handler>