summaryrefslogtreecommitdiff
path: root/include/X11/Xaw/TextP.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/X11/Xaw/TextP.h')
-rw-r--r--include/X11/Xaw/TextP.h339
1 files changed, 186 insertions, 153 deletions
diff --git a/include/X11/Xaw/TextP.h b/include/X11/Xaw/TextP.h
index f679db1..cf11b85 100644
--- a/include/X11/Xaw/TextP.h
+++ b/include/X11/Xaw/TextP.h
@@ -49,117 +49,135 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
+/* $XFree86: xc/lib/Xaw/TextP.h,v 3.22 2001/12/19 21:37:31 dawes Exp $ */
#ifndef _XawTextP_h
#define _XawTextP_h
+#include <X11/Xfuncproto.h>
+
#include <X11/Xaw/Text.h>
#include <X11/Xaw/SimpleP.h>
-/****************************************************************
- *
- * Text widget private
- *
- ****************************************************************/
-#define MAXCUT 30000 /* Maximum number of characters that can be cut. */
+_XFUNCPROTOBEGIN
+
+#define MAXCUT 30000 /* Maximum number of characters that can be cut */
-#define GETLASTPOS XawTextSourceScan(ctx->text.source, 0, \
- XawstAll, XawsdRight, 1, TRUE)
+#define XawTextGetLastPosition(ctx) \
+ XawTextSourceScan((ctx)->text.source, 0, \
+ XawstAll, XawsdRight, 1, True)
+#define GETLASTPOS XawTextGetLastPosition(ctx)
-#define zeroPosition ((XawTextPosition) 0)
+#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 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;
- Dimension textWidth;
+ XawTextPosition position;
+ Position y;
+#ifndef OLDXAW
+ unsigned int textWidth;
+#else
+ Dimension textWidth;
+#endif
} XawTextLineTableEntry, *XawTextLineTableEntryPtr;
typedef struct {
- XawTextPosition left, right;
+ XawTextPosition left, right;
XawTextSelectType type;
- Atom* selections;
- int atom_count;
- int array_size;
+ Atom *selections;
+ int atom_count;
+ int array_size;
} XawTextSelection;
typedef struct _XawTextSelectionSalt {
- struct _XawTextSelectionSalt *next;
+ struct _XawTextSelectionSalt *next;
XawTextSelection s;
/*
* The element "contents" stores the CT string which is gotten in the
- * function _XawTextSaltAwaySelection().
+ * 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. */
- XawTextLineTableEntry *info; /* A dynamic array, one entry per line */
+ 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;
+ Position left, right, top, bottom;
} XawTextMargin;
-#define VMargins(ctx) ( (ctx)->text.margin.top + (ctx)->text.margin.bottom )
-#define HMargins(ctx) ( (ctx)->text.margin.left + (ctx)->text.margin.right )
+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[0].position && \
pos < ctx->text.lt.info[ctx->text.lt.lines].position)
/*
- * Search & Replace data structure.
+ * Search & Replace data structure
*/
-
struct SearchAndReplace {
- Boolean selection_changed; /* flag so that the selection cannot be
+ 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. */
+ 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
};
-
-/* Private Text Definitions */
-
-typedef int (*ActionProc)();
/* New fields for the Text widget class record */
-
-typedef struct {int empty;} TextClassPart;
-
-struct text_move {
- int h, v;
- struct text_move * next;
-};
+typedef struct {
+ XtPointer extension;
+} TextClassPart;
/* Full class record declaration */
typedef struct _TextClassRec {
@@ -173,116 +191,131 @@ 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
- Widget source, sink;
- XawTextPosition insertPos;
- XawTextSelection s;
- XawTextSelectType *sarray; /* Array to cycle for selections. */
- XawTextSelectionSalt *salt; /* salted away selections */
- int options; /* wordbreak, scroll, etc. */
- int dialog_horiz_offset; /* position for popup dialog */
- int 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; /*what type of scrollbars.*/
- XawTextWrapMode wrap; /* The type of wrapping. */
- XawTextResizeMode resize; /* what to resize */
- XawTextMargin r_margin; /* The real margins. */
- XtCallbackList unrealize_callbacks; /* used for scrollbars */
-
/* private state */
-
- XawTextMargin margin; /* The current margins. */
- XawTextLineTable lt;
+ 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. */
- XawTextPosition *updateFrom; /* Array of start positions for update. */
- XawTextPosition *updateTo; /* Array of end positions for update. */
- int numranges; /* How many update ranges there are. */
- int maxranges; /* How many ranges we have space for */
- 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 single_char; /* Single character replaced. */
- XawTextPosition old_insert; /* Last insertPos for batched updates */
- short mult; /* Multiplier. */
- struct text_move * copy_area_offsets; /* Text offset area (linked list) */
+ 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 */
+ 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;
-/*************************************************************
- *
- * Resource types private to Text widget.
- *
- *************************************************************/
-
-#define XtRScrollMode "ScrollMode"
-#define XtRWrapMode "WrapMode"
-#define XtRResizeMode "ResizeMode"
-
-/****************************************************************
- *
- * Full instance record declaration
- *
- ****************************************************************/
+#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
- *
- *******************************************/
-
-extern void _XawTextBuildLineTable (
-#if NeedFunctionPrototypes
- TextWidget /*ctx*/,
- XawTextPosition /*top pos*/,
- _XtBoolean /* force_rebuild */
-#endif
-);
-
-extern char* _XawTextGetSTRING(
-#if NeedFunctionPrototypes
- TextWidget /*ctx*/,
- XawTextPosition /*left*/,
- XawTextPosition /*right*/
-#endif
-);
-
-extern void _XawTextSaltAwaySelection(
-#if NeedFunctionPrototypes
- TextWidget /*ctx*/,
- Atom* /*selections*/,
- int /*num_atoms*/
-#endif
-);
-
-extern void _XawTextPosToXY(
-#if NeedFunctionPrototypes
- Widget /* w */,
- XawTextPosition /* pos */,
- Position * /* x */,
- Position * /*y */
-#endif
-);
+ */
+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 */
-
-