NAME

Prima::Dialog::ColorDialog - standard color selection facilities

SYNOPSIS

use Prima qw(Dialog::ColorDialog Application);

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

DESCRIPTION

The module contains two packages, Prima::Dialog::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::Dialog::ColorDialog window.

Prima::Dialog::ColorDialog

Properties

grayscale BOOLEAN

If set, allows only gray colors for selection

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.

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.

grayscale BOOLEAN

If set, allows only gray colors for selection

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>.