From a6ecef211a84542b4a68a92e647c8d801fe14a37 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Tue, 14 Apr 2009 20:19:46 +0000 Subject: added ui::ModelView prototype --- src/ui/Makefile.am | 4 ++-- src/ui/modelview.cc | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/ui/modelview.h | 49 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+), 2 deletions(-) create mode 100755 src/ui/modelview.cc create mode 100755 src/ui/modelview.h (limited to 'src') 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__ + -- cgit v1.2.3