diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-06-01 00:23:31 +0200 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-06-01 00:23:31 +0200 |
commit | 40ca3b019f293977bbb3c1b673e952c23b6e3264 (patch) | |
tree | b0ef917add5712ef32839956b96bc119615d24a3 | |
parent | b0d8dba16da63407a268938e8c52b0fdbe46a247 (diff) | |
download | serenity-40ca3b019f293977bbb3c1b673e952c23b6e3264.zip |
VisualBuilder: Add GRadioButton to the widget repertoire.
-rw-r--r-- | DevTools/VisualBuilder/VBWidget.cpp | 24 | ||||
-rw-r--r-- | DevTools/VisualBuilder/VBWidgetRegistry.cpp | 16 | ||||
-rw-r--r-- | DevTools/VisualBuilder/VBWidgetType.h | 1 | ||||
-rw-r--r-- | DevTools/VisualBuilder/main.cpp | 18 |
4 files changed, 44 insertions, 15 deletions
diff --git a/DevTools/VisualBuilder/VBWidget.cpp b/DevTools/VisualBuilder/VBWidget.cpp index 084cddbaf4..49ab472c3a 100644 --- a/DevTools/VisualBuilder/VBWidget.cpp +++ b/DevTools/VisualBuilder/VBWidget.cpp @@ -1,18 +1,19 @@ -#include "VBWidget.h" #include "VBForm.h" #include "VBProperty.h" -#include "VBWidgetRegistry.h" +#include "VBWidget.h" #include "VBWidgetPropertyModel.h" -#include <LibGUI/GPainter.h> -#include <LibGUI/GLabel.h> +#include "VBWidgetRegistry.h" #include <LibGUI/GButton.h> -#include <LibGUI/GScrollBar.h> -#include <LibGUI/GSpinBox.h> -#include <LibGUI/GTextEditor.h> -#include <LibGUI/GGroupBox.h> #include <LibGUI/GCheckBox.h> +#include <LibGUI/GGroupBox.h> +#include <LibGUI/GLabel.h> +#include <LibGUI/GPainter.h> #include <LibGUI/GProgressBar.h> +#include <LibGUI/GRadioButton.h> +#include <LibGUI/GScrollBar.h> #include <LibGUI/GSlider.h> +#include <LibGUI/GSpinBox.h> +#include <LibGUI/GTextEditor.h> VBWidget::VBWidget(VBWidgetType type, VBForm& form) : m_type(type) @@ -161,9 +162,14 @@ void VBWidget::setup_properties() } if (m_type == VBWidgetType::GCheckBox) { - VB_ADD_PROPERTY(GCheckBox, "caption", text, set_text, string); + VB_ADD_PROPERTY(GCheckBox, "text", text, set_text, string); VB_ADD_PROPERTY(GCheckBox, "checked", is_checked, set_checked, bool); } + + if (m_type == VBWidgetType::GRadioButton) { + VB_ADD_PROPERTY(GRadioButton, "text", text, set_text, string); + VB_ADD_PROPERTY(GRadioButton, "checked", is_checked, set_checked, bool); + } } void VBWidget::synchronize_properties() diff --git a/DevTools/VisualBuilder/VBWidgetRegistry.cpp b/DevTools/VisualBuilder/VBWidgetRegistry.cpp index 1f38e5de7c..19b6f3ec58 100644 --- a/DevTools/VisualBuilder/VBWidgetRegistry.cpp +++ b/DevTools/VisualBuilder/VBWidgetRegistry.cpp @@ -1,14 +1,15 @@ -#include "VBWidgetRegistry.h" #include "VBProperty.h" -#include <LibGUI/GLabel.h> +#include "VBWidgetRegistry.h" #include <LibGUI/GButton.h> -#include <LibGUI/GSpinBox.h> -#include <LibGUI/GTextEditor.h> -#include <LibGUI/GProgressBar.h> #include <LibGUI/GCheckBox.h> -#include <LibGUI/GScrollBar.h> #include <LibGUI/GGroupBox.h> +#include <LibGUI/GLabel.h> +#include <LibGUI/GProgressBar.h> +#include <LibGUI/GRadioButton.h> +#include <LibGUI/GScrollBar.h> #include <LibGUI/GSlider.h> +#include <LibGUI/GSpinBox.h> +#include <LibGUI/GTextEditor.h> static String to_class_name(VBWidgetType type) { @@ -20,6 +21,7 @@ static String to_class_name(VBWidgetType type) case VBWidgetType::GTextEditor: return "GTextEditor"; case VBWidgetType::GProgressBar: return "GProgressBar"; case VBWidgetType::GCheckBox: return "GCheckBox"; + case VBWidgetType::GRadioButton: return "GRadioButton"; case VBWidgetType::GScrollBar: return "GScrollBar"; case VBWidgetType::GGroupBox: return "GGroupBox"; case VBWidgetType::GSlider: return "GSlider"; @@ -76,6 +78,8 @@ static GWidget* build_gwidget(VBWidgetType type, GWidget* parent) box->set_text("checkbox_1"); return box; } + case VBWidgetType::GRadioButton: + return new GRadioButton("radio_1", parent); default: ASSERT_NOT_REACHED(); return nullptr; diff --git a/DevTools/VisualBuilder/VBWidgetType.h b/DevTools/VisualBuilder/VBWidgetType.h index a816a7cf52..2f6c8a6b7c 100644 --- a/DevTools/VisualBuilder/VBWidgetType.h +++ b/DevTools/VisualBuilder/VBWidgetType.h @@ -10,6 +10,7 @@ enum class VBWidgetType GTextEditor, GProgressBar, GCheckBox, + GRadioButton, GScrollBar, GGroupBox, GSlider, diff --git a/DevTools/VisualBuilder/main.cpp b/DevTools/VisualBuilder/main.cpp index 03b32576c3..d69b42a269 100644 --- a/DevTools/VisualBuilder/main.cpp +++ b/DevTools/VisualBuilder/main.cpp @@ -80,9 +80,11 @@ GWindow* make_toolbox_window() auto* widget = new GWidget; widget->set_fill_with_background_color(true); widget->set_layout(make<GBoxLayout>(Orientation::Vertical)); + widget->layout()->set_spacing(0); window->set_main_widget(widget); auto* label_button = new GButton(widget); + label_button->set_button_style(ButtonStyle::CoolBar); label_button->set_tooltip("GLabel"); label_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/label.png")); label_button->on_click = [] (GButton&) { @@ -91,6 +93,7 @@ GWindow* make_toolbox_window() }; auto* button_button = new GButton(widget); + button_button->set_button_style(ButtonStyle::CoolBar); button_button->set_tooltip("GButton"); button_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/button.png")); button_button->on_click = [] (GButton&) { @@ -98,6 +101,7 @@ GWindow* make_toolbox_window() form->insert_widget(VBWidgetType::GButton); }; auto* spinbox_button = new GButton(widget); + spinbox_button->set_button_style(ButtonStyle::CoolBar); spinbox_button->set_tooltip("GSpinBox"); spinbox_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/spinbox.png")); spinbox_button->on_click = [] (GButton&) { @@ -105,6 +109,7 @@ GWindow* make_toolbox_window() form->insert_widget(VBWidgetType::GSpinBox); }; auto* editor_button = new GButton(widget); + editor_button->set_button_style(ButtonStyle::CoolBar); editor_button->set_tooltip("GTextEditor"); editor_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/textbox.png")); editor_button->on_click = [] (GButton&) { @@ -112,6 +117,7 @@ GWindow* make_toolbox_window() form->insert_widget(VBWidgetType::GTextEditor); }; auto* progress_bar_button = new GButton(widget); + progress_bar_button->set_button_style(ButtonStyle::CoolBar); progress_bar_button->set_tooltip("GProgressBar"); progress_bar_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/progressbar.png")); progress_bar_button->on_click = [] (GButton&) { @@ -119,6 +125,7 @@ GWindow* make_toolbox_window() form->insert_widget(VBWidgetType::GProgressBar); }; auto* slider_button = new GButton(widget); + slider_button->set_button_style(ButtonStyle::CoolBar); slider_button->set_tooltip("GSlider"); slider_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/slider.png")); slider_button->on_click = [] (GButton&) { @@ -126,13 +133,23 @@ GWindow* make_toolbox_window() form->insert_widget(VBWidgetType::GSlider); }; auto* checkbox_button = new GButton(widget); + checkbox_button->set_button_style(ButtonStyle::CoolBar); 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(VBWidgetType::GCheckBox); }; + auto* radiobutton_button = new GButton(widget); + radiobutton_button->set_button_style(ButtonStyle::CoolBar); + radiobutton_button->set_tooltip("GRadioButton"); + radiobutton_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/filled-radio-circle.png")); + radiobutton_button->on_click = [] (GButton&) { + if (auto* form = VBForm::current()) + form->insert_widget(VBWidgetType::GRadioButton); + }; auto* scrollbar_button = new GButton(widget); + scrollbar_button->set_button_style(ButtonStyle::CoolBar); scrollbar_button->set_tooltip("GScrollBar"); scrollbar_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/scrollbar.png")); scrollbar_button->on_click = [] (GButton&) { @@ -140,6 +157,7 @@ GWindow* make_toolbox_window() form->insert_widget(VBWidgetType::GScrollBar); }; auto* groupbox_button = new GButton(widget); + groupbox_button->set_button_style(ButtonStyle::CoolBar); groupbox_button->set_tooltip("GGroupBox"); groupbox_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/groupbox.png")); groupbox_button->on_click = [] (GButton&) { |