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