diff options
Diffstat (limited to 'documentation/basics.html')
| -rw-r--r-- | documentation/basics.html | 334 |
1 files changed, 147 insertions, 187 deletions
diff --git a/documentation/basics.html b/documentation/basics.html index 57bec8472..563179b59 100644 --- a/documentation/basics.html +++ b/documentation/basics.html @@ -1,210 +1,170 @@ -<HTML> -<BODY> - +<HTML><BODY> <H1 ALIGN=RIGHT><A NAME=basics>2 - FLTK Basics</A></H1> - -This chapter will teach you the basics of compiling programs that use -FLTK. - + This chapter will teach you the basics of compiling programs that use +FLTK. <H2>Naming</H2> - -All public symbols in FLTK start with the characters 'F' and 'L': - -<ul> - - <li>Functions are either <tt>Fl::foo()</tt> or <tt>fl_foo()</tt>. - - <li>Class and type names are capitalized: <tt>Fl_Foo</tt>. - - <li><a href=#Enumerations>Constants and enumerations</a> are - uppercase: <tt>FL_FOO</tt>. - - <li>All header files start with <tt><FL/...></tt>. - -</ul> - + All public symbols in FLTK start with the characters 'F' and 'L': +<UL> +<LI>Functions are either <TT>Fl::foo()</TT> or <TT>fl_foo()</TT>. </LI> +<LI>Class and type names are capitalized: <TT>Fl_Foo</TT>. </LI> +<LI><A href=enumerations.html#Enumerations>Constants and enumerations</A> + are uppercase: <TT>FL_FOO</TT>. </LI> +<LI>All header files start with <TT><FL/...></TT>. </LI> +</UL> <H2>Header Files</H2> - -The proper way to include FLTK header files is: - -<ul><pre> -#include <FL/Fl_xyz.H> -</pre></ul> - -<b>Microsoft Windows developers please note:</b> case *is* significant -under other operating systems, and the C standard uses the forward -slash (/) to separate directories. The following <tt>#include</tt> -directives are *not* recommended for portability reasons: - -<ul><pre> -#include <fl\fl_xyz.h> -#include <fl/fl_xyz.h> -#include <FL\Fl_xyz.H> -</pre></ul> - + The proper way to include FLTK header files is: +<UL> +<PRE> +#include <FL/Fl_xyz.H> +</PRE> +</UL> +<B>Microsoft Windows developers please note:</B> case *is* significant +under other operating systems, and the C standard uses the forward +slash (/) to separate directories. The following <TT>#include</TT> + directives are *not* recommended for portability reasons: +<UL> +<PRE> +#include <fl\fl_xyz.h> +#include <fl/fl_xyz.h> +#include <FL\Fl_xyz.H> +</PRE> +</UL> <H2>Compiling Programs with Standard Compilers</H2> - -Under UNIX (and under Microsoft Windows when using the GNU development tools) -you will probably need to tell the compiler where to find the header files. -This is usually done using the <tt>-I</tt> option: - -<ul><pre> + Under UNIX (and under Microsoft Windows when using the GNU development +tools) you will probably need to tell the compiler where to find the +header files. This is usually done using the <TT>-I</TT> option: +<UL> +<PRE> CC -I/usr/local/include ... gcc -I/usr/local/include ... -</pre></ul> - -Similarly, when linking your application you will need to tell the compiler -to use the FLTK library: - -<ul><pre> +</PRE> +</UL> + Similarly, when linking your application you will need to tell the +compiler to use the FLTK library: +<UL> +<PRE> CC ... -L/usr/local/lib -lfltk -lXext -lX11 -lm gcc ... -L/usr/local/lib -lfltk -lXext -lX11 -lm -</pre></ul> - +</PRE> +</UL> <H2>Compiling Programs with Microsoft Visual C++</H2> - -In Visual C++ you will need to tell the compiler where to find the FLTK -header files. This can be done by selecting "Settings" from the -"Project" menu and then changing the "Preprocessor" settings under the -"C/C++" tab. Similarly, you will need to add the FLTK library to the -"Link" settings. - -<p>You can build your Microsoft Windows applications as Console or -WIN32 applications. If you want to use the standard C <tt>main()</tt> -function as the entry point, FLTK includes a <tt>WinMain()</tt> function -that will call your <tt>main()</tt> function for you. - -<p><i>Note: The Visual C++ optimizer is known to cause problems with -many programs. We only recommend using the "Favor Small Code" -optimization setting.</i> - + In Visual C++ you will need to tell the compiler where to find the +FLTK header files. This can be done by selecting "Settings" from the +"Project" menu and then changing the "Preprocessor" settings under the +"C/C++" tab. Similarly, you will need to add the FLTK library to the +"Link" settings. +<P>You can build your Microsoft Windows applications as Console or +WIN32 applications. If you want to use the standard C <TT>main()</TT> + function as the entry point, FLTK includes a <TT>WinMain()</TT> + function that will call your <TT>main()</TT> function for you. </P> +<P><I>Note: The Visual C++ optimizer is known to cause problems with +many programs. We only recommend using the "Favor Small Code" +optimization setting.</I></P> <H2>Writing Your First FLTK Program</H2> - -All programs must include the file <tt><FL/Fl.H></tt>. In -addition the 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> -<pre> -#include <FL/Fl.H> -#include <FL/Fl_Window.H> -#include <FL/Fl_Box.H> + All programs must include the file <TT><FL/Fl.H In addition the +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> +<PRE> +#include <FL/Fl.H> +#include <FL/Fl_Window.H> +#include <FL/Fl_Box.H> int main(int argc, char **argv) { Fl_Window *window = new Fl_Window(300,180); - Fl_Box *box = new Fl_Box(FL_UP_BOX,20,40,260,100,"Hello, World!"); - box->labelsize(36); - box->labelfont(FL_BOLD+FL_ITALIC); - box->labeltype(FL_SHADOW_LABEL); - window->end(); - window->show(argc, argv); + Fl_Box *box = new Fl_Box(FL_UP_BOX,20,40,260,100,"Hello, World!"); + box->labelsize(36); + box->labelfont(FL_BOLD+FL_ITALIC); + box->labeltype(FL_SHADOW_LABEL); + window->end(); + window->show(argc, argv); return Fl::run(); } -</pre></ul> - -After including the required header files, the program then creates a -window: - -<ul><pre> -Fl_Window *window = new <a href="#Fl_Window">Fl_Window</a>(300,180); -</pre></ul> - -and a box with the "Hello, World!" string in it: - -<ul><pre> -Fl_Box *box = new <a href="#Fl_Box">Fl_Box</a>(FL_UP_BOX,20,40,260,100,"Hello, World!"); -</pre></ul> - -Next, we set the size, font, and style of the label: - -<ul><pre> -box-><a href="#Fl_Widget.labelsize">labelsize</a>(36); -box-><a href="#Fl_Widget.labelfont">labelfont</a>(FL_BOLD+FL_ITALIC); -box-><a href="#Fl_Widget.labeltype">labeltype</a>(FL_SHADOW_LABEL); -</pre></ul> - -Finally, we show the window and enter the FLTK event loop: - -<ul><pre> -window-><a href="#Fl_Group.end">end</a>(); -window-><a href="#Fl_Window.show">show</a>(argc, argv); -return <a href="#run">Fl::run</a>(); -</pre></ul> - -The resulting program will display the window below. You can quit -the program by closing the window or pressing the ESCape key. - -<center><img src=hello.C.gif></center> - +</PRE> +</UL> + After including the required header files, the program then creates a +window: +<UL> +<PRE> +Fl_Window *window = new <A href=Fl_Window.html#Fl_Window>Fl_Window</A>(300,180); +</PRE> +</UL> + and a box with the "Hello, World!" string in it: +<UL> +<PRE> +Fl_Box *box = new <A href=Fl_Box.html#Fl_Box>Fl_Box</A>(FL_UP_BOX,20,40,260,100,"Hello, World!"); +</PRE> +</UL> + Next, we set the size, font, and style of the label: +<UL> +<PRE> +box-><A href=Fl_Widget.html#Fl_Widget.labelsize>labelsize</A>(36); +box-><A href=Fl_Widget.html#Fl_Widget.labelfont>labelfont</A>(FL_BOLD+FL_ITALIC); +box-><A href=Fl_Widget.html#Fl_Widget.labeltype>labeltype</A>(FL_SHADOW_LABEL); +</PRE> +</UL> + Finally, we show the window and enter the FLTK event loop: +<UL> +<PRE> +window-><A href=Fl_Group.html#Fl_Group.end>end</A>(); +window-><A href=Fl_Window.html#Fl_Window.show>show</A>(argc, argv); +return <A href=functions.html#run>Fl::run</A>(); +</PRE> +</UL> + The resulting program will display the window below. You can quit the +program by closing the window or pressing the ESCape key. +<CENTER><IMG src=./hello.C.gif></CENTER> <H3>Creating the Widgets</H3> - -The widgets are created using the C++ <tt>new</tt> operator; the arguments -to the constructors are usually one of the following: - -<ul><pre> + The widgets are created using the C++ <TT>new</TT> operator; the +arguments to the constructors are usually one of the following: +<UL> +<PRE> Fl_Widget(boxtype, x, y, width, height) Fl_Widget(x, y, width, height) Fl_Widget(width, height) -</pre></ul> - -The <tt>boxtype</tt> value is the style of the box that is drawn around -the widget. Usually this is <tt>FL_NO_BOX</tt>, which means that no -box is drawn. In our "Hello, World!" example we use <tt>FL_UP_BOX</tt>, -which means that a raised button border will be drawn around the -widget. You can learn more about boxtypes in <a href="#boytypes">Chapter -3</a>. - -<p>The <tt>x</tt> and <tt>y</tt> parameters determine where the widget -or window is placed on the screen. In FLTK the top left corner of the -window or screen is the origin (i.e. x = 0, y = 0) and the units are in -pixels. - -<p>The <tt>width</tt> and <tt>height</tt> parameters determine the size -of the widget or window in pixels. The maximum widget size is typically -governed by the underlying window system or hardware. - +</PRE> +</UL> + The <TT>boxtype</TT> value is the style of the box that is drawn +around the widget. Usually this is <TT>FL_NO_BOX</TT>, which means +that no box is drawn. In our "Hello, World!" example we use <TT> +FL_UP_BOX</TT>, which means that a raised button border will be drawn +around the widget. You can learn more about boxtypes in <A href=#boytypes> +Chapter 3</A>. +<P>The <TT>x</TT> and <TT>y</TT> parameters determine where the widget +or window is placed on the screen. In FLTK the top left corner of the +window or screen is the origin (i.e. x = 0, y = 0) and the units are in +pixels. </P> +<P>The <TT>width</TT> and <TT>height</TT> parameters determine the size +of the widget or window in pixels. The maximum widget size is +typically governed by the underlying window system or hardware. </P> <H3>Labels</H3> - -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.labelfont"><tt>labelfont</tt></a>, -<a href="#Fl_Widget.labelsize"><tt>labelsize</tt></a>, and -<a href="#Fl_Widget.labeltype"><tt>labeltype</tt></a> methods. - -<p>The <tt>labelfont</tt> method sets the typeface and style that is -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>The <tt>labelsize</tt> method sets the height of the font in pixels. - -<p>The <tt>labeltype</tt> method sets the type of label. FLTK supports -normal, embossed, shadowed, symbol, and image labels. - -<p>A complete list of all label options can be found in <a href="#labels"> -Chapter 3</a>. - + 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> +labeltype</TT></A> methods. +<P>The <TT>labelfont</TT> method sets the typeface and style that is +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> +<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 customize the -appearance, size, and position of your windows. - + The <TT>show()</TT> method shows the widget or window. For windows +you can also provide the command-line arguments to allow users to +customize the appearance, size, and position of your windows. <H3>The Main Event Loop</H3> - -FLTK provides the <a href="#run"><tt>Fl:run()</tt></a> method to enter -a standard event processing loop. This is equivalent to the following -code: - -<ul><pre> + FLTK provides the <A href=functions.html#run><TT>Fl:run()</TT></A> + method to enter a standard event processing loop. This is equivalent +to the following code: +<UL> +<PRE> 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). - -</BODY> -</HTML> +</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>
\ No newline at end of file |
