Annotation of 43BSDReno/contrib/emacs-18.55/oldXMenu/XMenu.h, revision 1.1.1.1

1.1       root        1: #include <X11/copyright.h>
                      2: 
                      3: /* $Header: XMenu.h,v 1.5 87/12/04 10:26:47 swick Exp $ */
                      4: /* Copyright    Massachusetts Institute of Technology    1985  */
                      5: 
                      6: /*
                      7:  * XMenu:      MIT Project Athena, X Window system menu package
                      8:  *
                      9:  *     XMenu.h -       Include file for the MIT Project Athena
                     10:  *                     XMenu X window system menu package.
                     11:  *                     
                     12:  *     Author:         Tony Della Fera, DEC
                     13:  *                     August, 1984
                     14:  */
                     15: 
                     16: #ifndef _XMenu_h_
                     17: #define _XMenu_h_
                     18: 
                     19: #include <X11/Xutil.h>
                     20: #include <X11/X10.h>
                     21: 
                     22: #define FAILURE                        -1
                     23: #define SUCCESS                        1
                     24: #define POST_ERROR             -1
                     25: #define NO_SELECTION           -1
                     26: 
                     27: #define XM_FAILURE             -1
                     28: #define XM_SUCCESS             1
                     29: #define XM_NO_SELECT           2
                     30: #define XM_IA_SELECT           3
                     31: 
                     32: #define XME_CODE_COUNT         17
                     33: 
                     34: #define XME_NO_ERROR           0
                     35: #define XME_NOT_INIT           1
                     36: #define XME_ARG_BOUNDS         2
                     37: #define XME_P_NOT_FOUND                3
                     38: #define XME_S_NOT_FOUND                4
                     39: #define XME_STYLE_PARAM                5
                     40: #define XME_GRAB_MOUSE         6
                     41: #define XME_INTERP_LOC         7
                     42: #define XME_CALLOC             8
                     43: #define XME_CREATE_ASSOC       9
                     44: #define XME_STORE_BITMAP       10
                     45: #define XME_MAKE_TILES         11
                     46: #define XME_MAKE_PIXMAP                12
                     47: #define XME_CREATE_CURSOR      13
                     48: #define XME_OPEN_FONT          14
                     49: #define XME_CREATE_WINDOW      15
                     50: #define XME_CREATE_TRANSP      16
                     51: 
                     52: /*
                     53:  * XMenu error code and error list definitions.
                     54:  */
                     55: extern int _XMErrorCode;
                     56: extern char *_XMErrorList[];
                     57: 
                     58: /*
                     59:  * Define the XMWindow datatypes.
                     60:  *
                     61:  * An XMWindow is either an XMPane or an XMSelect.
                     62:  *
                     63:  * XMWindow is wrapper used to identify the constant window
                     64:  * information that makes up XMPane and XMSelect objects.
                     65:  *
                     66:  * An XMPane is a menu pane made up of one or more XMSelect and a label.
                     67:  *
                     68:  * An XMSelect is a menu selection object with a label and a data pointer.
                     69:  */
                     70: typedef enum _xmwintype {PANE, SELECTION, PL_HEADER, SL_HEADER} XMWType;
                     71: 
                     72: typedef struct _xmwindow {
                     73:     struct _xmwindow *next;    /* Next obj pointer (for insque). */
                     74:     struct _xmwindow *prev;    /* Prev obj pointer (for insque). */
                     75:     XMWType type;              /* Type of window. */
                     76:     Window window;             /* X Window Id. */
                     77:     int window_x;              /* Window upper left X coordinate. */
                     78:     int window_y;              /* Window upper left y coordinate. */
                     79:     int window_w;              /* Window width. */
                     80:     int window_h;              /* Window height. */
                     81:     int active;                        /* Window active? */
                     82:     int activated;             /* Window activated? */
                     83:     int pad_l1;                        /* ---- */
                     84:     char *pad_l2;              /* ---- */
                     85:     int pad_l3;                        /* ---- */
                     86:     int pad_l4;                        /* ---- */
                     87:     int pad_l5;                        /* ---- */
                     88:     int pad_l6;                        /* ---- */
                     89:     int pad_l7;                        /* ---- */
                     90:     int pad_l8;                        /* ---- */
                     91:     struct _xmwindow *pad_l9;  /* ---- */
                     92:     char *pad_l10;             /* ---- */
                     93:     struct _xmwindow *pad_l11; /* ---- */
                     94: } XMWindow;
                     95: 
                     96: typedef struct _xmpane {
                     97:     struct _xmpane *next;      /* Next obj pointer (for insque). */
                     98:     struct _xmpane *prev;      /* Prev obj pointer (for insque). */
                     99:     XMWType type;              /* Type of window. */
                    100:     Window window;             /* X Window Id. */
                    101:     int window_x;              /* Window upper left X coordinate. */
                    102:     int window_y;              /* Window upper left y coordinate. */
                    103:     int window_w;              /* Window width. */
                    104:     int window_h;              /* Window height. */
                    105:     int active;                        /* Window active? */
                    106:     int activated;             /* Window activated? */
                    107:     int serial;                        /* -- Pane serial number. */
                    108:     char *label;               /* -- Pane label. */
                    109:     int label_width;           /* -- Pane label width in pixels. */
                    110:     int label_length;          /* -- Pane label length in chars. */
                    111:     int label_x;               /* -- Pane label X offset. */
                    112:     int label_uy;              /* -- Pane label upper Y offset. */
                    113:     int label_ly;              /* -- Pane label lower Y offset. */
                    114:     int s_count;               /* -- Selections in this pane. */
                    115:     struct _xmselect *s_list;  /* -- Selection  window list. */
                    116:     char *pad_l10;             /* ---- */
                    117:     struct _xmwindow *pad_l11; /* ---- */
                    118: } XMPane;
                    119: 
                    120: typedef struct _xmselect {
                    121:     struct _xmselect *next;    /* Next obj pointer (for insque). */
                    122:     struct _xmselect *prev;    /* Prev obj pointer (for insque). */
                    123:     XMWType type;              /* Type of window. */
                    124:     Window window;             /* X Window Id. */
                    125:     Window parent;             /* X Window id of parent window. */
                    126:     int window_x;              /* Window upper left X coordinate. */
                    127:     int window_y;              /* Window upper left y coordinate. */
                    128:     int window_w;              /* Window width. */
                    129:     int window_h;              /* Window height. */
                    130:     int active;                        /* Window active? */
                    131:     int activated;             /* Window activated? */
                    132:     int serial;                        /* -- Selection serial number. */
                    133:     char *label;               /* -- Selection label. */
                    134:     int label_width;           /* -- Selection label width in pixels. */
                    135:     int label_length;          /* -- Selection label length in chars. */
                    136:     int label_x;               /* -- Selection label X offset. */
                    137:     int label_y;               /* -- Selection label Y offset. */
                    138:     int pad_l7;                        /* ---- */
                    139:     int pad_l8;                        /* ---- */
                    140:     struct _xmwindow *pad_l9;  /* ---- */
                    141:     char *data;                        /* -- Selection data pointer. */
                    142:     struct _xmpane *parent_p;  /* -- Selection parent pane structure. */
                    143: } XMSelect;
                    144: 
                    145: 
                    146: /*
                    147:  * Define the XMStyle datatype.
                    148:  *
                    149:  * Menu presentation style information.
                    150:  *
                    151:  */
                    152: typedef enum _xmstyle {
                    153:     LEFT,                      /* Left oriented obejct. */
                    154:     RIGHT,                     /* Right oriented obejct. */
                    155:     CENTER                     /* Center oriented object. */
                    156: } XMStyle;
                    157: 
                    158: 
                    159: /*
                    160:  * Define the XMMode datatype.
                    161:  *
                    162:  * Menu presentation mode information.
                    163:  *
                    164:  */
                    165: typedef enum _xmmode {
                    166:     BOX,                       /* BOXed graphic rendition. */
                    167:     INVERT,                    /* INVERTed graphic rendition. */
                    168: } XMMode;
                    169: 
                    170: 
                    171: /* 
                    172:  * Define the XMenu datatype. 
                    173:  *
                    174:  * All dimensions are in pixels unless otherwise noted.
                    175:  */
                    176: typedef struct _xmenu {
                    177:     /* -------------------- Menu data -------------------- */
                    178:     XMStyle menu_style;                /* Menu display style. */
                    179:     XMMode menu_mode;          /* Menu display mode. */
                    180:     int freeze;                        /* Freeze server mode? */
                    181:     int aeq;                   /* Asynchronous Event Queueing mode? */
                    182:     int recompute;             /* Recompute menu dependecies? */
                    183:     Window parent;             /* Menu's parent window. */
                    184:     int width;                 /* Overall menu width. */
                    185:     int height;                        /* Overall menu height. */
                    186:     int x_pos;                 /* Oveall menu origin. */
                    187:     int y_pos;                 /* Overall menu origin. */
                    188:     Cursor mouse_cursor;       /* Mouse cursor raster. */
                    189:     XAssocTable *assoc_tab;    /* XMWindow association table. */
                    190:     XMPane *p_list;            /* List of XMPanes. */
                    191:     /* -------------------- Pane window data -------------------- */
                    192:     XMStyle p_style;           /* Pane display style. */
                    193:     int p_events;              /* Pane window X events. */
                    194:     XFontStruct *p_fnt_info;   /* Flag font info structure. */
                    195:     GC pane_GC;                        /* Pane graphics context. */
                    196:     int p_fnt_pad;             /* Fixed flag font padding in pixels. */
                    197:     double p_spread;           /* Pane spread in flag height fractions. */
                    198:     int p_bdr_width;           /* Pane border width. */
                    199:     int flag_height;           /* Flag height. */
                    200:     int p_width;               /* Menu pane width. */
                    201:     int p_height;              /* Menu pane height. */
                    202:     int p_x_off;               /* Pane window X offset. */
                    203:     int p_y_off;               /* Pane window Y offset. */
                    204:     int p_count;               /* Number of panes per menu. */
                    205:     /* -------------------- Selection window data -------------------- */
                    206:     XMStyle s_style;           /* Selection display style. */
                    207:     int s_events;              /* Selection window X events. */
                    208:     XFontStruct *s_fnt_info;   /* Body font info structure. */
                    209:     int s_fnt_pad;             /* Fixed body font padding in pixels. */
                    210:     double s_spread;           /* Select spread in line height fractions. */
                    211:     int s_bdr_width;           /* Select border width. */
                    212:     int s_width;               /* Selection window width. */
                    213:     int s_height;              /* Selection window height. */
                    214:     int s_x_off;               /* Selection window X offset. */
                    215:     int s_y_off;               /* Selection window Y offset. */
                    216:     int s_count;               /* Maximum number of selections per pane. */
                    217:     GC normal_select_GC;       /* GC used for inactive selections. */
                    218:     GC inverse_select_GC;      /* GC used for active (current) selection. */  
                    219:     GC inact_GC;               /* GC used for inactive selections and */
                    220:                                /* panes headers. */
                    221:     /* -------------------- Color data -------------------- */
                    222:     int p_bdr_color;           /* Color of pane border pixmap. */
                    223:     int s_bdr_color;           /* Color of selection border pixmap. */
                    224:     int p_frg_color;           /* Color of pane foreground pixmap. */
                    225:     int s_frg_color;           /* Color of selection pixmap. */
                    226:     int bkgnd_color;           /* Color of menu background pixmap. */
                    227:     /* -------------------- Pixmap data -------------------- */
                    228:     Pixmap p_bdr_pixmap;       /* Pane border pixmap. */
                    229:     Pixmap s_bdr_pixmap;       /* Selection border pixmap. */
                    230:     Pixmap p_frg_pixmap;       /* Pane foreground pixmap. */
                    231:     Pixmap s_frg_pixmap;       /* Selection foreground pixmap. */
                    232:     Pixmap bkgnd_pixmap;       /* Menu background pixmap. */
                    233:     Pixmap inact_pixmap;       /* Menu inactive pixmap. */
                    234: } XMenu;
                    235: 
                    236: /*
                    237:  * XMenu library routine declarations.
                    238:  */
                    239: XMenu *XMenuCreate();
                    240: int XMenuAddPane();
                    241: int XMenuAddSelection();
                    242: int XMenuInsertPane();
                    243: int XMenuInsertSelection();
                    244: int XMenuFindPane();
                    245: int XMenuFindSelection();
                    246: int XMenuChangePane();
                    247: int XMenuChangeSelection();
                    248: int XMenuSetPane();
                    249: int XMenuSetSelection();
                    250: int XMenuRecompute();
                    251: int XMenuEventHandler();       /* No value actually returned. */
                    252: int XMenuLocate();
                    253: int XMenuSetFreeze();          /* No value actually returned. */
                    254: int XMenuActivate();
                    255: char *XMenuPost();
                    256: int XMenuDeletePane();
                    257: int XMenuDeleteSelection();
                    258: int XMenuDestroy();            /* No value actually returned. */
                    259: char *XMenuError();
                    260: 
                    261: #endif
                    262: /* Don't add after this point. */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.