SoXt  1.4.1
Coin3D GUI toolkit binding
Loading...
Searching...
No Matches
SoXtComponent Class Reference

The SoXtComponent class is the base class for all GUI components. More...

#include <Inventor/Xt/SoXtComponent.h>

Inheritance diagram for SoXtComponent:
SoXtObject SoXtGLWidget SoXtRenderArea SoXtViewer SoXtFullViewer SoXtConstrainedViewer SoXtExaminerViewer SoXtPlaneViewer SoXtFlyViewer

Public Member Functions

virtual ~SoXtComponent ()
 
void addWindowCloseCallback (SoXtComponentCB *callback, void *closure=NULL)
 
void fitSize (const SbVec2s size)
 
Widget getBaseWidget (void) const
 
const char * getClassName (void) const
 
Display * getDisplay (void)
 
const char * getIconTitle (void) const
 
Widget getParentWidget (void) const
 
Widget getShellWidget (void) const
 
SbVec2s getSize (void) const
 
const char * getTitle (void) const
 
Widget getWidget (void) const
 
const char * getWidgetName (void) const
 
virtual void hide (void)
 
SbBool isFullScreen (void) const
 
SbBool isTopLevelShell (void) const
 
SbBool isVisible (void)
 
void removeWindowCloseCallback (SoXtComponentCB *callback, void *closure=NULL)
 
virtual void setComponentCursor (const SoXtCursor &cursor)
 
SbBool setFullScreen (const SbBool onoff)
 
void setIconTitle (const char *const title)
 
void setSize (const SbVec2s size)
 
void setTitle (const char *const title)
 
void setWindowCloseCallback (SoXtComponentCB *const func, void *const user=NULL)
 
virtual void show (void)
 
- Public Member Functions inherited from SoXtObject
virtual SoType getTypeId (void) const =0
 
SbBool isOfType (SoType type) const
 

Static Public Member Functions

static SoXtComponentgetComponent (Widget widget)
 
static void initClasses (void)
 
static void setWidgetCursor (Widget w, const SoXtCursor &cursor)
 
- Static Public Member Functions inherited from SoXtObject
static SoType getClassTypeId (void)
 
static void init (void)
 
static void initClass (void)
 

Protected Member Functions

 SoXtComponent (Widget const parent=NULL, const char *const name=NULL, const SbBool embed=TRUE)
 
void addVisibilityChangeCallback (SoXtComponentVisibilityCB *const func, void *const user=NULL)
 
virtual void afterRealizeHook (void)
 
virtual const char * getDefaultIconTitle (void) const
 
virtual const char * getDefaultTitle (void) const
 
virtual const char * getDefaultWidgetName (void) const
 
void invokeVisibilityChangeCallbacks (const SbBool enable) const
 
void invokeWindowCloseCallbacks (void) const
 
void registerWidget (Widget widget)
 
void removeVisibilityChangeCallback (SoXtComponentVisibilityCB *const func, void *const user=NULL)
 
void setBaseWidget (Widget widget)
 
void setClassName (const char *const name)
 
virtual void sizeChanged (const SbVec2s &size)
 
void unregisterWidget (Widget widget)
 
virtual void windowCloseAction (void)
 

Protected Attributes

SbBool firstRealize
 

Detailed Description

The SoXtComponent class is the base class for all GUI components.

Components in the SoXt component library all inherit this abstract base class. It provides basic methods for setting and querying about the relationship between the component object and its underlying Xt object(s).

Application programmers should not need to interface any code against this class, unless they want to extend the SoXt library in entirely new directions. For making new viewer components, for instance, other classes further down the inheritance hierarchy would be better suited for subclassing.

Note that the relationship between all SoXtComponent derived classes and Xt widgets is one of "has-A", not "is-A" – i.e. SoXtComponent contains a Widget, it doesn't derive from or subclass it.

Constructor & Destructor Documentation

◆ ~SoXtComponent()

SoXtComponent::~SoXtComponent ( )
virtual

Destructor.

◆ SoXtComponent()

SoXtComponent::SoXtComponent ( Widget const parent = NULL,
const char *const name = NULL,
const SbBool embed = TRUE )
protected

