TextP.h
资源名称:X264CODEC.rar [点击查看]
上传用户:lctgjx
上传日期:2022-06-04
资源大小:8887k
文件大小:10k
源码类别:
流媒体/Mpeg4/MP4
开发平台:
Visual C++
- /*
- * $Xorg: TextP.h,v 1.4 2001/02/09 02:03:46 xorgcvs Exp $
- */
- /***********************************************************
- Copyright 1987, 1988, 1994, 1998 The Open Group
- Permission to use, copy, modify, distribute, and sell this software and its
- documentation for any purpose is hereby granted without fee, provided that
- the above copyright notice appear in all copies and that both that
- copyright notice and this permission notice appear in supporting
- documentation.
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- Except as contained in this notice, the name of The Open Group shall not be
- used in advertising or otherwise to promote the sale, use or other dealings
- in this Software without prior written authorization from The Open Group.
- Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
- All Rights Reserved
- Permission to use, copy, modify, and distribute this software and its
- documentation for any purpose and without fee is hereby granted,
- provided that the above copyright notice appear in all copies and that
- both that copyright notice and this permission notice appear in
- supporting documentation, and that the name of Digital not be
- used in advertising or publicity pertaining to distribution of the
- software without specific, written prior permission.
- DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- SOFTWARE.
- ******************************************************************/
- /* $XFree86: xc/lib/Xaw/TextP.h,v 3.21 2001/12/14 19:54:44 dawes Exp $ */
- #ifndef _XawTextP_h
- #define _XawTextP_h
- #include <X11/Xfuncproto.h>
- #include <X11/Xaw/Text.h>
- #include <X11/Xaw/SimpleP.h>
- _XFUNCPROTOBEGIN
- #define MAXCUT 30000 /* Maximum number of characters that can be cut */
- #define XawTextGetLastPosition(ctx)
- XawTextSourceScan((ctx)->text.source, 0,
- XawstAll, XawsdRight, 1, True)
- #define GETLASTPOS XawTextGetLastPosition(ctx)
- #define zeroPosition ((XawTextPosition)0)
- extern XtActionsRec _XawTextActionsTable[];
- extern Cardinal _XawTextActionsTableCount;
- #define XawLF 0x0a
- #define XawCR 0x0d
- #define XawTAB 0x09
- #define XawBS 0x08
- #define XawSP 0x20
- #define XawDEL 0x7f
- #define XawESC 0x1b
- #define XawBSLASH '\'
- /* constants that subclasses may want to know */
- #define DEFAULT_TEXT_HEIGHT ((Dimension)~0)
- #define DEFAULT_TAB_SIZE 8
- /* displayable text management data structures */
- typedef struct {
- XawTextPosition position;
- Position y;
- #ifndef OLDXAW
- unsigned int textWidth;
- #else
- Dimension textWidth;
- #endif
- } XawTextLineTableEntry, *XawTextLineTableEntryPtr;
- typedef struct {
- XawTextPosition left, right;
- XawTextSelectType type;
- Atom *selections;
- int atom_count;
- int array_size;
- } XawTextSelection;
- typedef struct _XawTextSelectionSalt {
- struct _XawTextSelectionSalt *next;
- XawTextSelection s;
- /*
- * The element "contents" stores the CT string which is gotten in the
- * function _XawTextSaltAwaySelection()
- */
- char *contents;
- int length;
- } XawTextSelectionSalt;
- #ifndef OLDXAW
- typedef struct _XawTextKillRing {
- struct _XawTextKillRing *next;
- char *contents;
- int length;
- unsigned refcount;
- unsigned long format;
- } XawTextKillRing;
- extern XawTextKillRing *xaw_text_kill_ring;
- #endif
- /* Line Tables are n+1 long - last position displayed is in last lt entry */
- typedef struct {
- XawTextPosition top; /* Top of the displayed text */
- int lines; /* How many lines in this table */
- #ifndef OLDXAW
- int base_line; /* line number of first entry */
- #endif
- XawTextLineTableEntry *info; /* A dynamic array, one entry per line */
- } XawTextLineTable, *XawTextLineTablePtr;
- typedef struct _XawTextMargin {
- Position left, right, top, bottom;
- } XawTextMargin;
- typedef struct _XmuScanline XmuTextUpdate;
- #define VMargins(ctx) ((ctx)->text.margin.top + (ctx)->text.margin.bottom)
- #define HMargins(ctx) ((ctx)->text.left_margin + (ctx)->text.margin.right)
- #define RVMargins(ctx) ((ctx)->text.r_margin.top + (ctx)->text.r_margin.bottom)
- #define RHMargins(ctx) ((ctx)->text.r_margin.left + (ctx)->text.r_margin.right)
- #define IsPositionVisible(ctx, pos)
- (pos >= ctx->text.lt.info[0].position &&
- pos < ctx->text.lt.info[ctx->text.lt.lines].position)
- /*
- * Search & Replace data structure
- */
- struct SearchAndReplace {
- Boolean selection_changed; /* flag so that the selection cannot be
- changed out from underneath query-replace.*/
- Widget search_popup; /* The poppup widget that allows searches.*/
- Widget label1; /* The label widgets for the search window. */
- Widget label2;
- Widget left_toggle; /* The left search toggle radioGroup. */
- Widget right_toggle; /* The right search toggle radioGroup. */
- Widget rep_label; /* The Replace label string. */
- Widget rep_text; /* The Replace text field. */
- Widget search_text; /* The Search text field. */
- Widget rep_one; /* The Replace one button. */
- Widget rep_all; /* The Replace all button. */
- #ifndef OLDXAW
- Widget case_sensitive; /* The "Case Sensitive" toggle */
- #endif
- };
- /* New fields for the Text widget class record */
- typedef struct {
- XtPointer extension;
- } TextClassPart;
- /* Full class record declaration */
- typedef struct _TextClassRec {
- CoreClassPart core_class;
- SimpleClassPart simple_class;
- TextClassPart text_class;
- } TextClassRec;
- extern TextClassRec textClassRec;
- /* New fields for the Text widget record */
- typedef struct _TextPart {
- /* resources */
- Widget source, sink;
- XawTextPosition insertPos;
- XawTextSelection s;
- XawTextSelectType *sarray; /* Array to cycle for selections */
- XawTextSelectionSalt *salt; /* salted away selections */
- int left_margin;
- int dialog_horiz_offset, dialog_vert_offset; /* position for popup dialog */
- Boolean display_caret; /* insertion pt visible iff T */
- Boolean auto_fill; /* Auto fill mode? */
- XawTextScrollMode scroll_vert, scroll_horiz;
- XawTextWrapMode wrap; /* The type of wrapping */
- XawTextResizeMode resize;
- XawTextMargin r_margin; /* The real margins */
- #ifndef OLDXAW
- XtCallbackList position_callbacks;
- #else
- XtPointer pad1;
- #endif
- /* private state */
- XawTextMargin margin; /* The current margins */
- XawTextLineTable lt;
- XawTextScanDirection extendDir;
- XawTextSelection origSel; /* the selection being modified */
- Time lasttime; /* timestamp of last processed action */
- Time time; /* time of last key or button action */
- Position ev_x, ev_y; /* x, y coords for key or button action */
- Widget vbar, hbar; /* The scroll bars (none = NULL) */
- struct SearchAndReplace *search; /* Search and replace structure */
- Widget file_insert; /* The file insert popup widget */
- XmuTextUpdate *update; /* Position intervals to update */
- #ifndef OLDXAW
- int line_number;
- short column_number;
- unsigned char kill_ring;
- Boolean selection_state;
- #else
- XtPointer pad2;
- int pad3;
- #endif
- int from_left; /* Cursor position */
- XawTextPosition lastPos; /* Last position of source */
- GC gc;
- Boolean showposition; /* True if we need to show the position */
- Boolean hasfocus; /* TRUE if we currently have input focus*/
- Boolean update_disabled; /* TRUE if display updating turned off */
- Boolean clear_to_eol; /* Clear to eol when painting text? */
- XawTextPosition old_insert; /* Last insertPos for batched updates */
- short mult; /* Multiplier */
- #ifndef OLDXAW
- XawTextKillRing *kill_ring_ptr;
- #else
- XtPointer pad4;
- #endif
- /* private state, shared w/Source and Sink */
- Boolean redisplay_needed; /* in SetValues */
- XawTextSelectionSalt *salt2; /* salted away selections */
- #ifndef OLDXAW
- char numeric;
- char source_changed;
- Boolean overwrite; /* Overwrite mode */
- /* new resources and states, for text edition
- * Note: a fixed width font is required for these resources/states.
- */
- short left_column, right_column;
- XawTextJustifyMode justify;
- XtPointer pad[4]; /* for future use and keep binary compatability */
- #endif
- } TextPart;
- #define XtRWrapMode "WrapMode"
- #define XtRScrollMode "ScrollMode"
- #define XtRResizeMode "ResizeMode"
- #define XtRJustifyMode "JustifyMode"
- /* full instance record */
- typedef struct _TextRec {
- CorePart core;
- SimplePart simple;
- TextPart text;
- } TextRec;
- /*
- * Semi-private functions
- * for use by other Xaw modules only
- */
- void _XawTextBuildLineTable
- (
- TextWidget ctx,
- XawTextPosition top_pos,
- _XtBoolean force_rebuild
- );
- char *_XawTextGetSTRING
- (
- TextWidget ctx,
- XawTextPosition left,
- XawTextPosition right
- );
- void _XawTextSaltAwaySelection
- (
- TextWidget ctx,
- Atom *selections,
- int num_atoms
- );
- void _XawTextPosToXY
- (
- Widget w,
- XawTextPosition pos,
- Position *x,
- Position *y
- );
- void _XawTextNeedsUpdating
- (
- TextWidget ctx,
- XawTextPosition left,
- XawTextPosition right
- );
- _XFUNCPROTOEND
- #endif /* _XawTextP_h */