Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SoXtComponent(3IV)()					  SoXtComponent(3IV)()

NAME
       SoXtComponent --	abstract base class for	all Inventor Xt	components

INHERITS FROM
       SoXtComponent

SYNOPSIS
       #include	<Inventor/Xt/SoXtComponent.h>

     typedef void	 SoXtComponentCB(void *userData, SoXtComponent *comp)

	  Methods from class SoXtComponent:

     virtual void	     show()
     virtual void	     hide()
     SbBool		     isVisible()
     Widget		     getWidget() const
     SbBool		     isTopLevelShell() const
     Widget		     getShellWidget() const
     Widget		     getParentWidget() const
     void		     setSize(const SbVec2s &size)
     SbVec2s		     getSize()
     Display *		     getDisplay()
     void		     setTitle(const char *newTitle)
     const char	*	     getTitle()	const
     void		     setIconTitle(const	char *newIconTitle)
     const char	*	     getIconTitle() const
     void		     setWindowCloseCallback(SoXtComponentCB	*func,
				  void *data = NULL)
     static SoXtComponent *  getComponent(Widget w)
     const char	*	     getWidgetName() const
     const char	*	     getClassName() const

DESCRIPTION
       Abstract	base class from	which all Inventor Xt components are  derived.
       This  class  provides  a	basic C++ protocol for building	and displaying
       Motif components. Components are	used to	encapsulate some  function  or
       task  into a reusable package in	the form of a Motif widget that	can be
       used in any Inventor Xt program.	See the	 Example  section  on  how  to
       build and use SoXtComponents.

METHODS
     virtual void	     show()
     virtual void	     hide()
	  This	shows and hides	the component. If this is a topLevelShell com-
	  ponent, then show() will Realize and Map the	window,	 otherwise  it
	  will simply Manage the widget. hide()	calls the appropriate unmap or
	  unmanage routines.

	  In addition, show() will also	pop the	component window  to  the  top
	  and  de-iconify  if necessary, to make sure the component is visible
	  by the user.

     SbBool		     isVisible()
	  Returns TRUE if this component is mapped onto	the screen. For	a com-
	  ponent to be visible,	it's widget and	the shell containing this wid-
	  get must be mapped (which is FALSE when the component	is iconified).

	  Subclasses should call this routine before redrawing anything	and in
	  any sensor trigger methods. Calling this will	check the current vis-
	  ibility (which is really cheap) and invoke  the  visibility  changed
	  callbacks if the state changes (see addVisibilityChangeCallback()).

     Widget		     getWidget() const
	  This	returns	 the  base widget for this component. If the component
	  created its own shell, this returns the topmost widget  beneath  the
	  shell. Call getShellWidget() to obtain the shell.

     SbBool		     isTopLevelShell() const
     Widget		     getShellWidget() const
	  Returns  TRUE	 if this component is a	top level shell	component (has
	  its own window). Subclasses may use this to decide if	they  are  al-
	  lowed	 to  resize themselves.	Also method to return the shell	widget
	  (NULL	if the shell hasn't been created by this component).

     Widget		     getParentWidget() const
	  Return the parent widget, be it a shell or not

     void		     setSize(const SbVec2s &size)
     SbVec2s		     getSize()
	  Convenience routines on the widget --	setSize	calls XtSetValue

     Display *		     getDisplay()
	  Returns the X	display	associated with	this components	widget.

     void		     setTitle(const char *newTitle)
     const char	*	     getTitle()	const
     void		     setIconTitle(const	char *newIconTitle)
     const char	*	     getIconTitle() const
	  The window and icon title can	be set for topLevelShell components or
	  components  which are	directly under a shell widget (i.e. components
	  which	have their own window).

     void		     setWindowCloseCallback(SoXtComponentCB	*func,
				  void *data = NULL)
	  Sets	which  callback	 to  call  when	the user closes	this component
	  (double click	in the upper left corner)  --  by  default  hide()  is
	  called  on  this  component,	unless	a callback is set to something
	  other	than NULL.  A pointer to this class  will  be  passed  as  the
	  callback data.

	  Note:	 this callback is supplied because the user may	wish to	delete
	  this component when it is closed.

     static SoXtComponent *  getComponent(Widget w)
	  This returns the SoXtComponent for this widget. If the widget	is not
	  an Inventor component, then NULL is returned.

     const char	*	     getWidgetName() const
     const char	*	     getClassName() const
	  Routines which return	the widget name	and the	class name. The	widget
	  name is passed to the	build method. The class	name is	predefined  by
	  each component. These	names are used when retrieving X resource val-
	  ues for the component.

EXAMPLE
       This example shows how an Inventor component can	be built inside	a pro-
       gram  using  the	Xt widget set. The example uses	the SoXtExaminerViewer
       widget to view some simple geometry.
	  #include <Inventor/Xt/SoXt.h>
	  #include <Inventor/nodes/SoCone.h>
	  #include <Inventor/Xt/viewers/SoXtExaminerViewer.h>

	  void main(int, char **argv)
	  {
	      // Initialize Inventor and Xt, which must	be done
	      // before	any Inventor calls are made.
	      Widget myWindow =	SoXt::init(argv[0]);

	      // create	the viewer in the toplevel window
	      // and set some scene to display
	      SoXtExaminerViewer *myViewer = new SoXtExaminerViewer(myWindow);
	      myViewer->setSceneGraph( new SoCone() );

	      // manage	and map	window on screen
	      myViewer->show();
	      SoXt::show(myWindow); // calls XtRealizeWidget()

	      // Loop forever
	      SoXt::mainLoop();
	  }

SEE ALSO
       SoXt, SoXtRenderArea, SoXtViewer, SoXtMaterialEditor

							  SoXtComponent(3IV)()

NAME | INHERITS FROM | SYNOPSIS | DESCRIPTION | METHODS | EXAMPLE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=SoXtComponent&sektion=3iv&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help