X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7145bcfc4738ad54199b5ede4c45a14adf037315..9e9574fe45b176ee74bba8fad7574cf9906145d1:/interface/wx/menuitem.h
diff --git a/interface/wx/menuitem.h b/interface/wx/menuitem.h
index da71be9190..af5a6d2943 100644
--- a/interface/wx/menuitem.h
+++ b/interface/wx/menuitem.h
@@ -2,8 +2,7 @@
// Name: menuitem.h
// Purpose: interface of wxMenu, wxMenuItem
// Author: wxWidgets team
-// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@@ -19,10 +18,10 @@
@beginEventEmissionTable{wxCommandEvent,wxMenuEvent}
@event{EVT_MENU(id, func)}
- Process a @c wxEVT_COMMAND_MENU_SELECTED command, which is generated by a menu item.
+ Process a @c wxEVT_MENU command, which is generated by a menu item.
This type of event is sent as wxCommandEvent.
@event{EVT_MENU_RANGE(id1, id2, func)}
- Process a @c wxEVT_COMMAND_MENU_RANGE command, which is generated by a range of menu items.
+ Process a @c wxEVT_MENU command, which is generated by a range of menu items.
This type of event is sent as wxCommandEvent.
@event{EVT_MENU_OPEN(func)}
A menu is about to be opened. On Windows, this is only sent once for each
@@ -55,8 +54,10 @@ public:
For the standard menu items (such as commands to open a file, exit the
program and so on, see @ref page_stockitems for the full list) it is enough
to specify just the stock ID and leave @a text and @a helpString empty.
+ Some platforms (currently wxGTK only, and see the remark in SetBitmap()
+ documentation) will also show standard bitmaps for stock menu items.
- In fact, leaving at least @a text empty for the stock menu items is strongly
+ Leaving at least @a text empty for the stock menu items is actually strongly
recommended as they will have appearance and keyboard interface (including
standard accelerators) familiar to the user.
@@ -73,7 +74,7 @@ public:
helpMenu->Append(wxID_ABOUT);
// use the stock label and the stock accelerator but not the stock help string:
- helpMenu->Append(wxID_ABOUT, wxEmptyString, "My custom help string");
+ helpMenu->Append(wxID_ABOUT, "", "My custom help string");
// use all stock properties except for the bitmap:
wxMenuItem *mymenu = new wxMenuItem(helpMenu, wxID_ABOUT);
@@ -155,7 +156,7 @@ public:
@onlyfor{wxmsw}
*/
- wxColour GetBackgroundColour() const;
+ wxColour& GetBackgroundColour() const;
/**
Returns the checked or unchecked bitmap.
@@ -169,7 +170,7 @@ public:
@onlyfor{wxmsw}
*/
- wxFont GetFont() const;
+ wxFont& GetFont() const;
/**
Returns the help string associated with the menu item.
@@ -255,7 +256,7 @@ public:
@onlyfor{wxmsw}
*/
- wxColour GetTextColour() const;
+ wxColour& GetTextColour() const;
//@}
@@ -266,8 +267,21 @@ public:
*/
//@{
+ /**
+ Returns @true if the item is a check item.
+
+ Unlike IsCheckable() this doesn't return @true for the radio buttons.
+
+ @since 2.9.5
+ */
+ bool IsCheck() const;
+
/**
Returns @true if the item is checkable.
+
+ Notice that the radio buttons are considered to be checkable as well,
+ so this method returns @true for them too. Use IsCheck() if you want to
+ test for the check items only.
*/
bool IsCheckable() const;
@@ -281,6 +295,13 @@ public:
*/
virtual bool IsEnabled() const;
+ /**
+ Returns @true if the item is a radio button.
+
+ @since 2.9.5
+ */
+ bool IsRadio() const;
+
/**
Returns @true if the item is a separator.
*/
@@ -305,7 +326,7 @@ public:
@onlyfor{wxmsw}
*/
- void SetBackgroundColour(const wxColour& colour) const;
+ void SetBackgroundColour(const wxColour& colour);
/**
Sets the bitmap for the menu item.
@@ -314,6 +335,16 @@ public:
@a checked is @true (default value) or SetBitmaps(wxNullBitmap, bmp)
otherwise.
+ SetBitmap() must be called before the item is appended to the menu,
+ i.e. appending the item without a bitmap and setting one later is not
+ guaranteed to work. But the bitmap can be changed or reset later if it
+ had been set up initially.
+
+ Notice that GTK+ uses a global setting called @c gtk-menu-images to
+ determine if the images should be shown in the menus at all. If it is
+ off (which is the case in e.g. Gnome 2.28 by default), no images will
+ be shown, consistently with the native behaviour.
+
@onlyfor{wxmsw,wxosx,wxgtk}
*/
virtual void SetBitmap(const wxBitmap& bmp, bool checked = true);
@@ -342,7 +373,7 @@ public:
/**
Sets the label associated with the menu item.
- Note that if the ID of this menu item corrisponds to a stock ID, then it is
+ Note that if the ID of this menu item corresponds to a stock ID, then it is
not necessary to specify a label: wxWidgets will automatically use the stock
item label associated with that ID. See the @ref wxMenuItem::wxMenuItem "constructor"
for more info.
@@ -355,13 +386,21 @@ public:
Optionally you can specify also an accelerator string appending a tab character
\\t followed by a valid key combination (e.g. CTRL+V).
- Its general syntax is any combination of @c "CTRL", @c "ALT" and @c "SHIFT" strings
- (case doesn't matter) separated by either @c '-' or @c '+' characters and followed
- by the accelerator itself.
+ Its general syntax is any combination of @c "CTRL", @c "RAWCTRL", @c
+ "ALT" and @c "SHIFT" strings (case doesn't matter) separated by either
+ @c '-' or @c '+' characters and followed by the accelerator itself.
+ Notice that @c CTRL corresponds to the "Ctrl" key on most platforms but
+ not under Mac OS where it is mapped to "Cmd" key on Mac keyboard.
+ Usually this is exactly what you want in portable code but if you
+ really need to use the (rarely used for this purpose) "Ctrl" key even
+ under Mac, you may use @c RAWCTRL to prevent this mapping. Under the
+ other platforms @c RAWCTRL is the same as plain @c CTRL.
+
The accelerator may be any alphanumeric character, any function key
(from F1 to F12) or one of the special characters listed in the table
below (again, case doesn't matter):
- @c DEL or @c DELETE: Delete key
+ - @c BACK : Backspace key
- @c INS or @c INSERT: Insert key
- @c ENTER or @c RETURN: Enter key
- @c PGUP: PageUp key
@@ -384,7 +423,13 @@ public:
m_pMyMenuItem3->SetItemLabel("Simple item");
m_pMyMenuItem4->SetItemLabel("Item with &accelerator");
@endcode
-
+
+ @note In wxGTK using @c "SHIFT" with non-alphabetic characters
+ currently doesn't work, even in combination with other modifiers, due
+ to GTK+ limitation. E.g. @c Shift+Ctrl+A works but @c Shift+Ctrl+1 or
+ @c Shift+/ do not, so avoid using accelerators of this form in portable
+ code.
+
@see GetItemLabel(), GetItemLabelText()
*/
virtual void SetItemLabel(const wxString& label);
@@ -394,7 +439,7 @@ public:
@onlyfor{wxmsw}
*/
- void SetMarginWidth(int width) const;
+ void SetMarginWidth(int width);
/**
Sets the parent menu which will contain this menu item.