summaryrefslogtreecommitdiff
path: root/dist/cdk/examples/mentry_ex.c
blob: e586617290d60b97f8cf8cd08c747807a1062541 (plain)
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
#include <cdk.h>

#ifdef HAVE_XCURSES
char *XCursesProgramName="mentry_ex";
#endif

int main (int argc GCC_UNUSED, char **argv)
{
   /* Declare variables. */
   CDKSCREEN *cdkscreen = 0;
   CDKMENTRY *filename	= 0;
   WINDOW *cursesWin	= 0;
   char *info		= 0;
   char *label		= "</R>Message";
   char *title		= "<C></5>Enter a message.<!5>";
   int exitType;

   /* Set up CDK. */ 
   cursesWin = initscr();
   cdkscreen = initCDKScreen (cursesWin);

   /* Start CDK Colors.*/
   initCDKColor();

   /* Set up the multi-line entry field. */
   filename	= newCDKMentry (cdkscreen, CENTER, CENTER,
			title, label, A_BOLD, '.', vMIXED,
			20, 5, 20, 0, TRUE, TRUE);

   /* Is the object null? */
   if (filename == 0)
   {
      /* Shut down CDK. */
      destroyCDKScreen (cdkscreen);
      endCDK();

      /* Print out a message. */
      printf ("Oops. Can not create CDK object. Is the window too small?\n");
      exit (1);
   }

   /* Draw the CDK screen. */
   refreshCDKScreen (cdkscreen);

   /* Set what ever was given from the command line. */
   setCDKMentry (filename, argv[1], 0, TRUE);

   /* Activate this thing. */
   activateCDKMentry (filename, 0);
   exitType = filename->exitType;
   if (exitType == vNORMAL)
   {
      info = copyChar (filename->info);
   }

   /* Clean up. */
   destroyCDKMentry (filename);
   destroyCDKScreen (cdkscreen);
   delwin (cursesWin);
   endCDK();

   /* Spit out the results. */
   if (exitType == vESCAPE_HIT)
   {
      printf ("You pressed escape.\n");
   }
   else if (exitType == vNORMAL)
   {
      printf ("Your message was: <%s>\n", info);
   }
   free(info);
   exit (0);
}