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:
parent
0f36c495f9
commit
0e6e2393bf
@ -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>
|
||||
|
||||
@ -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 &x, int &y, int &w, int &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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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 &w, int n)</A></H4>
|
||||
|
||||
The widget is removed from it's current group (if any) and then
|
||||
|
||||
@ -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.)
|
||||
|
||||
|
||||
@ -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 "Hello, World!" program that uses FLTK to
|
||||
display the window.
|
||||
<UL><I>Listing 1 - "hello.cxx"</I>
|
||||
<BR>
|
||||
<UL>
|
||||
<P><I>Listing 1 - "hello.cxx"</I>
|
||||
<PRE>
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
@ -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->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 name(type)", and a "get" method is always of the form
|
||||
"type name() 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>
|
||||
|
||||
@ -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->value("Now is the time for all good men...");
|
||||
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
|
||||
|
||||
@ -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 "types" are
|
||||
existing <TT>Fl_Widget::draw()</TT> methods. These "types" 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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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
|
||||
("FLUID") 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 "compile" 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
|
||||
'&' then you will be able to abort FLUID by typing ^C on the terminal. It
|
||||
'&') 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 $<
|
||||
fluid -c $<
|
||||
</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 "OK" makes the changes permanent. Selecting a different
|
||||
<P>Hitting "OK" 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 "visible" 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> </TD>
|
||||
<TD VALIGN=TOP WIDTH=378><IMG src="fluid_widget.gif"></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<P>Many widgets will work, and draw faster, with a "frame" instead of a
|
||||
"box". A frame does not draw the colored interior, leaving whatever
|
||||
was already there visible. Be careful, as FLUID may draw this ok but
|
||||
|
||||
@ -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
|
||||
&r, double &g, double &b)
|
||||
<BR> int fl_color_chooser(const char *, uchar &r, uchar &g, uchar &b)</A>
|
||||
<BR> int fl_color_chooser(const char *title, uchar &r, uchar &g, uchar &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 "hue
|
||||
box" on the left (hold down CTRL to just change the saturation), and
|
||||
|
||||
@ -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 ("fltk@fltk.org") you
|
||||
To send a message to the FLTK mailing list ("fltk@fltk.org") 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
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user