Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2009-04-14 20:19:46 +0000
committerStijn Buys <ingar@osirion.org>2009-04-14 20:19:46 +0000
commita6ecef211a84542b4a68a92e647c8d801fe14a37 (patch)
tree07f9a6689f2ef0d27722210d63dee41114916e41 /src
parentd5a51db605102e9572d375e720dd016f3b7ff585 (diff)
added ui::ModelView prototype
Diffstat (limited to 'src')
-rw-r--r--src/ui/Makefile.am4
-rwxr-xr-xsrc/ui/modelview.cc68
-rwxr-xr-xsrc/ui/modelview.h49
3 files changed, 119 insertions, 2 deletions
diff --git a/src/ui/Makefile.am b/src/ui/Makefile.am
index 1fb8e24..695f2db 100644
--- a/src/ui/Makefile.am
+++ b/src/ui/Makefile.am
@@ -8,10 +8,10 @@ noinst_LTLIBRARIES = libui.la
endif
noinst_HEADERS = bitmap.h button.h console.h container.h definitions.h font.h \
- inputbox.h label.h menu.h paint.h palette.h scrollpane.h toolbar.h ui.h widget.h \
+ inputbox.h label.h menu.h modelview.h paint.h palette.h scrollpane.h toolbar.h ui.h widget.h \
window.h
libui_la_SOURCES = bitmap.cc button.cc console.cc console.h container.cc \
- font.cc inputbox.cc label.cc menu.cc paint.cc palette.cc scrollpane.cc \
+ font.cc inputbox.cc label.cc menu.cc modelview.cc paint.cc palette.cc scrollpane.cc \
toolbar.cc ui.cc widget.cc window.cc
libui_la_LDFLAGS = -avoid-version -no-undefined
diff --git a/src/ui/modelview.cc b/src/ui/modelview.cc
new file mode 100755
index 0000000..4239294
--- /dev/null
+++ b/src/ui/modelview.cc
@@ -0,0 +1,68 @@
+/*
+ ui/modelview.cc
+ This file is part of the Osirion project and is distributed under
+ the terms of the GNU General Public License version 2
+*/
+
+#include "auxiliary/functions.h"
+#include "ui/modelview.h"
+#include "ui/paint.h"
+#include "sys/sys.h"
+#include "render/camera.h"
+#include "render/draw.h"
+#include "render/render.h"
+namespace ui
+{
+
+ModelView::ModelView(Widget *parent, const char *modelname) : Widget(parent)
+{
+ set_border(false);
+ set_background(false);
+ set_label("modelview");
+
+ set_modelname(modelname);
+}
+
+ModelView::~ModelView()
+{}
+
+void ModelView::print(const size_t indent) const
+{
+ std::string marker("");
+ con_print << aux::pad_left(marker, indent*2) << label() << " \"" << modelname() << "\"" << std::endl;
+}
+
+void ModelView::set_modelname(const std::string & modelname)
+{
+ modelview_modelname.assign(modelname);
+}
+
+void ModelView::set_modelname(const char *modelname)
+{
+ if (modelname)
+ modelview_modelname.assign(modelname);
+ else
+ modelview_modelname.clear();
+}
+
+void ModelView::set_color(const math::Color & color)
+{
+ modelview_color.assign(color);
+}
+
+void ModelView::draw()
+{
+ if (!modelview_modelname.size())
+ return;
+
+ //model::Model *model = model::Model::find(modelview_modelname);
+
+ // gl 3d mode
+
+
+ // gl 2d mode
+ //render::Camera::ortho();
+}
+
+}
+
diff --git a/src/ui/modelview.h b/src/ui/modelview.h
new file mode 100755
index 0000000..2abeb01
--- /dev/null
+++ b/src/ui/modelview.h
@@ -0,0 +1,49 @@
+/*
+ ui/modelview.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_MODELVIEW_H__
+#define __INCLUDED_UI_MODELVIEW_H__
+
+#include "ui/widget.h"
+
+namespace ui
+{
+
+class ModelView : public Widget
+{
+public:
+ ModelView(Widget *parent, const char *modelname=0);
+ ~ModelView();
+
+ inline std::string const &modelname() const {
+ return modelview_modelname;
+ }
+
+ inline math::Color const &color() const {
+ return modelview_color;
+ }
+
+ void set_modelname(const std::string & modelname);
+ void set_modelname(const char *modelname);
+
+ void set_color(const math::Color &color);
+
+ /// print modelview description
+ virtual void print(const size_t indent) const;
+
+protected:
+ /// draw the model
+ virtual void draw();
+
+private:
+ std::string modelview_modelname;
+ math::Color modelview_color;
+};
+
+}
+
+#endif // __INCLUDED_UI_MODELVIEW_H__
+