More debianization
[erwise] / erwise / Help.c
1 static char *rcsid = "$Id: Help.c,v 1.1 1992/05/18 21:43:03 tvr Exp tvr $";
2
3 #include "Includes.h"
4
5 static struct anchorstr_st {
6     char *action, *address;
7 } anchortable[] =
8
9 {
10     "PageInput", "browserwin.html#browserwindow",
11     "Search", "browserwin.html#search",
12     "Copy", "browserwin.html#copy",
13     "List", "browserwin.html#list",
14     "Print", "browserwin.html#print",
15     "Settings", "browserwin.html#settings",
16     "Close", "browserwin.html#close",
17     "Top", "browserwin.html#top",
18     "Bottom", "browserwin.html#bottom",
19     "Prev tag", "browserwin.html#prevtag",
20     "Next tag", "browserwin.html#nexttag",
21     "Home", "browserwin.html#home",
22     "Recall", "browserwin.html#recall",
23     "Back", "browserwin.html#back",
24     "Prev page", "browserwin.html#prevpage",
25     "Next page", "browserwin.html#nextpage",
26     "Close hierarchy", "browserwin.html#close_hierarchy",
27     "Controlpanel", "browserwin.html#controlpanel",
28     "Defaults", "browserwin.html#defaults",
29     "On action", "browserwin.html#on_action",
30     "Help", "browserwin.html#manual",
31     NULL, NULL
32 };
33
34 static void helponactioncb(char *actionstring);
35
36
37 void HelpOnFunctionCB(topaddress, htext, htextobject, parameter)
38 char *topaddress;
39 HText_t *htext;
40 HTextObject_t *htextobject;
41 void *parameter;
42 {
43     UiGetNextAction(helponactioncb);
44 }
45
46
47 void HelpManualCB(topaddress, htext, htextobject, parameter)
48 char *topaddress;
49 HText_t *htext;
50 HTextObject_t *htextobject;
51 void *parameter;
52 {
53     if (!FindPage(Pages, HELP_TOPLEVEL))
54         AddPage(&Pages, HELP_TOPLEVEL, (HText_t *) NULL, (Page_t *) NULL);
55
56     StartLoading(HELP_TOPLEVEL, HELP_TOPLEVEL, HELP_TOPLEVEL);
57 }
58
59
60 static void helponactioncb(actionstring)
61 char *actionstring;
62 {
63     int i;
64     char *addressstring;
65     Page_t *toppage;
66
67     if (!FindPage(Pages, HELP_TOPLEVEL)) {
68         toppage = AddPage(&Pages, HELP_TOPLEVEL, (HText_t *) NULL,
69                           (Page_t *) NULL);
70         AddPage(&toppage->Children, HELP_TOPLEVEL, (HText_t *) NULL,
71                 toppage);
72     }
73     for (i = 0; anchortable[i].action; i++) {
74         if (!strcmp(anchortable[i].action, actionstring)) {
75             addressstring = (char *) malloc(strlen(HELP_DIR) +
76                                          strlen(anchortable[i].address) +
77                                             1);
78             sprintf(addressstring, "%s%s",
79                     HELP_DIR, anchortable[i].address);
80             StartLoading(addressstring, HELP_TOPLEVEL, HELP_TOPLEVEL);
81
82             return;
83         }
84     }
85 }