Open Inventor Release 2023.2.3
 
Loading...
Searching...
No Matches
SoWinColorEditor Class Reference

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

#include <Inventor/Win/SoWinColorEditor.h>

+ Inheritance diagram for SoWinColorEditor:

Public Types

enum  Sliders {
  NONE ,
  INTENSITY ,
  RGB ,
  HSV ,
  RGB_V ,
  RGB_HSV
}
 list of possible slider combinations, which is used to specify which sliders should be displayed at any time. More...
 
enum  UpdateFrequency {
  CONTINUOUS ,
  AFTER_ACCEPT
}
 UpdateFrequency is how often new values should be sent to the node or the callback routine. More...
 

Public Member Functions

 SoWinColorEditor (SoWidget parent=NULL, const char *name=NULL, SbBool buildInsideParent=TRUE)
 Constructor.
 
 ~SoWinColorEditor ()
 Destructor.
 
void attach (SoSFColor *color, SoBase *node)
 Attaches the editor to a color node and edits the specified color.
 
void attach (SoMFColor *color, int index, SoBase *node)
 Attaches the editor to a color node and edits the specified color.
 
void attach (SoMFUInt32 *color, int index, SoBase *node)
 Handles attaching to an "orderedRGBA" field (e.g. SoVertexProperty)
 
void detach ()
 Detaches the editor from a color node.
 
SbBool isAttached ()
 Returns TRUE if the editor is attached.
 
void addColorChangedCallback (SoWinColorEditorCB *f, void *userData=NULL)
 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 removeColorChangedCallback (SoWinColorEditorCB *f, void *userData=NULL)
 Removes colorChanged callback.
 
void setColor (const SbColor &color)
 Sets a new color value.
 
const SbColorgetColor ()
 Gets the current color value.
 
void setWYSIWYG (SbBool trueOrFalse)
 Sets the WYSIWYG (what-you-see-is-what-you-get) mode on/off for the colored backgrounds of the sliders.
 
SbBool isWYSIWYG ()
 Gets the WYSIWYG mode.
 
void setCurrentSliders (SoWinColorEditor::Sliders whichSliders)
 Sets which slider(s) should be displayed.
 
SoWinColorEditor::Sliders getCurrentSliders ()
 Gets which slider(s) should be displayed.
 
void setUpdateFrequency (SoWinColorEditor::UpdateFrequency freq)
 Sets the update frequency.
 
SoWinColorEditor::UpdateFrequency getUpdateFrequency ()
 Gets the update frequency.
 
- Public Member Functions inherited from SoWinComponent
virtual void show ()
 This shows the component.
 
virtual void hide ()
 This hides the component.
 
SbBool isVisible ()
 Returns TRUE if this component is mapped onto the screen.
 
SoWidget getWidget () const
 This returns the base window handle for this component.
 
SbBool isTopLevelShell () const
 Returns TRUE if this component is a top level shell component (has its own window).
 
