|
|
1.1 ! root 1: #include <X/mit-copyright.h> ! 2: ! 3: /* $Header: posttest.c,v 10.8 86/11/30 17:00:10 jg Rel $ */ ! 4: /* Copyright Massachusetts Institute of Technology 1985 */ ! 5: ! 6: /* ! 7: * XMenu: MIT Project Athena, X Window System menu package. ! 8: * ! 9: * posttest.c Posttest is the XMenu posting and testing utility. ! 10: * ! 11: * Author: Tony Della Fera, DEC ! 12: * September, 1985 ! 13: */ ! 14: ! 15: #include <X/Xlib.h> ! 16: #include "../XMenu.h" ! 17: #include <stdio.h> ! 18: ! 19: main(argc, argv) ! 20: int argc; /* Argument count. */ ! 21: char **argv; /* Argument vector. */ ! 22: { ! 23: register int i; /* Counter. */ ! 24: register int j; /* Counter. */ ! 25: register int stat; /* Return status. */ ! 26: register XMenu *menu; /* Menu structure. */ ! 27: char *data; /* Test data. */ ! 28: ! 29: int p_num = 2; /* Pane number. */ ! 30: int s_num = 2; /* Selection number. */ ! 31: int x, y; /* Mouse X and Y postition. */ ! 32: ! 33: Window twin; /* Temporary window. */ ! 34: ! 35: /* ! 36: * Open the display. ! 37: */ ! 38: if (XOpenDisplay(NULL) == NULL) { ! 39: printf("posttest: Error opening display.\n"); ! 40: exit(0); ! 41: } ! 42: ! 43: /* ! 44: * Create the XMenu. ! 45: */ ! 46: menu = (XMenu *)XMenuCreate(RootWindow, argv[0]); ! 47: if (menu == NULL) MenuError(); ! 48: ! 49: /* ! 50: * Assemble the panes and selections. ! 51: */ ! 52: printf("Posttest assembling panes: zero... "); ! 53: stat = XMenuAddPane(menu, "Pane Zero", 1); ! 54: if (stat == XM_FAILURE) MenuError(); ! 55: stat = XMenuAddSelection(menu, 0, (char *)1, "Exit posttest.", 1); ! 56: if (stat == XM_FAILURE) MenuError(); ! 57: stat = XMenuAddSelection(menu, 0, (char *)2, "Selection one.", 1); ! 58: if (stat == XM_FAILURE) MenuError(); ! 59: stat = XMenuAddSelection(menu, 0, (char *)2, "Selection two.", 1); ! 60: if (stat == XM_FAILURE) MenuError(); ! 61: stat = XMenuAddSelection(menu, 0, (char *)2, "Selection three.", 1); ! 62: if (stat == XM_FAILURE) MenuError(); ! 63: ! 64: printf("one... "); ! 65: stat = XMenuAddPane(menu, "Pane One", 1); ! 66: if (stat == XM_FAILURE) MenuError(); ! 67: stat = XMenuAddSelection(menu, 1, (char *)2, "Selection zero.", 1); ! 68: if (stat == XM_FAILURE) MenuError(); ! 69: stat = XMenuAddSelection(menu, 1, (char *)2, "Selection one.", 1); ! 70: if (stat == XM_FAILURE) MenuError(); ! 71: stat = XMenuAddSelection(menu, 1, (char *)2, "Selection two.", 1); ! 72: if (stat == XM_FAILURE) MenuError(); ! 73: ! 74: printf("two... "); ! 75: stat = XMenuAddPane(menu, "Pane Two", 1); ! 76: if (stat == XM_FAILURE) MenuError(); ! 77: stat = XMenuAddSelection(menu, 2, (char *)2, "Selection zero.", 1); ! 78: if (stat == XM_FAILURE) MenuError(); ! 79: stat = XMenuAddSelection(menu, 2, (char *)2, "Selection one.", 1); ! 80: if (stat == XM_FAILURE) MenuError(); ! 81: stat = XMenuAddSelection(menu, 2, (char *)2, "Selection two.", 1); ! 82: if (stat == XM_FAILURE) MenuError(); ! 83: stat = XMenuAddSelection(menu, 2, (char *)2, "Selection three.", 1); ! 84: if (stat == XM_FAILURE) MenuError(); ! 85: stat = XMenuAddSelection(menu, 2, (char *)2, "Selection four.", 1); ! 86: if (stat == XM_FAILURE) MenuError(); ! 87: ! 88: printf("three... "); ! 89: stat = XMenuAddPane(menu, "Pane Three", 1); ! 90: if (stat == XM_FAILURE) MenuError(); ! 91: stat = XMenuAddSelection(menu, 3, (char *)2, "Selection zero.", 1); ! 92: if (stat == XM_FAILURE) MenuError(); ! 93: ! 94: printf("four... "); ! 95: stat = XMenuAddPane(menu, "Pane Four", 1); ! 96: if (stat == XM_FAILURE) MenuError(); ! 97: stat = XMenuAddSelection(menu, 4, (char *)2, "Selection zero.", 1); ! 98: if (stat == XM_FAILURE) MenuError(); ! 99: stat = XMenuAddSelection(menu, 4, (char *)2, "Selection one.", 1); ! 100: if (stat == XM_FAILURE) MenuError(); ! 101: printf("done.\n"); ! 102: ! 103: /* ! 104: * Recompute menu. ! 105: */ ! 106: printf("Posttest recomputing menu dependencies.\n"); ! 107: stat = XMenuRecompute(menu); ! 108: if (stat == XM_FAILURE) MenuError(); ! 109: ! 110: /* ! 111: * Post the menu. ! 112: */ ! 113: while (1) { ! 114: data = NULL; ! 115: printf( ! 116: "Posttest posting menu: pane = %d, selection = %d.\n", ! 117: p_num, s_num ! 118: ); ! 119: XQueryMouse(RootWindow, &x, &y, &twin); ! 120: stat = XMenuActivate( ! 121: menu, ! 122: &p_num, &s_num, ! 123: x, y, ! 124: ButtonPressed, ! 125: &data ! 126: ); ! 127: printf("Postest results: data = %d, pane = %d, selection = %d\n", ! 128: (int)data, p_num, s_num); ! 129: if (stat == XM_FAILURE) MenuError(); ! 130: if (stat == XM_NO_SELECT) { ! 131: printf("Posttest reports no selection made.\n"); ! 132: s_num = -1; ! 133: continue; ! 134: } ! 135: if (stat == XM_IA_SELECT) { ! 136: printf("Posttest reports no selection active.\n"); ! 137: continue; ! 138: } ! 139: if ((int)data == 1) break; ! 140: } ! 141: ! 142: /* ! 143: * Destroy XMenu. ! 144: */ ! 145: printf("Posttest destroying menu.\n"); ! 146: XMenuDestroy(menu); ! 147: } ! 148: ! 149: /* ! 150: * Print the XMenu error message. ! 151: */ ! 152: MenuError() ! 153: { ! 154: printf("\nPosttest reports XMenu error: %s.\n\n", XMenuError()); ! 155: exit(0); ! 156: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.