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 (91 lines) | stat: -rw-r--r-- 2,146 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
/*
 * This is an example program for use with the libsx library.  This
 * example shows how to implement a simple file requestor.  The main
 * window has two button widgets: a load button and a quit button.  The load
 * button will open a file requestor window where the user can select a
 * file from a scrollable list.  The program will block until the user
 * has selected a file or cancelled the load at which point the appropriate
 * action can be taken.
 *
 * -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 "freq.h"		/* file requestor header */

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

/* callback protos */
void quit(Widget w, void *data);
void load(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("Load",     load,   data);
  w[1]  = MakeButton("Quit!",    quit,   data);

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

  ShowDisplay();
  
  GetStandardColors();

  return argc;
}

/*
 * load() - Callback function for the load button.  This just calls
 *          SimpleGetFile() to get a file name
 */
void load(Widget w, void *data)
{
  char *fname;
  
  fname = SimpleGetFile(NULL);
  if(fname)
    printf("The file \"%s\" was selected\n", fname);
  else
    printf("Load Cancelled\n");
}

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