Skip to content

Commit

Permalink
Userspace: Use Core::Object::add() when building interfaces
Browse files Browse the repository at this point in the history
  • Loading branch information
awesomekling committed Feb 23, 2020
1 parent 7ec7587 commit 3d20da9
Show file tree
Hide file tree
Showing 87 changed files with 403 additions and 438 deletions.
12 changes: 6 additions & 6 deletions Applications/About/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,12 @@ int main(int argc, char** argv)
widget->layout()->set_margins({ 0, 8, 0, 8 });
widget->layout()->set_spacing(8);

auto icon_label = GUI::Label::construct(widget);
auto icon_label = widget->add<GUI::Label>();
icon_label->set_icon(Gfx::Bitmap::load_from_file("/res/icons/serenity.png"));
icon_label->set_size_policy(GUI::SizePolicy::Fixed, GUI::SizePolicy::Fixed);
icon_label->set_preferred_size(icon_label->icon()->size());

auto label = GUI::Label::construct(widget);
auto label = widget->add<GUI::Label>();
label->set_font(Gfx::Font::default_bold_font());
label->set_text("SerenityOS");
label->set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed);
Expand All @@ -84,22 +84,22 @@ int main(int argc, char** argv)
int rc = uname(&uts);
ASSERT(rc == 0);

auto version_label = GUI::Label::construct(widget);
auto version_label = widget->add<GUI::Label>();
version_label->set_text(String::format("Version %s", uts.release));
version_label->set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed);
version_label->set_preferred_size(0, 11);

auto git_info_label = GUI::Label::construct(widget);
auto git_info_label = widget->add<GUI::Label>();
git_info_label->set_text(String::format("Built on %s@%s", GIT_BRANCH, GIT_COMMIT));
git_info_label->set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed);
git_info_label->set_preferred_size(0, 11);

auto git_changes_label = GUI::Label::construct(widget);
auto git_changes_label = widget->add<GUI::Label>();
git_changes_label->set_text(String::format("Changes: %s", GIT_CHANGES));
git_changes_label->set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed);
git_changes_label->set_preferred_size(0, 11);

auto quit_button = GUI::Button::construct(widget);
auto quit_button = widget->add<GUI::Button>();
quit_button->set_text("Okay");
quit_button->set_size_policy(GUI::SizePolicy::Fixed, GUI::SizePolicy::Fixed);
quit_button->set_preferred_size(100, 20);
Expand Down
10 changes: 5 additions & 5 deletions Applications/Browser/InspectorWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ InspectorWidget::InspectorWidget(GUI::Widget* parent)
: GUI::Widget(parent)
{
set_layout(make<GUI::VerticalBoxLayout>());
auto splitter = GUI::VerticalSplitter::construct(this);
m_dom_tree_view = GUI::TreeView::construct(splitter);
auto splitter = add<GUI::VerticalSplitter>();
m_dom_tree_view = splitter->add<GUI::TreeView>();
m_dom_tree_view->on_selection = [this](auto& index) {
auto* node = static_cast<Node*>(index.internal_data());
node->document().set_inspected_node(node);
Expand All @@ -55,13 +55,13 @@ InspectorWidget::InspectorWidget(GUI::Widget* parent)
m_computed_style_table_view->set_model(nullptr);
}
};
m_style_table_view = GUI::TableView::construct(nullptr);
m_style_table_view = GUI::TableView::construct();
m_style_table_view->set_size_columns_to_fit_content(true);

m_computed_style_table_view = GUI::TableView::construct(nullptr);
m_computed_style_table_view = GUI::TableView::construct();
m_computed_style_table_view->set_size_columns_to_fit_content(true);

auto tabwidget = GUI::TabWidget::construct(splitter);
auto tabwidget = splitter->add<GUI::TabWidget>();
tabwidget->add_widget("Styles", m_style_table_view);
tabwidget->add_widget("Computed", m_computed_style_table_view);
}
Expand Down
8 changes: 4 additions & 4 deletions Applications/Browser/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ int main(int argc, char** argv)
widget->set_layout(make<GUI::VerticalBoxLayout>());
widget->layout()->set_spacing(0);

