File: cdkscreen_ex.c

package info (click to toggle)
libcdk5 5.0.20161210-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 3,440 kB
  • ctags: 2,833
  • sloc: ansic: 32,375; sh: 4,732; makefile: 1,122; sed: 43; cpp: 41
file content (134 lines) | stat: -rw-r--r-- 3,871 bytes parent folder | download | duplicates (2)
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);
      }
   }
}