/usr/include/Xm/TextFP.h is in libmotif-dev 2.3.4-13.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 | /*
* Motif
*
* Copyright (c) 1987-2012, The Open Group. All rights reserved.
*
* These libraries and programs are free software; you can
* redistribute them and/or modify them under the terms of the GNU
* Lesser General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* These libraries and programs are distributed in the hope that
* they will be useful, but WITHOUT ANY WARRANTY; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with these librararies and programs; if not, write
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301 USA
*/
/*
* HISTORY
*/
/* $TOG: TextFP.h /main/17 1997/03/04 17:00:01 dbl $ */
/* (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
#ifndef _XmTextFP_h
#define _XmTextFP_h
#include <Xm/PrimitiveP.h>
#include <Xm/TextF.h>
#ifdef USE_XFT
#include <X11/Xft/Xft.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/*
* Defines for different cursors
*/
#define IBEAM_WIDTH 3
#define CARET_WIDTH 9
#define CARET_HEIGHT 5
/*
* Here is the Text Field Widget class structure.
*/
typedef struct _XmTextFieldClassPart {
XtPointer extension; /* Pointer to extension record. */
} XmTextFieldClassPart;
typedef struct _XmTextFieldClassRec {
CoreClassPart core_class; /* Not RectObjClassPart so I can reference
core_class s */
XmPrimitiveClassPart primitive_class;
XmTextFieldClassPart text_class;
} XmTextFieldClassRec;
externalref XmTextFieldClassRec xmTextFieldClassRec;
/*
* On the spot support.
*/
typedef struct _OnTheSpotData {
XmTextPosition start;
XmTextPosition end;
XmTextPosition cursor;
int over_len;
int over_maxlen;
char *over_str;
int under_preedit;
Boolean under_verify_preedit;
Boolean verify_commit;
int pad;
} OnTheSpotDataRec, *OnTheSpotData;
/*
* Here is the Text Field Widget instance structures.
*/
typedef struct _XmTextFieldPart {
XtCallbackList activate_callback; /* Command activate callback */
XtCallbackList focus_callback; /* Verify gain focus callback */
XtCallbackList losing_focus_callback; /* Verify losing focus
callback */
XtCallbackList modify_verify_callback; /* Verify value to change
callback */
XtCallbackList wcs_modify_verify_callback; /* Verify value to change
callback */
XtCallbackList motion_verify_callback; /* Verify insert cursor position
to change callback */
XtCallbackList gain_primary_callback; /* Gained ownership of Primary
Selection */
XtCallbackList lose_primary_callback; /* Lost ownership of Primary
Selection */
XtCallbackList value_changed_callback; /* Notify that value has changed
callback */
char * value; /* pointer to widget value stored as char * */
wchar_t * wc_value; /* pointer to widget value stored as
wchar_t * */
XmFontList font_list; /* Uses only the font portion of fontlist */
#if USE_XFT
XtPointer font; /* font retrieved from the fontlist */
#else
XFontStruct *font; /* font retrieved from the fontlist */
#endif
XmTextScanType *selection_array; /* Description of what to cycle
through on selections */
_XmHighlightData highlight; /* Info on the highlighting regions. */
GC gc; /* Normal GC for drawing text and cursor */
GC image_gc; /* Image GC for drawing text cursor*/
GC save_gc; /* GC for saving/restoring under IBeam */
Pixmap ibeam_off; /* pixmap for area under the IBeam */
Pixmap add_mode_cursor; /* The add mode cursor pixmap */
Pixmap cursor; /* The ibeam cursor stencil */
Pixmap putback; /* AVAILABLE: was in 1.1 but not really used */
Pixmap stipple_tile; /* The tile pattern for the stippled I-beam */
Pixmap image_clip; /* AVAILABLE: was in 1.2 but not used now */
XmTextPosition cursor_position; /* Character location of the insert
cursor */
XmTextPosition new_h_offset; /* AVAILABLE: was in 1.1 but not used */
XmTextPosition h_offset; /* The x position of the first character
(relative to left edge of widget) */
XmTextPosition orig_left; /* Left primary selection prior to
extend */
XmTextPosition orig_right; /* Right primary selection prior to
extend */
XmTextPosition prim_pos_left; /* Left primary selection position */
XmTextPosition prim_pos_right; /* Right primary selection position */
XmTextPosition prim_anchor; /* Primary selection pivot point */
XmTextPosition sec_pos_left; /* Left secondary selection position */
XmTextPosition sec_pos_right; /* Right secondary selection position */
XmTextPosition sec_anchor; /* Secondary selection pivot point */
XmTextPosition stuff_pos; /* Position to stuff the primary selection */
Position select_pos_x; /* x position for timer-based scrolling */
Time prim_time; /* Timestamp of primary selection */
Time dest_time; /* Timestamp of destination selection */
Time sec_time; /* Timestamp of secondary selection */
Time last_time; /* Time of last selection event */
XtIntervalId timer_id; /* Blinking cursor timer */
XtIntervalId select_id; /* Timer based scrolling identifier */
int blink_rate; /* Rate of blinking text cursor in msec */
int selection_array_count; /* Selection array count */
int threshold; /* Selection threshold */
int size_allocd; /* Size allocated for value string */
int string_length; /* The number of characters in the string
(including the trailing NULL) */
int cursor_height; /* Save cursor dimensions */
int cursor_width; /* Save cursor dimensions */
int sarray_index; /* Index into selection array */
int max_length; /* Maximum number of character that can be
inserted into the text field widget */
int max_char_size; /* Max bytes per character in cur locale */
short columns; /* The number of characters in the width */
Dimension margin_width; /* Height between text borders and text */
Dimension margin_height; /* Width between text borders and text */
Dimension average_char_width; /* Average character width based on font */
Dimension margin_top; /* Height between text borders and top of
text */
Dimension margin_bottom; /* Height between text borders and bottom of
text */
Dimension font_ascent; /* Ascent of font or fontset used by widget */
Dimension font_descent; /* Descent of font or fontset used by widget */
Boolean resize_width; /* Allows the widget to grow horizontally
when borders are reached */
Boolean pending_delete; /* Delete primary selection on insert when
set to True */
Boolean editable; /* Sets editablility of text */
Boolean verify_bell; /* Determines if bell is sounded when verify
callback returns doit - False */
Boolean cursor_position_visible; /* Sets visibility of insert cursor */
Boolean traversed; /* Flag used with losing focus verification to
indicate a traversal key pressed event */
Boolean add_mode; /* Add mode for cursor movement */
Boolean has_focus; /* Flag that indicates whether the widget
has input focus */
Boolean blink_on; /* State of Blinking insert cursor */
short int cursor_on; /* Indicates whether the cursor is visible */
Boolean refresh_ibeam_off; /* Indicates whether the area under IBeam needs
to be re-captured */
Boolean have_inverted_image_gc; /* fg/bg of image gc have been swapped */
Boolean has_primary; /* Indicates that is has the
primary selection */
Boolean has_secondary; /* Indicates that is has the
secondary selection */
Boolean has_destination; /* Indicates that is has the
destination selection */
Boolean sec_drag; /* Indicates a secondary drag was made */
Boolean selection_move; /* Indicates that the action requires a
secondary move (i.e. copy & cut) */
Boolean pending_off; /* indicates pending delete state */
Boolean fontlist_created; /* Indicates that the text field widget created
it's own fontlist */
Boolean has_rect; /* currently has clipping rectangle */
Boolean do_drop; /* Indicates that the widget the recieved the
button release, did not have a previous
button press, so it is o.k. to request
the MOTIF_DROP selection. */
Boolean cancel; /* Cancels selection actions when true */
Boolean extending; /* Indicates extending primary selection */
Boolean sec_extending; /* Indicates extending secondary selection */
Boolean changed_visible; /* Indicates whether the dest_visible flag
is in a temporary changed state */
Boolean have_fontset; /* The widgets font is a fontset, not a
fontstruct... use R5 draw routines */
Boolean in_setvalues; /* used to disable unnecessary redisplays */
Boolean do_resize; /* used to prevent inappropriate resizes */
Boolean redisplay; /* used to set redisplay flag in setvalues */
Boolean overstrike; /* overstrike mode for character input */
Boolean sel_start; /* overstrike mode for character input */
XtPointer extension; /* Pointer to extension record. */
XtCallbackList destination_callback; /* Selection destination cb */
Boolean selection_link; /* Indicates that the action requires a
link */
/* New for 2.0 */
Boolean take_primary; /* Indicates that is has to take the
primary selection */
GC cursor_gc; /* 1-bit depth GC for creating the I-beam
stipples (normal & add mode) */
XtIntervalId drag_id; /* timer to start btn1 drag */
_XmTextActionRec *transfer_action; /* to keep track of delayed action */
/* Boolean rt_save; */ /* used for MT work */
OnTheSpotData onthespot; /* data for on-the-spot im support */
Boolean check_set_render_table; /* used for MT safe work */
Boolean programmatic_highlights; /* XmTextFieldSetHighlight called */
#ifdef USE_XFT
Boolean use_xft;
#endif
} XmTextFieldPart;
typedef struct _XmTextFieldRec {
CorePart core;
XmPrimitivePart primitive;
XmTextFieldPart text;
} XmTextFieldRec;
/****************
*
* Macros for the uncached data
*
****************/
#define TextF_ActivateCallback(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.activate_callback)
#define TextF_LosingFocusCallback(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.losing_focus_callback)
#define TextF_FocusCallback(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.focus_callback)
#define TextF_ModifyVerifyCallback(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.modify_verify_callback)
#define TextF_ModifyVerifyCallbackWcs(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.wcs_modify_verify_callback)
#define TextF_MotionVerifyCallback(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.motion_verify_callback)
#define TextF_ValueChangedCallback(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.value_changed_callback)
#define TextF_Value(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.value)
#define TextF_WcValue(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.wc_value)
#define TextF_MarginHeight(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.margin_height)
#define TextF_MarginWidth(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.margin_width)
#define TextF_CursorPosition(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.cursor_position)
#define TextF_Columns(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.columns)
#define TextF_MaxLength(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.max_length)
#define TextF_BlinkRate(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.blink_rate)
#define TextF_FontList(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.font_list)
#define TextF_Font(tfg) \
((XFontStruct*)(((XmTextFieldWidget)(tfg)) -> text.font))
#define TextF_FontAscent(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.font_ascent)
#define TextF_FontDescent(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.font_descent)
#define TextF_SelectionArray(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.selection_array)
#define TextF_SelectionArrayCount(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.selection_array_count)
#define TextF_ResizeWidth(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.resize_width)
#define TextF_PendingDelete(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.pending_delete)
#define TextF_Editable(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.editable)
#define TextF_CursorPositionVisible(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.cursor_position_visible)
#define TextF_Threshold(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.threshold)
#define TextF_UseFontSet(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.have_fontset)
#ifdef USE_XFT
#define TextF_UseXft(tfg) \
(((XmTextFieldWidget)(tfg)) -> text.use_xft)
#define TextF_XftFont(tfg) \
((XftFont*)(((XmTextFieldWidget)(tfg)) -> text.font))
#endif
/*
* On the spot support.
*/
#define PreStart(tfg) (((XmTextFieldWidget)(tfg)) -> \
text.onthespot->start)
#define PreEnd(tfg) (((XmTextFieldWidget)(tfg)) -> \
text.onthespot->end)
#define PreCursor(tfg) (((XmTextFieldWidget)(tfg)) -> \
text.onthespot->cursor)
#define FUnderVerifyPreedit(tfg) (((XmTextFieldWidget)(tfg)) -> \
text.onthespot->under_verify_preedit)
#define FVerifyCommitNeeded(tfg) (((XmTextFieldWidget)(tfg)) -> \
text.onthespot->verify_commit)
#ifdef __cplusplus
} /* Close scope of 'extern "C"' declaration which encloses file. */
#endif
#endif /* _XmTextFieldWidgetP_h */
|