Typos reported by Alexander Mai

Fl_Browser_ docos finished.

Added Fl_Group::init_sizes() description.

Added links for common widgets in chapter 3 (?)

Fixed formatting problems in subclassing and FLUID chapters.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@1100 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Michael R Sweet 2000-04-28 18:15:26 +00:00
parent 0f36c495f9
commit 0e6e2393bf
16 changed files with 493 additions and 173 deletions

View File

@ -50,31 +50,41 @@ subclass of <TT>Fl_Browser_</TT>. </P>
<CENTER>
<TABLE width=90%>
<TR><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Browser.Fl_Browser>Fl_Browser</A></LI>
<LI><A href=#Fl_Browser.~Fl_Browser>~Fl_Browser</A></LI>
<LI><A href=#Fl_Browser.add>add</A></LI>
<LI><A href=#Fl_Browser.bottomline>bottomline</A></LI>
<LI><A href=#Fl_Browser.clear>clear</A></LI>
</UL>
</TD><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Browser.column_char>column_char</A></LI>
<LI><A href=#Fl_Browser.column_widths>column_widths</A></LI>
<LI><A href=#Fl_Browser.data>data</A></LI>
<LI><A href=#Fl_Browser.format_char>format_char</A></LI>
</UL>
</TD><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Browser.hide>hide</A></LI>
<LI><A href=#Fl_Browser.insert>insert</A></LI>
<LI><A href=#Fl_Browser.load>load</A></LI>
<LI><A href=#Fl_Browser.middleline>middleline</A></LI>
</UL>
</TD><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Browser.move>move</A></LI>
<LI><A href=#Fl_Browser.position>position</A></LI>
<LI><A href=#Fl_Browser.remove>remove</A></LI>
<LI><A href=#Fl_Browser.show>show</A></LI>
</UL>
</TD><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Browser.size>size</A></LI>
<LI><A href=#Fl_Browser.text>text</A></LI>
<LI><A href=#Fl_Browser.topline>topline</A></LI>
<LI><A href=#Fl_Browser.visible>visible</A></LI>
</UL>
</TD></TR>
</TABLE>
</CENTER>

View File

