mirror of
https://github.com/fltk/fltk.git
synced 2026-06-02 07:26:57 +08:00
Documentation fixes and clarifications.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11802 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
+14
-14
@@ -3,7 +3,7 @@
|
|||||||
//
|
//
|
||||||
// Menu base class header file for the Fast Light Tool Kit (FLTK).
|
// Menu base class header file for the Fast Light Tool Kit (FLTK).
|
||||||
//
|
//
|
||||||
// Copyright 1998-2010 by Bill Spitzak and others.
|
// Copyright 1998-2016 by Bill Spitzak and others.
|
||||||
//
|
//
|
||||||
// This library is free software. Distribution and use rights are outlined in
|
// This library is free software. Distribution and use rights are outlined in
|
||||||
// the file "COPYING" which should have been included with this file. If this
|
// the file "COPYING" which should have been included with this file. If this
|
||||||
@@ -29,24 +29,24 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
Base class of all widgets that have a menu in FLTK.
|
Base class of all widgets that have a menu in FLTK.
|
||||||
Currently FLTK provides you with
|
|
||||||
Fl_Menu_Button, Fl_Menu_Bar, and Fl_Choice.
|
|
||||||
|
|
||||||
<P>The class contains a pointer to an array of structures of type Fl_Menu_Item. The
|
Currently FLTK provides you with Fl_Menu_Button, Fl_Menu_Bar, and Fl_Choice.
|
||||||
array may either be supplied directly by the user program, or it may
|
|
||||||
|
The class contains a pointer to an array of structures of type Fl_Menu_Item.
|
||||||
|
The array may either be supplied directly by the user program, or it may
|
||||||
be "private": a dynamically allocated array managed by the Fl_Menu_.
|
be "private": a dynamically allocated array managed by the Fl_Menu_.
|
||||||
|
|
||||||
When the user clicks a menu item, value() is set to that item
|
When the user clicks a menu item, value() is set to that item
|
||||||
and then:
|
and then:
|
||||||
|
|
||||||
- If the Fl_Menu_Item has a callback set, that callback
|
- If the Fl_Menu_Item has a callback set, that callback
|
||||||
is invoked with any userdata configured for it.
|
is invoked with any userdata configured for it.
|
||||||
(The Fl_Menu_ widget's callback is NOT invoked.
|
(The Fl_Menu_ widget's callback is NOT invoked.)
|
||||||
|
|
||||||
- For any Fl_Menu_Items that \b don't have a callback set,
|
- For any Fl_Menu_Items that \b don't have a callback set,
|
||||||
the Fl_Menu_ widget's callback is invoked with any userdata
|
the Fl_Menu_ widget's callback is invoked with any userdata
|
||||||
configured for it. The callback can determine which item
|
configured for it. The callback can determine which item
|
||||||
was picked using value(), mvalue(), item_pathname(), etc.
|
was picked using value(), mvalue(), item_pathname(), etc.
|
||||||
*/
|
*/
|
||||||
class FL_EXPORT Fl_Menu_ : public Fl_Widget {
|
class FL_EXPORT Fl_Menu_ : public Fl_Widget {
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ public:
|
|||||||
void menu(const Fl_Menu_Item *m);
|
void menu(const Fl_Menu_Item *m);
|
||||||
void copy(const Fl_Menu_Item *m, void* user_data = 0);
|
void copy(const Fl_Menu_Item *m, void* user_data = 0);
|
||||||
int insert(int index, const char*, int shortcut, Fl_Callback*, void* = 0, int = 0);
|
int insert(int index, const char*, int shortcut, Fl_Callback*, void* = 0, int = 0);
|
||||||
int add(const char*, int shortcut, Fl_Callback*, void* = 0, int = 0);
|
int add(const char*, int shortcut, Fl_Callback*, void* = 0, int = 0); // see src/Fl_Menu_add.cxx
|
||||||
/** See int Fl_Menu_::add(const char* label, int shortcut, Fl_Callback*, void *user_data=0, int flags=0) */
|
/** See int Fl_Menu_::add(const char* label, int shortcut, Fl_Callback*, void *user_data=0, int flags=0) */
|
||||||
int add(const char* a, const char* b, Fl_Callback* c, void* d = 0, int e = 0) {
|
int add(const char* a, const char* b, Fl_Callback* c, void* d = 0, int e = 0) {
|
||||||
return add(a,fl_old_shortcut(b),c,d,e);
|
return add(a,fl_old_shortcut(b),c,d,e);
|
||||||
@@ -127,7 +127,7 @@ public:
|
|||||||
int clear_submenu(int index);
|
int clear_submenu(int index);
|
||||||
void replace(int,const char *);
|
void replace(int,const char *);
|
||||||
void remove(int);
|
void remove(int);
|
||||||
/** Changes the shortcut of item i to n. */
|
/** Changes the shortcut of item \p i to \p s. */
|
||||||
void shortcut(int i, int s) {menu_[i].shortcut(s);}
|
void shortcut(int i, int s) {menu_[i].shortcut(s);}
|
||||||
/** Sets the flags of item i. For a list of the flags, see Fl_Menu_Item. */
|
/** Sets the flags of item i. For a list of the flags, see Fl_Menu_Item. */
|
||||||
void mode(int i,int fl) {menu_[i].flags = fl;}
|
void mode(int i,int fl) {menu_[i].flags = fl;}
|
||||||
|
|||||||
+34
-26
@@ -3,7 +3,7 @@
|
|||||||
//
|
//
|
||||||
// Menu bar header file for the Fast Light Tool Kit (FLTK).
|
// Menu bar header file for the Fast Light Tool Kit (FLTK).
|
||||||
//
|
//
|
||||||
// Copyright 1998-2010 by Bill Spitzak and others.
|
// Copyright 1998-2016 by Bill Spitzak and others.
|
||||||
//
|
//
|
||||||
// This library is free software. Distribution and use rights are outlined in
|
// This library is free software. Distribution and use rights are outlined in
|
||||||
// the file "COPYING" which should have been included with this file. If this
|
// the file "COPYING" which should have been included with this file. If this
|
||||||
@@ -29,35 +29,39 @@
|
|||||||
put this widget along the top edge of your window. The height of the
|
put this widget along the top edge of your window. The height of the
|
||||||
widget should be 30 for the menu titles to draw correctly with the
|
widget should be 30 for the menu titles to draw correctly with the
|
||||||
default font.
|
default font.
|
||||||
<P>The items on the bar and the menus they bring up are defined by a
|
|
||||||
single Fl_Menu_Item
|
The items on the bar and the menus they bring up are defined by a
|
||||||
array. Because a Fl_Menu_Item array defines a hierarchy, the
|
single Fl_Menu_Item array.
|
||||||
|
Because a Fl_Menu_Item array defines a hierarchy, the
|
||||||
top level menu defines the items in the menubar, while the submenus
|
top level menu defines the items in the menubar, while the submenus
|
||||||
define the pull-down menus. Sub-sub menus and lower pop up to the right
|
define the pull-down menus. Sub-sub menus and lower pop up to the right
|
||||||
of the submenus. </P>
|
of the submenus.
|
||||||
<P ALIGN=CENTER>\image html menubar.png</P>
|
|
||||||
|
\image html menubar.png
|
||||||
\image latex menubar.png " menubar" width=12cm
|
\image latex menubar.png " menubar" width=12cm
|
||||||
<P>If there is an item in the top menu that is not a title of a
|
|
||||||
|
If there is an item in the top menu that is not a title of a
|
||||||
submenu, then it acts like a "button" in the menubar. Clicking on it
|
submenu, then it acts like a "button" in the menubar. Clicking on it
|
||||||
will pick it. </P>
|
will pick it.
|
||||||
|
|
||||||
When the user clicks a menu item, value() is set to that item
|
When the user clicks a menu item, value() is set to that item
|
||||||
and then:
|
and then:
|
||||||
|
|
||||||
- The item's callback is done if one has been set; the
|
- The item's callback is done if one has been set; the
|
||||||
Fl_Menu_Bar is passed as the Fl_Widget* argument,
|
Fl_Menu_Bar is passed as the Fl_Widget* argument,
|
||||||
along with any userdata configured for the callback.
|
along with any userdata configured for the callback.
|
||||||
|
|
||||||
- If the item does not have a callback, the Fl_Menu_Bar's callback
|
- If the item does not have a callback, the Fl_Menu_Bar's callback
|
||||||
is done instead, along with any userdata configured for the callback.
|
is done instead, along with any userdata configured for the callback.
|
||||||
The callback can determine which item was picked using
|
The callback can determine which item was picked using
|
||||||
value(), mvalue(), item_pathname(), etc.
|
value(), mvalue(), item_pathname(), etc.
|
||||||
|
|
||||||
<P>Submenus will also pop up in response to shortcuts indicated by
|
Submenus will also pop up in response to shortcuts indicated by
|
||||||
putting a '&' character in the name field of the menu item. If you put a
|
putting a '&' character in the name field of the menu item. If you put a
|
||||||
'&' character in a top-level "button" then the shortcut picks it. The
|
'&' character in a top-level "button" then the shortcut picks it. The
|
||||||
'&' character in submenus is ignored until the menu is popped up. </P>
|
'&' character in submenus is ignored until the menu is popped up.
|
||||||
<P>Typing the shortcut() of any of the menu items will cause
|
|
||||||
|
Typing the shortcut() of any of the menu items will cause
|
||||||
callbacks exactly the same as when you pick the item with the mouse.
|
callbacks exactly the same as when you pick the item with the mouse.
|
||||||
*/
|
*/
|
||||||
class FL_EXPORT Fl_Menu_Bar : public Fl_Menu_ {
|
class FL_EXPORT Fl_Menu_Bar : public Fl_Menu_ {
|
||||||
@@ -66,20 +70,24 @@ protected:
|
|||||||
public:
|
public:
|
||||||
int handle(int);
|
int handle(int);
|
||||||
/**
|
/**
|
||||||
Creates a new Fl_Menu_Bar widget using the given position,
|
Creates a new Fl_Menu_Bar widget using the given position,
|
||||||
size, and label string. The default boxtype is FL_UP_BOX.
|
size, and label string. The default boxtype is FL_UP_BOX.
|
||||||
<P>The constructor sets menu() to NULL. See
|
|
||||||
Fl_Menu_ for the methods to set or change the menu. </P>
|
The constructor sets menu() to NULL. See
|
||||||
<P>labelsize(), labelfont(), and labelcolor()
|
Fl_Menu_ for the methods to set or change the menu.
|
||||||
|
|
||||||
|
labelsize(), labelfont(), and labelcolor()
|
||||||
are used to control how the menubar items are drawn. They are
|
are used to control how the menubar items are drawn. They are
|
||||||
initialized from the Fl_Menu static variables, but you can
|
initialized from the Fl_Menu static variables, but you can
|
||||||
change them if desired. </P>
|
change them if desired.
|
||||||
<P>label() is ignored unless you change align() to
|
|
||||||
|
label() is ignored unless you change align() to
|
||||||
put it outside the menubar.
|
put it outside the menubar.
|
||||||
<P>The destructor removes the Fl_Menu_Bar widget and all of its
|
|
||||||
|
The destructor removes the Fl_Menu_Bar widget and all of its
|
||||||
menu items.
|
menu items.
|
||||||
*/
|
*/
|
||||||
Fl_Menu_Bar(int X, int Y, int W, int H,const char *l=0);
|
Fl_Menu_Bar(int X, int Y, int W, int H, const char *l=0);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+6
-6
@@ -3,7 +3,7 @@
|
|||||||
//
|
//
|
||||||
// Common menu code for the Fast Light Tool Kit (FLTK).
|
// Common menu code for the Fast Light Tool Kit (FLTK).
|
||||||
//
|
//
|
||||||
// Copyright 1998-2010 by Bill Spitzak and others.
|
// Copyright 1998-2016 by Bill Spitzak and others.
|
||||||
//
|
//
|
||||||
// This library is free software. Distribution and use rights are outlined in
|
// This library is free software. Distribution and use rights are outlined in
|
||||||
// the file "COPYING" which should have been included with this file. If this
|
// the file "COPYING" which should have been included with this file. If this
|
||||||
@@ -154,7 +154,7 @@ const Fl_Menu_Item * Fl_Menu_::find_item(const char *pathname) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Find the index the menu array for given \p item.
|
Find the index into the menu array for a given \p item.
|
||||||
|
|
||||||
A way to convert a menu item pointer into an index.
|
A way to convert a menu item pointer into an index.
|
||||||
|
|
||||||
@@ -175,7 +175,7 @@ const Fl_Menu_Item * Fl_Menu_::find_item(const char *pathname) {
|
|||||||
if ( index == -1 ) { ..error.. }
|
if ( index == -1 ) { ..error.. }
|
||||||
\endcode
|
\endcode
|
||||||
|
|
||||||
\param item The *item to be found
|
\param[in] item The item to be found
|
||||||
\returns The index of the item, or -1 if not found.
|
\returns The index of the item, or -1 if not found.
|
||||||
\see menu()
|
\see menu()
|
||||||
*/
|
*/
|
||||||
@@ -212,7 +212,7 @@ int Fl_Menu_::find_index(Fl_Callback *cb) const {
|
|||||||
|
|
||||||
To get the menu item pointer for a pathname, use find_item()
|
To get the menu item pointer for a pathname, use find_item()
|
||||||
|
|
||||||
\param pathname The path and name of the menu item index to find
|
\param[in] pathname The path and name of the menu item to find
|
||||||
\returns The index of the matching item, or -1 if not found.
|
\returns The index of the matching item, or -1 if not found.
|
||||||
\see item_pathname()
|
\see item_pathname()
|
||||||
|
|
||||||
@@ -254,7 +254,7 @@ int Fl_Menu_::find_index(const char *pathname) const {
|
|||||||
internationalisation and a menu item can not be found using its label. This
|
internationalisation and a menu item can not be found using its label. This
|
||||||
search is also much faster.
|
search is also much faster.
|
||||||
|
|
||||||
\param cb find the first item with this callback
|
\param[in] cb find the first item with this callback
|
||||||
\returns The item found, or NULL if not found
|
\returns The item found, or NULL if not found
|
||||||
\see find_item(const char*)
|
\see find_item(const char*)
|
||||||
*/
|
*/
|
||||||
@@ -482,7 +482,7 @@ void Fl_Menu_::clear() {
|
|||||||
is done to make a private array.
|
is done to make a private array.
|
||||||
|
|
||||||
\warning Since this method can change the internal menu array, any menu
|
\warning Since this method can change the internal menu array, any menu
|
||||||
item pointers or indecies the application may have cached can become
|
item pointers or indices the application may have cached can become
|
||||||
stale, and should be recalculated/refreshed.
|
stale, and should be recalculated/refreshed.
|
||||||
|
|
||||||
\b Example:
|
\b Example:
|
||||||
|
|||||||
+36
-24
@@ -3,7 +3,7 @@
|
|||||||
//
|
//
|
||||||
// Menu utilities for the Fast Light Tool Kit (FLTK).
|
// Menu utilities for the Fast Light Tool Kit (FLTK).
|
||||||
//
|
//
|
||||||
// Copyright 1998-2010 by Bill Spitzak and others.
|
// Copyright 1998-2016 by Bill Spitzak and others.
|
||||||
//
|
//
|
||||||
// This library is free software. Distribution and use rights are outlined in
|
// This library is free software. Distribution and use rights are outlined in
|
||||||
// the file "COPYING" which should have been included with this file. If this
|
// the file "COPYING" which should have been included with this file. If this
|
||||||
@@ -94,10 +94,14 @@ static int compare(const char* a, const char* b) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Adds a menu item.
|
||||||
|
|
||||||
/** Adds an item. The text is split at '/' characters to automatically
|
The text is split at '/' characters to automatically
|
||||||
produce submenus (actually a totally unnecessary feature as you can
|
produce submenus (actually a totally unnecessary feature as you can
|
||||||
now add submenu titles directly by setting SUBMENU in the flags):
|
now add submenu titles directly by setting FL_SUBMENU in the flags).
|
||||||
|
|
||||||
|
\returns the index into the menu() array, where the entry was added
|
||||||
|
\see Fl_Menu_Item::insert(int, const char*, int, Fl_Callback*, void*, int)
|
||||||
*/
|
*/
|
||||||
int Fl_Menu_Item::add(
|
int Fl_Menu_Item::add(
|
||||||
const char *mytext,
|
const char *mytext,
|
||||||
@@ -110,7 +114,6 @@ int Fl_Menu_Item::add(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Inserts an item at position \p index.
|
Inserts an item at position \p index.
|
||||||
|
|
||||||
@@ -122,12 +125,13 @@ int Fl_Menu_Item::add(
|
|||||||
|
|
||||||
In all other aspects, the behavior of insert() is the same as add().
|
In all other aspects, the behavior of insert() is the same as add().
|
||||||
|
|
||||||
\param index insert new items here
|
\param[in] index insert new items here
|
||||||
\param mytext new label string, details see above
|
\param[in] mytext new label string, details see above
|
||||||
\param sc keyboard shortcut for new item
|
\param[in] sc keyboard shortcut for new item
|
||||||
\param cb callback function for new item
|
\param[in] cb callback function for new item
|
||||||
\param data user data for new item
|
\param[in] data user data for new item
|
||||||
\param myflags menu flags as described in FL_Menu_Item
|
\param[in] myflags menu flags as described in FL_Menu_Item
|
||||||
|
|
||||||
\returns the index into the menu() array, where the entry was added
|
\returns the index into the menu() array, where the entry was added
|
||||||
*/
|
*/
|
||||||
int Fl_Menu_Item::insert(
|
int Fl_Menu_Item::insert(
|
||||||
@@ -209,30 +213,33 @@ int Fl_Menu_Item::insert(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Adds a new menu item.
|
Adds a new menu item.
|
||||||
|
|
||||||
\param[in] label The text label for the menu item.
|
\param[in] label The text label for the menu item.
|
||||||
\param[in] shortcut Optional keyboard shortcut that can be an int or string; (FL_CTRL+'a') or "^a". Default 0 if none.
|
\param[in] shortcut Optional keyboard shortcut that can be an int or string:
|
||||||
\param[in] callback Optional callback invoked when user clicks the item. Default 0 if none.
|
(FL_CTRL+'a') or "^a". Default 0 if none.
|
||||||
\param[in] userdata Optional user data passed as an argument to the callback. Default 0 if none.
|
\param[in] callback Optional callback invoked when user clicks the item.
|
||||||
\param[in] flags Optional flags that control the type of menu item; see below. Default is 0 for none.
|
Default 0 if none.
|
||||||
\returns The index into the menu() array, where the entry was added.
|
\param[in] userdata Optional user data passed as an argument to the callback.
|
||||||
|
Default 0 if none.
|
||||||
|
\param[in] flags Optional flags that control the type of menu item;
|
||||||
|
see below. Default is 0 for none.
|
||||||
|
\returns The index into the menu() array, where the entry was added.
|
||||||
|
|
||||||
\par Description
|
\par Description
|
||||||
If the menu array was directly set with menu(x), then copy() is done
|
If the menu array was directly set with menu(x), then copy() is done
|
||||||
to make a private array.
|
to make a private array.
|
||||||
\par
|
\par
|
||||||
Since this method can change the internal menu array, any menu item
|
Since this method can change the internal menu array, any menu item
|
||||||
pointers or indecies the application may have cached can become stale,
|
pointers or indices the application may have cached can become stale,
|
||||||
and should be recalculated/refreshed.
|
and should be recalculated/refreshed.
|
||||||
\par
|
\par
|
||||||
A menu item's callback must not add() items to its parent menu during the callback.
|
A menu item's callback must not add() items to its parent menu during the callback.
|
||||||
|
|
||||||
<B>Detailed Description of Parameters</B>
|
<B>Detailed Description of Parameters</B>
|
||||||
\par label
|
\par label
|
||||||
The menu item's label. This option is required.
|
The menu item's label. This argument is required and must not be NULL.
|
||||||
\par
|
\par
|
||||||
The characters "&", "/", "\", and "_" are treated as special characters in the label string.
|
The characters "&", "/", "\", and "_" are treated as special characters in the label string.
|
||||||
The "&" character specifies that the following character is an accelerator and will be underlined.
|
The "&" character specifies that the following character is an accelerator and will be underlined.
|
||||||
@@ -273,7 +280,7 @@ int Fl_Menu_Item::insert(
|
|||||||
\endverbatim
|
\endverbatim
|
||||||
\par
|
\par
|
||||||
..where \<ascii_value\> is a decimal value representing an
|
..where \<ascii_value\> is a decimal value representing an
|
||||||
ascii character (eg. 97 is the ascii code for 'a'), and the optional
|
ASCII character (eg. 97 is the ascii code for 'a'), and the optional
|
||||||
prefixes enhance the value that follows. Multiple prefixes must
|
prefixes enhance the value that follows. Multiple prefixes must
|
||||||
appear in the order below.
|
appear in the order below.
|
||||||
\par
|
\par
|
||||||
@@ -313,6 +320,12 @@ int Fl_Menu_Item::insert(
|
|||||||
FL_MENU_DIVIDER // Creates divider line below this item. Also ends a group of radio buttons.
|
FL_MENU_DIVIDER // Creates divider line below this item. Also ends a group of radio buttons.
|
||||||
\endcode
|
\endcode
|
||||||
|
|
||||||
|
If FL_SUBMENU is set in an item's flags, then actually two items are added:
|
||||||
|
the first item is the menu item (submenu title), as expected, and the second
|
||||||
|
item is the submenu terminating item with the label and all other members
|
||||||
|
set to 0. If you add submenus with the 'path' technique, then the
|
||||||
|
corresponding submenu terminators (maybe more than one) are added as well.
|
||||||
|
|
||||||
\todo Raw integer shortcut needs examples.
|
\todo Raw integer shortcut needs examples.
|
||||||
Dependent on responses to http://fltk.org/newsgroups.php?gfltk.development+v:10086 and results of STR#2344
|
Dependent on responses to http://fltk.org/newsgroups.php?gfltk.development+v:10086 and results of STR#2344
|
||||||
*/
|
*/
|
||||||
@@ -321,7 +334,6 @@ int Fl_Menu_::add(const char *label,int shortcut,Fl_Callback *callback,void *use
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Inserts a new menu item at the specified \p index position.
|
Inserts a new menu item at the specified \p index position.
|
||||||
|
|
||||||
@@ -351,8 +363,8 @@ int Fl_Menu_::add(const char *label,int shortcut,Fl_Callback *callback,void *use
|
|||||||
\returns The index into the menu() array, where the entry was added.
|
\returns The index into the menu() array, where the entry was added.
|
||||||
|
|
||||||
\see add()
|
\see add()
|
||||||
|
*/
|
||||||
|
|
||||||
*/
|
|
||||||
int Fl_Menu_::insert(
|
int Fl_Menu_::insert(
|
||||||
int index,
|
int index,
|
||||||
const char *label,
|
const char *label,
|
||||||
@@ -365,7 +377,7 @@ int Fl_Menu_::insert(
|
|||||||
if (this != fl_menu_array_owner) {
|
if (this != fl_menu_array_owner) {
|
||||||
if (fl_menu_array_owner) {
|
if (fl_menu_array_owner) {
|
||||||
Fl_Menu_* o = fl_menu_array_owner;
|
Fl_Menu_* o = fl_menu_array_owner;
|
||||||
// the previous owner get's its own correctly-sized array:
|
// the previous owner gets its own correctly-sized array:
|
||||||
int value_offset = (int) (o->value_-local_array);
|
int value_offset = (int) (o->value_-local_array);
|
||||||
int n = local_array_size;
|
int n = local_array_size;
|
||||||
Fl_Menu_Item* newMenu = o->menu_ = new Fl_Menu_Item[n];
|
Fl_Menu_Item* newMenu = o->menu_ = new Fl_Menu_Item[n];
|
||||||
|
|||||||
Reference in New Issue
Block a user