From d7b88a3bcc7e76f38ee5799be7722fd5a10781ef Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Wed, 13 Jan 1999 19:28:54 +0000 Subject: Updated all links so they work between files. Revision 1. git-svn-id: file:///fltk/svn/fltk/trunk@219 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- documentation/functions.html | 1811 ++++++++++++++++++------------------------ 1 file changed, 775 insertions(+), 1036 deletions(-) (limited to 'documentation/functions.html') diff --git a/documentation/functions.html b/documentation/functions.html index 9bea40ce4..815d11dd0 100644 --- a/documentation/functions.html +++ b/documentation/functions.html @@ -1,319 +1,241 @@ - - - +

B - Function Reference

- -This appendix describes all of the fl_ functions and -Fl:: methods. For a description of the FLTK widgets, see Appendix A. - + This appendix describes all of the fl_ functions and Fl:: + methods. For a description of the FLTK widgets, see +Appendix A.

Functions

- -

int fl_color_chooser(const char*, double &r, double &g, double &b)
-int fl_color_chooser(const char *, uchar &r, uchar &g, uchar &b)

- -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. - -
- -

fl_color_chooser() 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 -the brighness using the vertical slider. Or they can type the 8-bit -numbers into the RGB Fl_Value_Input fields, or drag the -mouse across them to adjust them. The pull-down menu lets the user set -the input fields to show RGB, HSV, or 8-bit RGB (0 to 255). - -

This returns non-zero if the user picks ok, and updates the RGB -values. If the user picks cancel or closes the window this returns -zero and leaves RGB unchanged. - -

If you use the color chooser on an 8-bit screen, it will allocate -all the available colors, leaving you no space to exactly represent -the color the user picks! You can however use fl_rectf() to fill a region with a -simulated color using dithering. - -

int fl_show_colormap(int oldcol)

- -fl_show_colormap() pops up a panel of the 256 colors you -can access with fl_color() and lets the -user pick one of them. It returns the new color index, or the old one -if the user types ESC or clicks outside the window. - -
- -

void fl_message(const char *, ...)

- -Displays a printf-style message in a pop-up box with an "OK" -button, waits for the user to hit the button. The message will wrap -to fit the window, or may be many lines by putting \n characters into -it. The enter key is a shortcut for the OK button. - -
- -

void fl_alert(const char *, ...)

- -Same as fl_message() except for the "!" symbol. - -
- -

int fl_ask(const char *, ...)

- -Displays a printf-style message in a pop-up box with an "Yes" and "No" -button and waits for the user to hit a button. The return value is 1 -if the user hits Yes, 0 if they pick No. The enter key is a shortcut -for Yes and ESC is a shortcut for No. - -
- -

int fl_choice(const char *q, const char *b0, const char *b1, const char *b2, ...)

- -Shows the message with three buttons below it marked with the strings -b0, b1, and b2. Returns 0, 1, or 2 -depending on which button is hit. ESC is a shortcut for button 0 and -the enter key is a shortcut for button 1. Notice the "misordered" -position of the buttons. You can hide buttons by passing NULL -as their labels. - -
- -

const char *fl_input(const char *label, const char *deflt = 0, ...)

- -Pops up a window displaying a string, lets the user edit it, and return -the new value. The cancel button returns NULL. The -returned pointer is only valid until the next time fl_input() -is called. Due to back-compatability, the arguments to any printf -commands in the label are after the default value. - -
- -

const char *fl_password(const char *label, const char *deflt = 0, ...)

- -Same as fl_input() except an Fl_Secret_Input field is used. - -
- -

void fl_message_font(Fl_Font fontid, uchar size)

- -Change the font and font size used for the messages in all the popups. - -

Fl_Widget *fl_message_icon()

- -Returns a pointer to the box at the left edge of all the popups. You -can alter the font, color, or label (including making it a Pixmap), -before calling the functions. - -

char *fl_file_chooser(const char * message, const char *pattern, const char *fname)

- -FLTK provides a "tab completion" file chooser that makes it easy to -choose files from large directories. This file chooser has several -unique features, the major one being that the Tab key completes -filenames like it does in Emacs or tcsh, and the list always shows all -possible completions. - -
- -fl_file_chooser() pops up the file chooser, waits for the user -to pick a file or Cancel, and then returns a pointer to that filename -or NULL if Cancel is chosen. - -

message is a string used to title the window. - -

pattern is used to limit the files listed in a directory to -those matching the pattern. This matching is done by filename_match(). Use -NULL to show all files. - -

fname is a default filename to fill in the chooser with. If -this is NULL then the last filename that was choosen is used (unless -that had a different pattern, in which case just the last directory -with no name is used). The first time the file chooser is called this -defaults to a blank string. - -

The returned value points at a static buffer that is only good -until the next time fl_file_chooser() is called. - -

void fl_file_chooser_callback(void (*cb)(const char *))

- -Set a function that is called every time the user clicks a file in the -currently popped-up file chooser. This could be used to preview the -contents of the file. It has to be reasonably fast, and cannot create -FLTK windows. - -

int filename_list(const char *d, dirent ***list)

