xtd - Reference Guide  0.1.1
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
xtd::forms::main_menu Class Reference

#include <main_menu.h>

Definition

Represents the menu structure of a form.

Namespace
xtd::forms
Library
xtd.forms
Examples
The following code example demonstrate the use of main_menu control.
#include <xtd/xtd>
using namespace xtd;
using namespace xtd::forms;
namespace examples {
class form1 : public form {
public:
form1() {
text("Main menu example");
menu({
{system_texts::new_(), {*this, &form1::on_menu_click}, menu_images::file_new(), shortcut::cmd_n},
{"-"},
{system_texts::open(), {*this, &form1::on_menu_click}, menu_images::file_open(), shortcut::cmd_o},
{"Open recen", {
{"Path/File1", {*this, &form1::on_menu_click}},
{"Path/File2", {*this, &form1::on_menu_click}},
{"Path/File3", {*this, &form1::on_menu_click}},
{"Path/File4", {*this, &form1::on_menu_click}},
{"Path/File5", {*this, &form1::on_menu_click}},
}},
{system_texts::close(), {*this, &form1::on_menu_click}, shortcut::cmd_w},
{"-"},
{system_texts::save(), {*this, &form1::on_menu_click}, menu_images::file_save(), shortcut::cmd_s},
{system_texts::save_as(), {*this, &form1::on_menu_click}},
{"-"},
{"Page &Seup...", {*this, &form1::on_menu_click}},
{system_texts::print(), {*this, &form1::on_menu_click}, menu_images::file_print(), shortcut::cmd_p},
{system_texts::print_preview(), {*this, &form1::on_menu_click}, menu_images::file_print_preview()},
{"-"},
}},
{system_texts::undo(), {*this, &form1::on_menu_click}, menu_images::edit_undo(), shortcut::cmd_z},
{system_texts::redo(), {*this, &form1::on_menu_click}, menu_images::edit_redo(), shortcut::cmd_shift_z},
{"-"},
{system_texts::cut(), {*this, &form1::on_menu_click}, menu_images::edit_cut(), shortcut::cmd_x},
{system_texts::copy(), {*this, &form1::on_menu_click}, menu_images::edit_copy(), shortcut::cmd_c},
{system_texts::paste(), {*this, &form1::on_menu_click}, menu_images::edit_paste(), shortcut::cmd_v},
{"-"},
{system_texts::select_all(), {*this, &form1::on_menu_click}, shortcut::cmd_a},
{"-"},
{system_texts::options(), {*this, &form1::on_menu_click}},
}},
{system_texts::back(), {*this, &form1::on_menu_click}, menu_images::view_back()},
{system_texts::forward(), {*this, &form1::on_menu_click}, menu_images::view_forward()},
{"-"},
{"Show", {*this, &form1::on_menu_click}},
{"Hide", {*this, &form1::on_menu_click}},
}},
{"Value A", {*this, &form1::on_menu_click}, menu_item_kind::check, true, shortcut::alt_1},
{"Value B", {*this, &form1::on_menu_click}, menu_item_kind::check, shortcut::alt_2},
{"Value C", {*this, &form1::on_menu_click}, menu_item_kind::check, true, shortcut::alt_3},
{"-"},
{"Value D", {*this, &form1::on_menu_click}, menu_item_kind::radio, static_cast<shortcut>(keys::alt|keys::d)},
{"Value E", {*this, &form1::on_menu_click}, menu_item_kind::radio, true, static_cast<shortcut>(keys::alt|keys::e)},
{"Value F", {*this, &form1::on_menu_click}, menu_item_kind::radio, static_cast<shortcut>(keys::alt|keys::f)},
{"-"},
{"Value G", {*this, &form1::on_menu_click}, menu_item_kind::radio, static_cast<shortcut>(keys::alt|keys::shift|keys::left)},
{"Value H", {*this, &form1::on_menu_click}, menu_item_kind::radio},
{"Value I", {*this, &form1::on_menu_click}, menu_item_kind::radio, true},
}},
{system_texts::about(), {*this, &form1::on_menu_click}},
}},
});
list_box1.parent(*this);
list_box1.dock(dock_style::fill);
}
void on_menu_click(object& sender, const event_args& e) {
list_box1.items().push_back(ustring::format("{} clicked", as<menu_item&>(sender).text()));
list_box1.selected_index(list_box1.items().size() - 1);
}
private:
list_box list_box1;
};
}
int main() {
application::run(examples::form1());
}
static void exit()
Informs all message pumps that they must terminate, and then closes all application windows after the...
static void enable_menu_images()
Enables menu images for the application.
static void run()
Begins running a standard application message loop on the current thread, without a form.
static xtd::drawing::image edit_copy()
Edit copy image object.
Definition: menu_images.h:221
static xtd::drawing::image file_print()
File print image object.
Definition: menu_images.h:89
static xtd::drawing::image file_print_preview()
File print preview image object.
Definition: menu_images.h:111
static xtd::drawing::image file_save()
File save image object.
Definition: menu_images.h:67
static xtd::drawing::image file_exit()
File exit image object.
Definition: menu_images.h:133
static xtd::drawing::image file_new()
File new image object.
Definition: menu_images.h:23
static xtd::drawing::image file_open()
File open image object.
Definition: menu_images.h:45
static xtd::drawing::image edit_cut()
Edit cut image object.
Definition: menu_images.h:199
static xtd::drawing::image edit_redo()
Edit undo image object.
Definition: menu_images.h:177
static xtd::drawing::image edit_paste()
Edit paste image object.
Definition: menu_images.h:243
static xtd::drawing::image view_forward()
View forward image object.
Definition: menu_images.h:287
static xtd::drawing::image view_back()
View back image object.
Definition: menu_images.h:265
static xtd::drawing::image edit_undo()
Edit undo image object.
Definition: menu_images.h:155
menu()
Initializes a new instance of the Menu class.
static xtd::ustring file()
Gets a system-defined text that has a string value of "&File". This field is constant.
static xtd::ustring options()
Gets a system-defined text that has a string value of "&Options". This field is constant.
static xtd::ustring print_preview()
Gets a system-defined text that has a string value of "Print Re&view". This field is constant.
static xtd::ustring undo()
Gets a system-defined text that has a string value of "&Undo". This field is constant.
static xtd::ustring help()
Gets a system-defined text that has a string value of "&Help". This field is constant.
static xtd::ustring select_all()
Gets a system-defined text that has a string value of "Select &All". This field is constant.
static xtd::ustring save()
Gets a system-defined text that has a string value of "&Save". This field is constant.
static xtd::ustring new_()
Gets a system-defined text that has a string value of "&New". This field is constant.
static xtd::ustring forward()
Gets a system-defined text that has a string value of "&Forward". This field is constant.
static xtd::ustring back()
Gets a system-defined text that has a string value of "&Back". This field is constant.
static xtd::ustring paste()
Gets a system-defined text that has a string value of "&Paste". This field is constant.
static xtd::ustring save_as()
Gets a system-defined text that has a string value of "Save &As...". This field is constant.
static xtd::ustring print()
Gets a system-defined text that has a string value of "&Print...". This field is constant.
static xtd::ustring view()
Gets a system-defined text that has a string value of "&View". This field is constant.
static xtd::ustring copy()
Gets a system-defined text that has a string value of "&Copy". This field is constant.
static xtd::ustring edit()
Gets a system-defined text that has a string value of "&Edit". This field is constant.
static xtd::ustring redo()
Gets a system-defined text that has a string value of "&Redo". This field is constant.
static xtd::ustring open()
Gets a system-defined text that has a string value of "&Open...". This field is constant.
static xtd::ustring exit()
Gets a system-defined text that has a string value of "E&xit". This field is constant.
static xtd::ustring about()
Gets a system-defined text that has a string value of "&About". This field is constant.
static xtd::ustring cut()
Gets a system-defined text that has a string value of "Cu&t". This field is constant.
static xtd::ustring close()
Gets a system-defined text that has a string value of "&Close". This field is constant.
static ustring format(const ustring &fmt, args_t &&... args)
Writes the text representation of the specified arguments list, to string using the specified format ...
Definition: ustring.h:689
shortcut
Specifies shortcut keys that can be used by menu items.
Definition: shortcut.h:19
@ alt_f4
The shortcut keys ALT+F4.
@ cmd_p
The shortcut keys CMD+P.
@ alt_2
The shortcut keys ALT+2.
@ cmd_shift_z
The shortcut keys CMD+SHIFT+Z.
@ cmd_a
The shortcut keys CMD+A.
@ cmd_s
The shortcut keys CMD+S.
@ cmd_v
The shortcut keys CMD+V.
@ cmd_x
The shortcut keys CMD+X.
@ cmd_z
The shortcut keys CMD+Z.
@ cmd_o
The shortcut keys CMD+O.
@ cmd_n
The shortcut keys CMD+N.
@ cmd_w
The shortcut keys CMD+W.
@ cmd_c
The shortcut keys CMD+C.
@ alt_1
The shortcut keys ALT+1.
@ alt_3
The shortcut keys ALT+3.
@ shift
The SHIFt modifier key.
@ alt
The ALT modifier key.
@ left
The LEFT key.
@ d
The D key.
@ f
The F key.
@ e
The E key.
@ check
Check menu item.
@ radio
Radio menu item.
@ fill
All the control's edges are docked to the all edges of its containing control and sized appropriately...
The xtd::forms namespace contains classes for creating Windows-based applications that take full adva...
Definition: about_box.h:13
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition: system_report.h:17
Examples
The following code example demonstrate the use of main_menu::create_standard_items factory.
#include <xtd/xtd>
using namespace xtd;
using namespace xtd::forms;
namespace examples {
class form1 : public form {
public:
form1() {
text("Main menu create standard items example");
menu(main_menu::create_standard_items([&](object& sender, const event_args& e) {
list_box1.items().push_back(ustring::format("{} clicked", as<menu_item&>(sender).text()));
list_box1.selected_index(list_box1.items().size() - 1);
if (as<menu_item&>(sender).text() == system_texts::exit()) application::exit();
}));
list_box1.parent(*this);
list_box1.dock(dock_style::fill);
}
private:
list_box list_box1;
};
}
int main() {
application::run(examples::form1());
}
static xtd::forms::main_menu create_standard_items(const xtd::event_handler &on_click)
A factory to create a main menu with specified on click event handler.

