SoQtColorEditor Class Reference
[Qt]

VSG extension Component that lets you edit a color interactively. More...

#include <Inventor/Qt/SoQtColorEditor.h>

Inheritance diagram for SoQtColorEditor:
SoQtComponent

List of all members.

Public Types

enum  Sliders {
  NONE,
  INTENSITY,
  RGB,
  HSV,
  RGB_V,
  RGB_HSV
}
enum  UpdateFrequency {
  CONTINUOUS,
  AFTER_ACCEPT
}

Public Member Functions

 SoQtColorEditor (QWidget *parent=qApp->activeWindow(), const char *name=NULL, SbBool buildInsideParent=TRUE)
 ~SoQtColorEditor ()
void attach (SoSFColor *color, SoBase *node)
void attach (SoMFColor *color, int index, SoBase *node)
void attach (SoMFUInt32 *color, int index, SoBase *node)
void detach ()
SbBool isAttached ()
void addColorChangedCallback (SoQtColorEditorCB *f, void *userData=NULL)
void removeColorChangedCallback (SoQtColorEditorCB *f, void *userData=NULL)
void setColor (const SbColor &color)
const SbColorgetColor ()
void setWYSIWYG (SbBool trueOrFalse)
SbBool isWYSIWYG ()
void setCurrentSliders (SoQtColorEditor::Sliders whichSliders)
SoQtColorEditor::Sliders getCurrentSliders ()
void setUpdateFrequency (SoQtColorEditor::UpdateFrequency freq)
SoQtColorEditor::UpdateFrequency getUpdateFrequency ()
virtual void show ()
virtual void hide ()

Public Attributes

SbBool alwaysOnTop

Detailed Description

VSG extension Component that lets you edit a color interactively.

The SoQtColorEditor class lets you interactively edit colors using color sliders and a color wheel. You can either use it directly to edit a color field in the database by using the attach()/detach() routines, or use it by registering a callback routine which will get called whenever the color changes (passing an SbColor to that routine).

The editor can currently be attached to only one color at a time. Attaching two different colors will automatically detach the first one before attaching the second.

SEE ALSO

SoQtComponent


Member Enumeration Documentation

Sliders.

List of possible slider combinations, which is used to specify which sliders should be displayed at any time.

Enumerator:
NONE 

Display no sliders.

INTENSITY 

Display intensity slider (default).

RGB 

Display RGB sliders.

HSV 

Display HSV sliders.

RGB_V 

Display RGB and value sliders.

RGB_HSV 

Display RGB and HSV sliders.

Update frequency.

UpdateFrequency is how often new values should be sent to the node or the callback routine.

Enumerator:
CONTINUOUS 

Send updates with every mouse motion.

AFTER_ACCEPT 

Only send updates after user hits accept button.


Constructor & Destructor Documentation

SoQtColorEditor::SoQtColorEditor ( QWidget *  parent = qApp->activeWindow(),
const char *  name = NULL,
SbBool  buildInsideParent = TRUE 
)

Constructor.

SoQtColorEditor::~SoQtColorEditor (  ) 

Destructor.


Member Function Documentation

void SoQtColorEditor::addColorChangedCallback ( SoQtColorEditorCB f,
void *  userData = NULL 
) [inline]

Additional way of using the color editor, by registering a callback which will be called whenever the color changes (check the UpdateFrequency to find when the callbacks will be called).

void SoQtColorEditor::attach ( SoMFUInt32 color,
int  index,
SoBase node 
)

Attaches the editor to a color node and edits the color of the given index.

See attach() for details.

void SoQtColorEditor::attach ( SoMFColor color,
int  index,
SoBase node 
)

Attaches the editor to a color node and edits the specified color.

See attach() for details.

void SoQtColorEditor::attach ( SoSFColor color,
SoBase node 
)

Attaches the editor to a color node and edits the specified color.

Attaching to the color node increments the reference count of the color node.

The color editor uses a sensor on the color field to automatically update itself when the color is changed externally.

NOTE: The node containing the field needs to also be passed to attach the sensor to it (since field sensors are not yet supported).

NOTE: The color editor can only be attached to either a single field or a multiple field at any given time. Even when attached to a multiple field, only a single color from that field is edited, as specified by index.

void SoQtColorEditor::detach (  ) 

Detaches the editor from a color node.

Detaching from the color node decrements the reference count of the color node.

const SbColor& SoQtColorEditor::getColor (  )  [inline]

Gets the current color value.

SoQtColorEditor::Sliders SoQtColorEditor::getCurrentSliders (  )  [inline]

Gets which slider(s) should be displayed.

SoQtColorEditor::UpdateFrequency SoQtColorEditor::getUpdateFrequency (  )  [inline]

Gets the update frequency.

virtual void SoQtColorEditor::hide (  )  [virtual]

Hide the color editor.

Reimplemented from SoQtComponent.

SbBool SoQtColorEditor::isAttached (  )  [inline]

Returns TRUE if the editor is attached.

SbBool SoQtColorEditor::isWYSIWYG (  )  [inline]

Gets the WYSIWYG mode.

void SoQtColorEditor::removeColorChangedCallback ( SoQtColorEditorCB f,
void *  userData = NULL 
) [inline]

Removes colorChanged callback.

void SoQtColorEditor::setColor ( const SbColor color  ) 

Sets a new color value.

NOTE: setColor() will call colorChanged callbacks if the color differs.

void SoQtColorEditor::setCurrentSliders ( SoQtColorEditor::Sliders  whichSliders  ) 

Sets which slider(s) should be displayed.

void SoQtColorEditor::setUpdateFrequency ( SoQtColorEditor::UpdateFrequency  freq  ) 

Sets the update frequency.

See the UpdateFrequency enum declaration.

void SoQtColorEditor::setWYSIWYG ( SbBool  trueOrFalse  ) 

Sets the WYSIWYG (what-you-see-is-what-you-get) mode on/off for the colored backgrounds of the sliders.

In WYSIWYG mode, the color shown on the slider background beneath the slider pointer is what you get. For example, if R,G,B sliders in WYSIWYG mode are set to (0,1,1), the color beneath each slider pointer will be cyan because (0,1,1) corresponds to cyan.

In non-WYSIWYG mode, the color shown on the slider background reflects only the value of the parameter that the slider controls. For example, the background of the red slider will display only red values, the green slider will display only green values, and so forth.

virtual void SoQtColorEditor::show (  )  [virtual]

Make the color editor visible.

Reimplemented from SoQtComponent.


Member Data Documentation

Boolean indicating if the editor should be always on top of the other windows.


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

Open Inventor Toolkit reference manual, generated on 4 Sep 2023
Copyright © Thermo Fisher Scientific All rights reserved.
https://www.openinventor.com/