File: main.c

package info (click to toggle)
libsx 2.08-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,732 kB
  • sloc: ansic: 8,713; sh: 8,603; makefile: 63
file content (98 lines) | stat: -rw-r--r-- 2,336 bytes parent folder | download | duplicates (4)
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
/*
 * -Allen Martin (amartin@wpi.wpi.edu)
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "libsx.h"		/* gets us in the door with libsx */
#include "multireq.h"

int init_display(int argc, char **argv, void *data);

/* callback protos */
void edit(Widget w, void *data);
void quit(Widget w, void *data);


int main(int argc, char **argv)
{
  argc = init_display(argc, argv, NULL);  /* setup the display */
  if (argc == 0)
    exit(0);

  MainLoop();                                /* go right into the main loop */
  return 0;
}


/* This function sets up the display.  For any kind of a real program, 
 * you'll probably want to save the values returned by the MakeXXX calls
 * so that you have a way to refer to the display objects you have 
 * created (like if you have more than one drawing area, and want to
 * draw into both of them).
 */
int init_display(int argc, char **argv, void *data)
{
  Widget w[2];

  argc = OpenDisplay(argc, argv);
  if (argc == FALSE)
    return argc;

  w[0]  = MakeButton("Edit",     edit,   data);
  w[1]  = MakeButton("Quit!",    quit,   data);

  SetWidgetPos(w[1], PLACE_RIGHT, w[0], NO_CARE, NULL);

  ShowDisplay();
  
  GetStandardColors();

  return argc;
}

/*
 */
void edit(Widget w, void *data)
{
  static char name[1024] = "Computer Geek";
  static char address[1024] = "Fuller Labs, WPI";
  static int number=123;
  static float height=456.789;
  
  TagList tags[] = {
    {TAG_WINDOW_LABEL, "Input Window",                    NULL,    TAG_NOINIT},
    {TAG_STRING,       "Name:",                           name,    TAG_INIT},
    {TAG_LABEL,        "Please Enter your Address below", NULL,    TAG_NOINIT},
    {TAG_STRING,       "Address:",                        address, TAG_INIT},
    {TAG_INT,          "Number:",                         &number, TAG_INIT},
    {TAG_FLOAT,        "Height:",                         &height, TAG_INIT},
    {TAG_DONE,         NULL,                              NULL,    TAG_NOINIT}
  };

  if(GetValues(tags))
    printf("Cancelled\n");
  else
    {
      printf("Name: %s\n", name);
      printf("Address: %s\n", address); 
      printf("Number: %d\n", number); 
      printf("Height: %f\n", height); 
    }
}

/*
 * quit() - Callback function for the quit button
 */
void quit(Widget w, void *data)
{
  exit(0);
}