@ -1,6 +1,6 @@
<HTML><BODY>
<HR break>
<H2><A name=Fl_Browser_>class Fl_Browser_</A></H2>
<H2><A name="Fl_Browser_">class Fl_Browser_</A></H2>
<HR>
<H3>Class Hierarchy</H3>
<UL>
@ -37,100 +37,365 @@ other slow operation. </P>
<TABLE width=90%>
<TR><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Browser_.Fl_Browser_>Fl_Browser_</A></LI>
<LI><A href=#Fl_Browser_.~Fl_Browser_>~Fl_Browser_</A></LI>
<LI><A href=#Fl_Browser_.bbox>bbox</A></LI>
<LI><A href=#Fl_Browser_.deleting>deleting</A></LI>
<LI><A href=#Fl_Browser_.deselect>deselect</A></LI>
<LI><A href=#Fl_Browser_.display>display</A></LI>
<LI><A href=#Fl_Browser_.displayed>displayed</A></LI>
<LI><A href=#Fl_Browser_.draw>draw</A></LI>
<LI><A href=#Fl_Browser_.find_item>find_item</A></LI>
<LI><A href="#Fl_Browser_.Fl_Browser_">Fl_Browser_</A></LI>
<LI><A href="#Fl_Browser_.~Fl_Browser_">~Fl_Browser_</A></LI>
<LI><A href="#Fl_Browser_.bbox">bbox</A></LI>
<LI><A href="#Fl_Browser_.deleting">deleting</A></LI>
<LI><A href="#Fl_Browser_.deselect">deselect</A></LI>
<LI><A href="#Fl_Browser_.display">display</A></LI>
<LI><A href="#Fl_Browser_.displayed">displayed</A></LI>
<LI><A href="#Fl_Browser_.draw">draw</A></LI>
<LI><A href="#Fl_Browser_.find_item">find_item</A></LI>
</UL>
</TD><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Browser_.full_height>full_height</A></LI>
<LI><A href=#Fl_Browser_.full_width>full_width</A></LI>
<LI><A href=#Fl_Browser_.handle>handle</A></LI>
<LI><A href=#Fl_Browser_.has_scrollbar>has_scrollbar</A></LI>
<LI><A href=#Fl_Browser_.hposition>hposition</A></LI>
<LI><A href=#Fl_Browser_.incr_height>incr_height</A></LI>
<LI><A href=#Fl_Browser_.inserting>inserting</A></LI>
<LI><A href=#Fl_Browser_.item_draw>item_draw</A></LI>
<LI><A href="#Fl_Browser_.full_height">full_height</A></LI>
<LI><A href="#Fl_Browser_.full_width">full_width</A></LI>
<LI><A href="#Fl_Browser_.handle">handle</A></LI>
<LI><A href="#Fl_Browser_.has_scrollbar">has_scrollbar</A></LI>
<LI><A href="#Fl_Browser_.hposition">hposition</A></LI>
<LI><A href="#Fl_Browser_.incr_height">incr_height</A></LI>
<LI><A href="#Fl_Browser_.inserting">inserting</A></LI>
<LI><A href="#Fl_Browser_.item_draw">item_draw</A></LI>
</UL>
</TD><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Browser_.item_first>item_first</A></LI>
<LI><A href=#Fl_Browser_.item_height>item_height</A></LI>
<LI><A href=#Fl_Browser_.item_next>item_next</A></LI>
<LI><A href=#Fl_Browser_.item_prev>item_prev</A></LI>
<LI><A href=#Fl_Browser_.item_quick_height>item_quick_height</A></LI>
<LI><A href=#Fl_Browser_.item_select>item_select</A></LI>
<LI><A href=#Fl_Browser_.item_selected>item_selected</A></LI>
<LI><A href=#Fl_Browser_.item_width>item_width</A></LI>
<LI><A href="#Fl_Browser_.item_first">item_first</A></LI>
<LI><A href="#Fl_Browser_.item_height">item_height</A></LI>
<LI><A href="#Fl_Browser_.item_next">item_next</A></LI>
<LI><A href="#Fl_Browser_.item_prev">item_prev</A></LI>
<LI><A href="#Fl_Browser_.item_quick_height">item_quick_height</A></LI>
<LI><A href="#Fl_Browser_.item_select">item_select</A></LI>
<LI><A href="#Fl_Browser_.item_selected">item_selected</A></LI>
<LI><A href="#Fl_Browser_.item_width">item_width</A></LI>
</UL>
</TD><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Browser_.leftedge>leftedge</A></LI>
<LI><A href=#Fl_Browser_.new_list>new_list</A></LI>
<LI><A href=#Fl_Browser_.position>position</A></LI>
<LI><A href=#Fl_Browser_.redraw_line>redraw_line</A></LI>
<LI><A href=#Fl_Browser_.redraw_lines>redraw_lines</A></LI>
<LI><A href=#Fl_Browser_.replacing>replacing</A></LI>
<LI><A href=#Fl_Browser_.resize>resize</A></LI>
<LI><A href=#Fl_Browser_.scrollbar_left>scrollbar_left</A></LI>
<LI><A href="#Fl_Browser_.leftedge">leftedge</A></LI>
<LI><A href="#Fl_Browser_.new_list">new_list</A></LI>
<LI><A href="#Fl_Browser_.position">position</A></LI>
<LI><A href="#Fl_Browser_.redraw_line">redraw_line</A></LI>
<LI><A href="#Fl_Browser_.redraw_lines">redraw_lines</A></LI>
<LI><A href="#Fl_Browser_.replacing">replacing</A></LI>
<LI><A href="#Fl_Browser_.resize">resize</A></LI>
<LI><A href="#Fl_Browser_.scrollbar_left">scrollbar_left</A></LI>
</UL>
</TD><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Browser_.scrollbar_right>scrollbar_right</A></LI>
<LI><A href=#Fl_Browser_.select>select</A></LI>
<LI><A href=#Fl_Browser_.select_only>select_only</A></LI>
<LI><A href=#Fl_Browser_.selection>selection</A></LI>
<LI><A href=#Fl_Browser_.textcolor>textcolor</A></LI>
<LI><A href=#Fl_Browser_.textfont>textfont</A></LI>
<LI><A href=#Fl_Browser_.textsize>textsize</A></LI>
<LI><A href=#Fl_Browser_.top>top</A></LI>
<LI><A href="#Fl_Browser_.scrollbar_right">scrollbar_right</A></LI>
<LI><A href="#Fl_Browser_.select">select</A></LI>
<LI><A href="#Fl_Browser_.select_only">select_only</A></LI>
<LI><A href="#Fl_Browser_.selection">selection</A></LI>
<LI><A href="#Fl_Browser_.textcolor">textcolor</A></LI>
<LI><A href="#Fl_Browser_.textfont">textfont</A></LI>
<LI><A href="#Fl_Browser_.textsize">textsize</A></LI>
<LI><A href="#Fl_Browser_.top">top</A></LI>
</UL>
</TD></TR>
</TABLE>
<i>Sorry, documentation is incomplete at this time</i>
</CENTER>
<H4><A name=Fl_Browser_.Fl_Browser_>Fl_Browser::Fl_Browser(int, int,
<H4><A name="Fl_Browser_.Fl_Browser_">Fl_Browser::Fl_Browser(int, int,
int, int, const char * = 0)</A></H4>
The constructor makes an empty browser.
<H4><A name=Fl_Browser_.~Fl_Browser_>Fl_Browser::~Fl_Browser(void)</A></H4>
The destructor deletes all list items and destroys the browser.
<H4><A name=Fl_Browser_.has_scrollbar>void
<P>The constructor makes an empty browser.
<H4><A name="Fl_Browser_.~Fl_Browser_">Fl_Browser::~Fl_Browser(void)</A></H4>
<P>The destructor deletes all list items and destroys the browser.
<H4><A NAME="Fl_Browser_.bbox">Fl_Browser_::bbox(int &amp;x, int &amp;y, int &amp;w, int &amp;h) const</A></H4>
<P>This method returns the bounding box for the interior of the list, inside
the scrollbars.
<H4><A NAME="Fl_Browser_.deleting">Fl_Browser_::deleting(void *a)</A></H4>
<P>This method should be used when an item is deleted from the list.
It allows the <TT>Fl_Browser_</TT> to discard any cached data it has
on the item.
<H4><A NAME="Fl_Browser_.deselect">int Fl_Browser_::deselect(int docb=0)</A></H4>
<P>Deselects all items in the list and returns 1 if the state changed
or 0 if it did not.
<P>If <TT>docb</TT> is non-zero, <TT>deselect</TT> tries to call the
callback function for the widget.
<H4><A NAME="Fl_Browser_.display">Fl_Browser_::display(void *p)</A></H4>
<P>Displays item <TT>p</TT>, scrolling the list as necessary.
<H4><A NAME="Fl_Browser_.displayed">int Fl_Browser_::displayed(void *p) const</A></H4>
<P>This method returns non-zero if item <TT>p</TT> is currently visible in
the list.
<H4><A NAME="Fl_Browser_.draw">Fl_Browser_::draw()
<BR>Fl_Browser_::draw(int x, int y, int w, int h)</A></H4>
<P>The first form draws the list within the normal widget bounding box.
<P>The second form draws the contents of the browser within the
specified bounding box.
<H4><A NAME="Fl_Browser_.find_item">void *Fl_Browser_::find_item(int my)</A></H4>
<P>This method returns the item under mouse at <TT>my</TT>. If no item is
displayed at that position then <TT>NULL</TT> is returned.
<H4><A NAME="Fl_Browser_.full_height">virtual int Fl_Browser_::full_height()</A></H4>
<P>This method may be provided by the subclass to indicate the full height
of the item list in pixels. The default implementation computes the full
height from the item heights.
<H4><A NAME="Fl_Browser_.full_width">Fl_Browser_::full_width()</A></H4>
<P>This method may be provided by the subclass to indicate the full width
of the item list in pixels. The default implementation computes the full
width from the item widths.
<H4><A NAME="Fl_Browser_.handle">Fl_Browser_::handle(int event)
<BR>Fl_Browser_::handle(int event, int x, int y, int w, int h)</A></H4>
<P>The first form handles an event within the normal widget bounding box.
<P>The second form handles an event within the specified bounding box.
<H4><A name="Fl_Browser_.has_scrollbar">void
Fl_Browser_::has_scrollbar(int h)</A></H4>
By default you can scroll in both directions, and the scrollbars
<P>By default you can scroll in both directions, and the scrollbars
disappear if the data will fit in the widget. has_scrollbar() changes
this based on the value of <TT>h</TT>:
<UL>
<LI><CODE>0</CODE> - No scrollbars </LI>
<LI><CODE>Fl_Browser_::HORIZONTAL</CODE> - Only a horizontal scrollbar. </LI>
<LI><CODE>Fl_Browser_::VERTICAL</CODE> - Only a vertical scrollbar. </LI>
<LI><CODE>Fl_Browser_::BOTH</CODE> - The default is both scrollbars. </LI>
<LI><CODE>Fl_Browser_::HORIZONTAL_ALWAYS</CODE> - Horizontal scrollbar
always on, vertical always off. </LI>
<LI><CODE>Fl_Browser_::VERTICAL_ALWAYS</CODE> - Vertical scrollbar
always on, horizontal always off. </LI>
<LI><CODE>Fl_Browser_::BOTH_ALWAYS</CODE> - Both always on. </LI>
<LI><CODE>0</CODE> - No scrollbars.
<LI><CODE>Fl_Browser_::HORIZONTAL</CODE> - Only a horizontal
scrollbar.
<LI><CODE>Fl_Browser_::VERTICAL</CODE> - Only a vertical
scrollbar.
<LI><CODE>Fl_Browser_::BOTH</CODE> - The default is both
scrollbars.
<LI><CODE>Fl_Browser_::HORIZONTAL_ALWAYS</CODE> - Horizontal
scrollbar always on, vertical always off.
<LI><CODE>Fl_Browser_::VERTICAL_ALWAYS</CODE> - Vertical
scrollbar always on, horizontal always off.
<LI><CODE>Fl_Browser_::BOTH_ALWAYS</CODE> - Both always on.
</UL>
<H4><A name=Fl_Browser_.textcolor>Fl_Color Fl_Browser_::textcolor()
const
<BR> void Fl_Browser_::textcolor(Fl_Color color)</A></H4>
The first form gets the default text color for the lines in the
<H4><A NAME="Fl_Browser_.hposition">int Fl_Browser_::hposition() const
<BR>Fl_Browser_::hposition(int h)</A></H4>
<P>Gets or sets the horizontal scrolling position of the list.
<H4><A NAME="Fl_Browser_.incr_height">virtual int Fl_Browser_::incr_height()</A></H4>
<P>This method may be provided to return the average height of all items, to
be used for scrolling. The default implementation uses the height of the first
item.
<H4><A NAME="Fl_Browser_.inserting">Fl_Browser_::inserting(void *a, void *b)</A></H4>
<P>This method should be used when an item is added to the list.
It allows the <TT>Fl_Browser_</TT> to update its cache data as needed.
<H4><A NAME="Fl_Browser_.item_draw">virtual void Fl_Browser_::item_draw(void *p, int x, int y, int w, int h)</A></H4>
<P>This method must be provided by the subclass to draw the item
<TT>p</TT> in the area indicated by <TT>x</TT>, <TT>y<TT>, <TT>w</TT>,
and <TT>h</TT>.
<H4><A NAME="Fl_Browser_.item_first">virtual void *Fl_Browser_::item_first() const</A></H4>
<P>This method must be provided by the subclass to return the first item in
the list.
<H4><A NAME="Fl_Browser_.item_height">virtual int Fl_Browser_::item_height(void *p)</A></H4>
<P>This method must be provided by the subclass to return the height of the
item <TT>p</TT> in pixels. Allow for two additional pixels for the list
selection box.
<H4><A NAME="Fl_Browser_.item_next">virtual void *Fl_Browser_::item_next(void *p) const</A></H4>
<P>This method must be provided by the subclass to return the item in
the list after <TT>p</TT>.
<H4><A NAME="Fl_Browser_.item_prev">virtual void *Fl_Browser_::item_prev(void *p) const</A></H4>
<P>This method must be provided by the subclass to return the item in
the list before <TT>p</TT>.
<H4><A NAME="Fl_Browser_.item_quick_height">virtual int Fl_Browser_::item_quick_height(void *p)</A></H4>
<P>This method may be provided by the subclass to return the height of the
item <TT>p</TT> in pixels. Allow for two additional pixels for the list
selection box. This method differs from
<A HREF="#Fl_Browser_.item_height"><TT>item_height</TT></A> in that it is only
called for selection and scrolling operations. The default implementation
calls <TT>item_height</T>.
<H4><A NAME="Fl_Browser_.item_select">virtual void Fl_Browser_::item_select(void *p, int s=1)</A></H4>
<P>This method must be implemented by the subclass if it supports
multiple selections in the browser. The <TT>s</TT> argument specifies the
selection state for item <TT>p</TT>: 0 = off, 1 = on.
<H4><A NAME="Fl_Browser_.item_selected">virtual int Fl_Browser_::item_selected(void *p) const</A></H4>
<P>This method must be implemented by the subclass if it supports
multiple selections in the browser. The method should return 1 if <TT>p</TT>
is selected and 0 otherwise.
<H4><A NAME="Fl_Browser_.item_width">virtual int Fl_Browser_::item_width(void *p)</A></H4>
<P>This method must be provided by the subclass to return the width of the
item <TT>p</TT> in pixels. Allow for two additional pixels for the list
selection box.
<H4><A NAME="Fl_Browser_.leftedge">int Fl_Browser_::leftedge() const</A></H4>
<P>This method returns the X position of the left edge of the list area
after adjusting for the scrollbar and border, if any.
<H4><A NAME="Fl_Browser_.new_list">Fl_Browser_::new_list()</A></H4>
<P>This method should be called when the list data is completely replaced
or cleared. It informs the <TT>Fl_Browser_</TT> widget that any cached
information it has concerning the items is invalid.
<H4><A NAME="Fl_Browser_.position">int Fl_Browser_::position() const
<BR>Fl_Browser_::position(int v) const</A></H4>
<P>Gets or sets the vertical scrolling position of the list.
<H4><A NAME="Fl_Browser_.redraw_line">Fl_Browser_::redraw_line(void *p)</A></H4>
<P>This method should be called when the contents of an item have changed
but not changed the height of the item.
<H4><A NAME="Fl_Browser_.redraw_lines">Fl_Browser_::redraw_lines()</A></H4>
<P>This method will cause the entire list to be redrawn.
<H4><A NAME="Fl_Browser_.replacing">Fl_Browser_::replacing(void *a, void *b)</A></H4>
<P>This method should be used when an item is replaced in the list.
It allows the <TT>Fl_Browser_</TT> to update its cache data as needed.
<H4><A NAME="Fl_Browser_.resize">Fl_Browser_::resize(int x, int y, int w, int h)</A></H4>
<P>Repositions and/or resizes the browser.
<H4><A NAME="Fl_Browser_.scrollbar_left">Fl_Browser_::scrollbar_left()</A></H4>
<P>This method moves the vertical scrollbar to the lefthand side of the list.
<H4><A NAME="Fl_Browser_.scrollbar_right">Fl_Browser_::scrollbar_right()</A></H4>
<P>This method moves the vertical scrollbar to the righthand side of the list.
<H4><A NAME="Fl_Browser_.select">int Fl_Browser_::select(void *p, int s=1, int docb=0)</A></H4>
<P>Sets the selection state of item <TT>p</TT> to <TT>s</TT> and
returns 1 if the state changed or 0 if it did not.
<P>If <TT>docb</TT> is non-zero, <TT>select</TT> tries to call the callback
function for the widget.
<H4><A NAME="Fl_Browser_.select_only">Fl_Browser_::select_only(void *p, int docb=0)</A></H4>
<P>Selects item <TT>p</TT> and returns 1 if the state changed or 0 if it did
not. Any other items in the list are deselected.
<P>If <TT>docb</TT> is non-zero, <TT>select_only</TT> tries to call the
callback function for the widget.
<H4><A NAME="Fl_Browser_.selection">void *Fl_Browser_::selection() const</A></H4>
<P>Returns the item currently selected, or NULL if there is no selection.
For multiple selection browsers this call returns the last item that was
selected.
<H4><A name="Fl_Browser_.textcolor">Fl_Color Fl_Browser_::textcolor() const
<BR>void Fl_Browser_::textcolor(Fl_Color color)</A></H4>
<P>The first form gets the default text color for the lines in the
browser.
<P>The second form sets the default text color to <TT>color</TT></P>
<H4><A name=Fl_Browser_.textfont>Fl_Font Fl_Browser_::textfont() const
<BR> void Fl_Browser_::textfont(Fl_Font font)</A></H4>
The first form gets the default text font for the lines in the
<H4><A name="Fl_Browser_.textfont">Fl_Font Fl_Browser_::textfont() const
<BR>void Fl_Browser_::textfont(Fl_Font font)</A></H4>
<P>The first form gets the default text font for the lines in the
browser.
<P>The second form sets the default text font to <TT>font</TT></P>
<H4><A name=Fl_Browser_.textsize>uchar Fl_Browser_::textsize() const
<BR> void Fl_Browser_::textsize(uchar size)</A></H4>
The first form gets the default text size for the lines in the
<H4><A name="Fl_Browser_.textsize">uchar Fl_Browser_::textsize() const
<BR>void Fl_Browser_::textsize(uchar size)</A></H4>
<P>The first form gets the default text size for the lines in the
browser.
<P>The second form sets the default text size to <TT>size</TT></P>
</BODY></HTML>
<H4><A NAME="Fl_Browser_.top">void *Fl_Browser_::top() const</A></H4>
<P>Returns the item the appears at the top of the list.
</BODY>
</HTML>

View File

@ -18,6 +18,7 @@
</UL>
<H3>Description</H3>
This widget displays simple charts and is provided for Forms compatibility.
<CENTER><IMG src="charts.gif" width="80%"></CENTER>
<H3>Methods</H3>
<CENTER>
<TABLE width=90%>
@ -115,5 +116,4 @@ proportionate slice in the circle.</DD>
<DD>Each sample value is drawn as a vertical line.</DD>
</DL>
The second form of <TT>type()</TT> sets the chart type to <TT>t</TT>.
<CENTER><IMG src=./charts.gif width=80%></CENTER>
</BODY></HTML>

View File

@ -50,10 +50,11 @@ behavior.
<UL>
<LI><A href=#Fl_Group.end>end</A></LI>
<LI><A href=#Fl_Group.find>find</A></LI>
<LI><A href=#Fl_Group.insert>insert</A></LI>
<LI><A href=#Fl_Group.init_sizes>init_sizes</A></LI>
</UL>
</TD><TD align=left valign=top>
<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>
</UL>
@ -77,6 +78,14 @@ that it is destroyed last.
The widget is removed from it's current group (if any) and then added
to the end of this group.
<H4><A name="Fl_Group.init_sizes">void Fl_Group::init_sizes()</A></H4>
The <TT>Fl_Group</TT> widget keeps track of the original widget sizes and
positions when resizing occurs so that if you resize a window back to its
original size the widgets will be in the correct places. If you rearrange
the widgets in your group, call this method to register the new arrangement
with the <TT>Fl_Group</TT> that contains them.
<H4><A name=Fl_Group.insert>void Fl_Group::insert(Fl_Widget &amp;w, int n)</A></H4>
The widget is removed from it's current group (if any) and then

View File

@ -73,8 +73,8 @@ expected.</TD></TR>
selection.</TD></TR>
<TR><TD><B>RightCtrl or
<BR>Compose</B></TD><TD><a name=compose>
Start a <A href="events.html#compose">compose-character</A>
<BR>Compose</B></TD><TD><a name=compose>Start</A>
a <A href="events.html#compose">compose-character</A>
sequence. The next one or two keys typed define the character to
insert (see table that follows.)

View File

@ -65,8 +65,8 @@ better and can be used with the "optimized for speed" setting.</P>
program must include a header file for each FLTK class it uses.
Listing 1 shows a simple &quot;Hello, World!&quot; program that uses FLTK to
display the window.
<UL><I>Listing 1 - &quot;hello.cxx&quot;</I>
<BR>&nbsp;
<UL>
<P><I>Listing 1 - &quot;hello.cxx&quot;</I>
<PRE>
#include &lt;FL/Fl.H&gt;
#include &lt;FL/Fl_Window.H&gt;
@ -123,7 +123,7 @@ program by closing the window or pressing the ESCape key.
most widgets the arguments to the constructor are:
<UL>
<PRE>
Fl_Widget(x, y, width, height)
Fl_Widget(x, y, width, height, label)
</PRE>
</UL>
<P>The <TT>x</TT> and <TT>y</TT> parameters determine where the widget
@ -135,9 +135,9 @@ of the widget or window in pixels. The maximum widget size is
typically governed by the underlying window system or hardware. </P>
<p><tt>label</tt> is a pointer to a character string to label the
widget with or <tt>NULL</tt>. If not specified the label defaults to
<tt>NULL</tt>. The label string must be in static storage (such as a
string constant) because FLTK does not make a copy of it (it just uses
the pointer).
<tt>NULL</tt>. The label string must be in static storage such as a
string constant because FLTK does not make a copy of it - it just uses
the pointer.
<H3>Get/Set Methods</H3>
<tt>box-&gt;box(FL_UP_BOX)</tt> sets the type of box the
Fl_Box draws, changing it from the default of <tt>FL_NO_BOX</tt>, which means
@ -150,13 +150,16 @@ Chapter 3</A>.
short names for get/set methods. A "set" method is always of the form
"void&nbsp;name(type)", and a "get" method is always of the form
"type&nbsp;name()&nbsp;const".
<p>Almost all of these set/get pairs are very fast and short inline
<H3>Redrawing After Changing Attributes</H3>
<p>Almost all of the set/get pairs are very fast, short inline
functions and thus very efficient. However, <i>the "set" methods do
not call redraw()</i>, you have to call it yourself. This greatly
not call <TT>redraw()</TT></i> - you have to call it yourself. This greatly
reduces code size and execution time. The only common exception is
<tt>value()</tt>, this does redraw() if necessary.
<tt>value()</tt> which calls <TT>redraw()</TT> if necessary.
<H3>Labels</H3>
All widgets support labels. In the case of window widgets, the label
All widgets support labels. In the case of window widgets, the label
is used for the label in the title bar. Our example program calls the <A href=Fl_Widget.html#Fl_Widget.labelfont>
<TT>labelfont</TT></A>, <A href=Fl_Widget.html#Fl_Widget.labelsize><TT>
labelsize</TT></A>, and <A href=Fl_Widget.html#Fl_Widget.labeltype><TT>
@ -166,9 +169,11 @@ used for the label, which for this example we are using <TT>FL_BOLD</TT>
and <TT>FL_ITALIC</TT>. You can also specify typefaces directly. </P>
<P>The <TT>labelsize</TT> method sets the height of the font in pixels. </P>
<P>The <TT>labeltype</TT> method sets the type of label. FLTK supports
normal, embossed, shadowed, symbol, and image labels. </P>
normal, embossed, shadowed, symbol, and image labels internally, and
more types can be added as desired. </P>
<P>A complete list of all label options can be found in <A href=common.html#labels>
Chapter 3</A>. </P>
<H3>Showing the Window</H3>
The <TT>show()</TT> method shows the widget or window. For windows
you can also provide the command-line arguments to allow users to
@ -183,4 +188,6 @@ while (Fl::wait());
</PRE>
</UL>
<TT>Fl::run()</TT> does not return until all of the windows under FLTK
control are closed (either by the user or your program). </TT></BODY></HTML>
control are closed by the user or your program.
</BODY>
</HTML>

View File

@ -5,13 +5,13 @@ and covers how to query and set the standard attributes.
<H2>Buttons</H2>
FLTK provides many types of buttons:
<UL>
<LI><TT>Fl_Button</TT> - A standard push button. </LI>
<LI><TT>Fl_Check_Button</TT> - A button with a check box. </LI>
<LI><TT>Fl_Light_Button</TT> - A push button with a light. </LI>
<LI><TT>Fl_Repeat_Button</TT> - A push button that repeats when held. </LI>
<LI><TT>Fl_Return_Button</TT> - A push button that is activated by the
<LI><A HREF="Fl_Button.html"><TT>Fl_Button</TT></A> - A standard push button. </LI>
<LI><A HREF="Fl_Check_Button.html"><TT>Fl_Check_Button</TT></A> - A button with a check box. </LI>
<LI><A HREF="Fl_Light_Button.html"><TT>Fl_Light_Button</TT></A> - A push button with a light. </LI>
<LI><A HREF="Fl_Repeat_Button.html"><TT>Fl_Repeat_Button</TT></A> - A push button that repeats when held. </LI>
<LI><A HREF="Fl_Return_Button.html"><TT>Fl_Return_Button</TT></A> - A push button that is activated by the
Enter key. </LI>
<LI><TT>Fl_Round_Button</TT> - A button with a check circle. </LI>
<LI><A HREF="Fl_Round_Button.html"><TT>Fl_Round_Button</TT></A> - A button with a check circle. </LI>
</UL>
<P ALIGN=CENTER><IMG SRC="buttons.gif">
<P>For all of these buttons you just need to include the corresponding <TT>
@ -44,11 +44,11 @@ will also turn off other radio buttons in the same group.
<H2>Text</H2>
FLTK provides several text widgets for displaying and receiving text:
<UL>
<LI><TT>Fl_Input</TT> - A standard one-line text input field. </LI>
<LI><TT>Fl_Output</TT> - A standard one-line text output field. </LI>
<LI><TT>Fl_Multiline_Input</TT> - A standard multi-line text input
<LI><A HREF="Fl_Input.html"><TT>Fl_Input</TT></A> - A standard one-line text input field. </LI>
<LI><A HREF="Fl_Output.html"><TT>Fl_Output</TT></A> - A standard one-line text output field. </LI>
<LI><A HREF="Fl_Multiline_Input.html"><TT>Fl_Multiline_Input</TT></A> - A standard multi-line text input
field. </LI>
<LI><TT>Fl_Multiline_Output</TT> - A standard multi-line text output
<LI><A HREF="Fl_Multiline_Output.html"><TT>Fl_Multiline_Output</TT></A> - A standard multi-line text output
field. </LI>
</UL>
The <TT>Fl_Output</TT> and <TT>Fl_Multiline_Output</TT> widgets allow
@ -67,13 +67,13 @@ input-&gt;value(&quot;Now is the time for all good men...&quot;);
Unlike text widgets, valuators keep track of numbers instead of
strings. FLTK provides the following valuators:
<UL>
<LI><TT>Fl_Counter</TT> - A widget with arrow buttons that shows the
<LI><A HREF="Fl_Counter.html"><TT>Fl_Counter</TT></A> - A widget with arrow buttons that shows the
current value. </LI>
<LI><TT>Fl_Dial</TT> - A round knob. </LI>
<LI><TT>Fl_Roller</TT> - An SGI-like dolly widget. </LI>
<LI><TT>Fl_Scrollbar</TT> - A standard scrollbar widget. </LI>
<LI><TT>Fl_Slider</TT> - A scrollbar with a knob. </LI>
<LI><TT>Fl_Value_Slider</TT> - A slider that shows the current value. </LI>
<LI><A HREF="Fl_Dial.html"><TT>Fl_Dial</TT></A> - A round knob. </LI>
<LI><A HREF="Fl_Roller.html"><TT>Fl_Roller</TT></A> - An SGI-like dolly widget. </LI>
<LI><A HREF="Fl_Scrollbar.html"><TT>Fl_Scrollbar</TT></A> - A standard scrollbar widget. </LI>
<LI><A HREF="Fl_Slider.html"><TT>Fl_Slider</TT></A> - A scrollbar with a knob. </LI>
<LI><A HREF="Fl_Value_Slider.html"><TT>Fl_Value_Slider</TT></A> - A slider that shows the current value. </LI>
</UL>
<P ALIGN=CENTER><IMG SRC="valuators.gif"></P>
The <A href=Fl_Valuator.html#Fl_Valuator.value><TT>value()</TT></A>
@ -87,13 +87,13 @@ the widget.
used to encapsulate windows, tabs, and scrolled windows. The following
group classes are available with FLTK:
<UL>
<LI><TT>Fl_Double_Window</TT> - A double-buffered window on the screen. </LI>
<LI><TT>Fl_Gl_Window</TT> - An OpenGL window on the screen. </LI>
<LI><TT>Fl_Group</TT> - The base container class; can be used to group
<LI><A HREF="Fl_Double_Window.html"><TT>Fl_Double_Window</TT></A> - A double-buffered window on the screen. </LI>
<LI><A HREF="Fl_Gl_Window.html"><TT>Fl_Gl_Window</TT></A> - An OpenGL window on the screen. </LI>
<LI><A HREF="Fl_Group.html"><TT>Fl_Group</TT></A> - The base container class; can be used to group
any widgets together. </LI>
<LI><TT>Fl_Scroll</TT> - A scrolled window area. </LI>
<LI><TT>Fl_Tabs</TT> - Displays child widgets as tabs. </LI>
<LI><TT>Fl_Window</TT> - A window on the screen. </LI>
<LI><A HREF="Fl_Scroll.html"><TT>Fl_Scroll</TT></A> - A scrolled window area. </LI>
<LI><A HREF="Fl_Tabs.html"><TT>Fl_Tabs</TT></A> - Displays child widgets as tabs. </LI>
<LI><A HREF="Fl_Window.html"><TT>Fl_Window</TT></A> - A window on the screen. </LI>
</UL>
<H2>Setting the Size and Position of Widgets</H2>
The size and position of widgets is usually set when you create them.
@ -229,7 +229,7 @@ raised </LI>
<TT>Fl_Bitmap</TT></A> or <A href=drawing.html#Fl_Pixmap><TT>Fl_Pixmap</TT>
</A> objects.
<H4>Making Your Own Label Types</H4>
<i>Warning: this interface may change in future versions of fltk!</i>
<i>Warning: this interface is changing in FLTK 2.0!</i>
<p>Label types are actually indexes into a table of functions that draw
them. The primary purpose of this is to let you reuse the <TT>label()</TT>
pointer as a pointer to arbitrary data such as a bitmap or pixmap. You

View File

@ -12,7 +12,7 @@ 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>
labeltypes</A>. These are small procedures that can be called by
existing <TT>Fl_Widget</TT><TT>draw()</TT> methods. These &quot;types&quot; are
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>
<LI>You can call <A href=Fl_Window.html#Fl_Window.make_current><TT>

View File

@ -552,6 +552,6 @@ library. Also, the <TT>CC</TT> command may also be called <TT>gcc</TT>
or <TT>c++</TT> on your system.
<P>Congratulations, you've just built your own text editor! </P>
<H2>The Final Product</H2>
The final editor window should look like the image below:
The final editor window should look like the image on the next page.
<P ALIGN=CENTER><IMG src=./editor.gif></P>
</BODY></HTML>

View File

@ -59,6 +59,17 @@ is released and the value changes. </LI>
<LI><TT>FL_WHEN_ENTER_KEY_ALWAYS</TT> - Do the callback when the user
presses the ENTER key, even if the value doesn't change. </LI>
</UL>
<H2><A NAME="button_values">Fl::event_button() Values</A></H2>
<P>The following constants define the button numbers for <TT>FL_PUSH</TT> and
<TT>FL_RELEASE</TT> events:
<UL>
<LI><TT>FL_LEFT_MOUSE</TT> - the left mouse button
<LI><TT>FL_MIDDLE_MOUSE</TT> - the middle mouse button
<LI><TT>FL_RIGHT_MOUSE</TT> - the right mouse button
</UL>
<H2><A NAME="key_values">Fl::event_key() Values</A></H2>
The following constants define the non-ASCII keys on the keyboard for <TT>
FL_KEYBOARD</TT> and <TT>FL_SHORTCUT</TT> events:
@ -180,7 +191,7 @@ In addition there are two inline functions to allow you to select
grays or colors from the FLTK colormap:
<p><b>Fl_Color fl_gray_ramp(int i)</b>
<br>Returs a gray color. Returns black for zero, returns white for
<br>Returns a gray color. Returns black for zero, returns white for
<tt>FL_NUM_GRAY</tt> (which is 24) minus 1. To get the closest to an
8-bit gray value 'I' use
<tt>fl_gray_ramp(I*FL_NUM_GRAY/256)</tt>

View File

@ -3,16 +3,23 @@
This chapter discusses the FLTK event model and how to handle events
in your program or widget.
<H2>The FLTK Event Model</H2>
Events are identified by the integer argument passed to the <A href=functions.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 information remains valid until the next event is read from
window system (i.e. it is ok to look at it outside of the <TT>handle()</TT>
method).
<P>Every time a user moves the mouse pointer, clicks a button, or presses
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
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
information remains valid until the next event is read from window
system (i.e. it is ok to look at it outside of the <TT>handle()</TT>
method).
<H2>Mouse Events</H2>
<H3>FL_PUSH</H3>
A mouse button has gone down with the mouse pointing at this widget.
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>
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>

View File

@ -1,24 +1,36 @@
<HTML><BODY>
<H1 ALIGN=RIGHT><A NAME=FLUID>8 - Programming with FLUID</A></H1>
This chapter shows how to use the Fast Light User-Interface Designer
This chapter shows how to use the Fast Light User-Interface Designer
(&quot;FLUID&quot;) to create your GUIs.
<H2>What is FLUID?</H2>
The Fast Light User Interface Designer, or FLUID, is a graphical
<P>The Fast Light User Interface Designer, or FLUID, is a graphical
editor that is used to produce FLTK source code.
<P>FLUID edits and saves its state in <TT>.fl</TT> files. These files are
text, and you can (with care) edit them in a text editor, perhaps to
get some special effects. </P>
<P>FLUID can &quot;compile&quot; the <TT>.fl</TT> file into a <TT>.cxx</TT> and a <TT>.h</TT> file. The
<TT>.cxx</TT> file defines all the objects from the <TT>.fl</TT> file and the <TT>.h</TT> file
declares all the global ones. </P>
<P>FLUID also supports localization (<A HREF="#I18N">Internationalization</A>)
of label strings using message files and the GNU gettext or POSIX catgets
interfaces.
<P>A simple program can be made by putting all your code (including a <TT>
main()</TT> function) into the <TT>.fl</TT> file and thus making the <TT>.cxx</TT> file a
single source file to compile. Most programs are more complex than
this, so you write other <TT>.cxx</TT> files that call the FLUID functions.
These <TT>.cxx</TT> files must <TT>#include</TT> the <TT>.h</TT> file or they can <TT>
These <TT>.cxx</TT> files must <TT>#include</TT> the <TT>.h</TT> file or they can <TT>
#include</TT> the <TT>.cxx</TT> file so it still appears to be a single source
file.
<P ALIGN=CENTER><IMG src=fluid-org.gif>
<P>Normally the FLUID file defines one or more functions or classes which
output C++ code. Each function defines a one or more FLTK
windows, and all the widgets that go inside those windows. </P>
@ -61,7 +73,7 @@ save-as to write it to a file).
Changing the colors may be useful to see what your interface will look
at if the user calls it with the same switches.
<P>In the current version, if you don't go into the background (with
'&amp;' then you will be able to abort FLUID by typing ^C on the terminal. It
'&amp;') then you will be able to abort FLUID by typing ^C on the terminal. It
will exit immediately, losing any changes. </P>
<H2>Running FLUID Under Microsoft Windows</H2>
To run FLUID under WIN32, double-click on the <I>FLUID.exe</I> file.
@ -81,7 +93,7 @@ code. In a makefile you can use a line like this:
<UL>
<PRE>
my_panels.h my_panels.cxx: my_panels.fl
FLUID -c my_panels.fl
fluid -c my_panels.fl
</PRE>
</UL>
Some versions of make will accept rules like this to allow all <TT>.fl</TT>
@ -90,16 +102,16 @@ files found to be compiled:
<PRE>
.SUFFIXES: .fl .cxx .h
.fl.h .fl.cxx:
FLUID -c $&lt;
fluid -c $&lt;
</PRE>
</UL>
<H2>A Short Tutorial</H2>
FLUID is an amazingly powerful little program. However, this power
comes at a price, as it is not always obvious how to accomplish seemingly
comes at a price as it is not always obvious how to accomplish seemingly
simple tasks with it. This tutorial will show you how to generate a
complete user interface class with FLUID that is used for the CubeView
program below.
program provided with FLTK.
<P ALIGN=CENTER><IMG SRC="cubeview.gif"></P>
@ -524,10 +536,6 @@ to reorder functions, classes, and windows within functions.
<H4>Edit/Later (F3)</H4>
Moves all of the selected widgets one later in order among the
children of their parent (if possible).
<P>
<TABLE WIDTH=100% CELLPADDING=0 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<H4>Edit/Group (F7)</H4>
Creates a new <tt>Fl_Group</tt> and make all the currently selected widgets
children of it.
@ -539,14 +547,13 @@ selection. This makes it easier to see box borders and how the layout
looks. The overlays will be forced back on if you change the
selection.
<H4>Edit/Preferences (Alt+p)</H4>
Displays the preferences panel. The alignment preferences control the
grid that all widgets snap to when you move and resize them, and for the
"snap" which is how far a widget has to be dragged from its original position
to actually change.
</TD>
<TD VALIGN=TOP WIDTH=226><IMG SRC="fluid_prefs.gif"></TD>
</TR>
</TABLE>
<P ALIGN="CENTER"><IMG SRC="fluid_prefs.gif"></P>
<P>The output filenames control the extensions or names of the files the are
generated by FLUID. If you check the "Include .h from .cxx" button the code
@ -600,9 +607,7 @@ the widgets more accurately, especially when setting the box type.
for the fields. In this case the value for <I>one</I> of the widgets
is shown. But if you change this value, <I>all</I> of the selected
widgets are changed to the new value.
<TABLE cellpadding=0 cellspacing=0 width=100%>
<TR>
<TD VALIGN=TOP>Hitting &quot;OK&quot; makes the changes permanent. Selecting a different
<P>Hitting &quot;OK&quot; makes the changes permanent. Selecting a different
widget also makes the changes permanent. FLUID checks for simple
syntax errors such as mismatched parenthesis in any code before
saving any text.
@ -611,6 +616,10 @@ the panel or hit OK. However in the current version of FLUID, changes
to &quot;visible&quot; attributes (such as the color, label, box) are not undone
by revert or cancel. Changes to code like the callbacks are undone,
however.
<!-- NEW PAGE -->
<TABLE cellpadding=0 cellspacing=0 width=100%>
<TR>
<TD VALIGN=TOP>
<H3><A name=widget_attributes>Widget Attributes</A></H3>
<H4>Name (text field)</H4>
Name of a variable to declare, and to store a pointer to this
@ -620,13 +629,16 @@ blank then no variable is created.
etc. This will cause FLUID to declare an array of pointers. The array
is big enough that the highest number found can be stored. All widgets
that in the array must be the same type. </P>
</TD><TD VALIGN=TOP WIDTH=378><IMG src="fluid_widget.gif"></TD></TR>
</TABLE>
<H4>Type (upper-right pulldown menu)</H4>
Some classes have subtypes that modify their appearance or behavior.
You pick the subtype off of this menu.
<H4>Box (pulldown menu)</H4>
The boxtype to draw as a background for the widget.
The boxtype to draw as a background for the widget.
</TD>
<TD>&nbsp;&nbsp;&nbsp;</TD>
<TD VALIGN=TOP WIDTH=378><IMG src="fluid_widget.gif"></TD>
</TR>
</TABLE>
<P>Many widgets will work, and draw faster, with a &quot;frame&quot; instead of a
&quot;box&quot;. A frame does not draw the colored interior, leaving whatever
was already there visible. Be careful, as FLUID may draw this ok but

