FAQ

From NaviWiki

Jump to: navigation, search

Contents

General FAQ

What is Navi?

Navi is a GUI library for use with Ogre. See the Overview for more detailed information.

Can Navi be used with OpenGL, DirectX, Torque, or Excel?

No. Navi is only for use within an application that uses Ogre. If somebody writes an Ogre plugin for Excel then you are in luck.

How is Navi different from CEGUI or any other GUI library?

Navi doesn't use "widgets" as a basis for what a GUI can be. It uses standard web technologies such as HTML, CSS, and JavaScript to create GUI elements. This means you are only limited by HTML, CSS, and JS in what you can make your GUI do.

See the Screenshots to get an idea of what this looks like.

How is this madness possible?

Navi uses Linden Labs Gecko wrapper LLMozLib to render the HTML. Gecko is the HTML renderer that many Mozilla projects (Firefox, etc) use.


Technical FAQ

How do I setup the dependencies for Navi?

LLMozLib and Gecko have dependencies that need to be properly setup for Navi to function.
See Setup Dependencies.

How do I know when a Navi is loaded and ready for me to use?

There aren't any methods to do this that don't use NaviData (at this time). Pages with 'Navi.js' included in them automatically send a NaviData object named "ready" to your application when the DOM is ready.

So you just need to bind a callback to "ready" and execute your code there. This process is detailed here.

How do I check if the mouse is over a Navi?

NaviManager::injectMouseMove returns true if the injected coordinates are over a Navi, false otherwise.

Is there a way to use Navi on Linux?

Navi should have no problem working on Linux. However, LLMozLib hasn't put out a stable, officially-supported Linux build yet. It has made available an internal code dump that has Linux/Mac support-in-progress but it's still rather loose. There is a lot of effort right now being put into getting Linux support in LLMozLib and Navi so it is only a matter of time.

What is a "NSGlue" assertion?

This is something that Gecko generates when there is a problem.

Common assertions and what they mean:

preserved wrapper table not empty at shutdown

This is a warning that you may encounter when shutting down NaviLibrary in debug-mode, it is a bug in the Gecko build that we're using with LLMozLib.

Run-Time Check Failure #3 - The variable 'nativeWidgetChild' is being used without being initialized

You may encounter this assertion in debug-mode when loading a page that has invalid HTML/Javascript. This is normal behavior of the debug-mode of Gecko.

ASSERTION: attempted to open a new window with no WindowCreator.

For more info about this assertion, please read this post.

Can I disable the NSGlue assertion?

Yes.

You can actually disable the display of the assertion dialog by setting an environment variable:

  1. Go to your Control Panel
  2. Open up 'System'
  3. Select the 'Advanced' tab
  4. Click 'Environment Variables'
  5. Click 'New' in the 'System Variables' box
  6. Enter the following information:
         * Variable name: XPCOM_DEBUG_BREAK
         * Variable value: warn

See This Thread for more info.

Why does an alpha mask in OpenGL Release mode cause my Navi to not display?

This has to do with Dynamic Textures in OpenGL under Ogre. The solution for the time being is to set the 'RTT Preferred Mode' in OpenGL to 'PBuffer'.

See This Thread for more info.

Why does my app "freeze" (lose focus) when I drag my mouse over an image/selected text?

This is Gecko's drag-and-drop functionality. Unfortunately for our context, the application 'freezes' (loses focus) during this action. There is a workaround in This Thread.

Where can I find information on color keying in Navi?

See This Thread.

Why can I not receive any key input when I pass Navi a window that is not the top-level window?

This happens when using Navi in an external GUI such as wxWidgets.

See This Thread.

See This Entry.

Personal tools