]> asedeno.scripts.mit.edu Git - 1ts-debian.git/blob - zephyr/clients/xzwrite/menu_window.c
2e11c90b561940aadd97b3482f005a5728ad7038
[1ts-debian.git] / zephyr / clients / xzwrite / menu_window.c
1 #include <stdio.h>
2 #include <X11/Intrinsic.h>
3 #include <X11/StringDefs.h>
4
5 #include <X11/Xaw/Toggle.h>
6
7 #include "xzwrite.h"
8 #include "GetString.h"
9
10 extern Widget getString, clearOnSend, closeOnSend, pings, verbose,
11      authentic, yankDest, addGlobals, classInst;
12 extern Defaults defs;
13
14 #define toggle(v)       (v = !v)
15 void menu_toggle(w)
16    Widget w;
17 {
18      if (w == clearOnSend)
19           toggle(defs.clear_on_send);
20      else if (w == closeOnSend)
21           toggle(defs.close_on_send);
22      else if (w == pings)
23           toggle(defs.ping);
24      else if (w == verbose)
25           toggle(defs.verbose);
26      else if (w == authentic)
27           toggle(defs.auth);
28      else if (w == yankDest)
29           toggle(defs.yank_dest);
30      else if (w == addGlobals)
31           toggle(defs.add_globals);
32      else if (w == classInst)
33           toggle(defs.class_inst);
34      else
35           Warning("Unknown toggle widget, ignoring.", NULL);
36 }
37 #undef toggle
38
39 #define set(w, i) XtVaSetValues(w, XtNstate, i ? True : False, NULL)
40 void menu_match_defs()
41 {
42      set(clearOnSend, defs.clear_on_send);
43      set(closeOnSend, defs.close_on_send);
44      set(pings, defs.ping);
45      set(verbose, defs.verbose);
46      set(authentic, defs.auth);
47      set(yankDest, defs.yank_dest);
48      set(addGlobals, defs.add_globals);
49      set(classInst, defs.class_inst);
50 }
51 #undef set
52
53 void menu_signature()
54 {
55      char buf[BUFSIZ];
56      int ret;
57
58      ret = GetString(getString, "Enter new signature:", defs.signature,
59                      0, buf, BUFSIZ);
60
61      if (ret != GETSTRING_ACCEPT)
62           return;
63      
64      /* XXX Is this safe? */
65      free(defs.signature);
66      defs.signature = (char *) Malloc(strlen(buf) + 1,
67                                       "while setting signature", NULL);
68      strcpy(defs.signature, buf);
69
70      /* Set the zephyr variable. */
71      ZSetVariable("zwrite-signature", buf);
72 }