Home | History | Annotate | Line # | Download | only in motif_l
      1 /*	$NetBSD: m_motif.h,v 1.2 2013/11/22 15:52:06 christos Exp $	*/
      2 /*-
      3  * Copyright (c) 1996
      4  *	Rob Zimmermann.  All rights reserved.
      5  * Copyright (c) 1996
      6  *	Keith Bostic.  All rights reserved.
      7  *
      8  * See the LICENSE file for redistribution information.
      9  *
     10  *	"Id: m_motif.h,v 8.11 1996/12/20 10:26:59 bostic Exp  (Berkeley) Date: 1996/12/20 10:26:59 ";
     11  */
     12 
     13 /*
     14  * Color support
     15  */
     16 #define	COLOR_INVALID	0xff	/* force color change */
     17 
     18 /*
     19  * These are color indices.  When vi passes color info, we can do 2..0x3f
     20  * in the 8 bits I've allocated.
     21  */
     22 #define	COLOR_STANDARD	0x00	/* standard video */
     23 #define	COLOR_INVERSE	0x01	/* reverse video */
     24 
     25 /* These are flag bits, they override the above colors. */
     26 #define	COLOR_CARET	0x80	/* draw the caret */
     27 #define	COLOR_SELECT	0x40	/* draw the selection */
     28 
     29 #define	ToRowCol( scr, lin, r, c )	\
     30 	    r = (lin) / scr->cols;	\
     31 	    c = ((lin) - r * (scr->cols)) % scr->cols;
     32 #define	Linear( scr, y, x )	\
     33 	    ( (y) * scr->cols + (x) )
     34 #define	CharAt( scr, y, x )	\
     35 	    ( scr->characters + Linear( scr, y, x ) )
     36 #define	FlagAt( scr, y, x )	\
     37 	    ( scr->flags + Linear( scr, y, x ) )
     38 
     39 #define	XPOS( scr, x )	\
     40 	scr->ch_width * (x)
     41 #define	YTOP( scr, y )	\
     42 	scr->ch_height * (y)
     43 #define	YPOS( scr, y )	\
     44 	YTOP( scr, ((y)+1) ) - scr->ch_descent
     45 
     46 #define	ROW( scr, y )	\
     47 	( (y) / scr->ch_height )
     48 
     49 #define	COLUMN( scr, x )	\
     50 	( (x) / scr->ch_width )
     51 
     52 /* Describes a single 'screen' implemented in X widgetry. */
     53 typedef	struct {
     54     Widget	parent,		/* the pane */
     55 		area,		/* text goes here */
     56 		form,		/* holds text and scrollbar */
     57 		scroll;		/* not connected yet */
     58     Region	clip;
     59     int		color;
     60     int		rows,
     61 		cols;
     62     int		ch_width,
     63 		ch_height,
     64 		ch_descent;
     65     int		curx, cury;
     66     char	*characters;
     67     char	*flags;
     68     Boolean	init;
     69 } xvi_screen;
     70 
     71 /* Option type. */
     72 typedef enum {
     73 	optToggle,
     74 	optInteger,
     75 	optString,
     76 	optFile,
     77 	optTerminator
     78 } optKind;
     79 
     80 /* Option entry. */
     81 typedef struct {
     82 	optKind	kind;				/* Option type. */
     83 	String	name;				/* Option name. */
     84 	void	*value;				/* Current option value. */
     85 	u_int	flags;				/* Associated flags. */
     86 } optData;
     87 
     88 /* Option page. */
     89 typedef	struct {
     90 	String	name;
     91 	String	description;
     92 	Widget	holder;
     93 	optData	*toggles;
     94 	optData	*ints;
     95 	optData	*others;
     96 } optSheet;
     97 
     98 /* Utilities for converting X resources...
     99  *
    100  * __XutConvertResources( Widget, String root, XutResource *, int count )
    101  *	The resource block is loaded with converted values
    102  *	If the X resource does not exist, no change is made to the value
    103  *	'root' should be the application name.
    104  */
    105 typedef	enum {
    106     XutRKinteger,
    107     XutRKboolean,
    108     XutRKpixel,
    109     XutRKpixelBackup,	/* if XutRKpixel fails */
    110     XutRKfont,
    111     XutRKcursor
    112 } XutResourceKind;
    113 
    114 typedef struct {
    115     String		name;
    116     XutResourceKind	kind;
    117     void		*value;
    118 } XutResource;
    119 
    120 /* Internal use: */
    121 extern GC	   __vi_copy_gc;
    122 extern void	 (*__vi_exitp) __P((void));
    123 extern xvi_screen *__vi_screen;
    124 
    125 #include "motif_extern.h"
    126