This is a protected constructor, used only by derived classes.

The parent argument is the parent widget of the component. If you don't supply a parent, the main window (the one given to or returned from SoXt::init()) is used (and the embed argument is considered to be FALSE).

The name argument is the name of the component. If you don't supply one, the name will default to something, depending on the inheritance hierarchy.

The embed argument tells whether the component should be embedded in the parent widget or should create its own shell. This flag is only checked if the parent widget argument is specified (not NULL).

If you create a non-embedded component, the component will create its own shell, which will be a top level shell type. If you embed the component, the component will create a form widget type widget inside the parent widget, which you can get the handle of by calling SoXtComponent::getBaseWidget().

Member Function Documentation

◆ addVisibilityChangeCallback()

void SoXtComponent::addVisibilityChangeCallback ( SoXtComponentVisibilityCB *const callback,
void *const closure = NULL )
protected

Add a callback which will be called whenever the widget component changes visibility status (because of iconification or deiconification, for instance).

See also
removeVisibilityChangeCallback(), isVisible()

This method adds a callback that will be invoked when the component visibility changes.

Callback invocation is not implemented yet.

See also
SoXtComponent::removeVisibilityChangeCallback()

◆ addWindowCloseCallback()

void SoXtComponent::addWindowCloseCallback ( SoXtComponentCB * callback,
void * closure = NULL )

This method adds a close callback for the component window.

This method is not standard for Open Inventor.

See also
SoXtComponent::setWindowCloseCallback()
SoXtComponent::removeWindowCloseCallback()
SoXtComponent::invokeWindowCloseCallback()

◆ afterRealizeHook()

void SoXtComponent::afterRealizeHook ( void )
protectedvirtual

A function "hook" / callback invoked just after the window for the component has been realized.

Override this if you need specific initialization for your own component or viewer class to happen right after it has been made visible, but remember to call upwards in the inheritance hierarchy:

void
MyLittleViewer::afterRealizeHook(void)
{
<superclass>::afterRealizeHook();
// [own initialization here]
}
virtual void afterRealizeHook(void)
Definition SoXtComponent.cpp:667

Reimplemented in SoXtRenderArea, SoXtExaminerViewer, SoXtFlyViewer, and SoXtPlaneViewer.

◆ fitSize()

void SoXtComponent::fitSize ( const SbVec2s size)

This method tries to resize the component window, using size as the minimum requirements.

This method is not part of the Open Inventor SoXt API.

◆ getBaseWidget()

Widget SoXtComponent::getBaseWidget ( void ) const

An SoXtComponent may be composed of any number of widgets in parent-children relationships in a tree structure with any depth. This method will return the root widget in that tree.

See also
setBaseWidget()

◆ getClassName()

const char * SoXtComponent::getClassName ( void ) const

Returns class name of widget.

This method returns the class name of the component.

◆ getComponent()

SoXtComponent * SoXtComponent::getComponent ( Widget widget)
static

Finds and returns the SoXtComponent corresponding to the given Widget, if any. If the widget does not seem to belong to any SoXtComponent, NULL will be returned.

◆ getDefaultIconTitle()

const char * SoXtComponent::getDefaultIconTitle ( void ) const
protectedvirtual

This method returns the default icon title of the component.

It should be overridden by derived non-abstract classes so icons will get proper titles.

Reimplemented in SoXtRenderArea, SoXtExaminerViewer, SoXtFlyViewer, and SoXtPlaneViewer.

◆ getDefaultTitle()

const char * SoXtComponent::getDefaultTitle ( void ) const
protectedvirtual

This method returns the default window caption string of the component.

It should be overridden by derived non-abstract classes so the window and pop-up menu will get a proper title.

Reimplemented in SoXtRenderArea, SoXtExaminerViewer, SoXtFlyViewer, and SoXtPlaneViewer.

◆ getDefaultWidgetName()

const char * SoXtComponent::getDefaultWidgetName ( void ) const
protectedvirtual

This method returns the default name of a component widget class.

It should be overridden by derived non-abstract classes for the topmost widget in the component to have a proper name.

Reimplemented in SoXtRenderArea, SoXtExaminerViewer, SoXtFlyViewer, and SoXtPlaneViewer.

