awips2/nativeLib/rary.empty.motif/include/Xm/TextP.h
2017-04-21 18:33:55 -06:00

305 lines
11 KiB
C

/**
*
* $Id: TextP.h,v 1.1 2004/08/28 19:23:26 dannybackx Exp $
*
* Copyright (C) 1995 Free Software Foundation, Inc.
* Copyright (C) 1995-2001 LessTif Development Team
*
* This file is part of the GNU LessTif Library.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
**/
#ifndef _XM_TEXTP_H
#define _XM_TEXTP_H
#include <Xm/PrimitiveP.h>
#include <Xm/Text.h>
#include <Xm/TextOutP.h>
#include <Xm/TextInP.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _InputRec *Input;
typedef struct _OutputRec *Output;
#define MAXINT INT_MAX
#define NODELTA MAXINT
#define TEXTWIDGETCLASS "Text"
#define GetSrc(widget) (((XmTextWidget)(widget))->text.source)
typedef struct {
XmTextPosition start;
Boolean changed;
XmTextPosition changed_position;
Boolean past_end;
LineTableExtra extra;
} LineRec, *Line;
typedef struct _XmTextLineTableRec {
unsigned int start_pos : 31,
virt_line : 1;
} XmTextLineTableRec, *XmTextLineTable;
typedef struct {
XmTextPosition from, to;
} RangeRec;
typedef struct {
Cardinal number;
Cardinal maximum;
RangeRec *range;
} Ranges;
typedef struct {
XmTextSource source;
XtCallbackList activate_callback;
XtCallbackList focus_callback;
XtCallbackList losing_focus_callback;
XtCallbackList value_changed_callback;
XtCallbackList modify_verify_callback;
XtCallbackList wcs_modify_verify_callback;
XtCallbackList motion_verify_callback;
XtCallbackList gain_primary_callback;
XtCallbackList lose_primary_callback;
char *value;
wchar_t *wc_value;
Dimension margin_height;
Dimension margin_width;
Dimension cursor_position_x;
OutputCreateProc output_create;
InputCreateProc input_create;
XmTextPosition top_character;
XmTextPosition bottom_position;
XmTextPosition cursor_position;
int max_length;
int edit_mode;
Boolean auto_show_cursor_position;
Boolean editable;
Boolean verify_bell;
Boolean add_mode;
Boolean traversed;
Boolean in_redisplay;
Boolean needs_redisplay;
Boolean in_refigure_lines;
Boolean needs_refigure_lines;
Boolean in_setvalues;
Boolean in_resize;
Boolean in_expose;
Boolean highlight_changed;
Boolean pendingoff;
char char_size;
OnOrOff on_or_off;
Output output;
Input input;
XmTextPosition first_position;
XmTextPosition last_position;
XmTextPosition forget_past;
XmTextPosition force_display;
XmTextPosition new_top;
XmTextPosition last_top_char;
XmTextPosition dest_position;
int disable_depth;
int pending_scroll;
int total_lines;
int top_line;
int vsbar_scrolling;
Cardinal number_lines;
Cardinal maximum_lines;
Line line;
Ranges repaint;
_XmHighlightData highlight;
_XmHighlightData old_highlight;
Widget inner_widget;
XmTextLineTable line_table;
unsigned int table_size;
unsigned int table_index;
} XmTextPart;
/* Define the full instance record */
typedef struct _XmTextRec {
CorePart core;
XmPrimitivePart primitive;
XmTextPart text;
} XmTextRec;
/* Define class part structure */
typedef struct {
XtPointer extension;
} XmTextClassPart;
/* Define the full class record */
typedef struct _XmTextClassRec {
CoreClassPart core_class;
XmPrimitiveClassPart primitive_class;
XmTextClassPart text_class;
} XmTextClassRec;
/* External definition for class record */
XMLIBEXPORT extern XmTextClassRec xmTextClassRec;
/* Inner Widget: base object for the Output and Input "subparts". This really
* is only to hold the values for resource specification. An Output and an
* input object will be created later that will copy the information from
* these records into their own.
*/
typedef struct {
OutputDataRec out;
InputDataRec in;
} XmTextInnerPart;
/* Define the full instance record */
typedef struct _XmTextInnerRec {
ObjectPart object;
XmTextInnerPart inner;
} XmTextInnerRec;
/* Define the full class record */
typedef struct _XmTextInnerClassRec {
ObjectClassPart object_class;
XmTextClassPart text_src_class; /* just a dummy */
} XmTextInnerClassRec;
/* External definition for class record */
XMLIBEXPORT extern XmTextInnerClassRec xmTextInnerClassRec;
typedef struct _XmTextInnerRec *XmTextInnerWidget;
XMLIBEXPORT extern int _XmTextGetTotalLines(Widget widget);
XMLIBEXPORT extern XmTextLineTable _XmTextGetLineTable(Widget widget,
int *total_lines);
XMLIBEXPORT extern void _XmTextRealignLineTable(XmTextWidget widget,
XmTextLineTable *temp_table,
int *temp_table_size,
register unsigned int cur_index,
register XmTextPosition cur_start,
register XmTextPosition cur_end);
XMLIBEXPORT extern unsigned int _XmTextGetTableIndex(XmTextWidget widget,
XmTextPosition pos);
XMLIBEXPORT extern void _XmTextUpdateLineTable(Widget widget,
XmTextPosition start,
XmTextPosition end,
XmTextBlock block,
Boolean update);
XMLIBEXPORT extern void _XmTextSetCursorPosition(Widget w,
XmTextPosition pos);
XMLIBEXPORT extern void _XmTextLineInfo(XmTextWidget widget,
LineNum line,
XmTextPosition *startpos,
LineTableExtra *extra);
XMLIBEXPORT extern LineNum _XmTextPosToLine(XmTextWidget widget,
XmTextPosition position);
XMLIBEXPORT extern void _XmTextMarkRedraw(XmTextWidget widget,
XmTextPosition left,
XmTextPosition right);
XMLIBEXPORT extern void _XmTextDisableRedisplay(XmTextWidget widget,
Boolean losesbackingstore);
XMLIBEXPORT extern void _XmTextEnableRedisplay(XmTextWidget widget) ;
XMLIBEXPORT extern void _XmTextDelete(XmTextWidget w, XEvent *ev,
XmTextPosition start, XmTextPosition end);
XMLIBEXPORT extern void _XmTextSetTopCharacter ( Widget w, XmTextPosition position);
XMLIBEXPORT extern LineNum _XmTextNumLines( XmTextWidget widget);
void _XmTextInvalidate(XmTextWidget w, XmTextPosition position,
XmTextPosition topos, long delta);
#define Text_Source(w) (((XmTextWidget)(w))->text.source)
#define Text_ActivateCallback(w) (((XmTextWidget)(w))->text.activate_callback)
#define Text_FocusCallback(w) (((XmTextWidget)(w))->text.focus_callback)
#define Text_LosingFocusCallback(w) (((XmTextWidget)(w))->text.losing_focus_callback)
#define Text_ValueChangedCallback(w) (((XmTextWidget)(w))->text.value_changed_callback)
#define Text_ModifyVerifyCallback(w) (((XmTextWidget)(w))->text.modify_verify_callback)
#define Text_WcsModifyVerifyCallback(w) (((XmTextWidget)(w))->text.wcs_modify_verify_callback)
#define Text_MotionVerifyCallback(w) (((XmTextWidget)(w))->text.motion_verify_callback)
#define Text_GainPrimaryCallback(w) (((XmTextWidget)(w))->text.gain_primary_callback)
#define Text_LosePrimaryCallback(w) (((XmTextWidget)(w))->text.lose_primary_callback)
#define Text_Value(w) (((XmTextWidget)(w))->text.value)
#define Text_WcsValue(w) (((XmTextWidget)(w))->text.wc_value)
#define Text_MarginWidth(w) (((XmTextWidget)(w))->text.margin_width)
#define Text_MarginHeight(w) (((XmTextWidget)(w))->text.margin_height)
#define Text_CursorPositionX(w) (((XmTextWidget)(w))->text.cursor_position_x)
#define Text_OutputCreate(w) (((XmTextWidget)(w))->text.output_create)
#define Text_InputCreate(w) (((XmTextWidget)(w))->text.input_create)
#define Text_TopPos(w) (((XmTextWidget)(w))->text.top_character)
#define Text_BottomPos(w) (((XmTextWidget)(w))->text.bottom_position)
#define Text_CursorPos(w) (((XmTextWidget)(w))->text.cursor_position)
#define Text_FirstPos(w) (((XmTextWidget)(w))->text.first_position)
#define Text_LastPos(w) (((XmTextWidget)(w))->text.last_position)
#define Text_MaxLength(w) (((XmTextWidget)(w))->text.max_length)
#define Text_EditMode(w) (((XmTextWidget)(w))->text.edit_mode)
#define Text_AutoShowCursorPosition(w) (((XmTextWidget)(w))->text.auto_show_cursor_position)
#define Text_Editable(w) (((XmTextWidget)(w))->text.editable)
#define Text_VerifyBell(w) (((XmTextWidget)(w))->text.verify_bell)
#define Text_AddMode(w) (((XmTextWidget)(w))->text.add_mode)
#define Text_Traversed(w) (((XmTextWidget)(w))->text.traversed)
#define Text_InRedisplay(w) (((XmTextWidget)(w))->text.in_redisplay)
#define Text_NeedsRedisplay(w) (((XmTextWidget)(w))->text.needs_redisplay)
#define Text_InRefigureLines(w) (((XmTextWidget)(w))->text.in_refigure_lines)
#define Text_NeedsRefigureLines(w) (((XmTextWidget)(w))->text.needs_refigure_lines)
#define Text_InSetValues(w) (((XmTextWidget)(w))->text.in_setvalues)
#define Text_InResize(w) (((XmTextWidget)(w))->text.in_resize)
#define Text_InExpose(w) (((XmTextWidget)(w))->text.in_expose)
#define Text_HighlightChanged(w) (((XmTextWidget)(w))->text.highlight_changed)
#define Text_PendingOff(w) (((XmTextWidget)(w))->text.pendingoff)
#define Text_CharSize(w) (((XmTextWidget)(w))->text.char_size)
#define Text_OnOrOff(w) (((XmTextWidget)(w))->text.on_or_off)
#define Text_Output(w) (((XmTextWidget)(w))->text.output)
#define Text_OutputData(w) (Text_Output(w)->data)
#define Text_Input(w) (((XmTextWidget)(w))->text.input)
#define Text_InputData(w) (Text_Input(w)->data)
#define Text_ForgetPast(w) (((XmTextWidget)(w))->text.forget_past)
#define Text_ForceDisplay(w) (((XmTextWidget)(w))->text.force_display)
#define Text_NewTop(w) (((XmTextWidget)(w))->text.new_top)
#define Text_LastTopChar(w) (((XmTextWidget)(w))->text.last_top_char)
#define Text_DestPosition(w) (((XmTextWidget)(w))->text.dest_position)
#define Text_DisableDepth(w) (((XmTextWidget)(w))->text.disable_depth)
#define Text_PendingScroll(w) (((XmTextWidget)(w))->text.pending_scroll)
#define Text_TotalLines(w) (((XmTextWidget)(w))->text.total_lines)
#define Text_TopLine(w) (((XmTextWidget)(w))->text.top_line)
#define Text_VSBarScrolling(w) (((XmTextWidget)(w))->text.vsbar_scrolling)
#define Text_Line(w) (((XmTextWidget)(w))->text.line)
#define Text_LineCount(w) (((XmTextWidget)(w))->text.number_lines)
#define Text_LineMax(w) (((XmTextWidget)(w))->text.maximum_lines)
#define Text_Repaint(w) (((XmTextWidget)(w))->text.repaint)
#define Text_Highlight(w) (((XmTextWidget)(w))->text.highlight)
#define Text_OldHighlight(w) (((XmTextWidget)(w))->text.old_highlight)
#define Text_InnerWidget(w) (XmTextInnerWidget)(((XmTextWidget)(w))->text.inner_widget)
#define Text_LineTable(w) (((XmTextWidget)(w))->text.line_table)
#define Text_TableSize(w) (((XmTextWidget)(w))->text.table_size)
#define Text_TableIndex(w) (((XmTextWidget)(w))->text.table_index)
#ifdef __cplusplus
};
#endif
#endif /* _XM_TEXTP_H */