Simple GUI Library
context_menu.h
Go to the documentation of this file.
1
/**
2
* @author Nikita Mochalov (github.com/tralf-strues)
3
* @file context_menu.h
4
* @date 2021-11-10
5
*
6
* @copyright Copyright (c) 2021
7
*/
8
9
#pragma once
10
11
#include "
box_container.h
"
12
#include "../controls/button.h"
13
14
namespace
Sgl
15
{
16
class
Scene;
17
class
Button;
18
19
class
MenuItem
:
public
Button
20
{
21
public
:
22
MenuItem
(
const
char
* label);
23
24
void
setOnAction(
ActionListener<MenuItem>
* listener);
25
26
private
:
27
void
setOnAction(
ActionListener<Button>
* listener);
28
};
29
30
class
ContextMenu
:
public
VBox
31
{
32
public
:
33
static
const
Insets
DEFAULT_PADDING;
34
static
const
Border
DEFAULT_BORDER;
35
static
const
ColorFill
DEFAULT_BACKGROUND_FILL;
36
static
const
Background
DEFAULT_BACKGROUND;
37
static
const
ShadowSpecification
DEFAULT_SHADOW;
38
39
public
:
40
ContextMenu
(
Scene
* scene,
Component
* sourceComponent =
nullptr
);
41
virtual
~ContextMenu
()
override
;
42
43
virtual
void
render(
const
Sml::Rectangle<int32_t>& targetRegion)
override
;
44
45
Component
* getSource();
46
void
setSource(
Component
* source);
47
48
bool
isAutoHide()
const
;
49
void
setAutoHide(
bool
autoHide);
50
51
void
show();
52
void
hide();
53
54
private
:
55
Component
* m_Source =
nullptr
;
56
bool
m_AutoHide =
true
;
57
};
58
}
box_container.h
Sgl::ActionListener
Definition:
gui_event.h:206
Sgl::Background
Definition:
background.h:22
Sgl::Border
Definition:
border.h:18
Sgl::Button
Definition:
button.h:17
Sgl::ColorFill
Definition:
fill.h:36
Sgl::Component
Definition:
component.h:27
Sgl::ContextMenu
Definition:
context_menu.h:31
Sgl::MenuItem
Definition:
context_menu.h:20
Sgl::Scene
Definition:
scene.h:20
Sgl::ShadowSpecification
Definition:
shadow.h:17
Sgl::VBox
Definition:
box_container.h:114
Sgl::Insets
Definition:
insets.h:16
include
scene
containers
context_menu.h
Generated by
1.9.2