- -This is a portable and const-correct wrapper for the -fl_scandir function. d is the name of a directory -(it does not matter if it has a trailing slash or not). For each file -in that directory a "dirent" structure is created. The only portable -thing about a dirent is that dirent.d_name is the nul-terminated file -name. An array of pointers to these dirents is created and a pointer -to the array is returned in *list. The number of entries is -given as a return value. If there is an error reading the directory a -number less than zero is returned, and errno has the reason -(errno does not work under WIN32). The files are sorted in -"alphanumeric" order, where an attempt is made to put unpadded numbers -in consecutive order. - -

You can free the returned list of files with the following code: - -

+

int filename_isdir(const char *f)

+ Returns non-zero if the file exists and is a directory. +

const char *filename_name(const char *f)

+ Returns a pointer to the character after the last slash, or to the +start of the filename if there is none. +

const char *filename_ext(const char *f)

+ Returns a pointer to the last period in filename_name(f), or +a pointer to the trailing nul if none. +

char *filename_setext(char *f, const char +*ext)

+ Does strcpy(filename_ext(f), ext ? ext : ""). Returns a +pointer to f. +

int filename_expand(char *out, const char +*in)

+ Splits in at each slash character. Replaces any occurrance +of $X with getenv("X") (leaving it as $X if +the environment variable does not exist). Replaces any occurances of +~X with user X's home directory (leaving it as ~X + if the user does not exist). Any resulting double slashes cause +everything before the second slash to be deleted. Copies the result to +out (in and out may be the same buffer). + Returns non-zero if any changes were made. In true retro +programming style, it is up to you to provide a buffer big enough for +the result. 1024 characters should be enough. +

int filename_absolute(char *out, const +char *in)

+ If in does not start with a slash, this prepends the current +working directory to in and then deletes any occurances of +. and x/.. from the result, which it copies to out (in + and out may be the same buffer). Returns non-zero if any +changes were made. In true retro programming style, it is up to you +to provide a buffer big enough for the result. 1024 characters should +be enough. +

int filename_match(const char *f, const char +*pattern)

+ Returns true if f matches pattern. The following +syntax is used by pattern: +

Fl:: Methods

- -

static void Fl::add_fd(int fd, void (*cb)(int, void *), void * = 0)
-static void Fl::add_fd(int fd, int when, void (*cb)(int, void *), void * = 0)

-static void Fl::remove_fd(int)

- -Add file descriptor fd to listen to. When the fd -becomes ready for reading the callback is done. The callback is passed -the fd and the arbitrary void * argument. -Fl::wait() will return immediately after calling the callback. - -

The second version takes a when bitfield, with the bits -FL_READ, FL_WRITE, and FL_EXCEPT defined, to -indicate when the callback should be done. - -

There can only be one callback of each type for a file descriptor. -Fl::remove_fd() gets rid of all the callbacks for a -given file descriptor. - -

Under UNIX any file descriptor can be monitored (files, -devices, pipes, sockets, etc.) Due to limitations in Microsoft Windows, -WIN32 applications can only monitor sockets. - -

static void Fl::add_handler(int (*f)(int))

- -Install a function to parse unrecognized events. If FLTK cannot figure -out what to do with an event, it calls each of these functions (most -recent first) until one of them returns non-zero. If none of them -returns non zero then the event is ignored. Events that cause this to -be called are: - - - -

static Fl::add_idle(void (*cb)(void *), void *)

- -Adds a callback function that is called by Fl::wait() when there -is nothing to do. This can be used for background -processing. - -

Warning: this can absorb all your machine's time! - -

You can have multiple idle callbacks. To remove an idle callback -use Fl::remove_idle(). - -

Only Fl::wait() calls the idle callbacks. -Fl::wait(time), Fl::check(), and Fl::ready() -ignore them so that these functions may be called by the idle callbacks -themselves without having to worry about recursion. - -

The idle callback can call any FLTK functions. However if you call -something that calls Fl::wait() (such as a message pop-up) you -should first remove the idle callback so that it does not recurse. - -

static void Fl::add_timeout(float t, void (*cb)(void *),void *v=0)

- -Add a one-shot timeout callback. The timeout will happen as soon as -possible after t seconds after the last time wait() -was called. The optional void * argument is passed to the -callback. - -

This code will print "TICK" each second on stdout, no matter what -else the user or program does: - -

+

static void (*Fl::warning)(const char *, ...) +
static void (*Fl::error)(const char *, ...) +
static void (*Fl::fatal)(const char *, ...)

+ FLTK will call these to print messages when unexpected conditions +occur. By default they fprintf to stderr, and +Fl::error and Fl::fatal call exit(1). You can +override the behavior by setting the function pointers to your own +routines. +

Fl::warning means that there was a recoverable problem, the +display may be messed up but the user can probably keep working (all X +protocol errors call this). Fl::error means there is a +recoverable error, but the display is so messed up it is unlikely the +user can continue (very little calls this now). Fl::fatal must +not return, as FLTK is in an unusable state, however your version may +be able to use longjmp or an exception to continue, as long as +it does not call FLTK again.

+ \ No newline at end of file -- cgit v1.2.3