LibGUI: Remove parent parameter to GUI::Widget constructor

This commit is contained in:
Andreas Kling 2020-02-23 12:07:13 +01:00
parent 4ce28c32d1
commit c5d913970a
Notes: sideshowbarker 2024-07-19 09:08:33 +09:00
114 changed files with 207 additions and 313 deletions

View file

@ -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>();

View file

@ -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;

View file

@ -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());

View file

@ -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);

View file

@ -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 };

View file

@ -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"));

View file

@ -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;

View file

@ -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) {

View file

@ -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);
}

View file

@ -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;

View file

@ -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;

View file

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

View file

@ -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)

View file

@ -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;

View file

@ -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);

View file

@ -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;

View file

@ -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>());

View file

@ -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;

View file

@ -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;

View file

@ -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 };

View file

@ -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 });

View file

@ -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 };

View file

@ -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 });

View file

@ -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;

View file

@ -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()));

View file

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

View file

@ -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;

View file

@ -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 };

View file

@ -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) {

View file

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

View file

@ -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;
};

View file

@ -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)
{
}

View file

@ -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;

View file

@ -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()
{
}

View file

@ -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();
};

View file

@ -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")

View file

@ -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();
});

View file

@ -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);

View file

@ -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;

View file

@ -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());

View file

@ -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);

View file

@ -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&);

View file

@ -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);

View file

@ -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"));

View file

@ -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>

View file

@ -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);

View file

@ -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"));

View file

@ -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;

View file

@ -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] {

View file

@ -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;

View file

@ -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);
}

View file

@ -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;

View file

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

View file

@ -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;

View file

@ -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)
{
}

View file

@ -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:

View file

@ -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)
{
}

View file

@ -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;

View file

@ -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);

View file

@ -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();

View file

@ -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);

View file

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

View file

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

View file

@ -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:

View file

@ -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)
{
}

View file

@ -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;

View file

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

View file

@ -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;

View file

@ -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);

View file

@ -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;

View file

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

View file

@ -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;

View file

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

View file

@ -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;

View file

@ -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();
};

View file

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

View file

@ -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;

View file

@ -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)
{
}

View file

@ -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:

View file

@ -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);

View file

@ -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;

View file

@ -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)

View file

@ -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;

View file

@ -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);
}

View file

@ -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;

View file

@ -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)
{
}

View file

@ -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)
{
}
};

View file

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

View file

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

View file

@ -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));

View file

@ -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)
{
}
};

View file

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

View file

@ -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;

View file

@ -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);

View file

@ -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:

View file

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

View file

@ -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;

View file

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

View file

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

View file

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

Some files were not shown because too many files have changed in this diff Show more