Hi Robert,

Am 22.10.2013 um 13:55 schrieb Robert Osfield <[email protected]>:

> I have just done a review of your changes and am getting ready to merge, but 
> would like to make some changes.  I do wonder if the menu behaviour might be 
> better names task bar behaviour, as it's not the actual windows menu bar that 
> the hint is affecting.

There's no task bar on osx, my changes affect the application menu-bar which is 
pinned at the top of the screen. Afaik there's no such concept on other 
platforms. 

>  I also inclined to think that default should something like 
> MENUBAR/TASKBAR_DO_NOT_SET.

I'd stick to AUTO_HIDE, as this mimics the previous behavior on os x. If a 
window gets fullscreen, the menu gets hidden, and reveals itself again, if the 
mouse is near the menu. If we change that to do_not_set all fullscreen windows 
on os x won't be fullscreen anymore.

I think I should find another way to set the menubar behavior as it's too 
platform specific and asserts functionality which is not available on other 
platforms.

All I want is some sort of mechanism to set some platform-specific attributes 
for the WindowSystemInterface before it gets constructed (and use 
command-line-options/env-vars to specify these parameters). 

Something like an options-object for GraphicsWindowingInterface with several 
virtual methods which get fired when parsing the command line, etc. 
Platform-specific GraphicsWindowingInterface can create subclasses for their 
platform-specific

Here's some pseudo-code:

class  osg::GraphicsContext::WindowingSystem::Options : public osg::Referenced {
public:
       virtual void readEnvironmentalVariables() {}

       virtual void readCommandLine(ArgumentParser& arguments) {}
};

class CocoaWindowingSystemOptions : public 
osg::GraphicsContext::WindowingSystem::Options {
public:
 // platform-specific stuff
};


#ifdef _APPLE_
        CocoaWindowingSystemOptions* options = new 
CocoaWindowingSystemOptions();
        // set the behavior per code
        options->setMenuBarBehavior(…);

        osg:: GraphicsContext ::GraphicsWindowingSystem::setOptions(options);
#endif


IMHO this is the cleanest approach. What do you think?

cheers,

Stephan
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to