◆ getDisplay()

Display * SoXtComponent::getDisplay ( void )

This method returns the display the component is sent to.

◆ getIconTitle()

const char * SoXtComponent::getIconTitle ( void ) const

Returns the title the window has when iconified.

If an icon title has been set, that icon title is returned. If no icon title has been set, the default icon title is returned.

See also
setIconTitle(), isTopLevelShell()

◆ getParentWidget()

Widget SoXtComponent::getParentWidget ( void ) const

Returns the widget which is the parent of (i.e. contains) this component's base widget.

See also
getWidget(), baseWidget(), isTopLevelShell()

◆ getShellWidget()

Widget SoXtComponent::getShellWidget ( void ) const

This method returns the shell widget of the component, but only if it was created as a top level shell. NULL will be returned for embedded components.

(The top level shell is the desktop window which contains the component.)

To get the top level shell of embedded components, you can use the SoXt::getShellWidget() method.

See also
isTopLevelShell(), getWidget()

◆ getSize()

SbVec2s SoXtComponent::getSize ( void ) const

Returns the component widget size.

The size that is returned is a cached size value, not a value fetched from the GUI system.

See also
setSize()

◆ getTitle()

const char * SoXtComponent::getTitle ( void ) const

Returns the window title.

If a title has been set, that title will be returned. If no title has been set, the default title is returned.

See also
setTitle(), isTopLevelShell()

◆ getWidget()

Widget SoXtComponent::getWidget ( void ) const

Returns a pointer to the component's window system widget.

See also
getShellWidget(), getParentWidget()

◆ getWidgetName()

const char * SoXtComponent::getWidgetName ( void ) const

Returns name of the widget.

This method returns the name of the component.

◆ hide()

void SoXtComponent::hide ( void )
virtual

This will hide the widget.

See also
show(), isVisible()

◆ initClasses()

void SoXtComponent::initClasses ( void )
static

This function initializes the type system for all the component classes. It is called indirectly for you when you call SoXt::init().

See also
SoXt::init(), SoXtDevice::initClasses()

◆ invokeVisibilityChangeCallbacks()

void SoXtComponent::invokeVisibilityChangeCallbacks ( const SbBool enable) const
protected

This method invokes all the visibility-change callbacks.

This method is not part of the Open Inventor API.

See also
SoXtComponent::addVisibilityChangeCallback()
SoXtComponent::removeVisibilityChangeCallback()

◆ invokeWindowCloseCallbacks()

void SoXtComponent::invokeWindowCloseCallbacks ( void ) const
protected

This method invokes the close callbacks for the component window.

This method is not standard for Open Inventor.

See also
SoXtComponent::addWindowCloseCallback()
SoXtComponent::setWindowCloseCallback()
SoXtComponent::removeWindowCloseCallback()

◆ isFullScreen()

SbBool SoXtComponent::isFullScreen ( void ) const

Returns whether this widget/component is in full screen mode or not.

Returns if this widget/component is in full screen mode.

◆ isTopLevelShell()

SbBool SoXtComponent::isTopLevelShell ( void ) const

Returns TRUE if this component is a top level shell, i.e. it has a window representation on the desktop.

See also
getShellWidget()

◆ isVisible()

SbBool SoXtComponent::isVisible ( void )

Returns visibility status on the widget. If any parents of this widget or this widget itself is hidden, returns FALSE.

Note that a widget which is just obscured by other windows on the desktop is not hidden in this sense, and TRUE will be returned.

See also
show(), hide()

◆ registerWidget()

void SoXtComponent::registerWidget ( Widget widget)
protected

This method should be used by subclasses to register the widgets they set up from the underlying native toolkit, so they can be "reverse" mapped to the owner component.

Subclasses failing to register the widgets they use will cause the SoXtComponent::getComponent() method to fail with those widgets.

See also
unregisterWidget(), getComponent()

◆ removeVisibilityChangeCallback()

void SoXtComponent::removeVisibilityChangeCallback ( SoXtComponentVisibilityCB *const callback,
void *const closure = NULL )
protected

Remove one of the callbacks from the list of visibility notification callbacks.

See also
addVisibilityChangeCallback(), isVisible()

