1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
/* $Id: cdkscreen_ex.c,v 1.9 2016/12/04 15:22:16 tom Exp $ */
#include <cdk_test.h>
/*
* This demonstrates how to create four different Cdk
* screens and flip between them.
*/
#ifdef HAVE_XCURSES
char *XCursesProgramName = "cdkscreen_ex";
#endif
int main (void)
{
CDKSCREEN *cdkScreen1, *cdkScreen2;
CDKSCREEN *cdkScreen3, *cdkScreen4;
CDKSCREEN *cdkScreen5;
CDKLABEL *label1, *label2;
CDKLABEL *label3, *label4;
CDKDIALOG *dialog;
const char *title1Mesg[4];
const char *title2Mesg[4];
const char *title3Mesg[4];
const char *title4Mesg[4];
const char *dialogMesg[10];
const char *buttons[] =
{
"Continue",
"Exit"
};
/* Create the screens. */
cdkScreen1 = initCDKScreen (NULL);
cdkScreen2 = initCDKScreen (stdscr);
cdkScreen3 = initCDKScreen (stdscr);
cdkScreen4 = initCDKScreen (stdscr);
cdkScreen5 = initCDKScreen (stdscr);
/* Create the first screen. */
title1Mesg[0] = "<C><#HL(30)>";
title1Mesg[1] = "<C></R>This is the first screen.";
title1Mesg[2] = "<C>Hit space to go to the next screen";
title1Mesg[3] = "<C><#HL(30)>";
label1 = newCDKLabel (cdkScreen1, CENTER, TOP,
(CDK_CSTRING2)title1Mesg, 4,
FALSE, FALSE);
/* Create the second screen. */
title2Mesg[0] = "<C><#HL(30)>";
title2Mesg[1] = "<C></R>This is the second screen.";
title2Mesg[2] = "<C>Hit space to go to the next screen";
title2Mesg[3] = "<C><#HL(30)>";
label2 = newCDKLabel (cdkScreen2, RIGHT, CENTER,
(CDK_CSTRING2)title2Mesg, 4,
FALSE, FALSE);
/* Create the third screen. */
title3Mesg[0] = "<C><#HL(30)>";
title3Mesg[1] = "<C></R>This is the third screen.";
title3Mesg[2] = "<C>Hit space to go to the next screen";
title3Mesg[3] = "<C><#HL(30)>";
label3 = newCDKLabel (cdkScreen3, CENTER, BOTTOM,
(CDK_CSTRING2)title3Mesg, 4,
FALSE, FALSE);
/* Create the fourth screen. */
title4Mesg[0] = "<C><#HL(30)>";
title4Mesg[1] = "<C></R>This is the fourth screen.";
title4Mesg[2] = "<C>Hit space to go to the next screen";
title4Mesg[3] = "<C><#HL(30)>";
label4 = newCDKLabel (cdkScreen4, LEFT, CENTER,
(CDK_CSTRING2)title4Mesg, 4,
FALSE, FALSE);
/* Create the fifth screen. */
dialogMesg[0] = "<C><#HL(30)>";
dialogMesg[1] = "<C>Screen 5";
dialogMesg[2] = "<C>This is the last of 5 screens. If you want";
dialogMesg[3] = "<C>to continue press the 'Continue' button.";
dialogMesg[4] = "<C>Otherwise press the 'Exit' button";
dialogMesg[5] = "<C><#HL(30)>";
dialog = newCDKDialog (cdkScreen5, CENTER, CENTER,
(CDK_CSTRING2)dialogMesg, 6,
(CDK_CSTRING2)buttons, 2,
A_REVERSE, TRUE, TRUE, FALSE);
/* Do this for ever... (almost) */
for (;;)
{
int answer;
/* Draw the first screen. */
drawCDKScreen (cdkScreen1);
waitCDKLabel (label1, ' ');
eraseCDKScreen (cdkScreen1);
/* Draw the second screen. */
drawCDKScreen (cdkScreen2);
waitCDKLabel (label2, ' ');
eraseCDKScreen (cdkScreen2);
/* Draw the third screen. */
drawCDKScreen (cdkScreen3);
waitCDKLabel (label3, ' ');
eraseCDKScreen (cdkScreen3);
/* Draw the fourth screen. */
drawCDKScreen (cdkScreen4);
waitCDKLabel (label4, ' ');
eraseCDKScreen (cdkScreen4);
/* Draw the fourth screen. */
drawCDKScreen (cdkScreen5);
answer = activateCDKDialog (dialog, 0);
/* Check the users answer. */
if (answer == 1)
{
destroyCDKLabel (label1);
destroyCDKLabel (label2);
destroyCDKLabel (label3);
destroyCDKLabel (label4);
destroyCDKDialog (dialog);
destroyCDKScreen (cdkScreen1);
destroyCDKScreen (cdkScreen2);
destroyCDKScreen (cdkScreen3);
destroyCDKScreen (cdkScreen4);
destroyCDKScreen (cdkScreen5);
endCDK ();
ExitProgram (EXIT_SUCCESS);
}
}
}
|