|
|
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. */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.