This method removes a callback from the list of callbacks that are to be invoked when the component visibility changes.

See also
SoXtComponent::addVisibilityChangeCallback()

◆ removeWindowCloseCallback()

void SoXtComponent::removeWindowCloseCallback ( SoXtComponentCB * callback,
void * closure = NULL )

This method removes a close callback for the component window.

This method is not standard for Open Inventor.

See also
SoXtComponent::addWindowCloseCallback()
SoXtComponent::setWindowCloseCallback()
SoXtComponent::invokeWindowCloseCallback()

◆ setBaseWidget()

void SoXtComponent::setBaseWidget ( Widget widget)
protected

Set the core widget for this SoXt component. It is important that subclasses get this correct, as the widget set here will be the widget returned from query methods.

See also
baseWidget()

This method sets the base widget of the component.

◆ setClassName()

void SoXtComponent::setClassName ( const char *const name)
protected

Set class name of component.

See also
getClassName(), componentClassName()

This method sets the class name of the widget.

◆ setComponentCursor()

void SoXtComponent::setComponentCursor ( const SoXtCursor & cursor)
virtual

Sets the cursor for this component.

Note: not part of the original SGI InventorXt API.

Sets the cursor for this component.

Reimplemented in SoXtFullViewer.

◆ setFullScreen()

SbBool SoXtComponent::setFullScreen ( const SbBool enable)

Toggle full screen mode for this component, if possible.

Returns FALSE if operation failed. This might happen if the toolkit doesn't support attempts at making the component cover the complete screen or if the component is not a top level window.

◆ setIconTitle()

void SoXtComponent::setIconTitle ( const char *const title)

This method sets the title of the icon representation of the window.

The title will appear on the window icon, if the component manages its own window.

See also
getIconTitle(), setTitle(), isTopLevelShell()

◆ setSize()

void SoXtComponent::setSize ( const SbVec2s size)

Resize the component widget.

The method assumes the caller knows what he is doing.

See also
getSize()

◆ setTitle()

void SoXtComponent::setTitle ( const char *const title)

Set the window title of this component. The title will appear on the window title bar, if the component manages its own window.

See also
getTitle(), setIconTitle(), isTopLevelShell()

◆ setWidgetCursor()

void SoXtComponent::setWidgetCursor ( Widget w,
const SoXtCursor & cursor )
static

Set cursor for a native widget in the underlying toolkit.

Note: not part of the original SGI InventorXt API.

Set cursor for a native widget in the underlying toolkit.

◆ setWindowCloseCallback()

void SoXtComponent::setWindowCloseCallback ( SoXtComponentCB *const func,
void *const data = NULL )

Set up a callback function to use when the component gets closed. A component must be a top level shell for this to have any effect.

For top level shells with no close callback set, the window will simply be hidden. The typical action to take in the callback would be to delete the component.

See also
isTopLevelShell()

◆ show()

void SoXtComponent::show ( void )
virtual

This will show the widget, de-iconifying and raising it if necessary.

See also
hide(), isVisible()

◆ sizeChanged()

void SoXtComponent::sizeChanged ( const SbVec2s & size)
protectedvirtual

Called internally from within the SoXt library when the widget embedded in a component changes its size, which is usually triggered by end-user interaction.

This method is then invoked to notify the component that the size has changed. It is called from the top and all the way down to the bottom, the size being adjusted to take into account extra decorations having been added at each level in the component class hierarchy.

Reimplemented in SoXtGLWidget, SoXtRenderArea, SoXtFullViewer, and SoXtViewer.

◆ unregisterWidget()

void SoXtComponent::unregisterWidget ( Widget widget)
protected

Remove a previously registered native toolkit widget from the widget-to-component mappings used by SoXtComponent::getComponent().

See also
registerWidget()

◆ windowCloseAction()

void SoXtComponent::windowCloseAction ( void )
protectedvirtual

This method should be hooked up to window close events. If the main window is closed, the program exits. If a sub-window is closed, it is just hidden.

Member Data Documentation

◆ firstRealize

SoXtComponent::firstRealize
protected

This member is used to detect the first realization of the component.


The documentation for this class was generated from the following files: