Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Generic / ConsoleInterface / Toolbox.cpp
diff options
context:
space:
mode:
Commit9097bced161430813b6dd1980b0b2f6c2bd09b32 (patch)
Author
 Syndamia <kamen@syndamia.com>
2022-05-29 07:58:46 +0300
Committer
 Syndamia <kamen@syndamia.com>
2022-05-29 07:58:46 +0300
Files62ddf909db26bcdd695ac4600ae9f3882a85921f /src/Generic/ConsoleInterface/Toolbox.cpp
FMI-OOP-P2_Tables-9097bced161430813b6dd1980b0b2f6c2bd09b32.tar
FMI-OOP-P2_Tables-9097bced161430813b6dd1980b0b2f6c2bd09b32.tar.gz
FMI-OOP-P2_Tables-9097bced161430813b6dd1980b0b2f6c2bd09b32.zip
Parentcf991dc2d8694bfc6d457133b44cb4a760f93724 (diff)
Autocommit at 29.05.2022 @ 07:58
1 files changed, 7 insertions, 141 deletions
-rw-r--r--src/Generic/ConsoleInterface/Toolbox.cpp148
diff --git a/src/Generic/ConsoleInterface/Toolbox.cpp b/src/Generic/ConsoleInterface/Toolbox.cpp
index ca83b3b..f8434a4 100644
--- a/src/Generic/ConsoleInterface/Toolbox.cpp
+++ b/src/Generic/ConsoleInterface/Toolbox.cpp
@@ -11,103 +11,8 @@ void clear() {
std::cout << u8"\033[2J\033[1;1H";
}
-/*!
- * Sub boxes are like normal boxes, but indented with 4 spaces.
- */
-void _printSubBoxSpacing() {
- std::cout << " ";
-}
-
-/* Title boxes */
-
-/*! \param title C-style string, there are no size checks so it could wrap
- *
- * Prints the title, surrounded by "===".
- */
-void titleBox(const char* title) {
- std::cout << std::endl << "=== " << title << " ===" << std::endl;
-}
-
-/*! \param title C-style string, there are no size checks so it could wrap
- *
- * Prints the title, surrounded by "---".
- */
-void subTitleBox(const char* title) {
- std::cout << std::endl << "--- " << title << " ---" << std::endl;
-}
-
-/* Status boxes */
-
-/*! \param message C-style string, there are no size checks so it could wrap
- *
- * Success boxes start with "<S>" and print the message.
- *
- * \remark Success/Warning/Error boxes start with "<C>" where C is an appropriate character.
- */
-void successBox(const char* message) {
- std::cout << "<S> " << message << std::endl;
-}
-
-/*!
- * \copydetails successBox()
- * \sa _printSubBoxSpacing()
- */
-void successSubBox(const char* message) {
- _printSubBoxSpacing();
- successBox(message);
-}
-
-/*! \param message C-style string, there are no size checks so it could wrap
- *
- * Warning boxes start with "<W>" and print the message.
- *
- * \remark Success/Warning/Error boxes start with "<C>" where C is an appropriate character.
- */
-void warningBox(const char* message) {
- std::cout << "<W> " << message << std::endl;
-}
-
-/*!
- * \copydetails warningBox()
- * \sa _printSubBoxSpacing()
- */
-void warningSubBox(const char* message) {
- _printSubBoxSpacing();
- warningBox(message);
-}
-
-/*! \param message C-style string, there are no size checks so it could wrap
- *
- * Error boxes start with "<E>" and print the message.
- *
- * \remark Success/Warning/Error boxes start with "<C>" where C is an appropriate character.
- */
-void errorBox(const char* message) {
- std::cout << "<E> " << message << std::endl;
-}
-
-/*!
- * \copydetails errorBox()
- * \sa _printSubBoxSpacing()
- */
-void errorSubBox(const char* message) {
- _printSubBoxSpacing();
- errorBox(message);
-}
-
/* Input line boxes */
-/*! \param label C-style string, there are no size checks so it could wrap
- *
- * Prints "(+)" and then the given label.
- * It doesn't create spacing after label, so it should exist in the label itself.
- *
- * \remark Semi-internal means the function is defined in the header out of necessity (for templated functions)
- */
-void _printInputBoxLabel(const char* label) {
- std::cout << "(+) " << label;
-}
-
void __inputLineBoxGetInput(char* output, unsigned maxWidth, bool ignore) {
if (ignore)
std::cin.ignore();
@@ -123,54 +28,10 @@ void __inputLineBoxGetInput(char* output, unsigned maxWidth, bool ignore) {
* Prints "(+)" before the label.
*/
void inputLineBox(const char* label, char* output, unsigned maxWidth, bool ignore) {
- _printInputBoxLabel(label);
+ print(label);
__inputLineBoxGetInput(output, maxWidth, ignore);
}
-/*!
- * \copydetails inputLineBox()
- * \sa _printSubBoxSpacing()
- */
-void inputLineSubBox(const char* label, char* output, unsigned maxWidth, bool ignore) {
- _printSubBoxSpacing();
- _printInputBoxLabel(label);
- __inputLineBoxGetInput(output, maxWidth, ignore);
-}
-
-/*! \param ignore Whether or not to ignore the first new-line delimiter.
- * true by default, should be set to false only when an inputLineBox/SubBox has been issued directly prior or when it's the very first issued box command.
- *
- * Prints a "Press enter to continue" message and waits for the user
- */
-void pressEnterToContinue(bool ignore) {
- char tmp;
- inputLineBox("[Press enter to continue]", &tmp, 1, ignore);
-}
-
-/* Ordered list */
-
-int orderedListIndex = 1;
-
-/*!
- * Prints the latests ordered list index, surrounded by square brackets, and increments the ordered list index.
- *
- * \remark There are no size checks, so list index could overflow.
- *
- * \remark Semi-internal means the function is defined in the header out of necessity (for templated functions)
- */
-
-void _printOrderedListBeginning() {
- std::cout << "[" << orderedListIndex++ << "] ";
-}
-
-/*! \param starter Sets the starting number by which ordered list will enumerate
- *
- * \remark Although starter can be a negative number, ordered list will always increment up the number.
- */
-void resetOrderedList(int starter) {
- orderedListIndex = starter;
-}
-
/* Table */
void __printTableHeaderNumber(unsigned number) {
@@ -195,6 +56,10 @@ void __printTableLine(unsigned columns) {
std::cout << ":" << std::endl;
}
+void __printPadded(const String& str) {
+
+}
+
/*! \param startNumber The number by which column and row enumeration begins
* \param columns How many columns the table should have
* \param items C-style string, each cell is a single character from the string
@@ -205,7 +70,8 @@ void __printTableLine(unsigned columns) {
* Table is printed until a terminating zero is encountered.
* The rows are "calculated" from the columns count and the items length.
*/
-void table(unsigned startNumber, unsigned columns, const char* items) {
+void table(const List<String>& items) {
+ unsigned *paddings = new unsigned[items.get_count()];
__printTableColumnHeader(startNumber, columns);
__printTableHeaderNumber(startNumber);