ManaPlus
src
gui
widgets
passwordfield.cpp
Go to the documentation of this file.
1
/*
2
* The ManaPlus Client
3
* Copyright (C) 2004-2009 The Mana World Development Team
4
* Copyright (C) 2009-2010 The Mana Developers
5
* Copyright (C) 2011-2019 The ManaPlus Developers
6
* Copyright (C) 2019-2021 Andrei Karas
7
*
8
* This file is part of The ManaPlus Client.
9
*
10
* This program is free software; you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation; either version 2 of the License, or
13
* any later version.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
19
*
20
* You should have received a copy of the GNU General Public License
21
* along with this program. If not, see <http://www.gnu.org/licenses/>.
22
*/
23
24
#include "
gui/widgets/passwordfield.h
"
25
26
#include "
gui/skin.h
"
27
28
#include "
debug.h
"
29
30
PasswordField::PasswordField
(
const
Widget2
*
const
widget,
31
const
std::string &text) :
32
TextField
(widget, text,
33
LoseFocusOnTab_true
,
nullptr
,
std
::string(), false),
34
mPasswordChar(mSkin !=
nullptr
?
CAST_8
(
35
mSkin->getOption(
"passwordChar"
, 42)) :
CAST_8
(42))
36
{
37
}
38
39
void
PasswordField::draw
(
Graphics
*
const
graphics)
40
{
41
BLOCK_START
(
"PasswordField::draw"
)
42
// std::string uses cow, thus cheap copy
43
const
std::string original =
mText
;
44
if
(
mPasswordChar
!= 0)
45
mText
.assign(
mText
.length(),
mPasswordChar
);
46
else
47
mText
.clear();
48
TextField::draw
(graphics);
49
mText
= original;
50
BLOCK_END
(
"PasswordField::draw"
)
51
}
52
53
void
PasswordField::safeDraw
(
Graphics
*
const
graphics)
54
{
55
PasswordField::draw
(graphics);
56
}
CAST_8
#define CAST_8
Definition:
cast.h:25
Graphics
Definition:
graphics.h:109
PasswordField::mPasswordChar
char mPasswordChar
Definition:
passwordfield.h:53
PasswordField::PasswordField
PasswordField(const Widget2 *const widget, const std::string &text)
Definition:
passwordfield.cpp:30
PasswordField::safeDraw
void safeDraw(Graphics *const graphics)
Definition:
passwordfield.cpp:53
PasswordField::draw
void draw(Graphics *const graphics)
Definition:
passwordfield.cpp:39
TextField
Definition:
textfield.h:93
TextField::draw
void draw(Graphics *const graphics)
Definition:
textfield.cpp:210
TextField::mText
std::string mText
Definition:
textfield.h:263
Widget2
Definition:
widget2.h:37
debug.h
nullptr
#define nullptr
Definition:
localconsts.h:45
LoseFocusOnTab_true
const bool LoseFocusOnTab_true
Definition:
losefocusontab.h:30
std
Definition:
mseprimitives.h:398
passwordfield.h
BLOCK_END
#define BLOCK_END(name)
Definition:
perfomance.h:80
BLOCK_START
#define BLOCK_START(name)
Definition:
perfomance.h:79
skin.h
Generated on Wed Mar 17 2021 19:19:06 for ManaPlus by
1.9.1