]> git.tdb.fi Git - r2c2.git/blobdiff - source/designer/toolbar.cpp
Arrange widgets in Designer with GLtk::Layout
[r2c2.git] / source / designer / toolbar.cpp
index 950cfc5aaa8edf0706a1e8f6bc89d78a776c8118..559d8c3e9e13636c07d0dcbfcf34f266e813d8d0 100644 (file)
@@ -1,25 +1,29 @@
+#include <msp/gltk/row.h>
 #include "toolbar.h"
 
 using namespace std;
 using namespace Msp;
 
-Toolbar::Toolbar(const string &name, unsigned w):
-       content_width(w),
+Toolbar::Toolbar(const string &name):
        expanded(true)
 {
        set_focusable(false);
+       set_layout(new GLtk::Row);
+       layout->set_margin(GLtk::Sides(6, 10));
+       layout->set_column_spacing(10);
 
        add(*(lbl_title = new GLtk::Label(name)));
 
        add(*(btn_expand = new GLtk::Button));
-       btn_expand->set_size(15, 20);
        btn_expand->set_style("arrow_left");
        btn_expand->set_tooltip("Collapse toolbar");
        btn_expand->signal_clicked.connect(sigc::mem_fun(this, &Toolbar::expand_clicked));
 
        add(*(pnl_content = new GLtk::Panel));
-       pnl_content->set_size(content_width, 40);
        pnl_content->set_style("group");
+       GLtk::Layout *content_layout = new GLtk::Row;
+       pnl_content->set_layout(content_layout);
+       content_layout->set_margin(0);
 }
 
 void Toolbar::expand(bool e)
@@ -28,11 +32,7 @@ void Toolbar::expand(bool e)
        btn_expand->set_style(expanded ? "arrow_left" : "arrow_right");
        btn_expand->set_tooltip(expanded ? "Collapse toolbar" : "Expand toolbar");
        pnl_content->set_visible(expanded);
-
-       unsigned w = lbl_title->get_geometry().w+40;
-       if(expanded)
-               w += content_width+5;
-       set_size(w, 40);
+       signal_autosize_changed.emit();
 
        signal_expanded.emit(expanded);
 }
@@ -41,17 +41,3 @@ void Toolbar::expand_clicked()
 {
        expand(!expanded);
 }
-
-void Toolbar::on_style_change()
-{
-       lbl_title->autosize();
-       const GLtk::Geometry &lbl_geom = lbl_title->get_geometry();
-       unsigned w = lbl_geom.w+40;
-       if(expanded)
-               w += content_width+5;
-       set_size(w, 40);
-
-       lbl_title->set_position(10, (geom.h-lbl_geom.h)/2);
-       btn_expand->set_position(lbl_geom.w+15, 10);
-       pnl_content->set_position(lbl_geom.w+35, 0);
-}