diff --git a/Applications/VisualBuilder/Makefile b/Applications/VisualBuilder/Makefile index 53b796ee35..c2bb96cce1 100644 --- a/Applications/VisualBuilder/Makefile +++ b/Applications/VisualBuilder/Makefile @@ -4,6 +4,7 @@ OBJS = \ VBWidgetRegistry.o \ VBWidgetPropertyModel.o \ VBProperty.o \ + VBPropertiesWindow.o \ main.o APP = VisualBuilder diff --git a/Applications/VisualBuilder/VBPropertiesWindow.cpp b/Applications/VisualBuilder/VBPropertiesWindow.cpp new file mode 100644 index 0000000000..c13d5baa55 --- /dev/null +++ b/Applications/VisualBuilder/VBPropertiesWindow.cpp @@ -0,0 +1,21 @@ +#include "VBPropertiesWindow.h" +#include +#include +#include + +VBPropertiesWindow::VBPropertiesWindow() +{ + set_title("Properties"); + set_rect(780, 200, 200, 280); + + auto* widget = new GWidget; + widget->set_fill_with_background_color(true); + widget->set_layout(make(Orientation::Vertical)); + set_main_widget(widget); + + m_table_view = new GTableView(widget); +} + +VBPropertiesWindow::~VBPropertiesWindow() +{ +} diff --git a/Applications/VisualBuilder/VBPropertiesWindow.h b/Applications/VisualBuilder/VBPropertiesWindow.h new file mode 100644 index 0000000000..a15dfefc12 --- /dev/null +++ b/Applications/VisualBuilder/VBPropertiesWindow.h @@ -0,0 +1,17 @@ +#pragma once + +#include + +class GTableView; + +class VBPropertiesWindow final : public GWindow { +public: + VBPropertiesWindow(); + virtual ~VBPropertiesWindow() override; + + GTableView& table_view() { return *m_table_view; } + const GTableView& table_view() const { return *m_table_view; } + +private: + GTableView* m_table_view { nullptr }; +}; diff --git a/Applications/VisualBuilder/main.cpp b/Applications/VisualBuilder/main.cpp index a7cb966964..b994315a36 100644 --- a/Applications/VisualBuilder/main.cpp +++ b/Applications/VisualBuilder/main.cpp @@ -9,25 +9,23 @@ #include "VBForm.h" #include "VBWidget.h" #include "VBWidgetPropertyModel.h" +#include "VBPropertiesWindow.h" #include #include #include #include static GWindow* make_toolbox_window(); -static GWindow* make_properties_window(); - -GTableView* g_property_table_view; int main(int argc, char** argv) { GApplication app(argc, argv); - auto* propbox = make_properties_window(); + auto* propbox = new VBPropertiesWindow; auto* form1 = new VBForm("Form1"); - form1->on_widget_selected = [] (VBWidget* widget) { - g_property_table_view->set_model(widget ? &widget->property_model() : nullptr); + form1->on_widget_selected = [propbox] (VBWidget* widget) { + propbox->table_view().set_model(widget ? &widget->property_model() : nullptr); }; auto menubar = make(); @@ -137,19 +135,3 @@ GWindow* make_toolbox_window() }; return window; } - -GWindow* make_properties_window() -{ - auto* window = new GWindow; - window->set_title("Properties"); - window->set_rect(780, 200, 200, 280); - - auto* widget = new GWidget; - widget->set_fill_with_background_color(true); - widget->set_layout(make(Orientation::Vertical)); - window->set_main_widget(widget); - - g_property_table_view = new GTableView(widget); - - return window; -}