/* $Id: scale_ex.c,v 1.11 2016/12/04 15:22:16 tom Exp $ */ #include #ifdef HAVE_XCURSES char *XCursesProgramName = "scale_ex"; #endif /* * This program demonstrates the Cdk scale widget. */ int main (int argc, char **argv) { /* *INDENT-EQLS* */ CDKSCREEN *cdkscreen = 0; CDKSCALE *widget = 0; const char *title = "Select a value"; const char *label = "Current value"; char temp[256]; const char *mesg[5]; int selection; CDK_PARAMS params; int high; int inc; int 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', 0); cdkscreen = initCDKScreen (NULL); /* Start CDK Colors. */ initCDKColor (); /* Create the widget. */ widget = newCDKScale (cdkscreen, CDKparamValue (¶ms, 'X', CENTER), CDKparamValue (¶ms, 'Y', CENTER), title, label, A_NORMAL, CDKparamNumber2 (¶ms, 'w', 5), 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 (); printf ("Cannot make the widget. Is the window too small?\n"); ExitProgram (EXIT_FAILURE); } /* Activate the widget. */ selection = activateCDKScale (widget, 0); /* Check the exit value of the widget. */ if (widget->exitType == vESCAPE_HIT) { mesg[0] = "You hit escape. No value selected."; mesg[1] = "", mesg[2] = "Press any key to continue."; popupLabel (cdkscreen, (CDK_CSTRING2) mesg, 3); } else if (widget->exitType == vNORMAL) { sprintf (temp, "You selected %d", selection); mesg[0] = temp; mesg[1] = "", mesg[2] = "Press any key to continue."; popupLabel (cdkscreen, (CDK_CSTRING2) mesg, 3); } /* Clean up. */ destroyCDKScale (widget); destroyCDKScreen (cdkscreen); endCDK (); ExitProgram (EXIT_SUCCESS); }