SoWidget getShellWidget () const
 Returns the shell window handle (NULL if the shell hasn't been created by this component).
 
SoWidget getParentWidget () const
 Returns the parent window handle, be it a shell or not.
 
void setSize (const SbVec2s &size)
 Convenience routine on the window handle.
 
SbVec2s getSize ()
 Convenience routine on the window handle.
 
SbBool setFullScreen (const SbBool enable)
 Switches the viewer into (or out of) fullscreen mode.
 
SbBool isFullScreen () const
 Queries if the viewer is in fullscreen mode.
 
void setFullScreenEnable (const SbBool enable)
 Enables/disables fullscreen mode.
 
SbBool isFullScreenEnable (void) const
 Queries if it is possible to put the viewer in fullscreen mode.
 
UINTgetDisplay ()
 Included for portability only.
 
SoNONUNICODE void setTitle (const char *newTitle)
 Sets window title.
 
void setTitle (const SbString &newTitle)
 Sets window title.
 
SbString getTitle () const
 Gets window title.
 
SoNONUNICODE void setIconTitle (const char *newIconTitle)
 Included for portability only.
 
void setIconTitle (const SbString &newIconTitle)
 Included for portability only.
 
SbString getIconTitle () const
 Included for portability only.
 
void setWindowCloseCallback (SoWinComponentCB *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 specified.
 
SbString getWidgetName () const
 Returns the window handle name.
 
SbString getClassName () const
 Returns the class name.
 
virtual ~SoWinComponent ()
 Destructor.
 

Public Attributes

SbBool alwaysOnTop
 
- Public Attributes inherited from SoWinComponent
SbString helpFileName
 Name of help file to open when the viewer Help button is pressed.
 
UINT helpContextID
 The context ID of the help topic to open when the viewer Help button is pressed.
 
SbString helpContextString
 The TopicID of the help topic to open when the viewer Help button is pressed.
 

Additional Inherited Members

- Static Public Member Functions inherited from SoWinComponent
SoDEPRECATED static SoNONUNICODE void displayHelp (const char *filename, UINT contextID)
 Static method to display the specified topic of the specified help file.
 
static SoDEPRECATED void displayHelp (const SbString &filename, UINT contextID)
 Static method to display the specified topic of the specified help file.
 
static SoWinComponentgetComponent (SoWidget w)
 Returns the SoWinComponent for this window handle.
 

Detailed Description

VSG extension Component that lets you edit a color interactively.

The SoWinColorEditor 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

SoWinComponent

Definition at line 94 of file SoWinColorEditor.h.

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.

Definition at line 101 of file SoWinColorEditor.h.

◆ UpdateFrequency

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.

Definition at line 132 of file SoWinColorEditor.h.

Constructor & Destructor Documentation

◆ SoWinColorEditor()

SoWinColorEditor::SoWinColorEditor ( SoWidget  parent = NULL,
const char *  name = NULL,
SbBool  buildInsideParent = TRUE 
)

Constructor.

◆ ~SoWinColorEditor()

SoWinColorEditor::~SoWinColorEditor ( )

Destructor.

Member Function Documentation

◆ addColorChangedCallback()

void SoWinColorEditor::addColorChangedCallback ( SoWinColorEditorCB 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).

Definition at line 428 of file SoWinColorEditor.h.

◆ attach() [1/3]

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

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

See attach() for details.

◆ attach() [2/3]

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

Handles attaching to an "orderedRGBA" field (e.g. SoVertexProperty)

◆ attach() [3/3]

void SoWinColorEditor::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.

◆ detach()

void SoWinColorEditor::detach ( )

Detaches the editor from a color node.

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

◆ getColor()

const SbColor & SoWinColorEditor::getColor ( )
inline

Gets the current color value.

Definition at line 217 of file SoWinColorEditor.h.

◆ getCurrentSliders()

SoWinColorEditor::Sliders SoWinColorEditor::getCurrentSliders ( )
inline

Gets which slider(s) should be displayed.

Definition at line 246 of file SoWinColorEditor.h.

◆ getUpdateFrequency()

SoWinColorEditor::UpdateFrequency SoWinColorEditor::getUpdateFrequency ( )
inline

Gets the update frequency.

Definition at line 255 of file SoWinColorEditor.h.

◆ isAttached()

SbBool SoWinColorEditor::isAttached ( )
inline

Returns TRUE if the editor is attached.

Definition at line 190 of file SoWinColorEditor.h.

◆ isWYSIWYG()

SbBool SoWinColorEditor::isWYSIWYG ( )
inline

Gets the WYSIWYG mode.

Definition at line 237 of file SoWinColorEditor.h.

◆ removeColorChangedCallback()

void SoWinColorEditor::removeColorChangedCallback ( SoWinColorEditorCB f,
void *  userData = NULL 
)
inline

Removes colorChanged callback.

Definition at line 434 of file SoWinColorEditor.h.

◆ setColor()

void SoWinColorEditor::setColor ( const SbColor color)

Sets a new color value.

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

◆ setCurrentSliders()

void SoWinColorEditor::setCurrentSliders ( SoWinColorEditor::Sliders  whichSliders)

Sets which slider(s) should be displayed.

◆ setUpdateFrequency()

void SoWinColorEditor::setUpdateFrequency ( SoWinColorEditor::UpdateFrequency  freq)

Sets the update frequency.

See the UpdateFrequency enum declaration.

◆ setWYSIWYG()

void SoWinColorEditor::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.

Member Data Documentation

◆ alwaysOnTop

SbBool SoWinColorEditor::alwaysOnTop

Definition at line 259 of file SoWinColorEditor.h.


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