home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / INCLUDE / TBDECL.H < prev    next >
C/C++ Source or Header  |  1990-08-09  |  3KB  |  102 lines

  1. /*
  2.     tbdecl.h
  3.  
  4.     % header for textbuf files
  5.  
  6.     C-scape 3.2
  7.     Copyright (c) 1986-1988 by Oakland Group, Inc.
  8.     ALL RIGHTS RESERVED.
  9.  
  10.     Revision History:
  11.     -----------------
  12.      9/01/87 jmd     added NO_PROTO option
  13.     11/18/87 jmd    changed unsigned's to unsigned int's
  14.      5/31/88 jdc    changed to new fangled version
  15.      8/21/88 jmd    preened and poked
  16.      9/10/88 jdc    added cursor movement func (for teds)
  17.      9/15/87 jmd     added _arg
  18.     10/06/88 jdc    added tb->off_text flag
  19.     11/28/88 jmd    removed startsize form tb_Open, reorganized
  20.      8/04/89 jdc    played with tb->set_cursor
  21.      3/28/90 jmd    ansi-fied
  22.      8/09/90 jdc    added wrap_char
  23. */
  24.  
  25. /* marking box in char coords */
  26. typedef struct _mcbox {
  27.  
  28.     int        anchor_row;
  29.     int        anchor_col;
  30.     int        cleat_row;
  31.     int        cleat_col;
  32.  
  33. } mcbox;
  34.  
  35. /* The textbuf type. */
  36. typedef struct tb_struct {
  37.  
  38.     bbc_type     bbc;          /* text chain */
  39.  
  40.     long         offset;          /* current line */
  41.     long         cursor;          /* current character */
  42.     int         col;           /* current displayed col */
  43.     int            xcol;          /* extra col (ted_Follow) */
  44.  
  45.     unsigned     len;            /* length of the current line (till '\n') */
  46.     unsigned     exp_len;        /* displayed length of currrent line */
  47.  
  48.     int            width;            /* for word wrapping */
  49.     int            tab_size;
  50.     long        size;          /* current character count */
  51.     long        max_size;
  52.  
  53.     unsigned    limit:1;      /* == TRUE if textbuf has max size */
  54.     unsigned    nend:1;          /* == TRUE if line ends with a '\n' */
  55.  
  56.     unsigned    insert:1;
  57.     unsigned    cursor_set:1; /* cursor is on text flag */
  58.     unsigned    refresh:1;      /* flag for routines to update display or not */
  59.     unsigned     buf_type:2;      /* type flag for textbuf as cut buffer */
  60.  
  61.     unsigned     m_stop:1;      /* flag for marked region not to follow cursor */
  62.     int            mark;          /* mark mode */
  63.     long        anchor;
  64.     long        cleat;
  65.     mcbox        markbox;      /* marked region anchor & cleat */
  66.  
  67.     char        newline_char; /* character to display '\n' as  */
  68.     char        tab_char;     /* character to display '\t' as  */
  69.     char        wrap_char;    /* extra word wrapping character */
  70.  
  71. } *tb_type;
  72.  
  73. /*** Functions ***/
  74.  
  75. /* TEXTBUF.C */
  76. extern int      tb_FindPosition(tb_type tb, int trow, int col);
  77.  
  78. /* TBSETMAX.C */
  79. extern int      tb_SetMaxSize(tb_type tb, long size);
  80.  
  81. /**** #define's *****/
  82.  
  83. #define tb_Rewind(tb)             tb_FindPosition(tb, 0, 0)
  84. #define tb_GetSize(tb)             ((tb)->size )
  85. #define tb_GetMaxSize(tb)         ( ( (tb)->limit ) ? (tb)->max_size : -1L )
  86.  
  87. #define tb_GetWrapWidth(tb)      (tb)->width
  88. #define tb_SetWrapWidth(tb, w)  ((tb)->width = w)
  89. #define tb_GetTabSize(tb)          (tb)->tab_size
  90. #define tb_SetTabSize(tb, s)      ((tb)->tab_size = s)
  91.  
  92. #define tb_GetWrapChar(tb)         (tb)->wrap_char
  93. #define tb_SetWrapChar(tb, c)      ((tb)->wrap_char = c)
  94.  
  95. #define TED_MARK        0
  96. #define TED_COLMARK        1
  97. #define TED_NOMARK           2
  98. #define TED_FIXMARK        4
  99.  
  100. #define TED_OVERWRITE    0
  101. #define TED_INSERT        1
  102.