1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:07:47 +00:00

LibGUI: Convert GSlider to ObjectPtr

This commit is contained in:
Andreas Kling 2019-09-21 16:33:53 +02:00
parent a50cfc5f1f
commit 7aaad27778
4 changed files with 11 additions and 9 deletions

View file

@ -121,7 +121,7 @@ GWindow* create_settings_window(TerminalWidget& terminal, RefPtr<CConfigFile> co
slider_container->set_fill_with_background_color(true); slider_container->set_fill_with_background_color(true);
slider_container->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed); slider_container->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
slider_container->set_preferred_size(100, 50); slider_container->set_preferred_size(100, 50);
auto* slider = new GSlider(Orientation::Horizontal, slider_container); auto slider = GSlider::construct(Orientation::Horizontal, slider_container);
slider->set_fill_with_background_color(true); slider->set_fill_with_background_color(true);
slider->set_background_color(Color::WarmGray); slider->set_background_color(Color::WarmGray);

View file

@ -70,19 +70,19 @@ int main(int argc, char** argv)
vertical_slider_container->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed); vertical_slider_container->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
vertical_slider_container->set_preferred_size(0, 100); vertical_slider_container->set_preferred_size(0, 100);
vertical_slider_container->set_layout(make<GBoxLayout>(Orientation::Horizontal)); vertical_slider_container->set_layout(make<GBoxLayout>(Orientation::Horizontal));
auto* vslider1 = new GSlider(Orientation::Vertical, vertical_slider_container); auto vslider1 = GSlider::construct(Orientation::Vertical, vertical_slider_container);
(void)vslider1; (void)vslider1;
auto* vslider2 = new GSlider(Orientation::Vertical, vertical_slider_container); auto vslider2 = GSlider::construct(Orientation::Vertical, vertical_slider_container);
vslider2->set_enabled(false); vslider2->set_enabled(false);
auto* vslider3 = new GSlider(Orientation::Vertical, vertical_slider_container); auto vslider3 = GSlider::construct(Orientation::Vertical, vertical_slider_container);
vslider3->set_max(5); vslider3->set_max(5);
vslider3->set_knob_size_mode(GSlider::KnobSizeMode::Proportional); vslider3->set_knob_size_mode(GSlider::KnobSizeMode::Proportional);
auto* slider1 = new GSlider(Orientation::Horizontal, main_widget); auto slider1 = GSlider::construct(Orientation::Horizontal, main_widget);
(void)slider1; (void)slider1;
auto* slider2 = new GSlider(Orientation::Horizontal, main_widget); auto slider2 = GSlider::construct(Orientation::Horizontal, main_widget);
slider2->set_enabled(false); slider2->set_enabled(false);
auto* slider3 = new GSlider(Orientation::Horizontal, main_widget); auto slider3 = GSlider::construct(Orientation::Horizontal, main_widget);
slider3->set_max(5); slider3->set_max(5);
slider3->set_knob_size_mode(GSlider::KnobSizeMode::Proportional); slider3->set_knob_size_mode(GSlider::KnobSizeMode::Proportional);

View file

@ -107,7 +107,7 @@ static GWidget* build_gwidget(VBWidgetType type, GWidget* parent)
return bar; return bar;
} }
case VBWidgetType::GSlider: { case VBWidgetType::GSlider: {
auto* slider = new GSlider(Orientation::Horizontal, parent); auto slider = GSlider::construct(Orientation::Horizontal, parent);
slider->set_range(0, 100); slider->set_range(0, 100);
slider->set_value(50); slider->set_value(50);
return slider; return slider;

View file

@ -3,13 +3,13 @@
#include <LibGUI/GWidget.h> #include <LibGUI/GWidget.h>
class GSlider : public GWidget { class GSlider : public GWidget {
C_OBJECT(GSlider)
public: public:
enum class KnobSizeMode { enum class KnobSizeMode {
Fixed, Fixed,
Proportional, Proportional,
}; };
GSlider(Orientation, GWidget*);
virtual ~GSlider() override; virtual ~GSlider() override;
Orientation orientation() const { return m_orientation; } Orientation orientation() const { return m_orientation; }
@ -43,6 +43,8 @@ public:
Function<void(int)> on_value_changed; Function<void(int)> on_value_changed;
protected: protected:
GSlider(Orientation, GWidget*);
virtual void paint_event(GPaintEvent&) override; virtual void paint_event(GPaintEvent&) override;
virtual void mousedown_event(GMouseEvent&) override; virtual void mousedown_event(GMouseEvent&) override;
virtual void mousemove_event(GMouseEvent&) override; virtual void mousemove_event(GMouseEvent&) override;