ManaPlus
attrdisplay.h
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 #ifndef GUI_WIDGETS_ATTRS_ATTRDISPLAY_H
25 #define GUI_WIDGETS_ATTRS_ATTRDISPLAY_H
26 
27 #include "enums/being/attributes.h"
28 
29 #include "gui/widgets/container.h"
30 
31 #include "gui/widgets/label.h"
32 
33 #include "localconsts.h"
34 
35 class LayoutHelper;
36 
38 {
39  public:
40  enum Type
41  {
42  DERIVED = 0,
44  UNKNOWN
45  };
46 
48 
49  ~AttrDisplay() override;
50 
51  virtual std::string update();
52 
53  virtual Type getType() const
54  { return UNKNOWN; }
55 
56  std::string getValue() const
57  {
58  if (mValue == nullptr)
59  return "-";
60  return mValue->getCaption();
61  }
62 
63  const std::string &getShortName() const
64  { return mShortName; }
65 
66  protected:
67  AttrDisplay(const Widget2 *const widget,
68  const AttributesT id,
69  const std::string &restrict name,
70  const std::string &restrict shortName);
71 
73  const std::string mName;
74  const std::string mShortName;
75 
79 };
80 
81 typedef std::map<AttributesT, AttrDisplay*> Attrs;
82 
83 #endif // GUI_WIDGETS_ATTRS_ATTRDISPLAY_H
std::map< AttributesT, AttrDisplay * > Attrs
Definition: attrdisplay.h:81
Attributes ::T AttributesT
Definition: attributes.h:118
virtual Type getType() const
Definition: attrdisplay.h:53
virtual std::string update()
Definition: attrdisplay.cpp:59
Label * mLabel
Definition: attrdisplay.h:77
LayoutHelper * mLayout
Definition: attrdisplay.h:76
const std::string & getShortName() const
Definition: attrdisplay.h:63
const std::string mName
Definition: attrdisplay.h:73
const std::string mShortName
Definition: attrdisplay.h:74
Label * mValue
Definition: attrdisplay.h:78
AttrDisplay(const Widget2 *const widget, const AttributesT id, const std::string &name, const std::string &shortName)
Definition: attrdisplay.cpp:35
std::string getValue() const
Definition: attrdisplay.h:56
const AttributesT mId
Definition: attrdisplay.h:72
Definition: label.h:91
const std::string & getCaption() const
Definition: label.h:133
#define restrict
Definition: localconsts.h:165
#define notfinal
Definition: localconsts.h:261
#define A_DELETE_COPY(func)
Definition: localconsts.h:53