tcMenu
Loading...
Searching...
No Matches
src
graphics
RuntimeTitleMenuItem.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018 https://www.thecoderscorner.com (Dave Cherry).
3
* This product is licensed under an Apache license, see the LICENSE file in the top-level directory.
4
*/
5
11
#ifndef TCMENU_RUNTIMETITLEMENUITEM_H
12
#define TCMENU_RUNTIMETITLEMENUITEM_H
13
14
#include <
BaseRenderers.h
>
15
16
namespace
tcgfx {
17
26
int
appTitleRenderingFn(
RuntimeMenuItem
*item, uint8_t,
RenderFnMode
mode,
char
*buffer,
int
bufferSize);
27
33
class
RuntimeTitleMenuItem
:
public
RuntimeMenuItem
{
34
private
:
35
const
char
*titleHeaderPgm;
36
const
char
*titleOverridePgm;
37
MenuCallbackFn
callback;
38
public
:
45
RuntimeTitleMenuItem
(
uint16_t
id
,
MenuItem
*next) :
RuntimeMenuItem
(
MENUTYPE_TITLE_ITEM
, id,
46
appTitleRenderingFn, 0, 1, next) {
47
titleHeaderPgm =
nullptr
;
48
titleOverridePgm =
nullptr
;
49
callback =
nullptr
;
50
}
51
57
void
setTitleHeaderPgm
(
const
char
*header) {
58
titleHeaderPgm = header;
59
setChanged
(
true
);
60
}
61
66
void
setTitleOverridePgm
(
const
char
*
overrideTitle
) {
67
titleOverridePgm =
overrideTitle
;
68
setChanged
(
true
);
69
}
70
74
void
clearTitleOverride
() {
75
titleOverridePgm =
nullptr
;
76
setChanged
(
true
);
77
}
78
79
const
char
*getTitleHeaderPgm()
const
{
80
return
(titleOverridePgm !=
nullptr
) ? titleOverridePgm : titleHeaderPgm;
81
}
82
83
void
setCallback(
MenuCallbackFn
titleCb) {
84
callback = titleCb;
85
}
86
87
MenuCallbackFn
getCallback()
const
{
88
return
callback;
89
}
90
};
91
95
extern
RuntimeTitleMenuItem appTitleMenuItem;
96
101
inline
void
setTitlePressedCallback
(
MenuCallbackFn
cb
) {
102
appTitleMenuItem.setCallback(
cb
);
103
}
104
}
105
106
#endif
//TCMENU_RUNTIMETITLEMENUITEM_H
BaseRenderers.h
The base definitions and classes shared by all TcMenu renderers.
RenderFnMode
RenderFnMode
Definition
MenuItems.h:283
MenuCallbackFn
void(* MenuCallbackFn)(int id)
Definition
MenuItems.h:45
MENUTYPE_TITLE_ITEM
@ MENUTYPE_TITLE_ITEM
Definition
MenuItems.h:262
tcgfx::setTitlePressedCallback
void setTitlePressedCallback(MenuCallbackFn cb)
Definition
RuntimeTitleMenuItem.h:101
MenuItem
Definition
MenuItems.h:329
MenuItem::setChanged
void setChanged(bool changed)
Definition
MenuItems.cpp:112
RuntimeMenuItem
Definition
RuntimeMenuItem.h:75
tcgfx::RuntimeTitleMenuItem
Definition
RuntimeTitleMenuItem.h:33
tcgfx::RuntimeTitleMenuItem::clearTitleOverride
void clearTitleOverride()
Definition
RuntimeTitleMenuItem.h:74
tcgfx::RuntimeTitleMenuItem::setTitleHeaderPgm
void setTitleHeaderPgm(const char *header)
Definition
RuntimeTitleMenuItem.h:57
tcgfx::RuntimeTitleMenuItem::RuntimeTitleMenuItem
RuntimeTitleMenuItem(uint16_t id, MenuItem *next)
Definition
RuntimeTitleMenuItem.h:45
tcgfx::RuntimeTitleMenuItem::setTitleOverridePgm
void setTitleOverridePgm(const char *overrideTitle)
Definition
RuntimeTitleMenuItem.h:66
tcgfx::ColorGfxMenuConfig
Definition
GfxMenuConfig.h:32