Hello all, hello Jeremy,

I'm using osgWidget for the first time, thinking of using it for a little addition I'm planning for OSG eventually, and just trying to get familiar with it. I have a few questions.

First, here's my code:

const unsigned int MASK_2D = 0xF0000000;

// To be able to pass an osg::Vec4 to a
// setColor(float, float, float, float) method
#define mySetColor(obj, c) (obj->setColor(c.r(), c.g(), c.b(), c.a()))

DebugHUD::DebugHUD(osgViewer::View* view)
{
    osg::Vec4 titleBarColor(0, 0, 0.5, 0.5);
    osg::Vec4 backgroundColor(0.2, 0.2, 0.7, 0.5);

    osgWidget::point_type w = view->getCamera()->getViewport()->width();
    osgWidget::point_type h = view->getCamera()->getViewport()->height();

    m_windowManager = new osgWidget::WindowManager(view, w, h, MASK_2D);

    osgWidget::Frame* frame = osgWidget::Frame::createSimpleFrameFromTheme(
        "frameTheme",
        osgDB::readImageFile("osgWidget/theme-1.png"),
        300.0f,
        300.0f,
        osgWidget::Frame::FRAME_ALL
        );
    frame->setPosition(300,100,0);

    osgWidget::Table* table  = new osgWidget::Table("table", 1, 1);
osgWidget::Widget* center = new osgWidget::Widget("center", 300.0f, 300.0f);
    mySetColor(center, backgroundColor);
    center->setAlignVertical(osgWidget::Widget::VA_TOP);    // Doesn't work
    table->addWidget(center, 0, 0);
    frame->setWindow(table);

    mySetColor(frame->getBackground(), osg::Vec4(1.0, 1.0, 1.0, 0.0));

mySetColor(frame->getBorder(osgWidget::Frame::BORDER_TOP), titleBarColor); mySetColor(frame->getCorner(osgWidget::Frame::CORNER_UPPER_LEFT), titleBarColor); mySetColor(frame->getCorner(osgWidget::Frame::CORNER_UPPER_RIGHT), titleBarColor);

mySetColor(frame->getBorder(osgWidget::Frame::BORDER_LEFT), backgroundColor); mySetColor(frame->getBorder(osgWidget::Frame::BORDER_RIGHT), backgroundColor); mySetColor(frame->getBorder(osgWidget::Frame::BORDER_BOTTOM), backgroundColor); mySetColor(frame->getCorner(osgWidget::Frame::CORNER_LOWER_LEFT), backgroundColor); mySetColor(frame->getCorner(osgWidget::Frame::CORNER_LOWER_RIGHT), backgroundColor);

    m_windowManager->addChild(frame);

    m_camera = m_windowManager->createParentOrthoCamera();
    m_windowManager->resizeAllWindows();

    view->getCamera()->addChild(m_camera.get());
view->addEventHandler(new osgWidget::MouseHandler(m_windowManager.get())); view->addEventHandler(new osgWidget::KeyboardHandler(m_windowManager.get())); view->addEventHandler(new osgWidget::ResizeHandler(m_windowManager.get(), m_camera.get())); view->addEventHandler(new osgWidget::CameraSwitchHandler(m_windowManager.get(), m_camera.get()));
}

So, here are my questions.

1. The widget in the center is not the color I set it to. The alpha doesn't seem to be taken into account. I'd like my whole window to be a transparent blue (backgroundColor). 2. When I resize the frame to make it larger (dragging the bottom-right corner down and to the right for example), I'd like the widget in the center to resize itself to fit. Is that possible? Well, in fact if I could do without that widget it would be even better, but I want the center of the window to be transparent blue, and getBackground()->setColor() makes the color visible even on the corners of the window, which I don't want... 3. I want the widgets in my frame to stay at the top of the frame when it's resized. But even if I set my widget's vertical alignment to VA_TOP, it doesn't work (see the line with the "Doesn't work" comment above). Is that a bug or should I do something else to get what I want?

BTW, to set the vertical alignment I would have expected to call setVerticalAlignment instead of setAlignVertical, any reason why it's named that way? setVerticalAlignment seems more natural.

Other than that, it seems that osgWidget will allow me to do what I want and I'm enjoying working with it (though I'm only doing basic things right now...).

Thanks in advance,

J-S
--
______________________________________________________
Jean-Sebastien Guay    jean-sebastien.g...@cm-labs.com
                               http://www.cm-labs.com/
                        http://whitestar02.webhop.org/
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to