auto toolbar = GUI::ToolBar::construct(widget);
auto html_widget = HtmlView::construct(widget);
auto toolbar = widget->add<GUI::ToolBar>();
auto html_widget = widget->add<HtmlView>();

History<URL> history;

Expand Down Expand Up @@ -121,7 +121,7 @@ int main(int argc, char** argv)
html_widget->reload();
}));

auto location_box = GUI::TextBox::construct(toolbar);
auto location_box = toolbar->add<GUI::TextBox>();

location_box->on_return_pressed = [&] {
html_widget->load(location_box->text());
Expand Down Expand Up @@ -151,7 +151,7 @@ int main(int argc, char** argv)
location_box->set_focus(true);
});

auto statusbar = GUI::StatusBar::construct(widget);
auto statusbar = widget->add<GUI::StatusBar>();

html_widget->on_link_hover = [&](auto& href) {
statusbar->set_text(href);
Expand Down
43 changes: 21 additions & 22 deletions Applications/Calculator/CalculatorWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,15 @@
#include <LibGUI/Label.h>
#include <LibGUI/TextBox.h>

CalculatorWidget::CalculatorWidget(GUI::Widget* parent)
: GUI::Widget(parent)
CalculatorWidget::CalculatorWidget()
{
set_fill_with_background_color(true);

m_entry = GUI::TextBox::construct(this);
m_entry = add<GUI::TextBox>();
m_entry->set_relative_rect(5, 5, 244, 26);
m_entry->set_text_alignment(Gfx::TextAlignment::CenterRight);

m_label = GUI::Label::construct(this);
m_label = add<GUI::Label>();
m_label->set_relative_rect(12, 42, 27, 27);
m_label->set_foreground_color(Color::NamedColor::Red);
m_label->set_frame_shadow(Gfx::FrameShadow::Sunken);
Expand All @@ -49,7 +48,7 @@ CalculatorWidget::CalculatorWidget(GUI::Widget* parent)
update_display();

for (int i = 0; i < 10; i++) {
m_digit_button[i] = GUI::Button::construct(this);
m_digit_button[i] = add<GUI::Button>();
auto& button = *m_digit_button[i];
int p = i ? i + 2 : 0;
int x = 55 + (p % 3) * 39;
Expand All @@ -59,31 +58,31 @@ CalculatorWidget::CalculatorWidget(GUI::Widget* parent)
add_button(button, i);
}

m_mem_add_button = GUI::Button::construct(this);
m_mem_add_button = add<GUI::Button>();
m_mem_add_button->move_to(9, 177);
m_mem_add_button->set_foreground_color(Color::NamedColor::Red);
m_mem_add_button->set_text("M+");
add_button(*m_mem_add_button, Calculator::Operation::MemAdd);

m_mem_save_button = GUI::Button::construct(this);
m_mem_save_button = add<GUI::Button>();
m_mem_save_button->move_to(9, 144);
m_mem_save_button->set_foreground_color(Color::NamedColor::Red);
m_mem_save_button->set_text("MS");
add_button(*m_mem_save_button, Calculator::Operation::MemSave);

m_mem_recall_button = GUI::Button::construct(this);
m_mem_recall_button = add<GUI::Button>();
m_mem_recall_button->move_to(9, 111);
m_mem_recall_button->set_foreground_color(Color::NamedColor::Red);
m_mem_recall_button->set_text("MR");
add_button(*m_mem_recall_button, Calculator::Operation::MemRecall);

m_mem_clear_button = GUI::Button::construct(this);
m_mem_clear_button = add<GUI::Button>();
m_mem_clear_button->move_to(9, 78);
m_mem_clear_button->set_foreground_color(Color::NamedColor::Red);
m_mem_clear_button->set_text("MC");
add_button(*m_mem_clear_button, Calculator::Operation::MemClear);

m_clear_button = GUI::Button::construct(this);
m_clear_button = add<GUI::Button>();
m_clear_button->set_foreground_color(Color::NamedColor::Red);
m_clear_button->set_text("C");
m_clear_button->on_click = [this](GUI::Button&) {
Expand All @@ -94,7 +93,7 @@ CalculatorWidget::CalculatorWidget(GUI::Widget* parent)
add_button(*m_clear_button);
m_clear_button->set_relative_rect(187, 40, 60, 28);

m_clear_error_button = GUI::Button::construct(this);
m_clear_error_button = add<GUI::Button>();
m_clear_error_button->set_foreground_color(Color::NamedColor::Red);
m_clear_error_button->set_text("CE");
m_clear_error_button->on_click = [this](GUI::Button&) {
Expand All @@ -104,7 +103,7 @@ CalculatorWidget::CalculatorWidget(GUI::Widget* parent)
add_button(*m_clear_error_button);
m_clear_error_button->set_relative_rect(124, 40, 59, 28);

m_backspace_button = GUI::Button::construct(this);
m_backspace_button = add<GUI::Button>();
m_backspace_button->set_foreground_color(Color::NamedColor::Red);
m_backspace_button->set_text("Backspace");
m_backspace_button->on_click = [this](GUI::Button&) {
Expand All @@ -114,7 +113,7 @@ CalculatorWidget::CalculatorWidget(GUI::Widget* parent)
add_button(*m_backspace_button);
m_backspace_button->set_relative_rect(55, 40, 65, 28);

m_decimal_point_button = GUI::Button::construct(this);
m_decimal_point_button = add<GUI::Button>();
m_decimal_point_button->move_to(133, 177);
m_decimal_point_button->set_foreground_color(Color::NamedColor::Blue);
m_decimal_point_button->set_text(".");
Expand All @@ -124,55 +123,55 @@ CalculatorWidget::CalculatorWidget(GUI::Widget* parent)
};
add_button(*m_decimal_point_button);

m_sign_button = GUI::Button::construct(this);
m_sign_button = add<GUI::Button>();
m_sign_button->move_to(94, 177);
m_sign_button->set_foreground_color(Color::NamedColor::Blue);
m_sign_button->set_text("+/-");
add_button(*m_sign_button, Calculator::Operation::ToggleSign);

m_add_button = GUI::Button::construct(this);
m_add_button = add<GUI::Button>();
m_add_button->move_to(172, 177);
m_add_button->set_foreground_color(Color::NamedColor::Red);
m_add_button->set_text("+");
add_button(*m_add_button, Calculator::Operation::Add);

m_subtract_button = GUI::Button::construct(this);
m_subtract_button = add<GUI::Button>();
m_subtract_button->move_to(172, 144);
m_subtract_button->set_foreground_color(Color::NamedColor::Red);
m_subtract_button->set_text("-");
add_button(*m_subtract_button, Calculator::Operation::Subtract);

m_multiply_button = GUI::Button::construct(this);
m_multiply_button = add<GUI::Button>();
m_multiply_button->move_to(172, 111);
m_multiply_button->set_foreground_color(Color::NamedColor::Red);
m_multiply_button->set_text("*");
add_button(*m_multiply_button, Calculator::Operation::Multiply);

m_divide_button = GUI::Button::construct(this);
m_divide_button = add<GUI::Button>();
m_divide_button->move_to(172, 78);
m_divide_button->set_foreground_color(Color::NamedColor::Red);
m_divide_button->set_text("/");
add_button(*m_divide_button, Calculator::Operation::Divide);

m_sqrt_button = GUI::Button::construct(this);
m_sqrt_button = add<GUI::Button>();
m_sqrt_button->move_to(211, 78);
m_sqrt_button->set_foreground_color(Color::NamedColor::Blue);
m_sqrt_button->set_text("sqrt");
add_button(*m_sqrt_button, Calculator::Operation::Sqrt);

m_inverse_button = GUI::Button::construct(this);
m_inverse_button = add<GUI::Button>();
m_inverse_button->move_to(211, 144);
m_inverse_button->set_foreground_color(Color::NamedColor::Blue);
m_inverse_button->set_text("1/x");
add_button(*m_inverse_button, Calculator::Operation::Inverse);

m_percent_button = GUI::Button::construct(this);
m_percent_button = add<GUI::Button>();
m_percent_button->move_to(211, 111);
m_percent_button->set_foreground_color(Color::NamedColor::Blue);
m_percent_button->set_text("%");
add_button(*m_percent_button, Calculator::Operation::Percent);

m_equals_button = GUI::Button::construct(this);
m_equals_button = add<GUI::Button>();
m_equals_button->move_to(211, 177);
m_equals_button->set_foreground_color(Color::NamedColor::Red);
m_equals_button->set_text("=");
Expand Down
2 changes: 1 addition & 1 deletion Applications/Calculator/CalculatorWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class CalculatorWidget final : public GUI::Widget {
virtual ~CalculatorWidget() override;

private:
explicit CalculatorWidget(GUI::Widget*);
CalculatorWidget();
void add_button(GUI::Button&, Calculator::Operation);
void add_button(GUI::Button&, int);
void add_button(GUI::Button&);
Expand Down
2 changes: 1 addition & 1 deletion Applications/Calculator/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ int main(int argc, char** argv)
window->set_resizable(false);
window->set_rect({ 300, 200, 254, 213 });

auto calc_widget = CalculatorWidget::construct(nullptr);
auto calc_widget = CalculatorWidget::construct();
window->set_main_widget(calc_widget);

window->show();
Expand Down
6 changes: 3 additions & 3 deletions Applications/ChanViewer/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,17 +62,17 @@ int main(int argc, char** argv)
widget->set_fill_with_background_color(true);
widget->set_layout(make<GUI::VerticalBoxLayout>());

auto board_combo = GUI::ComboBox::construct(widget);
auto board_combo = widget->add<GUI::ComboBox>();
board_combo->set_only_allow_values_from_model(true);
board_combo->set_size_policy(GUI::SizePolicy::Fill, GUI::SizePolicy::Fixed);
board_combo->set_preferred_size(0, 20);
board_combo->set_model(BoardListModel::create());

auto catalog_view = GUI::TableView::construct(widget);
auto catalog_view = widget->add<GUI::TableView>();
catalog_view->set_model(ThreadCatalogModel::create());
auto& catalog_model = *static_cast<ThreadCatalogModel*>(catalog_view->model());

auto statusbar = GUI::StatusBar::construct(widget);
auto statusbar = widget->add<GUI::StatusBar>();

board_combo->on_change = [&] (auto&, const GUI::ModelIndex& index) {
auto selected_board = board_combo->model()->data(index, GUI::Model::Role::Custom);
Expand Down
24 changes: 12 additions & 12 deletions Applications/DisplayProperties/DisplayProperties.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -122,19 +122,19 @@ void DisplayPropertiesWidget::create_wallpaper_list()

void DisplayPropertiesWidget::create_frame()
{
auto tab_widget = GUI::TabWidget::construct(m_root_widget);
auto tab_widget = m_root_widget->add<GUI::TabWidget>();

// First, let's create the "Background" tab
auto background_splitter = GUI::VerticalSplitter::construct(nullptr);
auto background_splitter = GUI::VerticalSplitter::construct();
tab_widget->add_widget("Wallpaper", background_splitter);

auto background_content = GUI::Widget::construct(background_splitter.ptr());
auto background_content = background_splitter->add<GUI::Widget>();
background_content->set_layout(make<GUI::VerticalBoxLayout>());
background_content->layout()->set_margins({ 4, 4, 4, 4 });

m_wallpaper_preview = GUI::Label::construct(background_splitter);
m_wallpaper_preview = background_splitter->add<GUI::Label>();

auto wallpaper_list = GUI::ListView::construct(background_content);
auto wallpaper_list = background_content->add<GUI::ListView>();
wallpaper_list->set_background_color(Color::White);
wallpaper_list->set_model(*ItemListModel<AK::String>::create(m_wallpapers));

Expand All @@ -155,14 +155,14 @@ void DisplayPropertiesWidget::create_frame()
};

// Let's add the settings tab
auto settings_splitter = GUI::VerticalSplitter::construct(nullptr);
auto settings_splitter = GUI::VerticalSplitter::construct();
tab_widget->add_widget("Settings", settings_splitter);

auto settings_content = GUI::Widget::construct(settings_splitter.ptr());
auto settings_content = settings_splitter->add<GUI::Widget>();
settings_content->set_layout(make<GUI::VerticalBoxLayout>());
settings_content->layout()->set_margins({ 4, 4, 4, 4 });

auto resolution_list = GUI::ListView::construct(settings_content);
auto resolution_list = settings_content->add<GUI::ListView>();
resolution_list->set_background_color(Color::White);
resolution_list->set_model(*ItemListModel<Gfx::Size>::create(m_resolutions));

Expand All @@ -180,13 +180,13 @@ void DisplayPropertiesWidget::create_frame()
settings_content->layout()->add_spacer();

// Add the apply and cancel buttons
auto bottom_widget = GUI::Widget::construct(m_root_widget.ptr());
auto bottom_widget = m_root_widget->add<GUI::Widget>();
bottom_widget->set_layout(make<GUI::HorizontalBoxLayout>());
bottom_widget->layout()->add_spacer();
bottom_widget->set_size_policy(Orientation::Vertical, GUI::SizePolicy::Fixed);
bottom_widget->set_preferred_size(1, 22);

auto apply_button = GUI::Button::construct(bottom_widget);
auto apply_button = bottom_widget->add<GUI::Button>();
apply_button->set_text("Apply");
apply_button->set_size_policy(Orientation::Vertical, GUI::SizePolicy::Fixed);
apply_button->set_size_policy(Orientation::Horizontal, GUI::SizePolicy::Fixed);
Expand All @@ -195,7 +195,7 @@ void DisplayPropertiesWidget::create_frame()
send_settings_to_window_server(tab_widget->active_tab_index());
};

auto ok_button = GUI::Button::construct(bottom_widget);
auto ok_button = bottom_widget->add<GUI::Button>();
ok_button->set_text("OK");
ok_button->set_size_policy(Orientation::Vertical, GUI::SizePolicy::Fixed);
ok_button->set_size_policy(Orientation::Horizontal, GUI::SizePolicy::Fixed);
Expand All @@ -205,7 +205,7 @@ void DisplayPropertiesWidget::create_frame()
GUI::Application::the().quit();
};

auto cancel_button = GUI::Button::construct(bottom_widget);
auto cancel_button = bottom_widget->add<GUI::Button>();
cancel_button->set_text("Cancel");
cancel_button->set_size_policy(Orientation::Vertical, GUI::SizePolicy::Fixed);
cancel_button->set_size_policy(Orientation::Horizontal, GUI::SizePolicy::Fixed);
Expand Down
11 changes: 5 additions & 6 deletions Applications/FileManager/DirectoryView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -118,18 +118,17 @@ void DirectoryView::handle_activation(const GUI::ModelIndex& index)
}
};

DirectoryView::DirectoryView(GUI::Widget* parent)
: GUI::StackWidget(parent)
, m_model(GUI::FileSystemModel::create())
DirectoryView::DirectoryView()
: m_model(GUI::FileSystemModel::create())
{
set_active_widget(nullptr);
m_item_view = GUI::ItemView::construct(this);
m_item_view = add<GUI::ItemView>();
m_item_view->set_model(model());

m_columns_view = GUI::ColumnsView::construct(this);
m_columns_view = add<GUI::ColumnsView>();
m_columns_view->set_model(model());

m_table_view = GUI::TableView::construct(this);
m_table_view = add<GUI::TableView>();
m_table_view->set_model(GUI::SortingProxyModel::create(m_model));

m_table_view->model()->set_key_column_and_sort_order(GUI::FileSystemModel::Column::Name, GUI::SortOrder::Ascending);
Expand Down
Loading

0 comments on commit 3d20da9

Please sign in to comment.