Browse Source

VisualBuilder: Make it possible to add a layout to a widget

This patch adds horizontal and vertical layout options to the widget
context menu.

This is going to need a lot of work, but it's a cool start. :^)
Andreas Kling 5 years ago
parent
commit
b37fc9f655
1 changed files with 14 additions and 0 deletions
  1. 14 0
      DevTools/VisualBuilder/VBForm.cpp

+ 14 - 0
DevTools/VisualBuilder/VBForm.cpp

@@ -36,6 +36,20 @@ VBForm::VBForm(const String& name, GWidget* parent)
         if (auto* widget = single_selected_widget())
             widget->gwidget()->move_to_back();
     }));
+    m_context_menu->add_separator();
+    m_context_menu->add_action(GAction::create("Lay out horizontally", [this](auto&) {
+        if (auto* widget = single_selected_widget()) {
+            dbg() << "Giving " << *widget->gwidget() << " a horizontal box layout";
+            widget->gwidget()->set_layout(make<GBoxLayout>(Orientation::Horizontal));
+        }
+    }));
+    m_context_menu->add_action(GAction::create("Lay out vertically", [this](auto&) {
+        if (auto* widget = single_selected_widget()) {
+            dbg() << "Giving " << *widget->gwidget() << " a vertical box layout";
+            widget->gwidget()->set_layout(make<GBoxLayout>(Orientation::Vertical));
+        }
+    }));
+    m_context_menu->add_separator();
     m_context_menu->add_action(GCommonActions::make_delete_action([this](auto&) {
         delete_selected_widgets();
     }));