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