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 #ifndef _XmDataFP_h
25 #define _XmDataFP_h
26 
27 #include <Xm/DataF.h>
28 #include <Xm/XmP.h>
29 #include <Xm/ExtP.h>
30 #include <Xm/TextFP.h>
31 #include <Xm/Picture.h>
32 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
37 /*
38  * Motif doesn't define this:  go figure
39  */
40 #ifndef XmTextFieldIndex
41 #define XmTextFieldIndex (XmPrimitiveIndex + 1)
42 #endif
43 
44 #define XmDataFieldIndex (XmTextFieldIndex)
45 
46 typedef struct _XmDataFieldClassPart {
47     XtPointer extension;
48 } XmDataFieldClassPart;
49 
50 typedef struct _XmDataFieldClassRec {
51     CoreClassPart        core_class;
52     XmPrimitiveClassPart primitive_class;
53     XmDataFieldClassPart data_class;
54 } XmDataFieldClassRec;
55 
56 typedef struct _XmDataFieldPart {
57     unsigned char   alignment;	/* XmALIGNMENT_BEGINNING by default */
58     String          picture_source;
59     XmPicture       picture;
60     Boolean         auto_fill;
61     XtCallbackList  picture_error_cb;
62     XtCallbackList  validate_cb;
63 } XmDataFieldPart;
64 
65 typedef struct _XmDataFieldRec {
66     CorePart core;
67     XmPrimitivePart primitive;
68     XmTextFieldPart text;
69     XmDataFieldPart data;
70 } XmDataFieldRec;
71 
72 extern XmDataFieldClassRec xmDataFieldClassRec;
73 
74 #define XmTextF_activate_callback(w) (((XmDataFieldWidget)(w))->text.activate_callback)
75 #define XmTextF_focus_callback(w) (((XmDataFieldWidget)(w))->text.focus_callback)
76 #define XmTextF_losing_focus_callback(w) (((XmDataFieldWidget)(w))->text.losing_focus_callback)
77 #define XmTextF_modify_verify_callback(w) (((XmDataFieldWidget)(w))->text.modify_verify_callback)
78 #define XmTextF_wcs_modify_verify_callback(w) (((XmDataFieldWidget)(w))->text.wcs_modify_verify_callback)
79 #define XmTextF_motion_verify_callback(w) (((XmDataFieldWidget)(w))->text.motion_verify_callback)
80 #define XmTextF_gain_primary_callback(w) (((XmDataFieldWidget)(w))->text.gain_primary_callback)
81 #define XmTextF_lose_primary_callback(w) (((XmDataFieldWidget)(w))->text.lose_primary_callback)
82 #define XmTextF_value_changed_callback(w) (((XmDataFieldWidget)(w))->text.value_changed_callback)
83 #define XmTextF_value(w) (((XmDataFieldWidget)(w))->text.value)
84 #define XmTextF_wc_value(w) (((XmDataFieldWidget)(w))->text.wc_value)
85 #define XmTextF_font_list(w) (((XmDataFieldWidget)(w))->text.font_list)
86 #define XmTextF_font(w) ((XFontStruct*)(((XmDataFieldWidget)(w))->text.font))
87 #define XmTextF_selection_array(w) (((XmDataFieldWidget)(w))->text.selection_array)
88 #define XmTextF_highlight(w) (((XmDataFieldWidget)(w))->text.highlight)
89 #define XmTextF_gc(w) (((XmDataFieldWidget)(w))->text.gc)
90 #define XmTextF_image_gc(w) (((XmDataFieldWidget)(w))->text.image_gc)
91 #define XmTextF_save_gc(w) (((XmDataFieldWidget)(w))->text.save_gc)
92 #define XmTextF_ibeam_off(w) (((XmDataFieldWidget)(w))->text.ibeam_off)
93 #define XmTextF_add_mode_cursor(w) (((XmDataFieldWidget)(w))->text.add_mode_cursor)
94 #define XmTextF_cursor(w) (((XmDataFieldWidget)(w))->text.cursor)
95 #define XmTextF_putback(w) (((XmDataFieldWidget)(w))->text.putback)
96 #define XmTextF_stipple_tile(w) (((XmDataFieldWidget)(w))->text.stipple_tile)
97 #define XmTextF_image_clip(w) (((XmDataFieldWidget)(w))->text.image_clip)
98 #define XmTextF_cursor_position(w) (((XmDataFieldWidget)(w))->text.cursor_position)
99 #define XmTextF_new_h_offset(w) (((XmDataFieldWidget)(w))->text.new_h_offset)
100 #define XmTextF_h_offset(w) (((XmDataFieldWidget)(w))->text.h_offset)
101 #define XmTextF_orig_left(w) (((XmDataFieldWidget)(w))->text.orig_left)
102 #define XmTextF_orig_right(w) (((XmDataFieldWidget)(w))->text.orig_right)
103 #define XmTextF_prim_pos_left(w) (((XmDataFieldWidget)(w))->text.prim_pos_left)
104 #define XmTextF_prim_pos_right(w) (((XmDataFieldWidget)(w))->text.prim_pos_right)
105 #define XmTextF_prim_anchor(w) (((XmDataFieldWidget)(w))->text.prim_anchor)
106 #define XmTextF_sec_pos_left(w) (((XmDataFieldWidget)(w))->text.sec_pos_left)
107 #define XmTextF_sec_pos_right(w) (((XmDataFieldWidget)(w))->text.sec_pos_right)
108 #define XmTextF_sec_anchor(w) (((XmDataFieldWidget)(w))->text.sec_anchor)
109 #define XmTextF_stuff_pos(w) (((XmDataFieldWidget)(w))->text.stuff_pos)
110 #define XmTextF_select_pos_x(w) (((XmDataFieldWidget)(w))->text.select_pos_x)
111 #define XmTextF_prim_time(w) (((XmDataFieldWidget)(w))->text.prim_time)
112 #define XmTextF_dest_time(w) (((XmDataFieldWidget)(w))->text.dest_time)
113 #define XmTextF_sec_time(w) (((XmDataFieldWidget)(w))->text.sec_time)
114 #define XmTextF_last_time(w) (((XmDataFieldWidget)(w))->text.last_time)
115 #define XmTextF_timer_id(w) (((XmDataFieldWidget)(w))->text.timer_id)
116 #define XmTextF_select_id(w) (((XmDataFieldWidget)(w))->text.select_id)
117 #define XmTextF_blink_rate(w) (((XmDataFieldWidget)(w))->text.blink_rate)
118 #define XmTextF_selection_array_count(w) (((XmDataFieldWidget)(w))->text.selection_array_count)
119 #define XmTextF_threshold(w) (((XmDataFieldWidget)(w))->text.threshold)
120 #define XmTextF_size_allocd(w) (((XmDataFieldWidget)(w))->text.size_allocd)
121 #define XmTextF_string_length(w) (((XmDataFieldWidget)(w))->text.string_length)
122 #define XmTextF_cursor_height(w) (((XmDataFieldWidget)(w))->text.cursor_height)
123 #define XmTextF_cursor_width(w) (((XmDataFieldWidget)(w))->text.cursor_width)
124 #define XmTextF_sarray_index(w) (((XmDataFieldWidget)(w))->text.sarray_index)
125 #define XmTextF_max_length(w) (((XmDataFieldWidget)(w))->text.max_length)
126 #define XmTextF_max_char_size(w) (((XmDataFieldWidget)(w))->text.max_char_size)
127 #define XmTextF_columns(w) (((XmDataFieldWidget)(w))->text.columns)
128 #define XmTextF_margin_width(w) (((XmDataFieldWidget)(w))->text.margin_width)
129 #define XmTextF_margin_height(w) (((XmDataFieldWidget)(w))->text.margin_height)
130 #define XmTextF_average_char_width(w) (((XmDataFieldWidget)(w))->text.average_char_width)
131 #define XmTextF_margin_top(w) (((XmDataFieldWidget)(w))->text.margin_top)
132 #define XmTextF_margin_bottom(w) (((XmDataFieldWidget)(w))->text.margin_bottom)
133 #define XmTextF_font_ascent(w) (((XmDataFieldWidget)(w))->text.font_ascent)
134 #define XmTextF_font_descent(w) (((XmDataFieldWidget)(w))->text.font_descent)
135 #define XmTextF_resize_width(w) (((XmDataFieldWidget)(w))->text.resize_width)
136 #define XmTextF_pending_delete(w) (((XmDataFieldWidget)(w))->text.pending_delete)
137 #define XmTextF_editable(w) (((XmDataFieldWidget)(w))->text.editable)
138 #define XmTextF_verify_bell(w) (((XmDataFieldWidget)(w))->text.verify_bell)
139 #define XmTextF_cursor_position_visible(w) (((XmDataFieldWidget)(w))->text.cursor_position_visible)
140 #define XmTextF_traversed(w) (((XmDataFieldWidget)(w))->text.traversed)
141 #define XmTextF_add_mode(w) (((XmDataFieldWidget)(w))->text.add_mode)
142 #define XmTextF_has_focus(w) (((XmDataFieldWidget)(w))->text.has_focus)
143 #define XmTextF_blink_on(w) (((XmDataFieldWidget)(w))->text.blink_on)
144 #define XmTextF_cursor_on(w) (((XmDataFieldWidget)(w))->text.cursor_on)
145 #define XmTextF_refresh_ibeam_off(w) (((XmDataFieldWidget)(w))->text.refresh_ibeam_off)
146 #define XmTextF_have_inverted_image_gc(w) (((XmDataFieldWidget)(w))->text.have_inverted_image_gc)
147 #define XmTextF_has_primary(w) (((XmDataFieldWidget)(w))->text.has_primary)
148 #define XmTextF_has_secondary(w) (((XmDataFieldWidget)(w))->text.has_secondary)
149 #define XmTextF_has_destination(w) (((XmDataFieldWidget)(w))->text.has_destination)
150 #define XmTextF_sec_drag(w) (((XmDataFieldWidget)(w))->text.sec_drag)
151 #define XmTextF_selection_move(w) (((XmDataFieldWidget)(w))->text.selection_move)
152 #define XmTextF_pending_off(w) (((XmDataFieldWidget)(w))->text.pending_off)
153 #define XmTextF_fontlist_created(w) (((XmDataFieldWidget)(w))->text.fontlist_created)
154 #define XmTextF_has_rect(w) (((XmDataFieldWidget)(w))->text.has_rect)
155 #define XmTextF_do_drop(w) (((XmDataFieldWidget)(w))->text.do_drop)
156 #define XmTextF_cancel(w) (((XmDataFieldWidget)(w))->text.cancel)
157 #define XmTextF_extending(w) (((XmDataFieldWidget)(w))->text.extending)
158 #define XmTextF_sec_extending(w) (((XmDataFieldWidget)(w))->text.sec_extending)
159 #define XmTextF_in_setvalues(w) (((XmDataFieldWidget)(w))->text.in_setvalues)
160 #define XmTextF_do_resize(w) (((XmDataFieldWidget)(w))->text.do_resize)
161 #define XmTextF_sel_start(w) (((XmDataFieldWidget)(w))->text.sel_start)
162 #define XmTextF_check_set_render_table(w) (((XmDataFieldWidget)(w))->text.check_set_render_table)
163 #define XmTextF_extension(w) (((XmDataFieldWidget)(w))->text.extension)
164 #define XmTextF_overstrike(w) (((XmDataFieldWidget)(w))->text.overstrike)
165 #define XmTextF_redisplay(w) (((XmDataFieldWidget)(w))->text.redisplay)
166 #define XmTextF_have_fontset(w) (((XmDataFieldWidget)(w))->text.have_fontset)
167 #ifdef USE_XFT
168 #define XmTextF_use_xft(w) (((XmDataFieldWidget)(w))->text.use_xft)
169 #define	XmTextF_xft_font(w) (((XftFont*)((XmDataFieldWidget)(w))->text.font))
170 #endif
171 #define XmTextF_changed_visible(w) (((XmDataFieldWidget)(w))->text.changed_visible)
172 
173 #define XmDataField_alignment(w) (((XmDataFieldWidget)(w))->data.alignment)
174 #define XmDataField_picture_source(w) (((XmDataFieldWidget)(w))->data.picture_source)
175 #define XmDataField_picture(w) (((XmDataFieldWidget)(w))->data.picture)
176 #define XmDataField_picture_state(w) (((XmDataFieldWidget)(w))->data.picture_state)
177 #define XmDataField_auto_fill(w) (((XmDataFieldWidget)(w))->data.auto_fill)
178 #define XmDataField_picture_error_cb(w) (((XmDataFieldWidget)(w))->data.picture_error_cb)
179 #define XmDataField_validate_cb(w) (((XmDataFieldWidget)(w))->data.validate_cb)
180 
181 #ifdef __cplusplus
182 } /* extern "C" */
183 #endif
184 
185 #endif /* _XmDataFP_h */
186