Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Generic / ConsoleInterface / Toolbox.hpp
diff options
context:
space:
mode:
Commitb844597fd23bc57aa97e231fc90eecfd6322cecc (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-07 08:28:27 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2022-05-07 08:28:27 +0300
Files86a4112ecfa1e3a54dbcf44a7ddf37575ba4aa39 /src/Generic/ConsoleInterface/Toolbox.hpp
FMI-OOP-P1_TicketSystem-b844597fd23bc57aa97e231fc90eecfd6322cecc.tar
FMI-OOP-P1_TicketSystem-b844597fd23bc57aa97e231fc90eecfd6322cecc.tar.gz
FMI-OOP-P1_TicketSystem-b844597fd23bc57aa97e231fc90eecfd6322cecc.zip
Parent0910afb91c8f9672be1d6184f47fb75947ea14f1 (diff)
Reorganized whole architecture
1 files changed, 76 insertions, 0 deletions
-rw-r--r--src/Generic/ConsoleInterface/Toolbox.hpp76
diff --git a/src/Generic/ConsoleInterface/Toolbox.hpp b/src/Generic/ConsoleInterface/Toolbox.hpp
new file mode 100644
index 0000000..ed5d6ac
--- /dev/null
+++ b/src/Generic/ConsoleInterface/Toolbox.hpp
@@ -0,0 +1,76 @@
+#ifndef HEADER_CONSOLEINTERFACE_TOOLBOX
+#define HEADER_CONSOLEINTERFACE_TOOLBOX
+
+#include "../String/String.h"
+#include <iostream>
+
+#define MAX_LINE_WIDTH 1024
+
+void clear();
+void titleBox(const char* title);
+void subTitleBox(const char* title);
+
+void successBox(const char* message);
+void warningBox(const char* message);
+void errorBox(const char* message);
+
+void table(unsigned startNumber, unsigned columns, const char* items);
+
+void inputLineBox(const char* label, char* output, unsigned maxWidth);
+void inputLineSubBox(const char* label, char* output, unsigned maxWidth);
+void resetOrderedList(int starter = 1);
+
+void _printInputBoxLabel(const char* label);
+void _printInputSubBoxLabel(const char* label);
+void _printOrderedListBeginning();
+
+template <class T>
+void read(T* storage) {
+ std::cin >> storage;
+}
+
+template <class T>
+void read(T& storage) {
+ std::cin >> storage;
+}
+
+template <class T>
+void print(const T* item) {
+ std::cout << item;
+}
+
+template <class T>
+void printLine(const T* item) {
+ std::cout << item << std::endl;
+}
+
+template <class T>
+void print(const T& item) {
+ std::cout << item;
+}
+
+template <class T>
+void printLine(const T& item) {
+ std::cout << item << std::endl;
+}
+
+
+template <typename T>
+void printOrderedListElem(const T& elem) {
+ _printOrderedListBeginning();
+ printLine(elem);
+}
+
+template <typename T>
+void inputBox(const char* label, T* output) {
+ _printInputBoxLabel(label);
+ std::cin >> *output;
+}
+
+template <typename T>
+void inputSubBox(const char* label, T* output) {
+ _printInputSubBoxLabel(label);
+ std::cin >> *output;
+}
+
+#endif