1 /*
2  * Motif
3  *
4  * Copyright (c) 1987-2012, The Open Group. All rights reserved.
5  *
6  * These libraries and programs are free software; you can
7  * redistribute them and/or modify them under the terms of the GNU
8  * Lesser General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * These libraries and programs are distributed in the hope that
13  * they will be useful, but WITHOUT ANY WARRANTY; without even the
14  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  * PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with these librararies and programs; if not, write
20  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21  * Floor, Boston, MA 02110-1301 USA
22  *
23  */
24 
25 #ifndef	_XmColorSelectorP_h
26 #define	_XmColorSelectorP_h
27 
28 #if defined(VMS) || defined(__VMS)
29 #include <X11/apienvset.h>
30 #endif
31 
32 /************************************************************
33  *      INCLUDE FILES
34  *************************************************************/
35 
36 #include <Xm/ManagerP.h>
37 #include <Xm/ColorS.h>
38 
39 /************************************************************
40  *      TYPEDEFS AND DEFINES
41  *************************************************************/
42 
43 #ifdef __cplusplus
44 extern "C" {
45 #endif
46 
47 #define XmColorSelector_COLOR_NAME_SIZE 100
48 #define XmColorSelector_NUM_TOGGLES 2
49 
50 typedef struct _ColorSelStrings {
51     XmString slider_labels[3];
52 
53     XmString tog_labels[XmColorSelector_NUM_TOGGLES];
54     XmString no_cell_error, file_read_error;
55 } ColorSelStrings;
56 
57 typedef struct _ColorInfo {
58     char name[XmColorSelector_COLOR_NAME_SIZE], no_space_lower_name[XmColorSelector_COLOR_NAME_SIZE];
59     unsigned short red, green, blue;
60 } ColorInfo;
61 
62 typedef struct _ColorSelectorClassPart {
63     XtPointer 		extension;
64 } ColorSelectorClassPart;
65 
66 typedef struct _XmColorSelectorClassRec
67 {
68     CoreClassPart		core_class;
69     CompositeClassPart		composite_class;
70     ConstraintClassPart         constraint_class;
71     XmManagerClassPart          manager_class;
72     ColorSelectorClassPart	color_selector_class;
73 } XmColorSelectorClassRec;
74 
75 typedef struct _XmColorSelectorPart
76 {
77     /* resources */
78 
79     XmColorMode		color_mode;		/* selector mode	   */
80     char	       *color_name;		/* the colorname we select */
81     String	        rgb_file;      		/* where to look for	   */
82     Dimension		margin_width;           /* for geom management     */
83     Dimension		margin_height;	        /* for geom management	   */
84 
85     ColorSelStrings     strings;                /* strings for I18N. */
86 
87     /* private state */
88 
89     int			slider_red;	/* slider values		    */
90     int			slider_green;	/* slider values		    */
91     int			slider_blue;	/* slider values		    */
92     Widget		bb;		/* area to hold all the sliders     */
93     Widget		sliders[3];	/* red,green,blue sliders(slider)   */
94     Widget		scrolled_list;	/* list (scrolled window)	    */
95     Widget		list;		/* list (simple)		    */
96     Widget		color_window;   /* label to show selected color     */
97     Widget		chose_radio;	/* selector type radio box	    */
98     Widget		chose_mode[2];	/* selector type toggles	    */
99 
100     Pixel		color_pixel;		/* pixel value for colors  */
101     Boolean 		good_cell;      /* does color_pixel contain
102 					 * a good value? */
103     ColorInfo 		*colors;        /* infomation about all color names */
104     short		num_colors;     /* The number of colors. */
105 } XmColorSelectorPart;
106 
107 typedef struct _XmColorSelectorRec
108 {
109     CorePart 		core;
110     CompositePart 	composite;
111     ConstraintPart      constraint;
112     XmManagerPart       manager;
113     XmColorSelectorPart	cs;
114 } XmColorSelectorRec;
115 
116 typedef struct _XmColorSelectorConstraintPart
117 {
118     XtPointer extension;
119 } XmColorSelectorConstraintPart;
120 
121 typedef struct _XmColorSelectorConstraintRec
122 {
123     XmManagerConstraintPart       manager;
124     XmColorSelectorConstraintPart cs;
125 } XmColorSelectorConstraintRec;
126 
127 /************************************************************
128  *      MACROS
129  *************************************************************/
130 
131 #define XmColorSelectorIndex (XmManagerIndex + 1)
132 
133 #define XmColorS_color_mode(w) (((XmColorSelectorWidget)(w))->cs.color_mode)
134 #define XmColorS_color_name(w) (((XmColorSelectorWidget)(w))->cs.color_name)
135 #define XmColorS_rgb_file(w) (((XmColorSelectorWidget)(w))->cs.rgb_file)
136 #define XmColorS_margin_width(w) (((XmColorSelectorWidget)(w))->cs.margin_width)
137 #define XmColorS_margin_height(w) (((XmColorSelectorWidget)(w))->cs.margin_height)
138 #define XmColorS_strings(w) (((XmColorSelectorWidget)(w))->cs.strings)
139 #define XmColorS_slider_red(w) (((XmColorSelectorWidget)(w))->cs.slider_red)
140 #define XmColorS_slider_green(w) (((XmColorSelectorWidget)(w))->cs.slider_green)
141 #define XmColorS_slider_blue(w) (((XmColorSelectorWidget)(w))->cs.slider_blue)
142 #define XmColorS_bb(w) (((XmColorSelectorWidget)(w))->cs.bb)
143 #define XmColorS_sliders(w) (((XmColorSelectorWidget)(w))->cs.sliders)
144 #define XmColorS_scrolled_list(w) (((XmColorSelectorWidget)(w))->cs.scrolled_list)
145 #define XmColorS_list(w) (((XmColorSelectorWidget)(w))->cs.list)
146 #define XmColorS_color_window(w) (((XmColorSelectorWidget)(w))->cs.color_window)
147 #define XmColorS_chose_radio(w) (((XmColorSelectorWidget)(w))->cs.chose_radio)
148 #define XmColorS_chose_mode(w) (((XmColorSelectorWidget)(w))->cs.chose_mode)
149 #define XmColorS_color_pixel(w) (((XmColorSelectorWidget)(w))->cs.color_pixel)
150 #define XmColorS_good_cell(w) (((XmColorSelectorWidget)(w))->cs.good_cell)
151 #define XmColorS_colors(w) (((XmColorSelectorWidget)(w))->cs.colors)
152 #define XmColorS_num_colors(w) (((XmColorSelectorWidget)(w))->cs.num_colors)
153 
154 /************************************************************
155  *      GLOBAL DECLARATIONS
156  *************************************************************/
157 
158 /************************************************************
159  *       EXTERNAL DECLARATIONS
160  ************************************************************/
161 
162 extern XmColorSelectorClassRec	xmColorSelectorClassRec;
163 
164 /************************************************************
165  *       STATIC DECLARATIONS
166  ************************************************************/
167 
168 #ifdef __cplusplus
169 }	/* Closes scope of 'extern "C"' declaration */
170 #endif
171 
172 #if defined(VMS) || defined(__VMS)
173 #include <X11/apienvrst.h>
174 #endif
175 
176 #endif /* _XmColorSelectP_h DON'T ADD STUFF AFTER THIS #endif */
177