From Jeremy Moles, import of the osgWidget NodeKit, sourced from the original http://osgwidget.googlecode.com/svn/trunk
Notes from Robert Osfield, I've merged osgWidget trunk, and added/changed CMakeLists.txt file to make it suitable for inclusion in the core OSG, and moved imagery/scripts/shaders out into OpenSceneGraph-Data
This commit is contained in:
161
include/osgWidget/Frame
Normal file
161
include/osgWidget/Frame
Normal file
@@ -0,0 +1,161 @@
|
||||
// -*-c++-*- osgWidget - Code by: Jeremy Moles (cubicool) 2007-2008
|
||||
// $Id: Frame 59 2008-05-15 20:55:31Z cubicool $
|
||||
|
||||
#ifndef OSGWIDGET_FRAME
|
||||
#define OSGWIDGET_FRAME
|
||||
|
||||
#include <osgWidget/Table>
|
||||
|
||||
namespace osgWidget {
|
||||
|
||||
class OSGWIDGET_EXPORT Frame: public Table {
|
||||
public:
|
||||
enum CORNER {
|
||||
CORNER_LOWER_LEFT,
|
||||
CORNER_LOWER_RIGHT,
|
||||
CORNER_UPPER_LEFT,
|
||||
CORNER_UPPER_RIGHT
|
||||
};
|
||||
|
||||
enum BORDER {
|
||||
BORDER_LEFT,
|
||||
BORDER_RIGHT,
|
||||
BORDER_TOP,
|
||||
BORDER_BOTTOM
|
||||
};
|
||||
|
||||
protected:
|
||||
Widget* _getCorner (CORNER) const;
|
||||
Widget* _getBorder (BORDER) const;
|
||||
|
||||
public:
|
||||
static std::string cornerToString (CORNER);
|
||||
static std::string borderToString (BORDER);
|
||||
|
||||
class OSGWIDGET_EXPORT Corner: public Widget {
|
||||
CORNER _corner;
|
||||
|
||||
public:
|
||||
META_Object (osgWidget, Corner);
|
||||
META_UIObject (Corner);
|
||||
|
||||
Corner (CORNER = CORNER_LOWER_LEFT, point_type = 0.0f, point_type = 0.0f);
|
||||
Corner (const Corner&, const osg::CopyOp&);
|
||||
|
||||
bool mouseDrag(double, double, WindowManager*);
|
||||
|
||||
CORNER getCorner() const {
|
||||
return _corner;
|
||||
}
|
||||
|
||||
void setCorner(CORNER corner) {
|
||||
_corner = corner;
|
||||
}
|
||||
|
||||
void setCornerAndName(CORNER corner) {
|
||||
_corner = corner;
|
||||
_name = cornerToString(corner);
|
||||
}
|
||||
};
|
||||
|
||||
class OSGWIDGET_EXPORT Border: public Widget {
|
||||
BORDER _border;
|
||||
|
||||
public:
|
||||
META_Object (osgWidget, Border);
|
||||
META_UIObject (Border);
|
||||
|
||||
Border (BORDER = BORDER_LEFT, point_type = 0.0f, point_type = 0.0f);
|
||||
Border (const Border&, const osg::CopyOp&);
|
||||
|
||||
bool mouseDrag(double, double, WindowManager*);
|
||||
|
||||
BORDER getBorder() const {
|
||||
return _border;
|
||||
}
|
||||
|
||||
void setBorder(BORDER border) {
|
||||
_border = border;
|
||||
}
|
||||
|
||||
void setBorderAndName(BORDER border) {
|
||||
_border = border;
|
||||
_name = borderToString(border);
|
||||
}
|
||||
};
|
||||
|
||||
META_Object (osgWidget, Frame);
|
||||
META_UIObject (Frame);
|
||||
|
||||
Frame (const std::string& = "");
|
||||
Frame (const Frame&, const osg::CopyOp&);
|
||||
|
||||
virtual void managed(WindowManager*);
|
||||
|
||||
static Frame* createSimpleFrame(
|
||||
const std::string&,
|
||||
point_type,
|
||||
point_type,
|
||||
point_type,
|
||||
point_type,
|
||||
Frame* = 0
|
||||
);
|
||||
|
||||
static Frame* createSimpleFrameWithSingleTexture(
|
||||
const std::string&,
|
||||
const std::string&,
|
||||
point_type,
|
||||
point_type,
|
||||
point_type,
|
||||
point_type,
|
||||
point_type,
|
||||
point_type,
|
||||
Frame* = 0
|
||||
);
|
||||
|
||||
void createSimpleFrame(point_type cw, point_type ch, point_type w, point_type h) {
|
||||
createSimpleFrame(_name, cw, ch, w, h, this);
|
||||
}
|
||||
|
||||
void createSimpleFrameWithSingleTexture(
|
||||
const std::string& tex,
|
||||
point_type tw,
|
||||
point_type th,
|
||||
point_type cw,
|
||||
point_type ch,
|
||||
point_type w,
|
||||
point_type h
|
||||
) {
|
||||
createSimpleFrameWithSingleTexture(_name, tex, tw, th, cw, ch, w, h, this);
|
||||
}
|
||||
|
||||
bool setWindow(Window*);
|
||||
|
||||
EmbeddedWindow* getEmbeddedWindow() {
|
||||
return dynamic_cast<EmbeddedWindow*>(getByRowCol(1, 1));
|
||||
}
|
||||
|
||||
const EmbeddedWindow* getEmbeddedWindow() const {
|
||||
return dynamic_cast<const EmbeddedWindow*>(getByRowCol(1, 1));
|
||||
}
|
||||
|
||||
Corner* getCorner(CORNER c) {
|
||||
return dynamic_cast<Corner*>(_getCorner(c));
|
||||
}
|
||||
|
||||
const Corner* getCorner(CORNER c) const {
|
||||
return dynamic_cast<const Corner*>(_getCorner(c));
|
||||
}
|
||||
|
||||
Border* getBorder(BORDER b) {
|
||||
return dynamic_cast<Border*>(_getBorder(b));
|
||||
}
|
||||
|
||||
const Border* getBorder(BORDER b) const {
|
||||
return dynamic_cast<const Border*>(_getBorder(b));
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user