xtd 0.2.0
Loading...
Searching...
No Matches
main_menu.h
Go to the documentation of this file.
1
4#pragma once
5#include "menu_item.h"
6#include "message.h"
7#include <xtd/drawing/size>
8#include <xtd/iclonable>
9#include <memory>
10#include <vector>
11
13namespace xtd {
15 namespace forms {
17 class form;
19
39 class forms_export_ main_menu : public menu, public iclonable {
40 public:
42
48 explicit main_menu(const std::vector<menu_item_ref>& menu_items);
50
52 explicit main_menu(const std::initializer_list<const_menu_item_ref>& menu_items);
53 main_menu(main_menu&&) = default;
54 main_menu(const main_menu&) = default;
55 main_menu& operator =(const main_menu&) = default;
57
59
262
264 template<typename on_click_type>
265 static xtd::forms::main_menu create_standard_items(on_click_type on_click) {return create_standard_items(xtd::event_handler(on_click));}
266 template<typename on_click_type>
267 static xtd::forms::main_menu create_standard_items(const xtd::drawing::size& size, on_click_type on_click) {return create_standard_items(size, xtd::event_handler(on_click));}
268 template<typename on_click_type>
269 static xtd::forms::main_menu create_standard_items(const xtd::ustring& theme, on_click_type on_click) {return create_standard_items(theme, xtd::event_handler(on_click));}
270 template<typename on_click_type>
271 static xtd::forms::main_menu create_standard_items(const xtd::ustring& theme, const xtd::drawing::size& size, on_click_type on_click) {return create_standard_items(theme, size, xtd::event_handler(on_click));}
273
274 protected:
276
282 std::unique_ptr<xtd::object> clone() const override;
283
285 void destroy_menu_handle(intptr handle) override;
286 void on_item_added(size_t pos, menu_item_ref item) override;
287 void on_item_removed(size_t pos, menu_item_ref item) override;
289
290 private:
291 friend class form;
292 void wm_click(message& message);
293 std::vector<std::shared_ptr<menu_item>> standard_menu_items_;
294 };
295 }
296}
297
Stores an ordered pair of integers, which specify a height and width.
Definition size.h:31
Represents a window or dialog box that makes up an application's user interface.
Definition form.h:52
Represents the menu structure of a form.
Definition main_menu.h:39
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.
std::unique_ptr< xtd::object > clone() const override
Creates a new object that is a copy of the current instance.
main_menu()
Initialize a new instance of main_menu class.
void destroy_menu_handle(intptr handle) override
Destroys the handle to the Menu.
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.
intptr create_menu_handle() override
Creates a new handle to the Menu.
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.
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.
main_menu(const std::vector< menu_item_ref > &menu_items)
Initialize a new instance of main_menu class.
Represents the base functionality for all menus. Although tool_strip_drop_down and tool_strip_drop_do...
Definition menu.h:35
Implements a Windows message.
Definition message.h:26
Supports cloning, which creates a new instance of a class with the same value as an existing instance...
Definition iclonable.h:19
Represents text as a sequence of UTF-8 code units.
Definition ustring.h:47
generic_event_handler<> event_handler
Represents the method that will handle an event that has no event data.
Definition event_handler.h:32
#define forms_export_
Define shared library export.
Definition forms_export.h:13
xtd::forms::style_sheets::control form
The form data allows you to specify the box of a form control.
Definition form.h:21
size_t size
Represents a size of any object in bytes.
Definition types.h:197
intmax_t intptr
Represent a pointer or a handle.
Definition types.h:153
std::reference_wrapper< menu_item > menu_item_ref
Represents a menu item reference.
Definition menu_item_ref.h:21
Contains xtd::forms::menu_item menu.
Contains xtd::forms::message class.
The xtd::forms namespace contains classes for creating Windows-based applications that take full adva...
Definition xtd_about_box.h:12
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10