File: tst.c

package info (click to toggle)
libcdk 4.9.9-4
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 5,008 kB
  • ctags: 2,239
  • sloc: ansic: 28,664; sh: 334; makefile: 275; cpp: 42
file content (75 lines) | stat: -rw-r--r-- 1,866 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
#include <cdk.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int swapSignCB (EObjectType cdktype, void *object, void *clientData, chtype key);
CDKLABEL *GLabel	= (CDKLABEL *)NULL;
int GSign		= 1;

int main(void)
{
  CDKSCREEN    *screen	= (CDKSCREEN *)NULL;
  CDKENTRY     *entry	= (CDKENTRY *)NULL;
  CDKTEMPLATE  *temp	= (CDKTEMPLATE *)NULL;
  WINDOW       *window	= (WINDOW *)NULL;
  char         *plate	= "#####.##";
  char         *overlay	= "00000.00";
  static char  *bankName, *amount;
  float        number;
  char *mesg[10];
  char holder[100];

  window = initscr();
  screen = initCDKScreen(window);

  mesg[0] = "+";
  entry  = newCDKEntry(screen , 5, 5, NULL,"BANK   : ",
            A_NORMAL,' ',vCHAR,20,0,20,FALSE,FALSE);
  temp   = newCDKTemplate(screen , 5, 7, NULL,"AMOUNT : ",
            plate, overlay , FALSE, FALSE);
  bindCDKObject (vTEMPLATE, temp, '-', swapSignCB, NULL);
  bindCDKObject (vTEMPLATE, temp, '+', swapSignCB, NULL);
  bindCDKObject (vTEMPLATE, temp, '=', swapSignCB, NULL);

  GLabel  = newCDKLabel (screen, 30, 7, mesg, 1, FALSE, FALSE);

  drawCDKScreen (screen);

  bankName	= activateCDKEntry (entry, NULL);
  amount	= activateCDKTemplate (temp, NULL);
  strcpy (holder, bankName);

  destroyCDKLabel(GLabel);
  destroyCDKEntry(entry);
  destroyCDKScreen(screen);
  delwin(window);
  endCDK();

  number = atof (amount);
  number = (float)((float)number / (float)100) * GSign;
  printf("\n\nThe string is : %s\n", holder);
  printf("The number is : %8.2f\n", number);

  exit(0);
}

int swapSignCB (EObjectType cdktype, void *object, void *clientData, chtype key)
{
   char *mesg[3];

   if (key == '-')
   {
      GSign = -1;
      mesg[0] = "-";
   }
   else
   {
      GSign = 1;
      mesg[0] = "+";
   }

   setCDKLabelMessage (GLabel, mesg, 1);
   drawCDKLabel (GLabel, GLabel->box);
   return 0;
}