190
196
"to be missing from your installation."));
196
args = g_new (Argument, 1);
198
args[0].arg_type = GIMP_PDB_INT32;
199
args[0].value.pdb_int = GIMP_RUN_INTERACTIVE;
201
plug_in_run (gimp, gimp_get_user_context (gimp), NULL,
202
proc_rec, args, 1, FALSE, TRUE, -1);
204
procedural_db_destroy_args (args, 1);
202
n_domains = gimp_plug_in_manager_get_help_domains (gimp->plug_in_manager,
206
args = gimp_procedure_get_arguments (procedure);
207
gimp_value_array_truncate (args, 5);
209
g_value_set_int (&args->values[0], GIMP_RUN_INTERACTIVE);
210
g_value_set_int (&args->values[1], n_domains);
211
gimp_value_take_stringarray (&args->values[2], help_domains, n_domains);
212
g_value_set_int (&args->values[3], n_domains);
213
gimp_value_take_stringarray (&args->values[4], help_uris, n_domains);
215
gimp_procedure_execute_async (procedure, gimp,
216
gimp_get_user_context (gimp),
219
g_value_array_free (args);
207
222
/* Check if the help browser started properly */
208
proc_rec = procedural_db_lookup (gimp, "extension_gimp_help_browser_temp");
223
procedure = gimp_pdb_lookup_procedure (gimp->pdb,
224
"extension-gimp-help-browser-temp");
212
228
gimp_help_browser_error (gimp,
213
229
_("Help browser doesn't start"),
247
263
if (gimp_dialog_run (GIMP_DIALOG (dialog)) == GTK_RESPONSE_OK)
248
264
g_object_set (gimp->config,
249
"help-browser", GIMP_HELP_BROWSER_WEB_BROWSER,
265
"help-browser", GIMP_HELP_BROWSER_WEB_BROWSER,
252
268
gtk_widget_destroy (dialog);
256
272
gimp_help_call (Gimp *gimp,
257
const gchar *procedure,
273
const gchar *procedure_name,
258
274
const gchar *help_domain,
259
275
const gchar *help_locales,
260
276
const gchar *help_id)
262
ProcRecord *proc_rec;
278
GimpProcedure *procedure;
280
/* Special case the help browser */
281
if (! strcmp (procedure_name, "extension-gimp-help-browser-temp"))
283
GValueArray *return_vals;
285
return_vals = gimp_pdb_execute_procedure_by_name (gimp->pdb,
286
gimp_get_user_context (gimp),
289
G_TYPE_STRING, help_domain,
290
G_TYPE_STRING, help_locales,
291
G_TYPE_STRING, help_id,
294
g_value_array_free (return_vals);
264
299
/* Check if a help parser is already running */
265
proc_rec = procedural_db_lookup (gimp, "extension_gimp_help_temp");
300
procedure = gimp_pdb_lookup_procedure (gimp->pdb, "extension-gimp-help-temp");
269
Argument *args = NULL;
271
gchar **help_domains = NULL;
272
gchar **help_uris = NULL;
274
proc_rec = procedural_db_lookup (gimp, "extension_gimp_help");
304
GValueArray *args = NULL;
306
gchar **help_domains = NULL;
307
gchar **help_uris = NULL;
309
procedure = gimp_pdb_lookup_procedure (gimp->pdb, "extension-gimp-help");
277
312
/* FIXME: error msg */
280
n_domains = plug_ins_help_domains (gimp, &help_domains, &help_uris);
282
args = g_new (Argument, 4);
284
args[0].arg_type = GIMP_PDB_INT32;
285
args[0].value.pdb_int = n_domains;
286
args[1].arg_type = GIMP_PDB_STRINGARRAY;
287
args[1].value.pdb_pointer = help_domains;
288
args[2].arg_type = GIMP_PDB_INT32;
289
args[2].value.pdb_int = n_domains;
290
args[3].arg_type = GIMP_PDB_STRINGARRAY;
291
args[3].value.pdb_pointer = help_uris;
293
plug_in_run (gimp, gimp_get_user_context (gimp), NULL,
294
proc_rec, args, 4, FALSE, TRUE, -1);
296
procedural_db_destroy_args (args, 4);
315
n_domains = gimp_plug_in_manager_get_help_domains (gimp->plug_in_manager,
319
args = gimp_procedure_get_arguments (procedure);
320
gimp_value_array_truncate (args, 4);
322
g_value_set_int (&args->values[0], n_domains);
323
gimp_value_take_stringarray (&args->values[1], help_domains, n_domains);
324
g_value_set_int (&args->values[2], n_domains);
325
gimp_value_take_stringarray (&args->values[3], help_uris, n_domains);
327
gimp_procedure_execute_async (procedure, gimp,
328
gimp_get_user_context (gimp),
331
g_value_array_free (args);
299
334
/* Check if the help parser started properly */
300
proc_rec = procedural_db_lookup (gimp, "extension_gimp_help_temp");
335
procedure = gimp_pdb_lookup_procedure (gimp->pdb, "extension-gimp-help-temp");
304
Argument *return_vals;
339
GValueArray *return_vals;
307
341
#ifdef GIMP_HELP_DEBUG
308
342
g_printerr ("Calling help via %s: %s %s %s\n",
310
344
help_domain ? help_domain : "(null)",
311
345
help_locales ? help_locales : "(null)",
312
346
help_id ? help_id : "(null)");
316
procedural_db_run_proc (gimp,
317
gimp_get_user_context (gimp),
319
"extension_gimp_help_temp",
321
GIMP_PDB_STRING, procedure,
322
GIMP_PDB_STRING, help_domain,
323
GIMP_PDB_STRING, help_locales,
324
GIMP_PDB_STRING, help_id,
349
return_vals = gimp_pdb_execute_procedure_by_name (gimp->pdb,
350
gimp_get_user_context (gimp),
352
"extension-gimp-help-temp",
353
G_TYPE_STRING, procedure_name,
354
G_TYPE_STRING, help_domain,
355
G_TYPE_STRING, help_locales,
356
G_TYPE_STRING, help_id,
327
procedural_db_destroy_args (return_vals, n_return_vals);
359
g_value_array_free (return_vals);
332
364
gimp_help_get_locales (GimpGuiConfig *config)
334
const gchar *language;
337
366
if (config->help_locales && strlen (config->help_locales))
338
367
return g_strdup (config->help_locales);
340
locale = gimp_get_default_language ("LC_MESSAGES");
342
/* Simulate the behaviour of GNU gettext() and look
343
* at LANGUAGE if the locale is not the "C" locale.
345
language = g_getenv ("LANGUAGE");
346
if (language && (locale == NULL || strcmp (locale, "C")))
349
locale = g_strdup (language);
369
return g_strjoinv (":", (gchar **) g_get_language_names ());