summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-06-01 00:23:31 +0200
committerAndreas Kling <awesomekling@gmail.com>2019-06-01 00:23:31 +0200
commit40ca3b019f293977bbb3c1b673e952c23b6e3264 (patch)
treeb0ef917add5712ef32839956b96bc119615d24a3
parentb0d8dba16da63407a268938e8c52b0fdbe46a247 (diff)
downloadserenity-40ca3b019f293977bbb3c1b673e952c23b6e3264.zip
VisualBuilder: Add GRadioButton to the widget repertoire.
-rw-r--r--DevTools/VisualBuilder/VBWidget.cpp24
-rw-r--r--DevTools/VisualBuilder/VBWidgetRegistry.cpp16
-rw-r--r--DevTools/VisualBuilder/VBWidgetType.h1
-rw-r--r--DevTools/VisualBuilder/main.cpp18
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&) {