mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 18:37:35 +00:00
VisualBuilder: Add GRadioButton to the widget repertoire.
This commit is contained in:
parent
b0d8dba16d
commit
40ca3b019f
4 changed files with 45 additions and 16 deletions
|
@ -1,18 +1,19 @@
|
||||||
#include "VBWidget.h"
|
|
||||||
#include "VBForm.h"
|
#include "VBForm.h"
|
||||||
#include "VBProperty.h"
|
#include "VBProperty.h"
|
||||||
#include "VBWidgetRegistry.h"
|
#include "VBWidget.h"
|
||||||
#include "VBWidgetPropertyModel.h"
|
#include "VBWidgetPropertyModel.h"
|
||||||
#include <LibGUI/GPainter.h>
|
#include "VBWidgetRegistry.h"
|
||||||
#include <LibGUI/GLabel.h>
|
|
||||||
#include <LibGUI/GButton.h>
|
#include <LibGUI/GButton.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/GScrollBar.h>
|
||||||
|
#include <LibGUI/GSlider.h>
|
||||||
#include <LibGUI/GSpinBox.h>
|
#include <LibGUI/GSpinBox.h>
|
||||||
#include <LibGUI/GTextEditor.h>
|
#include <LibGUI/GTextEditor.h>
|
||||||
#include <LibGUI/GGroupBox.h>
|
|
||||||
#include <LibGUI/GCheckBox.h>
|
|
||||||
#include <LibGUI/GProgressBar.h>
|
|
||||||
#include <LibGUI/GSlider.h>
|
|
||||||
|
|
||||||
VBWidget::VBWidget(VBWidgetType type, VBForm& form)
|
VBWidget::VBWidget(VBWidgetType type, VBForm& form)
|
||||||
: m_type(type)
|
: m_type(type)
|
||||||
|
@ -161,9 +162,14 @@ void VBWidget::setup_properties()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_type == VBWidgetType::GCheckBox) {
|
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);
|
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()
|
void VBWidget::synchronize_properties()
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
#include "VBWidgetRegistry.h"
|
|
||||||
#include "VBProperty.h"
|
#include "VBProperty.h"
|
||||||
#include <LibGUI/GLabel.h>
|
#include "VBWidgetRegistry.h"
|
||||||
#include <LibGUI/GButton.h>
|
#include <LibGUI/GButton.h>
|
||||||
|
#include <LibGUI/GCheckBox.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/GSpinBox.h>
|
||||||
#include <LibGUI/GTextEditor.h>
|
#include <LibGUI/GTextEditor.h>
|
||||||
#include <LibGUI/GProgressBar.h>
|
|
||||||
#include <LibGUI/GCheckBox.h>
|
|
||||||
#include <LibGUI/GScrollBar.h>
|
|
||||||
#include <LibGUI/GGroupBox.h>
|
|
||||||
#include <LibGUI/GSlider.h>
|
|
||||||
|
|
||||||
static String to_class_name(VBWidgetType type)
|
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::GTextEditor: return "GTextEditor";
|
||||||
case VBWidgetType::GProgressBar: return "GProgressBar";
|
case VBWidgetType::GProgressBar: return "GProgressBar";
|
||||||
case VBWidgetType::GCheckBox: return "GCheckBox";
|
case VBWidgetType::GCheckBox: return "GCheckBox";
|
||||||
|
case VBWidgetType::GRadioButton: return "GRadioButton";
|
||||||
case VBWidgetType::GScrollBar: return "GScrollBar";
|
case VBWidgetType::GScrollBar: return "GScrollBar";
|
||||||
case VBWidgetType::GGroupBox: return "GGroupBox";
|
case VBWidgetType::GGroupBox: return "GGroupBox";
|
||||||
case VBWidgetType::GSlider: return "GSlider";
|
case VBWidgetType::GSlider: return "GSlider";
|
||||||
|
@ -76,6 +78,8 @@ static GWidget* build_gwidget(VBWidgetType type, GWidget* parent)
|
||||||
box->set_text("checkbox_1");
|
box->set_text("checkbox_1");
|
||||||
return box;
|
return box;
|
||||||
}
|
}
|
||||||
|
case VBWidgetType::GRadioButton:
|
||||||
|
return new GRadioButton("radio_1", parent);
|
||||||
default:
|
default:
|
||||||
ASSERT_NOT_REACHED();
|
ASSERT_NOT_REACHED();
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
|
@ -10,6 +10,7 @@ enum class VBWidgetType
|
||||||
GTextEditor,
|
GTextEditor,
|
||||||
GProgressBar,
|
GProgressBar,
|
||||||
GCheckBox,
|
GCheckBox,
|
||||||
|
GRadioButton,
|
||||||
GScrollBar,
|
GScrollBar,
|
||||||
GGroupBox,
|
GGroupBox,
|
||||||
GSlider,
|
GSlider,
|
||||||
|
|
|
@ -80,9 +80,11 @@ GWindow* make_toolbox_window()
|
||||||
auto* widget = new GWidget;
|
auto* widget = new GWidget;
|
||||||
widget->set_fill_with_background_color(true);
|
widget->set_fill_with_background_color(true);
|
||||||
widget->set_layout(make<GBoxLayout>(Orientation::Vertical));
|
widget->set_layout(make<GBoxLayout>(Orientation::Vertical));
|
||||||
|
widget->layout()->set_spacing(0);
|
||||||
window->set_main_widget(widget);
|
window->set_main_widget(widget);
|
||||||
|
|
||||||
auto* label_button = new GButton(widget);
|
auto* label_button = new GButton(widget);
|
||||||
|
label_button->set_button_style(ButtonStyle::CoolBar);
|
||||||
label_button->set_tooltip("GLabel");
|
label_button->set_tooltip("GLabel");
|
||||||
label_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/label.png"));
|
label_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/label.png"));
|
||||||
label_button->on_click = [] (GButton&) {
|
label_button->on_click = [] (GButton&) {
|
||||||
|
@ -91,6 +93,7 @@ GWindow* make_toolbox_window()
|
||||||
};
|
};
|
||||||
|
|
||||||
auto* button_button = new GButton(widget);
|
auto* button_button = new GButton(widget);
|
||||||
|
button_button->set_button_style(ButtonStyle::CoolBar);
|
||||||
button_button->set_tooltip("GButton");
|
button_button->set_tooltip("GButton");
|
||||||
button_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/button.png"));
|
button_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/button.png"));
|
||||||
button_button->on_click = [] (GButton&) {
|
button_button->on_click = [] (GButton&) {
|
||||||
|
@ -98,6 +101,7 @@ GWindow* make_toolbox_window()
|
||||||
form->insert_widget(VBWidgetType::GButton);
|
form->insert_widget(VBWidgetType::GButton);
|
||||||
};
|
};
|
||||||
auto* spinbox_button = new GButton(widget);
|
auto* spinbox_button = new GButton(widget);
|
||||||
|
spinbox_button->set_button_style(ButtonStyle::CoolBar);
|
||||||
spinbox_button->set_tooltip("GSpinBox");
|
spinbox_button->set_tooltip("GSpinBox");
|
||||||
spinbox_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/spinbox.png"));
|
spinbox_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/spinbox.png"));
|
||||||
spinbox_button->on_click = [] (GButton&) {
|
spinbox_button->on_click = [] (GButton&) {
|
||||||
|
@ -105,6 +109,7 @@ GWindow* make_toolbox_window()
|
||||||
form->insert_widget(VBWidgetType::GSpinBox);
|
form->insert_widget(VBWidgetType::GSpinBox);
|
||||||
};
|
};
|
||||||
auto* editor_button = new GButton(widget);
|
auto* editor_button = new GButton(widget);
|
||||||
|
editor_button->set_button_style(ButtonStyle::CoolBar);
|
||||||
editor_button->set_tooltip("GTextEditor");
|
editor_button->set_tooltip("GTextEditor");
|
||||||
editor_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/textbox.png"));
|
editor_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/textbox.png"));
|
||||||
editor_button->on_click = [] (GButton&) {
|
editor_button->on_click = [] (GButton&) {
|
||||||
|
@ -112,6 +117,7 @@ GWindow* make_toolbox_window()
|
||||||
form->insert_widget(VBWidgetType::GTextEditor);
|
form->insert_widget(VBWidgetType::GTextEditor);
|
||||||
};
|
};
|
||||||
auto* progress_bar_button = new GButton(widget);
|
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_tooltip("GProgressBar");
|
||||||
progress_bar_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/progressbar.png"));
|
progress_bar_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/progressbar.png"));
|
||||||
progress_bar_button->on_click = [] (GButton&) {
|
progress_bar_button->on_click = [] (GButton&) {
|
||||||
|
@ -119,6 +125,7 @@ GWindow* make_toolbox_window()
|
||||||
form->insert_widget(VBWidgetType::GProgressBar);
|
form->insert_widget(VBWidgetType::GProgressBar);
|
||||||
};
|
};
|
||||||
auto* slider_button = new GButton(widget);
|
auto* slider_button = new GButton(widget);
|
||||||
|
slider_button->set_button_style(ButtonStyle::CoolBar);
|
||||||
slider_button->set_tooltip("GSlider");
|
slider_button->set_tooltip("GSlider");
|
||||||
slider_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/slider.png"));
|
slider_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/slider.png"));
|
||||||
slider_button->on_click = [] (GButton&) {
|
slider_button->on_click = [] (GButton&) {
|
||||||
|
@ -126,13 +133,23 @@ GWindow* make_toolbox_window()
|
||||||
form->insert_widget(VBWidgetType::GSlider);
|
form->insert_widget(VBWidgetType::GSlider);
|
||||||
};
|
};
|
||||||
auto* checkbox_button = new GButton(widget);
|
auto* checkbox_button = new GButton(widget);
|
||||||
|
checkbox_button->set_button_style(ButtonStyle::CoolBar);
|
||||||
checkbox_button->set_tooltip("GCheckBox");
|
checkbox_button->set_tooltip("GCheckBox");
|
||||||
checkbox_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/checkbox.png"));
|
checkbox_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/checkbox.png"));
|
||||||
checkbox_button->on_click = [] (GButton&) {
|
checkbox_button->on_click = [] (GButton&) {
|
||||||
if (auto* form = VBForm::current())
|
if (auto* form = VBForm::current())
|
||||||
form->insert_widget(VBWidgetType::GCheckBox);
|
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);
|
auto* scrollbar_button = new GButton(widget);
|
||||||
|
scrollbar_button->set_button_style(ButtonStyle::CoolBar);
|
||||||
scrollbar_button->set_tooltip("GScrollBar");
|
scrollbar_button->set_tooltip("GScrollBar");
|
||||||
scrollbar_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/scrollbar.png"));
|
scrollbar_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/scrollbar.png"));
|
||||||
scrollbar_button->on_click = [] (GButton&) {
|
scrollbar_button->on_click = [] (GButton&) {
|
||||||
|
@ -140,6 +157,7 @@ GWindow* make_toolbox_window()
|
||||||
form->insert_widget(VBWidgetType::GScrollBar);
|
form->insert_widget(VBWidgetType::GScrollBar);
|
||||||
};
|
};
|
||||||
auto* groupbox_button = new GButton(widget);
|
auto* groupbox_button = new GButton(widget);
|
||||||
|
groupbox_button->set_button_style(ButtonStyle::CoolBar);
|
||||||
groupbox_button->set_tooltip("GGroupBox");
|
groupbox_button->set_tooltip("GGroupBox");
|
||||||
groupbox_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/groupbox.png"));
|
groupbox_button->set_icon(GraphicsBitmap::load_from_file("/res/icons/vbwidgets/groupbox.png"));
|
||||||
groupbox_button->on_click = [] (GButton&) {
|
groupbox_button->on_click = [] (GButton&) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue