A bunch of documentation updates. Not sure if I found everything. The Unicode section needs some love.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8151 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Matthias Melcher
2011-01-01 04:42:56 +00:00
parent e3fde20cf8
commit 8074cb6f82
8 changed files with 61 additions and 141 deletions
+1 -6
View File
@@ -335,15 +335,10 @@ need to add the FLTK (FLTK.LIB or FLTKD.LIB) and the Windows
Common Controls (COMCTL32.LIB) libraries to the "Link" settings.
You can build your Microsoft Windows applications as Console or
WIN32 applications. If you want to use the standard C \p main()
Desktop applications. If you want to use the standard C \p main()
function as the entry point, FLTK includes a \p WinMain()
function that will call your \p main() function for you.
<I>Note: The Visual C++ 5.0 optimizer is known to cause problems with
many programs. We only recommend using the "Favor Small Code"
optimization setting.</I> The Visual C++ 6.0 optimizer seems to be much
better and can be used with the "optimized for speed" setting.
\section basics_naming Naming
All public symbols in FLTK start with the characters 'F' and 'L':
+10 -3
View File
@@ -171,7 +171,7 @@ widget's parent.
FLTK stores the colors of widgets as an 32-bit unsigned
number that is either an index into a color palette of 256
colors or a 24-bit RGB color. The color palette is \e not
the X or WIN32 colormap, but instead is an internal table with
the X or MS Windows colormap, but instead is an internal table with
fixed contents.
See the
@@ -392,11 +392,18 @@ constants are defined and may be OR'd together as needed:
\li \p FL_ALIGN_BOTTOM - align the label at the bottom of the widget.
\li \p FL_ALIGN_LEFT - align the label to the left of the widget.
\li \p FL_ALIGN_RIGHT - align the label to the right of the widget.
\li \p FL_ALIGN_LEFT_TOP - The label appears to the left of the widget, aligned at the top. Outside labels only.
\li \p FL_ALIGN_RIGHT_TOP - The label appears to the right of the widget, aligned at the top. Outside labels only.
\li \p FL_ALIGN_LEFT_BOTTOM - The label appears to the left of the widget, aligned at the bottom. Outside labels only.
\li \p FL_ALIGN_RIGHT_BOTTOM - The label appears to the right of the widget, aligned at the bottom. Outside labels only.
\li \p FL_ALIGN_INSIDE - align the label inside the widget.
\li \p FL_ALIGN_CLIP - clip the label to the widget's bounding box.
\li \p FL_ALIGN_WRAP - wrap the label text as needed.
\li \p FL_TEXT_OVER_IMAGE - show the label text over the image.
\li \p FL_IMAGE_OVER_TEXT - show the label image over the text (default).
\li \p FL_ALIGN_TEXT_OVER_IMAGE - show the label text over the image.
\li \p FL_ALIGN_IMAGE_OVER_TEXT - show the label image over the text (default).
\li \p FL_ALIGN_IMAGE_NEXT_TO_TEXT - The image will appear to the left of the text.
\li \p FL_ALIGN_TEXT_NEXT_TO_IMAGE - The image will appear to the right of the text.
\li \p FL_ALIGN_IMAGE_BACKDROP - The image will be used as a background for the widget.
\anchor common_labeltype
\par labeltype()
+11 -46
View File
@@ -292,7 +292,7 @@ responsibility to set it back to the default with
\par
\b Note:
Because of how line styles are implemented on WIN32 systems, you
Because of how line styles are implemented on MS Windows systems, you
\e must set the line style \e after setting the drawing color.
If you set the
color after the line style you will lose the line style settings!
@@ -411,7 +411,7 @@ void fl_pie(int x, int y, int w, int h, double a1, double a2)
\par
Draw ellipse sections using integer coordinates. These
functions match the rather limited circle drawing code provided
by X and WIN32. The advantage over using
by X and MS Windows. The advantage over using
\ref drawing_fl_arc "fl_arc()"
with floating point
coordinates is that they are faster because they often use the
@@ -455,7 +455,7 @@ with 2-D linear transformations. The functionality matches that
found in the Adobe&reg; PostScript&tm; language. The
exact pixels that are filled are less defined than for the fast
drawing functions so that FLTK can take advantage of drawing
hardware. On both X and WIN32 the transformed vertices are
hardware. On both X and MS Windows the transformed vertices are
rounded to integers before drawing the line segments: this
severely limits the accuracy of these functions for complex
graphics, so use OpenGL when greater accuracy and/or performance
@@ -466,7 +466,7 @@ void fl_pop_matrix()
\par
Save and restore the current transformation. The maximum
depth of the stack is 4.
depth of the stack is 32 entries.
void fl_scale(double x,double y) <br>
void fl_scale(double x) <br>
@@ -645,7 +645,7 @@ the text at so it looks centered vertically in that box.
double fl_width(const char* txt) <br>
double fl_width(const char* txt, int n) <br>
double fl_width(Fl_Unichar)
double fl_width(unsigned int unicode_char)
\par
Return the pixel width of a nul-terminated string, a sequence of \p n
@@ -699,48 +699,13 @@ Returns the face and size set by the most recent call to
\subsection ssect_CharacterEncoding Character Encoding
\todo
Rework the Character Encoding section for UTF-8
FLTK 1.3 expects all text in Unicode UTF-8 encoding. UTF-8 is
ASCII compatible for the first 128 characters. International
characters are encoded in multibyte sequences.
FLTK 1 supports western character sets using the eight bit encoding
of the user-selected global code page. For MS Windows and X11, the code
page is assumed to be Windows-1252/Latin1, a superset to ISO 8859-1.
On Mac OS X, we assume MacRoman.
FLTK provides the functions fl_latin1_to_local(),
fl_local_to_latin1(), fl_mac_roman_to_local(), and
fl_local_to_mac_roman() to convert strings between both
encodings. These functions are only required if your source
code contains "C"-strings with international characters and
if this source will be compiled on multiple platforms.
<!-- Editor's note:
** Caution: the following text contains utf-8 encoded characters.
** be careful when using non-utf-8-aware editors !
-->
Assuming that the following source code was written on MS Windows,
this example will output the correct label on OS X and X11 as well.
Without the conversion call, the label on OS X would read
<tt>Fahrvergn¸gen</tt> with a deformed umlaut u ("cedille",
html "&cedil;").
\code
btn = new Fl_Button(10, 10, 300, 25);
btn->copy_label(fl_latin1_to_local("Fahrvergnügen"));
\endcode
\note If your application uses characters that are not part of both
encodings, or it will be used in areas that commonly use different
code pages, you might consider upgrading to FLTK 2 which supports
UTF-8 encoding.
\todo drawing.dox: I fixed the above encoding problem of these \&cedil;
and umlaut characters, but this text is obsoleted by FLTK 1.3
with UTF-8 encoding, or must be rewritten accordingly:
How to use native (e.g. Windows "ANSI", or ISO-8859-x)
encoding in embedded strings for labels, error messages
and more. Please check this (UTF-8) encoding on different
OS'es and with different language and font environments.
FLTK expects individual characters, characters that are not part of
a string, in UCS-4 encoding, which is also ASCII compatible, but
requires 4 bytes to store a Unicode character.
For more information about character encodings, see the chapter on
\ref unicode.
+14 -14
View File
@@ -68,28 +68,28 @@ structure is used to define the menus and items in a menubar:
Fl_Menu_Item menuitems[] = {
{ "&File", 0, 0, 0, FL_SUBMENU },
{ "&New File", 0, (Fl_Callback *)new_cb },
{ "&Open File...", FL_CTRL + 'o', (Fl_Callback *)open_cb },
{ "&Insert File...", FL_CTRL + 'i', (Fl_Callback *)insert_cb, 0, FL_MENU_DIVIDER },
{ "&Save File", FL_CTRL + 's', (Fl_Callback *)save_cb },
{ "Save File &As...", FL_CTRL + FL_SHIFT + 's', (Fl_Callback *)saveas_cb, 0, FL_MENU_DIVIDER },
{ "&Open File...", FL_COMMAND + 'o', (Fl_Callback *)open_cb },
{ "&Insert File...", FL_COMMAND + 'i', (Fl_Callback *)insert_cb, 0, FL_MENU_DIVIDER },
{ "&Save File", FL_COMMAND + 's', (Fl_Callback *)save_cb },
{ "Save File &As...", FL_COMMAND + FL_SHIFT + 's', (Fl_Callback *)saveas_cb, 0, FL_MENU_DIVIDER },
{ "New &View", FL_ALT + 'v', (Fl_Callback *)view_cb, 0 },
{ "&Close View", FL_CTRL + 'w', (Fl_Callback *)close_cb, 0, FL_MENU_DIVIDER },
{ "E&xit", FL_CTRL + 'q', (Fl_Callback *)quit_cb, 0 },
{ "&Close View", FL_COMMAND + 'w', (Fl_Callback *)close_cb, 0, FL_MENU_DIVIDER },
{ "E&xit", FL_COMMAND + 'q', (Fl_Callback *)quit_cb, 0 },
{ 0 },
{ "&Edit", 0, 0, 0, FL_SUBMENU },
{ "&Undo", FL_CTRL + 'z', (Fl_Callback *)undo_cb, 0, FL_MENU_DIVIDER },
{ "Cu&t", FL_CTRL + 'x', (Fl_Callback *)cut_cb },
{ "&Copy", FL_CTRL + 'c', (Fl_Callback *)copy_cb },
{ "&Paste", FL_CTRL + 'v', (Fl_Callback *)paste_cb },
{ "&Undo", FL_COMMAND + 'z', (Fl_Callback *)undo_cb, 0, FL_MENU_DIVIDER },
{ "Cu&t", FL_COMMAND + 'x', (Fl_Callback *)cut_cb },
{ "&Copy", FL_COMMAND + 'c', (Fl_Callback *)copy_cb },
{ "&Paste", FL_COMMAND + 'v', (Fl_Callback *)paste_cb },
{ "&Delete", 0, (Fl_Callback *)delete_cb },
{ 0 },
{ "&Search", 0, 0, 0, FL_SUBMENU },
{ "&Find...", FL_CTRL + 'f', (Fl_Callback *)find_cb },
{ "F&ind Again", FL_CTRL + 'g', find2_cb },
{ "&Replace...", FL_CTRL + 'r', replace_cb },
{ "Re&place Again", FL_CTRL + 't', replace2_cb },
{ "&Find...", FL_COMMAND + 'f', (Fl_Callback *)find_cb },
{ "F&ind Again", FL_COMMAND + 'g', find2_cb },
{ "&Replace...", FL_COMMAND + 'r', replace_cb },
{ "Re&place Again", FL_COMMAND + 't', replace2_cb },
{ 0 },
{ 0 }
+9 -26
View File
@@ -5,7 +5,7 @@
The Fast Light Tool Kit ("FLTK", pronounced
"fulltick") is a cross-platform C++ GUI toolkit for
UNIX&reg;/Linux&reg; (X11), Microsoft&reg; Windows&reg;, and
MacOS&reg; X. FLTK provides modern GUI functionality without the
Apple&reg; OS X&reg;. FLTK provides modern GUI functionality without the
bloat and supports 3D graphics via OpenGL&reg; and its built-in
GLUT emulation. It was originally developed by Mr. Bill Spitzak
and is currently maintained by a small group of developers
@@ -113,8 +113,8 @@ Here are some of the core features unique to FLTK:
\li Support for OpenGL overlay hardware on both X11 and WIN32, with
emulation if none is available.
\li Text widgets with Emacs key bindings, X cut & paste, and support
for character composition.
\li Text widgets with cut & paste, undo, and support
for Unicode text and international input methods..
\li Compatibility header file for the GLUT library.
@@ -143,12 +143,14 @@ the toolkit, which was already in use by several people, Bill
came up with "FLTK", including a bogus excuse that it
stands for "The Fast Light Toolkit".
\section intro_unix Building and Installing FLTK Under UNIX and MacOS X
\section intro_unix Building and Installing FLTK Under UNIX and Apple OS X
In most cases you can just type "make". This will
run configure with the default of no options and then compile
everything.
For OS X, Xcode 3 project files can be found in the 'ide' directory.
FLTK uses GNU autoconf to configure itself for your UNIX
platform. The main things that the configure script will look
for are the X11 and OpenGL (or Mesa) header and library files.
@@ -244,9 +246,9 @@ files to "includedir", and the library files to "libdir".
\section intro_windows Building FLTK Under Microsoft Windows
There are three ways to build FLTK under Microsoft Windows.
The first is to use the Visual C++ 5.0 project files under the
"visualc" directory. Just open (or double-click on)
the "fltk.dsw" file to get the whole shebang.
The first is to use one of the VisualC project files in the
"ide" directory. Just open (or double-click on)
the "fltk.dsw" or "fltk.sln" file to get the whole shebang.
The second method is to use the \p configure script
included with the FLTK software; this has only been tested with
@@ -281,23 +283,6 @@ you will need to define the \p FL_DLL preprocessor symbol
to get the correct linkage commands embedded within the FLTK
header files.
\section intro_os2 Building FLTK Under OS/2
The current OS/2 build requires XFree86 for OS/2 to work. A
native Presentation Manager version has not been implemented
yet (volunteers are welcome!).
The current set of Makefiles/configuration failes assumes that EMX 0.9d
and libExt (from http://posix2.sourceforge.net) is installed.
To build the XFree86 version of FLTK for OS/2, copy the appropriate
makeinclude and config files to the main directory and do a make:
\code
copy makefiles\Makefile.os2x Makefile
make
\endcode
\section intro_internet Internet Resources
FLTK is available on the 'net in a bunch of locations:
@@ -313,8 +298,6 @@ http://ftp.easysw.com/pub/fltk [California, USA, via http]<br>
ftp://ftp.easysw.com/pub/fltk [California, USA via ftp]<br>
ftp://ftp2.easysw.com/pub/fltk [Maryland, USA]<br>
ftp://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub/fltk [Espoo, Finland]<br>
ftp://linux.mathematik.tu-darmstadt.de/pub/linux/mirrors/misc/fltk [Germany] <br>
ftp://gd.tuwien.ac.at/hci/fltk [Austria]
\par NNTP Newsgroups
news://news.easysw.com/ [NNTP interface]<br>
+7 -6
View File
@@ -639,10 +639,10 @@ version of FLTK:
as -O2 and -O3 seem to work OK. More details can be found
in STR#1656
\section osissues_macos The Mac OS Interface
\section osissues_macos The Apple OS X Interface
FLTK supports Mac OS X using the Apple Cocoa library. Older
versions of Mac OS are <I>not</I> supported.
FLTK supports Apple OS X using the Apple Cocoa library. Older
versions of MacOS are no longer supported.
Control, Option, and Command Modifier Keys
@@ -677,7 +677,7 @@ void fl_open_display()
\par
Opens the display. Does nothing if it is already open. You should call
this if you wish to do Quartz calls and there is a chance that your
this if you wish to do Cocoa calls and there is a chance that your
code will be called before the first \c show() of a window.
Window fl_xid(const Fl_Window *)
@@ -736,11 +736,12 @@ internally in the same way.
FLTK does not access the resource fork of an application.
However, a minimal resource fork must be created for OS X
applications
applications. Starting with OS X 10.6, resource forks are
no longer needed.
<CENTER>
<TABLE WIDTH="80%" BORDER="1" BGCOLOR="#cccccc" CELLPADDING="5">
<TR><TD><B>Caution:</B>
<TR><TD><B>Caution (OS X 10.2 and older):</B>
When using UNIX commands to copy or move executables, OS X
will NOT copy any resource forks! For copying and moving use
+9 -5
View File
@@ -4,7 +4,7 @@
This manual describes the Fast Light Tool Kit ("FLTK")
version 1.3.0, a C++ Graphical User Interface
("GUI") toolkit for UNIX, Microsoft Windows and MacOS. Each
("GUI") toolkit for UNIX, Microsoft Windows and Apple OS X. Each
of the chapters in this manual is designed as a tutorial for
using FLTK, while the appendices provide a convenient reference
for all FLTK widgets, functions, and operating system
@@ -63,11 +63,15 @@ The X Window System version 11.
\par Xlib
The X Window System interface library.
\par WIN32
The Microsoft Windows 32-bit Application Programmer's Interface.
\par MS Windows, <tt>WIN32</tt>
The Microsoft Windows Application Programmer's Interface for Windows 2000,
Windows XP, Windows Vista, and Windows 7. FLTK uses the preprocessor definition
<tt>WIN32</tt> for the 32 bit and 64 bit MS Windows API.
\par MacOS
The Apple Macintosh OS 8.6 and later, including OS X.
\par OS X, <tt>__APPLE__</tt>
The Apple desktop operating sytem OS X 10.0 and later. MacOS 8 and 9 support
was dropped after FLTK 1.0.10. FLTK uses the preprocessor definition
<tt>__APPLE__</tt> for OS X.
\section preface_copyrights Copyrights and Trademarks
-35
View File
@@ -494,41 +494,6 @@ converts the strings to lower case Unicode as part of the comparison.
\li explain issues with Fl_Preferences
\li why FLTK has no Fl_String class
\par DONE:
\li initial transfer of the Ian/O'ksi'D patch
\li adapted Makefiles and IDEs for available platforms
\li hacked some Unicode keyboard entry for OS X
\par ISSUES:
\li IDEs:
- Makefile support: tested on Fedora Core 5 and OS X, but heaven knows
on which platforms this may fail
- Xcode: tested, seems to be working (but see comments below on OS X)
- VisualC (VC6): tested, test/utf8 works, but may have had some issues
during merge. Some additional work needed (imm32.lib)
- VisualStudio2005: tested, test/utf8 works, some addtl. work needed
(imm32.lib)
- VisualCNet: sorry, I have no longer access to that IDE
- Borland and other compiler: sorry, I can't update those
\li Platforms:
- you will encounter problems on all platforms!
- X11: many characters are missing, but that may be related to bad
fonts on my machine. I also could not do any keyboard tests yet.
Rendering seems to generally work ok.
- Win32: US and German keyboard worked ok, but no compositing was
tested. Rendering looks pretty good.
- OS X: redering looks good. Keyboard is completely messed up, even in
US setting (with Alt key)
- all: while merging I have seen plenty of places that are not
entirley utf8-safe, particularly Fl_Input, Fl_Text_Editor, and
Fl_Help_View. Keycodes from the keyboard conflict with Unicode
characters. Right-to-left rendered text can not be marked or edited,
and probably much more.
\htmlonly
<hr>
<table summary="navigation bar" width="100%" border="0">