From f25c524f2003c9f26345e6307a52d176172e1cc0 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 11 Apr 2019 06:32:27 +0200 Subject: [PATCH] VisualBuilder: Add GCheckBox and GLabel, and draw icons for them, too. --- Applications/VisualBuilder/VBWidget.cpp | 28 +++++++++++++++++++----- Applications/VisualBuilder/VBWidget.h | 1 + Applications/VisualBuilder/main.cpp | 15 +++++++++++++ Base/res/icons/vbwidgets/checkbox.png | Bin 0 -> 184 bytes Base/res/icons/vbwidgets/label.png | Bin 0 -> 162 bytes 5 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 Base/res/icons/vbwidgets/checkbox.png create mode 100644 Base/res/icons/vbwidgets/label.png diff --git a/Applications/VisualBuilder/VBWidget.cpp b/Applications/VisualBuilder/VBWidget.cpp index be7b966986..4bf5e9b377 100644 --- a/Applications/VisualBuilder/VBWidget.cpp +++ b/Applications/VisualBuilder/VBWidget.cpp @@ -6,18 +6,29 @@ #include #include #include +#include static GWidget* build_gwidget(WidgetType type, GWidget* parent) { switch (type) { case WidgetType::GWidget: return new GWidget(parent); - case WidgetType::GLabel: - return new GLabel(parent); - case WidgetType::GButton: - return new GButton(parent); - case WidgetType::GSpinBox: - return new GSpinBox(parent); + case WidgetType::GLabel: { + auto* label = new GLabel(parent); + label->set_text("label_1"); + return label; + } + case WidgetType::GButton: { + auto* button = new GButton(parent); + button->set_caption("button_1"); + return button; + } + case WidgetType::GSpinBox: { + auto* box = new GSpinBox(parent); + box->set_range(0, 100); + box->set_value(0); + return box; + } case WidgetType::GTextEditor: { auto* editor = new GTextEditor(GTextEditor::Type::MultiLine, parent); editor->set_ruler_visible(false); @@ -30,6 +41,11 @@ static GWidget* build_gwidget(WidgetType type, GWidget* parent) bar->set_value(50); return bar; } + case WidgetType::GCheckBox: { + auto* box = new GCheckBox(parent); + box->set_caption("checkbox_1"); + return box; + } default: ASSERT_NOT_REACHED(); return nullptr; diff --git a/Applications/VisualBuilder/VBWidget.h b/Applications/VisualBuilder/VBWidget.h index d0576bdf0c..c88305b5f1 100644 --- a/Applications/VisualBuilder/VBWidget.h +++ b/Applications/VisualBuilder/VBWidget.h @@ -31,6 +31,7 @@ enum class WidgetType { GSpinBox, GTextEditor, GProgressBar, + GCheckBox, }; class VBWidget : public Retainable, public Weakable { diff --git a/Applications/VisualBuilder/main.cpp b/Applications/VisualBuilder/main.cpp index 5926a57352..b1ed9ee5fc 100644 --- a/Applications/VisualBuilder/main.cpp +++ b/Applications/VisualBuilder/main.cpp @@ -66,6 +66,14 @@ GWindow* make_toolbox_window() widget->set_layout(make(Orientation::Vertical)); window->set_main_widget(widget); + auto* label_button = new GButton(widget); + label_button->set_tooltip("GLabel"); + label_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/label.png")); + label_button->on_click = [] (GButton&) { + if (auto* form = VBForm::current()) + form->insert_widget(WidgetType::GLabel); + }; + auto* button_button = new GButton(widget); button_button->set_tooltip("GButton"); button_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/button.png")); @@ -94,5 +102,12 @@ GWindow* make_toolbox_window() if (auto* form = VBForm::current()) form->insert_widget(WidgetType::GProgressBar); }; + auto* checkbox_button = new GButton(widget); + checkbox_button->set_tooltip("GCheckBox"); + checkbox_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/checkbox.png")); + checkbox_button->on_click = [] (GButton&) { + if (auto* form = VBForm::current()) + form->insert_widget(WidgetType::GCheckBox); + }; return window; } diff --git a/Base/res/icons/vbwidgets/checkbox.png b/Base/res/icons/vbwidgets/checkbox.png new file mode 100644 index 0000000000000000000000000000000000000000..192972a22ca0df7c7e21f5e8762eef94530a69ed GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yV2}b~4mJh`hLv7E=NK3m>OEZ?Lp+YZo#M@RK!L;M zU`77(v{xrzoLVByYHyl(C`Y!^qRU0^dTwDpW5XE{FHJ$?^4CW%J`3vNWODfGa&|&- zSof8vQ2&T?b7r!6&Sf-h=&0e23fxgBWt{QNZkprT-?B3-ca?{1-Z=Bw3U+HQrUa>D nYxnz!-Fkjk{BhCWVE&1-)YR)OF7q)kFfe$!`njxgN@xNAZDK^? literal 0 HcmV?d00001 diff --git a/Base/res/icons/vbwidgets/label.png b/Base/res/icons/vbwidgets/label.png new file mode 100644 index 0000000000000000000000000000000000000000..b6eb3a49f68ad426fd9f0465a23c6dc8f4f95301 GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yV2}b~4mJh`hLv7E=NK3mGCf@!Lp+YZz3Rwyz<|Rg z@awaVKOb+=d1NFZ_hN#}9jm>co~~)VxBlOf>38>OBuniVWS=C!b&{h|V3CtV zpmMk1uEi=ZSH|iec6sHtuwQ RgMop8!PC{xWt~$(695v#KcoNv literal 0 HcmV?d00001