23#ifndef _SO_TOP_LEVEL_DIALOG_
24#define _SO_TOP_LEVEL_DIALOG_
26#include <DialogViz/dialog/SoDialogViz.h>
27#include <DialogViz/dialog/SoTopComponent.h>
28#include <Inventor/fields/SoSFInt32.h>
29#include <Inventor/fields/SoSFVec2i32.h>
30#include <Inventor/fields/SoSFBool.h>
31#include <Inventor/fields/SoSFEnum.h>
340 void updateMinimizedState();
346 void updateDialogBuild(
SbBool is2dRender);
347 void fixSizeWithBorder(
SbVec2i32 &size,
int revert = 1);
348 SoWidget getBaseWidget() {
return m_baseWidget;};
349 SoWidget getWidget();
351 static void initClass();
352 static void exitClass();
354 void setCurrentFocusedWidget(SoWidget widget);
355 void setCurrentScrolledWidget(SoWidget widget);
356 SoWidget getCurrentScrolledWidget();
357 SoWidget getCurrentFocusedWidget();
360 void setScrollProperties();
362 void setSize(int32_t sw, int32_t sh, int32_t smw, int32_t smh, int32_t smmw, int32_t smmh);
363 void updateTopLevelWidgetScrollPosition();
364 void updateAfterSceneGraphChange();
365 virtual void resetSize();
367 void setDefaultState();
372 void updateChildren();
373 void updateTopLevelWidget(
SbVec2i32 &rSize);
376 virtual void internalRemoveChild(
int index ) {
removeChild(index); }
379 virtual void internalAddChild(
SoNode *child );
380 virtual int internalFindChild(
const SoNode *child )
const;
381 virtual void internalInsertChild(
SoNode *child,
int newChildIndex );
382 virtual SoNode *internalGetChild(
int index)
const {
return getChild(index); }
383 virtual void internalReplaceChild(
int index,
SoNode *newChild);
391 virtual SbBool readInstance(
SoInput *in,
unsigned short flags);
396 SoWidget m_baseWidget;
398 SoWidget m_topLevelWidget;
399 SoWidget m_topLevelWidgetXt;
423 int m_numberOfChildren;
425 SoWidget m_currentFocusedWidget;
426 SoWidget m_currentScrolledWidget;
430 int m_arrayNumChildren;
437 SoWidget m_clipWindowXt;
449 void computeNewChildrenHeight(
SbVec2i32 &rSize);
450 void createBaseWidget(SoWidget parent);
452 void createTopLevelWidget();
453 void initWidgetConstant();
454 void setChildrenComponentSize();
455 void setChildrenLabelSize();
456 void updateBaseWidget();
457 void updateChildrenSizeDB();
460 void changeRowSpacing();
461 void changeResizable();
462 void changeModalFrame();
463 void changePosition();
464 void changeMinMaxSize();
466 virtual void changeEnable();
467 virtual void changeLabel();
468 virtual void changeWidth();
469 virtual void changeHeight();
473 virtual void updateFromSensor(
SoSensor* sensor);
479 static char* TopLevelDialog;
480 static void change3DSkin();
481 static SbBool isSkinLoaded();
482 static void setSkinLoaded(
SbBool loaded);
488 SO_DG_CATALOG_ENTRY_HEADER( frameSep );
489 SO_DG_CATALOG_ENTRY_HEADER( frame );
490 SO_DG_CATALOG_ENTRY_HEADER( labelSep );
491 SO_DG_CATALOG_ENTRY_HEADER( labelProp );
492 SO_DG_CATALOG_ENTRY_HEADER( minSep );
493 SO_DG_CATALOG_ENTRY_HEADER( minSwtch );
494 SO_DG_CATALOG_ENTRY_HEADER( minPressed );
495 SO_DG_CATALOG_ENTRY_HEADER( minReleased );
503 float m_mTopLevelCachedDepth;
504 SbBool m_firstMinimization;
505 static SbBool m_isSkinLoaded;
509 SoTranslation* topLevelFrameTranslation, *topLevelMinTranslation, *topLevelLabelTranslation;
512 void create3DTopLevelDialog();
513 void update3DTopLevelDialog();
514 void update3DChildren();
515 void update3DChildrenPosition();
516 void update3DLabel();
518 void minimize3DDialog();
519 void restore3DDialog();
522 virtual void change3DLabel();
523 virtual void change3DPosition();
525 static void startCB3D(
void *,
SoDragger *inDragger );
526 void draggerStartCallback3D();
527 static void motionCB3D(
void *,
SoDragger *inDragger );
528 void draggerMotionCallback3D();
529 static void finishCB3D(
void *,
SoDragger *inDragger );
530 void draggerFinishCallback3D();
Class for smart character strings.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Dialog auditor
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract base cl...
Base class for nodekits that move in response to click-drag-release mouse events.
Computes bounding box of a scene.
Abstract base class for all database nodes.
Intersects objects with a ray cast into scene.
Field containing a single Boolean value.
Field containing an enumerated value.
Field containing a int32_t integer.
Field containing a two-dimensional vector.
Field containing a three-dimensional vector.
const SbVec3f & getValue() const
Returns this field's value.
Node representing a 3D geometric scaling.
SoSFVec3f scaleFactor
The scaling factors in the x, y, and z dimensions.
Searches for nodes in a scene graph.
Abstract base class for Open Inventor sensors.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract Class f...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Top Level Dialog...
virtual void removeChild(SoTopComponent *child)
Removes first instance of given child from group.
SoSFVec2i32 position
Window screen coordinates.
void applyAuditors()
Applies all DialogAuditors in the auditor list.
void close()
Destroys the dialog window.
SoSFEnum hScrollVisibility
Controls how horizontal scrollbar appears.
SoSFInt32 maxWidth
Maximum top component width.
virtual void hide()
Hides the topLevelDialog widget.
SoSFEnum vScrollVisibility
Controls how vertical scrollbar appears.
SoSFInt32 height
Preferred height of the top component.
SoSFBool windowResizedByChildren
Controls the window sizing when a child is added or removed.
SoSFInt32 maxHeight
Maximum top component height.
virtual void replaceChild(SoTopComponent *oldChild, SoTopComponent *newChild)
Replaces first instance of given child with new child.
SoSFInt32 minHeight
Minimum top component height.
virtual void addChild(SoTopComponent *child)
Adds a child as last one in group.
virtual void removeAllChildren()
Removes all children from group.
@ NEVER
Scroll bar never displayed.
@ ALWAYS
Scroll bar always visible.
@ AUTO
Automatic scroll bar: displayed when needed (default).
SoTopLevelDialog()
Constructor.
virtual void insertChild(SoTopComponent *child, int newChildIndex)
Adds a child so that it becomes the one with the given index.
void buildDialog(SoWidget parent, SbBool buildInsideParent=FALSE)
Builds the dialog window.
SoSFBool hideChildren
When rendering DialogViz as a scene, children can be hidden while the SoTopLevelDialog frame is movin...
SoSFVec3f minimized3DPosition
Window world coordinate position when rendering in 3D and minimized.
virtual int findChild(const SoTopComponent *child) const
Finds index of given child within group.
SoDialogViz * searchForAuditorId(SbString id)
Retrieves the DialogViz object from the specified auditorID field in an SoTopLevelDialog structure.
SoSFInt32 margin
Margin width.
SoSFBool modalFrame
Sets window property.
SoSFInt32 width
Preferred width of the top component.
SoSFInt32 rowSpacing
Space between each child.
SoSFBool independentMinimizedPosition
Indicates whether minimized and full size dialog have independant 3D position or not.
virtual void replaceChild(int index, SoTopComponent *newChild)
Replaces child with given index with new child.
virtual int getNumChildren() const
Returns number of children.
SoSFBool minimized
Controls and indicates whether the dialog is minimized or not.
SoSFInt32 minWidth
Minimum top component width.
virtual void show()
Shows the tolLevelDialog widget.
virtual void removeChild(int index)
Removes child with given index from group.
SoSFBool resizable
Indicates if the top component can be resized or not, Default is TRUE.
void addAuditor(SoDialogAuditor *auditor)
Adds a dialogAuditor to the current topLevelDialog component.
virtual SoNode * getChild(int index) const
Returns pointer to child node with the given index.
SoSFVec3f position3D
Window world coordinate position when rendering in 3D.
void removeAuditor(SoDialogAuditor *auditor)
Removes the defined DialogAuditor from the auditor list.
Node representing a 3D translation.
Writes a scene graph to a file.