/* $Id: uslider_ex.c,v 1.2 2005/12/27 19:47:43 tom Exp $ */ #include <cdk_test.h> #ifdef HAVE_XCURSES char *XCursesProgramName = "uslider_ex"; #endif /* * This program demonstrates the Cdk unsigned-slider widget. */ int main (int argc, char **argv) { /* Declare variables. */ CDKSCREEN *cdkscreen = 0; CDKUSLIDER *widget = 0; WINDOW *cursesWin = 0; char title[256]; char *label = "</B>Current Value:"; char temp[256], *mesg[5]; unsigned selection; CDK_PARAMS params; unsigned high; unsigned inc; unsigned low; CDKparseParams(argc, argv, ¶ms, "h:i:l:w:" CDK_MIN_PARAMS); high = CDKparamNumber2(¶ms, 'h', 100); inc = CDKparamNumber2(¶ms, 'i', 1); low = CDKparamNumber2(¶ms, 'l', 1); sprintf(title, "<C></U>Enter a value:\nLow %#x\nHigh %#x", low, high); /* Set up CDK. */ cursesWin = initscr(); cdkscreen = initCDKScreen (cursesWin); /* Start CDK Colors. */ initCDKColor(); /* Create the widget. */ widget = newCDKUSlider (cdkscreen, CDKparamValue(¶ms, 'X', CENTER), CDKparamValue(¶ms, 'Y', CENTER), title, label, A_REVERSE | COLOR_PAIR (29) | ' ', CDKparamNumber2(¶ms, 'w', 50), low, low, high, inc, (inc*2), CDKparamValue(¶ms, 'N', TRUE), CDKparamValue(¶ms, 'S', FALSE)); /* Is the widget null? */ if (widget == 0) { /* Exit CDK. */ destroyCDKScreen (cdkscreen); endCDK(); /* Print out a message. */ printf ("Oops. Can't make the widget. Is the window too small?\n"); ExitProgram (EXIT_FAILURE); } /* Activate the widget. */ selection = activateCDKUSlider (widget, 0); /* Check the exit value of the widget. */ if (widget->exitType == vESCAPE_HIT) { mesg[0] = "<C>You hit escape. No value selected."; mesg[1] = "", mesg[2] = "<C>Press any key to continue."; popupLabel (cdkscreen, mesg, 3); } else if (widget->exitType == vNORMAL) { sprintf (temp, "<C>You selected %u", selection); mesg[0] = copyChar (temp); mesg[1] = "", mesg[2] = "<C>Press any key to continue."; popupLabel (cdkscreen, mesg, 3); freeChar (mesg[0]); } /* Clean up.*/ destroyCDKUSlider (widget); destroyCDKScreen (cdkscreen); endCDK(); ExitProgram (EXIT_SUCCESS); }