浏览代码

LibGUI: Remove parent parameter to GUI::Widget constructor

Andreas Kling 5 年之前
父节点
当前提交
c5d913970a
共有 100 个文件被更改,包括 187 次插入273 次删除
  1. 1 2
      Applications/Browser/InspectorWidget.cpp
  2. 1 1
      Applications/Browser/InspectorWidget.h
  3. 1 1
      Applications/Browser/main.cpp
  4. 2 3
      Applications/FontEditor/FontEditor.cpp
  5. 1 1
      Applications/FontEditor/FontEditor.h
  6. 1 2
      Applications/HexEditor/HexEditor.cpp
  7. 1 1
      Applications/HexEditor/HexEditor.h
  8. 2 2
      Applications/HexEditor/HexEditorWidget.cpp
  9. 3 3
      Applications/IRCClient/IRCAppWindow.cpp
  10. 1 1
      Applications/IRCClient/IRCAppWindow.h
  11. 1 1
      Applications/IRCClient/IRCClient.h
  12. 1 1
      Applications/IRCClient/IRCQuery.h
  13. 2 3
      Applications/IRCClient/IRCWindow.cpp
  14. 2 1
      Applications/IRCClient/IRCWindow.h
  15. 1 2
      Applications/QuickShow/QSWidget.cpp
  16. 1 1
      Applications/QuickShow/QSWidget.h
  17. 1 2
      Applications/SystemMonitor/NetworkStatisticsWidget.cpp
  18. 1 1
      Applications/SystemMonitor/NetworkStatisticsWidget.h
  19. 2 3
      Applications/SystemMonitor/ProcessFileDescriptorMapWidget.cpp
  20. 1 1
      Applications/SystemMonitor/ProcessFileDescriptorMapWidget.h
  21. 1 2
      Applications/SystemMonitor/ProcessMemoryMapWidget.cpp
  22. 1 1
      Applications/SystemMonitor/ProcessMemoryMapWidget.h
  23. 1 2
      Applications/SystemMonitor/ProcessStacksWidget.cpp
  24. 2 1
      Applications/SystemMonitor/ProcessStacksWidget.h
  25. 1 2
      Applications/SystemMonitor/ProcessTableView.cpp
  26. 1 1
      Applications/SystemMonitor/ProcessTableView.h
  27. 2 3
      Applications/SystemMonitor/ProcessUnveiledPathsWidget.cpp
  28. 1 1
      Applications/SystemMonitor/ProcessUnveiledPathsWidget.h
  29. 6 6
      Applications/SystemMonitor/main.cpp
  30. 1 2
      Applications/Welcome/BackgroundWidget.cpp
  31. 2 1
      Applications/Welcome/BackgroundWidget.h
  32. 2 8
      Applications/Welcome/TextWidget.cpp
  33. 4 3
      Applications/Welcome/TextWidget.h
  34. 1 5
      Applications/Welcome/UnuncheckableButton.cpp
  35. 3 1
      Applications/Welcome/UnuncheckableButton.h
  36. 2 2
      DevTools/FormCompiler/main.cpp
  37. 2 1
      DevTools/HackStudio/main.cpp
  38. 2 3
      DevTools/ProfileViewer/ProfileTimelineWidget.cpp
  39. 1 1
      DevTools/ProfileViewer/ProfileTimelineWidget.h
  40. 2 2
      DevTools/ProfileViewer/main.cpp
  41. 2 3
      DevTools/VisualBuilder/VBForm.cpp
  42. 3 1
      DevTools/VisualBuilder/VBForm.h
  43. 2 2
      DevTools/VisualBuilder/VBPropertiesWindow.cpp
  44. 10 10
      DevTools/VisualBuilder/main.cpp
  45. 19 15
      Games/Minesweeper/Field.cpp
  46. 3 3
      Games/Minesweeper/Field.h
  47. 1 2
      Games/Snake/SnakeGame.cpp
  48. 1 1
      Games/Snake/SnakeGame.h
  49. 2 8
      Libraries/LibGUI/AbstractButton.cpp
  50. 1 2
      Libraries/LibGUI/AbstractButton.h
  51. 1 2
      Libraries/LibGUI/AbstractTableView.cpp
  52. 1 1
      Libraries/LibGUI/AbstractTableView.h
  53. 2 3
      Libraries/LibGUI/AbstractView.cpp
  54. 1 1
      Libraries/LibGUI/AbstractView.h
  55. 2 7
      Libraries/LibGUI/Button.cpp
  56. 1 2
      Libraries/LibGUI/Button.h
  57. 2 7
      Libraries/LibGUI/CheckBox.cpp
  58. 1 2
      Libraries/LibGUI/CheckBox.h
  59. 1 2
      Libraries/LibGUI/ColumnsView.cpp
  60. 2 2
      Libraries/LibGUI/ColumnsView.h
  61. 3 4
      Libraries/LibGUI/ComboBox.cpp
  62. 1 1
      Libraries/LibGUI/ComboBox.h
  63. 1 2
      Libraries/LibGUI/Frame.cpp
  64. 1 1
      Libraries/LibGUI/Frame.h
  65. 2 8
      Libraries/LibGUI/GroupBox.cpp
  66. 1 2
      Libraries/LibGUI/GroupBox.h
  67. 1 2
      Libraries/LibGUI/ItemView.cpp
  68. 1 1
      Libraries/LibGUI/ItemView.h
  69. 2 8
      Libraries/LibGUI/Label.cpp
  70. 1 2
      Libraries/LibGUI/Label.h
  71. 1 2
      Libraries/LibGUI/LazyWidget.cpp
  72. 1 1
      Libraries/LibGUI/LazyWidget.h
  73. 1 2
      Libraries/LibGUI/ListView.cpp
  74. 2 1
      Libraries/LibGUI/ListView.h
  75. 1 1
      Libraries/LibGUI/ModelEditingDelegate.h
  76. 1 2
      Libraries/LibGUI/ProgressBar.cpp
  77. 1 1
      Libraries/LibGUI/ProgressBar.h
  78. 2 7
      Libraries/LibGUI/RadioButton.cpp
  79. 1 2
      Libraries/LibGUI/RadioButton.h
  80. 1 2
      Libraries/LibGUI/ResizeCorner.cpp
  81. 1 1
      Libraries/LibGUI/ResizeCorner.h
  82. 2 8
      Libraries/LibGUI/ScrollBar.cpp
  83. 1 2
      Libraries/LibGUI/ScrollBar.h
  84. 4 5
      Libraries/LibGUI/ScrollableWidget.cpp
  85. 1 1
      Libraries/LibGUI/ScrollableWidget.h
  86. 2 8
      Libraries/LibGUI/Slider.cpp
  87. 5 6
      Libraries/LibGUI/Slider.h
  88. 1 2
      Libraries/LibGUI/SpinBox.cpp
  89. 1 1
      Libraries/LibGUI/SpinBox.h
  90. 2 3
      Libraries/LibGUI/Splitter.cpp
  91. 5 5
      Libraries/LibGUI/Splitter.h
  92. 1 2
      Libraries/LibGUI/StackWidget.cpp
  93. 1 1
      Libraries/LibGUI/StackWidget.h
  94. 3 9
      Libraries/LibGUI/StatusBar.cpp
  95. 1 2
      Libraries/LibGUI/StatusBar.h
  96. 1 2
      Libraries/LibGUI/TabWidget.cpp
  97. 2 1
      Libraries/LibGUI/TabWidget.h
  98. 1 2
      Libraries/LibGUI/TableView.cpp
  99. 1 1
      Libraries/LibGUI/TableView.h
  100. 2 2
      Libraries/LibGUI/TextBox.cpp

+ 1 - 2
Applications/Browser/InspectorWidget.cpp

@@ -35,8 +35,7 @@
 #include <LibHTML/DOMTreeModel.h>
 #include <LibHTML/StylePropertiesModel.h>
 
-InspectorWidget::InspectorWidget(GUI::Widget* parent)
-    : GUI::Widget(parent)
+InspectorWidget::InspectorWidget()
 {
     set_layout(make<GUI::VerticalBoxLayout>());
     auto splitter = add<GUI::VerticalSplitter>();

+ 1 - 1
Applications/Browser/InspectorWidget.h

@@ -36,7 +36,7 @@ public:
     void set_document(Document*);
 
 private:
-    explicit InspectorWidget(GUI::Widget* parent);
+    InspectorWidget();
 
     RefPtr<GUI::TreeView> m_dom_tree_view;
     RefPtr<GUI::TableView> m_style_table_view;

+ 1 - 1
Applications/Browser/main.cpp

@@ -200,7 +200,7 @@ int main(int argc, char** argv)
             dom_inspector_window = GUI::Window::construct();
             dom_inspector_window->set_rect(100, 100, 300, 500);
             dom_inspector_window->set_title("DOM inspector");
-            auto dom_inspector_widget = InspectorWidget::construct(nullptr);
+            auto dom_inspector_widget = InspectorWidget::construct();
             dom_inspector_window->set_main_widget(dom_inspector_widget);
         }
         auto* inspector_widget = static_cast<InspectorWidget*>(dom_inspector_window->main_widget());

