浏览代码

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 年之前
父节点
当前提交
b37fc9f655
共有 1 个文件被更改,包括 14 次插入0 次删除
  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();
     }));