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
41 class forms_export_ main_menu : public menu, public iclonable {
42 public:
44
50 explicit main_menu(const std::vector<menu_item_ref>& menu_items);
52
54 explicit main_menu(const std::initializer_list<const_menu_item_ref>& menu_items);
55 main_menu(main_menu&&) = default;
56 main_menu(const main_menu&) = default;
57 main_menu& operator =(const main_menu&) = default;
59
61
264
266 template<typename on_click_type>
267 static xtd::forms::main_menu create_standard_items(on_click_type on_click) {return create_standard_items(xtd::event_handler(on_click));}
268 template<typename on_click_type>
269 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));}
270 template<typename on_click_type>
271 static xtd::forms::main_menu create_standard_items(const xtd::string& theme, on_click_type on_click) {return create_standard_items(theme, xtd::event_handler(on_click));}
272 template<typename on_click_type>
273 static xtd::forms::main_menu create_standard_items(const xtd::string& theme, const xtd::drawing::size& size, on_click_type on_click) {return create_standard_items(theme, size, xtd::event_handler(on_click));}
275
276 protected:
278
285
287 void destroy_menu_handle(intptr handle) override;
288 void on_item_added(size_t pos, menu_item_ref item) override;
289 void on_item_removed(size_t pos, menu_item_ref item) override;
291
292 private:
293 friend class form;
294 void wm_click(message& message);
295 std::vector<xtd::sptr<menu_item>> standard_menu_items_;
296 };
297 }
298}
299
Represents text as a sequence of character units.
Definition basic_string.h:79
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:54
Represents the menu structure of a form.
Definition main_menu.h:41
static xtd::forms::main_menu create_standard_items(const xtd::string &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.
static xtd::forms::main_menu create_standard_items(const xtd::string &theme, const xtd::event_handler &on_click)
A factory to create a main menu with specified theme and on click event handler.
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.
main_menu()
Initialize a new instance of main_menu class.
void destroy_menu_handle(intptr handle) override
Destroys the handle to the Menu.
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.
xtd::uptr< xtd::object > clone() const override
Creates a new object that is a copy of the current instance.
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:37
Implements a Windows message.
Definition message.h:28
Supports cloning, which creates a new instance of a class with the same value as an existing instance...
Definition iclonable.h:21
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:23
std::unique_ptr< type_t > uptr
The xtd::uptr object is a unique pointer.
Definition uptr.h:25
size_t size
Represents a size of any object in bytes.
Definition size.h:23
intmax_t intptr
Represent a pointer or a handle.
Definition intptr.h:23
std::reference_wrapper< menu_item > menu_item_ref
Represents a menu item reference.
Definition menu_item_ref.h:23
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