/* $Id: subwindow_ex.c,v 1.8 2004/08/28 00:57:12 tom Exp $ */ #include #ifdef HAVE_XCURSES char *XCursesProgramName="subwindow_ex"; #endif /* * This demo displays the ability to put widgets within a curses subwindow. */ int main (int argc, char **argv) { /* Declare vars. */ CDKSCREEN *cdkscreen; CDKSCROLL *dowList; CDKLABEL *title; WINDOW *mainWindow, *subWindow; char *dow[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}; char *mesg[5]; int pick; CDK_PARAMS params; CDKparseParams(argc, argv, ¶ms, "s:" CDK_CLI_PARAMS); /* Start curses. */ mainWindow = initscr(); curs_set(0); /* Create a basic window. */ subWindow = newwin (LINES-5, COLS-10, 2, 5); /* Start Cdk. */ cdkscreen = initCDKScreen (subWindow); /* Box our window. */ box (subWindow, ACS_VLINE, ACS_HLINE); wrefresh (subWindow); /* Create a basic scrolling list inside the window. */ dowList = newCDKScroll (cdkscreen, CDKparamValue(¶ms, 'X', CENTER), CDKparamValue(¶ms, 'Y', CENTER), CDKparsePosition(CDKparamString2(¶ms, 's', "RIGHT")), CDKparamValue(¶ms, 'H', 10), CDKparamValue(¶ms, 'W', 15), "Pick a Day", dow, 7, NONUMBERS, A_REVERSE, CDKparamValue(¶ms, 'N', TRUE), CDKparamValue(¶ms, 'S', FALSE)); /* Put a title within the window. */ mesg[0] = "<#HL(30)>"; mesg[1] = "This is a Cdk scrolling list"; mesg[2] = "inside a curses window."; mesg[3] = "<#HL(30)>"; title = newCDKLabel (cdkscreen, CENTER, 0, mesg, 4, FALSE, FALSE); /* Refresh the screen. */ refreshCDKScreen (cdkscreen); /* Let the user play. */ pick = activateCDKScroll (dowList, 0); /* Clean up. */ destroyCDKScroll (dowList); destroyCDKLabel (title); eraseCursesWindow (subWindow); endCDK(); /* Tell them what they picked. */ printf ("You picked %s\n", dow[pick]); exit (EXIT_SUCCESS); }