Added support for controlling border and override redirect to the SingleWindow View::Config
This commit is contained in:
parent
086ffd1672
commit
acb4ba8554
@ -23,9 +23,9 @@ class OSGVIEWER_EXPORT SingleWindow : public ViewConfig
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
SingleWindow():_x(0),_y(0),_width(-1),_height(-1),_screenNum(0) {}
|
SingleWindow():_x(0),_y(0),_width(-1),_height(-1),_screenNum(0),_border(true),_overrideRedirect(false) {}
|
||||||
SingleWindow(int x, int y, int width, int height, unsigned int screenNum=0):_x(x),_y(y),_width(width),_height(height),_screenNum(screenNum) {}
|
SingleWindow(int x, int y, int width, int height, unsigned int screenNum=0):_x(x),_y(y),_width(width),_height(height),_screenNum(screenNum),_border(true),_overrideRedirect(false) {}
|
||||||
SingleWindow(const SingleWindow& rhs, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY):ViewConfig(rhs,copyop), _x(rhs._x),_y(rhs._y),_width(rhs._width),_height(rhs._height),_screenNum(rhs._screenNum) {}
|
SingleWindow(const SingleWindow& rhs, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY):ViewConfig(rhs,copyop), _x(rhs._x),_y(rhs._y),_width(rhs._width),_height(rhs._height),_screenNum(rhs._screenNum),_border(rhs._border), _overrideRedirect(rhs._overrideRedirect) {}
|
||||||
|
|
||||||
META_Object(osgViewer,SingleWindow);
|
META_Object(osgViewer,SingleWindow);
|
||||||
|
|
||||||
@ -46,10 +46,18 @@ class OSGVIEWER_EXPORT SingleWindow : public ViewConfig
|
|||||||
void setScreenNum(unsigned int sn) { _screenNum = sn; }
|
void setScreenNum(unsigned int sn) { _screenNum = sn; }
|
||||||
unsigned int getScreenNum() const { return _screenNum; }
|
unsigned int getScreenNum() const { return _screenNum; }
|
||||||
|
|
||||||
|
void setBorder(bool border) { _border = border; }
|
||||||
|
bool getBorder() const { return _border; }
|
||||||
|
|
||||||
|
void setOverrideRedirect(bool override) { _overrideRedirect = override; }
|
||||||
|
bool getOverrideRedirect() const { return _overrideRedirect; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
int _x, _y, _width, _height;
|
int _x, _y, _width, _height;
|
||||||
unsigned int _screenNum;
|
unsigned int _screenNum;
|
||||||
|
bool _border;
|
||||||
|
bool _overrideRedirect;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,8 @@ void SingleWindow::configure(osgViewer::View& view) const
|
|||||||
traits->y = _y;
|
traits->y = _y;
|
||||||
traits->width = _width;
|
traits->width = _width;
|
||||||
traits->height = _height;
|
traits->height = _height;
|
||||||
traits->windowDecoration = true;
|
traits->windowDecoration = _border;
|
||||||
|
traits->overrideRedirect = _overrideRedirect;
|
||||||
traits->doubleBuffer = true;
|
traits->doubleBuffer = true;
|
||||||
traits->sharedContext = 0;
|
traits->sharedContext = 0;
|
||||||
|
|
||||||
@ -60,7 +61,7 @@ void SingleWindow::configure(osgViewer::View& view) const
|
|||||||
if (traits->width<=0) traits->width = width;
|
if (traits->width<=0) traits->width = width;
|
||||||
if (traits->height<=0) traits->height = height;
|
if (traits->height<=0) traits->height = height;
|
||||||
}
|
}
|
||||||
|
|
||||||
osg::ref_ptr<osg::GraphicsContext> gc = osg::GraphicsContext::createGraphicsContext(traits.get());
|
osg::ref_ptr<osg::GraphicsContext> gc = osg::GraphicsContext::createGraphicsContext(traits.get());
|
||||||
|
|
||||||
view.getCamera()->setGraphicsContext(gc.get());
|
view.getCamera()->setGraphicsContext(gc.get());
|
||||||
|
@ -14,4 +14,6 @@ REGISTER_OBJECT_WRAPPER( osgViewer_SingleWindow,
|
|||||||
ADD_INT_SERIALIZER( Width, -1);
|
ADD_INT_SERIALIZER( Width, -1);
|
||||||
ADD_INT_SERIALIZER( Height, -1);
|
ADD_INT_SERIALIZER( Height, -1);
|
||||||
ADD_UINT_SERIALIZER( ScreenNum, 0u);
|
ADD_UINT_SERIALIZER( ScreenNum, 0u);
|
||||||
|
ADD_BOOL_SERIALIZER( Border, true);
|
||||||
|
ADD_BOOL_SERIALIZER( OverrideRedirect, true);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user