Inherits xtd::forms::menu.

Public Member Functions

 main_menu ()
 Initialize a new instance of main_menu class. More...
 
 main_menu (const std::vector< menu_item > &menu_items)
 Initialize a new instance of main_menu class. More...
 
- Public Member Functions inherited from xtd::forms::menu
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...
 
menu_item_collectionmenu_items ()
 Gets a value indicating the collection of menu_item objects associated with the menu. More...
 
const menu_item_collectionmenu_items () const
 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 xtd::ustringname () const
 Gets the name of the menu. More...
 
menuname (const xtd::ustring &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...
 
xtd::ustring to_string () const noexcept override
 Returns a string that represents the menu control. More...
 
- Public Member Functions inherited from xtd::object
 object ()=default
 Create a new instance of the ultimate base class object. More...
 
virtual bool equals (const object &obj) const noexcept
 Determines whether the specified object is equal to the current object. More...
 
virtual size_t get_hash_code () const noexcept
 Serves as a hash function for a particular type. More...
 
template<typename object_t >
std::unique_ptr< object_t > memberwise_clone () const
 Gets the type of the current instance. More...
 

Static Public Member Functions

static xtd::forms::main_menu create_standard_items (const xtd::drawing::size &image_size, const xtd::event_handler &on_click)
 A factory to create a main menu with specified image size and on click event handler. More...
 
static xtd::forms::main_menu create_standard_items (const xtd::event_handler &on_click)
 A factory to create a main menu with specified on click event handler. More...
 
static xtd::forms::main_menu create_standard_items (const xtd::forms::theme_images &theme, const xtd::drawing::size &size, const xtd::event_handler &on_click)
 A factory to create a main menu with specified theme, image size and on click event handler. More...
 
static xtd::forms::main_menu create_standard_items (const xtd::ustring &theme, const xtd::drawing::size &size, const xtd::event_handler &on_click)
 A factory to create a main menu with specified theme, image size and on click event handler. More...
 
static xtd::forms::main_menu create_standard_items (const xtd::ustring &theme, const xtd::event_handler &on_click)
 A factory to create a main menu with specified theme and on click event handler. More...
 
- Static Public Member Functions inherited from xtd::object
static bool equals (const object &object_a, const object &object_b) noexcept
 Determines whether the specified object instances are considered equal. More...
 
static bool reference_equals (const object &object_a, const object &object_b) noexcept
 Determines whether the specified object instances are the same instance. More...
 

Protected Member Functions

intptr_t create_menu_handle () override
 Creates a new handle to the Menu. More...
 
void destroy_menu_handle (intptr_t handle) override
 Destroy the handle to the Menu. More...
 
- Protected Member Functions inherited from xtd::forms::menu
 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...
 
void clone_menu (const menu &menu_src)
 Copies the menu that is passed as a parameter to the current menu. More...
 
- Protected Member Functions inherited from xtd::forms::component
 component ()=default
 Initialises a new instance of the component class. More...
 
virtual bool can_raise_events () const
 Gets a value indicating whether the component can raise an event. More...
 
bool design_mode () const
 Gets a value that indicates whether the component is currently in design mode. More...
 

Additional Inherited Members

- Public Types inherited from xtd::forms::menu
using menu_item_collection = layout::arranged_element_collection< menu_item >
 Represents a collection of menu_item objects. More...
 
- Static Public Attributes inherited from xtd::forms::menu
static constexpr const int find_handle
 Specifies that the find_menu_item(int32_t, intptr_t) method should search for a handle. More...
 
static constexpr const int find_shortcut
 Specifies that the find_menu_item(int32_t, intptr_t) method should search for a shortcut. More...
 

Constructor & Destructor Documentation

◆ main_menu() [1/2]

xtd::forms::main_menu::main_menu ( )

Initialize a new instance of main_menu class.

◆ main_menu() [2/2]

xtd::forms::main_menu::main_menu ( const std::vector< menu_item > &  menu_items)

Initialize a new instance of main_menu class.

Parameters
menu_itemsAn array of menu_item objects that will be added to the main_menu.

Member Function Documentation

◆ create_menu_handle()

intptr_t xtd::forms::main_menu::create_menu_handle ( )
overrideprotectedvirtual

Creates a new handle to the Menu.

Returns
A handle to the menu if the method succeeds; otherwise, 0.

Implements xtd::forms::menu.

◆ create_standard_items() [1/5]

static xtd::forms::main_menu xtd::forms::main_menu::create_standard_items ( const xtd::drawing::size image_size,
const xtd::event_handler on_click 
)
static

A factory to create a main menu with specified image size and on click event handler.

Parameters
image_sizeA xtd::drawing::size that represent the menu item image size.
on_clickan event handler to respond on lick event.
Returns
new main menu instance.

◆ create_standard_items() [2/5]

static xtd::forms::main_menu xtd::forms::main_menu::create_standard_items ( const xtd::event_handler on_click)
static

A factory to create a main menu with specified on click event handler.

Parameters
on_clickan event handler to respond on lick event.
Returns
new main menu instance.
Examples
main_menu_create_standard_items.cpp.

◆ create_standard_items() [3/5]

static xtd::forms::main_menu xtd::forms::main_menu::create_standard_items ( const xtd::forms::theme_images theme,
const xtd::drawing::size size,
const xtd::event_handler on_click 
)
static

A factory to create a main menu with specified theme, image size and on click event handler.

Parameters
themeThe theme of menu item image.
image_sizeA xtd::drawing::size that represent the menu item image size.
on_clickan event handler to respond on lick event.
Returns
new main menu instance.

◆ create_standard_items() [4/5]

static xtd::forms::main_menu xtd::forms::main_menu::create_standard_items ( const xtd::ustring theme,
const xtd::drawing::size size,
const xtd::event_handler on_click 
)
static

A factory to create a main menu with specified theme, image size and on click event handler.

Parameters
themeThe theme of menu item image.
image_sizeA xtd::drawing::size that represent the menu item image size.
on_clickan event handler to respond on lick event.
Returns
new main menu instance.

◆ create_standard_items() [5/5]

static xtd::forms::main_menu xtd::forms::main_menu::create_standard_items ( const xtd::ustring theme,
const xtd::event_handler on_click 
)
static

A factory to create a main menu with specified theme and on click event handler.

Parameters
themeThe theme of menu item image.
on_clickan event handler to respond on lick event.
Returns
new main menu instance.

◆ destroy_menu_handle()

void xtd::forms::main_menu::destroy_menu_handle ( intptr_t  handle)
overrideprotectedvirtual

Destroy the handle to the Menu.

Parameters
handleA handle to the menu.

Implements xtd::forms::menu.


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