FifeGUI 0.2.0
A C++ GUI library designed for games.
statusbar.hpp
1// SPDX-License-Identifier: LGPL-2.1-or-later OR BSD-3-Clause
2// SPDX-FileCopyrightText: 2026 Fifengine contributors
3
4#ifndef INCLUDE_FIFECHAN_WIDGETS_STATUSBAR_HPP_
5#define INCLUDE_FIFECHAN_WIDGETS_STATUSBAR_HPP_
6
7// Standard library includes
8#include <memory>
9#include <string>
10
11// Platform config include
12#include "fifechan/platform.hpp"
13
14// Project headers (subdirs before local)
15#include "fifechan/widgets/horizontalbar.hpp"
16
17namespace fcn
18{
24 class FIFEGUI_API StatusBar : public HorizontalBar
25 {
26 public:
30 StatusBar();
31
32 ~StatusBar() override = default;
33
34 StatusBar(StatusBar const &) = delete;
35 StatusBar& operator=(StatusBar const &) = delete;
36 StatusBar(StatusBar&&) = delete;
37 StatusBar& operator=(StatusBar&&) = delete;
38
45 void setText(std::string const & text);
46
53 std::string const & getText() const;
54
58 Container* getIconArea() const;
59
63 Container* getLeftArea() const;
64
68 Container* getRightArea() const;
69
79 void setShrinkPriorityEnabled(bool enabled);
80
87 bool isShrinkPriorityEnabled() const;
88
98 void setTruncateWithEllipsis(bool enabled);
99
106 bool isTruncateWithEllipsis() const;
107
108 protected:
112 void draw(Graphics* graphics) override;
113
114 private:
118 std::string mText;
119
120 std::unique_ptr<Container> mIconArea;
121 std::unique_ptr<Container> mLeftArea;
122 std::unique_ptr<Container> mRightArea;
123
127 bool mShrinkPriorityEnabled{false};
128
132 bool mTruncateWithEllipsis{true};
133 };
134} // namespace fcn
135
136#endif // INCLUDE_FIFECHAN_WIDGETS_STATUSBAR_HPP_
A composite widget capable of holding and managing child widgets.
Definition container.hpp:36
Abstract interface providing primitive drawing functions (lines, rectangles, etc.).
Definition graphics.hpp:58
HorizontalBar()
Constructor.
StatusBar()
Constructor.
Definition statusbar.cpp:19
void draw(Graphics *graphics) override
Draws the status bar.
Definition statusbar.cpp:59
bool isShrinkPriorityEnabled() const
Checks if shrink priority handling is enabled.
bool isTruncateWithEllipsis() const
Checks if truncation with ellipsis is enabled.
std::string const & getText() const
Gets the status text.
Definition statusbar.cpp:54
Container * getLeftArea() const
Access to the left (flexible) area.
Container * getIconArea() const
Access to the icon area (fixed size, left).
void setShrinkPriorityEnabled(bool enabled)
Enables or disables shrink priority handling.
void setTruncateWithEllipsis(bool enabled)
Enables or disables truncation with ellipsis.
Container * getRightArea() const
Access to the right (fixed) area.
void setText(std::string const &text)
Sets the status text.
Definition statusbar.cpp:49
Used replacement tokens by configure_file():