Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ui/toolbar.cc40
-rw-r--r--src/ui/toolbar.h33
2 files changed, 73 insertions, 0 deletions
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__