FreeBSD Manual Pages
AG_HSVPAL(3) Library Functions Manual AG_HSVPAL(3) NAME AG_HSVPal -- agar HSV color picker SYNOPSIS #include <agar/core.h> #include <agar/gui.h> DESCRIPTION The AG_HSVPal widget is a HSV (Hue, Saturation, Value) color editor which allows the user to edit a color's hue, saturation, value and al- pha components. The widget can bind directly to different color repre- sentations: • A native Agar AG_Color(3). • Single-precision Hue, Saturation, Value and Alpha. • 8- or 16-bit integer RGBA components. • Floating-point RGBA components. • A 32- or 64-bit packed pixel (with corresponding AG_PixelFormat(3)). INHERITANCE HIERARCHY AG_Object(3) -> AG_Widget(3) -> AG_HSVPal. INITIALIZATION AG_HSVPal * AG_HSVPalNew(AG_Widget *parent, Uint flags) The AG_HSVPalNew() function allocates, initializes, and attaches a new AG_HSVPal widget. Acceptable flags include: AG_HSVPAL_SHOW_RGB Show the RGB value in text form. AG_HSVPAL_SHOW_HSV Show the HSV value in text form. AG_HSVPAL_NOALPHA (Read-only) Transparency control is disabled. Set (or cleared) when pixel-format is bound to a pixel format with (or without) alpha. AG_HSVPAL_FORCE_NOALPHA Disable the transparency control. AG_HSVPAL_NOPREVIEW Disable the color preview band. AG_HSVPAL_HFILL Expand horizontally in parent container. AG_HSVPAL_VFILL Expand vertically in parent container. AG_HSVPAL_EXPAND Shorthand for AG_HSVPAL_HFILL | AG_HSVPAL_VFILL. UPDATING VALUES void AG_HSVPalUpdateHue(AG_HSVPal *pal, int x, int y) void AG_HSVPalUpdateSV(AG_HSVPal *pal, int x, int y) AG_HSVPalUpdateHue() sets the hue to that closest to cursor coordinates x, y and triggers a refresh. AG_HSVPalUpdateSV() sets the saturation and value to that at cursor coordinates x, y and triggers a refresh. BINDINGS The AG_HSVPal widget provides the following bindings: AG_Color *agcolor A native AG_Color(3) structure. float *hue Hue (0..1). float *saturation Saturation (0..1). float *value Value (0..1). float *alpha Single-precision component value (0..1). AG_PixelFormat **pixel-format Pointer to AG_PixelFormat(3) describing the packed-pixel format of pixel and pixel64. Note that pixel-format should be set first. If the format has an al- pha component, AG_HSVPAL_NOALPHA will be set accordingly (use AG_HSVPAL_FORCE_NOALPHA to disable). Uint32 *pixel 32-bit packed pixel value. Uint64 *pixel64 64-bit packed pixel value. Available in AG_LARGE build. void *RGBv A three-element array containing the RGB components. Acceptable binding types include FLOAT and DOUBLE, INT and UINT8. For floating point types, the values are scaled to 0.0-1.0. For in- tegral types, the values are scaled to 0-255. void *RGBAv Same as above, except that the array has 4 elements where the last element is the alpha component. EVENTS The AG_HSVPal widget generates the following events: h-changed(void) The hue has changed. sv-changed(void) The saturation or the value has changed. BUGS Conversion between integer RGB and HSV triplets incurs loss of preci- sion. In cases where it is desirable to maintain the same hue through- out changes in saturation, the color should be stored in HSV format. SEE ALSO AG_Intro(3), AG_Widget(3), AG_Window(3) EasyRGB: https://www.easyrgb.com/ HSV Color Space: https://en.wikipedia.org/wiki/HSV_color_space RGB Color Model: https://en.wikipedia.org/wiki/RGB_color_model HISTORY The AG_HSVPal widget first appeared in Agar 1.0. The pixel64 binding, AG_HSVPalUpdateHue() and AG_HSVPalUpdateSV() appeared in Agar 1.6.0. Agar 1.7 December 21, 2022 AG_HSVPAL(3)
NAME | SYNOPSIS | DESCRIPTION | INHERITANCE HIERARCHY | INITIALIZATION | UPDATING VALUES | BINDINGS | EVENTS | BUGS | SEE ALSO | HISTORY
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=AG_HSVPal&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>
