diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index a0e952ed..51696964 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -1,28 +1,23 @@ add_files( APP_FILES - qt/element/QtArea.cpp - qt/element/QtArea.h - qt/element/QtCanvas.cpp - qt/element/QtCanvas.h - qt/element/QtLayout.cpp - qt/element/QtLayout.h + qt/element/QtMainWindow.cpp + qt/element/QtMainWindow.h qt/utility/QtHighLighter.cpp qt/utility/QtHighLighter.h + qt/utility/utilityQt.cpp + qt/utility/utilityQt.h qt/view/QtCodeView.cpp qt/view/QtCodeView.h + qt/view/QtMainView.cpp + qt/view/QtMainView.h + qt/QtGuiFactory.cpp + qt/QtGuiFactory.h qt/QtWidgetWrapper.cpp qt/QtWidgetWrapper.h - qt/QtElementFactory.cpp - qt/QtElementFactory.h - qt/QtWindow.cpp - qt/QtWindow.h - - utility/utilityQt.cpp - utility/utilityQt.h includesWindows.h main.cpp diff --git a/src/app/main.cpp b/src/app/main.cpp index f1b26f94..c6d5d76f 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -4,17 +4,14 @@ #include "Application.h" #include "includes.h" -#include "qt/QtElementFactory.h" -#include "qt/QtWindow.h" +#include "qt/QtGuiFactory.h" int main(int argc, char *argv[]) { QApplication qtApp(argc, argv); - std::shared_ptr elementFactory = std::make_shared(); + QtGuiFactory guiFactory; - std::shared_ptr window = std::make_shared(); - - std::shared_ptr app = Application::create(elementFactory, window); + std::shared_ptr app = Application::create(&guiFactory); app->loadProject(); return qtApp.exec(); diff --git a/src/app/qt/QtElementFactory.cpp b/src/app/qt/QtElementFactory.cpp deleted file mode 100644 index 490ddbf3..00000000 --- a/src/app/qt/QtElementFactory.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include "qt/QtElementFactory.h" - -#include "component/view/CodeView.h" -#include "qt/element/QtArea.h" -#include "qt/element/QtCanvas.h" -#include "qt/element/QtLayout.h" -#include "qt/view/QtCodeView.h" -#include "qt/QtWindow.h" - -QtElementFactory::QtElementFactory() -{ -} - -QtElementFactory::~QtElementFactory() -{ -} - -std::shared_ptr QtElementFactory::createArea() const -{ - return std::make_shared(); -} - -std::shared_ptr QtElementFactory::createCanvas(std::shared_ptr window) const -{ - std::shared_ptr canvas = std::make_shared(); - window->setCanvas(canvas); - return canvas; -} - -std::shared_ptr QtElementFactory::createLayout() const -{ - return std::make_shared(); -} - -std::shared_ptr QtElementFactory::createCodeView(std::shared_ptr viewManager) const -{ - return std::make_shared(viewManager); -} diff --git a/src/app/qt/QtElementFactory.h b/src/app/qt/QtElementFactory.h deleted file mode 100644 index f4e777fc..00000000 --- a/src/app/qt/QtElementFactory.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef QT_ELEMENT_FACTORY_H -#define QT_ELEMENT_FACTORY_H - -#include "gui/GuiElementFactory.h" - -class CodeView; -class ViewManager; - -class QtElementFactory: public GuiElementFactory -{ -public: - QtElementFactory(); - virtual ~QtElementFactory(); - - virtual std::shared_ptr createArea() const; - virtual std::shared_ptr createCanvas(std::shared_ptr window) const; - virtual std::shared_ptr createLayout() const; - - virtual std::shared_ptr createCodeView(std::shared_ptr viewManager) const; -}; - -# endif // QT_ELEMENT_FACTORY_H diff --git a/src/app/qt/QtGuiFactory.cpp b/src/app/qt/QtGuiFactory.cpp new file mode 100644 index 00000000..da6e69c9 --- /dev/null +++ b/src/app/qt/QtGuiFactory.cpp @@ -0,0 +1,22 @@ +#include "qt/QtGuiFactory.h" + +#include "qt/view/QtCodeView.h" +#include "qt/view/QtMainView.h" + +QtGuiFactory::QtGuiFactory() +{ +} + +QtGuiFactory::~QtGuiFactory() +{ +} + +std::shared_ptr QtGuiFactory::createMainView() const +{ + return std::make_shared(); +} + +std::shared_ptr QtGuiFactory::createCodeView(ViewLayout* viewLayout) const +{ + return View::create(viewLayout); +} diff --git a/src/app/qt/QtGuiFactory.h b/src/app/qt/QtGuiFactory.h new file mode 100644 index 00000000..af0e2700 --- /dev/null +++ b/src/app/qt/QtGuiFactory.h @@ -0,0 +1,16 @@ +#ifndef QT_GUI_FACTORY_H +#define QT_GUI_FACTORY_H + +#include "gui/GuiFactory.h" + +class QtGuiFactory: public GuiFactory +{ +public: + QtGuiFactory(); + virtual ~QtGuiFactory(); + + virtual std::shared_ptr createMainView() const; + virtual std::shared_ptr createCodeView(ViewLayout* viewLayout) const; +}; + +#endif // QT_GUI_FACTORY_H diff --git a/src/app/qt/QtWidgetWrapper.cpp b/src/app/qt/QtWidgetWrapper.cpp index eaec0dd2..fbfe0b3c 100644 --- a/src/app/qt/QtWidgetWrapper.cpp +++ b/src/app/qt/QtWidgetWrapper.cpp @@ -1,26 +1,25 @@ #include "qt/QtWidgetWrapper.h" -#include "gui/GuiElement.h" +#include "component/view/View.h" #include "utility/logging/logging.h" -std::shared_ptr QtWidgetWrapper::getWidgetOfElement(std::shared_ptr element) +QWidget* QtWidgetWrapper::getWidgetOfView(View* view) { - return getWidgetOfElement(element.get()); -} + QtWidgetWrapper* widgetWrapper = dynamic_cast(view->getWidgetWrapper()); -std::shared_ptr QtWidgetWrapper::getWidgetOfElement(GuiElement* element) -{ - std::shared_ptr widget; - std::shared_ptr qtWidgetWrapper = std::dynamic_pointer_cast(element->getWidgetWrapper()); - if (!qtWidgetWrapper || qtWidgetWrapper.use_count() == 0) + if (!widgetWrapper) { - LOG_ERROR("Trying to get the qt widget of non qt gui element."); + LOG_ERROR("Trying to get the qt widget of non qt view."); + return nullptr; } - else + + if (!widgetWrapper->getWidget()) { - widget = qtWidgetWrapper->getWidget(); + LOG_ERROR("The QtWidgetWrapper is not holdling a QWidget."); + return nullptr; } - return widget; + + return widgetWrapper->getWidget(); } QtWidgetWrapper::QtWidgetWrapper(std::shared_ptr widget) @@ -32,7 +31,7 @@ QtWidgetWrapper::~QtWidgetWrapper() { } -std::shared_ptr QtWidgetWrapper::getWidget() +QWidget* QtWidgetWrapper::getWidget() { - return m_widget; + return m_widget.get(); } diff --git a/src/app/qt/QtWidgetWrapper.h b/src/app/qt/QtWidgetWrapper.h index c9674404..a5d4d2c4 100644 --- a/src/app/qt/QtWidgetWrapper.h +++ b/src/app/qt/QtWidgetWrapper.h @@ -5,20 +5,19 @@ #include -#include "gui/WidgetWrapper.h" +#include "gui/GuiWidgetWrapper.h" -class GuiElement; +class View; -class QtWidgetWrapper: public WidgetWrapper +class QtWidgetWrapper: public GuiWidgetWrapper { public: - static std::shared_ptr getWidgetOfElement(std::shared_ptr element); - static std::shared_ptr getWidgetOfElement(GuiElement* element); + static QWidget* getWidgetOfView(View* view); QtWidgetWrapper(std::shared_ptr widget); virtual ~QtWidgetWrapper(); - std::shared_ptr getWidget(); // not const because returned widget can be changed. + QWidget* getWidget(); private: std::shared_ptr m_widget; diff --git a/src/app/qt/QtWindow.cpp b/src/app/qt/QtWindow.cpp deleted file mode 100644 index 1230a6e0..00000000 --- a/src/app/qt/QtWindow.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include "qt/QtWindow.h" - -#include "gui/GuiCanvas.h" -#include "QtWidgetWrapper.h" - -QtWindow::QtWindow() -{ - m_window.setObjectName("QtWindow"); - m_window.show(); -} - -QtWindow::~QtWindow() -{ -} - -void QtWindow::setCanvas(std::shared_ptr canvas) -{ - m_window.setCentralWidget(QtWidgetWrapper::getWidgetOfElement(canvas).get()); -} diff --git a/src/app/qt/QtWindow.h b/src/app/qt/QtWindow.h deleted file mode 100644 index b11ad4e1..00000000 --- a/src/app/qt/QtWindow.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef QT_WINDOW_H -#define QT_WINDOW_H - -#include - -#include - -#include "gui/GuiWindow.h" - -class GuiCanvas; - -class QtWindow: public GuiWindow -{ -public: - QtWindow(); - ~QtWindow(); - - void setCanvas(std::shared_ptr canvas); - -private: - QMainWindow m_window; -}; - -# endif // QT_WINDOW_H diff --git a/src/app/qt/element/QtArea.cpp b/src/app/qt/element/QtArea.cpp deleted file mode 100644 index d51dd4d3..00000000 --- a/src/app/qt/element/QtArea.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include "qt/element/QtArea.h" - -#include - -#include "qt/QtWidgetWrapper.h" -#include "utility/utilityQt.h" - -QtArea::QtArea() - : GuiArea(std::make_shared(std::make_shared())) -{ -} - -QtArea::~QtArea() -{ -} - -void QtArea::setPosition(Vec2i position) -{ -} - -Vec2i QtArea::getPosition() const -{ - return Vec2i(); -} - -void QtArea::setSize(Vec2i size) -{ -} - -Vec2i QtArea::getSize() const -{ - return Vec2i(); -} - -void QtArea::setBackgroundColor(Colori color) -{ - utility::setWidgetBackgroundColor(getWidget(), color); -} - -std::shared_ptr QtArea::getWidget() -{ - return QtWidgetWrapper::getWidgetOfElement(this); -} diff --git a/src/app/qt/element/QtArea.h b/src/app/qt/element/QtArea.h deleted file mode 100644 index c8d234af..00000000 --- a/src/app/qt/element/QtArea.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef QT_AREA_H -#define QT_AREA_H - -#include - -#include "gui/GuiArea.h" - -class QtArea: public GuiArea -{ -public: - QtArea(); - virtual ~QtArea(); - - virtual void setPosition(Vec2i position); - virtual Vec2i getPosition() const; - virtual void setSize(Vec2i size); - virtual Vec2i getSize() const; - - virtual void setBackgroundColor(Colori color); - -private: - std::shared_ptr getWidget(); -}; - -# endif // QT_AREA_H diff --git a/src/app/qt/element/QtCanvas.cpp b/src/app/qt/element/QtCanvas.cpp deleted file mode 100644 index 630ffa09..00000000 --- a/src/app/qt/element/QtCanvas.cpp +++ /dev/null @@ -1,59 +0,0 @@ -#include "qt/element/QtCanvas.h" - -#include -#include - -#include "qt/QtWidgetWrapper.h" -#include "utility/utilityQt.h" - -QtCanvas::QtCanvas() - : GuiCanvas(std::make_shared(std::make_shared())) -{ - QBoxLayout* layout = new QBoxLayout(QBoxLayout::TopToBottom); // gets deleted by qt - getWidget()->setLayout(layout); -} - -QtCanvas::~QtCanvas() -{ -} - -void QtCanvas::addChild(std::shared_ptr element) -{ - getWidget()->layout()->addWidget(QtWidgetWrapper::getWidgetOfElement(element).get()); -} - -void QtCanvas::removeChild(std::shared_ptr element) -{ - std::shared_ptr widgetToRemove = QtWidgetWrapper::getWidgetOfElement(element); - getWidget()->layout()->removeWidget(widgetToRemove.get()); - widgetToRemove->setGeometry(0, 0, 0, 0); -} - -void QtCanvas::setPosition(Vec2i position) -{ -} - -Vec2i QtCanvas::getPosition() const -{ - return Vec2i(); -} - -void QtCanvas::setSize(Vec2i size) -{ -} - -Vec2i QtCanvas::getSize() const -{ - return Vec2i(); -} - -void QtCanvas::setBackgroundColor(Colori color) -{ - utility::setWidgetBackgroundColor(getWidget(), color); -} - -std::shared_ptr QtCanvas::getWidget() -{ - return QtWidgetWrapper::getWidgetOfElement(this); -} - diff --git a/src/app/qt/element/QtCanvas.h b/src/app/qt/element/QtCanvas.h deleted file mode 100644 index c6a8411a..00000000 --- a/src/app/qt/element/QtCanvas.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef QT_CANVAS_H -#define QT_CANVAS_H - -#include -#include - -#include "gui/GuiCanvas.h" - -class QtCanvas: public GuiCanvas -{ -public: - QtCanvas(); - virtual ~QtCanvas(); - - virtual void addChild(std::shared_ptr element); - virtual void removeChild(std::shared_ptr element); - - virtual void setPosition(Vec2i position); - virtual Vec2i getPosition() const; - virtual void setSize(Vec2i size); - virtual Vec2i getSize() const; - - virtual void setBackgroundColor(Colori color); - -private: - std::shared_ptr getWidget(); -}; - -# endif // QT_CANVAS_H diff --git a/src/app/qt/element/QtLayout.cpp b/src/app/qt/element/QtLayout.cpp deleted file mode 100644 index 9ea52754..00000000 --- a/src/app/qt/element/QtLayout.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include "qt/element/QtLayout.h" - -#include -#include - -#include "qt/QtWidgetWrapper.h" -#include "utility/utilityQt.h" - -QtLayout::QtLayout() - : GuiLayout(std::make_shared(std::make_shared())) -{ - m_layout = new QBoxLayout(QBoxLayout::TopToBottom); // gets deleted by qt - getWidget()->setLayout(m_layout); -} - -QtLayout::~QtLayout() -{ -} - -void QtLayout::setDirection(LayoutDirectionType direction) -{ - switch (direction) - { - case LAYOUT_DIRECTION_HORIZONTAL: - m_layout->setDirection(QBoxLayout::LeftToRight); - case LAYOUT_DIRECTION_VERTICAL: - m_layout->setDirection(QBoxLayout::TopToBottom); - } - getWidget()->setLayout(m_layout); -} - -void QtLayout::addChild(std::shared_ptr element) -{ - m_layout->addWidget(QtWidgetWrapper::getWidgetOfElement(element).get()); -} - -void QtLayout::removeChild(std::shared_ptr element) -{ - std::shared_ptr widgetToRemove = QtWidgetWrapper::getWidgetOfElement(element); - m_layout->removeWidget(widgetToRemove.get()); - widgetToRemove->setGeometry(0, 0, 0, 0); -} - -void QtLayout::setPosition(Vec2i position) -{ -} - -Vec2i QtLayout::getPosition() const -{ - return Vec2i(); -} - -void QtLayout::setSize(Vec2i size) -{ -} - -Vec2i QtLayout::getSize() const -{ - return Vec2i(); -} - -void QtLayout::setBackgroundColor(Colori color) -{ - utility::setWidgetBackgroundColor(getWidget(), color); -} - -std::shared_ptr QtLayout::getWidget() -{ - return QtWidgetWrapper::getWidgetOfElement(this); -} diff --git a/src/app/qt/element/QtLayout.h b/src/app/qt/element/QtLayout.h deleted file mode 100644 index 9d0ea7c7..00000000 --- a/src/app/qt/element/QtLayout.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef QT_LAYOUT_H -#define QT_LAYOUT_H - -#include -#include - -#include "gui/GuiLayout.h" - -class QtLayout: public GuiLayout -{ -public: - QtLayout(); - virtual ~QtLayout(); - - virtual void setDirection(LayoutDirectionType direction); - - virtual void addChild(std::shared_ptr element); - virtual void removeChild(std::shared_ptr element); - - virtual void setPosition(Vec2i position); - virtual Vec2i getPosition() const; - virtual void setSize(Vec2i size); - virtual Vec2i getSize() const; - - virtual void setBackgroundColor(Colori color); - -private: - std::shared_ptr getWidget(); - - QBoxLayout* m_layout; -}; - -# endif // QT_LAYOUT_H diff --git a/src/app/qt/element/QtMainWindow.cpp b/src/app/qt/element/QtMainWindow.cpp new file mode 100644 index 00000000..d4ff4cef --- /dev/null +++ b/src/app/qt/element/QtMainWindow.cpp @@ -0,0 +1,37 @@ +#include "qt/element/QtMainWindow.h" + +#include + +#include "component/view/View.h" +#include "qt/QtWidgetWrapper.h" + +QtMainWindow::QtMainWindow() +{ + setObjectName("QtMainWindow"); + setCentralWidget(nullptr); +} + +QtMainWindow::~QtMainWindow() +{ +} + +void QtMainWindow::addView(View* view) +{ + QDockWidget* dock = new QDockWidget(tr(view->getName().c_str()), this); + dock->setWidget(QtWidgetWrapper::getWidgetOfView(view)); + addDockWidget(Qt::TopDockWidgetArea, dock); + m_dockWidgets.push_back(std::make_pair(view, dock)); +} + +void QtMainWindow::removeView(View* view) +{ + for (size_t i = 0; i < m_dockWidgets.size(); i++) + { + if (m_dockWidgets[i].first == view) + { + removeDockWidget(m_dockWidgets[i].second); + m_dockWidgets.erase(m_dockWidgets.begin() + i); + return; + } + } +} diff --git a/src/app/qt/element/QtMainWindow.h b/src/app/qt/element/QtMainWindow.h new file mode 100644 index 00000000..0034562f --- /dev/null +++ b/src/app/qt/element/QtMainWindow.h @@ -0,0 +1,27 @@ +#ifndef QT_MAIN_WINDOW_H +#define QT_MAIN_WINDOW_H + +#include +#include + +#include + +class QDockWidget; +class View; + +class QtMainWindow: public QMainWindow +{ + Q_OBJECT + +public: + QtMainWindow(); + ~QtMainWindow(); + + void addView(View* view); + void removeView(View* view); + +private: + std::vector > m_dockWidgets; +}; + +#endif // QT_MAIN_WINDOW_H diff --git a/src/app/utility/utilityQt.cpp b/src/app/qt/utility/utilityQt.cpp similarity index 74% rename from src/app/utility/utilityQt.cpp rename to src/app/qt/utility/utilityQt.cpp index db4e9363..17d1b78b 100644 --- a/src/app/utility/utilityQt.cpp +++ b/src/app/qt/utility/utilityQt.cpp @@ -2,7 +2,7 @@ namespace utility { - void setWidgetBackgroundColor(std::shared_ptr widget, const Colori& color) + void setWidgetBackgroundColor(QWidget* widget, const Colori& color) { QPalette palette = widget->palette(); palette.setColor(widget->backgroundRole(), QColor(color.r, color.g, color.b, color.a)); @@ -10,4 +10,3 @@ namespace utility widget->setAutoFillBackground(true); } } - diff --git a/src/app/utility/utilityQt.h b/src/app/qt/utility/utilityQt.h similarity index 65% rename from src/app/utility/utilityQt.h rename to src/app/qt/utility/utilityQt.h index 9b7f8101..8e915f25 100644 --- a/src/app/utility/utilityQt.h +++ b/src/app/qt/utility/utilityQt.h @@ -8,7 +8,7 @@ namespace utility { - void setWidgetBackgroundColor(std::shared_ptr widget, const Colori& color); + void setWidgetBackgroundColor(QWidget* widget, const Colori& color); } # endif // UTILITY_QT_H diff --git a/src/app/qt/view/QtCodeView.cpp b/src/app/qt/view/QtCodeView.cpp index e1660165..a4f1554e 100644 --- a/src/app/qt/view/QtCodeView.cpp +++ b/src/app/qt/view/QtCodeView.cpp @@ -2,16 +2,29 @@ #include -#include "qt/element/QtArea.h" #include "qt/QtWidgetWrapper.h" #include "qt/utility/QtHighLighter.h" +#include "qt/utility/utilityQt.h" -QtCodeView::QtCodeView(std::shared_ptr viewManager) - : CodeView(viewManager, std::make_shared()) +QtCodeView::QtCodeView(ViewLayout* viewLayout) + : CodeView(viewLayout) { - getRootElement()->setBackgroundColor(255, 125, 0, 255); +} + +QtCodeView::~QtCodeView() +{ +} + +void QtCodeView::createWidgetWrapper() +{ + setWidgetWrapper(std::make_shared(std::make_shared())); +} + +void QtCodeView::initGui() +{ + QWidget* widget = QtWidgetWrapper::getWidgetOfView(this); + utility::setWidgetBackgroundColor(widget, Colori(255, 125, 0, 255)); - std::shared_ptr widget = QtWidgetWrapper::getWidgetOfElement(getRootElement()); QBoxLayout* layout = new QBoxLayout(QBoxLayout::TopToBottom); layout->setSpacing(3); layout->setContentsMargins(3, 3, 3, 3); @@ -22,10 +35,6 @@ QtCodeView::QtCodeView(std::shared_ptr viewManager) m_font.setPointSize(10); } -QtCodeView::~QtCodeView() -{ -} - void QtCodeView::addCodeSnippet(std::string str) { std::shared_ptr snippet = std::make_shared(); @@ -38,7 +47,7 @@ void QtCodeView::addCodeSnippet(std::string str) snippet->textField->setPlainText(QString::fromUtf8(str.c_str())); - std::shared_ptr widget = QtWidgetWrapper::getWidgetOfElement(getRootElement()); + QWidget* widget = QtWidgetWrapper::getWidgetOfView(this); widget->layout()->addWidget(snippet->textField.get()); m_snippets.push_back(snippet); diff --git a/src/app/qt/view/QtCodeView.h b/src/app/qt/view/QtCodeView.h index db09ba0c..fe8215ed 100644 --- a/src/app/qt/view/QtCodeView.h +++ b/src/app/qt/view/QtCodeView.h @@ -3,7 +3,6 @@ #include #include -#include #include @@ -11,14 +10,17 @@ class QtHighlighter; class QTextEdit; -class ViewManager; class QtCodeView: public CodeView { public: - QtCodeView(std::shared_ptr viewManager); + QtCodeView(ViewLayout* viewLayout); ~QtCodeView(); + // View implementation + virtual void createWidgetWrapper(); + virtual void initGui(); + // CodeView implementation virtual void addCodeSnippet(std::string str); virtual void clearCodeSnippets(); diff --git a/src/app/qt/view/QtMainView.cpp b/src/app/qt/view/QtMainView.cpp new file mode 100644 index 00000000..4c0c7c83 --- /dev/null +++ b/src/app/qt/view/QtMainView.cpp @@ -0,0 +1,33 @@ +#include "qt/view/QtMainView.h" + +#include "qt/element/QtMainWindow.h" +#include "utility/logging/logging.h" + +QtMainView::QtMainView() +{ + m_window = new QtMainWindow(); + m_window->show(); +} + +QtMainView::~QtMainView() +{ +} + +void QtMainView::addView(View* view) +{ + m_views.push_back(view); + m_window->addView(view); +} + +void QtMainView::removeView(View* view) +{ + std::vector::iterator it = std::find(m_views.begin(), m_views.end(), view); + if (it == m_views.end()) + { + LOG_ERROR("View was not found."); + return; + } + + m_window->removeView(view); + m_views.erase(it); +} diff --git a/src/app/qt/view/QtMainView.h b/src/app/qt/view/QtMainView.h new file mode 100644 index 00000000..d536eeeb --- /dev/null +++ b/src/app/qt/view/QtMainView.h @@ -0,0 +1,27 @@ +#ifndef QT_MAIN_VIEW_H +#define QT_MAIN_VIEW_H + +#include +#include + +#include "component/view/MainView.h" + +class QtMainWindow; +class View; + +class QtMainView: public MainView +{ +public: + QtMainView(); + virtual ~QtMainView(); + + // ViewLayout implementation + void addView(View* view); + void removeView(View* view); + +private: + QtMainWindow* m_window; + std::vector m_views; +}; + +#endif // QT_MAIN_VIEW_H diff --git a/src/lib/Application.cpp b/src/lib/Application.cpp index 8a999a17..8cfba9cc 100644 --- a/src/lib/Application.cpp +++ b/src/lib/Application.cpp @@ -1,23 +1,23 @@ #include "Application.h" -#include "gui/GuiCanvas.h" +#include "component/view/MainView.h" +#include "gui/GuiFactory.h" #include "utility/logging/ConsoleLogger.h" #include "utility/logging/LogManager.h" -std::shared_ptr Application::create(std::shared_ptr guiElementFactory, std::shared_ptr window) +std::shared_ptr Application::create(GuiFactory* guiFactory) { std::shared_ptr consoleLogger = std::make_shared(); LogManager::getInstance()->addLogger(consoleLogger); - std::shared_ptr canvas = guiElementFactory->createCanvas(window); - canvas->setBackgroundColor(255, 0, 0, 255); - std::shared_ptr ptr(new Application()); - ptr->m_viewManager = std::make_shared(canvas); + ptr->m_codeAccess = std::make_shared(); ptr->m_graphAccess = std::make_shared(); + + ptr->m_mainView = guiFactory->createMainView(); ptr->m_componentManager = - ComponentManager::create(ptr->m_viewManager, guiElementFactory, ptr->m_codeAccess, ptr->m_graphAccess); + ComponentManager::create(guiFactory, ptr->m_mainView.get(), ptr->m_codeAccess, ptr->m_graphAccess); return ptr; } diff --git a/src/lib/Application.h b/src/lib/Application.h index af82c237..b3988125 100644 --- a/src/lib/Application.h +++ b/src/lib/Application.h @@ -4,16 +4,17 @@ #include #include "component/ComponentManager.h" -#include "component/view/ViewManager.h" #include "data/access/CodeAccess.h" #include "data/access/GraphAccess.h" -#include "gui/GuiElementFactory.h" #include "Project.h" +class GuiFactory; +class MainView; + class Application { public: - static std::shared_ptr create(std::shared_ptr guiElementFactory, std::shared_ptr window); + static std::shared_ptr create(GuiFactory* guiFactory); ~Application(); @@ -27,9 +28,8 @@ private: std::shared_ptr m_codeAccess; std::shared_ptr m_graphAccess; + std::shared_ptr m_mainView; std::shared_ptr m_componentManager; - std::shared_ptr m_viewManager; }; - #endif // APPLICATION_H diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index cd931d05..df182c5d 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -20,17 +20,15 @@ add_files( component/controller/CodeController.h component/controller/Controller.cpp component/controller/Controller.h - component/controller/DummyController.cpp - component/controller/DummyController.h component/view/CodeView.cpp component/view/CodeView.h - component/view/DummyView.cpp - component/view/DummyView.h + component/view/MainView.cpp + component/view/MainView.h component/view/View.cpp component/view/View.h - component/view/ViewManager.cpp - component/view/ViewManager.h + component/view/ViewLayout.cpp + component/view/ViewLayout.h component/Component.cpp component/Component.h @@ -78,27 +76,11 @@ add_files( data/Storage.cpp data/Storage.h - gui/GuiArea.cpp - gui/GuiArea.h - gui/GuiCanvas.cpp - gui/GuiCanvas.h - gui/GuiContainer.cpp - gui/GuiContainer.h - gui/GuiControl.cpp - gui/GuiControl.h - gui/GuiElement.cpp - gui/GuiElement.h - gui/GuiElementFactory.cpp - gui/GuiElementFactory.h - gui/GuiLayout.cpp - gui/GuiLayout.h - gui/GuiWindow.cpp - gui/GuiWindow.h - gui/WidgetWrapper.cpp - gui/WidgetWrapper.h + gui/GuiFactory.cpp + gui/GuiFactory.h + gui/GuiWidgetWrapper.cpp + gui/GuiWidgetWrapper.h - utility/logging/PlainFileLogger.cpp - utility/logging/PlainFileLogger.h utility/logging/ConsoleLogger.cpp utility/logging/ConsoleLogger.h utility/logging/FileLogger.cpp @@ -111,6 +93,8 @@ add_files( utility/logging/LogManagerImplementation.cpp utility/logging/LogManagerImplementation.h utility/logging/LogMessage.h + utility/logging/PlainFileLogger.cpp + utility/logging/PlainFileLogger.h utility/math/Color.h utility/math/Vector2.h diff --git a/src/lib/component/ComponentFactory.cpp b/src/lib/component/ComponentFactory.cpp index 4ca7e08b..1140b4d4 100644 --- a/src/lib/component/ComponentFactory.cpp +++ b/src/lib/component/ComponentFactory.cpp @@ -1,19 +1,19 @@ #include "component/ComponentFactory.h" #include "component/controller/CodeController.h" -#include "component/controller/DummyController.h" #include "component/view/CodeView.h" -#include "component/view/DummyView.h" +#include "component/view/ViewLayout.h" +#include "gui/GuiFactory.h" std::shared_ptr ComponentFactory::create( - std::shared_ptr viewManager, - std::shared_ptr guiElementFactory, + GuiFactory* guiFactory, + ViewLayout* viewLayout, std::shared_ptr codeAccess, std::shared_ptr graphAccess) { std::shared_ptr ptr(new ComponentFactory()); - ptr->m_viewManger = viewManager; - ptr->m_guiElementFactory = guiElementFactory; + ptr->m_guiFactory = guiFactory; + ptr->m_viewLayout = viewLayout; ptr->m_codeAccess = codeAccess; ptr->m_graphAccess = graphAccess; return ptr; @@ -23,18 +23,9 @@ ComponentFactory::~ComponentFactory() { } -std::shared_ptr ComponentFactory::createDummyComponent() -{ - std::shared_ptr view = std::make_shared(m_viewManger, m_guiElementFactory); - std::shared_ptr controller = std::make_shared(); - - std::shared_ptr component = std::make_shared(view, controller); - return component; -} - std::shared_ptr ComponentFactory::createCodeComponent() { - std::shared_ptr view = m_guiElementFactory->createCodeView(m_viewManger); + std::shared_ptr view = m_guiFactory->createCodeView(m_viewLayout); std::shared_ptr controller = std::make_shared(); std::shared_ptr component = std::make_shared(view, controller); diff --git a/src/lib/component/ComponentFactory.h b/src/lib/component/ComponentFactory.h index ba098cef..ef74b800 100644 --- a/src/lib/component/ComponentFactory.h +++ b/src/lib/component/ComponentFactory.h @@ -4,31 +4,31 @@ #include #include "component/Component.h" -#include "component/view/ViewManager.h" #include "data/access/CodeAccess.h" #include "data/access/GraphAccess.h" -#include "gui/GuiElementFactory.h" + +class GuiFactory; +class ViewLayout; class ComponentFactory { public: static std::shared_ptr create( - std::shared_ptr viewManager, - std::shared_ptr guiElementFactory, + GuiFactory* guiFactory, + ViewLayout* viewLayout, std::shared_ptr codeAccess, std::shared_ptr graphAccess); ~ComponentFactory(); - std::shared_ptr createDummyComponent(); std::shared_ptr createCodeComponent(); private: ComponentFactory(); ComponentFactory(const ComponentFactory&); - std::shared_ptr m_viewManger; - std::shared_ptr m_guiElementFactory; + GuiFactory* m_guiFactory; + ViewLayout* m_viewLayout; std::shared_ptr m_codeAccess; std::shared_ptr m_graphAccess; diff --git a/src/lib/component/ComponentManager.cpp b/src/lib/component/ComponentManager.cpp index 93bc88e7..d8e451f7 100644 --- a/src/lib/component/ComponentManager.cpp +++ b/src/lib/component/ComponentManager.cpp @@ -1,22 +1,25 @@ #include "component/ComponentManager.h" #include "component/view/CodeView.h" +#include "component/view/ViewLayout.h" std::shared_ptr ComponentManager::create( - std::shared_ptr viewManager, - std::shared_ptr guiElementFactory, + GuiFactory* guiFactory, + ViewLayout* viewLayout, std::shared_ptr codeAccess, std::shared_ptr graphAccess) { std::shared_ptr ptr(new ComponentManager()); - ptr->m_componentFactory = ComponentFactory::create(viewManager, guiElementFactory, codeAccess, graphAccess); + ptr->m_componentFactory = ComponentFactory::create(guiFactory, viewLayout, codeAccess, graphAccess); return ptr; } +ComponentManager::~ComponentManager() +{ +} + void ComponentManager::setup() { - m_components.push_back(m_componentFactory->createDummyComponent()); - std::shared_ptr codeComponent = m_componentFactory->createCodeComponent(); m_components.push_back(codeComponent); @@ -29,7 +32,3 @@ void ComponentManager::setup() ComponentManager::ComponentManager() { } - -ComponentManager::~ComponentManager() -{ -} diff --git a/src/lib/component/ComponentManager.h b/src/lib/component/ComponentManager.h index 905cc49f..7b8a945e 100644 --- a/src/lib/component/ComponentManager.h +++ b/src/lib/component/ComponentManager.h @@ -4,19 +4,20 @@ #include #include -#include "data/access/CodeAccess.h" -#include "data/access/GraphAccess.h" #include "component/Component.h" #include "component/ComponentFactory.h" -#include "component/view/ViewManager.h" -#include "gui/GuiElementFactory.h" +#include "data/access/CodeAccess.h" +#include "data/access/GraphAccess.h" + +class GuiFactory; +class ViewLayout; class ComponentManager { public: static std::shared_ptr create( - std::shared_ptr viewManager, - std::shared_ptr guiElementFactory, + GuiFactory* guiFactory, + ViewLayout* viewLayout, std::shared_ptr codeAccess, std::shared_ptr graphAccess); diff --git a/src/lib/component/controller/DummyController.cpp b/src/lib/component/controller/DummyController.cpp deleted file mode 100644 index 6435691e..00000000 --- a/src/lib/component/controller/DummyController.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "component/controller/DummyController.h" diff --git a/src/lib/component/controller/DummyController.h b/src/lib/component/controller/DummyController.h deleted file mode 100644 index e9a394ec..00000000 --- a/src/lib/component/controller/DummyController.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef DUMMY_CONTROLLER_H -#define DUMMY_CONTROLLER_H - -#include "component/controller/Controller.h" - -class DummyController: public Controller -{ -}; - - -#endif // DUMMY_CONTROLLER_H diff --git a/src/lib/component/view/CodeView.cpp b/src/lib/component/view/CodeView.cpp index 4b7f01b7..8641739f 100644 --- a/src/lib/component/view/CodeView.cpp +++ b/src/lib/component/view/CodeView.cpp @@ -1,10 +1,15 @@ #include "component/view/CodeView.h" -CodeView::CodeView(std::shared_ptr viewManager, std::shared_ptr rootElement) - : View(viewManager, rootElement, Vec2i(100, 100)) +CodeView::CodeView(ViewLayout* viewLayout) + : View(viewLayout, Vec2i(100, 100)) { } CodeView::~CodeView() { } + +std::string CodeView::getName() const +{ + return "CodeView"; +} diff --git a/src/lib/component/view/CodeView.h b/src/lib/component/view/CodeView.h index be91d3db..7d9a8105 100644 --- a/src/lib/component/view/CodeView.h +++ b/src/lib/component/view/CodeView.h @@ -1,18 +1,16 @@ #ifndef CODE_VIEW_H #define CODE_VIEW_H -#include - #include "component/view/View.h" -class GuiElementFactory; - class CodeView: public View { public: - CodeView(std::shared_ptr viewManager, std::shared_ptr rootElement); + CodeView(ViewLayout* viewLayout); virtual ~CodeView(); + virtual std::string getName() const; + virtual void addCodeSnippet(std::string str) = 0; virtual void clearCodeSnippets() = 0; }; diff --git a/src/lib/component/view/DummyView.cpp b/src/lib/component/view/DummyView.cpp deleted file mode 100644 index b231ccc7..00000000 --- a/src/lib/component/view/DummyView.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "component/view/DummyView.h" - -#include "gui/GuiArea.h" -#include "gui/GuiElementFactory.h" - -DummyView::DummyView(std::shared_ptr viewManager, std::shared_ptr guiElementFactory) - : View(viewManager, guiElementFactory->createArea(), Vec2i(100, 100)) - , m_guiElementFactory(guiElementFactory) -{ - getRootElement()->setBackgroundColor(0, 255, 0, 255); -} - -DummyView::~DummyView() -{ -} diff --git a/src/lib/component/view/DummyView.h b/src/lib/component/view/DummyView.h deleted file mode 100644 index ffaa3c5b..00000000 --- a/src/lib/component/view/DummyView.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef DUMMY_VIEW_H -#define DUMMY_VIEW_H - -#include "component/view/View.h" - -class GuiElementFactory; - -class DummyView: public View -{ -public: - DummyView(std::shared_ptr viewManager, std::shared_ptr guiElementFactory); - virtual ~DummyView(); - -private: - std::shared_ptr m_guiElementFactory; -}; - - -#endif // DUMMY_VIEW_H diff --git a/src/lib/component/view/MainView.cpp b/src/lib/component/view/MainView.cpp new file mode 100644 index 00000000..046c0401 --- /dev/null +++ b/src/lib/component/view/MainView.cpp @@ -0,0 +1,9 @@ +#include "component/view/MainView.h" + +MainView::MainView() +{ +} + +MainView::~MainView() +{ +} diff --git a/src/lib/component/view/MainView.h b/src/lib/component/view/MainView.h new file mode 100644 index 00000000..b1f90af4 --- /dev/null +++ b/src/lib/component/view/MainView.h @@ -0,0 +1,13 @@ +#ifndef MAIN_VIEW_H +#define MAIN_VIEW_H + +#include "component/view/ViewLayout.h" + +class MainView: public ViewLayout +{ +public: + MainView(); + virtual ~MainView(); +}; + +#endif // MAIN_VIEW_H diff --git a/src/lib/component/view/View.cpp b/src/lib/component/view/View.cpp index b9fdf0ae..e946e40b 100644 --- a/src/lib/component/view/View.cpp +++ b/src/lib/component/view/View.cpp @@ -1,22 +1,21 @@ #include "component/view/View.h" -#include "component/view/ViewManager.h" -View::View(std::shared_ptr viewManager, std::shared_ptr rootElement, const Vec2i& minSize) - : m_viewManager(viewManager) - , m_rootElement(rootElement) - , m_minSize(minSize) -{ - m_viewManager->addView(this); -} +#include "component/view/ViewLayout.h" +#include "gui/GuiWidgetWrapper.h" View::~View() { - m_viewManager->removeView(this); + m_viewLayout->removeView(this); } -std::shared_ptr View::getRootElement() +void View::setWidgetWrapper(std::shared_ptr widgetWrapper) { - return m_rootElement; + m_widgetWrapper = widgetWrapper; +} + +GuiWidgetWrapper* View::getWidgetWrapper() +{ + return m_widgetWrapper.get(); } int View::getMinWidth() const @@ -33,3 +32,10 @@ Vec2i View::getMinSize() const { return m_minSize; } + +View::View(ViewLayout* viewLayout, const Vec2i& minSize) + : m_viewLayout(viewLayout) + , m_widgetWrapper(nullptr) + , m_minSize(minSize) +{ +} diff --git a/src/lib/component/view/View.h b/src/lib/component/view/View.h index 539854f0..50bfa9ad 100644 --- a/src/lib/component/view/View.h +++ b/src/lib/component/view/View.h @@ -2,28 +2,54 @@ #define VIEW_H #include +#include +#include "component/view/ViewLayout.h" #include "utility/math/Vector2.h" -class GuiElement; -class ViewManager; +class GuiWidgetWrapper; +class ViewLayout; class View { public: - View(std::shared_ptr viewManager, std::shared_ptr rootElement, const Vec2i& minSize); + template + static std::shared_ptr create(ViewLayout* viewLayout); + virtual ~View(); - std::shared_ptr getRootElement(); + virtual std::string getName() const = 0; + + virtual void createWidgetWrapper() = 0; + void setWidgetWrapper(std::shared_ptr widgetWrapper); + GuiWidgetWrapper* getWidgetWrapper(); + + virtual void initGui() = 0; int getMinWidth() const; int getMinHeight() const; Vec2i getMinSize() const; +protected: + View(ViewLayout* viewLayout, const Vec2i& minSize); + private: - std::shared_ptr m_viewManager; - std::shared_ptr m_rootElement; + ViewLayout* const m_viewLayout; + std::shared_ptr m_widgetWrapper; Vec2i m_minSize; }; +template +std::shared_ptr View::create(ViewLayout* viewLayout) +{ + std::shared_ptr ptr = std::make_shared(viewLayout); + + ptr->createWidgetWrapper(); + ptr->initGui(); + + viewLayout->addView(ptr.get()); + + return ptr; +} + #endif // VIEW_H diff --git a/src/lib/component/view/ViewLayout.cpp b/src/lib/component/view/ViewLayout.cpp new file mode 100644 index 00000000..1b3c5ac9 --- /dev/null +++ b/src/lib/component/view/ViewLayout.cpp @@ -0,0 +1,9 @@ +#include "component/view/ViewLayout.h" + +ViewLayout::ViewLayout() +{ +} + +ViewLayout::~ViewLayout() +{ +} diff --git a/src/lib/component/view/ViewLayout.h b/src/lib/component/view/ViewLayout.h new file mode 100644 index 00000000..10a4d459 --- /dev/null +++ b/src/lib/component/view/ViewLayout.h @@ -0,0 +1,16 @@ +#ifndef VIEW_LAYOUT_H +#define VIEW_LAYOUT_H + +class View; + +class ViewLayout +{ +public: + ViewLayout(); + virtual ~ViewLayout(); + + virtual void addView(View* view) = 0; + virtual void removeView(View* view) = 0; +}; + +#endif // VIEW_LAYOUT_H diff --git a/src/lib/component/view/ViewManager.cpp b/src/lib/component/view/ViewManager.cpp deleted file mode 100644 index e95f40bf..00000000 --- a/src/lib/component/view/ViewManager.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include "component/view/ViewManager.h" - -#include - -#include "gui/GuiCanvas.h" -#include "View.h" - -ViewManager::ViewManager(std::shared_ptr canvas) - : m_canvas(canvas) -{ -} - -ViewManager::~ViewManager() -{ -} - -void ViewManager::addView(View* view) -{ - m_views.push_back(view); - m_canvas->addChild(view->getRootElement()); -} - -void ViewManager::removeView(View* view) -{ - std::vector::iterator it = std::find(m_views.begin(), m_views.end(), view); - if (it != m_views.end()) - { - m_canvas->removeChild((*it)->getRootElement()); - m_views.erase(it); - } -} diff --git a/src/lib/component/view/ViewManager.h b/src/lib/component/view/ViewManager.h deleted file mode 100644 index 3116bb6f..00000000 --- a/src/lib/component/view/ViewManager.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef VIEW_MANAGER_H -#define VIEW_MANAGER_H - -#include -#include - -class GuiCanvas; -class View; - -class ViewManager -{ -public: - ViewManager(std::shared_ptr canvas); - ~ViewManager(); - - void addView(View* view); - void removeView(View* view); - -private: - std::shared_ptr m_canvas; - std::vector m_views; -}; - - -#endif // VIEW_MANAGER_H diff --git a/src/lib/gui/GuiArea.cpp b/src/lib/gui/GuiArea.cpp deleted file mode 100644 index 1bf246f9..00000000 --- a/src/lib/gui/GuiArea.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "gui/GuiArea.h" - -GuiArea::GuiArea(std::shared_ptr widgetWrapper) - : GuiControl(widgetWrapper) -{ -} - -GuiArea::~GuiArea() -{ -} diff --git a/src/lib/gui/GuiArea.h b/src/lib/gui/GuiArea.h deleted file mode 100644 index 2369501c..00000000 --- a/src/lib/gui/GuiArea.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef GUI_AREA_H -#define GUI_AREA_H - -#include "gui/GuiControl.h" - -class GuiArea: public GuiControl -{ -public: - GuiArea(std::shared_ptr widgetWrapper); - virtual ~GuiArea(); - -}; - -#endif // GUI_AREA_H diff --git a/src/lib/gui/GuiCanvas.cpp b/src/lib/gui/GuiCanvas.cpp deleted file mode 100644 index 11b92e6d..00000000 --- a/src/lib/gui/GuiCanvas.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "gui/GuiCanvas.h" - -GuiCanvas::GuiCanvas(std::shared_ptr widgetWrapper) - : GuiContainer(widgetWrapper) -{ -} - -GuiCanvas::~GuiCanvas() -{ -} diff --git a/src/lib/gui/GuiCanvas.h b/src/lib/gui/GuiCanvas.h deleted file mode 100644 index 3d2326c6..00000000 --- a/src/lib/gui/GuiCanvas.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef GUI_CANVAS_H -#define GUI_CANVAS_H - -#include "gui/GuiContainer.h" - -class GuiCanvas: public GuiContainer -{ -public: - GuiCanvas(std::shared_ptr widgetWrapper); - virtual ~GuiCanvas(); -}; - -#endif // GUI_CANVAS_H diff --git a/src/lib/gui/GuiContainer.cpp b/src/lib/gui/GuiContainer.cpp deleted file mode 100644 index 27e06e3a..00000000 --- a/src/lib/gui/GuiContainer.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "gui/GuiContainer.h" - -GuiContainer::GuiContainer(std::shared_ptr widgetWrapper) - : GuiElement(widgetWrapper) -{ -} - -GuiContainer::~GuiContainer() -{ -} diff --git a/src/lib/gui/GuiContainer.h b/src/lib/gui/GuiContainer.h deleted file mode 100644 index 2fe50ce2..00000000 --- a/src/lib/gui/GuiContainer.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef GUI_CONTAINER_H -#define GUI_CONTAINER_H - -#include - -#include "gui/GuiElement.h" - -class GuiContainer: public GuiElement -{ -public: - GuiContainer(std::shared_ptr widgetWrapper); - virtual ~GuiContainer(); - - virtual void addChild(std::shared_ptr element) = 0; - virtual void removeChild(std::shared_ptr element) = 0; - -}; - -#endif // GUI_CONTAINER_H diff --git a/src/lib/gui/GuiControl.cpp b/src/lib/gui/GuiControl.cpp deleted file mode 100644 index 919c5437..00000000 --- a/src/lib/gui/GuiControl.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "gui/GuiControl.h" - -GuiControl::GuiControl(std::shared_ptr widgetWrapper) - : GuiElement(widgetWrapper) -{ -} - -GuiControl::~GuiControl() -{ -} diff --git a/src/lib/gui/GuiControl.h b/src/lib/gui/GuiControl.h deleted file mode 100644 index 7b9a9ed1..00000000 --- a/src/lib/gui/GuiControl.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef GUI_CONTROL_H -#define GUI_CONTROL_H - -#include "gui/GuiElement.h" - -class GuiControl: public GuiElement -{ -public: - GuiControl(std::shared_ptr widgetWrapper); - virtual ~GuiControl(); - -}; - -#endif // GUI_CONTROL_H diff --git a/src/lib/gui/GuiElement.cpp b/src/lib/gui/GuiElement.cpp deleted file mode 100644 index 40af9ee1..00000000 --- a/src/lib/gui/GuiElement.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "gui/GuiElement.h" - -#include "gui/WidgetWrapper.h" - -GuiElement::GuiElement(std::shared_ptr widgetWrapper) - : m_widgetWrapper(widgetWrapper) -{ -} - -GuiElement::~GuiElement() -{ -} - -void GuiElement::setBackgroundColor(int r, int g, int b, int a) -{ - setBackgroundColor(Colori(r, g, b, a)); -} - -std::shared_ptr GuiElement::getWidgetWrapper() -{ - return m_widgetWrapper; -} diff --git a/src/lib/gui/GuiElement.h b/src/lib/gui/GuiElement.h deleted file mode 100644 index 7a63a3de..00000000 --- a/src/lib/gui/GuiElement.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef GUI_ELEMENT_H -#define GUI_ELEMENT_H - -#include - -#include "utility/math/Color.h" -#include "utility/math/Vector2.h" - -class WidgetWrapper; - -class GuiElement -{ -public: - GuiElement(std::shared_ptr widgetWrapper); - virtual ~GuiElement(); - - virtual void setPosition(Vec2i position) = 0; - virtual Vec2i getPosition() const = 0; - virtual void setSize(Vec2i size) = 0; - virtual Vec2i getSize() const = 0; - - virtual void setBackgroundColor(Colori color) = 0; - void setBackgroundColor(int r, int g, int b, int a); - -//protected: - std::shared_ptr getWidgetWrapper(); - -private: - std::shared_ptr m_widgetWrapper; -}; - -#endif // GUI_ELEMENT_H diff --git a/src/lib/gui/GuiElementFactory.cpp b/src/lib/gui/GuiElementFactory.cpp deleted file mode 100644 index 7aa087fc..00000000 --- a/src/lib/gui/GuiElementFactory.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "gui/GuiElementFactory.h" - -GuiElementFactory::~GuiElementFactory() -{ -} diff --git a/src/lib/gui/GuiElementFactory.h b/src/lib/gui/GuiElementFactory.h deleted file mode 100644 index cf41731c..00000000 --- a/src/lib/gui/GuiElementFactory.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef GUI_ELEMENT_FACTORY_H -#define GUI_ELEMENT_FACTORY_H - -#include - -class CodeView; - -class GuiArea; -class GuiCanvas; -class GuiLayout; -class GuiWindow; - -class ViewManager; - -class GuiElementFactory -{ -public: - virtual ~GuiElementFactory(); - - virtual std::shared_ptr createArea() const = 0; - virtual std::shared_ptr createCanvas(std::shared_ptr window) const = 0; - virtual std::shared_ptr createLayout() const = 0; - - virtual std::shared_ptr createCodeView(std::shared_ptr viewManager) const = 0; -}; - -#endif // GUI_ELEMENT_FACTORY_H diff --git a/src/lib/gui/GuiFactory.cpp b/src/lib/gui/GuiFactory.cpp new file mode 100644 index 00000000..dd09abf6 --- /dev/null +++ b/src/lib/gui/GuiFactory.cpp @@ -0,0 +1,9 @@ +#include "gui/GuiFactory.h" + +GuiFactory::GuiFactory() +{ +} + +GuiFactory::~GuiFactory() +{ +} diff --git a/src/lib/gui/GuiFactory.h b/src/lib/gui/GuiFactory.h new file mode 100644 index 00000000..f0b35c93 --- /dev/null +++ b/src/lib/gui/GuiFactory.h @@ -0,0 +1,20 @@ +#ifndef GUI_FACTORY_H +#define GUI_FACTORY_H + +#include + +class CodeView; +class MainView; +class ViewLayout; + +class GuiFactory +{ +public: + GuiFactory(); + virtual ~GuiFactory(); + + virtual std::shared_ptr createMainView() const = 0; + virtual std::shared_ptr createCodeView(ViewLayout* viewLayout) const = 0; +}; + +#endif // GUI_FACTORY_H diff --git a/src/lib/gui/GuiLayout.cpp b/src/lib/gui/GuiLayout.cpp deleted file mode 100644 index 7682ecad..00000000 --- a/src/lib/gui/GuiLayout.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "gui/GuiLayout.h" - -GuiLayout::GuiLayout(std::shared_ptr widgetWrapper) - : GuiContainer(widgetWrapper) -{ -} - -GuiLayout::~GuiLayout() -{ -} diff --git a/src/lib/gui/GuiLayout.h b/src/lib/gui/GuiLayout.h deleted file mode 100644 index 5aaf609a..00000000 --- a/src/lib/gui/GuiLayout.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef GUI_LAYOUT_H -#define GUI_LAYOUT_H - -#include "gui/GuiContainer.h" - -class GuiLayout: public GuiContainer -{ -public: - enum LayoutDirectionType - { - LAYOUT_DIRECTION_HORIZONTAL, - LAYOUT_DIRECTION_VERTICAL - }; - - GuiLayout(std::shared_ptr widgetWrapper); - virtual ~GuiLayout(); - - virtual void setDirection(LayoutDirectionType direction) = 0; - - virtual void addChild(std::shared_ptr element) = 0; - virtual void removeChild(std::shared_ptr element) = 0; -}; - -#endif // GUI_LAYOUT_H diff --git a/src/lib/gui/GuiWidgetWrapper.cpp b/src/lib/gui/GuiWidgetWrapper.cpp new file mode 100644 index 00000000..78fe6f4f --- /dev/null +++ b/src/lib/gui/GuiWidgetWrapper.cpp @@ -0,0 +1,9 @@ +#include "gui/GuiWidgetWrapper.h" + +GuiWidgetWrapper::GuiWidgetWrapper() +{ +} + +GuiWidgetWrapper::~GuiWidgetWrapper() +{ +} diff --git a/src/lib/gui/GuiWidgetWrapper.h b/src/lib/gui/GuiWidgetWrapper.h new file mode 100644 index 00000000..4686aa3a --- /dev/null +++ b/src/lib/gui/GuiWidgetWrapper.h @@ -0,0 +1,11 @@ +#ifndef GUI_WIDGET_WRAPPER_H +#define GUI_WIDGET_WRAPPER_H + +class GuiWidgetWrapper +{ +public: + GuiWidgetWrapper(); + virtual ~GuiWidgetWrapper(); +}; + +#endif // GUI_WIDGET_WRAPPER_H diff --git a/src/lib/gui/GuiWindow.cpp b/src/lib/gui/GuiWindow.cpp deleted file mode 100644 index 3d5d85a4..00000000 --- a/src/lib/gui/GuiWindow.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "gui/GuiWindow.h" - -#include "gui/GuiCanvas.h" - -GuiWindow::GuiWindow() -{ -} - -GuiWindow::~GuiWindow() -{ -} diff --git a/src/lib/gui/GuiWindow.h b/src/lib/gui/GuiWindow.h deleted file mode 100644 index 8148f31b..00000000 --- a/src/lib/gui/GuiWindow.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef GUI_WINDOW_H -#define GUI_WINDOW_H - -#include - -class GuiCanvas; - -class GuiWindow -{ -public: - GuiWindow(); - virtual ~GuiWindow(); - - virtual void setCanvas(std::shared_ptr canvas) = 0; -}; - -#endif // GUI_WINDOW_H diff --git a/src/lib/gui/WidgetWrapper.cpp b/src/lib/gui/WidgetWrapper.cpp deleted file mode 100644 index c54d4cc0..00000000 --- a/src/lib/gui/WidgetWrapper.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "gui/WidgetWrapper.h" - -WidgetWrapper::WidgetWrapper() -{ -} - -WidgetWrapper::~WidgetWrapper() -{ -} diff --git a/src/lib/gui/WidgetWrapper.h b/src/lib/gui/WidgetWrapper.h deleted file mode 100644 index 4dbc0f8b..00000000 --- a/src/lib/gui/WidgetWrapper.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef WIDGET_WRAPPER_H -#define WIDGET_WRAPPER_H - -class WidgetWrapper -{ -public: - WidgetWrapper(); - virtual ~WidgetWrapper(); -}; - -#endif // WIDGET_WRAPPER_H