mirror of
https://github.com/fltk/fltk.git
synced 2026-05-24 08:16:04 +08:00
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:
@@ -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':
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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® 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 "¸").
|
||||
\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 \¸
|
||||
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.
|
||||
|
||||
@@ -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 }
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
The Fast Light Tool Kit ("FLTK", pronounced
|
||||
"fulltick") is a cross-platform C++ GUI toolkit for
|
||||
UNIX®/Linux® (X11), Microsoft® Windows®, and
|
||||
MacOS® X. FLTK provides modern GUI functionality without the
|
||||
Apple® OS X®. FLTK provides modern GUI functionality without the
|
||||
bloat and supports 3D graphics via OpenGL® 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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user