Subversion Repositories tendra.SVN

Rev

Blame | Last modification | View Log | RSS feed

/*
    COPYRIGHT NOTICE

    This program is the proprietary property of IXI Ltd, a subsidiary
    of the Santa Cruz Operation (SCO). Use, reproduction, production
    of amended versions and/or transfer of this program is permitted
    PROVIDED THAT:

    (a)  This legend be preserved on any such reproduction and amended
         version.

    (b)  Any recipient of such reproduction or amended version accept
         the conditions set out in this legend.

    IXI accepts no liability whatsoever in relation to any use to
    which this program may be put and gives no warranty as to the
    program's suitability for any purpose.

    All rights reserved.

    Copyright (c) 1995, 1996

*/



/* SCO CID (IXI) TextOutP.h,v 1.1 1996/08/08 14:13:41 wendland Exp */

%%
#ifndef __MOTIF_P_HEADERS
#error Unexpected access to Motif P headers
#endif
%%

+USE "motif/1_2", "Xm/XmP.h";
+USE "motif/1_2", "Xm/Text.h";

+FIELD (struct) _LineTableExtraRec := {

        Dimension               width;
        Boolean                 wrappedbychar;
};

+TYPEDEF _LineTableExtraRec LineTableExtraRec;
+TYPEDEF _LineTableExtraRec *LineTableExtra ;


+TYPEDEF unsigned int LineNum;

+TYPEDEF int OnOrOff;
+CONST int on;
+CONST int off;

+CONST int NOLINE;

+FIELD (struct) _OutputDataRec := {

        XmFontList              fontlist;
        unsigned int            blinkrate;
        Boolean                 wordwrapl;
        Boolean                 cursor_position_visible;
        Boolean                 autoshowinsertpoint;
        Boolean                 hasfocus;
        Boolean                 has_rect;
        Boolean                 handlingexposures;
        Boolean                 exposevscroll;
        Boolean                 exposehscroll;
        Boolean                 resizewidth;
        Boolean                 resizeheight;
        Boolean                 scrollvertical;
        Boolean                 scrollhorizontal;
        Boolean                 scrollleftside;
        Boolean                 scrolltopside;
        Boolean                 ignorevbar;
        Boolean                 ignorehbar;
        short                   cursor_on;
        Boolean                 refresh_ibeam_off;
        Boolean                 suspend_hoffset;
        Boolean                 use_fontset;
        Boolean                 have_inverted_image_gc;

        OnOrOff                 blinkstate;
        
        Position                insertx;
        Position                inserty;

        int                     number_lines;
        int                     leftmargin;
        int                     rightmargin;
        int                     topmargin;
        int                     bottommargin;
        int                     scrollwidth;
        int                     vsliderSize;
        int                     hoffset;
        int                     averagecharwidth;
        int                     tabwidth;
        short                   columns;
        short                   rows;
        Dimension               lineheight;
        Dimension               minwidth;
        Dimension               minheight;
        Dimension               prevW;
        Dimension               prevH;
        Dimension               cursorwidth;
        Dimension               cursorheight;
        Dimension               font_ascent;
        Dimension               font_descent;
        XtIntervalId            timerid;
        Pixmap                  cursor;
        Pixmap                  add_mode_cursor;
        Pixmap                  ibeam_off;
        Pixmap                  stipple_tile;
        GC                      gc;
        GC                      imagegc;
        Widget                  vbar;
        Widget                  hbar;
        XFontStruct             *font;

        GC                      save_gc;
        short                   columns_set;
        short                   rows_set;
};

+TYPEDEF _OutputDataRec OutputDataRec;
+TYPEDEF _OutputDataRec *OutputData;

+TYPEDEF void (*OutputCreateProc)(Widget, ArgList, Cardinal);
+TYPEDEF XmTextPosition (*XYToPosProc)(XmTextWidget, Position, Position);
+TYPEDEF Boolean (*PosToXYProc)(XmTextWidget, XmTextPosition, Position *, Position *);