View File

@ -4,13 +4,14 @@
methods. For a description of the FLTK widgets, see <A href=widgets.html#widgets>
Appendix A</A>.
<H2>Functions</H2>
<H3><A name=fl_color_chooser>int fl_color_chooser(const char*, double
<H3><A name="fl_color_chooser_func">int fl_color_chooser(const char *title, double
&amp;r, double &amp;g, double &amp;b)
<BR> int fl_color_chooser(const char *, uchar &amp;r, uchar &amp;g, uchar &amp;b)</A>
<BR> int fl_color_chooser(const char *title, uchar &amp;r, uchar &amp;g, uchar &amp;b)</A>
</H3>
The double version takes RGB values in the range 0.0 to 1.0. The
uchar version takes RGB values in the range 0 to 255.
<P ALIGN=CENTER><IMG src=./fl_color_chooser.jpg></P>
The double version takes RGB values in the range 0.0 to 1.0. The
uchar version takes RGB values in the range 0 to 255. The <TT>title</TT>
argument specifies the label (title) for the window.
<P ALIGN=CENTER><IMG src="fl_color_chooser.jpg"></P>
<P><TT>fl_color_chooser()</TT> pops up a window to let the user pick an
arbitrary RGB color. They can pick the hue and saturation in the &quot;hue
box&quot; on the left (hold down CTRL to just change the saturation), and

View File

@ -191,25 +191,23 @@ make
<H2>Internet Resources</H2>
FLTK is available on the 'net in a bunch of locations:
<DL>
<DT>WWW</DT>
<DD><A href=http://www.fltk.org>http://www.fltk.org</A></DD>
<DT>FTP</DT>
<DD><A href=ftp://ftp.fltk.org/pub/fltk>ftp://ftp.fltk.org/pub/fltk</A>
</DD>
<DD><A href=ftp://ftp.easysw.com/pub/fltk>ftp://ftp.easysw.com/pub/fltk</A>
</DD>
<DD><A href=ftp://ftp.funet.fi/mirrors/ftp.easysw.com/pub/fltk>
ftp://ftp.funet.fi/mirrors/ftp.easysw.com/pub/fltk</A></DD>
<DD><A href=ftp://ftp.northamerica.net/pub/ESP/fltk>
ftp.northamerica.net/pub/ESP/fltk</A>
<BR></DD>
<DT>EMail</DT>
<DD><A href=mailto:fltk@fltk.org>fltk@fltk.org</A> [see
instructions below]</DD>
<DD><A href=mailto:fltk-bugs@fltk.org>fltk-bugs@fltk.org</A> [for
reporting bugs]</DD>
<DT>WWW
<DD><A href="http://www.fltk.org">http://www.fltk.org</A>
<DT>FTP
<DD><A HREF="ftp://ftp.fltk.org/pub/fltk">California, USA (ftp.fltk.org)</A>
<DD><A HREF="ftp://ftp2.easysw.com/pub/fltk">Maryland, USA (ftp2.easysw.com)</A>
<DD><A HREF="ftp://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub/fltk">Espoo, Finland (ftp.funet.fi)</A>
<DD><A HREF="ftp://linux.mathematik.tu-darmstadt.de/pub/linux/mirrors/misc/fltk">Germany (linux.mathematik.tu-darmstadt.de)</A>
<DD><A HREF="ftp://gd.tuwien.ac.at/hci/fltk">Austria (gd.tuwien.ac.at)</A>
<DT>EMail</DT>
<DD><A href="mailto:fltk@fltk.org">fltk@fltk.org</A> [see
instructions below]
<DD><A href="mailto:fltk-bugs@fltk.org">fltk-bugs@fltk.org</A> [for
reporting bugs]
</DL>
To send a message to the FLTK mailing list (&quot;fltk@fltk.org&quot;) you
To send a message to the FLTK mailing list (&quot;fltk@fltk.org&quot;) you
must first join the list. Non-member submissions are blocked to avoid
problems with unsolicited email.
<P>To join the FLTK mailing list, send a message to

View File

@ -1,6 +1,6 @@
<HTML><BODY>
<H1 ALIGN=RIGHT><A NAME=license>G - Software License</A></H1>
<H2 ALIGN=CENTER>GNU LIBRARY GENERAL PUBLIC LICENSE</H2>
<P ALIGN=CENTER><BIG>GNU LIBRARY GENERAL PUBLIC LICENSE</BIG></P>
<P ALIGN=CENTER>Version 2, June 1991
<BR> Copyright (C) 1991 Free Software Foundation, Inc.
<BR> 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
@ -8,7 +8,7 @@
this license document, but changing it is not allowed.
<BR> [This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.] </P>
<H2>Preamble</H2>
<P><BIG>Preamble</BIG></P>
The licenses for most software are designed to take away your freedom
to share and change it. By contrast, the GNU General Public Licenses
are intended to guarantee your freedom to share and change free
@ -83,8 +83,8 @@ former contains code derived from the library, while the latter only
works together with the library. </P>
<P>Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one. </P>
<H2 ALIGN=CENTER>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
MODIFICATION</H2>
<P ALIGN="CENTER"><BIG>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
MODIFICATION</BIG></P>
<STRONG>0.</STRONG> This License Agreement applies to any software
library which contains a notice placed by the copyright holder or other
authorized party saying it may be distributed under the terms of this
@ -352,7 +352,7 @@ Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally. </P>
<H2 ALIGN=CENTER>NO WARRANTY</H2>
<P ALIGN="CENTER"><BIG>NO WARRANTY</BIG></P>
<P><STRONG>15.</STRONG> BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE,
THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
@ -372,5 +372,5 @@ RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES. </P>
<H2 ALIGN=CENTER>END OF TERMS AND CONDITIONS</H2>
<P ALIGN="CENTER"><BIG>END OF TERMS AND CONDITIONS</BIG></P>
</BODY></HTML>

View File

@ -361,7 +361,7 @@ should call this on all the children if your own damage is equal to
FL_DAMAGE_CHILD. Nothing is done if the child is not <TT>visible()</TT>
or if it is clipped.
<H2>Cut and Paste Support</H2>
FLTK provides routines to cut and paste ASCII text (in the future this
FLTK provides routines to cut and paste 8-bit text (in the future this
may be UTF-8) between applications:
<UL>
<LI><A href=functions.html#paste><TT>Fl::paste</TT></A></LI>
@ -369,10 +369,10 @@ may be UTF-8) between applications:
<LI><A href=#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-ASCII data by using <A href=osissues.html#add_handler>
It may be possible to cut/paste non-text data by using <A href=osissues.html#add_handler>
<TT>Fl::add_handler()</TT></A>.
<H2>Making a subclass of Fl_Window</H2>
You may want your widget to be a subclass of <TT>Fl_Window</TT>. This
You may want your widget to be a subclass of <TT>Fl_Window</TT>. This
can be useful if your widget wants to occupy an entire window, and can
also be used to take advantage of system-provided clipping, or to work
with a library that expects a system window ID to indicate where to