home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright 1993, 1994, Silicon Graphics, Inc.
- * All Rights Reserved.
- *
- * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
- * the contents of this file may not be disclosed to third parties, copied or
- * duplicated in any form, in whole or in part, without the prior written
- * permission of Silicon Graphics, Inc.
- *
- * RESTRICTED RIGHTS LEGEND:
- * Use, duplication or disclosure by the Government is subject to restrictions
- * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
- * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
- * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
- * rights reserved under the Copyright Laws of the United States.
- */
-
- /*******************************************************************************
- coloredit.c
- *******************************************************************************/
-
- #include <stdio.h>
- #include <Xm/Xm.h>
- #include <Xm/MenuShell.h>
- #include "UxXt.h"
-
- #include <Xm/PushB.h>
- #include <Xm/TextF.h>
- #include <Xm/LabelG.h>
- #include <Xm/DrawingA.h>
- #include <Xm/ToggleB.h>
- #include <Xm/RowColumn.h>
- #include <Xm/Scale.h>
- #include <Xm/Label.h>
- #include <Xm/Frame.h>
- #include <Xm/Form.h>
- #include <Xm/DialogS.h>
-
- /*******************************************************************************
- Includes, Defines, and Global variables from the Declarations Editor:
- *******************************************************************************/
-
- /*-------------------------------------------------------------
- * Visual Edge Software Limited. December 1990.
- *
- * coloredit - interactive color editor for the color view.
- *------------------------------------------------------------*/
- #include <X11/Xutil.h>
- #include <X11/Xos.h>
- #include <Xm/Protocols.h>
- #include <Xm/AtomMgr.h>
-
- #include "exinterfmotif.h"
- #include "exglobals.h"
-
- /* sources of apply_color calls */
- #define CE_INIT 0
- #define CE_SPACE_TGL 1
- #define CE_HLS_SCALE 2
- #define CE_RGB_SCALE 3
- #define CE_TEXT 4
- static void apply_color ();
- static void rgb_to_hls ();
- static void hls_to_rgb ();
- static void setup_pixels ();
- static void put_scale_background ();
- void copy_color ();
- /* Global color variables (updated by view sometimes)
- */
- XColor * init_color;
- XColor * edit_color;
- #define N_CUES 11
- extern XColor cue_colors[N_CUES];
- extern Colormap sys_cmap;
-
- /*******************************************************************************
- The definition of the context structure:
- If you create multiple instances of your interface, the context
- structure ensures that your callbacks use the variables for the
- correct instance.
-
- For each swidget in the interface, each argument to the Interface
- function, and each variable in the Instance Specific section of the
- Declarations Editor, there is an entry in the context structure.
- and a #define. The #define makes the variable name refer to the
- corresponding entry in the context structure.
- *******************************************************************************/
-
- typedef struct
- {
- Widget Uxfull_fm;
- Widget Uxtop_box;
- Widget Uxtop_lbl;
- Widget Uxmain_box;
- Widget Uxwork_fm;
- Widget Uxhue_fm;
- Widget Uxhue_sc;
- Widget Uxhue_red_min;
- Widget Uxhue_yellow;
- Widget Uxhue_green;
- Widget Uxhue_cyan;
- Widget Uxhue_blue;
- Widget Uxhue_magenta;
- Widget Uxhue_red_max;
- Widget Uxspace_radio;
- Widget Uxrgb_tgl;
- Widget Uxcmy_tgl;
- Widget Uxlightness_fm;
- Widget Uxlightness_min_box;
- Widget Uxlightness_max_btn;
- Widget Uxlightness_sc;
- Widget Uxsaturation_fm;
- Widget Uxsaturation_min_box;
- Widget Uxsaturation_max_btn;
- Widget Uxsaturation_sc;
- Widget Uxblue_fm;
- Widget Uxblue_max_btn;
- Widget Uxblue_min_box;
- Widget Uxblue_sc;
- Widget Uxgreen_fm;
- Widget Uxgreen_max_btn;
- Widget Uxgreen_min_box;
- Widget Uxgreen_sc;
- Widget Uxred_fm;
- Widget Uxred_max_btn;
- Widget Uxred_min_box;
- Widget Uxred_sc;
- Widget Uxswatch_box;
- Widget Uxswatch_form;
- Widget Uxstring_lbl;
- Widget Uxstring_text;
- Widget Uxce_ok_btn;
- Widget Uxce_reset_btn;
- Widget Uxce_apply_btn;
- Widget Uxce_cancel_btn;
- int Uxce_hue;
- int Uxce_saturation;
- int Uxce_lightness;
- Boolean Uxrgb_space;
- Widget Uxeditor_parent;
- XColor *Uxi_c;
- XColor *Uxe_c;
- } _UxCcoloredit;
-
- #define full_fm UxColoreditContext->Uxfull_fm
- #define top_box UxColoreditContext->Uxtop_box
- #define top_lbl UxColoreditContext->Uxtop_lbl
- #define main_box UxColoreditContext->Uxmain_box
- #define work_fm UxColoreditContext->Uxwork_fm
- #define hue_fm UxColoreditContext->Uxhue_fm
- #define hue_sc UxColoreditContext->Uxhue_sc
- #define hue_red_min UxColoreditContext->Uxhue_red_min
- #define hue_yellow UxColoreditContext->Uxhue_yellow
- #define hue_green UxColoreditContext->Uxhue_green
- #define hue_cyan UxColoreditContext->Uxhue_cyan
- #define hue_blue UxColoreditContext->Uxhue_blue
- #define hue_magenta UxColoreditContext->Uxhue_magenta
- #define hue_red_max UxColoreditContext->Uxhue_red_max
- #define space_radio UxColoreditContext->Uxspace_radio
- #define rgb_tgl UxColoreditContext->Uxrgb_tgl
- #define cmy_tgl UxColoreditContext->Uxcmy_tgl
- #define lightness_fm UxColoreditContext->Uxlightness_fm
- #define lightness_min_box UxColoreditContext->Uxlightness_min_box
- #define lightness_max_btn UxColoreditContext->Uxlightness_max_btn
- #define lightness_sc UxColoreditContext->Uxlightness_sc
- #define saturation_fm UxColoreditContext->Uxsaturation_fm
- #define saturation_min_box UxColoreditContext->Uxsaturation_min_box
- #define saturation_max_btn UxColoreditContext->Uxsaturation_max_btn
- #define saturation_sc UxColoreditContext->Uxsaturation_sc
- #define blue_fm UxColoreditContext->Uxblue_fm
- #define blue_max_btn UxColoreditContext->Uxblue_max_btn
- #define blue_min_box UxColoreditContext->Uxblue_min_box
- #define blue_sc UxColoreditContext->Uxblue_sc
- #define green_fm UxColoreditContext->Uxgreen_fm
- #define green_max_btn UxColoreditContext->Uxgreen_max_btn
- #define green_min_box UxColoreditContext->Uxgreen_min_box
- #define green_sc UxColoreditContext->Uxgreen_sc
- #define red_fm UxColoreditContext->Uxred_fm
- #define red_max_btn UxColoreditContext->Uxred_max_btn
- #define red_min_box UxColoreditContext->Uxred_min_box
- #define red_sc UxColoreditContext->Uxred_sc
- #define swatch_box UxColoreditContext->Uxswatch_box
- #define swatch_form UxColoreditContext->Uxswatch_form
- #define string_lbl UxColoreditContext->Uxstring_lbl
- #define string_text UxColoreditContext->Uxstring_text
- #define ce_ok_btn UxColoreditContext->Uxce_ok_btn
- #define ce_reset_btn UxColoreditContext->Uxce_reset_btn
- #define ce_apply_btn UxColoreditContext->Uxce_apply_btn
- #define ce_cancel_btn UxColoreditContext->Uxce_cancel_btn
- #define ce_hue UxColoreditContext->Uxce_hue
- #define ce_saturation UxColoreditContext->Uxce_saturation
- #define ce_lightness UxColoreditContext->Uxce_lightness
- #define rgb_space UxColoreditContext->Uxrgb_space
- #define editor_parent UxColoreditContext->Uxeditor_parent
- #define i_c UxColoreditContext->Uxi_c
- #define e_c UxColoreditContext->Uxe_c
-
- static _UxCcoloredit *UxColoreditContext;
-
- Widget coloredit;
- Widget color_dsp;
- Widget orig_dsp;
-
- /*******************************************************************************
- Forward declarations of functions that are defined later in this file.
- *******************************************************************************/
-
- Widget create_coloredit();
-
- /*******************************************************************************
- Auxiliary code from the Declarations Editor:
- *******************************************************************************/
-
- /* new_init_color () - sent by the color view to replace 'init_color'
- * with a newly activated palette cell.
- */
-
- void new_init_color (color)
- XColor * color;
- {
- Arg arglist[2];
- init_color = color;
-
- if (! (orig_dsp))
- return;
-
- XtSetArg (arglist[0], XmNbackground, init_color->pixel);
- XtSetValues (orig_dsp, arglist, 1);
- }
-
- /* Color conversions rgb_to_hls and hls_to_rgb
- */
-
- #define MAXIMUM(r, g, b) ((r>g) ? ((r>b) ? (r):(b)) : ((g>b) ? (g):(b)))
- #define MINIMUM(r, g, b) ((r<g) ? ((r<b) ? (r):(b)) : ((g<b) ? (g):(b)))
-
- static void rgb_to_hls (color,hue, light, sat)
- XColor *color;
- int *hue, *light, *sat;
- {
- double max, min;
- double r = (double) color->red/65535;
- double g = (double) color->green/65535;
- double b = (double) color->blue/65535;
- double h, l, s;
- double rc, gc, bc;
-
- max = MAXIMUM(r, g, b);
- min = MINIMUM(r, g, b);
- l = (max + min)/2;
-
- if (max == min) {
- s = 0;
- h = 0;
- }
- else {
- if (l <= 0.5) {
- s = (max-min)/(max+min);
- }
- else {
- s = (max-min)/(2-max-min);
- }
- rc = (max-r)/(max-min);
- gc = (max-g)/(max-min);
- bc = (max-b)/(max-min);
-
- if (r == max)
- h = bc - gc;
- else if (g == max)
- h = 2 + rc - bc;
- else if (b == max)
- h = 4 + gc - rc;
-
- h = h*60;
- if (h < 0)
- h = h +360;
- }
- *hue = (unsigned short) (h);
- *light = (unsigned short) (l * 100);
- *sat = (unsigned short) (s * 100);
- }
-
- #define VALUE(n1, n2, h) ((h < 60) ? (n1 + (n2-n1)*h/60) : ((h<180) ? \
- (n2) : ((h<240) ? (n1+(n2-n1)*(240-h)/60) : (n1))))
-
- static void hls_to_rgb(hue, light, sat, color)
- int hue, light, sat;
- XColor * color;
- {
- double h = (double) hue;
- double l = (double) light/100;
- double s = (double) sat/100;
- double m1, m2;
- double r, g, b;
-
- if (l<= 0.5)
- m2 = l*(1 + s);
- else
- m2 = l + s - l*s;
- m1 = 2*l - m2;
- if ((s == 0) && (h == 0)) {
- r = l; g = l; b = l;
- }
- else {
- r = VALUE(m1, m2, (((h+120) > 360) ? (h-240) : (h+120)));
- g = VALUE(m1, m2, h);
- b = VALUE(m1, m2, (((h-120) < 0) ? (h+240) : (h-120)));
- }
- color->red = (int) (r * 65535);
- color->green = (int) (g * 65535);
- color->blue = (int) (b * 65535);
- }
-
- /* color_string() - return the (hex triple) string representing
- * the X name for the color. The string is static,
- * must be copied by the recipient. It normally goes
- * directly into an XmText widget.
- */
- char* color_string (color)
- XColor* color;
- {
- int rhex,ghex,bhex;
- static char color_string_buf[32];
-
- rhex = color->red * 255 / 65535;
- ghex = color->green * 255 / 65535;
- bhex = color->blue * 255 / 65535;
- sprintf (color_string_buf, "#%02x%02x%02x", rhex, ghex, bhex);
-
- return color_string_buf;
- }
-
- /* setup_pixels() - bind the editor widgets to the cue color cells.
- * Depends on N_CUES.
- */
-
- static void setup_pixels ()
- {
- Arg arglist[2];
-
- /* The main color swatches */
- XtSetArg (arglist[0], XmNbackground, edit_color->pixel);
- XtSetValues (color_dsp, arglist, 1);
-
- XtSetArg (arglist[0], XmNbackground, init_color->pixel);
- XtSetValues (orig_dsp, arglist, 1);
-
- /* Cues marking the end of each scale */
-
- XtSetArg (arglist[0], XmNbackground, cue_colors[0].pixel);
- XtSetValues (saturation_max_btn, arglist, 1);
-
- XtSetArg (arglist[0], XmNbackground, cue_colors[1].pixel);
- XtSetValues (saturation_min_box, arglist, 1);
-
- XtSetArg (arglist[0], XmNbackground, cue_colors[2].pixel);
- XtSetValues (red_min_box, arglist, 1);
-
- XtSetArg (arglist[0], XmNbackground, cue_colors[3].pixel);
- XtSetValues (red_max_btn, arglist, 1);
-
- XtSetArg (arglist[0], XmNbackground, cue_colors[4].pixel);
- XtSetValues (green_min_box, arglist, 1);
-
- XtSetArg (arglist[0], XmNbackground, cue_colors[5].pixel);
- XtSetValues (green_max_btn, arglist, 1);
-
- XtSetArg (arglist[0], XmNbackground, cue_colors[6].pixel);
- XtSetValues (blue_min_box, arglist, 1);
-
- XtSetArg (arglist[0], XmNbackground, cue_colors[7].pixel);
- XtSetValues (blue_max_btn, arglist, 1);
-
- /* The RGB scrollbars change to CMY */
- XtSetArg (arglist[0], XmNbackground, cue_colors[8].pixel);
- XtSetValues (red_sc, arglist, 1);
-
- XtSetArg (arglist[0], XmNbackground, cue_colors[9].pixel);
- XtSetValues (green_sc, arglist, 1);
-
- XtSetArg (arglist[0], XmNbackground, cue_colors[10].pixel);
- XtSetValues (blue_sc, arglist, 1);
- }
-
- /* copy_color () - copy the RGB components of one XColor to another.
- * (first argument is target).
- */
-
- void copy_color (to, from)
- XColor *to, *from;
- {
- to->red = from->red;
- to->green = from->green;
- to->blue = from->blue;
- }
-
- /* put_color_cues () - set all color cues to reflect the current edit_color.
- */
-
- static void put_color_cues ()
- {
- hls_to_rgb (ce_hue, ce_lightness, 99, &cue_colors[0]);
-
- hls_to_rgb (ce_hue, ce_lightness,0, &cue_colors[1]);
-
- copy_color (&cue_colors[2], edit_color);
- cue_colors[2].red = rgb_space ? 0 : 65535;
-
- copy_color (&cue_colors[3], edit_color);
- cue_colors[3].red = rgb_space ? 65535 : 0;
-
- copy_color (&cue_colors[4], edit_color);
- cue_colors[4].green = rgb_space ? 0 : 65535;
-
- copy_color (&cue_colors[5], edit_color);
- cue_colors[5].green = rgb_space ? 65535 : 0;
-
- copy_color (&cue_colors[6], edit_color);
- cue_colors[6].blue = rgb_space ? 0 : 65535;
-
- copy_color (&cue_colors[7], edit_color);
- cue_colors[7].blue = rgb_space ? 65535 : 0;
-
- XStoreColors (UxDisplay,sys_cmap,cue_colors, 8);
- }
-
- /* put_scale_background () - set the backgounds of the RGB scales.
- */
-
- static void put_scale_background ()
- {
- /* The scale backgrounds are red, green, blue,
- * or cyan, magenta, yellow.
- */
- hls_to_rgb ((rgb_space ? 0 : 180), 40, 50, &cue_colors[8]);
- hls_to_rgb ((rgb_space ? 120 : 300), 40, 50, &cue_colors[9]);
- hls_to_rgb ((rgb_space ? 240 : 60), 40, 50, &cue_colors[10]);
- XStoreColors (UxDisplay, sys_cmap, &cue_colors[8], 3);
- }
-
- /* apply_color () - adjust scrollbars and cues to reflect edit_color.
- */
- static void apply_color (sender)
- int sender;
- {
-
- if (sender != CE_HLS_SCALE) {
- rgb_to_hls (edit_color, &ce_hue, &ce_lightness, &ce_saturation);
- XtVaSetValues( hue_sc, XmNvalue, ce_hue, NULL );
- XtVaSetValues( lightness_sc, XmNvalue, ce_lightness, NULL );
- XtVaSetValues( saturation_sc, XmNvalue, ce_saturation, NULL );
- }
-
- if (sender != CE_RGB_SCALE) {
- XtVaSetValues( red_sc, XmNvalue, (int) edit_color->red, NULL );
- XtVaSetValues( green_sc, XmNvalue, (int) edit_color->green, NULL );
- XtVaSetValues( blue_sc, XmNvalue, (int) edit_color->blue, NULL );
- }
-
- XStoreColor (UxDisplay, sys_cmap, edit_color);
- /*
- XtVaSetValues( string_text, XmNvalue, color_string (edit_color), NULL );
- */
- put_color_cues ();
- }
-
- /*******************************************************************************
- The following are callback functions.
- *******************************************************************************/
-
- static void popupCB_coloredit( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- copy_color (edit_color, init_color);
- apply_color (CE_INIT);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void valueChangedCB_hue_sc( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- ce_hue = ((XmScaleCallbackStruct*) UxCallbackArg)->value;
- hls_to_rgb (ce_hue, ce_lightness, ce_saturation, edit_color);
- apply_color (CE_HLS_SCALE);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void dragCB_hue_sc( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- ce_hue = ((XmScaleCallbackStruct*) UxCallbackArg)->value;
- hls_to_rgb (ce_hue, ce_lightness, ce_saturation, edit_color);
- apply_color (CE_HLS_SCALE);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void valueChangedCB_rgb_tgl( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
- Boolean UxBoolValue;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- if (!strcmp (
- (XtVaGetValues( UxWidget, XmNset, &UxBoolValue, NULL ),
- (UxBoolValue ? "true" : "false"))
- , "false"))
- return;
- XtVaSetValues( red_sc,
- RES_CONVERT( XmNprocessingDirection, "max_on_right" ), NULL );
- XtVaSetValues( green_sc,
- RES_CONVERT( XmNprocessingDirection, "max_on_right" ), NULL );
- XtVaSetValues( blue_sc,
- RES_CONVERT( XmNprocessingDirection, "max_on_right" ), NULL );
- rgb_space = TRUE;
- put_scale_background ();
- apply_color (CE_SPACE_TGL);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void valueChangedCB_cmy_tgl( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
- Boolean UxBoolValue;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- if (!strcmp (
- (XtVaGetValues( UxWidget, XmNset, &UxBoolValue, NULL ),
- (UxBoolValue ? "true" : "false"))
- , "false"))
- return;
- XtVaSetValues( red_sc,
- RES_CONVERT( XmNprocessingDirection, "max_on_left" ), NULL );
- XtVaSetValues( green_sc,
- RES_CONVERT( XmNprocessingDirection, "max_on_left" ), NULL );
- XtVaSetValues( blue_sc,
- RES_CONVERT( XmNprocessingDirection, "max_on_left" ), NULL );
- rgb_space = FALSE;
- put_scale_background ();
- apply_color (CE_SPACE_TGL);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void valueChangedCB_lightness_sc( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- ce_lightness = ((XmScaleCallbackStruct*) UxCallbackArg)->value;
- hls_to_rgb (ce_hue, ce_lightness, ce_saturation, edit_color);
- apply_color (CE_HLS_SCALE);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void dragCB_lightness_sc( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- ce_lightness = ((XmScaleCallbackStruct*) UxCallbackArg)->value;
- hls_to_rgb(ce_hue, ce_lightness, ce_saturation, edit_color);
- apply_color (CE_HLS_SCALE);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void valueChangedCB_saturation_sc( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- ce_saturation = ((XmScaleCallbackStruct*) UxCallbackArg)->value;
- hls_to_rgb(ce_hue, ce_lightness, ce_saturation, edit_color);
- apply_color (CE_HLS_SCALE);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void dragCB_saturation_sc( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- ce_saturation = ((XmScaleCallbackStruct*) UxCallbackArg)->value;
- hls_to_rgb (ce_hue, ce_lightness, ce_saturation, edit_color);
- apply_color (CE_HLS_SCALE);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void valueChangedCB_blue_sc( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- edit_color->blue = ((XmScaleCallbackStruct*) UxCallbackArg)->value;
- apply_color (CE_RGB_SCALE);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void dragCB_blue_sc( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- edit_color->blue = ((XmScaleCallbackStruct*) UxCallbackArg)->value;
- apply_color (CE_RGB_SCALE);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void valueChangedCB_green_sc( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- edit_color->green = ((XmScaleCallbackStruct*) UxCallbackArg)->value;
- apply_color (CE_RGB_SCALE);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void dragCB_green_sc( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- edit_color->green = ((XmScaleCallbackStruct*) UxCallbackArg)->value;
- apply_color (CE_RGB_SCALE);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void valueChangedCB_red_sc( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- edit_color->red = ((XmScaleCallbackStruct*) UxCallbackArg)->value;
- apply_color (CE_RGB_SCALE);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void dragCB_red_sc( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- edit_color->red = ((XmScaleCallbackStruct*) UxCallbackArg)->value;
- apply_color (CE_RGB_SCALE);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void activateCB_string_text( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- char *newname;
- newname = (char *)XmTextFieldGetString (UxWidget);
- if (!XParseColor (UxDisplay, sys_cmap, newname, edit_color)) {
- /*
- printf ("problem parsing color %s\n", newname);
- */
- sprintf(msgstring, "problem parsing color %s\n", newname);
- DialogType = 1;
- popup_Message();
- return;
- }
- apply_color (CE_TEXT);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void activateCB_ce_ok_btn( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- copy_color (init_color, edit_color);
- XStoreColor (UxDisplay,sys_cmap,init_color);
- /*
- update_view ();
- */
- UxPopdownInterface (coloredit);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void activateCB_ce_reset_btn( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- copy_color (edit_color, init_color);
- apply_color (CE_INIT);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void activateCB_ce_apply_btn( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- copy_color (init_color, edit_color);
- XStoreColor (UxDisplay,sys_cmap,init_color);
- /*
- update_view ();
- */
- apply_color (CE_INIT);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
- static void activateCB_ce_cancel_btn( UxWidget, UxClientData, UxCallbackArg )
- Widget UxWidget;
- XtPointer UxClientData, UxCallbackArg;
- {
- _UxCcoloredit *UxSaveCtx, *UxContext;
-
- UxSaveCtx = UxColoreditContext;
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) UxGetContext( UxWidget );
- {
- UxPopdownInterface (coloredit);
- }
- UxColoreditContext = UxSaveCtx;
- }
-
-
- /*******************************************************************************
- The 'build_' function creates all the widgets
- using the resource values specified in the Property Editor.
- *******************************************************************************/
-
- static Widget _Uxbuild_coloredit()
- {
-
- coloredit = XtVaCreatePopupShell( "coloredit",
- xmDialogShellWidgetClass, editor_parent,
- XmNtitle, "Color Editor",
- XmNminWidth, 270,
- XmNminHeight, 310,
- XmNallowShellResize, TRUE,
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- */
- XmNheight, 338,
- XmNwidth, 308,
- NULL );
-
- UxPutContext( coloredit, (char *) UxColoreditContext );
-
- full_fm = XtVaCreateWidget( "full_fm",
- xmFormWidgetClass, coloredit,
- XmNautoUnmanage, FALSE,
- XmNallowOverlap, FALSE,
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- XmNshadowThickness, 3,
- */
- XmNheight, 360,
- XmNwidth, 340,
- XmNy, 200,
- XmNx, 100,
- NULL );
-
- UxPutContext( full_fm, (char *) UxColoreditContext );
-
- top_box = XtVaCreateManagedWidget( "top_box",
- xmFrameWidgetClass, full_fm,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_FORM,
- XmNbottomOffset, -24,
- XmNbottomAttachment, XmATTACH_OPPOSITE_FORM,
- XmNshadowType, XmSHADOW_OUT,
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- XmNshadowThickness, 3,
- */
- NULL );
-
- UxPutContext( top_box, (char *) UxColoreditContext );
-
- top_lbl = XtVaCreateManagedWidget( "top_lbl",
- xmLabelWidgetClass, top_box,
- XmNrecomputeSize, FALSE,
- RES_CONVERT( XmNfontList, "-Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO8859-1" ),
- RES_CONVERT( XmNlabelString, "Color Editor" ),
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- */
- XmNborderWidth, 0,
- NULL );
-
- UxPutContext( top_lbl, (char *) UxColoreditContext );
-
- main_box = XtVaCreateManagedWidget( "main_box",
- xmFrameWidgetClass, full_fm,
- XmNtopWidget, top_box,
- XmNtopOffset, 45,
- XmNtopAttachment, XmATTACH_WIDGET,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_FORM,
- XmNbottomOffset, 40,
- XmNbottomAttachment, XmATTACH_FORM,
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- XmNshadowThickness, 3,
- */
- XmNshadowType, XmSHADOW_OUT,
- XmNmarginWidth, 8,
- XmNmarginHeight, 8,
- XmNheight, 370,
- XmNwidth, 381,
- XmNy, 69,
- XmNx, 0,
- NULL );
-
- UxPutContext( main_box, (char *) UxColoreditContext );
-
- work_fm = XtVaCreateManagedWidget( "work_fm",
- xmFormWidgetClass, main_box,
- XmNmarginWidth, 10,
- XmNmarginHeight, 10,
- XmNborderWidth, 0,
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- */
- NULL );
-
- UxPutContext( work_fm, (char *) UxColoreditContext );
-
- hue_fm = XtVaCreateManagedWidget( "hue_fm",
- xmFormWidgetClass, work_fm,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_FORM,
- XmNborderWidth, 0,
- XmNheight, 30,
- NULL );
-
- UxPutContext( hue_fm, (char *) UxColoreditContext );
-
- hue_sc = XtVaCreateManagedWidget( "hue_sc",
- xmScaleWidgetClass, hue_fm,
- XmNtopPosition, 50,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_POSITION,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_FORM,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNshowValue, FALSE,
- XmNprocessingDirection, XmMAX_ON_RIGHT,
- XmNorientation, XmHORIZONTAL,
- XmNminimum, 0,
- XmNmaximum, 359,
- XmNhighlightThickness, 0,
- XmNheight, 15,
- NULL );
-
- UxPutContext( hue_sc, (char *) UxColoreditContext );
-
- hue_red_min = XtVaCreateManagedWidget( "hue_red_min",
- xmFrameWidgetClass, hue_fm,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightPosition, 10,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_POSITION,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_FORM,
- XmNbottomWidget, hue_sc,
- XmNbottomPosition, 30,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNshadowType, XmSHADOW_IN,
- XmNshadowThickness, 1,
- RES_CONVERT( XmNbackground, "#c44" ),
- NULL );
-
- UxPutContext( hue_red_min, (char *) UxColoreditContext );
-
- hue_yellow = XtVaCreateManagedWidget( "hue_yellow",
- xmFrameWidgetClass, hue_fm,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightPosition, 26,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_POSITION,
- XmNleftPosition, 10,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_POSITION,
- XmNbottomWidget, hue_sc,
- XmNbottomPosition, 30,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNshadowType, XmSHADOW_IN,
- XmNshadowThickness, 1,
- RES_CONVERT( XmNbackground, "#bb3" ),
- XmNheight, 15,
- XmNwidth, 50,
- XmNy, 0,
- XmNx, 30,
- NULL );
-
- UxPutContext( hue_yellow, (char *) UxColoreditContext );
-
- hue_green = XtVaCreateManagedWidget( "hue_green",
- xmFrameWidgetClass, hue_fm,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightPosition, 42,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_POSITION,
- XmNleftPosition, 26,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_POSITION,
- XmNbottomWidget, hue_sc,
- XmNbottomPosition, 30,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNshadowType, XmSHADOW_IN,
- XmNshadowThickness, 1,
- RES_CONVERT( XmNbackground, "#3c3" ),
- NULL );
-
- UxPutContext( hue_green, (char *) UxColoreditContext );
-
- hue_cyan = XtVaCreateManagedWidget( "hue_cyan",
- xmFrameWidgetClass, hue_fm,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightPosition, 58,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_POSITION,
- XmNleftPosition, 42,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_POSITION,
- XmNbottomWidget, hue_sc,
- XmNbottomPosition, 30,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNshadowType, XmSHADOW_IN,
- XmNshadowThickness, 1,
- RES_CONVERT( XmNbackground, "#3bb" ),
- NULL );
-
- UxPutContext( hue_cyan, (char *) UxColoreditContext );
-
- hue_blue = XtVaCreateManagedWidget( "hue_blue",
- xmFrameWidgetClass, hue_fm,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightPosition, 74,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_POSITION,
- XmNleftPosition, 58,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_POSITION,
- XmNbottomWidget, hue_sc,
- XmNbottomPosition, 30,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNshadowType, XmSHADOW_IN,
- XmNshadowThickness, 1,
- RES_CONVERT( XmNbackground, "#33c" ),
- NULL );
-
- UxPutContext( hue_blue, (char *) UxColoreditContext );
-
- hue_magenta = XtVaCreateManagedWidget( "hue_magenta",
- xmFrameWidgetClass, hue_fm,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightPosition, 90,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_POSITION,
- XmNleftPosition, 74,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_POSITION,
- XmNbottomWidget, hue_sc,
- XmNbottomPosition, 30,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNshadowType, XmSHADOW_IN,
- XmNshadowThickness, 1,
- RES_CONVERT( XmNbackground, "#b3b" ),
- NULL );
-
- UxPutContext( hue_magenta, (char *) UxColoreditContext );
-
- hue_red_max = XtVaCreateManagedWidget( "hue_red_max",
- xmFrameWidgetClass, hue_fm,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNleftPosition, 90,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_POSITION,
- XmNbottomWidget, hue_sc,
- XmNbottomPosition, 30,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNshadowType, XmSHADOW_IN,
- XmNshadowThickness, 1,
- RES_CONVERT( XmNbackground, "#c44" ),
- XmNheight, 6,
- XmNwidth, 86,
- XmNy, 4,
- XmNx, 7,
- NULL );
-
- UxPutContext( hue_red_max, (char *) UxColoreditContext );
-
- space_radio = XtVaCreateManagedWidget( "space_radio",
- xmRowColumnWidgetClass, work_fm,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNradioBehavior, TRUE,
- XmNradioAlwaysOne, TRUE,
- XmNpacking, XmPACK_COLUMN,
- XmNorientation, XmHORIZONTAL,
- XmNentryBorder, 0,
- XmNborderWidth, 0,
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- */
- XmNheight, 24,
- NULL );
-
- UxPutContext( space_radio, (char *) UxColoreditContext );
-
- rgb_tgl = XtVaCreateManagedWidget( "rgb_tgl",
- xmToggleButtonWidgetClass, space_radio,
- XmNset, FALSE,
- RES_CONVERT( XmNfontList, "-Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO8859-1" ),
- RES_CONVERT( XmNlabelString, "RGB" ),
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- */
- XmNborderWidth, 0,
- XmNheight, 21,
- XmNwidth, 60,
- XmNy, 3,
- XmNx, 0,
- NULL );
-
- UxPutContext( rgb_tgl, (char *) UxColoreditContext );
-
- cmy_tgl = XtVaCreateManagedWidget( "cmy_tgl",
- xmToggleButtonWidgetClass, space_radio,
- RES_CONVERT( XmNfontList, "-Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO8859-1" ),
- RES_CONVERT( XmNlabelString, "CMY" ),
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- */
- XmNborderWidth, 0,
- XmNheight, 21,
- XmNwidth, 50,
- XmNy, 3,
- XmNx, 70,
- NULL );
-
- UxPutContext( cmy_tgl, (char *) UxColoreditContext );
-
- lightness_fm = XtVaCreateManagedWidget( "lightness_fm",
- xmFormWidgetClass, work_fm,
- XmNtopWidget, hue_fm,
- XmNtopOffset, 10,
- XmNtopAttachment, XmATTACH_WIDGET,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_FORM,
- XmNbottomWidget, space_radio,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNborderWidth, 0,
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- */
- XmNwidth, 15,
- NULL );
-
- UxPutContext( lightness_fm, (char *) UxColoreditContext );
-
- lightness_min_box = XtVaCreateManagedWidget( "lightness_min_box",
- xmFrameWidgetClass, lightness_fm,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNleftAttachment, XmATTACH_NONE,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNshadowType, XmSHADOW_IN,
- RES_CONVERT( XmNbackground, "#000" ),
- XmNheight, 15,
- XmNwidth, 15,
- XmNy, 0,
- NULL );
-
- UxPutContext( lightness_min_box, (char *) UxColoreditContext );
-
- lightness_max_btn = XtVaCreateManagedWidget( "lightness_max_btn",
- xmFrameWidgetClass, lightness_fm,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNshadowType, XmSHADOW_IN,
- XmNshadowThickness, 2,
- RES_CONVERT( XmNbackground, "#fff" ),
- XmNheight, 15,
- XmNwidth, 15,
- NULL );
-
- UxPutContext( lightness_max_btn, (char *) UxColoreditContext );
-
- lightness_sc = XtVaCreateManagedWidget( "lightness_sc",
- xmScaleWidgetClass, lightness_fm,
- XmNtopWidget, lightness_max_btn,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_WIDGET,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNbottomWidget, lightness_min_box,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNshowValue, FALSE,
- XmNprocessingDirection, XmMAX_ON_TOP,
- XmNorientation, XmVERTICAL,
- XmNminimum, 0,
- XmNmaximum, 100,
- XmNhighlightThickness, 0,
- XmNdecimalPoints, 2,
- XmNheight, 210,
- XmNwidth, 15,
- XmNy, 20,
- XmNx, 0,
- NULL );
-
- UxPutContext( lightness_sc, (char *) UxColoreditContext );
-
- saturation_fm = XtVaCreateManagedWidget( "saturation_fm",
- xmFormWidgetClass, work_fm,
- XmNtopWidget, hue_fm,
- XmNtopOffset, 10,
- XmNtopAttachment, XmATTACH_WIDGET,
- XmNrightWidget, lightness_fm,
- XmNleftWidget, lightness_fm,
- XmNleftOffset, 5,
- XmNleftAttachment, XmATTACH_WIDGET,
- XmNbottomWidget, space_radio,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNborderWidth, 0,
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- */
- XmNwidth, 15,
- NULL );
-
- UxPutContext( saturation_fm, (char *) UxColoreditContext );
-
- saturation_min_box = XtVaCreateManagedWidget( "saturation_min_box",
- xmFrameWidgetClass, saturation_fm,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNshadowType, XmSHADOW_IN,
- XmNheight, 15,
- XmNwidth, 15,
- NULL );
-
- UxPutContext( saturation_min_box, (char *) UxColoreditContext );
-
- saturation_max_btn = XtVaCreateManagedWidget( "saturation_max_btn",
- xmFrameWidgetClass, saturation_fm,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNshadowType, XmSHADOW_IN,
- XmNheight, 15,
- XmNwidth, 15,
- NULL );
-
- UxPutContext( saturation_max_btn, (char *) UxColoreditContext );
-
- saturation_sc = XtVaCreateManagedWidget( "saturation_sc",
- xmScaleWidgetClass, saturation_fm,
- XmNtopWidget, saturation_max_btn,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_WIDGET,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNbottomWidget, saturation_min_box,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNshowValue, FALSE,
- XmNprocessingDirection, XmMAX_ON_TOP,
- XmNorientation, XmVERTICAL,
- XmNminimum, 0,
- XmNmaximum, 100,
- XmNhighlightThickness, 0,
- XmNdecimalPoints, 2,
- XmNheight, 240,
- XmNwidth, 15,
- XmNy, 15,
- XmNx, 5,
- NULL );
-
- UxPutContext( saturation_sc, (char *) UxColoreditContext );
-
- blue_fm = XtVaCreateManagedWidget( "blue_fm",
- xmFormWidgetClass, work_fm,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNleftWidget, saturation_fm,
- XmNleftOffset, 10,
- XmNleftAttachment, XmATTACH_WIDGET,
- XmNbottomWidget, space_radio,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNborderWidth, 0,
- XmNheight, 15,
- NULL );
-
- UxPutContext( blue_fm, (char *) UxColoreditContext );
-
- blue_max_btn = XtVaCreateManagedWidget( "blue_max_btn",
- xmFrameWidgetClass, blue_fm,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNshadowType, XmSHADOW_IN,
- RES_CONVERT( XmNborderColor, "#11f" ),
- XmNheight, 15,
- XmNwidth, 15,
- NULL );
-
- UxPutContext( blue_max_btn, (char *) UxColoreditContext );
-
- blue_min_box = XtVaCreateManagedWidget( "blue_min_box",
- xmFrameWidgetClass, blue_fm,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_FORM,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNshadowType, XmSHADOW_IN,
- XmNheight, 15,
- XmNwidth, 15,
- NULL );
-
- UxPutContext( blue_min_box, (char *) UxColoreditContext );
-
- blue_sc = XtVaCreateManagedWidget( "blue_sc",
- xmScaleWidgetClass, blue_fm,
- XmNtopOffset, 0,
- XmNrightWidget, blue_max_btn,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_WIDGET,
- XmNleftWidget, blue_min_box,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_WIDGET,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNshowValue, FALSE,
- XmNprocessingDirection, XmMAX_ON_RIGHT,
- XmNorientation, XmHORIZONTAL,
- XmNminimum, 0,
- XmNmaximum, 65535,
- XmNhighlightThickness, 0,
- XmNheight, 15,
- XmNwidth, 221,
- XmNy, 5,
- XmNx, 21,
- NULL );
-
- UxPutContext( blue_sc, (char *) UxColoreditContext );
-
- green_fm = XtVaCreateManagedWidget( "green_fm",
- xmFormWidgetClass, work_fm,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNleftWidget, saturation_fm,
- XmNleftOffset, 10,
- XmNleftAttachment, XmATTACH_WIDGET,
- XmNbottomWidget, blue_fm,
- XmNbottomOffset, 6,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNborderWidth, 0,
- XmNheight, 15,
- NULL );
-
- UxPutContext( green_fm, (char *) UxColoreditContext );
-
- green_max_btn = XtVaCreateManagedWidget( "green_max_btn",
- xmFrameWidgetClass, green_fm,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNshadowType, XmSHADOW_IN,
- XmNheight, 15,
- XmNwidth, 15,
- NULL );
-
- UxPutContext( green_max_btn, (char *) UxColoreditContext );
-
- green_min_box = XtVaCreateManagedWidget( "green_min_box",
- xmFrameWidgetClass, green_fm,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_FORM,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNshadowType, XmSHADOW_IN,
- XmNheight, 15,
- XmNwidth, 15,
- NULL );
-
- UxPutContext( green_min_box, (char *) UxColoreditContext );
-
- green_sc = XtVaCreateManagedWidget( "green_sc",
- xmScaleWidgetClass, green_fm,
- XmNtopOffset, 0,
- XmNrightWidget, green_max_btn,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_WIDGET,
- XmNleftWidget, green_min_box,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_WIDGET,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNshowValue, FALSE,
- XmNprocessingDirection, XmMAX_ON_RIGHT,
- XmNorientation, XmHORIZONTAL,
- XmNminimum, 0,
- XmNmaximum, 65535,
- XmNhighlightThickness, 0,
- XmNheight, 15,
- XmNwidth, 280,
- XmNy, 5,
- XmNx, 20,
- NULL );
-
- UxPutContext( green_sc, (char *) UxColoreditContext );
-
- red_fm = XtVaCreateManagedWidget( "red_fm",
- xmFormWidgetClass, work_fm,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNleftWidget, saturation_fm,
- XmNleftOffset, 10,
- XmNleftAttachment, XmATTACH_WIDGET,
- XmNbottomWidget, green_fm,
- XmNbottomOffset, 5,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNallowOverlap, FALSE,
- XmNborderWidth, 0,
- XmNheight, 15,
- NULL );
-
- UxPutContext( red_fm, (char *) UxColoreditContext );
-
- red_max_btn = XtVaCreateManagedWidget( "red_max_btn",
- xmFrameWidgetClass, red_fm,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNshadowType, XmSHADOW_IN,
- XmNheight, 15,
- XmNwidth, 15,
- NULL );
-
- UxPutContext( red_max_btn, (char *) UxColoreditContext );
-
- red_min_box = XtVaCreateManagedWidget( "red_min_box",
- xmFrameWidgetClass, red_fm,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_FORM,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNshadowType, XmSHADOW_IN,
- XmNheight, 15,
- XmNwidth, 15,
- NULL );
-
- UxPutContext( red_min_box, (char *) UxColoreditContext );
-
- red_sc = XtVaCreateManagedWidget( "red_sc",
- xmScaleWidgetClass, red_fm,
- XmNtopOffset, 0,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightWidget, red_max_btn,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_WIDGET,
- XmNleftWidget, red_min_box,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_WIDGET,
- XmNbottomOffset, 0,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNshowValue, FALSE,
- XmNprocessingDirection, XmMAX_ON_RIGHT,
- XmNorientation, XmHORIZONTAL,
- XmNminimum, 0,
- XmNmaximum, 65535,
- XmNhighlightThickness, 0,
- XmNheight, 15,
- NULL );
-
- UxPutContext( red_sc, (char *) UxColoreditContext );
-
- swatch_box = XtVaCreateManagedWidget( "swatch_box",
- xmFrameWidgetClass, work_fm,
- XmNtopWidget, hue_fm,
- XmNtopOffset, 10,
- XmNtopAttachment, XmATTACH_WIDGET,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_FORM,
- XmNleftWidget, saturation_fm,
- XmNleftOffset, 10,
- XmNleftAttachment, XmATTACH_WIDGET,
- XmNbottomWidget, red_fm,
- XmNbottomOffset, 10,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNshadowType, XmSHADOW_IN,
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- */
- XmNshadowThickness, 5,
- NULL );
-
- UxPutContext( swatch_box, (char *) UxColoreditContext );
-
- swatch_form = XtVaCreateManagedWidget( "swatch_form",
- xmFormWidgetClass, swatch_box,
- XmNborderWidth, 0,
- RES_CONVERT( XmNbackground, "black" ),
- XmNheight, 210,
- XmNwidth, 312,
- XmNy, 2,
- XmNx, 4,
- NULL );
-
- UxPutContext( swatch_form, (char *) UxColoreditContext );
-
- color_dsp = XtVaCreateManagedWidget( "color_dsp",
- xmDrawingAreaWidgetClass, swatch_form,
- XmNtopOffset, 10,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightPosition, 50,
- XmNrightOffset, 5,
- XmNrightAttachment, XmATTACH_POSITION,
- XmNleftOffset, 10,
- XmNleftAttachment, XmATTACH_FORM,
- XmNbottomOffset, 10,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNresizePolicy, XmRESIZE_NONE,
- XmNheight, 203,
- XmNwidth, 139,
- XmNy, 10,
- XmNx, 10,
- NULL );
-
- UxPutContext( color_dsp, (char *) UxColoreditContext );
-
- orig_dsp = XtVaCreateManagedWidget( "orig_dsp",
- xmDrawingAreaWidgetClass, swatch_form,
- XmNtopOffset, 10,
- XmNtopAttachment, XmATTACH_FORM,
- XmNrightOffset, 10,
- XmNrightAttachment, XmATTACH_FORM,
- XmNleftPosition, 50,
- XmNleftOffset, 5,
- XmNleftAttachment, XmATTACH_POSITION,
- XmNbottomOffset, 10,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNresizePolicy, XmRESIZE_NONE,
- XmNheight, 204,
- XmNwidth, 146,
- XmNy, 2,
- XmNx, 163,
- NULL );
-
- UxPutContext( orig_dsp, (char *) UxColoreditContext );
-
- /*
- string_lbl = XtVaCreateManagedWidget( "string_lbl",
- xmLabelGadgetClass, full_fm,
- XmNleftOffset, 3,
- XmNleftAttachment, XmATTACH_FORM,
- XmNbottomWidget, main_box,
- XmNbottomOffset, 7,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNrecomputeSize, TRUE,
- XmNmarginRight, 5,
- RES_CONVERT( XmNfontList, "-Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO8859-1" ),
- RES_CONVERT( XmNlabelString, "Color:" ),
- XmNalignment, XmALIGNMENT_BEGINNING,
- XmNheight, 30,
- XmNy, 48,
- XmNx, 3,
- NULL );
-
- UxPutContext( string_lbl, (char *) UxColoreditContext );
-
- string_text = XtVaCreateManagedWidget( "string_text",
- xmTextFieldWidgetClass, full_fm,
- RES_CONVERT( XmNfontList, "-Adobe-Courier-Bold-R-Normal--14-100-100-100-M-90-ISO8859-1" ),
- RES_CONVERT( XmNbackground, "#7777BB" ),
- XmNrightOffset, 5,
- XmNrightAttachment, XmATTACH_FORM,
- XmNleftWidget, string_lbl,
- XmNleftOffset, 5,
- XmNleftAttachment, XmATTACH_WIDGET,
- XmNbottomWidget, main_box,
- XmNbottomOffset, 8,
- XmNbottomAttachment, XmATTACH_WIDGET,
- XmNheight, 33,
- XmNwidth, 340,
- XmNy, 30,
- XmNx, 61,
- NULL );
-
- UxPutContext( string_text, (char *) UxColoreditContext );
- */
-
- ce_ok_btn = XtVaCreateManagedWidget( "ce_ok_btn",
- xmPushButtonWidgetClass, full_fm,
- XmNrightPosition, 23,
- XmNrightAttachment, XmATTACH_POSITION,
- XmNleftPosition, 3,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_POSITION,
- XmNbottomOffset, 3,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNmarginRight, 7,
- XmNmarginLeft, 7,
- XmNrecomputeSize, FALSE,
- RES_CONVERT( XmNfontList, "-Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO8859-1" ),
- RES_CONVERT( XmNlabelString, "OK" ),
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- */
- XmNheight, 25,
- XmNwidth, 92,
- /*
- XmNy, 344,
- XmNx, 36,
- */
- NULL );
-
- UxPutContext( ce_ok_btn, (char *) UxColoreditContext );
-
- ce_reset_btn = XtVaCreateManagedWidget( "ce_reset_btn",
- xmPushButtonWidgetClass, full_fm,
- XmNrightPosition, 73,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_POSITION,
- XmNleftPosition, 52,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_POSITION,
- XmNbottomOffset, 3,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNmarginRight, 7,
- XmNmarginLeft, 7,
- XmNrecomputeSize, FALSE,
- RES_CONVERT( XmNfontList, "-Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO8859-1" ),
- RES_CONVERT( XmNlabelString, "Reset" ),
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- */
- XmNheight, 25,
- XmNwidth, 74,
- /*
- XmNy, 467,
- XmNx, 151,
- */
- NULL );
-
- UxPutContext( ce_reset_btn, (char *) UxColoreditContext );
-
- ce_apply_btn = XtVaCreateManagedWidget( "ce_apply_btn",
- xmPushButtonWidgetClass, full_fm,
- XmNrightPosition, 48,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_POSITION,
- XmNleftPosition, 27,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_POSITION,
- XmNbottomOffset, 3,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNmarginRight, 7,
- XmNmarginLeft, 7,
- XmNrecomputeSize, FALSE,
- RES_CONVERT( XmNfontList, "-Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO8859-1" ),
- RES_CONVERT( XmNlabelString, "Apply" ),
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- */
- XmNheight, 25,
- XmNwidth, 74,
- /*
- XmNy, 330,
- XmNx, 70,
- */
- NULL );
-
- UxPutContext( ce_apply_btn, (char *) UxColoreditContext );
-
- ce_cancel_btn = XtVaCreateManagedWidget( "ce_cancel_btn",
- xmPushButtonWidgetClass, full_fm,
- XmNrightPosition, 97,
- XmNrightOffset, 0,
- XmNrightAttachment, XmATTACH_POSITION,
- XmNleftPosition, 77,
- XmNleftOffset, 0,
- XmNleftAttachment, XmATTACH_POSITION,
- XmNbottomOffset, 3,
- XmNbottomAttachment, XmATTACH_FORM,
- XmNmarginRight, 7,
- XmNmarginLeft, 7,
- XmNrecomputeSize, FALSE,
- RES_CONVERT( XmNfontList, "-Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO8859-1" ),
- RES_CONVERT( XmNlabelString, "Cancel" ),
- /*
- RES_CONVERT( XmNbackground, "#BBBBBB" ),
- */
- XmNheight, 25,
- XmNwidth, 74,
- /*
- XmNy, 329,
- XmNx, 259,
- */
- NULL );
-
- UxPutContext( ce_cancel_btn, (char *) UxColoreditContext );
-
- XtVaSetValues(full_fm, XmNdefaultButton, ce_ok_btn, NULL );
-
- XtAddCallback( coloredit, XmNdestroyCallback,
- UxFreeClientDataCB,
- (XtPointer) UxColoreditContext );
-
- XtAddCallback( coloredit, XmNpopupCallback,
- popupCB_coloredit,
- (XtPointer) UxColoreditContext );
-
- XtAddCallback( hue_sc, XmNvalueChangedCallback,
- valueChangedCB_hue_sc,
- (XtPointer) UxColoreditContext );
- XtAddCallback( hue_sc, XmNdragCallback,
- dragCB_hue_sc,
- (XtPointer) UxColoreditContext );
-
- XtAddCallback( rgb_tgl, XmNvalueChangedCallback,
- valueChangedCB_rgb_tgl,
- (XtPointer) UxColoreditContext );
-
- XtAddCallback( cmy_tgl, XmNvalueChangedCallback,
- valueChangedCB_cmy_tgl,
- (XtPointer) UxColoreditContext );
-
- XtAddCallback( lightness_sc, XmNvalueChangedCallback,
- valueChangedCB_lightness_sc,
- (XtPointer) UxColoreditContext );
- XtAddCallback( lightness_sc, XmNdragCallback,
- dragCB_lightness_sc,
- (XtPointer) UxColoreditContext );
-
- XtAddCallback( saturation_sc, XmNvalueChangedCallback,
- valueChangedCB_saturation_sc,
- (XtPointer) UxColoreditContext );
- XtAddCallback( saturation_sc, XmNdragCallback,
- dragCB_saturation_sc,
- (XtPointer) UxColoreditContext );
-
- XtAddCallback( blue_sc, XmNvalueChangedCallback,
- valueChangedCB_blue_sc,
- (XtPointer) UxColoreditContext );
- XtAddCallback( blue_sc, XmNdragCallback,
- dragCB_blue_sc,
- (XtPointer) UxColoreditContext );
-
- XtAddCallback( green_sc, XmNvalueChangedCallback,
- valueChangedCB_green_sc,
- (XtPointer) UxColoreditContext );
- XtAddCallback( green_sc, XmNdragCallback,
- dragCB_green_sc,
- (XtPointer) UxColoreditContext );
-
- XtAddCallback( red_sc, XmNvalueChangedCallback,
- valueChangedCB_red_sc,
- (XtPointer) UxColoreditContext );
- XtAddCallback( red_sc, XmNdragCallback,
- dragCB_red_sc,
- (XtPointer) UxColoreditContext );
-
- /*
- XtAddCallback( string_text, XmNactivateCallback,
- activateCB_string_text,
- (XtPointer) UxColoreditContext );
- */
-
- XtAddCallback( ce_ok_btn, XmNactivateCallback,
- activateCB_ce_ok_btn,
- (XtPointer) UxColoreditContext );
-
- XtAddCallback( ce_reset_btn, XmNactivateCallback,
- activateCB_ce_reset_btn,
- (XtPointer) UxColoreditContext );
-
- XtAddCallback( ce_apply_btn, XmNactivateCallback,
- activateCB_ce_apply_btn,
- (XtPointer) UxColoreditContext );
-
- XtAddCallback( ce_cancel_btn, XmNactivateCallback,
- activateCB_ce_cancel_btn,
- (XtPointer) UxColoreditContext );
-
-
- XtRealizeWidget( coloredit );
-
- return ( coloredit );
- }
-
- /*******************************************************************************
- The following function includes the code that was entered
- in the 'Initial Code' and 'Final Code' sections of the
- Declarations Editor. This function is called from the
- 'Interface function' below.
- *******************************************************************************/
-
- static Widget _Ux_create_coloredit( _Uxeditor_parent, _Uxi_c, _Uxe_c )
- Widget _Uxeditor_parent;
- XColor *_Uxi_c;
- XColor *_Uxe_c;
- {
- Widget rtrn;
- _UxCcoloredit *UxContext;
-
- UxColoreditContext = UxContext =
- (_UxCcoloredit *) XtMalloc( sizeof(_UxCcoloredit) );
-
- editor_parent = _Uxeditor_parent;
- i_c = _Uxi_c;
- e_c = _Uxe_c;
- {
- edit_color = e_c; /* editable cell for interactive editing */
- init_color = i_c; /* palette cell in the color view */
- rgb_space = TRUE;
- copy_color (edit_color, init_color);
- rtrn = _Uxbuild_coloredit();
-
- setup_pixels (); /* Bind color cells to widgets */
- put_scale_background (); /* Initialize RGB scales */
- XtVaSetValues (rgb_tgl, RES_CONVERT( XmNset, "true" ), NULL );
- SetWMhints( coloredit );
- return rtrn;
- }
- }
-
- /*******************************************************************************
- The following is the 'Interface function' which is the
- external entry point for creating this interface.
- This function should be called from your application or from
- a callback function.
- *******************************************************************************/
-
- Widget create_coloredit( _Uxeditor_parent, _Uxi_c, _Uxe_c )
- Widget _Uxeditor_parent;
- XColor *_Uxi_c;
- XColor *_Uxe_c;
- {
- Widget _Uxrtrn;
-
- _Uxrtrn = _Ux_create_coloredit( _Uxeditor_parent, _Uxi_c, _Uxe_c );
-
- return ( _Uxrtrn );
- }
-
- /*******************************************************************************
- END OF FILE
- *******************************************************************************/
-
-