The Power in your Hands
Search Site:
About
Features
Documentation
Download
Community
Main
Class Index
Namespaces
Modules
include
Pt
Forms
MenuMenuItem.h
1
/* Copyright (C) 2015 Marc Boris Duerner
2
Copyright (C) 2015 Laurentiu-Gheorghe Crisan
3
4
This library is free software; you can redistribute it and/or
5
modify it under the terms of the GNU Lesser General Public
6
License as published by the Free Software Foundation; either
7
version 2.1 of the License, or (at your option) any later version.
8
9
As a special exception, you may use this file as part of a free
10
software library without restriction. Specifically, if other files
11
instantiate templates or use macros or inline functions from this
12
file, or you compile this file and link it with other files to
13
produce an executable, this file does not by itself cause the
14
resulting executable to be covered by the GNU General Public
15
License. This exception does not however invalidate any other
16
reasons why the executable file might be covered by the GNU Library
17
General Public License.
18
19
This library is distributed in the hope that it will be useful,
20
but WITHOUT ANY WARRANTY; without even the implied warranty of
21
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22
Lesser General Public License for more details.
23
24
You should have received a copy of the GNU Lesser General Public
25
License along with this library; if not, write to the Free Software
26
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
27
MA 02110-1301 USA
28
*/
29
#ifndef PT_FORMS_MENUMENUITEM_H
30
#define PT_FORMS_MENUMENUITEM_H
31
32
#include <Pt/Forms/Api.h>
33
#include <Pt/Forms/MenuBase.h>
34
#include <Pt/Forms/MenuItemBase.h>
35
#include <vector>
36
37
namespace
Pt
{
38
namespace
Forms {
39
40
class
Menu;
41
class
MenuBar;
42
51
class
PT_FORMS_API
MenuMenuItem
:
public
MenuItemBase
52
{
53
friend
class
Menu
;
54
55
public
:
58
typedef
MenuItemBase
Base
;
59
60
public
:
63
MenuMenuItem
();
64
67
virtual
~MenuMenuItem
();
68
74
void
setMenu
(
Menu
* menu);
75
78
const
Menu
*
menu
()
const
79
{
80
return
_menu;
81
}
82
83
86
Menu
*
menu
()
87
{
88
return
_menu;
89
}
90
95
void
setParentMenu
(
MenuBase
* p)
96
{
97
_parentMenu = p;
98
}
99
102
void
cancel
();
103
104
107
void
closeMenu
();
108
111
void
openMenu
();
112
113
116
bool
isMenuOpen
()
const
117
{
118
return
_isOpen;
119
}
120
121
protected
:
122
virtual
const
std::vector<Key>
onGetShortcuts
();
123
124
virtual
const
std::vector<Pt::Char>
onGetMnemonics
();
125
126
virtual
void
onShortcut
(
const
Key
& key);
127
128
virtual
void
onMnemonic
(
Pt::Char
m);
129
130
private
:
131
MenuBase
* _parentMenu;
132
Menu
* _menu;
133
bool
_isOpen;
134
};
135
136
}}
137
138
#endif
Pt
Core module.
Definition:
Allocator.h:33
Pt::Forms::MenuMenuItem
Represents an alternate menu item that manages a nested menu.
Definition:
MenuMenuItem.h:52
Pt::Forms::MenuMenuItem::setMenu
void setMenu(Menu *menu)
Associates menu with this item.
Pt::Forms::MenuBase
Defines the coordination interface shared by menu containers.
Definition:
MenuBase.h:51
Pt::Forms::MenuMenuItem::onMnemonic
virtual void onMnemonic(Pt::Char m)
Handles an activated form mnemonic.
Pt::Forms::MenuMenuItem::onGetMnemonics
virtual const std::vector< Pt::Char > onGetMnemonics()
Returns mnemonics registered by this control.
Pt::Char
Unicode character type.
Definition:
String.h:67
Pt::Forms::MenuMenuItem::cancel
void cancel()
Cancels the nested menu interaction.
Pt::Forms::MenuMenuItem::~MenuMenuItem
virtual ~MenuMenuItem()
Destroys the item.
Pt::Forms::MenuMenuItem::onGetShortcuts
virtual const std::vector< Key > onGetShortcuts()
Returns shortcuts registered by this control.
Pt::Forms::MenuMenuItem::menu
const Menu * menu() const
Returns the nested menu, or 0 when none is assigned.
Definition:
MenuMenuItem.h:78
Pt::Forms::MenuMenuItem::isMenuOpen
bool isMenuOpen() const
Returns true if the nested menu is open.
Definition:
MenuMenuItem.h:116
Pt::Forms::MenuMenuItem::menu
Menu * menu()
Returns the nested menu, or 0 when none is assigned.
Definition:
MenuMenuItem.h:86
Pt::Forms::MenuMenuItem::setParentMenu
void setParentMenu(MenuBase *p)
Sets the containing menu coordinator.
Definition:
MenuMenuItem.h:95
Pt::Forms::Key
Key code and modifiers.
Definition:
Key.h:23
Pt::Forms::Menu
Represents a popup menu containing commands and nested menus.
Definition:
Menu.h:71
Pt::Forms::MenuMenuItem::MenuMenuItem
MenuMenuItem()
Creates an item without a nested menu.
Pt::Forms::MenuMenuItem::closeMenu
void closeMenu()
Closes the nested menu.
Pt::Forms::MenuMenuItem::onShortcut
virtual void onShortcut(const Key &key)
Handles an activated form shortcut.
Pt::Forms::MenuItemBase
Represents the common content and activation behavior of a menu item.
Definition:
MenuItemBase.h:55
Pt::Forms::MenuMenuItem::openMenu
void openMenu()
Opens the nested menu.
Pt::Forms::MenuMenuItem::Base
MenuItemBase Base
Defines the inherited menu item type.
Definition:
MenuMenuItem.h:58