~ubuntu-branches/ubuntu/trusty/netrek-client-cow/trusty

« back to all changes in this revision

Viewing changes to spopt.c

  • Committer: Bazaar Package Importer
  • Author(s): Barry deFreese
  • Date: 2008-09-26 21:44:49 UTC
  • Revision ID: james.westby@ubuntu.com-20080926214449-ylybi4033uv3lz2q
Tags: upstream-3.2.8
ImportĀ upstreamĀ versionĀ 3.2.8

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * spopt.c
 
3
 * 
 
4
 * Functions to look after the Short Packet window.
 
5
 * *
 
6
 * * $Log: spopt.c,v $
 
7
 * * Revision 1.1.1.1  1998/11/01 17:24:11  siegl
 
8
 * * COW 3.0 initial revision
 
9
 * * */
 
10
 
 
11
#include "config.h"
 
12
 
 
13
#ifdef SHORT_PACKETS
 
14
/* */
 
15
#include "copyright.h"
 
16
 
 
17
#include <stdio.h>
 
18
#include <ctype.h>
 
19
#include "Wlib.h"
 
20
#include "defs.h"
 
21
#include "struct.h"
 
22
#include "data.h"
 
23
#include "packets.h"
 
24
#include "spopt.h"
 
25
 
 
26
 
 
27
void    sprefresh(int i)
 
28
/*
 
29
 * Refresh button i in the Short Packed Window.
 
30
 * 
 
31
 * Buttons are:
 
32
 * SPK_VFIELD           - Variable short packets.
 
33
 * SPK_MFIELD           - Messages.
 
34
 * SPK_KFIELD           - Kill Messages.
 
35
 * SPK_WFIELD           - Warn Messages.
 
36
 * SPK_TFIELD           - Recieve Threshold.
 
37
 * SPK_DONE             - Done.
 
38
 */
 
39
{
 
40
  char    buf[BUFSIZ];
 
41
 
 
42
  switch (i)
 
43
    {
 
44
 
 
45
    case SPK_VFIELD:
 
46
      sprintf(buf, "%seceive variable and short packets",
 
47
              recv_short ? "R" : "Don't r");
 
48
      break;
 
49
    case SPK_MFIELD:
 
50
      sprintf(buf, "%seceive messages", recv_mesg ? "R" : "Don't r");
 
51
      break;
 
52
    case SPK_KFIELD:
 
53
      sprintf(buf, "%seceive kill messages", recv_kmesg ? "R" : "Don't r");
 
54
      break;
 
55
    case SPK_WFIELD:
 
56
      sprintf(buf, "%seceive warning messages", recv_warn ? "R" : "Don't r");
 
57
      break;
 
58
    case SPK_TFIELD:
 
59
      sprintf(buf, "Receive threshold: %s_", recv_threshold_s);
 
60
      break;
 
61
    case SPK_DONE:
 
62
      sprintf(buf, "Done");
 
63
      break;
 
64
    }
 
65
 
 
66
  W_WriteText(spWin, 0, i, textColor, buf, strlen(buf), 0);
 
67
}
 
68
 
 
69
 
 
70
void    spaction(W_Event * data)
 
71
/*
 
72
 * Handle a button press.
 
73
 */
 
74
{
 
75
  int     v;
 
76
  register int i;
 
77
  register char *cp;
 
78
 
 
79
  switch (data->y)
 
80
    {
 
81
 
 
82
    case SPK_VFIELD:
 
83
      if (data->type == W_EV_BUTTON)
 
84
        {
 
85
          if (recv_short)
 
86
            sendShortReq(SPK_VOFF);
 
87
          else
 
88
            sendShortReq(SPK_VON);
 
89
        }
 
90
      break;
 
91
 
 
92
    case SPK_MFIELD:
 
93
      if (data->type == W_EV_BUTTON)
 
94
        {
 
95
          if (recv_mesg)
 
96
            sendShortReq(SPK_MOFF);
 
97
          else
 
98
            sendShortReq(SPK_MON);
 
99
        }
 
100
      break;
 
101
 
 
102
    case SPK_KFIELD:
 
103
      if (data->type == W_EV_BUTTON)
 
104
        {
 
105
          if (recv_kmesg)
 
106
            sendShortReq(SPK_M_NOKILLS);
 
107
          else
 
108
            sendShortReq(SPK_M_KILLS);
 
109
        }
 
110
      break;
 
111
 
 
112
    case SPK_WFIELD:
 
113
      if (data->type == W_EV_BUTTON)
 
114
        {
 
115
          if (recv_warn)
 
116
            sendShortReq(SPK_M_NOWARN);
 
117
          else
 
118
            sendShortReq(SPK_M_WARN);
 
119
        }
 
120
      break;
 
121
 
 
122
    case SPK_TFIELD:
 
123
      if (data->type == W_EV_KEY)
 
124
        {
 
125
          switch (data->key)
 
126
            {
 
127
            case '\b':
 
128
            case '\177':
 
129
              cp = recv_threshold_s;
 
130
              i = strlen(cp);
 
131
              if (i > 0)
 
132
                {
 
133
                  cp += i - 1;
 
134
                  *cp = '\0';
 
135
                }
 
136
              break;
 
137
            case '\025':
 
138
            case '\030':
 
139
              recv_threshold_s[0] = '\0';
 
140
              break;
 
141
 
 
142
            default:
 
143
              if (data->key >= '0' && data->key <= '9')
 
144
                {
 
145
                  cp = recv_threshold_s;
 
146
                  i = strlen(cp);
 
147
                  if (i < 4)
 
148
                    {
 
149
                      cp += i;
 
150
                      cp[1] = '\0';
 
151
                      cp[0] = data->key;
 
152
                    }
 
153
                }
 
154
              break;
 
155
            }
 
156
          sprefresh(SPK_TFIELD);
 
157
        }
 
158
      break;
 
159
 
 
160
    case SPK_DONE:
 
161
 
 
162
      if (data->type == W_EV_BUTTON)
 
163
        {
 
164
          if (sscanf(recv_threshold_s, "%d", &v) != 1)
 
165
            strcpy(recv_threshold_s, "0");
 
166
          else if (recv_threshold != v)
 
167
            {
 
168
              recv_threshold = v;
 
169
              sendThreshold(recv_threshold);
 
170
            }
 
171
 
 
172
          spdone();
 
173
        }
 
174
      break;
 
175
 
 
176
    }
 
177
}
 
178
 
 
179
 
 
180
void    spwindow(void)
 
181
{
 
182
  register int i;
 
183
 
 
184
  for (i = 0; i < SPK_NUMFIELDS; i++)
 
185
    sprefresh(i);
 
186
 
 
187
  /* Map window */
 
188
  W_MapWindow(spWin);
 
189
}
 
190
 
 
191
 
 
192
void    spdone(void)
 
193
{
 
194
  /* Unmap window */
 
195
  W_UnmapWindow(spWin);
 
196
}
 
197
#endif