+ 2 - 3
Applications/FontEditor/FontEditor.cpp

@@ -39,9 +39,8 @@
 #include <LibGfx/Font.h>
 #include <stdlib.h>
 
-FontEditorWidget::FontEditorWidget(const String& path, RefPtr<Gfx::Font>&& edited_font, GUI::Widget* parent)
-    : GUI::Widget(parent)
-    , m_edited_font(move(edited_font))
+FontEditorWidget::FontEditorWidget(const String& path, RefPtr<Gfx::Font>&& edited_font)
+    : m_edited_font(move(edited_font))
 {
     set_fill_with_background_color(true);
 

+ 1 - 1
Applications/FontEditor/FontEditor.h

@@ -40,7 +40,7 @@ public:
     virtual ~FontEditorWidget() override;
 
 private:
-    FontEditorWidget(const String& path, RefPtr<Gfx::Font>&&, GUI::Widget* parent = nullptr);
+    FontEditorWidget(const String& path, RefPtr<Gfx::Font>&&);
     RefPtr<Gfx::Font> m_edited_font;
 
     GlyphMapWidget* m_glyph_map_widget { nullptr };

+ 1 - 2
Applications/HexEditor/HexEditor.cpp

@@ -41,8 +41,7 @@
 #include <stdio.h>
 #include <unistd.h>
 
-HexEditor::HexEditor(GUI::Widget* parent)
-    : ScrollableWidget(parent)
+HexEditor::HexEditor()
 {
     set_scrollbars_enabled(true);
     set_font(GFontDatabase::the().get_by_name("Csilla Thin"));

+ 1 - 1
Applications/HexEditor/HexEditor.h

@@ -67,7 +67,7 @@ public:
     Function<void()> on_change;
 
 protected:
-    HexEditor(GUI::Widget* parent);
+    HexEditor();
 
     virtual void paint_event(GUI::PaintEvent&) override;
     virtual void mousedown_event(GUI::MouseEvent&) override;

+ 2 - 2
Applications/HexEditor/HexEditorWidget.cpp

@@ -49,7 +49,7 @@ HexEditorWidget::HexEditorWidget()
     set_layout(make<GUI::VerticalBoxLayout>());
     layout()->set_spacing(0);
 
-    m_editor = HexEditor::construct(this);
+    m_editor = add<HexEditor>();
 
     m_editor->on_status_change = [this](int position, HexEditor::EditMode edit_mode, int selection_start, int selection_end) {
         m_statusbar->set_text(0, String::format("Offset: %8X", position));
@@ -66,7 +66,7 @@ HexEditorWidget::HexEditorWidget()
             update_title();
     };
 
-    m_statusbar = GUI::StatusBar::construct(5, this);
+    m_statusbar = add<GUI::StatusBar>(5);
 
     m_new_action = GUI::Action::create("New", { Mod_Ctrl, Key_N }, Gfx::Bitmap::load_from_file("/res/icons/16x16/new.png"), [this](const GUI::Action&) {
         if (m_document_dirty) {

+ 3 - 3
Applications/IRCClient/IRCAppWindow.cpp

@@ -78,7 +78,7 @@ void IRCAppWindow::update_title()
 void IRCAppWindow::setup_client()
 {
     m_client->aid_create_window = [this](void* owner, IRCWindow::Type type, const String& name) {
-        return &create_window(owner, type, name);
+        return create_window(owner, type, name);
     };
     m_client->aid_get_active_window = [this] {
         return static_cast<IRCWindow*>(m_container->active_widget());
@@ -237,7 +237,7 @@ void IRCAppWindow::update_part_action()
     m_part_action->set_enabled(is_open_channel);
 }
 
-IRCWindow& IRCAppWindow::create_window(void* owner, IRCWindow::Type type, const String& name)
+NonnullRefPtr<IRCWindow> IRCAppWindow::create_window(void* owner, IRCWindow::Type type, const String& name)
 {
-    return *new IRCWindow(m_client, owner, type, name, m_container);
+    return m_container->add<IRCWindow>(m_client, owner, type, name);
 }

+ 1 - 1
Applications/IRCClient/IRCAppWindow.h

@@ -50,7 +50,7 @@ private:
     void update_title();
     void update_part_action();
 
-    IRCWindow& create_window(void* owner, IRCWindow::Type, const String& name);
+    NonnullRefPtr<IRCWindow> create_window(void* owner, IRCWindow::Type, const String& name);
     NonnullRefPtr<IRCClient> m_client;
     RefPtr<GUI::StackWidget> m_container;
     RefPtr<GUI::TableView> m_window_list;

+ 1 - 1
Applications/IRCClient/IRCClient.h

@@ -70,7 +70,7 @@ public:
     Function<void(const String&)> on_nickname_changed;
     Function<void(IRCChannel&)> on_part_from_channel;
 
-    Function<IRCWindow*(void*, IRCWindow::Type, const String&)> aid_create_window;
+    Function<NonnullRefPtr<IRCWindow>(void*, IRCWindow::Type, const String&)> aid_create_window;
     Function<IRCWindow*()> aid_get_active_window;
     Function<void()> aid_update_window_list;
 

+ 1 - 1
Applications/IRCClient/IRCQuery.h

@@ -59,7 +59,7 @@ private:
 
     IRCClient& m_client;
     String m_name;
-    IRCWindow* m_window { nullptr };
+    RefPtr<IRCWindow> m_window;
 
     NonnullRefPtr<IRCLogBuffer> m_log;
 };

+ 2 - 3
Applications/IRCClient/IRCWindow.cpp

@@ -35,9 +35,8 @@
 #include <LibGUI/TextEditor.h>
 #include <LibHTML/HtmlView.h>
 
-IRCWindow::IRCWindow(IRCClient& client, void* owner, Type type, const String& name, GUI::Widget* parent)
-    : GUI::Widget(parent)
-    , m_client(client)
+IRCWindow::IRCWindow(IRCClient& client, void* owner, Type type, const String& name)
+    : m_client(client)
     , m_owner(owner)
     , m_type(type)
     , m_name(name)

+ 2 - 1
Applications/IRCClient/IRCWindow.h

@@ -43,7 +43,6 @@ public:
         Query,
     };
 
-    IRCWindow(IRCClient&, void* owner, Type, const String& name, GUI::Widget* parent);
     virtual ~IRCWindow() override;
 
     String name() const { return m_name; }
@@ -67,6 +66,8 @@ public:
     const IRCQuery& query() const { return *(const IRCQuery*)m_owner; }
 
 private:
+    IRCWindow(IRCClient&, void* owner, Type, const String& name);
+
     IRCClient& m_client;
     void* m_owner { nullptr };
     Type m_type;

+ 1 - 2
Applications/QuickShow/QSWidget.cpp

@@ -32,8 +32,7 @@
 #include <LibGUI/Window.h>
 #include <LibGfx/Bitmap.h>
 
-QSWidget::QSWidget(GUI::Widget* parent)
-    : GUI::Frame(parent)
+QSWidget::QSWidget()
 {
     set_fill_with_background_color(true);
     set_background_color(Color::Black);

+ 1 - 1
Applications/QuickShow/QSWidget.h

@@ -44,7 +44,7 @@ public:
     Function<void(int)> on_scale_change;
 
 private:
-    explicit QSWidget(GUI::Widget* parent = nullptr);
+    QSWidget();
     virtual void paint_event(GUI::PaintEvent&) override;
     virtual void resize_event(GUI::ResizeEvent&) override;
     virtual void mousedown_event(GUI::MouseEvent&) override;

+ 1 - 2
Applications/SystemMonitor/NetworkStatisticsWidget.cpp

@@ -30,8 +30,7 @@
 #include <LibGUI/JsonArrayModel.h>
 #include <LibGUI/TableView.h>
 
-NetworkStatisticsWidget::NetworkStatisticsWidget(GUI::Widget* parent)
-    : GUI::LazyWidget(parent)
+NetworkStatisticsWidget::NetworkStatisticsWidget()
 {
     on_first_show = [this](auto&) {
         set_layout(make<GUI::VerticalBoxLayout>());

+ 1 - 1
Applications/SystemMonitor/NetworkStatisticsWidget.h

@@ -35,7 +35,7 @@ public:
     virtual ~NetworkStatisticsWidget() override;
 
 private:
-    explicit NetworkStatisticsWidget(GUI::Widget* parent = nullptr);
+    NetworkStatisticsWidget();
     void update_models();
 
     RefPtr<GUI::TableView> m_adapter_table_view;

+ 2 - 3
Applications/SystemMonitor/ProcessFileDescriptorMapWidget.cpp

@@ -29,12 +29,11 @@
 #include <LibGUI/JsonArrayModel.h>
 #include <LibGUI/TableView.h>
 
-ProcessFileDescriptorMapWidget::ProcessFileDescriptorMapWidget(GUI::Widget* parent)
-    : GUI::Widget(parent)
+ProcessFileDescriptorMapWidget::ProcessFileDescriptorMapWidget()
 {
     set_layout(make<GUI::VerticalBoxLayout>());
     layout()->set_margins({ 4, 4, 4, 4 });
-    m_table_view = GUI::TableView::construct(this);
+    m_table_view = add<GUI::TableView>();
     m_table_view->set_size_columns_to_fit_content(true);
 
     Vector<GUI::JsonArrayModel::FieldSpec> pid_fds_fields;

+ 1 - 1
Applications/SystemMonitor/ProcessFileDescriptorMapWidget.h

@@ -36,7 +36,7 @@ public:
     void set_pid(pid_t);
 
 private:
-    explicit ProcessFileDescriptorMapWidget(GUI::Widget* parent);
+    ProcessFileDescriptorMapWidget();
 
     RefPtr<GUI::TableView> m_table_view;
     pid_t m_pid { -1 };

+ 1 - 2
Applications/SystemMonitor/ProcessMemoryMapWidget.cpp

@@ -31,8 +31,7 @@
 #include <LibGUI/SortingProxyModel.h>
 #include <LibGUI/TableView.h>
 
-ProcessMemoryMapWidget::ProcessMemoryMapWidget(GUI::Widget* parent)
-    : GUI::Widget(parent)
+ProcessMemoryMapWidget::ProcessMemoryMapWidget()
 {
     set_layout(make<GUI::VerticalBoxLayout>());
     layout()->set_margins({ 4, 4, 4, 4 });

+ 1 - 1
Applications/SystemMonitor/ProcessMemoryMapWidget.h

@@ -38,7 +38,7 @@ public:
     void refresh();
 
 private:
-    explicit ProcessMemoryMapWidget(GUI::Widget* parent);
+    ProcessMemoryMapWidget();
     RefPtr<GUI::TableView> m_table_view;
     RefPtr<GUI::JsonArrayModel> m_json_model;
     pid_t m_pid { -1 };

+ 1 - 2
Applications/SystemMonitor/ProcessStacksWidget.cpp

@@ -30,8 +30,7 @@
 #include <LibCore/Timer.h>
 #include <LibGUI/BoxLayout.h>
 
-ProcessStacksWidget::ProcessStacksWidget(GUI::Widget* parent)
-    : GUI::Widget(parent)
+ProcessStacksWidget::ProcessStacksWidget()
 {
     set_layout(make<GUI::VerticalBoxLayout>());
     layout()->set_margins({ 4, 4, 4, 4 });

+ 2 - 1
Applications/SystemMonitor/ProcessStacksWidget.h

@@ -32,13 +32,14 @@
 class ProcessStacksWidget final : public GUI::Widget {
     C_OBJECT(ProcessStacksWidget)
 public:
-    explicit ProcessStacksWidget(GUI::Widget* parent);
     virtual ~ProcessStacksWidget() override;
 
     void set_pid(pid_t);
     void refresh();
 
 private:
+    ProcessStacksWidget();
+
     pid_t m_pid { -1 };
     RefPtr<GUI::TextEditor> m_stacks_editor;
     RefPtr<Core::Timer> m_timer;

+ 1 - 2
Applications/SystemMonitor/ProcessTableView.cpp

@@ -29,8 +29,7 @@
 #include <LibGUI/SortingProxyModel.h>
 #include <stdio.h>
 
-ProcessTableView::ProcessTableView(GUI::Widget* parent)
-    : TableView(parent)
+ProcessTableView::ProcessTableView()
 {
     set_size_columns_to_fit_content(true);
     set_model(GUI::SortingProxyModel::create(ProcessModel::create()));

+ 1 - 1
Applications/SystemMonitor/ProcessTableView.h

@@ -45,5 +45,5 @@ public:
     Function<void(pid_t)> on_process_selected;
 
 private:
-    explicit ProcessTableView(GUI::Widget* parent = nullptr);
+    ProcessTableView();
 };

+ 2 - 3
Applications/SystemMonitor/ProcessUnveiledPathsWidget.cpp

@@ -29,12 +29,11 @@
 #include <LibGUI/JsonArrayModel.h>
 #include <LibGUI/TableView.h>
 
-ProcessUnveiledPathsWidget::ProcessUnveiledPathsWidget(GUI::Widget* parent)
-    : GUI::Widget(parent)
+ProcessUnveiledPathsWidget::ProcessUnveiledPathsWidget()
 {
     set_layout(make<GUI::VerticalBoxLayout>());
     layout()->set_margins({ 4, 4, 4, 4 });
-    m_table_view = GUI::TableView::construct(this);
+    m_table_view = add<GUI::TableView>();
     m_table_view->set_size_columns_to_fit_content(true);
 
     Vector<GUI::JsonArrayModel::FieldSpec> pid_unveil_fields;

+ 1 - 1
Applications/SystemMonitor/ProcessUnveiledPathsWidget.h

@@ -36,7 +36,7 @@ public:
     void set_pid(pid_t);
 
 private:
-    explicit ProcessUnveiledPathsWidget(GUI::Widget* parent);
+    ProcessUnveiledPathsWidget();
 
     RefPtr<GUI::TableView> m_table_view;
     pid_t m_pid { -1 };

+ 6 - 6
Applications/SystemMonitor/main.cpp

@@ -123,7 +123,7 @@ int main(int argc, char** argv)
 
     auto tabwidget = keeper->add<GUI::TabWidget>();
 
-    auto process_container_splitter = GUI::VerticalSplitter::construct(nullptr);
+    auto process_container_splitter = GUI::VerticalSplitter::construct();
     tabwidget->add_widget("Processes", process_container_splitter);
 
     auto process_table_container = process_container_splitter->add<GUI::Widget>();
@@ -136,7 +136,7 @@ int main(int argc, char** argv)
 
     tabwidget->add_widget("Devices", build_devices_tab());
 
-    auto network_stats_widget = NetworkStatisticsWidget::construct(nullptr);
+    auto network_stats_widget = NetworkStatisticsWidget::construct();
     tabwidget->add_widget("Network", network_stats_widget);
 
     process_table_container->set_layout(make<GUI::VerticalBoxLayout>());
@@ -232,16 +232,16 @@ int main(int argc, char** argv)
 
     auto process_tab_widget = process_container_splitter->add<GUI::TabWidget>();
 
-    auto memory_map_widget = ProcessMemoryMapWidget::construct(nullptr);
+    auto memory_map_widget = ProcessMemoryMapWidget::construct();
     process_tab_widget->add_widget("Memory map", memory_map_widget);
 
-    auto open_files_widget = ProcessFileDescriptorMapWidget::construct(nullptr);
+    auto open_files_widget = ProcessFileDescriptorMapWidget::construct();
     process_tab_widget->add_widget("Open files", open_files_widget);
 
-    auto unveiled_paths_widget = ProcessUnveiledPathsWidget::construct(nullptr);
+    auto unveiled_paths_widget = ProcessUnveiledPathsWidget::construct();
     process_tab_widget->add_widget("Unveiled paths", unveiled_paths_widget);
 
-    auto stacks_widget = ProcessStacksWidget::construct(nullptr);
+    auto stacks_widget = ProcessStacksWidget::construct();
     process_tab_widget->add_widget("Stacks", stacks_widget);
 
     process_table_view->on_process_selected = [&](pid_t pid) {

+ 1 - 2
Applications/Welcome/BackgroundWidget.cpp

@@ -29,8 +29,7 @@
 #include <LibGfx/Color.h>
 #include <LibGfx/Palette.h>
 
-BackgroundWidget::BackgroundWidget(GUI::Widget* parent)
-    : GUI::Frame(parent)
+BackgroundWidget::BackgroundWidget()
 {
 }
 

+ 2 - 1
Applications/Welcome/BackgroundWidget.h

@@ -31,10 +31,11 @@
 class BackgroundWidget : public GUI::Frame {
     C_OBJECT(BackgroundWidget)
 public:
-    explicit BackgroundWidget(GUI::Widget* parent = nullptr);
     virtual ~BackgroundWidget() override;
 
 private:
+    BackgroundWidget();
+
     virtual void paint_event(GUI::PaintEvent&) override;
     virtual void resize_event(GUI::ResizeEvent&) override;
 };

+ 2 - 8
Applications/Welcome/TextWidget.cpp

@@ -33,14 +33,8 @@
 #include <LibGfx/Font.h>
 #include <LibGfx/Palette.h>
 
-TextWidget::TextWidget(GUI::Widget* parent)
-    : GUI::Frame(parent)
-{
-}
-
-TextWidget::TextWidget(const StringView& text, GUI::Widget* parent)
-    : GUI::Frame(parent)
-    , m_text(text)
+TextWidget::TextWidget(const StringView& text)
+    : m_text(text)
 {
 }
 

+ 4 - 3
Applications/Welcome/TextWidget.h

@@ -32,10 +32,9 @@
 #include <LibGfx/TextAlignment.h>
 
 class TextWidget : public GUI::Frame {
-    C_OBJECT(TextWidget)
+    C_OBJECT(TextWidget);
+
 public:
-    explicit TextWidget(GUI::Widget* parent = nullptr);
-    TextWidget(const StringView& text, GUI::Widget* parent = nullptr);
     virtual ~TextWidget() override;
 
     String text() const { return m_text; }
@@ -53,6 +52,8 @@ public:
     void wrap_and_set_height();
 
 private:
+    explicit TextWidget(const StringView& text = {});
+
     virtual void paint_event(GUI::PaintEvent&) override;
     virtual void resize_event(GUI::ResizeEvent&) override;
 

+ 1 - 5
Applications/Welcome/UnuncheckableButton.cpp

@@ -25,12 +25,8 @@
  */
 
 #include "UnuncheckableButton.h"
-#include <LibGUI/Painter.h>
-#include <LibGfx/Color.h>
-#include <LibGfx/Palette.h>
 
-UnuncheckableButton::UnuncheckableButton(GUI::Widget* parent)
-    : GUI::Button(parent)
+UnuncheckableButton::UnuncheckableButton()
 {
 }
 

+ 3 - 1
Applications/Welcome/UnuncheckableButton.h

@@ -31,8 +31,10 @@
 class UnuncheckableButton : public GUI::Button {
     C_OBJECT(UnuncheckableButton)
 public:
-    explicit UnuncheckableButton(GUI::Widget* parent = nullptr);
     virtual ~UnuncheckableButton() override;
 
     virtual bool is_uncheckable() const override { return false; }
+
+private:
+    UnuncheckableButton();
 };

+ 2 - 2
DevTools/FormCompiler/main.cpp

@@ -90,7 +90,7 @@ int main(int argc, char** argv)
     dbg() << "UI_" << name << "::UI_" << name << "()";
     dbg() << "{";
 
-    dbg() << "    main_widget = GUI::Widget::construct(nullptr);";
+    dbg() << "    main_widget = GUI::Widget::construct();";
     dbg() << "    main_widget->set_fill_with_background_color(true);";
 
     widgets.as_array().for_each([&](auto& value) {
@@ -98,7 +98,7 @@ int main(int argc, char** argv)
         const JsonObject& widget_object = value.as_object();
         auto name = widget_object.get("name").to_string();
         auto class_name = widget_object.get("class").to_string();
-        dbg() << "    " << name << " = " << class_name << "::construct(main_widget);";
+        dbg() << "    " << name << " = main_widget->add<" << class_name << ">();";
 
         widget_object.for_each_member([&](auto& property_name, const JsonValue& property_value) {
             if (property_name == "class")

+ 2 - 1
DevTools/HackStudio/main.cpp

@@ -286,7 +286,8 @@ int main(int argc, char** argv)
         auto icon_path = String::format("/res/icons/widgets/G%s.png", reg.class_name().characters());
         auto action = GUI::Action::create(reg.class_name(), Gfx::Bitmap::load_from_file(icon_path), [&reg](auto&) {
             g_form_editor_widget->set_tool(make<WidgetTool>(*g_form_editor_widget, reg));
-            auto widget = reg.construct(&g_form_editor_widget->form_widget());
+            auto widget = reg.construct();
+            g_form_editor_widget->form_widget().add_child(widget);
             widget->set_relative_rect(30, 30, 30, 30);
             g_form_editor_widget->model().update();
         });

+ 2 - 3
DevTools/ProfileViewer/ProfileTimelineWidget.cpp

@@ -28,9 +28,8 @@
 #include "Profile.h"
 #include <LibGUI/Painter.h>
 
-ProfileTimelineWidget::ProfileTimelineWidget(Profile& profile, GUI::Widget* parent)
-    : GUI::Frame(parent)
-    , m_profile(profile)
+ProfileTimelineWidget::ProfileTimelineWidget(Profile& profile)
+    : m_profile(profile)
 {
     set_background_color(Color::White);
     set_fill_with_background_color(true);

+ 1 - 1
DevTools/ProfileViewer/ProfileTimelineWidget.h

@@ -39,7 +39,7 @@ private:
     virtual void mousemove_event(GUI::MouseEvent&) override;
     virtual void mouseup_event(GUI::MouseEvent&) override;
 
-    ProfileTimelineWidget(Profile&, GUI::Widget* parent);
+    explicit ProfileTimelineWidget(Profile&);
 
     u64 timestamp_at_x(int x) const;
 

+ 2 - 2
DevTools/ProfileViewer/main.cpp

@@ -62,9 +62,9 @@ int main(int argc, char** argv)
     main_widget->set_fill_with_background_color(true);
     main_widget->set_layout(make<GUI::VerticalBoxLayout>());
 
-    auto timeline_widget = ProfileTimelineWidget::construct(*profile, main_widget);
+    auto timeline_widget = main_widget->add<ProfileTimelineWidget>(*profile);
 
-    auto tree_view = GUI::TreeView::construct(main_widget);
+    auto tree_view = main_widget->add<GUI::TreeView>();
     tree_view->set_headers_visible(true);
     tree_view->set_size_columns_to_fit_content(true);
     tree_view->set_model(profile->model());

+ 2 - 3
DevTools/VisualBuilder/VBForm.cpp

@@ -44,9 +44,8 @@ VBForm* VBForm::current()
     return s_current;
 }
 
-VBForm::VBForm(const String& name, GUI::Widget* parent)
-    : GUI::Widget(parent)
-    , m_name(name)
+VBForm::VBForm(const String& name)
+    : m_name(name)
 {
     s_current = this;
     set_fill_with_background_color(true);

+ 3 - 1
DevTools/VisualBuilder/VBForm.h

@@ -33,8 +33,8 @@
 class VBForm : public GUI::Widget {
     C_OBJECT(VBForm)
     friend class VBWidget;
+
 public:
-    explicit VBForm(const String& name, GUI::Widget* parent = nullptr);
     virtual ~VBForm() override;
 
     static VBForm* current();
@@ -66,6 +66,8 @@ protected:
     virtual void keydown_event(GUI::KeyEvent&) override;
 
 private:
+    explicit VBForm(const String& name);
+
     void grabber_mousedown_event(GUI::MouseEvent&, Direction grabber);
     void set_single_selected_widget(VBWidget*);
     void add_to_selection(VBWidget&);

+ 2 - 2
DevTools/VisualBuilder/VBPropertiesWindow.cpp

@@ -59,7 +59,7 @@ public:
 
     virtual RefPtr<GUI::Widget> create_widget() override
     {
-        auto combo = GUI::ComboBox::construct(nullptr);
+        auto combo = GUI::ComboBox::construct();
         combo->set_only_allow_values_from_model(true);
         combo->set_model(adopt(*new BoolValuesModel));
         combo->on_return_pressed = [this] { commit(); };
@@ -87,7 +87,7 @@ VBPropertiesWindow::VBPropertiesWindow()
     widget->layout()->set_margins({ 2, 2, 2, 2 });
     set_main_widget(widget);
 
-    m_table_view = GUI::TableView::construct(widget);
+    m_table_view = widget->add<GUI::TableView>();
     m_table_view->set_headers_visible(false);
     m_table_view->set_editable(true);
 

+ 10 - 10
DevTools/VisualBuilder/main.cpp

@@ -112,7 +112,7 @@ RefPtr<GUI::Window> make_toolbox_window()
     widget->layout()->set_spacing(0);
     window->set_main_widget(widget);
 
-    auto label_button = GUI::Button::construct(widget);
+    auto label_button = widget->add<GUI::Button>();
     label_button->set_button_style(Gfx::ButtonStyle::CoolBar);
     label_button->set_tooltip("GLabel");
     label_button->set_icon(Gfx::Bitmap::load_from_file("/res/icons/vbwidgets/label.png"));
@@ -121,7 +121,7 @@ RefPtr<GUI::Window> make_toolbox_window()
             form->insert_widget(VBWidgetType::GLabel);
     };
 
-    auto button_button = GUI::Button::construct(widget);
+    auto button_button = widget->add<GUI::Button>();
     button_button->set_button_style(Gfx::ButtonStyle::CoolBar);
     button_button->set_tooltip("GButton");
     button_button->set_icon(Gfx::Bitmap::load_from_file("/res/icons/vbwidgets/button.png"));
@@ -129,7 +129,7 @@ RefPtr<GUI::Window> make_toolbox_window()
         if (auto* form = VBForm::current())
             form->insert_widget(VBWidgetType::GButton);
     };
-    auto spinbox_button = GUI::Button::construct(widget);
+    auto spinbox_button = widget->add<GUI::Button>();
     spinbox_button->set_button_style(Gfx::ButtonStyle::CoolBar);
     spinbox_button->set_tooltip("GSpinBox");
     spinbox_button->set_icon(Gfx::Bitmap::load_from_file("/res/icons/vbwidgets/spinbox.png"));
@@ -137,7 +137,7 @@ RefPtr<GUI::Window> make_toolbox_window()
         if (auto* form = VBForm::current())
             form->insert_widget(VBWidgetType::GSpinBox);
     };
-    auto editor_button = GUI::Button::construct(widget);
+    auto editor_button = widget->add<GUI::Button>();
     editor_button->set_button_style(Gfx::ButtonStyle::CoolBar);
     editor_button->set_tooltip("GTextEditor");
     editor_button->set_icon(Gfx::Bitmap::load_from_file("/res/icons/vbwidgets/textbox.png"));
@@ -145,7 +145,7 @@ RefPtr<GUI::Window> make_toolbox_window()
         if (auto* form = VBForm::current())
             form->insert_widget(VBWidgetType::GTextEditor);
     };
-    auto progress_bar_button = GUI::Button::construct(widget);
+    auto progress_bar_button = widget->add<GUI::Button>();
     progress_bar_button->set_button_style(Gfx::ButtonStyle::CoolBar);
     progress_bar_button->set_tooltip("GProgressBar");
     progress_bar_button->set_icon(Gfx::Bitmap::load_from_file("/res/icons/vbwidgets/progressbar.png"));
@@ -153,7 +153,7 @@ RefPtr<GUI::Window> make_toolbox_window()
         if (auto* form = VBForm::current())
             form->insert_widget(VBWidgetType::GProgressBar);
     };
-    auto slider_button = GUI::Button::construct(widget);
+    auto slider_button = widget->add<GUI::Button>();
     slider_button->set_button_style(Gfx::ButtonStyle::CoolBar);
     slider_button->set_tooltip("GSlider");
     slider_button->set_icon(Gfx::Bitmap::load_from_file("/res/icons/vbwidgets/slider.png"));
@@ -161,7 +161,7 @@ RefPtr<GUI::Window> make_toolbox_window()
         if (auto* form = VBForm::current())
             form->insert_widget(VBWidgetType::GSlider);
     };
-    auto checkbox_button = GUI::Button::construct(widget);
+    auto checkbox_button = widget->add<GUI::Button>();
     checkbox_button->set_button_style(Gfx::ButtonStyle::CoolBar);
     checkbox_button->set_tooltip("GCheckBox");
     checkbox_button->set_icon(Gfx::Bitmap::load_from_file("/res/icons/vbwidgets/checkbox.png"));
@@ -169,7 +169,7 @@ RefPtr<GUI::Window> make_toolbox_window()
         if (auto* form = VBForm::current())
             form->insert_widget(VBWidgetType::GCheckBox);
     };
-    auto radiobutton_button = GUI::Button::construct(widget);
+    auto radiobutton_button = widget->add<GUI::Button>();
     radiobutton_button->set_button_style(Gfx::ButtonStyle::CoolBar);
     radiobutton_button->set_tooltip("GRadioButton");
     radiobutton_button->set_icon(Gfx::Bitmap::load_from_file("/res/icons/filled-radio-circle.png"));
@@ -177,7 +177,7 @@ RefPtr<GUI::Window> make_toolbox_window()
         if (auto* form = VBForm::current())
             form->insert_widget(VBWidgetType::GRadioButton);
     };
-    auto scrollbar_button = GUI::Button::construct(widget);
+    auto scrollbar_button = widget->add<GUI::Button>();
     scrollbar_button->set_button_style(Gfx::ButtonStyle::CoolBar);
     scrollbar_button->set_tooltip("GScrollBar");
     scrollbar_button->set_icon(Gfx::Bitmap::load_from_file("/res/icons/vbwidgets/scrollbar.png"));
@@ -185,7 +185,7 @@ RefPtr<GUI::Window> make_toolbox_window()
         if (auto* form = VBForm::current())
             form->insert_widget(VBWidgetType::GScrollBar);
     };
-    auto groupbox_button = GUI::Button::construct(widget);
+    auto groupbox_button = widget->add<GUI::Button>();
     groupbox_button->set_button_style(Gfx::ButtonStyle::CoolBar);
     groupbox_button->set_tooltip("GGroupBox");
     groupbox_button->set_icon(Gfx::Bitmap::load_from_file("/res/icons/vbwidgets/groupbox.png"));

+ 19 - 15
Games/Minesweeper/Field.cpp

@@ -36,12 +36,9 @@
 #include <unistd.h>
 
 class SquareButton final : public GUI::Button {
-public:
-    SquareButton(GUI::Widget* parent)
-        : GUI::Button(parent)
-    {
-    }
+    C_OBJECT(SquareButton);
 
+public:
     Function<void()> on_right_click;
     Function<void()> on_middle_click;
 
@@ -57,16 +54,15 @@ public:
         }
         GUI::Button::mousedown_event(event);
     }
+
+private:
+    SquareButton() {}
 };
 
 class SquareLabel final : public GUI::Label {
-public:
-    SquareLabel(Square& square, GUI::Widget* parent)
-        : GUI::Label(parent)
-        , m_square(square)
-    {
-    }
+    C_OBJECT(SquareLabel);
 
+public:
     Function<void()> on_chord_click;
 
     virtual void mousedown_event(GUI::MouseEvent& event) override
@@ -115,6 +111,12 @@ public:
         GUI::Label::mouseup_event(event);
     }
 
+private:
+    explicit SquareLabel(Square& square)
+        : m_square(square)
+    {
+    }
+
     Square& m_square;
     bool m_chord { false };
 };
@@ -243,7 +245,7 @@ void Field::reset()
             square.is_considering = false;
             square.is_swept = false;
             if (!square.label) {
-                square.label = new SquareLabel(square, this);
+                square.label = add<SquareLabel>(square);
                 square.label->set_background_color(Color::from_rgb(0xff4040));
             }
             square.label->set_fill_with_background_color(false);
@@ -251,7 +253,7 @@ void Field::reset()
             square.label->set_visible(false);
             square.label->set_icon(square.has_mine ? m_mine_bitmap : nullptr);
             if (!square.button) {
-                square.button = new SquareButton(this);
+                square.button = add<SquareButton>();
                 square.button->on_click = [this, &square](GUI::Button&) {
                     on_square_clicked(square);
                 };
@@ -513,10 +515,12 @@ void Field::set_single_chording(bool enabled)
     config->write_bool_entry("Minesweeper", "SingleChording", m_single_chording);
 }
 
+Square::Square()
+{
+}
+
 Square::~Square()
 {
-    delete label;
-    delete button;
 }
 
 template<typename Callback>

+ 3 - 3
Games/Minesweeper/Field.h

@@ -37,7 +37,7 @@ class SquareLabel;
 class Square {
     AK_MAKE_NONCOPYABLE(Square)
 public:
-    Square() {}
+    Square();
     ~Square();
 
     Field* field { nullptr };
@@ -48,8 +48,8 @@ public:
     int row { 0 };
     int column { 0 };
     int number { 0 };
-    SquareButton* button { nullptr };
-    SquareLabel* label { nullptr };
+    RefPtr<SquareButton> button;
+    RefPtr<SquareLabel> label;
 
     template<typename Callback>
     void for_each_neighbor(Callback);

+ 1 - 2
Games/Snake/SnakeGame.cpp

@@ -32,8 +32,7 @@
 #include <stdlib.h>
 #include <time.h>
 
-SnakeGame::SnakeGame(GUI::Widget* parent)
-    : GUI::Widget(parent)
+SnakeGame::SnakeGame()
 {
     set_font(GFontDatabase::the().get_by_name("Liza Regular"));
     m_fruit_bitmaps.append(*Gfx::Bitmap::load_from_file("/res/icons/snake/paprika.png"));

+ 1 - 1
Games/Snake/SnakeGame.h

@@ -38,7 +38,7 @@ public:
     void reset();
 
 private:
-    explicit SnakeGame(GUI::Widget* parent = nullptr);
+    SnakeGame();
     virtual void paint_event(GUI::PaintEvent&) override;
     virtual void keydown_event(GUI::KeyEvent&) override;
     virtual void timer_event(Core::TimerEvent&) override;

+ 2 - 8
Libraries/LibGUI/AbstractButton.cpp

@@ -31,14 +31,8 @@
 
 namespace GUI {
 
-AbstractButton::AbstractButton(Widget* parent)
-    : AbstractButton({}, parent)
-{
-}
-
-AbstractButton::AbstractButton(const StringView& text, Widget* parent)
-    : Widget(parent)
-    , m_text(text)
+AbstractButton::AbstractButton(const StringView& text)
+    : m_text(text)
 {
     m_auto_repeat_timer = add<Core::Timer>();
     m_auto_repeat_timer->on_timeout = [this] {

+ 1 - 2
Libraries/LibGUI/AbstractButton.h

@@ -60,8 +60,7 @@ public:
     void set_auto_repeat_interval(int interval) { m_auto_repeat_interval = interval; }
 
 protected:
-    explicit AbstractButton(Widget* parent = nullptr);
-    AbstractButton(const StringView&, Widget* parent = nullptr);
+    explicit AbstractButton(const StringView& = {});
 
     virtual void mousedown_event(MouseEvent&) override;
     virtual void mousemove_event(MouseEvent&) override;

+ 1 - 2
Libraries/LibGUI/AbstractTableView.cpp

@@ -39,8 +39,7 @@ namespace GUI {
 
 static const int minimum_column_width = 2;
 
-AbstractTableView::AbstractTableView(Widget* parent)
-    : AbstractView(parent)
+AbstractTableView::AbstractTableView()
 {
     set_should_hide_unnecessary_scrollbars(true);
 }

+ 1 - 1
Libraries/LibGUI/AbstractTableView.h

@@ -72,7 +72,7 @@ public:
 
 protected:
     virtual ~AbstractTableView() override;
-    explicit AbstractTableView(Widget* parent = nullptr);
+    AbstractTableView();
 
     virtual void did_update_model() override;
     virtual void mouseup_event(MouseEvent&) override;

+ 2 - 3
Libraries/LibGUI/AbstractView.cpp

@@ -37,9 +37,8 @@
 
 namespace GUI {
 
-AbstractView::AbstractView(Widget* parent)
-    : ScrollableWidget(parent)
-    , m_selection(*this)
+AbstractView::AbstractView()
+    : m_selection(*this)
 {
 }
 

+ 1 - 1
Libraries/LibGUI/AbstractView.h

@@ -73,7 +73,7 @@ public:
     NonnullRefPtr<Gfx::Font> font_for_index(const ModelIndex&) const;
 
 protected:
-    explicit AbstractView(Widget* parent = nullptr);
+    AbstractView();
     virtual ~AbstractView() override;
 
     virtual void mousedown_event(MouseEvent&) override;

+ 2 - 7
Libraries/LibGUI/Button.cpp

@@ -36,13 +36,8 @@
 
 namespace GUI {
 
-Button::Button(Widget* parent)
-    : AbstractButton(parent)
-{
-}
-
-Button::Button(const StringView& text, Widget* parent)
-    : AbstractButton(text, parent)
+Button::Button(const StringView& text)
+    : AbstractButton(text)
 {
 }
 

+ 1 - 2
Libraries/LibGUI/Button.h

@@ -62,8 +62,7 @@ public:
     void set_focusable(bool b) { m_focusable = b; }
 
 protected:
-    Button(const StringView& text, Widget* parent = nullptr);
-    explicit Button(Widget* parent = nullptr);
+    explicit Button(const StringView& text = {});
     virtual void paint_event(PaintEvent&) override;
 
 private:

+ 2 - 7
Libraries/LibGUI/CheckBox.cpp

@@ -52,13 +52,8 @@ static const int s_checked_bitmap_height = 9;
 static const int s_box_width = 13;
 static const int s_box_height = 13;
 
-CheckBox::CheckBox(Widget* parent)
-    : AbstractButton(parent)
-{
-}
-
-CheckBox::CheckBox(const StringView& text, Widget* parent)
-    : AbstractButton(text, parent)
+CheckBox::CheckBox(const StringView& text)
+    : AbstractButton(text)
 {
 }
 

+ 1 - 2
Libraries/LibGUI/CheckBox.h

@@ -38,8 +38,7 @@ public:
     virtual void click() override;
 
 private:
-    CheckBox(const StringView&, Widget* parent = nullptr);
-    explicit CheckBox(Widget* parent = nullptr);
+    explicit CheckBox(const StringView& = {});
 
     // These don't make sense for a check box, so hide them.
     using AbstractButton::auto_repeat_interval;

+ 1 - 2
Libraries/LibGUI/ColumnsView.cpp

@@ -47,8 +47,7 @@ static const char* s_arrow_bitmap_data = {
 static const int s_arrow_bitmap_width = 9;
 static const int s_arrow_bitmap_height = 9;
 
-ColumnsView::ColumnsView(Widget* parent)
-    : AbstractView(parent)
+ColumnsView::ColumnsView()
 {
     set_fill_with_background_color(true);
     set_background_role(ColorRole::Base);

+ 2 - 2
Libraries/LibGUI/ColumnsView.h

@@ -40,8 +40,8 @@ public:
     virtual ModelIndex index_at_event_position(const Gfx::Point&) const override;
 
 private:
-    ColumnsView(Widget* parent = nullptr);
-    virtual ~ColumnsView();
+    ColumnsView();
+    virtual ~ColumnsView() override;
     void push_column(ModelIndex& parent_index);
     void update_column_sizes();
 

+ 3 - 4
Libraries/LibGUI/ComboBox.cpp

@@ -35,8 +35,7 @@
 
 namespace GUI {
 
-ComboBox::ComboBox(Widget* parent)
-    : Widget(parent)
+ComboBox::ComboBox()
 {
     m_editor = add<TextBox>();
     m_editor->on_change = [this] {
@@ -57,11 +56,11 @@ ComboBox::ComboBox(Widget* parent)
             open();
     };
 
-    m_list_window = Window::construct(this);
+    m_list_window = add<Window>();
     // FIXME: This is obviously not a tooltip window, but it's the closest thing to what we want atm.
     m_list_window->set_window_type(WindowType::Tooltip);
 
-    m_list_view = ListView::construct(nullptr);
+    m_list_view = ListView::construct();
     m_list_view->horizontal_scrollbar().set_visible(false);
     m_list_window->set_main_widget(m_list_view);
 

+ 1 - 1
Libraries/LibGUI/ComboBox.h

@@ -56,7 +56,7 @@ public:
     Function<void()> on_return_pressed;
 
 protected:
-    explicit ComboBox(Widget* parent = nullptr);
+    ComboBox();
     virtual void resize_event(ResizeEvent&) override;
 
 private:

+ 1 - 2
Libraries/LibGUI/Frame.cpp

@@ -31,8 +31,7 @@
 
 namespace GUI {
 
-Frame::Frame(Widget* parent)
-    : Widget(parent)
+Frame::Frame()
 {
     set_frame_thickness(2);
     set_frame_shape(Gfx::FrameShape::Container);

+ 1 - 1
Libraries/LibGUI/Frame.h

@@ -49,7 +49,7 @@ public:
     Gfx::Rect frame_inner_rect() const { return frame_inner_rect_for_size(size()); }
 
 protected:
-    explicit Frame(Widget* parent = nullptr);
+    Frame();
     void paint_event(PaintEvent&) override;
 
 private:

+ 2 - 8
Libraries/LibGUI/GroupBox.cpp

@@ -32,14 +32,8 @@
 
 namespace GUI {
 
-GroupBox::GroupBox(Widget* parent)
-    : GroupBox({}, parent)
-{
-}
-
-GroupBox::GroupBox(const StringView& title, Widget* parent)
-    : Widget(parent)
-    , m_title(title)
+GroupBox::GroupBox(const StringView& title)
+    : m_title(title)
 {
 }
 

+ 1 - 2
Libraries/LibGUI/GroupBox.h

@@ -39,8 +39,7 @@ public:
     void set_title(const StringView&);
 
 protected:
-    explicit GroupBox(Widget* parent = nullptr);
-    GroupBox(const StringView& title, Widget* parent = nullptr);
+    explicit GroupBox(const StringView& title = {});
 
     virtual void paint_event(PaintEvent&) override;
 

+ 1 - 2
Libraries/LibGUI/ItemView.cpp

@@ -37,8 +37,7 @@
 
 namespace GUI {
 
-ItemView::ItemView(Widget* parent)
-    : AbstractView(parent)
+ItemView::ItemView()
 {
     set_background_role(ColorRole::Base);
     set_foreground_role(ColorRole::BaseText);

+ 1 - 1
Libraries/LibGUI/ItemView.h

@@ -48,7 +48,7 @@ public:
     virtual ModelIndex index_at_event_position(const Gfx::Point&) const override;
 
 private:
-    explicit ItemView(Widget* parent = nullptr);
+    ItemView();
 
     virtual void did_update_model() override;
     virtual void paint_event(PaintEvent&) override;

+ 2 - 8
Libraries/LibGUI/Label.cpp

@@ -32,14 +32,8 @@
 
 namespace GUI {
 
-Label::Label(Widget* parent)
-    : Label({}, parent)
-{
-}
-
-Label::Label(const StringView& text, Widget* parent)
-    : Frame(parent)
-    , m_text(text)
+Label::Label(const StringView& text)
+    : m_text(text)
 {
     set_frame_thickness(0);
     set_frame_shadow(Gfx::FrameShadow::Plain);

+ 1 - 2
Libraries/LibGUI/Label.h

@@ -52,8 +52,7 @@ public:
     void size_to_fit();
 
 protected:
-    explicit Label(Widget* parent = nullptr);
-    Label(const StringView& text, Widget* parent = nullptr);
+    explicit Label(const StringView& text = {});
 
     virtual void paint_event(PaintEvent&) override;
 

+ 1 - 2
Libraries/LibGUI/LazyWidget.cpp

@@ -28,8 +28,7 @@
 
 namespace GUI {
 
-LazyWidget::LazyWidget(Widget* parent)
-    : Widget(parent)
+LazyWidget::LazyWidget()
 {
 }
 

+ 1 - 1
Libraries/LibGUI/LazyWidget.h

@@ -38,7 +38,7 @@ public:
     Function<void(LazyWidget&)> on_first_show;
 
 protected:
-    explicit LazyWidget(Widget* parent = nullptr);
+    LazyWidget();
 
 private:
     virtual void show_event(ShowEvent&) override;

+ 1 - 2
Libraries/LibGUI/ListView.cpp

@@ -33,8 +33,7 @@
 
 namespace GUI {
 
-ListView::ListView(Widget* parent)
-    : AbstractView(parent)
+ListView::ListView()
 {
     set_background_role(ColorRole::Base);
     set_foreground_role(ColorRole::BaseText);

+ 2 - 1
Libraries/LibGUI/ListView.h

@@ -33,7 +33,6 @@ namespace GUI {
 class ListView : public AbstractView {
     C_OBJECT(ListView)
 public:
-    explicit ListView(Widget* parent = nullptr);
     virtual ~ListView() override;
 
     int item_height() const { return 16; }
@@ -54,6 +53,8 @@ public:
     void set_model_column(int column) { m_model_column = column; }
 
 private:
+    ListView();
+
     virtual void did_update_model() override;
     virtual void paint_event(PaintEvent&) override;
     virtual void doubleclick_event(MouseEvent&) override;

+ 1 - 1
Libraries/LibGUI/ModelEditingDelegate.h

@@ -77,7 +77,7 @@ public:
 
     virtual RefPtr<Widget> create_widget() override
     {
-        auto textbox = TextBox::construct(nullptr);
+        auto textbox = TextBox::construct();
         textbox->on_return_pressed = [this] {
             commit();
         };

+ 1 - 2
Libraries/LibGUI/ProgressBar.cpp

@@ -32,8 +32,7 @@
 
 namespace GUI {
 
-ProgressBar::ProgressBar(Widget* parent)
-    : Frame(parent)
+ProgressBar::ProgressBar()
 {
 }
 

+ 1 - 1
Libraries/LibGUI/ProgressBar.h

@@ -56,7 +56,7 @@ public:
     void set_format(Format format) { m_format = format; }
 
 protected:
-    explicit ProgressBar(Widget* parent = nullptr);
+    ProgressBar();
 
     virtual void paint_event(PaintEvent&) override;
 

+ 2 - 7
Libraries/LibGUI/RadioButton.cpp

@@ -33,13 +33,8 @@
 
 namespace GUI {
 
-RadioButton::RadioButton(Widget* parent)
-    : RadioButton({}, parent)
-{
-}
-
-RadioButton::RadioButton(const StringView& text, Widget* parent)
-    : AbstractButton(text, parent)
+RadioButton::RadioButton(const StringView& text)
+    : AbstractButton(text)
 {
 }
 

+ 1 - 2
Libraries/LibGUI/RadioButton.h

@@ -38,8 +38,7 @@ public:
     virtual void click() override;
 
 protected:
-    explicit RadioButton(Widget* parent = nullptr);
-    explicit RadioButton(const StringView& text, Widget* parent = nullptr);
+    explicit RadioButton(const StringView& text = {});
     virtual void paint_event(PaintEvent&) override;
 
 private:

+ 1 - 2
Libraries/LibGUI/ResizeCorner.cpp

@@ -75,8 +75,7 @@ static Gfx::CharacterBitmap* s_resize_corner_highlights_bitmap;
 static const int s_resize_corner_bitmap_width = 16;
 static const int s_resize_corner_bitmap_height = 16;
 
-ResizeCorner::ResizeCorner(Widget* parent)
-    : Widget(parent)
+ResizeCorner::ResizeCorner()
 {
     set_background_role(ColorRole::Button);
     set_size_policy(SizePolicy::Fixed, SizePolicy::Fixed);

+ 1 - 1
Libraries/LibGUI/ResizeCorner.h

@@ -34,7 +34,7 @@ public:
     virtual ~ResizeCorner() override;
 
 protected:
-    explicit ResizeCorner(Widget* parent = nullptr);
+    ResizeCorner();
 
     virtual void paint_event(PaintEvent&) override;
     virtual void mousedown_event(MouseEvent&) override;

+ 2 - 8
Libraries/LibGUI/ScrollBar.cpp

@@ -86,14 +86,8 @@ static Gfx::CharacterBitmap* s_down_arrow_bitmap;
 static Gfx::CharacterBitmap* s_left_arrow_bitmap;
 static Gfx::CharacterBitmap* s_right_arrow_bitmap;
 
-ScrollBar::ScrollBar(Widget* parent)
-    : ScrollBar(Orientation::Vertical, parent)
-{
-}
-
-ScrollBar::ScrollBar(Orientation orientation, Widget* parent)
-    : Widget(parent)
-    , m_orientation(orientation)
+ScrollBar::ScrollBar(Orientation orientation)
+    : m_orientation(orientation)
 {
     m_automatic_scrolling_timer = add<Core::Timer>();
     if (!s_up_arrow_bitmap)

+ 1 - 2
Libraries/LibGUI/ScrollBar.h

@@ -65,8 +65,7 @@ public:
     };
 
 private:
-    explicit ScrollBar(Widget* parent = nullptr);
-    explicit ScrollBar(Orientation, Widget* parent = nullptr);
+    explicit ScrollBar(Gfx::Orientation = Gfx::Orientation::Vertical);
 
     virtual void paint_event(PaintEvent&) override;
     virtual void mousedown_event(MouseEvent&) override;

+ 4 - 5
Libraries/LibGUI/ScrollableWidget.cpp

@@ -29,17 +29,16 @@
 
 namespace GUI {
 
-ScrollableWidget::ScrollableWidget(Widget* parent)
-    : Frame(parent)
+ScrollableWidget::ScrollableWidget()
 {
-    m_vertical_scrollbar = ScrollBar::construct(Orientation::Vertical, this);
+    m_vertical_scrollbar = add<ScrollBar>(Orientation::Vertical);
     m_vertical_scrollbar->set_step(4);
     m_vertical_scrollbar->on_change = [this](int) {
         did_scroll();
         update();
     };
 
-    m_horizontal_scrollbar = ScrollBar::construct(Orientation::Horizontal, this);
+    m_horizontal_scrollbar = add<ScrollBar>(Orientation::Horizontal);
     m_horizontal_scrollbar->set_step(4);
     m_horizontal_scrollbar->set_big_step(30);
     m_horizontal_scrollbar->on_change = [this](int) {
@@ -47,7 +46,7 @@ ScrollableWidget::ScrollableWidget(Widget* parent)
         update();
     };
 
-    m_corner_widget = Widget::construct(this);
+    m_corner_widget = add<Widget>();
     m_corner_widget->set_fill_with_background_color(true);
 }
 

+ 1 - 1
Libraries/LibGUI/ScrollableWidget.h

@@ -71,7 +71,7 @@ public:
     Gfx::Point to_widget_position(const Gfx::Point& content_position) const;
 
 protected:
-    explicit ScrollableWidget(Widget* parent = nullptr);
+    ScrollableWidget();
     virtual void custom_layout() override;
     virtual void resize_event(ResizeEvent&) override;
     virtual void mousewheel_event(MouseEvent&) override;

+ 2 - 8
Libraries/LibGUI/Slider.cpp

@@ -33,14 +33,8 @@
 
 namespace GUI {
 
-Slider::Slider(Widget* parent)
-    : Slider(Orientation::Horizontal, parent)
-{
-}
-
-Slider::Slider(Orientation orientation, Widget* parent)
-    : Widget(parent)
-    , m_orientation(orientation)
+Slider::Slider(Orientation orientation)
+    : m_orientation(orientation)
 {
 }
 

+ 5 - 6
Libraries/LibGUI/Slider.h

@@ -74,8 +74,7 @@ public:
     Function<void(int)> on_value_changed;
 
 protected:
-    explicit Slider(Widget* = nullptr);
-    explicit Slider(Orientation, Widget* = nullptr);
+    explicit Slider(Orientation = Orientation::Vertical);
 
     virtual void paint_event(PaintEvent&) override;
     virtual void mousedown_event(MouseEvent&) override;
@@ -106,8 +105,8 @@ public:
     virtual ~VerticalSlider() override {}
 
 private:
-    explicit VerticalSlider(Widget* parent = nullptr)
-        : Slider(Orientation::Vertical, parent)
+    VerticalSlider()
+        : Slider(Orientation::Vertical)
     {
     }
 };
@@ -118,8 +117,8 @@ public:
     virtual ~HorizontalSlider() override {}
 
 private:
-    explicit HorizontalSlider(Widget* parent = nullptr)
-        : Slider(Orientation::Horizontal, parent)
+    HorizontalSlider()
+        : Slider(Orientation::Horizontal)
     {
     }
 };

+ 1 - 2
Libraries/LibGUI/SpinBox.cpp

@@ -30,8 +30,7 @@
 
 namespace GUI {
 
-SpinBox::SpinBox(Widget* parent)
-    : Widget(parent)
+SpinBox::SpinBox()
 {
     m_editor = add<TextBox>();
     m_editor->set_text("0");

+ 1 - 1
Libraries/LibGUI/SpinBox.h

@@ -47,7 +47,7 @@ public:
     Function<void(int value)> on_change;
 
 protected:
-    explicit SpinBox(Widget* parent = nullptr);
+    SpinBox();
 
     virtual void resize_event(ResizeEvent&) override;
 

+ 2 - 3
Libraries/LibGUI/Splitter.cpp

@@ -32,9 +32,8 @@
 
 namespace GUI {
 
-Splitter::Splitter(Orientation orientation, Widget* parent)
-    : Frame(parent)
-    , m_orientation(orientation)
+Splitter::Splitter(Orientation orientation)
+    : m_orientation(orientation)
 {
     set_background_role(ColorRole::Button);
     set_layout(make<BoxLayout>(orientation));

+ 5 - 5
Libraries/LibGUI/Splitter.h

@@ -36,7 +36,7 @@ public:
     virtual ~Splitter() override;
 
 protected:
-    Splitter(Gfx::Orientation, Widget* parent = nullptr);
+    explicit Splitter(Gfx::Orientation);
 
     virtual void paint_event(PaintEvent&) override;
     virtual void resize_event(ResizeEvent&) override;
@@ -68,8 +68,8 @@ public:
     virtual ~VerticalSplitter() override {}
 
 private:
-    explicit VerticalSplitter(Widget* parent = nullptr)
-        : Splitter(Gfx::Orientation::Vertical, parent)
+    VerticalSplitter()
+        : Splitter(Gfx::Orientation::Vertical)
     {
     }
 };
@@ -80,8 +80,8 @@ public:
     virtual ~HorizontalSplitter() override {}
 
 private:
-    explicit HorizontalSplitter(Widget* parent = nullptr)
-        : Splitter(Gfx::Orientation::Horizontal, parent)
+    HorizontalSplitter()
+        : Splitter(Gfx::Orientation::Horizontal)
     {
     }
 };

+ 1 - 2
Libraries/LibGUI/StackWidget.cpp

@@ -29,8 +29,7 @@
 
 namespace GUI {
 
-StackWidget::StackWidget(Widget* parent)
-    : Widget(parent)
+StackWidget::StackWidget()
 {
 }
 

+ 1 - 1
Libraries/LibGUI/StackWidget.h

@@ -42,7 +42,7 @@ public:
     Function<void(Widget*)> on_active_widget_change;
 
 protected:
-    explicit StackWidget(Widget* parent = nullptr);
+    StackWidget();
     virtual void child_event(Core::ChildEvent&) override;
     virtual void resize_event(ResizeEvent&) override;
 

+ 3 - 9
Libraries/LibGUI/StatusBar.cpp

@@ -34,13 +34,7 @@
 
 namespace GUI {
 
-StatusBar::StatusBar(Widget* parent)
-    : StatusBar(1, parent)
-{
-}
-
-StatusBar::StatusBar(int label_count, Widget* parent)
-    : Widget(parent)
+StatusBar::StatusBar(int label_count)
 {
     set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
     set_preferred_size(0, 20);
@@ -54,7 +48,7 @@ StatusBar::StatusBar(int label_count, Widget* parent)
     for (auto i = 0; i < label_count; i++)
         m_labels.append(create_label());
 
-    m_corner = ResizeCorner::construct(this);
+    m_corner = add<ResizeCorner>();
 }
 
 StatusBar::~StatusBar()
@@ -63,7 +57,7 @@ StatusBar::~StatusBar()
 
 NonnullRefPtr<Label> StatusBar::create_label()
 {
-    auto label = Label::construct(this);
+    auto label = add<Label>();
     label->set_frame_shadow(Gfx::FrameShadow::Sunken);
     label->set_frame_shape(Gfx::FrameShape::Panel);
     label->set_frame_thickness(1);

+ 1 - 2
Libraries/LibGUI/StatusBar.h

@@ -41,8 +41,7 @@ public:
     void set_text(int index, const StringView&);
 
 protected:
-    explicit StatusBar(Widget* parent = nullptr);
-    explicit StatusBar(int label_count, Widget* parent = nullptr);
+    explicit StatusBar(int label_count = 1);
     virtual void paint_event(PaintEvent&) override;
 
 private:

+ 1 - 2
Libraries/LibGUI/TabWidget.cpp

@@ -33,8 +33,7 @@
 
 namespace GUI {
 
-TabWidget::TabWidget(Widget* parent)
-    : Widget(parent)
+TabWidget::TabWidget()
 {
 }
 

+ 2 - 1
Libraries/LibGUI/TabWidget.h

@@ -38,7 +38,6 @@ public:
         Bottom,
     };
 
-    explicit TabWidget(Widget* parent = nullptr);
     virtual ~TabWidget() override;
 
     TabPosition tab_position() const { return m_tab_position; }
@@ -56,6 +55,8 @@ public:
     void add_widget(const StringView&, Widget*);
 
 protected:
+    TabWidget();
+
     virtual void paint_event(PaintEvent&) override;
     virtual void child_event(Core::ChildEvent&) override;
     virtual void resize_event(ResizeEvent&) override;

+ 1 - 2
Libraries/LibGUI/TableView.cpp

@@ -38,8 +38,7 @@
 
 namespace GUI {
 
-TableView::TableView(Widget* parent)
-    : AbstractTableView(parent)
+TableView::TableView()
 {
     set_background_role(ColorRole::Base);
     set_foreground_role(ColorRole::BaseText);

+ 1 - 1
Libraries/LibGUI/TableView.h

@@ -36,7 +36,7 @@ public:
     virtual ~TableView() override;
 
 protected:
-    explicit TableView(Widget* parent = nullptr);
+    TableView();
 
     virtual void paint_event(PaintEvent&) override;
 };

+ 2 - 2
Libraries/LibGUI/TextBox.cpp

@@ -28,8 +28,8 @@
 
 namespace GUI {
 
-TextBox::TextBox(Widget* parent)
-    : TextEditor(TextEditor::SingleLine, parent)
+TextBox::TextBox()
+    : TextEditor(TextEditor::SingleLine)
 {
 }
 

部分文件因为文件数量过多而无法显示