Dialogs.ShowColorDialog Method (Color)

DialogsShowColorDialog Method (Color)

Display Rhino's color selection dialog.

Namespace:  Rhino.UI
Assembly:  RhinoCommon (in RhinoCommon.dll)
Syntax
public static bool ShowColorDialog(
	ref Color color
)
Public Shared Function ShowColorDialog ( 
	ByRef color As Color
) As Boolean

Parameters

color
Type: System.DrawingColor
[in/out] Default color for dialog, and will receive new color if function returns true.

Return Value

Type: Boolean
true if the color changed. false if the color has not changed or the user pressed cancel.
Examples
using Rhino;
using Rhino.DocObjects;
using Rhino.Commands;
using Rhino.Input;
using Rhino.UI;

namespace examples_cs
{
  public class ChangeLightColorCommand : Rhino.Commands.Command
  {
    public override string EnglishName
    {
      get { return "csLightColor"; }
    }

    protected override Result RunCommand(RhinoDoc doc, RunMode mode)
    {
      ObjRef obj_ref;
      var rc = RhinoGet.GetOneObject("Select light to change color", true,
        ObjectType.Light, out obj_ref);
      if (rc != Result.Success)
        return rc;
      var light = obj_ref.Light();
      if (light == null)
        return Result.Failure;

      var diffuse_color = light.Diffuse;
      if (Dialogs.ShowColorDialog(ref diffuse_color))
      {
        light.Diffuse = diffuse_color;
      }

      doc.Lights.Modify(obj_ref.ObjectId, light);
      return Result.Success;
    }
  }
}
Imports Rhino
Imports Rhino.DocObjects
Imports Rhino.Commands
Imports Rhino.Input
Imports Rhino.UI

Namespace examples_vb
  Public Class ChangeLightColorCommand
    Inherits Rhino.Commands.Command
    Public Overrides ReadOnly Property EnglishName() As String
      Get
        Return "vbLightColor"
      End Get
    End Property

    Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result
      Dim obj_ref As ObjRef = Nothing
      Dim rc = RhinoGet.GetOneObject("Select light to change color", True, ObjectType.Light, obj_ref)
      If rc <> Result.Success Then
        Return rc
      End If
      Dim light = obj_ref.Light()
      If light Is Nothing Then
        Return Result.Failure
      End If

      Dim diffuse_color = light.Diffuse
      If Dialogs.ShowColorDialog(diffuse_color) Then
        light.Diffuse = diffuse_color
      End If

      doc.Lights.Modify(obj_ref.ObjectId, light)
      Return Result.Success
    End Function
  End Class
End Namespace
from Rhino import *
from Rhino.DocObjects import *
from Rhino.Input import *
from Rhino.UI import *
from scriptcontext import doc

def RunCommand():
  rc, obj_ref = RhinoGet.GetOneObject(
    "Select light to change color", 
    True,
    ObjectType.Light)
  if rc != Result.Success:
    return rc
  light = obj_ref.Light()
  if light == None:
    return Result.Failure

  b, color = Dialogs.ShowColorDialog(light.Diffuse)
  if b:
    light.Diffuse = color

  doc.Lights.Modify(obj_ref.ObjectId, light)
  return Result.Success

if __name__ == "__main__":
  RunCommand()
Version Information

Rhino for Mac

Supported in: 5.4

Rhino for Windows

Supported in: 6.8
See Also