From 18091ec1a9ab94db511ff0c01e590e1a8aa533f9 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Thu, 24 Jan 2013 20:00:09 +0000 Subject: Add basic context-sensitive help. --- amiga/help.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100755 amiga/help.c (limited to 'amiga/help.c') diff --git a/amiga/help.c b/amiga/help.c new file mode 100755 index 000000000..214e59d96 --- /dev/null +++ b/amiga/help.c @@ -0,0 +1,66 @@ +/* + * Copyright 2013 Chris Young + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "amiga/help.h" + +/* AmigaGuide class */ +#include "amiga/agclass/amigaguide_class.h" + +Class *AmigaGuideClass = NULL; +Object *AmigaGuideObject = NULL; + +/* This array needs to match the enum in help.h */ +STRPTR context_nodes[] = { + "Main", + "GUI", + "Prefs", + NULL +}; + +void ami_help_init(struct Screen *screen) +{ + AmigaGuideClass = initAGClass(); + + AmigaGuideObject = NewObject(AmigaGuideClass, NULL, + AMIGAGUIDE_Name, "PROGDIR:NetSurf.guide", + AMIGAGUIDE_BaseName, "NetSurf", + AMIGAGUIDE_Screen, screen, + AMIGAGUIDE_ContextArray, context_nodes, + AMIGAGUIDE_ContextID, AMI_HELP_MAIN, + TAG_DONE); +} + +void ami_help_open(ULONG node) +{ + SetAttrs(AmigaGuideObject, AMIGAGUIDE_ContextID, node, TAG_DONE); + IDoMethod(AmigaGuideObject, AGM_OPEN, NULL); +} + +void ami_help_free(void) +{ + if (AmigaGuideObject) DisposeObject(AmigaGuideObject); + if (AmigaGuideClass) freeAGClass(AmigaGuideClass); + + AmigaGuideObject = NULL; + AmigaGuideClass = NULL; +} + +void ami_help_new_screen(struct Screen *screen) +{ + SetAttrs(AmigaGuideObject, AMIGAGUIDE_Screen, screen, TAG_DONE); +} -- cgit v1.2.3