From d0d4bd189e2654b61be7740edd15d96b6cab968d Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 10 Jan 2009 15:45:10 +0000 Subject: toolbar widget --- src/ui/toolbar.cc | 40 ++++++++++++++++++++++++++++++++++++++++ src/ui/toolbar.h | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 src/ui/toolbar.cc create mode 100644 src/ui/toolbar.h diff --git a/src/ui/toolbar.cc b/src/ui/toolbar.cc new file mode 100644 index 0000000..0d9dfe6 --- /dev/null +++ b/src/ui/toolbar.cc @@ -0,0 +1,40 @@ +/* + ui/toolbar.cc + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + +#include "ui/toolbar.h" +#include "ui/button.h" + +namespace ui { + +Toolbar::Toolbar(Widget *parent) : Widget(parent) +{ + set_label("toolbar"); + set_background(false); + set_border(false); +} + +Toolbar::~Toolbar() +{ +} + +void Toolbar::add_button(const char *bitmap, const char *text, const char *command) +{ + new Button(this, text, command); +} + +void Toolbar::resize() +{ + const float n = (float) children().size(); + float x = 0; + for (Widget::Children::iterator it = children().begin(); it != children().end(); it++) { + Widget *widget = (*it); + widget->set_geometry(x, 0, width() / n, height()); + x += widget->width(); + } +} + +} + diff --git a/src/ui/toolbar.h b/src/ui/toolbar.h new file mode 100644 index 0000000..4094f52 --- /dev/null +++ b/src/ui/toolbar.h @@ -0,0 +1,33 @@ +/* + ui/widget.h + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + + +#ifndef __INCLUDED_UI_TOOLBAR_H__ +#define __INCLUDED_UI_TOOLBAR_H__ + +#include "ui/widget.h" + +namespace ui { + +/// a toolbar container widget +class Toolbar : public Widget { +public: + /// default constructor + Toolbar(Widget *parent=0); + /// default destructor + virtual ~Toolbar(); + + /// add a button to the toolbar + void add_button(const char *bitmap, const char *text, const char *command); + +protected: + /// re-arrange child widgets + void resize(); +}; + +} + +#endif // __INCLUDED_UI_TOOLBAR_H__ -- cgit v1.2.3