xtd - Reference Guide  0.1.0
Modern c++17 framework to create console, gui and unit test applications on Windows, macOS and Linux.
xtd::forms::menu Class Referenceabstract

Represents the base functionality for all menus. Although tool_strip_drop_down and tool_strip_drop_down_menu replace and add functionality to the menu control of previous versions, menu is retained for both backward compatibility and future use if you choose. More...

#include <menu.h>

Inheritance diagram for xtd::forms::menu:
xtd::forms::component xtd::forms::context_menu xtd::forms::main_menu xtd::forms::menu_item

Public Types

using menu_item_collection = layout::arranged_element_collection< menu_item >
 

Public Member Functions

std::optional< context_menuget_context_menu () const
 Gets the context_menu that contains this menu. More...
 
std::optional< main_menuget_main_menu () const
 Gets the main_menu that contains this menu. More...
 
intptr_t handle () const
 Gets a value representing the window handle for the menu. More...
 
bool is_parent () const
 Gets a value indicating whether this menu contains any menu items. More...
 
const menu_itemmdi_list_item () const
 Gets a value indicating the menu_item that is used to display a list of multiple document interface (MDI) child forms. More...
 
const menu_item_collectionmenu_items () const
 Gets a value indicating the collection of menu_item objects associated with the menu. More...
 
menu_item_collectionmenu_items ()
 Gets a value indicating the collection of menu_item objects associated with the menu. More...
 
menumenu_items (const menu_item_collection &value)
 Sets a value indicating the collection of menu_item objects associated with the menu. More...
 
virtual void merge_menu (const menu &menu_src)
 Merges the MenuItem objects of one menu with the current menu. More...
 
const std::string & name () const
 Gets the name of the menu. More...
 
menuname (const std::string &value)
 Sets the name of the menu. More...
 
std::any tag () const
 Gets user-defined data associated with the control. More...
 
menutag (std::any value)
 Sets user-defined data associated with the control. More...
 
std::string to_string () const
 Returns a string that represents the menu control. More...
 

Static Public Attributes

static constexpr const int find_handle = 0
 Specifies that the find_menu_item(int32_t, intptr_t) method should search for a handle. More...
 
static constexpr const int find_shortcut = 1
 Specifies that the find_menu_item(int32_t, intptr_t) method should search for a shortcut. More...
 

Protected Member Functions

 menu ()
 Initializes a new instance of the Menu class. More...
 
 menu (const menu_item_collection &items)
 Initializes a new instance of the Menu class. More...
 
 menu (const std::initializer_list< menu_item > &items)
 
 menu (const std::vector< menu_item > &items)
 
virtual bool can_raise_events () const
 Gets a value indicating whether the component can raise an event. More...
 
void clone_menu (const menu &menu_src)
 Copies the menu that is passed as a parameter to the current menu. More...
 
virtual intptr_t create_menu_handle ()=0
 Creates a new handle to the Menu. More...
 
bool design_mode () const
 Gets a value that indicates whether the component is currently in design mode. More...
 
virtual void destroy_menu_handle (intptr_t handle)=0
 Destroy the handle to the Menu. More...
 

Detailed Description

Represents the base functionality for all menus. Although tool_strip_drop_down and tool_strip_drop_down_menu replace and add functionality to the menu control of previous versions, menu is retained for both backward compatibility and future use if you choose.

Remarks
This class is the base class for the main_menu, menu_item, and context_menu classes. You cannot create an instance of this class. The menus for an application consist of menu_item objects. These can contain other menu_item objects, representing submenu items. The menu_item objects can be stored in a main_menu for display as an entire menu structure for a form or a context_menu that is used to display shortcut menus. This class provides functionality that is common for all the menu classes.
Unlike many base classes, the menu class uses its derived classes to define many of its properties. If you are using your menu in a multiple-document interface (MDI) application, you can use the mdi_list_item property to specify a menu_item that displays a list of open MDI child forms in your application. The menu_items property contains a list of menu_item objects stored in the menu class. For a main_menu or context_menu, this property contains all the menu_item objects that are displayed. For a menu_item, the menu_items property represents the submenu items associated with it.
In addition to the properties that are provided for all the derived menu classes, the menu class also provides methods, such as clone_menu and merge_menu, that enable you to create new menus from existing menus, and also merge two menu structures together.
The menu class also defines the nested class menu::menu_item_collection. This class defines the collection of menu_item objects used by the menu_items property. You can use the methods of the menu::menu_item_collection class to add and remove menu items from a main_menu, context_menu, or menu_item.

The documentation for this class was generated from the following file: