2003-08-28 Michael Natterer <mitch@gimp.org> Completed the new help infrastructure. Needs some polishing but basically works as proposed: * tools/pdbgen/pdb/plug_in.pdb: changed gimp_plugin_help_register() to take a "domain_name" (which is the XML namespace) and a "domain_uri" (which is the root of the plug-in's help pages). * tools/pdbgen/pdb/help.pdb: changed gimp_help() to take help_id instead of a non-UTF-8 help_path. * app/plug-in/plug-in-def.[ch] * app/plug-in/plug-in-proc.[ch] * app/plug-in/plug-in-rc.c * app/plug-in/plug-ins.[ch]: remember the plug-ins' help_domain and help_uri instead of just help_path. Changed all plug-in APIs to reflect this change. * app/widgets/gimphelp.[ch]: on helpbrowser startup, pass it the whole list of help domains. The actual help request is now made using the browser's temporary procedure. * app/core/gimp.h * app/gui/file-open-menu.c * app/gui/file-save-menu.c * app/gui/plug-in-menus.[ch] * app/widgets/gimpitemfactory.c: changed accordingly. * app/pdb/help_cmds.c * app/pdb/plug_in_cmds.c * libgimp/gimphelp_pdb.[ch] * libgimp/gimpplugin_pdb.[ch]: regenerated. Changed the help broser to load the pages according to the new system: - moved the browser window stuff to dialog.[ch] - moved help domain handling to domain.[ch] - added gimp-help.xml parsing to domain.c - tons of cleanup * plug-ins/helpbrowser/Makefile.am * plug-ins/helpbrowser/dialog.[ch] * plug-ins/helpbrowser/domain.[ch]: new files. * plug-ins/helpbrowser/helpbrowser.c: chopped.
93 lines
2.6 KiB
C
93 lines
2.6 KiB
C
/* The GIMP -- an image manipulation program
|
|
* Copyright (C) 1995-2003 Spencer Kimball and Peter Mattis
|
|
*
|
|
* This program 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; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program 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, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
/* NOTE: This file is autogenerated by pdbgen.pl. */
|
|
|
|
#include "config.h"
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <glib-object.h>
|
|
|
|
#include "libgimpbase/gimpbasetypes.h"
|
|
|
|
#include "pdb-types.h"
|
|
#include "procedural_db.h"
|
|
|
|
#include "plug-in/plug-ins.h"
|
|
#include "widgets/gimphelp.h"
|
|
|
|
static ProcRecord help_proc;
|
|
|
|
void
|
|
register_help_procs (Gimp *gimp)
|
|
{
|
|
procedural_db_register (gimp, &help_proc);
|
|
}
|
|
|
|
static Argument *
|
|
help_invoker (Gimp *gimp,
|
|
Argument *args)
|
|
{
|
|
gboolean success = TRUE;
|
|
gchar *prog_name;
|
|
gchar *help_id;
|
|
|
|
prog_name = (gchar *) args[0].value.pdb_pointer;
|
|
if (prog_name == NULL)
|
|
success = FALSE;
|
|
|
|
help_id = (gchar *) args[1].value.pdb_pointer;
|
|
if (help_id == NULL || !g_utf8_validate (help_id, -1, NULL))
|
|
success = FALSE;
|
|
|
|
if (success)
|
|
gimp_help (gimp, plug_ins_help_domain (gimp, prog_name, NULL), help_id);
|
|
|
|
return procedural_db_return_args (&help_proc, success);
|
|
}
|
|
|
|
static ProcArg help_inargs[] =
|
|
{
|
|
{
|
|
GIMP_PDB_STRING,
|
|
"prog_name",
|
|
"The plug-in's executable name or an empty string"
|
|
},
|
|
{
|
|
GIMP_PDB_STRING,
|
|
"help_id",
|
|
"The help page's ID"
|
|
}
|
|
};
|
|
|
|
static ProcRecord help_proc =
|
|
{
|
|
"gimp_help",
|
|
"Load a help page.",
|
|
"This procedure loads the specified help page into the helpbrowser or what ever is configured as help viewer. The location of the help page is given relative to the help rootdir. The help rootdir is determined from the prog_name: if prog_name is NULL, we use the help rootdir of the main GIMP installation, if the plug-in's full executable name is passed as prog_name, the GIMP will use this information to look up the help path the plug-in has registered before with gimp-plugin-help-register.",
|
|
"Michael Natterer <mitch@gimp.org>",
|
|
"Michael Natterer <mitch@gimp.org>",
|
|
"2000",
|
|
GIMP_INTERNAL,
|
|
2,
|
|
help_inargs,
|
|
0,
|
|
NULL,
|
|
{ { help_invoker } }
|
|
};
|