+CONST long PASTENDPOS;

+TYPEDEF Boolean (*MeasureLineProc)(XmTextWidget, LineNum, XmTextPosition, XmTextPosition *, LineTableExtraRec **);

+TYPEDEF void (*DrawProc)(XmTextWidget, LineNum, XmTextPosition, XmTextPosition, XmHighlightMode);

+TYPEDEF void (*DrawInsertionPointProc)(XmTextWidget, XmTextPosition, OnOrOff);
+TYPEDEF void (*MakePositionVisibleProc)(XmTextWidget, XmTextPosition);

+TYPEDEF Boolean (*MoveLinesProc)(XmTextWidget, LineNum, LineNum, LineNum);

+TYPEDEF void (*InvalidateProc)(XmTextWidget, XmTextPosition, XmTextPosition, long);

+TYPEDEF void (*GetPreferredSizeProc)(Widget, Dimension *, Dimension *);

+TYPEDEF void (*GetValuesProc)(Widget, ArgList, Cardinal);

+TYPEDEF Boolean (*SetValuesProc)(Widget, Widget, Widget, ArgList, Cardinal *);

+FIELD (struct) _OutputRec := { 

        OutputDataRec           *data;
        XYToPosProc             XYToPos;
        PosToXYProc             PosToXY;
        MeasureLineProc         MeasureLine;
        DrawProc                Draw;
        DrawInsertionPointProc  DrawInsertionPoint;
        MakePositionVisibleProc MakePositionVisible;
        MoveLinesProc           MoveLines;
        InvalidateProc          Invalidate;
        GetPreferredSizeProc    GetPreferredSize;
        GetValuesProc           GetValues;
        SetValuesProc           SetValues;
        XmRealizeOutProc        realize;
        XtWidgetProc            destroy;
        XmResizeFlagProc        resize;
        XtExposeProc            expose;
};

+TYPEDEF _OutputRec OutputRec;

+FUNC void _XmTextFreeContextData(Widget, XtPointer, XtPointer);
+FUNC void _XmTextResetClipOrigin(XmTextWidget, XmTextPosition, Boolean);
+FUNC void _XmTextAdjustGC(XmTextWidget);
+FUNC Boolean _XmTextShouldWordWrap(XmTextWidget);
+FUNC Boolean _XmTextScrollable(XmTextWidget);
+FUNC XmTextPosition _XmTextFindLineEnd(XmTextWidget, XmTextPosition, LineTableExtra *);
+FUNC void _XmTextOutputGetSecResData(XmSecondaryResourceData *);
+FUNC int _XmTextGetNumberLines(XmTextWidget);
+FUNC void _XmTextMovingCursorPosition(XmTextWidget, XmTextPosition);
+FUNC void _XmTextDrawDestination(XmTextWidget);
+FUNC void _XmTextClearDestination(XmTextWidget, Boolean);
+FUNC void _XmTextDestinationVisible(Widget, Boolean);
+FUNC void _XmTextChangeBlinkBehavior(XmTextWidget, Boolean);
+FUNC void _XmTextOutputCreate(Widget, ArgList, Cardinal);
+FUNC Boolean _XmTextGetBaselines(Widget, Dimension **, int *);
+FUNC Boolean _XmTextGetDisplayRect(Widget, XRectangle *);
+FUNC void _XmTextMarginsProc(Widget, XmBaselineMargins *);
+FUNC void _XmTextChangeHOffset(XmTextWidget, int);
+FUNC void _XmTextToggleCursorGC(Widget);


+DEFINE ShouldWordWrap(data, widget) %% (data->wordwrap && (!(data->scrollhorizontal && (XtClass(widget->core.parent) == xmScrolledWindowWidgetClass))) && widget->text.edit_mode != XmSINGLE_LINE_EDIT && !data->resizewidth) %% ;