---
name: "Prima::ColorDialog"
section: "3"
platform: "linux"
package: "libprima-perl"
version: "1.28-1.3+b3"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/Prima::ColorDialog"
---

# Prima::ColorDialog(3)

standard color selection facilities

## NAME

Prima::ColorDialog - standard color selection facilities

## SYNOPSIS

```
        use Prima qw(StdDlg Application);
        my $p = Prima::ColorDialog-> create(
                quality => 1,
        );
        printf "color: %06x", $p-> value if $p-> execute == mb::OK;
```

## DESCRIPTION

The module contains two packages, `"Prima::ColorDialog"` and `"Prima::ColorComboBox"`, used as standard tools for interactive color selection. `"Prima::ColorComboBox"` is a modified combo widget, which provides selecting from predefined palette but also can invoke `"Prima::ColorDialog"` window.

## Prima::ColorDialog

### Properties

- quality BOOLEAN

  Used to increase visual quality of the dialog if run on paletted displays.

  Default value: 0

- value COLOR

  Selects the color, represented by the color wheel and other dialog controls.

  Default value: `"cl::White"`

### Methods

- hsv2rgb HUE, SATURATION, LUMINOSITY

  Converts color from HSV to RGB format and returns three integer values, red, green, and blue components.

- rgb2hsv RED, GREEN, BLUE

  Converts color from RGB to HSV format and returns three numerical values, hue, saturation, and luminosity components.

- rgb2value RED, GREEN, BLUE

  Combines separate channels into single 24-bit RGB value and returns the result.

- value2rgb COLOR

  Splits 24-bit RGB value into three channels, red, green, and blue and returns three integer values.

- xy2hs X, Y, RADIUS

  Maps X and Y coordinate values onto a color wheel with RADIUS in pixels. The code uses RADIUS = 119 for mouse position coordinate mapping. Returns three values, - hue, saturation and error flag. If error flag is set, the conversion has failed.

- hs2xy HUE, SATURATION

  Maps hue and saturation onto 256-pixel wide color wheel, and returns X and Y coordinates of the corresponding point.

- create\_wheel SHADES, BACK\_COLOR

  Creates a color wheel with number of SHADES given, drawn on a BACK\_COLOR background, and returns a `"Prima::DeviceBitmap"` object.

- create\_wheel\_shape SHADES

  Creates a circular 1-bit mask, with radius derived from SHAPES. SHAPES must be same as passed to create\_wheel. Returns `"Prima::Image"` object.

### Events

- BeginDragColor $PROPERTY

  Called when the user starts dragginh a color from the color wheel by with left mouse button and combination of Alt, Ctrl, and Shift keys. `$PROPERTY` is one of `"Prima::Widget"` color properties, and depends on combination of keys:

  ```
          Alt              backColor
          Ctrl             color
          Alt+Shift        hiliteBackColor
          Ctrl+Shift       hiliteColor
          Ctrl+Alt         disabledColor
          Ctrl+Alt+Shift   disabledBackColor
  ```

  Default action reflects the property to be changes in the dialog title

- Change

  The notification is called when the value property is changed, either  interactively or as a result of direct call.

- EndDragColor $PROPERTY, $WIDGET

  Called when the user releases the mouse drag over a Prima widget. Default action sets `"$WIDGET->$PROPERTY"` to the current color value.

### Variables

- $colorWheel

  Contains cached result of create\_wheel call.

- $colorWheelShape

  Contains cached result of create\_wheel\_shape call.

## Prima::ColorComboBox

### Events

- Colorify INDEX, COLOR\_PTR

  `"nt::Action"` callback, designed to map combo palette index into a RGB color. INDEX is an integer from 0 to colors - 1, COLOR\_PTR is a reference to a result scalar, where the notification is expected to write the resulting color.

### Properties

- colors INTEGER

  Defines amount of colors in the fixed palette of the combo box.

- value COLOR

  Contains the color selection as 24-bit integer value.

## SEE ALSO

Prima, Prima::ComboBox, *examples/cv.pl*.

## AUTHOR

Dmitry Karasik, \<dmitry@karasik.eu.org\>.
