/
LHyperlinkButton.cpp
95 lines (75 loc) · 2.67 KB
/
LHyperlinkButton.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/************************************************************
LHyperlinkButton.cpp
@author Christophe Berbizier (cberbizier@peersuasive.com)
@license GPLv3
@copyright
(c) 2014, Peersuasive Technologies
*************************************************************/
#include "LHyperlinkButton_inh.h"
const char LHyperlinkButton::className[] = "LHyperlinkButton";
const Luna<LHyperlinkButton>::PropertyType LHyperlinkButton::properties[] = {
{"url", &LHyperlinkButton::getURL, &LHyperlinkButton::setURL},
{"font", &LBase::writeOnly, &LHyperlinkButton::setFont},
{0,0}
};
const Luna<LHyperlinkButton>::FunctionType LHyperlinkButton::methods[] = {
method( LHyperlinkButton, getURL ),
method( LHyperlinkButton, setURL ),
method( LHyperlinkButton, setFont ),
method( LHyperlinkButton, changeWidthToFitText ),
{0,0}
};
const Luna<LHyperlinkButton>::StaticType LHyperlinkButton::statics[] = {
{0,0}
};
LHyperlinkButton::LHyperlinkButton(lua_State *L)
: LButton(L, this),
HyperlinkButton()
{
HyperlinkButton::setName(myName());
HyperlinkButton::addListener(this);
REGISTER_CLASS(LHyperlinkButton);
}
LHyperlinkButton::~LHyperlinkButton() {}
// callbacks
int LHyperlinkButton::addListener(lua_State*) {
HyperlinkButton::addListener(this);
return 0;
}
int LHyperlinkButton::removeListener(lua_State*) {
HyperlinkButton::removeListener(this);
return 0;
}
void LHyperlinkButton::paintButton(Graphics& g, bool isMouseOver, bool isButtonDown) {
if(hasCallback("paintButton"))
LButton::lpaintButton(g, isMouseOver, isButtonDown);
else
HyperlinkButton::paintButton(g, isMouseOver, isButtonDown);
}
void LHyperlinkButton::buttonStateChanged() {
LButton::lbuttonStateChanged();
}
void LHyperlinkButton::buttonClicked (Button* buttonThatWasClicked) {
LButton::lbuttonClicked(buttonThatWasClicked);
}
/////// getters/setters
int LHyperlinkButton::getURL ( lua_State *L ) {
return LUA::returnString( HyperlinkButton::getURL().toString(true) );
}
int LHyperlinkButton::setURL ( lua_State* ) {
HyperlinkButton::setURL( URL( LUA::getString() ) );
return 0;
}
/////// setters
int LHyperlinkButton::setFont ( lua_State* ) {
Font newFont = *LUA::from_luce<LFont>(2);
bool resizeToMatchComponentHeight = LUA::checkAndGetBoolean(2, false);
Justification justificationType (
(Justification)LUA::checkAndGetNumber<int>(2, Justification::horizontallyCentred ) );
HyperlinkButton::setFont( newFont, resizeToMatchComponentHeight, justificationType );
return 0;
}
int LHyperlinkButton::changeWidthToFitText ( lua_State* ) {
HyperlinkButton::changeWidthToFitText();
return 0;
}