mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:17:36 +00:00
LibGUI: Add GHBoxLayout and GVBoxLayout convenience classes
This commit is contained in:
parent
63364f8a5d
commit
d67da8c101
50 changed files with 128 additions and 114 deletions
|
@ -42,12 +42,12 @@ GAboutDialog::GAboutDialog(const StringView& name, const GraphicsBitmap* icon, C
|
|||
auto widget = GWidget::construct();
|
||||
set_main_widget(widget);
|
||||
widget->set_fill_with_background_color(true);
|
||||
widget->set_layout(make<GBoxLayout>(Orientation::Horizontal));
|
||||
widget->set_layout(make<GHBoxLayout>());
|
||||
|
||||
auto left_container = GWidget::construct(widget.ptr());
|
||||
left_container->set_size_policy(SizePolicy::Fixed, SizePolicy::Fill);
|
||||
left_container->set_preferred_size(48, 0);
|
||||
left_container->set_layout(make<GBoxLayout>(Orientation::Vertical));
|
||||
left_container->set_layout(make<GVBoxLayout>());
|
||||
auto icon_label = GLabel::construct(left_container);
|
||||
icon_label->set_icon(m_icon);
|
||||
icon_label->set_size_policy(SizePolicy::Fixed, SizePolicy::Fixed);
|
||||
|
@ -55,7 +55,7 @@ GAboutDialog::GAboutDialog(const StringView& name, const GraphicsBitmap* icon, C
|
|||
left_container->layout()->add_spacer();
|
||||
|
||||
auto right_container = GWidget::construct(widget.ptr());
|
||||
right_container->set_layout(make<GBoxLayout>(Orientation::Vertical));
|
||||
right_container->set_layout(make<GVBoxLayout>());
|
||||
right_container->layout()->set_margins({ 0, 4, 4, 4 });
|
||||
|
||||
auto make_label = [&](const StringView& text, bool bold = false) {
|
||||
|
@ -75,7 +75,7 @@ GAboutDialog::GAboutDialog(const StringView& name, const GraphicsBitmap* icon, C
|
|||
auto button_container = GWidget::construct(right_container.ptr());
|
||||
button_container->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
|
||||
button_container->set_preferred_size(0, 20);
|
||||
button_container->set_layout(make<GBoxLayout>(Orientation::Horizontal));
|
||||
button_container->set_layout(make<GHBoxLayout>());
|
||||
button_container->layout()->add_spacer();
|
||||
auto ok_button = GButton::construct("OK", button_container);
|
||||
ok_button->set_size_policy(SizePolicy::Fixed, SizePolicy::Fixed);
|
||||
|
|
|
@ -35,10 +35,6 @@ GBoxLayout::GBoxLayout(Orientation orientation)
|
|||
{
|
||||
}
|
||||
|
||||
GBoxLayout::~GBoxLayout()
|
||||
{
|
||||
}
|
||||
|
||||
void GBoxLayout::run(GWidget& widget)
|
||||
{
|
||||
bool should_log = false;
|
||||
|
|
|
@ -29,10 +29,10 @@
|
|||
#include <LibGUI/GLayout.h>
|
||||
#include <LibGUI/GWidget.h>
|
||||
|
||||
class GBoxLayout final : public GLayout {
|
||||
class GBoxLayout : public GLayout {
|
||||
public:
|
||||
explicit GBoxLayout(Orientation);
|
||||
virtual ~GBoxLayout() override;
|
||||
virtual ~GBoxLayout() override {}
|
||||
|
||||
Orientation orientation() const { return m_orientation; }
|
||||
|
||||
|
@ -41,3 +41,21 @@ public:
|
|||
private:
|
||||
Orientation m_orientation;
|
||||
};
|
||||
|
||||
class GVBoxLayout final : public GBoxLayout {
|
||||
public:
|
||||
explicit GVBoxLayout()
|
||||
: GBoxLayout(Orientation::Vertical)
|
||||
{
|
||||
}
|
||||
virtual ~GVBoxLayout() override {}
|
||||
};
|
||||
|
||||
class GHBoxLayout final : public GBoxLayout {
|
||||
public:
|
||||
explicit GHBoxLayout()
|
||||
: GBoxLayout(Orientation::Horizontal)
|
||||
{
|
||||
}
|
||||
virtual ~GHBoxLayout() override {}
|
||||
};
|
||||
|
|
|
@ -47,15 +47,15 @@ void GColorPicker::build()
|
|||
{
|
||||
auto horizontal_container = GWidget::construct();
|
||||
horizontal_container->set_fill_with_background_color(true);
|
||||
horizontal_container->set_layout(make<GBoxLayout>(Orientation::Horizontal));
|
||||
horizontal_container->set_layout(make<GHBoxLayout>());
|
||||
horizontal_container->layout()->set_margins({ 4, 4, 4, 4 });
|
||||
set_main_widget(horizontal_container);
|
||||
|
||||
auto left_vertical_container = GWidget::construct(horizontal_container.ptr());
|
||||
left_vertical_container->set_layout(make<GBoxLayout>(Orientation::Vertical));
|
||||
left_vertical_container->set_layout(make<GVBoxLayout>());
|
||||
|
||||
auto right_vertical_container = GWidget::construct(horizontal_container.ptr());
|
||||
right_vertical_container->set_layout(make<GBoxLayout>(Orientation::Vertical));
|
||||
right_vertical_container->set_layout(make<GVBoxLayout>());
|
||||
|
||||
enum RGBComponent {
|
||||
Red,
|
||||
|
|
|
@ -81,16 +81,16 @@ GFilePicker::GFilePicker(Mode mode, const StringView& file_name, const StringVie
|
|||
set_rect(200, 200, 700, 400);
|
||||
auto horizontal_container = GWidget::construct();
|
||||
set_main_widget(horizontal_container);
|
||||
horizontal_container->set_layout(make<GBoxLayout>(Orientation::Horizontal));
|
||||
horizontal_container->set_layout(make<GHBoxLayout>());
|
||||
horizontal_container->layout()->set_margins({ 4, 4, 4, 4 });
|
||||
horizontal_container->set_fill_with_background_color(true);
|
||||
|
||||
auto vertical_container = GWidget::construct(horizontal_container.ptr());
|
||||
vertical_container->set_layout(make<GBoxLayout>(Orientation::Vertical));
|
||||
vertical_container->set_layout(make<GVBoxLayout>());
|
||||
vertical_container->layout()->set_spacing(4);
|
||||
|
||||
auto upper_container = GWidget::construct(vertical_container.ptr());
|
||||
upper_container->set_layout(make<GBoxLayout>(Orientation::Horizontal));
|
||||
upper_container->set_layout(make<GHBoxLayout>());
|
||||
upper_container->layout()->set_spacing(4);
|
||||
upper_container->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
|
||||
upper_container->set_preferred_size(0, 26);
|
||||
|
@ -148,7 +148,7 @@ GFilePicker::GFilePicker(Mode mode, const StringView& file_name, const StringVie
|
|||
toolbar->add_action(*mkdir_action);
|
||||
|
||||
auto lower_container = GWidget::construct(vertical_container.ptr());
|
||||
lower_container->set_layout(make<GBoxLayout>(Orientation::Vertical));
|
||||
lower_container->set_layout(make<GVBoxLayout>());
|
||||
lower_container->layout()->set_spacing(4);
|
||||
lower_container->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
|
||||
lower_container->set_preferred_size(0, 60);
|
||||
|
@ -156,7 +156,7 @@ GFilePicker::GFilePicker(Mode mode, const StringView& file_name, const StringVie
|
|||
auto filename_container = GWidget::construct(lower_container.ptr());
|
||||
filename_container->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
|
||||
filename_container->set_preferred_size(0, 20);
|
||||
filename_container->set_layout(make<GBoxLayout>(Orientation::Horizontal));
|
||||
filename_container->set_layout(make<GHBoxLayout>());
|
||||
auto filename_label = GLabel::construct("File name:", filename_container);
|
||||
filename_label->set_text_alignment(TextAlignment::CenterLeft);
|
||||
filename_label->set_size_policy(SizePolicy::Fixed, SizePolicy::Fill);
|
||||
|
@ -187,7 +187,7 @@ GFilePicker::GFilePicker(Mode mode, const StringView& file_name, const StringVie
|
|||
auto button_container = GWidget::construct(lower_container.ptr());
|
||||
button_container->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
|
||||
button_container->set_preferred_size(0, 20);
|
||||
button_container->set_layout(make<GBoxLayout>(Orientation::Horizontal));
|
||||
button_container->set_layout(make<GHBoxLayout>());
|
||||
button_container->layout()->set_spacing(4);
|
||||
button_container->layout()->add_spacer();
|
||||
|
||||
|
@ -227,7 +227,7 @@ GFilePicker::GFilePicker(Mode mode, const StringView& file_name, const StringVie
|
|||
preview_container->set_frame_shape(FrameShape::Container);
|
||||
preview_container->set_frame_shadow(FrameShadow::Sunken);
|
||||
preview_container->set_frame_thickness(2);
|
||||
preview_container->set_layout(make<GBoxLayout>(Orientation::Vertical));
|
||||
preview_container->set_layout(make<GVBoxLayout>());
|
||||
preview_container->layout()->set_margins({ 8, 8, 8, 8 });
|
||||
|
||||
m_preview_image_label = GLabel::construct(preview_container);
|
||||
|
|
|
@ -54,7 +54,7 @@ void GInputBox::build()
|
|||
|
||||
set_rect(x(), y(), max_width + 80, 80);
|
||||
|
||||
widget->set_layout(make<GBoxLayout>(Orientation::Vertical));
|
||||
widget->set_layout(make<GVBoxLayout>());
|
||||
widget->set_fill_with_background_color(true);
|
||||
|
||||
widget->layout()->set_margins({ 8, 8, 8, 8 });
|
||||
|
@ -71,10 +71,10 @@ void GInputBox::build()
|
|||
auto button_container_outer = GWidget::construct(widget.ptr());
|
||||
button_container_outer->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
|
||||
button_container_outer->set_preferred_size(0, 20);
|
||||
button_container_outer->set_layout(make<GBoxLayout>(Orientation::Vertical));
|
||||
button_container_outer->set_layout(make<GVBoxLayout>());
|
||||
|
||||
auto button_container_inner = GWidget::construct(button_container_outer.ptr());
|
||||
button_container_inner->set_layout(make<GBoxLayout>(Orientation::Horizontal));
|
||||
button_container_inner->set_layout(make<GHBoxLayout>());
|
||||
button_container_inner->layout()->set_spacing(8);
|
||||
|
||||
m_cancel_button = GButton::construct(button_container_inner);
|
||||
|
|
|
@ -82,7 +82,7 @@ void GMessageBox::build()
|
|||
int text_width = widget->font().width(m_text);
|
||||
int icon_width = 0;
|
||||
|
||||
widget->set_layout(make<GBoxLayout>(Orientation::Vertical));
|
||||
widget->set_layout(make<GVBoxLayout>());
|
||||
widget->set_fill_with_background_color(true);
|
||||
|
||||
widget->layout()->set_margins({ 0, 15, 0, 15 });
|
||||
|
@ -91,7 +91,7 @@ void GMessageBox::build()
|
|||
RefPtr<GWidget> message_container = widget;
|
||||
if (m_type != Type::None) {
|
||||
message_container = GWidget::construct(widget.ptr());
|
||||
message_container->set_layout(make<GBoxLayout>(Orientation::Horizontal));
|
||||
message_container->set_layout(make<GHBoxLayout>());
|
||||
message_container->layout()->set_margins({ 8, 0, 8, 0 });
|
||||
message_container->layout()->set_spacing(8);
|
||||
|
||||
|
@ -107,7 +107,7 @@ void GMessageBox::build()
|
|||
label->set_preferred_size(text_width, 16);
|
||||
|
||||
auto button_container = GWidget::construct(widget.ptr());
|
||||
button_container->set_layout(make<GBoxLayout>(Orientation::Horizontal));
|
||||
button_container->set_layout(make<GHBoxLayout>());
|
||||
button_container->layout()->set_spacing(5);
|
||||
button_container->layout()->set_margins({ 15, 0, 15, 0 });
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ GStatusBar::GStatusBar(int label_count, GWidget* parent)
|
|||
{
|
||||
set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
|
||||
set_preferred_size(0, 20);
|
||||
set_layout(make<GBoxLayout>(Orientation::Horizontal));
|
||||
set_layout(make<GHBoxLayout>());
|
||||
layout()->set_margins({ 2, 2, 2, 2 });
|
||||
layout()->set_spacing(2);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue