Shkyera Engine
Easy to use, game engine for Python
Loading...
Searching...
No Matches
ConsoleWidget.hpp
Go to the documentation of this file.
1
7#pragma once
8
9#include <memory>
10#include <mutex>
11#include <vector>
12
15#include <UI/Widget.hpp>
16
17namespace shkyera {
18
22class Log {
23 public:
29 Log(const std::string& content);
30
34 virtual void draw() const;
35
41 void* getIconId() const;
42
43 std::string _content;
45};
46
50class LogVerbose : public Log {
51 public:
52 using Log::Log;
53
54 LogVerbose(const std::string& content);
55};
56
60class LogInfo : public Log {
61 public:
62 using Log::Log;
63
64 LogInfo(const std::string& content);
65};
66
70class LogSuccess : public Log {
71 public:
72 using Log::Log;
73
74 LogSuccess(const std::string& content);
75};
76
80class LogError : public Log {
81 public:
82 using Log::Log;
83
84 LogError(const std::string& content);
85};
86
90class ConsoleWidget : public Widget {
91 public:
92 using Widget::Widget;
93
94 ConsoleWidget(const std::string& name);
96
100 virtual void draw() override;
101
105 static void clear();
106
110 static void enableVerbose();
111
115 static void disableVerbose();
116
122 static void logVerbose(std::string text);
123
129 static void logInfo(std::string text);
130
136 static void logSuccess(std::string text);
137
143 static void logError(std::string text);
144
148 static constexpr size_t MAX_LOGS = 500;
149
150 private:
154 void drawInfoBar() const;
155
156 static size_t _totalVerbose;
157 static size_t _totalInfo;
158 static size_t _totalSuccess;
159 static size_t _totalError;
160
161 static std::vector<std::shared_ptr<Log>> _logs;
162 static bool _verbose;
163
169};
170
171} // namespace shkyera
A user interface widget for the console, used for logging and displaying messages.
Definition ConsoleWidget.hpp:90
static size_t _totalVerbose
The total number of verbose logs.
Definition ConsoleWidget.hpp:156
static size_t _totalInfo
The total number of informational logs.
Definition ConsoleWidget.hpp:157
AssetRef< Texture > _totalIcon
Definition ConsoleWidget.hpp:164
static void logInfo(std::string text)
Log an informational message to the console.
Definition ConsoleWidget.cpp:147
static size_t _totalSuccess
The total number of success logs.
Definition ConsoleWidget.hpp:158
static void enableVerbose()
Enable verbose logging mode.
Definition ConsoleWidget.cpp:132
static size_t _totalError
The total number of error logs.
Definition ConsoleWidget.hpp:159
AssetRef< Texture > _errorIcon
Definition ConsoleWidget.hpp:165
virtual void draw() override
Implementation of the abstract draw method to render the console widget.
Definition ConsoleWidget.cpp:73
static void disableVerbose()
Disable verbose logging mode.
Definition ConsoleWidget.cpp:135
static std::vector< std::shared_ptr< Log > > _logs
A collection of logs in the console.
Definition ConsoleWidget.hpp:161
void drawInfoBar() const
Draw the information bar of the console widget.
Definition ConsoleWidget.cpp:89
AssetRef< Texture > _verboseIcon
Definition ConsoleWidget.hpp:168
~ConsoleWidget()
Definition ConsoleWidget.cpp:69
static constexpr size_t MAX_LOGS
The maximum number of logs to keep in the console.
Definition ConsoleWidget.hpp:148
static bool _verbose
A flag indicating verbose logging mode.
Definition ConsoleWidget.hpp:162
AssetRef< Texture > _successIcon
Definition ConsoleWidget.hpp:166
static void logVerbose(std::string text)
Log a verbose message to the console.
Definition ConsoleWidget.cpp:139
static void clear()
Clear all logs from the console widget.
Definition ConsoleWidget.cpp:123
AssetRef< Texture > _infoIcon
Definition ConsoleWidget.hpp:167
static void logError(std::string text)
Log an error message to the console.
Definition ConsoleWidget.cpp:163
static void logSuccess(std::string text)
Log a success message to the console.
Definition ConsoleWidget.cpp:155
A log representing error messages.
Definition ConsoleWidget.hpp:80
A base class for logs that contain textual content.
Definition ConsoleWidget.hpp:22
virtual void draw() const
Virtual method to draw the log in the user interface.
Definition ConsoleWidget.cpp:15
void * getIconId() const
Virtual method to retrieve an icon identifier associated with the log.
Definition ConsoleWidget.cpp:22
Log(const std::string &content)
Constructor to create a log with the specified content.
Definition ConsoleWidget.cpp:13
std::string _content
The text content of the log.
Definition ConsoleWidget.hpp:43
AssetRef< Texture > _icon
Definition ConsoleWidget.hpp:44
A log representing informational messages.
Definition ConsoleWidget.hpp:60
A log representing success messages.
Definition ConsoleWidget.hpp:70
A log representing verbose messages.
Definition ConsoleWidget.hpp:50
An abstract base class representing a GUI widget.
Definition Widget.hpp:23
Widget(std::string name)
Constructor to create a widget with a specified name.
Definition Widget.cpp:5
Definition Asset.hpp:6
Definition Clock.hpp:9