浏览代码

LibGUI: Convert GScrollBar to ObjectPtr

Andreas Kling 5 年之前
父节点
当前提交
bce58bbbca

+ 1 - 1
Applications/Terminal/TerminalWidget.cpp

@@ -32,7 +32,7 @@ TerminalWidget::TerminalWidget(int ptm_fd, RefPtr<CConfigFile> config)
     set_frame_shadow(FrameShadow::Sunken);
     set_frame_shadow(FrameShadow::Sunken);
     set_frame_thickness(2);
     set_frame_thickness(2);
 
 
-    m_scrollbar = new GScrollBar(Orientation::Vertical, this);
+    m_scrollbar = GScrollBar::construct(Orientation::Vertical, this);
     m_scrollbar->set_relative_rect(0, 0, 16, 0);
     m_scrollbar->set_relative_rect(0, 0, 16, 0);
     m_scrollbar->on_change = [this](int) {
     m_scrollbar->on_change = [this](int) {
         force_repaint();
         force_repaint();

+ 1 - 1
Applications/Terminal/TerminalWidget.h

@@ -100,5 +100,5 @@ private:
     ObjectPtr<CTimer> m_visual_beep_timer;
     ObjectPtr<CTimer> m_visual_beep_timer;
     RefPtr<CConfigFile> m_config;
     RefPtr<CConfigFile> m_config;
 
 
-    GScrollBar* m_scrollbar { nullptr };
+    ObjectPtr<GScrollBar> m_scrollbar;
 };
 };

+ 2 - 2
Demos/WidgetGallery/main.cpp

@@ -86,13 +86,13 @@ int main(int argc, char** argv)
     slider3->set_max(5);
     slider3->set_max(5);
     slider3->set_knob_size_mode(GSlider::KnobSizeMode::Proportional);
     slider3->set_knob_size_mode(GSlider::KnobSizeMode::Proportional);
 
 
-    auto* scrollbar1 = new GScrollBar(Orientation::Horizontal, main_widget);
+    auto scrollbar1 = GScrollBar::construct(Orientation::Horizontal, main_widget);
     scrollbar1->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
     scrollbar1->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
     scrollbar1->set_preferred_size(0, 16);
     scrollbar1->set_preferred_size(0, 16);
     scrollbar1->set_min(0);
     scrollbar1->set_min(0);
     scrollbar1->set_max(100);
     scrollbar1->set_max(100);
     scrollbar1->set_value(50);
     scrollbar1->set_value(50);
-    auto* scrollbar2 = new GScrollBar(Orientation::Horizontal, main_widget);
+    auto scrollbar2 = GScrollBar::construct(Orientation::Horizontal, main_widget);
     scrollbar2->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
     scrollbar2->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
     scrollbar2->set_preferred_size(0, 16);
     scrollbar2->set_preferred_size(0, 16);
     scrollbar2->set_enabled(false);
     scrollbar2->set_enabled(false);

+ 1 - 1
DevTools/VisualBuilder/VBWidgetRegistry.cpp

@@ -74,7 +74,7 @@ static GWidget* build_gwidget(VBWidgetType type, GWidget* parent)
     case VBWidgetType::GWidget:
     case VBWidgetType::GWidget:
         return new GWidget(parent);
         return new GWidget(parent);
     case VBWidgetType::GScrollBar:
     case VBWidgetType::GScrollBar:
-        return new GScrollBar(Orientation::Vertical, parent);
+        return GScrollBar::construct(Orientation::Vertical, parent);
     case VBWidgetType::GGroupBox:
     case VBWidgetType::GGroupBox:
         return new GGroupBox("groupbox_1", parent);
         return new GGroupBox("groupbox_1", parent);
     case VBWidgetType::GLabel: {
     case VBWidgetType::GLabel: {

+ 2 - 1
Libraries/LibGUI/GScrollBar.h

@@ -7,7 +7,6 @@
 class GScrollBar final : public GWidget {
 class GScrollBar final : public GWidget {
     C_OBJECT(GScrollBar)
     C_OBJECT(GScrollBar)
 public:
 public:
-    explicit GScrollBar(Orientation, GWidget* parent);
     virtual ~GScrollBar() override;
     virtual ~GScrollBar() override;
 
 
     Orientation orientation() const { return m_orientation; }
     Orientation orientation() const { return m_orientation; }
@@ -39,6 +38,8 @@ public:
     };
     };
 
 
 private:
 private:
+    explicit GScrollBar(Orientation, GWidget* parent);
+
     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 mouseup_event(GMouseEvent&) override;
     virtual void mouseup_event(GMouseEvent&) override;

+ 2 - 2
Libraries/LibGUI/GScrollableWidget.cpp

@@ -4,14 +4,14 @@
 GScrollableWidget::GScrollableWidget(GWidget* parent)
 GScrollableWidget::GScrollableWidget(GWidget* parent)
     : GFrame(parent)
     : GFrame(parent)
 {
 {
-    m_vertical_scrollbar = new GScrollBar(Orientation::Vertical, this);
+    m_vertical_scrollbar = GScrollBar::construct(Orientation::Vertical, this);
     m_vertical_scrollbar->set_step(4);
     m_vertical_scrollbar->set_step(4);
     m_vertical_scrollbar->on_change = [this](int) {
     m_vertical_scrollbar->on_change = [this](int) {
         did_scroll();
         did_scroll();
         update();
         update();
     };
     };
 
 
-    m_horizontal_scrollbar = new GScrollBar(Orientation::Horizontal, this);
+    m_horizontal_scrollbar = GScrollBar::construct(Orientation::Horizontal, this);
     m_horizontal_scrollbar->set_step(4);
     m_horizontal_scrollbar->set_step(4);
     m_horizontal_scrollbar->set_big_step(30);
     m_horizontal_scrollbar->set_big_step(30);
     m_horizontal_scrollbar->on_change = [this](int) {
     m_horizontal_scrollbar->on_change = [this](int) {

+ 2 - 2
Libraries/LibGUI/GScrollableWidget.h

@@ -53,8 +53,8 @@ protected:
 private:
 private:
     void update_scrollbar_ranges();
     void update_scrollbar_ranges();
 
 
-    GScrollBar* m_vertical_scrollbar { nullptr };
-    GScrollBar* m_horizontal_scrollbar { nullptr };
+    ObjectPtr<GScrollBar> m_vertical_scrollbar;
+    ObjectPtr<GScrollBar> m_horizontal_scrollbar;
     GWidget* m_corner_widget { nullptr };
     GWidget* m_corner_widget { nullptr };
     Size m_content_size;
     Size m_content_size;
     Size m_size_occupied_by_fixed_elements;
     Size m_size_occupied_by_fixed_elements;