Notcurses
3.0.16
a blingful library for TUIs and character graphics
Loading...
Searching...
No Matches
Menu.hh
Go to the documentation of this file.
1
#ifndef __NCPP_MENU_HH
2
#define __NCPP_MENU_HH
3
4
#include <
notcurses/notcurses.h
>
5
6
#include "
Root.hh
"
7
8
namespace
ncpp
9
{
10
class
NotCurses;
11
class
Plane;
12
13
class
NCPP_API_EXPORT
Menu
:
public
Root
14
{
15
public
:
16
static
ncmenu_options
default_options
;
17
18
public
:
19
explicit
Menu
(
const
ncmenu_options
*
opts
=
nullptr
,
NotCurses
*ncinst =
nullptr
)
20
:
Root
(ncinst)
21
{
22
menu =
ncmenu_create
(
notcurses_stdplane
(get_notcurses ()),
opts
==
nullptr
? &default_options :
opts
);
23
if
(menu ==
nullptr
)
24
throw
init_error
(
"Notcurses failed to create a new menu"
);
25
}
26
27
~Menu
()
28
{
29
if
(!is_notcurses_stopped ())
30
ncmenu_destroy
(menu);
31
}
32
33
bool
unroll
(
int
sectionidx)
const
NOEXCEPT_MAYBE
34
{
35
return
error_guard (
ncmenu_unroll
(menu, sectionidx), -1);
36
}
37
38
bool
rollup
() const
NOEXCEPT_MAYBE
39
{
40
return
error_guard (
ncmenu_rollup
(menu), -1);
41
}
42
43
bool
nextsection
() const
NOEXCEPT_MAYBE
44
{
45
return
error_guard (
ncmenu_nextsection
(menu), -1);
46
}
47
48
bool
prevsection
() const
NOEXCEPT_MAYBE
49
{
50
return
error_guard (
ncmenu_prevsection
(menu), -1);
51
}
52
53
bool
nextitem
() const
NOEXCEPT_MAYBE
54
{
55
return
error_guard (
ncmenu_nextitem
(menu), -1);
56
}
57
58
bool
previtem
() const
NOEXCEPT_MAYBE
59
{
60
return
error_guard (
ncmenu_previtem
(menu), -1);
61
}
62
63
bool
item_set_status
(
const
char
* section,
const
char
* item,
bool
status)
const
NOEXCEPT_MAYBE
64
{
65
return
error_guard (
ncmenu_item_set_status
(menu, section, item, status), -1);
66
}
67
68
const
char
*
get_selected
(
ncinput
*ni =
nullptr
) const noexcept
69
{
70
return
ncmenu_selected
(menu, ni);
71
}
72
73
const
char
*
get_mouse_selected
(
const
struct
ncinput
* click,
struct
ncinput
* ni)
const
noexcept
74
{
75
return
ncmenu_mouse_selected
(menu, click, ni);
76
}
77
78
bool
offer_input
(
const
struct
ncinput
* ni)
const
noexcept
79
{
80
return
ncmenu_offer_input
(menu, ni);
81
}
82
83
Plane
*
get_plane
() const noexcept;
84
85
private:
86
ncmenu
*menu;
87
};
88
}
89
#endif
NCPP_API_EXPORT
#define NCPP_API_EXPORT
Definition
_helpers.hh:9
Root.hh
NOEXCEPT_MAYBE
#define NOEXCEPT_MAYBE
Definition
Root.hh:15
ncpp::Menu
Definition
Menu.hh:14
ncpp::Menu::item_set_status
bool item_set_status(const char *section, const char *item, bool status) const NOEXCEPT_MAYBE
Definition
Menu.hh:63
ncpp::Menu::get_mouse_selected
const char * get_mouse_selected(const struct ncinput *click, struct ncinput *ni) const noexcept
Definition
Menu.hh:73
ncpp::Menu::Menu
Menu(const ncmenu_options *opts=nullptr, NotCurses *ncinst=nullptr)
Definition
Menu.hh:19
ncpp::Menu::~Menu
~Menu()
Definition
Menu.hh:27
ncpp::Menu::prevsection
bool prevsection() const NOEXCEPT_MAYBE
Definition
Menu.hh:48
ncpp::Menu::offer_input
bool offer_input(const struct ncinput *ni) const noexcept
Definition
Menu.hh:78
ncpp::Menu::unroll
bool unroll(int sectionidx) const NOEXCEPT_MAYBE
Definition
Menu.hh:33
ncpp::Menu::nextitem
bool nextitem() const NOEXCEPT_MAYBE
Definition
Menu.hh:53
ncpp::Menu::previtem
bool previtem() const NOEXCEPT_MAYBE
Definition
Menu.hh:58
ncpp::Menu::rollup
bool rollup() const NOEXCEPT_MAYBE
Definition
Menu.hh:38
ncpp::Menu::nextsection
bool nextsection() const NOEXCEPT_MAYBE
Definition
Menu.hh:43
ncpp::Menu::default_options
static ncmenu_options default_options
Definition
Menu.hh:16
ncpp::Menu::get_plane
Plane * get_plane() const noexcept
ncpp::Menu::get_selected
const char * get_selected(ncinput *ni=nullptr) const noexcept
Definition
Menu.hh:68
ncpp::NotCurses
Definition
NotCurses.hh:22
ncpp::Plane
Definition
Plane.hh:22
ncpp::Root
Definition
Root.hh:21
ncpp::init_error
Definition
_exceptions.hh:11
ncmenu_rollup
int ncmenu_rollup(ncmenu *n)
Definition
menu.c:554
ncmenu_create
ncmenu * ncmenu_create(ncplane *n, const ncmenu_options *opts)
Definition
menu.c:377
ncmenu_nextsection
int ncmenu_nextsection(ncmenu *n)
Definition
menu.c:563
ncmenu_prevsection
int ncmenu_prevsection(ncmenu *n)
Definition
menu.c:578
ncmenu_mouse_selected
const char * ncmenu_mouse_selected(const ncmenu *n, const ncinput *click, ncinput *ni)
Definition
menu.c:673
ncmenu_item_set_status
int ncmenu_item_set_status(ncmenu *n, const char *section, const char *item, bool enabled)
Definition
menu.c:784
ncmenu_unroll
int ncmenu_unroll(ncmenu *n, int sectionidx)
Definition
menu.c:452
ncmenu_previtem
int ncmenu_previtem(ncmenu *n)
Definition
menu.c:614
ncmenu_nextitem
int ncmenu_nextitem(ncmenu *n)
Definition
menu.c:593
ncmenu_destroy
void ncmenu_destroy(ncmenu *n)
Definition
menu.c:825
ncmenu_selected
const char * ncmenu_selected(const ncmenu *n, ncinput *ni)
Definition
menu.c:635
ncmenu_offer_input
bool ncmenu_offer_input(ncmenu *n, const ncinput *nc)
Definition
menu.c:707
ncpp
Definition
_exceptions.hh:9
notcurses_stdplane
ncplane * notcurses_stdplane(notcurses *nc)
Definition
notcurses.c:702
notcurses.h
opts
const struct ncplane_options * opts
Definition
notcurses.h:3487
ncinput
Definition
notcurses.h:1209
ncmenu_options
Definition
notcurses.h:4134
ncmenu
Definition
menu.c:25
include
ncpp
Menu.hh
Generated by
1.9.8