code formating paranoia.
2001-07-29 Michael Natterer <mitch@gimp.org> * app/gimphelp.c: code formating paranoia. * app/core/gimp.c: one more g_signal_connect(). * app/tools/gimpmeasuretool.c: a gtk_widget_show() was optimized away :) * plug-ins/Makefile.am: re-enabled script-fu and dbbrowser. * plug-ins/dbbrowser/dbbrowser_utils.[ch] * plug-ins/script-fu/script-fu-console.[ch] * plug-ins/script-fu/script-fu-scripts.c * plug-ins/script-fu/script-fu-text-console.[ch] * plug-ins/script-fu/script-fu.c: use GtkTextBuffer/GtkTextView all over the place. GUI code cleanup in the dbbrowser and the script-fu console.
This commit is contained in:

committed by
Michael Natterer

parent
b906b3947f
commit
8d9931f719
19
ChangeLog
19
ChangeLog
@ -1,3 +1,22 @@
|
||||
2001-07-29 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/gimphelp.c: code formating paranoia.
|
||||
|
||||
* app/core/gimp.c: one more g_signal_connect().
|
||||
|
||||
* app/tools/gimpmeasuretool.c: a gtk_widget_show() was optimized
|
||||
away :)
|
||||
|
||||
* plug-ins/Makefile.am: re-enabled script-fu and dbbrowser.
|
||||
|
||||
* plug-ins/dbbrowser/dbbrowser_utils.[ch]
|
||||
* plug-ins/script-fu/script-fu-console.[ch]
|
||||
* plug-ins/script-fu/script-fu-scripts.c
|
||||
* plug-ins/script-fu/script-fu-text-console.[ch]
|
||||
* plug-ins/script-fu/script-fu.c: use GtkTextBuffer/GtkTextView
|
||||
all over the place. GUI code cleanup in the dbbrowser and
|
||||
the script-fu console.
|
||||
|
||||
2001-07-29 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/devices.c
|
||||
|
@ -570,9 +570,10 @@ gimp_create_context (Gimp *gimp,
|
||||
|
||||
gimp->context_list = g_list_prepend (gimp->context_list, context);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (context), "destroy",
|
||||
GTK_SIGNAL_FUNC (gimp_context_destroy_callback),
|
||||
gimp);
|
||||
g_signal_connect_object (G_OBJECT (context), "destroy",
|
||||
G_CALLBACK (gimp_context_destroy_callback),
|
||||
G_OBJECT (gimp),
|
||||
0);
|
||||
|
||||
return context;
|
||||
}
|
||||
|
@ -208,13 +208,13 @@ gimp_help_internal (const gchar *help_path,
|
||||
}
|
||||
|
||||
args = g_new (Argument, 4);
|
||||
args[0].arg_type = GIMP_PDB_INT32;
|
||||
args[0].value.pdb_int = RUN_INTERACTIVE;
|
||||
args[1].arg_type = GIMP_PDB_STRING;
|
||||
args[0].arg_type = GIMP_PDB_INT32;
|
||||
args[0].value.pdb_int = RUN_INTERACTIVE;
|
||||
args[1].arg_type = GIMP_PDB_STRING;
|
||||
args[1].value.pdb_pointer = (gpointer) help_path;
|
||||
args[2].arg_type = GIMP_PDB_STRING;
|
||||
args[2].arg_type = GIMP_PDB_STRING;
|
||||
args[2].value.pdb_pointer = (gpointer) current_locale;
|
||||
args[3].arg_type = GIMP_PDB_STRING;
|
||||
args[3].arg_type = GIMP_PDB_STRING;
|
||||
args[3].value.pdb_pointer = (gpointer) help_data;
|
||||
|
||||
plug_in_run (proc_rec, args, 4, FALSE, TRUE, 0);
|
||||
|
@ -814,6 +814,7 @@ measure_tool_options_new (void)
|
||||
options->use_info_window_d);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), options->use_info_window_w,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (options->use_info_window_w);
|
||||
|
||||
g_signal_connect (G_OBJECT (options->use_info_window_w), "toggled",
|
||||
G_CALLBACK (gimp_toggle_button_update),
|
||||
|
@ -208,13 +208,13 @@ gimp_help_internal (const gchar *help_path,
|
||||
}
|
||||
|
||||
args = g_new (Argument, 4);
|
||||
args[0].arg_type = GIMP_PDB_INT32;
|
||||
args[0].value.pdb_int = RUN_INTERACTIVE;
|
||||
args[1].arg_type = GIMP_PDB_STRING;
|
||||
args[0].arg_type = GIMP_PDB_INT32;
|
||||
args[0].value.pdb_int = RUN_INTERACTIVE;
|
||||
args[1].arg_type = GIMP_PDB_STRING;
|
||||
args[1].value.pdb_pointer = (gpointer) help_path;
|
||||
args[2].arg_type = GIMP_PDB_STRING;
|
||||
args[2].arg_type = GIMP_PDB_STRING;
|
||||
args[2].value.pdb_pointer = (gpointer) current_locale;
|
||||
args[3].arg_type = GIMP_PDB_STRING;
|
||||
args[3].arg_type = GIMP_PDB_STRING;
|
||||
args[3].value.pdb_pointer = (gpointer) help_data;
|
||||
|
||||
plug_in_run (proc_rec, args, 4, FALSE, TRUE, 0);
|
||||
|
@ -61,7 +61,7 @@ typedef struct
|
||||
GtkWidget *name_button;
|
||||
GtkWidget *blurb_button;
|
||||
|
||||
GtkWidget *descr_scroll;
|
||||
GtkWidget *descr_vbox;
|
||||
GtkWidget *descr_table;
|
||||
|
||||
GtkWidget *clist;
|
||||
@ -120,18 +120,7 @@ GList * proc_table = NULL;
|
||||
* console_entry != NULL => called from the script-fu-console
|
||||
*/
|
||||
GtkWidget *
|
||||
gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
gchar *scheme_proc_name,
|
||||
gchar *proc_blurb,
|
||||
gchar *proc_help,
|
||||
gchar *proc_author,
|
||||
gchar *proc_copyright,
|
||||
gchar *proc_date,
|
||||
GimpPDBProcType proc_type,
|
||||
gint nparams,
|
||||
gint nreturn_vals,
|
||||
GimpParamDef *params,
|
||||
GimpParamDef *return_vals))
|
||||
gimp_db_browser (GimpDBBrowserApplyCallback apply_callback)
|
||||
{
|
||||
dbbrowser_t* dbbrowser;
|
||||
|
||||
@ -139,6 +128,7 @@ gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
GtkWidget *searchhbox;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *scrolled_window;
|
||||
|
||||
dbbrowser = g_new (dbbrowser_t, 1);
|
||||
|
||||
@ -188,87 +178,90 @@ gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
dbbrowser);
|
||||
|
||||
/* hbox : left=list ; right=description */
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 4);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dbbrowser->dlg)->vbox),
|
||||
hbox, TRUE, TRUE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
/* left = vbox : the list and the search entry */
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 3);
|
||||
gtk_box_pack_start (GTK_BOX (hbox),
|
||||
vbox, FALSE, TRUE, 0);
|
||||
gtk_widget_show(vbox);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 4);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (vbox);
|
||||
|
||||
/* list : list in a scrolled_win */
|
||||
|
||||
dbbrowser->clist = gtk_clist_new (1);
|
||||
dbbrowser->scrolled_win = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (dbbrowser->scrolled_win),
|
||||
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_ALWAYS);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), dbbrowser->scrolled_win, TRUE, TRUE, 0);
|
||||
gtk_widget_show (dbbrowser->scrolled_win);
|
||||
|
||||
dbbrowser->clist = gtk_clist_new (1);
|
||||
gtk_widget_set_usize (dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (dbbrowser->clist),
|
||||
GTK_SELECTION_BROWSE);
|
||||
|
||||
gtk_widget_set_usize (dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||
gtk_signal_connect (GTK_OBJECT (dbbrowser->clist), "select_row",
|
||||
(GtkSignalFunc) procedure_select_callback,
|
||||
dbbrowser);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), dbbrowser->scrolled_win, TRUE, TRUE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (dbbrowser->scrolled_win), dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->scrolled_win);
|
||||
|
||||
g_signal_connect (G_OBJECT (dbbrowser->clist), "select_row",
|
||||
G_CALLBACK (procedure_select_callback),
|
||||
dbbrowser);
|
||||
|
||||
/* search entry */
|
||||
|
||||
searchhbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
searchhbox, FALSE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), searchhbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (searchhbox);
|
||||
|
||||
label = gtk_label_new (_("Search:"));
|
||||
gtk_misc_set_alignment( GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox),
|
||||
label, TRUE, TRUE, 0);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox), label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
dbbrowser->search_entry = gtk_entry_new ();
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox),
|
||||
dbbrowser->search_entry, TRUE, TRUE, 0);
|
||||
gtk_widget_show(dbbrowser->search_entry);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox), dbbrowser->search_entry,
|
||||
TRUE, TRUE, 0);
|
||||
gtk_widget_show (dbbrowser->search_entry);
|
||||
|
||||
/* right = description */
|
||||
|
||||
dbbrowser->descr_scroll = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (dbbrowser->descr_scroll),
|
||||
GTK_POLICY_ALWAYS,
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_widget_set_usize (scrolled_window, DBL_WIDTH - DBL_LIST_WIDTH, 0);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_ALWAYS);
|
||||
gtk_box_pack_start (GTK_BOX (hbox),
|
||||
dbbrowser->descr_scroll, TRUE, TRUE, 0);
|
||||
gtk_widget_set_usize (dbbrowser->descr_scroll, DBL_WIDTH - DBL_LIST_WIDTH, 0);
|
||||
gtk_widget_show (dbbrowser->descr_scroll);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), scrolled_window, TRUE, TRUE, 0);
|
||||
gtk_widget_show (scrolled_window);
|
||||
|
||||
dbbrowser->descr_vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (dbbrowser->descr_vbox), 4);
|
||||
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
dbbrowser->descr_vbox);
|
||||
gtk_widget_show (dbbrowser->descr_vbox);
|
||||
|
||||
/* now build the list */
|
||||
|
||||
gtk_widget_show (dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->dlg);
|
||||
|
||||
/* initialize the "return" value (for "apply") */
|
||||
|
||||
dbbrowser->descr_table = NULL;
|
||||
dbbrowser->selected_proc_name = NULL;
|
||||
dbbrowser->descr_table = NULL;
|
||||
dbbrowser->selected_proc_name = NULL;
|
||||
dbbrowser->selected_scheme_proc_name = NULL;
|
||||
dbbrowser->selected_proc_blurb = NULL;
|
||||
dbbrowser->selected_proc_help = NULL;
|
||||
dbbrowser->selected_proc_author = NULL;
|
||||
dbbrowser->selected_proc_copyright = NULL;
|
||||
dbbrowser->selected_proc_date = NULL;
|
||||
dbbrowser->selected_proc_type = 0;
|
||||
dbbrowser->selected_nparams = 0;
|
||||
dbbrowser->selected_nreturn_vals = 0;
|
||||
dbbrowser->selected_params = NULL;
|
||||
dbbrowser->selected_return_vals = NULL;
|
||||
dbbrowser->selected_proc_blurb = NULL;
|
||||
dbbrowser->selected_proc_help = NULL;
|
||||
dbbrowser->selected_proc_author = NULL;
|
||||
dbbrowser->selected_proc_copyright = NULL;
|
||||
dbbrowser->selected_proc_date = NULL;
|
||||
dbbrowser->selected_proc_type = 0;
|
||||
dbbrowser->selected_nparams = 0;
|
||||
dbbrowser->selected_nreturn_vals = 0;
|
||||
dbbrowser->selected_params = NULL;
|
||||
dbbrowser->selected_return_vals = NULL;
|
||||
|
||||
/* first search (all procedures) */
|
||||
dialog_search_callback (NULL, (gpointer) dbbrowser);
|
||||
@ -284,7 +277,7 @@ procedure_select_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
dbbrowser_t *dbbrowser = data;
|
||||
gchar *func;
|
||||
gchar *func;
|
||||
|
||||
g_return_val_if_fail (widget != NULL, FALSE);
|
||||
/* g_return_val_if_fail (bevent != NULL, FALSE); */
|
||||
@ -300,12 +293,15 @@ static void
|
||||
dialog_select (dbbrowser_t *dbbrowser,
|
||||
gchar *proc_name)
|
||||
{
|
||||
GtkWidget *label;
|
||||
GtkWidget *old_table;
|
||||
GtkWidget *help;
|
||||
GtkWidget *text = NULL;
|
||||
GtkWidget *vscrollbar;
|
||||
gint i, row = 0;
|
||||
GtkWidget *old_table;
|
||||
GtkWidget *label;
|
||||
GtkWidget *entry;
|
||||
GtkWidget *sep;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *text_view;
|
||||
GtkTextBuffer *text_buffer = NULL;
|
||||
gint i;
|
||||
gint row = 0;
|
||||
|
||||
g_free (dbbrowser->selected_proc_name);
|
||||
dbbrowser->selected_proc_name = g_strdup (proc_name);
|
||||
@ -333,51 +329,41 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
&(dbbrowser->selected_nreturn_vals),
|
||||
&(dbbrowser->selected_params),
|
||||
&(dbbrowser->selected_return_vals));
|
||||
|
||||
|
||||
/* save the "old" table */
|
||||
old_table = dbbrowser->descr_table;
|
||||
|
||||
dbbrowser->descr_table = gtk_table_new
|
||||
(10 + dbbrowser->selected_nparams + dbbrowser->selected_nreturn_vals,
|
||||
5, FALSE);
|
||||
dbbrowser->descr_table = gtk_table_new (10 +
|
||||
dbbrowser->selected_nparams +
|
||||
dbbrowser->selected_nreturn_vals,
|
||||
5, FALSE);
|
||||
|
||||
gtk_table_set_col_spacings (GTK_TABLE (dbbrowser->descr_table), 4);
|
||||
gtk_table_set_col_spacings (GTK_TABLE (dbbrowser->descr_table), 6);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), 0, 2);
|
||||
|
||||
/* show the name */
|
||||
|
||||
label = gtk_label_new (_("Name:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
entry = gtk_entry_new ();
|
||||
gtk_entry_set_text (GTK_ENTRY (entry), dbbrowser->selected_scheme_proc_name);
|
||||
gtk_entry_set_editable (GTK_ENTRY (entry), FALSE);
|
||||
|
||||
label = gtk_entry_new ();
|
||||
gtk_entry_set_text (GTK_ENTRY (label), dbbrowser->selected_scheme_proc_name);
|
||||
gtk_entry_set_editable (GTK_ENTRY (label), FALSE);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Name:"), 1.0, 0.5,
|
||||
entry, 3, FALSE);
|
||||
|
||||
/* show the description */
|
||||
|
||||
label = gtk_label_new (_("Blurb:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1, GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_blurb);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Blurb:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
|
||||
/* in parameters */
|
||||
@ -386,9 +372,10 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
label = gtk_label_new (_("In:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+(dbbrowser->selected_nparams),
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
0, 1, row, row + (dbbrowser->selected_nparams),
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
for (i = 0; i < dbbrowser->selected_nparams; i++)
|
||||
{
|
||||
/* name */
|
||||
@ -411,7 +398,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
3, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
|
||||
row++;
|
||||
}
|
||||
}
|
||||
@ -419,11 +406,10 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
if ((dbbrowser->selected_nparams) &&
|
||||
(dbbrowser->selected_nreturn_vals))
|
||||
{
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
}
|
||||
|
||||
@ -433,151 +419,111 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
label = gtk_label_new (_("Out:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+(dbbrowser->selected_nreturn_vals),
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
0, 1, row, row + (dbbrowser->selected_nreturn_vals),
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
for (i = 0; i < dbbrowser->selected_nreturn_vals; i++)
|
||||
{
|
||||
/* name */
|
||||
label = gtk_label_new ((dbbrowser->selected_return_vals[i]).name);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 2, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
1, 2, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
/* type */
|
||||
label = gtk_label_new (GParamType2char((dbbrowser->selected_return_vals[i]).type));
|
||||
label = gtk_label_new (GParamType2char (dbbrowser->selected_return_vals[i].type));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
2, 3, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
2, 3, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
/* description */
|
||||
label = gtk_label_new ((dbbrowser->selected_return_vals[i]).description);
|
||||
label = gtk_label_new (dbbrowser->selected_return_vals[i].description);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
3, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
3, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
row++;
|
||||
}
|
||||
}
|
||||
|
||||
if ((dbbrowser->selected_nparams) ||
|
||||
(dbbrowser->selected_nreturn_vals))
|
||||
if (dbbrowser->selected_nparams ||
|
||||
dbbrowser->selected_nreturn_vals)
|
||||
{
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
}
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
}
|
||||
|
||||
/* show the help */
|
||||
if ((dbbrowser->selected_proc_help) &&
|
||||
if (dbbrowser->selected_proc_help &&
|
||||
(strlen (dbbrowser->selected_proc_help) > 1))
|
||||
{
|
||||
label = gtk_label_new (_("Help:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
|
||||
help = gtk_table_new (2, 2, FALSE);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (help), 0, 2);
|
||||
gtk_table_set_col_spacing (GTK_TABLE (help), 0, 2);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), help,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (help);
|
||||
row++;
|
||||
|
||||
text = gtk_text_new (NULL, NULL);
|
||||
gtk_text_set_editable (GTK_TEXT (text), FALSE);
|
||||
gtk_text_set_word_wrap (GTK_TEXT (text), TRUE);
|
||||
gtk_widget_set_usize (text, -1, 60);
|
||||
gtk_table_attach (GTK_TABLE (help), text, 0, 1, 0, 1,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_widget_show (text);
|
||||
|
||||
vscrollbar = gtk_vscrollbar_new (GTK_TEXT (text)->vadj);
|
||||
gtk_table_attach (GTK_TABLE (help), vscrollbar, 1, 2, 0, 1,
|
||||
GTK_FILL, GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_widget_show (vscrollbar);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Help:"), 1.0, 0.5,
|
||||
scrolled_window, 3, FALSE);
|
||||
|
||||
text_buffer = gtk_text_buffer_new (NULL);
|
||||
text_view = gtk_text_view_new_with_buffer (text_buffer);
|
||||
g_object_unref (G_OBJECT (text_buffer));
|
||||
|
||||
gtk_text_buffer_set_text (text_buffer, dbbrowser->selected_proc_help, -1);
|
||||
|
||||
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
|
||||
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD);
|
||||
gtk_widget_set_usize (text_view, -1, 60);
|
||||
gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
|
||||
gtk_widget_show (text_view);
|
||||
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
}
|
||||
|
||||
/* show the author & the copyright */
|
||||
|
||||
label = gtk_label_new (_("Author:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_author);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_label_new (_("Date:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Author:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_date);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_label_new (_("Copyright:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Date:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_copyright);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Copyright:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
if (old_table)
|
||||
gtk_widget_destroy (old_table);
|
||||
gtk_container_remove (GTK_CONTAINER (dbbrowser->descr_vbox), old_table);
|
||||
|
||||
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (dbbrowser->descr_scroll),
|
||||
dbbrowser->descr_table);
|
||||
|
||||
/* now after the table is added to a window add the text */
|
||||
if (text != NULL)
|
||||
{
|
||||
gtk_widget_realize (text);
|
||||
gtk_text_freeze (GTK_TEXT (text));
|
||||
gtk_text_insert (GTK_TEXT (text), NULL, NULL, NULL,
|
||||
dbbrowser->selected_proc_help, -1);
|
||||
gtk_text_thaw (GTK_TEXT (text));
|
||||
}
|
||||
gtk_box_pack_start (GTK_BOX (dbbrowser->descr_vbox), dbbrowser->descr_table,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (dbbrowser->descr_table);
|
||||
}
|
||||
|
||||
@ -628,12 +574,14 @@ static void
|
||||
dialog_search_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
gchar **proc_list;
|
||||
gint num_procs;
|
||||
gint i, j;
|
||||
dbbrowser_t* dbbrowser = data;
|
||||
gchar *func_name, *label, *query_text;
|
||||
GString *query;
|
||||
gchar **proc_list;
|
||||
gint num_procs;
|
||||
gint i, j;
|
||||
dbbrowser_t *dbbrowser = data;
|
||||
gchar *func_name;
|
||||
gchar *label;
|
||||
gchar *query_text;
|
||||
GString *query;
|
||||
|
||||
gtk_clist_freeze (GTK_CLIST (dbbrowser->clist));
|
||||
gtk_clist_clear (GTK_CLIST (dbbrowser->clist));
|
||||
@ -669,8 +617,8 @@ dialog_search_callback (GtkWidget *widget,
|
||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
||||
_("DB Browser (by blurb - please wait)"));
|
||||
gimp_procedural_db_query (".*",
|
||||
gtk_entry_get_text(
|
||||
GTK_ENTRY(dbbrowser->search_entry) ),
|
||||
gtk_entry_get_text
|
||||
(GTK_ENTRY (dbbrowser->search_entry)),
|
||||
".*", ".*", ".*", ".*", ".*",
|
||||
&num_procs, &proc_list);
|
||||
}
|
||||
@ -745,7 +693,6 @@ dialog_search_callback (GtkWidget *widget,
|
||||
|
||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg), _("DB Browser"));
|
||||
gtk_clist_thaw (GTK_CLIST (dbbrowser->clist));
|
||||
|
||||
}
|
||||
|
||||
/* utils ... */
|
||||
|
@ -61,7 +61,7 @@ typedef struct
|
||||
GtkWidget *name_button;
|
||||
GtkWidget *blurb_button;
|
||||
|
||||
GtkWidget *descr_scroll;
|
||||
GtkWidget *descr_vbox;
|
||||
GtkWidget *descr_table;
|
||||
|
||||
GtkWidget *clist;
|
||||
@ -120,18 +120,7 @@ GList * proc_table = NULL;
|
||||
* console_entry != NULL => called from the script-fu-console
|
||||
*/
|
||||
GtkWidget *
|
||||
gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
gchar *scheme_proc_name,
|
||||
gchar *proc_blurb,
|
||||
gchar *proc_help,
|
||||
gchar *proc_author,
|
||||
gchar *proc_copyright,
|
||||
gchar *proc_date,
|
||||
GimpPDBProcType proc_type,
|
||||
gint nparams,
|
||||
gint nreturn_vals,
|
||||
GimpParamDef *params,
|
||||
GimpParamDef *return_vals))
|
||||
gimp_db_browser (GimpDBBrowserApplyCallback apply_callback)
|
||||
{
|
||||
dbbrowser_t* dbbrowser;
|
||||
|
||||
@ -139,6 +128,7 @@ gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
GtkWidget *searchhbox;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *scrolled_window;
|
||||
|
||||
dbbrowser = g_new (dbbrowser_t, 1);
|
||||
|
||||
@ -188,87 +178,90 @@ gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
dbbrowser);
|
||||
|
||||
/* hbox : left=list ; right=description */
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 4);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dbbrowser->dlg)->vbox),
|
||||
hbox, TRUE, TRUE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
/* left = vbox : the list and the search entry */
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 3);
|
||||
gtk_box_pack_start (GTK_BOX (hbox),
|
||||
vbox, FALSE, TRUE, 0);
|
||||
gtk_widget_show(vbox);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 4);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (vbox);
|
||||
|
||||
/* list : list in a scrolled_win */
|
||||
|
||||
dbbrowser->clist = gtk_clist_new (1);
|
||||
dbbrowser->scrolled_win = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (dbbrowser->scrolled_win),
|
||||
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_ALWAYS);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), dbbrowser->scrolled_win, TRUE, TRUE, 0);
|
||||
gtk_widget_show (dbbrowser->scrolled_win);
|
||||
|
||||
dbbrowser->clist = gtk_clist_new (1);
|
||||
gtk_widget_set_usize (dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (dbbrowser->clist),
|
||||
GTK_SELECTION_BROWSE);
|
||||
|
||||
gtk_widget_set_usize (dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||
gtk_signal_connect (GTK_OBJECT (dbbrowser->clist), "select_row",
|
||||
(GtkSignalFunc) procedure_select_callback,
|
||||
dbbrowser);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), dbbrowser->scrolled_win, TRUE, TRUE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (dbbrowser->scrolled_win), dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->scrolled_win);
|
||||
|
||||
g_signal_connect (G_OBJECT (dbbrowser->clist), "select_row",
|
||||
G_CALLBACK (procedure_select_callback),
|
||||
dbbrowser);
|
||||
|
||||
/* search entry */
|
||||
|
||||
searchhbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
searchhbox, FALSE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), searchhbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (searchhbox);
|
||||
|
||||
label = gtk_label_new (_("Search:"));
|
||||
gtk_misc_set_alignment( GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox),
|
||||
label, TRUE, TRUE, 0);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox), label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
dbbrowser->search_entry = gtk_entry_new ();
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox),
|
||||
dbbrowser->search_entry, TRUE, TRUE, 0);
|
||||
gtk_widget_show(dbbrowser->search_entry);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox), dbbrowser->search_entry,
|
||||
TRUE, TRUE, 0);
|
||||
gtk_widget_show (dbbrowser->search_entry);
|
||||
|
||||
/* right = description */
|
||||
|
||||
dbbrowser->descr_scroll = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (dbbrowser->descr_scroll),
|
||||
GTK_POLICY_ALWAYS,
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_widget_set_usize (scrolled_window, DBL_WIDTH - DBL_LIST_WIDTH, 0);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_ALWAYS);
|
||||
gtk_box_pack_start (GTK_BOX (hbox),
|
||||
dbbrowser->descr_scroll, TRUE, TRUE, 0);
|
||||
gtk_widget_set_usize (dbbrowser->descr_scroll, DBL_WIDTH - DBL_LIST_WIDTH, 0);
|
||||
gtk_widget_show (dbbrowser->descr_scroll);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), scrolled_window, TRUE, TRUE, 0);
|
||||
gtk_widget_show (scrolled_window);
|
||||
|
||||
dbbrowser->descr_vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (dbbrowser->descr_vbox), 4);
|
||||
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
dbbrowser->descr_vbox);
|
||||
gtk_widget_show (dbbrowser->descr_vbox);
|
||||
|
||||
/* now build the list */
|
||||
|
||||
gtk_widget_show (dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->dlg);
|
||||
|
||||
/* initialize the "return" value (for "apply") */
|
||||
|
||||
dbbrowser->descr_table = NULL;
|
||||
dbbrowser->selected_proc_name = NULL;
|
||||
dbbrowser->descr_table = NULL;
|
||||
dbbrowser->selected_proc_name = NULL;
|
||||
dbbrowser->selected_scheme_proc_name = NULL;
|
||||
dbbrowser->selected_proc_blurb = NULL;
|
||||
dbbrowser->selected_proc_help = NULL;
|
||||
dbbrowser->selected_proc_author = NULL;
|
||||
dbbrowser->selected_proc_copyright = NULL;
|
||||
dbbrowser->selected_proc_date = NULL;
|
||||
dbbrowser->selected_proc_type = 0;
|
||||
dbbrowser->selected_nparams = 0;
|
||||
dbbrowser->selected_nreturn_vals = 0;
|
||||
dbbrowser->selected_params = NULL;
|
||||
dbbrowser->selected_return_vals = NULL;
|
||||
dbbrowser->selected_proc_blurb = NULL;
|
||||
dbbrowser->selected_proc_help = NULL;
|
||||
dbbrowser->selected_proc_author = NULL;
|
||||
dbbrowser->selected_proc_copyright = NULL;
|
||||
dbbrowser->selected_proc_date = NULL;
|
||||
dbbrowser->selected_proc_type = 0;
|
||||
dbbrowser->selected_nparams = 0;
|
||||
dbbrowser->selected_nreturn_vals = 0;
|
||||
dbbrowser->selected_params = NULL;
|
||||
dbbrowser->selected_return_vals = NULL;
|
||||
|
||||
/* first search (all procedures) */
|
||||
dialog_search_callback (NULL, (gpointer) dbbrowser);
|
||||
@ -284,7 +277,7 @@ procedure_select_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
dbbrowser_t *dbbrowser = data;
|
||||
gchar *func;
|
||||
gchar *func;
|
||||
|
||||
g_return_val_if_fail (widget != NULL, FALSE);
|
||||
/* g_return_val_if_fail (bevent != NULL, FALSE); */
|
||||
@ -300,12 +293,15 @@ static void
|
||||
dialog_select (dbbrowser_t *dbbrowser,
|
||||
gchar *proc_name)
|
||||
{
|
||||
GtkWidget *label;
|
||||
GtkWidget *old_table;
|
||||
GtkWidget *help;
|
||||
GtkWidget *text = NULL;
|
||||
GtkWidget *vscrollbar;
|
||||
gint i, row = 0;
|
||||
GtkWidget *old_table;
|
||||
GtkWidget *label;
|
||||
GtkWidget *entry;
|
||||
GtkWidget *sep;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *text_view;
|
||||
GtkTextBuffer *text_buffer = NULL;
|
||||
gint i;
|
||||
gint row = 0;
|
||||
|
||||
g_free (dbbrowser->selected_proc_name);
|
||||
dbbrowser->selected_proc_name = g_strdup (proc_name);
|
||||
@ -333,51 +329,41 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
&(dbbrowser->selected_nreturn_vals),
|
||||
&(dbbrowser->selected_params),
|
||||
&(dbbrowser->selected_return_vals));
|
||||
|
||||
|
||||
/* save the "old" table */
|
||||
old_table = dbbrowser->descr_table;
|
||||
|
||||
dbbrowser->descr_table = gtk_table_new
|
||||
(10 + dbbrowser->selected_nparams + dbbrowser->selected_nreturn_vals,
|
||||
5, FALSE);
|
||||
dbbrowser->descr_table = gtk_table_new (10 +
|
||||
dbbrowser->selected_nparams +
|
||||
dbbrowser->selected_nreturn_vals,
|
||||
5, FALSE);
|
||||
|
||||
gtk_table_set_col_spacings (GTK_TABLE (dbbrowser->descr_table), 4);
|
||||
gtk_table_set_col_spacings (GTK_TABLE (dbbrowser->descr_table), 6);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), 0, 2);
|
||||
|
||||
/* show the name */
|
||||
|
||||
label = gtk_label_new (_("Name:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
entry = gtk_entry_new ();
|
||||
gtk_entry_set_text (GTK_ENTRY (entry), dbbrowser->selected_scheme_proc_name);
|
||||
gtk_entry_set_editable (GTK_ENTRY (entry), FALSE);
|
||||
|
||||
label = gtk_entry_new ();
|
||||
gtk_entry_set_text (GTK_ENTRY (label), dbbrowser->selected_scheme_proc_name);
|
||||
gtk_entry_set_editable (GTK_ENTRY (label), FALSE);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Name:"), 1.0, 0.5,
|
||||
entry, 3, FALSE);
|
||||
|
||||
/* show the description */
|
||||
|
||||
label = gtk_label_new (_("Blurb:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1, GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_blurb);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Blurb:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
|
||||
/* in parameters */
|
||||
@ -386,9 +372,10 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
label = gtk_label_new (_("In:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+(dbbrowser->selected_nparams),
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
0, 1, row, row + (dbbrowser->selected_nparams),
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
for (i = 0; i < dbbrowser->selected_nparams; i++)
|
||||
{
|
||||
/* name */
|
||||
@ -411,7 +398,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
3, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
|
||||
row++;
|
||||
}
|
||||
}
|
||||
@ -419,11 +406,10 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
if ((dbbrowser->selected_nparams) &&
|
||||
(dbbrowser->selected_nreturn_vals))
|
||||
{
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
}
|
||||
|
||||
@ -433,151 +419,111 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
label = gtk_label_new (_("Out:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+(dbbrowser->selected_nreturn_vals),
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
0, 1, row, row + (dbbrowser->selected_nreturn_vals),
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
for (i = 0; i < dbbrowser->selected_nreturn_vals; i++)
|
||||
{
|
||||
/* name */
|
||||
label = gtk_label_new ((dbbrowser->selected_return_vals[i]).name);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 2, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
1, 2, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
/* type */
|
||||
label = gtk_label_new (GParamType2char((dbbrowser->selected_return_vals[i]).type));
|
||||
label = gtk_label_new (GParamType2char (dbbrowser->selected_return_vals[i].type));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
2, 3, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
2, 3, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
/* description */
|
||||
label = gtk_label_new ((dbbrowser->selected_return_vals[i]).description);
|
||||
label = gtk_label_new (dbbrowser->selected_return_vals[i].description);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
3, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
3, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
row++;
|
||||
}
|
||||
}
|
||||
|
||||
if ((dbbrowser->selected_nparams) ||
|
||||
(dbbrowser->selected_nreturn_vals))
|
||||
if (dbbrowser->selected_nparams ||
|
||||
dbbrowser->selected_nreturn_vals)
|
||||
{
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
}
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
}
|
||||
|
||||
/* show the help */
|
||||
if ((dbbrowser->selected_proc_help) &&
|
||||
if (dbbrowser->selected_proc_help &&
|
||||
(strlen (dbbrowser->selected_proc_help) > 1))
|
||||
{
|
||||
label = gtk_label_new (_("Help:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
|
||||
help = gtk_table_new (2, 2, FALSE);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (help), 0, 2);
|
||||
gtk_table_set_col_spacing (GTK_TABLE (help), 0, 2);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), help,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (help);
|
||||
row++;
|
||||
|
||||
text = gtk_text_new (NULL, NULL);
|
||||
gtk_text_set_editable (GTK_TEXT (text), FALSE);
|
||||
gtk_text_set_word_wrap (GTK_TEXT (text), TRUE);
|
||||
gtk_widget_set_usize (text, -1, 60);
|
||||
gtk_table_attach (GTK_TABLE (help), text, 0, 1, 0, 1,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_widget_show (text);
|
||||
|
||||
vscrollbar = gtk_vscrollbar_new (GTK_TEXT (text)->vadj);
|
||||
gtk_table_attach (GTK_TABLE (help), vscrollbar, 1, 2, 0, 1,
|
||||
GTK_FILL, GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_widget_show (vscrollbar);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Help:"), 1.0, 0.5,
|
||||
scrolled_window, 3, FALSE);
|
||||
|
||||
text_buffer = gtk_text_buffer_new (NULL);
|
||||
text_view = gtk_text_view_new_with_buffer (text_buffer);
|
||||
g_object_unref (G_OBJECT (text_buffer));
|
||||
|
||||
gtk_text_buffer_set_text (text_buffer, dbbrowser->selected_proc_help, -1);
|
||||
|
||||
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
|
||||
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD);
|
||||
gtk_widget_set_usize (text_view, -1, 60);
|
||||
gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
|
||||
gtk_widget_show (text_view);
|
||||
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
}
|
||||
|
||||
/* show the author & the copyright */
|
||||
|
||||
label = gtk_label_new (_("Author:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_author);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_label_new (_("Date:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Author:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_date);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_label_new (_("Copyright:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Date:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_copyright);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Copyright:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
if (old_table)
|
||||
gtk_widget_destroy (old_table);
|
||||
gtk_container_remove (GTK_CONTAINER (dbbrowser->descr_vbox), old_table);
|
||||
|
||||
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (dbbrowser->descr_scroll),
|
||||
dbbrowser->descr_table);
|
||||
|
||||
/* now after the table is added to a window add the text */
|
||||
if (text != NULL)
|
||||
{
|
||||
gtk_widget_realize (text);
|
||||
gtk_text_freeze (GTK_TEXT (text));
|
||||
gtk_text_insert (GTK_TEXT (text), NULL, NULL, NULL,
|
||||
dbbrowser->selected_proc_help, -1);
|
||||
gtk_text_thaw (GTK_TEXT (text));
|
||||
}
|
||||
gtk_box_pack_start (GTK_BOX (dbbrowser->descr_vbox), dbbrowser->descr_table,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (dbbrowser->descr_table);
|
||||
}
|
||||
|
||||
@ -628,12 +574,14 @@ static void
|
||||
dialog_search_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
gchar **proc_list;
|
||||
gint num_procs;
|
||||
gint i, j;
|
||||
dbbrowser_t* dbbrowser = data;
|
||||
gchar *func_name, *label, *query_text;
|
||||
GString *query;
|
||||
gchar **proc_list;
|
||||
gint num_procs;
|
||||
gint i, j;
|
||||
dbbrowser_t *dbbrowser = data;
|
||||
gchar *func_name;
|
||||
gchar *label;
|
||||
gchar *query_text;
|
||||
GString *query;
|
||||
|
||||
gtk_clist_freeze (GTK_CLIST (dbbrowser->clist));
|
||||
gtk_clist_clear (GTK_CLIST (dbbrowser->clist));
|
||||
@ -669,8 +617,8 @@ dialog_search_callback (GtkWidget *widget,
|
||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
||||
_("DB Browser (by blurb - please wait)"));
|
||||
gimp_procedural_db_query (".*",
|
||||
gtk_entry_get_text(
|
||||
GTK_ENTRY(dbbrowser->search_entry) ),
|
||||
gtk_entry_get_text
|
||||
(GTK_ENTRY (dbbrowser->search_entry)),
|
||||
".*", ".*", ".*", ".*", ".*",
|
||||
&num_procs, &proc_list);
|
||||
}
|
||||
@ -745,7 +693,6 @@ dialog_search_callback (GtkWidget *widget,
|
||||
|
||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg), _("DB Browser"));
|
||||
gtk_clist_thaw (GTK_CLIST (dbbrowser->clist));
|
||||
|
||||
}
|
||||
|
||||
/* utils ... */
|
||||
|
@ -30,8 +30,8 @@ EXTRA_DIST = \
|
||||
|
||||
SUBDIRS = \
|
||||
libgck \
|
||||
## dbbrowser \
|
||||
## script-fu \
|
||||
dbbrowser \
|
||||
script-fu \
|
||||
## $(GIMP_PERL) \
|
||||
FractalExplorer \
|
||||
Lighting \
|
||||
|
@ -61,7 +61,7 @@ typedef struct
|
||||
GtkWidget *name_button;
|
||||
GtkWidget *blurb_button;
|
||||
|
||||
GtkWidget *descr_scroll;
|
||||
GtkWidget *descr_vbox;
|
||||
GtkWidget *descr_table;
|
||||
|
||||
GtkWidget *clist;
|
||||
@ -120,18 +120,7 @@ GList * proc_table = NULL;
|
||||
* console_entry != NULL => called from the script-fu-console
|
||||
*/
|
||||
GtkWidget *
|
||||
gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
gchar *scheme_proc_name,
|
||||
gchar *proc_blurb,
|
||||
gchar *proc_help,
|
||||
gchar *proc_author,
|
||||
gchar *proc_copyright,
|
||||
gchar *proc_date,
|
||||
GimpPDBProcType proc_type,
|
||||
gint nparams,
|
||||
gint nreturn_vals,
|
||||
GimpParamDef *params,
|
||||
GimpParamDef *return_vals))
|
||||
gimp_db_browser (GimpDBBrowserApplyCallback apply_callback)
|
||||
{
|
||||
dbbrowser_t* dbbrowser;
|
||||
|
||||
@ -139,6 +128,7 @@ gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
GtkWidget *searchhbox;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *scrolled_window;
|
||||
|
||||
dbbrowser = g_new (dbbrowser_t, 1);
|
||||
|
||||
@ -188,87 +178,90 @@ gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
dbbrowser);
|
||||
|
||||
/* hbox : left=list ; right=description */
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 4);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dbbrowser->dlg)->vbox),
|
||||
hbox, TRUE, TRUE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
/* left = vbox : the list and the search entry */
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 3);
|
||||
gtk_box_pack_start (GTK_BOX (hbox),
|
||||
vbox, FALSE, TRUE, 0);
|
||||
gtk_widget_show(vbox);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 4);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (vbox);
|
||||
|
||||
/* list : list in a scrolled_win */
|
||||
|
||||
dbbrowser->clist = gtk_clist_new (1);
|
||||
dbbrowser->scrolled_win = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (dbbrowser->scrolled_win),
|
||||
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_ALWAYS);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), dbbrowser->scrolled_win, TRUE, TRUE, 0);
|
||||
gtk_widget_show (dbbrowser->scrolled_win);
|
||||
|
||||
dbbrowser->clist = gtk_clist_new (1);
|
||||
gtk_widget_set_usize (dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (dbbrowser->clist),
|
||||
GTK_SELECTION_BROWSE);
|
||||
|
||||
gtk_widget_set_usize (dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||
gtk_signal_connect (GTK_OBJECT (dbbrowser->clist), "select_row",
|
||||
(GtkSignalFunc) procedure_select_callback,
|
||||
dbbrowser);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), dbbrowser->scrolled_win, TRUE, TRUE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (dbbrowser->scrolled_win), dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->scrolled_win);
|
||||
|
||||
g_signal_connect (G_OBJECT (dbbrowser->clist), "select_row",
|
||||
G_CALLBACK (procedure_select_callback),
|
||||
dbbrowser);
|
||||
|
||||
/* search entry */
|
||||
|
||||
searchhbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
searchhbox, FALSE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), searchhbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (searchhbox);
|
||||
|
||||
label = gtk_label_new (_("Search:"));
|
||||
gtk_misc_set_alignment( GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox),
|
||||
label, TRUE, TRUE, 0);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox), label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
dbbrowser->search_entry = gtk_entry_new ();
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox),
|
||||
dbbrowser->search_entry, TRUE, TRUE, 0);
|
||||
gtk_widget_show(dbbrowser->search_entry);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox), dbbrowser->search_entry,
|
||||
TRUE, TRUE, 0);
|
||||
gtk_widget_show (dbbrowser->search_entry);
|
||||
|
||||
/* right = description */
|
||||
|
||||
dbbrowser->descr_scroll = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (dbbrowser->descr_scroll),
|
||||
GTK_POLICY_ALWAYS,
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_widget_set_usize (scrolled_window, DBL_WIDTH - DBL_LIST_WIDTH, 0);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_ALWAYS);
|
||||
gtk_box_pack_start (GTK_BOX (hbox),
|
||||
dbbrowser->descr_scroll, TRUE, TRUE, 0);
|
||||
gtk_widget_set_usize (dbbrowser->descr_scroll, DBL_WIDTH - DBL_LIST_WIDTH, 0);
|
||||
gtk_widget_show (dbbrowser->descr_scroll);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), scrolled_window, TRUE, TRUE, 0);
|
||||
gtk_widget_show (scrolled_window);
|
||||
|
||||
dbbrowser->descr_vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (dbbrowser->descr_vbox), 4);
|
||||
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
dbbrowser->descr_vbox);
|
||||
gtk_widget_show (dbbrowser->descr_vbox);
|
||||
|
||||
/* now build the list */
|
||||
|
||||
gtk_widget_show (dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->dlg);
|
||||
|
||||
/* initialize the "return" value (for "apply") */
|
||||
|
||||
dbbrowser->descr_table = NULL;
|
||||
dbbrowser->selected_proc_name = NULL;
|
||||
dbbrowser->descr_table = NULL;
|
||||
dbbrowser->selected_proc_name = NULL;
|
||||
dbbrowser->selected_scheme_proc_name = NULL;
|
||||
dbbrowser->selected_proc_blurb = NULL;
|
||||
dbbrowser->selected_proc_help = NULL;
|
||||
dbbrowser->selected_proc_author = NULL;
|
||||
dbbrowser->selected_proc_copyright = NULL;
|
||||
dbbrowser->selected_proc_date = NULL;
|
||||
dbbrowser->selected_proc_type = 0;
|
||||
dbbrowser->selected_nparams = 0;
|
||||
dbbrowser->selected_nreturn_vals = 0;
|
||||
dbbrowser->selected_params = NULL;
|
||||
dbbrowser->selected_return_vals = NULL;
|
||||
dbbrowser->selected_proc_blurb = NULL;
|
||||
dbbrowser->selected_proc_help = NULL;
|
||||
dbbrowser->selected_proc_author = NULL;
|
||||
dbbrowser->selected_proc_copyright = NULL;
|
||||
dbbrowser->selected_proc_date = NULL;
|
||||
dbbrowser->selected_proc_type = 0;
|
||||
dbbrowser->selected_nparams = 0;
|
||||
dbbrowser->selected_nreturn_vals = 0;
|
||||
dbbrowser->selected_params = NULL;
|
||||
dbbrowser->selected_return_vals = NULL;
|
||||
|
||||
/* first search (all procedures) */
|
||||
dialog_search_callback (NULL, (gpointer) dbbrowser);
|
||||
@ -284,7 +277,7 @@ procedure_select_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
dbbrowser_t *dbbrowser = data;
|
||||
gchar *func;
|
||||
gchar *func;
|
||||
|
||||
g_return_val_if_fail (widget != NULL, FALSE);
|
||||
/* g_return_val_if_fail (bevent != NULL, FALSE); */
|
||||
@ -300,12 +293,15 @@ static void
|
||||
dialog_select (dbbrowser_t *dbbrowser,
|
||||
gchar *proc_name)
|
||||
{
|
||||
GtkWidget *label;
|
||||
GtkWidget *old_table;
|
||||
GtkWidget *help;
|
||||
GtkWidget *text = NULL;
|
||||
GtkWidget *vscrollbar;
|
||||
gint i, row = 0;
|
||||
GtkWidget *old_table;
|
||||
GtkWidget *label;
|
||||
GtkWidget *entry;
|
||||
GtkWidget *sep;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *text_view;
|
||||
GtkTextBuffer *text_buffer = NULL;
|
||||
gint i;
|
||||
gint row = 0;
|
||||
|
||||
g_free (dbbrowser->selected_proc_name);
|
||||
dbbrowser->selected_proc_name = g_strdup (proc_name);
|
||||
@ -333,51 +329,41 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
&(dbbrowser->selected_nreturn_vals),
|
||||
&(dbbrowser->selected_params),
|
||||
&(dbbrowser->selected_return_vals));
|
||||
|
||||
|
||||
/* save the "old" table */
|
||||
old_table = dbbrowser->descr_table;
|
||||
|
||||
dbbrowser->descr_table = gtk_table_new
|
||||
(10 + dbbrowser->selected_nparams + dbbrowser->selected_nreturn_vals,
|
||||
5, FALSE);
|
||||
dbbrowser->descr_table = gtk_table_new (10 +
|
||||
dbbrowser->selected_nparams +
|
||||
dbbrowser->selected_nreturn_vals,
|
||||
5, FALSE);
|
||||
|
||||
gtk_table_set_col_spacings (GTK_TABLE (dbbrowser->descr_table), 4);
|
||||
gtk_table_set_col_spacings (GTK_TABLE (dbbrowser->descr_table), 6);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), 0, 2);
|
||||
|
||||
/* show the name */
|
||||
|
||||
label = gtk_label_new (_("Name:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
entry = gtk_entry_new ();
|
||||
gtk_entry_set_text (GTK_ENTRY (entry), dbbrowser->selected_scheme_proc_name);
|
||||
gtk_entry_set_editable (GTK_ENTRY (entry), FALSE);
|
||||
|
||||
label = gtk_entry_new ();
|
||||
gtk_entry_set_text (GTK_ENTRY (label), dbbrowser->selected_scheme_proc_name);
|
||||
gtk_entry_set_editable (GTK_ENTRY (label), FALSE);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Name:"), 1.0, 0.5,
|
||||
entry, 3, FALSE);
|
||||
|
||||
/* show the description */
|
||||
|
||||
label = gtk_label_new (_("Blurb:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1, GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_blurb);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Blurb:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
|
||||
/* in parameters */
|
||||
@ -386,9 +372,10 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
label = gtk_label_new (_("In:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+(dbbrowser->selected_nparams),
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
0, 1, row, row + (dbbrowser->selected_nparams),
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
for (i = 0; i < dbbrowser->selected_nparams; i++)
|
||||
{
|
||||
/* name */
|
||||
@ -411,7 +398,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
3, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
|
||||
row++;
|
||||
}
|
||||
}
|
||||
@ -419,11 +406,10 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
if ((dbbrowser->selected_nparams) &&
|
||||
(dbbrowser->selected_nreturn_vals))
|
||||
{
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
}
|
||||
|
||||
@ -433,151 +419,111 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
label = gtk_label_new (_("Out:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+(dbbrowser->selected_nreturn_vals),
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
0, 1, row, row + (dbbrowser->selected_nreturn_vals),
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
for (i = 0; i < dbbrowser->selected_nreturn_vals; i++)
|
||||
{
|
||||
/* name */
|
||||
label = gtk_label_new ((dbbrowser->selected_return_vals[i]).name);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 2, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
1, 2, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
/* type */
|
||||
label = gtk_label_new (GParamType2char((dbbrowser->selected_return_vals[i]).type));
|
||||
label = gtk_label_new (GParamType2char (dbbrowser->selected_return_vals[i].type));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
2, 3, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
2, 3, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
/* description */
|
||||
label = gtk_label_new ((dbbrowser->selected_return_vals[i]).description);
|
||||
label = gtk_label_new (dbbrowser->selected_return_vals[i].description);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
3, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
3, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
row++;
|
||||
}
|
||||
}
|
||||
|
||||
if ((dbbrowser->selected_nparams) ||
|
||||
(dbbrowser->selected_nreturn_vals))
|
||||
if (dbbrowser->selected_nparams ||
|
||||
dbbrowser->selected_nreturn_vals)
|
||||
{
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
}
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
}
|
||||
|
||||
/* show the help */
|
||||
if ((dbbrowser->selected_proc_help) &&
|
||||
if (dbbrowser->selected_proc_help &&
|
||||
(strlen (dbbrowser->selected_proc_help) > 1))
|
||||
{
|
||||
label = gtk_label_new (_("Help:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
|
||||
help = gtk_table_new (2, 2, FALSE);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (help), 0, 2);
|
||||
gtk_table_set_col_spacing (GTK_TABLE (help), 0, 2);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), help,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (help);
|
||||
row++;
|
||||
|
||||
text = gtk_text_new (NULL, NULL);
|
||||
gtk_text_set_editable (GTK_TEXT (text), FALSE);
|
||||
gtk_text_set_word_wrap (GTK_TEXT (text), TRUE);
|
||||
gtk_widget_set_usize (text, -1, 60);
|
||||
gtk_table_attach (GTK_TABLE (help), text, 0, 1, 0, 1,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_widget_show (text);
|
||||
|
||||
vscrollbar = gtk_vscrollbar_new (GTK_TEXT (text)->vadj);
|
||||
gtk_table_attach (GTK_TABLE (help), vscrollbar, 1, 2, 0, 1,
|
||||
GTK_FILL, GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_widget_show (vscrollbar);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Help:"), 1.0, 0.5,
|
||||
scrolled_window, 3, FALSE);
|
||||
|
||||
text_buffer = gtk_text_buffer_new (NULL);
|
||||
text_view = gtk_text_view_new_with_buffer (text_buffer);
|
||||
g_object_unref (G_OBJECT (text_buffer));
|
||||
|
||||
gtk_text_buffer_set_text (text_buffer, dbbrowser->selected_proc_help, -1);
|
||||
|
||||
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
|
||||
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD);
|
||||
gtk_widget_set_usize (text_view, -1, 60);
|
||||
gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
|
||||
gtk_widget_show (text_view);
|
||||
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
}
|
||||
|
||||
/* show the author & the copyright */
|
||||
|
||||
label = gtk_label_new (_("Author:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_author);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_label_new (_("Date:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Author:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_date);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_label_new (_("Copyright:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Date:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_copyright);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Copyright:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
if (old_table)
|
||||
gtk_widget_destroy (old_table);
|
||||
gtk_container_remove (GTK_CONTAINER (dbbrowser->descr_vbox), old_table);
|
||||
|
||||
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (dbbrowser->descr_scroll),
|
||||
dbbrowser->descr_table);
|
||||
|
||||
/* now after the table is added to a window add the text */
|
||||
if (text != NULL)
|
||||
{
|
||||
gtk_widget_realize (text);
|
||||
gtk_text_freeze (GTK_TEXT (text));
|
||||
gtk_text_insert (GTK_TEXT (text), NULL, NULL, NULL,
|
||||
dbbrowser->selected_proc_help, -1);
|
||||
gtk_text_thaw (GTK_TEXT (text));
|
||||
}
|
||||
gtk_box_pack_start (GTK_BOX (dbbrowser->descr_vbox), dbbrowser->descr_table,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (dbbrowser->descr_table);
|
||||
}
|
||||
|
||||
@ -628,12 +574,14 @@ static void
|
||||
dialog_search_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
gchar **proc_list;
|
||||
gint num_procs;
|
||||
gint i, j;
|
||||
dbbrowser_t* dbbrowser = data;
|
||||
gchar *func_name, *label, *query_text;
|
||||
GString *query;
|
||||
gchar **proc_list;
|
||||
gint num_procs;
|
||||
gint i, j;
|
||||
dbbrowser_t *dbbrowser = data;
|
||||
gchar *func_name;
|
||||
gchar *label;
|
||||
gchar *query_text;
|
||||
GString *query;
|
||||
|
||||
gtk_clist_freeze (GTK_CLIST (dbbrowser->clist));
|
||||
gtk_clist_clear (GTK_CLIST (dbbrowser->clist));
|
||||
@ -669,8 +617,8 @@ dialog_search_callback (GtkWidget *widget,
|
||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
||||
_("DB Browser (by blurb - please wait)"));
|
||||
gimp_procedural_db_query (".*",
|
||||
gtk_entry_get_text(
|
||||
GTK_ENTRY(dbbrowser->search_entry) ),
|
||||
gtk_entry_get_text
|
||||
(GTK_ENTRY (dbbrowser->search_entry)),
|
||||
".*", ".*", ".*", ".*", ".*",
|
||||
&num_procs, &proc_list);
|
||||
}
|
||||
@ -745,7 +693,6 @@ dialog_search_callback (GtkWidget *widget,
|
||||
|
||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg), _("DB Browser"));
|
||||
gtk_clist_thaw (GTK_CLIST (dbbrowser->clist));
|
||||
|
||||
}
|
||||
|
||||
/* utils ... */
|
||||
|
@ -21,18 +21,24 @@
|
||||
* 0.08 26th sept 97 by Thomas NOEL <thomas@minet.net>
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#ifndef __DBBROWSER_UTILS_H__
|
||||
#define __DBBROWSER_UTILS_H__
|
||||
|
||||
GtkWidget *
|
||||
gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
gchar *scheme_proc_name,
|
||||
gchar *proc_blurb,
|
||||
gchar *proc_help,
|
||||
gchar *proc_author,
|
||||
gchar *proc_copyright,
|
||||
gchar *proc_date,
|
||||
GimpPDBProcType proc_type,
|
||||
gint nparams,
|
||||
gint nreturn_vals,
|
||||
GimpParamDef *params,
|
||||
GimpParamDef *return_vals));
|
||||
|
||||
typedef void (* GimpDBBrowserApplyCallback) (gchar *proc_name,
|
||||
gchar *scheme_proc_name,
|
||||
gchar *proc_blurb,
|
||||
gchar *proc_help,
|
||||
gchar *proc_author,
|
||||
gchar *proc_copyright,
|
||||
gchar *proc_date,
|
||||
GimpPDBProcType proc_type,
|
||||
gint nparams,
|
||||
gint nreturn_vals,
|
||||
GimpParamDef *params,
|
||||
GimpParamDef *return_vals);
|
||||
|
||||
GtkWidget * gimp_db_browser (GimpDBBrowserApplyCallback apply_callback);
|
||||
|
||||
|
||||
#endif /* __DBBROWSER_UTILS_H__ */
|
||||
|
@ -61,7 +61,7 @@ typedef struct
|
||||
GtkWidget *name_button;
|
||||
GtkWidget *blurb_button;
|
||||
|
||||
GtkWidget *descr_scroll;
|
||||
GtkWidget *descr_vbox;
|
||||
GtkWidget *descr_table;
|
||||
|
||||
GtkWidget *clist;
|
||||
@ -120,18 +120,7 @@ GList * proc_table = NULL;
|
||||
* console_entry != NULL => called from the script-fu-console
|
||||
*/
|
||||
GtkWidget *
|
||||
gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
gchar *scheme_proc_name,
|
||||
gchar *proc_blurb,
|
||||
gchar *proc_help,
|
||||
gchar *proc_author,
|
||||
gchar *proc_copyright,
|
||||
gchar *proc_date,
|
||||
GimpPDBProcType proc_type,
|
||||
gint nparams,
|
||||
gint nreturn_vals,
|
||||
GimpParamDef *params,
|
||||
GimpParamDef *return_vals))
|
||||
gimp_db_browser (GimpDBBrowserApplyCallback apply_callback)
|
||||
{
|
||||
dbbrowser_t* dbbrowser;
|
||||
|
||||
@ -139,6 +128,7 @@ gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
GtkWidget *searchhbox;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *scrolled_window;
|
||||
|
||||
dbbrowser = g_new (dbbrowser_t, 1);
|
||||
|
||||
@ -188,87 +178,90 @@ gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
dbbrowser);
|
||||
|
||||
/* hbox : left=list ; right=description */
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 4);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dbbrowser->dlg)->vbox),
|
||||
hbox, TRUE, TRUE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
/* left = vbox : the list and the search entry */
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 3);
|
||||
gtk_box_pack_start (GTK_BOX (hbox),
|
||||
vbox, FALSE, TRUE, 0);
|
||||
gtk_widget_show(vbox);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 4);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (vbox);
|
||||
|
||||
/* list : list in a scrolled_win */
|
||||
|
||||
dbbrowser->clist = gtk_clist_new (1);
|
||||
dbbrowser->scrolled_win = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (dbbrowser->scrolled_win),
|
||||
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_ALWAYS);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), dbbrowser->scrolled_win, TRUE, TRUE, 0);
|
||||
gtk_widget_show (dbbrowser->scrolled_win);
|
||||
|
||||
dbbrowser->clist = gtk_clist_new (1);
|
||||
gtk_widget_set_usize (dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (dbbrowser->clist),
|
||||
GTK_SELECTION_BROWSE);
|
||||
|
||||
gtk_widget_set_usize (dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||
gtk_signal_connect (GTK_OBJECT (dbbrowser->clist), "select_row",
|
||||
(GtkSignalFunc) procedure_select_callback,
|
||||
dbbrowser);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), dbbrowser->scrolled_win, TRUE, TRUE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (dbbrowser->scrolled_win), dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->scrolled_win);
|
||||
|
||||
g_signal_connect (G_OBJECT (dbbrowser->clist), "select_row",
|
||||
G_CALLBACK (procedure_select_callback),
|
||||
dbbrowser);
|
||||
|
||||
/* search entry */
|
||||
|
||||
searchhbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
searchhbox, FALSE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), searchhbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (searchhbox);
|
||||
|
||||
label = gtk_label_new (_("Search:"));
|
||||
gtk_misc_set_alignment( GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox),
|
||||
label, TRUE, TRUE, 0);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox), label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
dbbrowser->search_entry = gtk_entry_new ();
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox),
|
||||
dbbrowser->search_entry, TRUE, TRUE, 0);
|
||||
gtk_widget_show(dbbrowser->search_entry);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox), dbbrowser->search_entry,
|
||||
TRUE, TRUE, 0);
|
||||
gtk_widget_show (dbbrowser->search_entry);
|
||||
|
||||
/* right = description */
|
||||
|
||||
dbbrowser->descr_scroll = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (dbbrowser->descr_scroll),
|
||||
GTK_POLICY_ALWAYS,
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_widget_set_usize (scrolled_window, DBL_WIDTH - DBL_LIST_WIDTH, 0);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_ALWAYS);
|
||||
gtk_box_pack_start (GTK_BOX (hbox),
|
||||
dbbrowser->descr_scroll, TRUE, TRUE, 0);
|
||||
gtk_widget_set_usize (dbbrowser->descr_scroll, DBL_WIDTH - DBL_LIST_WIDTH, 0);
|
||||
gtk_widget_show (dbbrowser->descr_scroll);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), scrolled_window, TRUE, TRUE, 0);
|
||||
gtk_widget_show (scrolled_window);
|
||||
|
||||
dbbrowser->descr_vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (dbbrowser->descr_vbox), 4);
|
||||
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
dbbrowser->descr_vbox);
|
||||
gtk_widget_show (dbbrowser->descr_vbox);
|
||||
|
||||
/* now build the list */
|
||||
|
||||
gtk_widget_show (dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->dlg);
|
||||
|
||||
/* initialize the "return" value (for "apply") */
|
||||
|
||||
dbbrowser->descr_table = NULL;
|
||||
dbbrowser->selected_proc_name = NULL;
|
||||
dbbrowser->descr_table = NULL;
|
||||
dbbrowser->selected_proc_name = NULL;
|
||||
dbbrowser->selected_scheme_proc_name = NULL;
|
||||
dbbrowser->selected_proc_blurb = NULL;
|
||||
dbbrowser->selected_proc_help = NULL;
|
||||
dbbrowser->selected_proc_author = NULL;
|
||||
dbbrowser->selected_proc_copyright = NULL;
|
||||
dbbrowser->selected_proc_date = NULL;
|
||||
dbbrowser->selected_proc_type = 0;
|
||||
dbbrowser->selected_nparams = 0;
|
||||
dbbrowser->selected_nreturn_vals = 0;
|
||||
dbbrowser->selected_params = NULL;
|
||||
dbbrowser->selected_return_vals = NULL;
|
||||
dbbrowser->selected_proc_blurb = NULL;
|
||||
dbbrowser->selected_proc_help = NULL;
|
||||
dbbrowser->selected_proc_author = NULL;
|
||||
dbbrowser->selected_proc_copyright = NULL;
|
||||
dbbrowser->selected_proc_date = NULL;
|
||||
dbbrowser->selected_proc_type = 0;
|
||||
dbbrowser->selected_nparams = 0;
|
||||
dbbrowser->selected_nreturn_vals = 0;
|
||||
dbbrowser->selected_params = NULL;
|
||||
dbbrowser->selected_return_vals = NULL;
|
||||
|
||||
/* first search (all procedures) */
|
||||
dialog_search_callback (NULL, (gpointer) dbbrowser);
|
||||
@ -284,7 +277,7 @@ procedure_select_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
dbbrowser_t *dbbrowser = data;
|
||||
gchar *func;
|
||||
gchar *func;
|
||||
|
||||
g_return_val_if_fail (widget != NULL, FALSE);
|
||||
/* g_return_val_if_fail (bevent != NULL, FALSE); */
|
||||
@ -300,12 +293,15 @@ static void
|
||||
dialog_select (dbbrowser_t *dbbrowser,
|
||||
gchar *proc_name)
|
||||
{
|
||||
GtkWidget *label;
|
||||
GtkWidget *old_table;
|
||||
GtkWidget *help;
|
||||
GtkWidget *text = NULL;
|
||||
GtkWidget *vscrollbar;
|
||||
gint i, row = 0;
|
||||
GtkWidget *old_table;
|
||||
GtkWidget *label;
|
||||
GtkWidget *entry;
|
||||
GtkWidget *sep;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *text_view;
|
||||
GtkTextBuffer *text_buffer = NULL;
|
||||
gint i;
|
||||
gint row = 0;
|
||||
|
||||
g_free (dbbrowser->selected_proc_name);
|
||||
dbbrowser->selected_proc_name = g_strdup (proc_name);
|
||||
@ -333,51 +329,41 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
&(dbbrowser->selected_nreturn_vals),
|
||||
&(dbbrowser->selected_params),
|
||||
&(dbbrowser->selected_return_vals));
|
||||
|
||||
|
||||
/* save the "old" table */
|
||||
old_table = dbbrowser->descr_table;
|
||||
|
||||
dbbrowser->descr_table = gtk_table_new
|
||||
(10 + dbbrowser->selected_nparams + dbbrowser->selected_nreturn_vals,
|
||||
5, FALSE);
|
||||
dbbrowser->descr_table = gtk_table_new (10 +
|
||||
dbbrowser->selected_nparams +
|
||||
dbbrowser->selected_nreturn_vals,
|
||||
5, FALSE);
|
||||
|
||||
gtk_table_set_col_spacings (GTK_TABLE (dbbrowser->descr_table), 4);
|
||||
gtk_table_set_col_spacings (GTK_TABLE (dbbrowser->descr_table), 6);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), 0, 2);
|
||||
|
||||
/* show the name */
|
||||
|
||||
label = gtk_label_new (_("Name:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
entry = gtk_entry_new ();
|
||||
gtk_entry_set_text (GTK_ENTRY (entry), dbbrowser->selected_scheme_proc_name);
|
||||
gtk_entry_set_editable (GTK_ENTRY (entry), FALSE);
|
||||
|
||||
label = gtk_entry_new ();
|
||||
gtk_entry_set_text (GTK_ENTRY (label), dbbrowser->selected_scheme_proc_name);
|
||||
gtk_entry_set_editable (GTK_ENTRY (label), FALSE);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Name:"), 1.0, 0.5,
|
||||
entry, 3, FALSE);
|
||||
|
||||
/* show the description */
|
||||
|
||||
label = gtk_label_new (_("Blurb:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1, GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_blurb);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Blurb:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
|
||||
/* in parameters */
|
||||
@ -386,9 +372,10 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
label = gtk_label_new (_("In:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+(dbbrowser->selected_nparams),
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
0, 1, row, row + (dbbrowser->selected_nparams),
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
for (i = 0; i < dbbrowser->selected_nparams; i++)
|
||||
{
|
||||
/* name */
|
||||
@ -411,7 +398,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
3, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
|
||||
row++;
|
||||
}
|
||||
}
|
||||
@ -419,11 +406,10 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
if ((dbbrowser->selected_nparams) &&
|
||||
(dbbrowser->selected_nreturn_vals))
|
||||
{
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
}
|
||||
|
||||
@ -433,151 +419,111 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
label = gtk_label_new (_("Out:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+(dbbrowser->selected_nreturn_vals),
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
0, 1, row, row + (dbbrowser->selected_nreturn_vals),
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
for (i = 0; i < dbbrowser->selected_nreturn_vals; i++)
|
||||
{
|
||||
/* name */
|
||||
label = gtk_label_new ((dbbrowser->selected_return_vals[i]).name);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 2, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
1, 2, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
/* type */
|
||||
label = gtk_label_new (GParamType2char((dbbrowser->selected_return_vals[i]).type));
|
||||
label = gtk_label_new (GParamType2char (dbbrowser->selected_return_vals[i].type));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
2, 3, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
2, 3, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
/* description */
|
||||
label = gtk_label_new ((dbbrowser->selected_return_vals[i]).description);
|
||||
label = gtk_label_new (dbbrowser->selected_return_vals[i].description);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
3, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
3, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
row++;
|
||||
}
|
||||
}
|
||||
|
||||
if ((dbbrowser->selected_nparams) ||
|
||||
(dbbrowser->selected_nreturn_vals))
|
||||
if (dbbrowser->selected_nparams ||
|
||||
dbbrowser->selected_nreturn_vals)
|
||||
{
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
}
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
}
|
||||
|
||||
/* show the help */
|
||||
if ((dbbrowser->selected_proc_help) &&
|
||||
if (dbbrowser->selected_proc_help &&
|
||||
(strlen (dbbrowser->selected_proc_help) > 1))
|
||||
{
|
||||
label = gtk_label_new (_("Help:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
|
||||
help = gtk_table_new (2, 2, FALSE);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (help), 0, 2);
|
||||
gtk_table_set_col_spacing (GTK_TABLE (help), 0, 2);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), help,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (help);
|
||||
row++;
|
||||
|
||||
text = gtk_text_new (NULL, NULL);
|
||||
gtk_text_set_editable (GTK_TEXT (text), FALSE);
|
||||
gtk_text_set_word_wrap (GTK_TEXT (text), TRUE);
|
||||
gtk_widget_set_usize (text, -1, 60);
|
||||
gtk_table_attach (GTK_TABLE (help), text, 0, 1, 0, 1,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_widget_show (text);
|
||||
|
||||
vscrollbar = gtk_vscrollbar_new (GTK_TEXT (text)->vadj);
|
||||
gtk_table_attach (GTK_TABLE (help), vscrollbar, 1, 2, 0, 1,
|
||||
GTK_FILL, GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_widget_show (vscrollbar);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Help:"), 1.0, 0.5,
|
||||
scrolled_window, 3, FALSE);
|
||||
|
||||
text_buffer = gtk_text_buffer_new (NULL);
|
||||
text_view = gtk_text_view_new_with_buffer (text_buffer);
|
||||
g_object_unref (G_OBJECT (text_buffer));
|
||||
|
||||
gtk_text_buffer_set_text (text_buffer, dbbrowser->selected_proc_help, -1);
|
||||
|
||||
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
|
||||
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD);
|
||||
gtk_widget_set_usize (text_view, -1, 60);
|
||||
gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
|
||||
gtk_widget_show (text_view);
|
||||
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
}
|
||||
|
||||
/* show the author & the copyright */
|
||||
|
||||
label = gtk_label_new (_("Author:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_author);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_label_new (_("Date:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Author:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_date);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_label_new (_("Copyright:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Date:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_copyright);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Copyright:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
if (old_table)
|
||||
gtk_widget_destroy (old_table);
|
||||
gtk_container_remove (GTK_CONTAINER (dbbrowser->descr_vbox), old_table);
|
||||
|
||||
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (dbbrowser->descr_scroll),
|
||||
dbbrowser->descr_table);
|
||||
|
||||
/* now after the table is added to a window add the text */
|
||||
if (text != NULL)
|
||||
{
|
||||
gtk_widget_realize (text);
|
||||
gtk_text_freeze (GTK_TEXT (text));
|
||||
gtk_text_insert (GTK_TEXT (text), NULL, NULL, NULL,
|
||||
dbbrowser->selected_proc_help, -1);
|
||||
gtk_text_thaw (GTK_TEXT (text));
|
||||
}
|
||||
gtk_box_pack_start (GTK_BOX (dbbrowser->descr_vbox), dbbrowser->descr_table,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (dbbrowser->descr_table);
|
||||
}
|
||||
|
||||
@ -628,12 +574,14 @@ static void
|
||||
dialog_search_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
gchar **proc_list;
|
||||
gint num_procs;
|
||||
gint i, j;
|
||||
dbbrowser_t* dbbrowser = data;
|
||||
gchar *func_name, *label, *query_text;
|
||||
GString *query;
|
||||
gchar **proc_list;
|
||||
gint num_procs;
|
||||
gint i, j;
|
||||
dbbrowser_t *dbbrowser = data;
|
||||
gchar *func_name;
|
||||
gchar *label;
|
||||
gchar *query_text;
|
||||
GString *query;
|
||||
|
||||
gtk_clist_freeze (GTK_CLIST (dbbrowser->clist));
|
||||
gtk_clist_clear (GTK_CLIST (dbbrowser->clist));
|
||||
@ -669,8 +617,8 @@ dialog_search_callback (GtkWidget *widget,
|
||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
||||
_("DB Browser (by blurb - please wait)"));
|
||||
gimp_procedural_db_query (".*",
|
||||
gtk_entry_get_text(
|
||||
GTK_ENTRY(dbbrowser->search_entry) ),
|
||||
gtk_entry_get_text
|
||||
(GTK_ENTRY (dbbrowser->search_entry)),
|
||||
".*", ".*", ".*", ".*", ".*",
|
||||
&num_procs, &proc_list);
|
||||
}
|
||||
@ -745,7 +693,6 @@ dialog_search_callback (GtkWidget *widget,
|
||||
|
||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg), _("DB Browser"));
|
||||
gtk_clist_thaw (GTK_CLIST (dbbrowser->clist));
|
||||
|
||||
}
|
||||
|
||||
/* utils ... */
|
||||
|
@ -21,18 +21,24 @@
|
||||
* 0.08 26th sept 97 by Thomas NOEL <thomas@minet.net>
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#ifndef __DBBROWSER_UTILS_H__
|
||||
#define __DBBROWSER_UTILS_H__
|
||||
|
||||
GtkWidget *
|
||||
gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
gchar *scheme_proc_name,
|
||||
gchar *proc_blurb,
|
||||
gchar *proc_help,
|
||||
gchar *proc_author,
|
||||
gchar *proc_copyright,
|
||||
gchar *proc_date,
|
||||
GimpPDBProcType proc_type,
|
||||
gint nparams,
|
||||
gint nreturn_vals,
|
||||
GimpParamDef *params,
|
||||
GimpParamDef *return_vals));
|
||||
|
||||
typedef void (* GimpDBBrowserApplyCallback) (gchar *proc_name,
|
||||
gchar *scheme_proc_name,
|
||||
gchar *proc_blurb,
|
||||
gchar *proc_help,
|
||||
gchar *proc_author,
|
||||
gchar *proc_copyright,
|
||||
gchar *proc_date,
|
||||
GimpPDBProcType proc_type,
|
||||
gint nparams,
|
||||
gint nreturn_vals,
|
||||
GimpParamDef *params,
|
||||
GimpParamDef *return_vals);
|
||||
|
||||
GtkWidget * gimp_db_browser (GimpDBBrowserApplyCallback apply_callback);
|
||||
|
||||
|
||||
#endif /* __DBBROWSER_UTILS_H__ */
|
||||
|
@ -61,7 +61,7 @@ typedef struct
|
||||
GtkWidget *name_button;
|
||||
GtkWidget *blurb_button;
|
||||
|
||||
GtkWidget *descr_scroll;
|
||||
GtkWidget *descr_vbox;
|
||||
GtkWidget *descr_table;
|
||||
|
||||
GtkWidget *clist;
|
||||
@ -120,18 +120,7 @@ GList * proc_table = NULL;
|
||||
* console_entry != NULL => called from the script-fu-console
|
||||
*/
|
||||
GtkWidget *
|
||||
gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
gchar *scheme_proc_name,
|
||||
gchar *proc_blurb,
|
||||
gchar *proc_help,
|
||||
gchar *proc_author,
|
||||
gchar *proc_copyright,
|
||||
gchar *proc_date,
|
||||
GimpPDBProcType proc_type,
|
||||
gint nparams,
|
||||
gint nreturn_vals,
|
||||
GimpParamDef *params,
|
||||
GimpParamDef *return_vals))
|
||||
gimp_db_browser (GimpDBBrowserApplyCallback apply_callback)
|
||||
{
|
||||
dbbrowser_t* dbbrowser;
|
||||
|
||||
@ -139,6 +128,7 @@ gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
GtkWidget *searchhbox;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *scrolled_window;
|
||||
|
||||
dbbrowser = g_new (dbbrowser_t, 1);
|
||||
|
||||
@ -188,87 +178,90 @@ gimp_db_browser (void (* apply_callback) (gchar *proc_name,
|
||||
dbbrowser);
|
||||
|
||||
/* hbox : left=list ; right=description */
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 4);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dbbrowser->dlg)->vbox),
|
||||
hbox, TRUE, TRUE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
/* left = vbox : the list and the search entry */
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 3);
|
||||
gtk_box_pack_start (GTK_BOX (hbox),
|
||||
vbox, FALSE, TRUE, 0);
|
||||
gtk_widget_show(vbox);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 4);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (vbox);
|
||||
|
||||
/* list : list in a scrolled_win */
|
||||
|
||||
dbbrowser->clist = gtk_clist_new (1);
|
||||
dbbrowser->scrolled_win = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (dbbrowser->scrolled_win),
|
||||
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_ALWAYS);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), dbbrowser->scrolled_win, TRUE, TRUE, 0);
|
||||
gtk_widget_show (dbbrowser->scrolled_win);
|
||||
|
||||
dbbrowser->clist = gtk_clist_new (1);
|
||||
gtk_widget_set_usize (dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||
gtk_clist_set_selection_mode (GTK_CLIST (dbbrowser->clist),
|
||||
GTK_SELECTION_BROWSE);
|
||||
|
||||
gtk_widget_set_usize (dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||
gtk_signal_connect (GTK_OBJECT (dbbrowser->clist), "select_row",
|
||||
(GtkSignalFunc) procedure_select_callback,
|
||||
dbbrowser);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), dbbrowser->scrolled_win, TRUE, TRUE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (dbbrowser->scrolled_win), dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->scrolled_win);
|
||||
|
||||
g_signal_connect (G_OBJECT (dbbrowser->clist), "select_row",
|
||||
G_CALLBACK (procedure_select_callback),
|
||||
dbbrowser);
|
||||
|
||||
/* search entry */
|
||||
|
||||
searchhbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
searchhbox, FALSE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), searchhbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (searchhbox);
|
||||
|
||||
label = gtk_label_new (_("Search:"));
|
||||
gtk_misc_set_alignment( GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox),
|
||||
label, TRUE, TRUE, 0);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox), label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
dbbrowser->search_entry = gtk_entry_new ();
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox),
|
||||
dbbrowser->search_entry, TRUE, TRUE, 0);
|
||||
gtk_widget_show(dbbrowser->search_entry);
|
||||
gtk_box_pack_start (GTK_BOX (searchhbox), dbbrowser->search_entry,
|
||||
TRUE, TRUE, 0);
|
||||
gtk_widget_show (dbbrowser->search_entry);
|
||||
|
||||
/* right = description */
|
||||
|
||||
dbbrowser->descr_scroll = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (dbbrowser->descr_scroll),
|
||||
GTK_POLICY_ALWAYS,
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_widget_set_usize (scrolled_window, DBL_WIDTH - DBL_LIST_WIDTH, 0);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_ALWAYS);
|
||||
gtk_box_pack_start (GTK_BOX (hbox),
|
||||
dbbrowser->descr_scroll, TRUE, TRUE, 0);
|
||||
gtk_widget_set_usize (dbbrowser->descr_scroll, DBL_WIDTH - DBL_LIST_WIDTH, 0);
|
||||
gtk_widget_show (dbbrowser->descr_scroll);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), scrolled_window, TRUE, TRUE, 0);
|
||||
gtk_widget_show (scrolled_window);
|
||||
|
||||
dbbrowser->descr_vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (dbbrowser->descr_vbox), 4);
|
||||
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
dbbrowser->descr_vbox);
|
||||
gtk_widget_show (dbbrowser->descr_vbox);
|
||||
|
||||
/* now build the list */
|
||||
|
||||
gtk_widget_show (dbbrowser->clist);
|
||||
gtk_widget_show (dbbrowser->dlg);
|
||||
|
||||
/* initialize the "return" value (for "apply") */
|
||||
|
||||
dbbrowser->descr_table = NULL;
|
||||
dbbrowser->selected_proc_name = NULL;
|
||||
dbbrowser->descr_table = NULL;
|
||||
dbbrowser->selected_proc_name = NULL;
|
||||
dbbrowser->selected_scheme_proc_name = NULL;
|
||||
dbbrowser->selected_proc_blurb = NULL;
|
||||
dbbrowser->selected_proc_help = NULL;
|
||||
dbbrowser->selected_proc_author = NULL;
|
||||
dbbrowser->selected_proc_copyright = NULL;
|
||||
dbbrowser->selected_proc_date = NULL;
|
||||
dbbrowser->selected_proc_type = 0;
|
||||
dbbrowser->selected_nparams = 0;
|
||||
dbbrowser->selected_nreturn_vals = 0;
|
||||
dbbrowser->selected_params = NULL;
|
||||
dbbrowser->selected_return_vals = NULL;
|
||||
dbbrowser->selected_proc_blurb = NULL;
|
||||
dbbrowser->selected_proc_help = NULL;
|
||||
dbbrowser->selected_proc_author = NULL;
|
||||
dbbrowser->selected_proc_copyright = NULL;
|
||||
dbbrowser->selected_proc_date = NULL;
|
||||
dbbrowser->selected_proc_type = 0;
|
||||
dbbrowser->selected_nparams = 0;
|
||||
dbbrowser->selected_nreturn_vals = 0;
|
||||
dbbrowser->selected_params = NULL;
|
||||
dbbrowser->selected_return_vals = NULL;
|
||||
|
||||
/* first search (all procedures) */
|
||||
dialog_search_callback (NULL, (gpointer) dbbrowser);
|
||||
@ -284,7 +277,7 @@ procedure_select_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
dbbrowser_t *dbbrowser = data;
|
||||
gchar *func;
|
||||
gchar *func;
|
||||
|
||||
g_return_val_if_fail (widget != NULL, FALSE);
|
||||
/* g_return_val_if_fail (bevent != NULL, FALSE); */
|
||||
@ -300,12 +293,15 @@ static void
|
||||
dialog_select (dbbrowser_t *dbbrowser,
|
||||
gchar *proc_name)
|
||||
{
|
||||
GtkWidget *label;
|
||||
GtkWidget *old_table;
|
||||
GtkWidget *help;
|
||||
GtkWidget *text = NULL;
|
||||
GtkWidget *vscrollbar;
|
||||
gint i, row = 0;
|
||||
GtkWidget *old_table;
|
||||
GtkWidget *label;
|
||||
GtkWidget *entry;
|
||||
GtkWidget *sep;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *text_view;
|
||||
GtkTextBuffer *text_buffer = NULL;
|
||||
gint i;
|
||||
gint row = 0;
|
||||
|
||||
g_free (dbbrowser->selected_proc_name);
|
||||
dbbrowser->selected_proc_name = g_strdup (proc_name);
|
||||
@ -333,51 +329,41 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
&(dbbrowser->selected_nreturn_vals),
|
||||
&(dbbrowser->selected_params),
|
||||
&(dbbrowser->selected_return_vals));
|
||||
|
||||
|
||||
/* save the "old" table */
|
||||
old_table = dbbrowser->descr_table;
|
||||
|
||||
dbbrowser->descr_table = gtk_table_new
|
||||
(10 + dbbrowser->selected_nparams + dbbrowser->selected_nreturn_vals,
|
||||
5, FALSE);
|
||||
dbbrowser->descr_table = gtk_table_new (10 +
|
||||
dbbrowser->selected_nparams +
|
||||
dbbrowser->selected_nreturn_vals,
|
||||
5, FALSE);
|
||||
|
||||
gtk_table_set_col_spacings (GTK_TABLE (dbbrowser->descr_table), 4);
|
||||
gtk_table_set_col_spacings (GTK_TABLE (dbbrowser->descr_table), 6);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), 0, 2);
|
||||
|
||||
/* show the name */
|
||||
|
||||
label = gtk_label_new (_("Name:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
entry = gtk_entry_new ();
|
||||
gtk_entry_set_text (GTK_ENTRY (entry), dbbrowser->selected_scheme_proc_name);
|
||||
gtk_entry_set_editable (GTK_ENTRY (entry), FALSE);
|
||||
|
||||
label = gtk_entry_new ();
|
||||
gtk_entry_set_text (GTK_ENTRY (label), dbbrowser->selected_scheme_proc_name);
|
||||
gtk_entry_set_editable (GTK_ENTRY (label), FALSE);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Name:"), 1.0, 0.5,
|
||||
entry, 3, FALSE);
|
||||
|
||||
/* show the description */
|
||||
|
||||
label = gtk_label_new (_("Blurb:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1, GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_blurb);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Blurb:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
|
||||
/* in parameters */
|
||||
@ -386,9 +372,10 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
label = gtk_label_new (_("In:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+(dbbrowser->selected_nparams),
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
0, 1, row, row + (dbbrowser->selected_nparams),
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
for (i = 0; i < dbbrowser->selected_nparams; i++)
|
||||
{
|
||||
/* name */
|
||||
@ -411,7 +398,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
3, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
|
||||
row++;
|
||||
}
|
||||
}
|
||||
@ -419,11 +406,10 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
if ((dbbrowser->selected_nparams) &&
|
||||
(dbbrowser->selected_nreturn_vals))
|
||||
{
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
}
|
||||
|
||||
@ -433,151 +419,111 @@ dialog_select (dbbrowser_t *dbbrowser,
|
||||
label = gtk_label_new (_("Out:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+(dbbrowser->selected_nreturn_vals),
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
0, 1, row, row + (dbbrowser->selected_nreturn_vals),
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
for (i = 0; i < dbbrowser->selected_nreturn_vals; i++)
|
||||
{
|
||||
/* name */
|
||||
label = gtk_label_new ((dbbrowser->selected_return_vals[i]).name);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 2, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
1, 2, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
/* type */
|
||||
label = gtk_label_new (GParamType2char((dbbrowser->selected_return_vals[i]).type));
|
||||
label = gtk_label_new (GParamType2char (dbbrowser->selected_return_vals[i].type));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
2, 3, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
2, 3, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
/* description */
|
||||
label = gtk_label_new ((dbbrowser->selected_return_vals[i]).description);
|
||||
label = gtk_label_new (dbbrowser->selected_return_vals[i].description);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
3, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
3, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
row++;
|
||||
}
|
||||
}
|
||||
|
||||
if ((dbbrowser->selected_nparams) ||
|
||||
(dbbrowser->selected_nreturn_vals))
|
||||
if (dbbrowser->selected_nparams ||
|
||||
dbbrowser->selected_nreturn_vals)
|
||||
{
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
}
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
row++;
|
||||
}
|
||||
|
||||
/* show the help */
|
||||
if ((dbbrowser->selected_proc_help) &&
|
||||
if (dbbrowser->selected_proc_help &&
|
||||
(strlen (dbbrowser->selected_proc_help) > 1))
|
||||
{
|
||||
label = gtk_label_new (_("Help:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
|
||||
help = gtk_table_new (2, 2, FALSE);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (help), 0, 2);
|
||||
gtk_table_set_col_spacing (GTK_TABLE (help), 0, 2);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), help,
|
||||
1, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (help);
|
||||
row++;
|
||||
|
||||
text = gtk_text_new (NULL, NULL);
|
||||
gtk_text_set_editable (GTK_TEXT (text), FALSE);
|
||||
gtk_text_set_word_wrap (GTK_TEXT (text), TRUE);
|
||||
gtk_widget_set_usize (text, -1, 60);
|
||||
gtk_table_attach (GTK_TABLE (help), text, 0, 1, 0, 1,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_widget_show (text);
|
||||
|
||||
vscrollbar = gtk_vscrollbar_new (GTK_TEXT (text)->vadj);
|
||||
gtk_table_attach (GTK_TABLE (help), vscrollbar, 1, 2, 0, 1,
|
||||
GTK_FILL, GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_widget_show (vscrollbar);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Help:"), 1.0, 0.5,
|
||||
scrolled_window, 3, FALSE);
|
||||
|
||||
text_buffer = gtk_text_buffer_new (NULL);
|
||||
text_view = gtk_text_view_new_with_buffer (text_buffer);
|
||||
g_object_unref (G_OBJECT (text_buffer));
|
||||
|
||||
gtk_text_buffer_set_text (text_buffer, dbbrowser->selected_proc_help, -1);
|
||||
|
||||
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
|
||||
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD);
|
||||
gtk_widget_set_usize (text_view, -1, 60);
|
||||
gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
|
||||
gtk_widget_show (text_view);
|
||||
|
||||
sep = gtk_hseparator_new ();
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), sep,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 0, 6);
|
||||
gtk_widget_show (sep);
|
||||
|
||||
label = gtk_hseparator_new (); /* ok, not really a label ... :) */
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 4, row, row+1, GTK_FILL, GTK_FILL, 3, 6);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
}
|
||||
|
||||
/* show the author & the copyright */
|
||||
|
||||
label = gtk_label_new (_("Author:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_author);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_label_new (_("Date:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Author:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_date);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
label = gtk_label_new (_("Copyright:"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
0, 1, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 3, 0);
|
||||
gtk_widget_show (label);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Date:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
label = gtk_label_new (dbbrowser->selected_proc_copyright);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||
1, 4, row, row+1,
|
||||
GTK_FILL, GTK_FILL, 0, 0);
|
||||
gtk_widget_show (label);
|
||||
row++;
|
||||
|
||||
gtk_table_set_row_spacing (GTK_TABLE (dbbrowser->descr_table), row, 2);
|
||||
gimp_table_attach_aligned (GTK_TABLE (dbbrowser->descr_table), 0, row++,
|
||||
_("Copyright:"), 1.0, 0.5,
|
||||
label, 3, FALSE);
|
||||
|
||||
if (old_table)
|
||||
gtk_widget_destroy (old_table);
|
||||
gtk_container_remove (GTK_CONTAINER (dbbrowser->descr_vbox), old_table);
|
||||
|
||||
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (dbbrowser->descr_scroll),
|
||||
dbbrowser->descr_table);
|
||||
|
||||
/* now after the table is added to a window add the text */
|
||||
if (text != NULL)
|
||||
{
|
||||
gtk_widget_realize (text);
|
||||
gtk_text_freeze (GTK_TEXT (text));
|
||||
gtk_text_insert (GTK_TEXT (text), NULL, NULL, NULL,
|
||||
dbbrowser->selected_proc_help, -1);
|
||||
gtk_text_thaw (GTK_TEXT (text));
|
||||
}
|
||||
gtk_box_pack_start (GTK_BOX (dbbrowser->descr_vbox), dbbrowser->descr_table,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (dbbrowser->descr_table);
|
||||
}
|
||||
|
||||
@ -628,12 +574,14 @@ static void
|
||||
dialog_search_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
gchar **proc_list;
|
||||
gint num_procs;
|
||||
gint i, j;
|
||||
dbbrowser_t* dbbrowser = data;
|
||||
gchar *func_name, *label, *query_text;
|
||||
GString *query;
|
||||
gchar **proc_list;
|
||||
gint num_procs;
|
||||
gint i, j;
|
||||
dbbrowser_t *dbbrowser = data;
|
||||
gchar *func_name;
|
||||
gchar *label;
|
||||
gchar *query_text;
|
||||
GString *query;
|
||||
|
||||
gtk_clist_freeze (GTK_CLIST (dbbrowser->clist));
|
||||
gtk_clist_clear (GTK_CLIST (dbbrowser->clist));
|
||||
@ -669,8 +617,8 @@ dialog_search_callback (GtkWidget *widget,
|
||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
||||
_("DB Browser (by blurb - please wait)"));
|
||||
gimp_procedural_db_query (".*",
|
||||
gtk_entry_get_text(
|
||||
GTK_ENTRY(dbbrowser->search_entry) ),
|
||||
gtk_entry_get_text
|
||||
(GTK_ENTRY (dbbrowser->search_entry)),
|
||||
".*", ".*", ".*", ".*", ".*",
|
||||
&num_procs, &proc_list);
|
||||
}
|
||||
@ -745,7 +693,6 @@ dialog_search_callback (GtkWidget *widget,
|
||||
|
||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg), _("DB Browser"));
|
||||
gtk_clist_thaw (GTK_CLIST (dbbrowser->clist));
|
||||
|
||||
}
|
||||
|
||||
/* utils ... */
|
||||
|
@ -22,9 +22,6 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#if HAVE_DIRENT_H
|
||||
#include <dirent.h>
|
||||
#endif
|
||||
#if HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
@ -43,69 +40,60 @@
|
||||
|
||||
#include <plug-ins/dbbrowser/dbbrowser_utils.h>
|
||||
|
||||
/* FIXME: To get the 'broken' GtkText */
|
||||
#define GTK_ENABLE_BROKEN
|
||||
#include <gtk/gtktext.h>
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
#include <fcntl.h>
|
||||
#include <io.h>
|
||||
#endif
|
||||
|
||||
|
||||
#define TEXT_WIDTH 400
|
||||
#define TEXT_HEIGHT 400
|
||||
#define ENTRY_WIDTH 400
|
||||
|
||||
#define BUFSIZE 256
|
||||
#define BUFSIZE 256
|
||||
|
||||
|
||||
#define message(string) printf("(%s): %d ::: %s\n", __PRETTY_FUNCTION__, __LINE__, string)
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GtkWidget *console;
|
||||
GtkTextBuffer *console;
|
||||
GtkWidget *cc;
|
||||
GtkAdjustment *vadj;
|
||||
|
||||
GdkFont *font_strong;
|
||||
GdkFont *font_emphasis;
|
||||
GdkFont *font_weak;
|
||||
GdkFont *font;
|
||||
GtkWidget *text_view;
|
||||
|
||||
gint32 input_id;
|
||||
} ConsoleInterface;
|
||||
|
||||
|
||||
/*
|
||||
* Local Functions
|
||||
*/
|
||||
static void script_fu_console_interface (void);
|
||||
static void script_fu_close_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
static void script_fu_browse_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
static gboolean script_fu_siod_read (GIOChannel *channel,
|
||||
GIOCondition cond,
|
||||
gpointer data);
|
||||
static gboolean script_fu_cc_is_empty (void);
|
||||
static gboolean script_fu_cc_key_function (GtkWidget *widget,
|
||||
GdkEventKey *event,
|
||||
gpointer data);
|
||||
|
||||
static void script_fu_console_interface (void);
|
||||
static void script_fu_close_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
static void script_fu_browse_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
static gboolean script_fu_siod_read (GIOChannel *channel,
|
||||
GIOCondition cond,
|
||||
gpointer data);
|
||||
static gboolean script_fu_cc_is_empty (void);
|
||||
static gboolean script_fu_cc_key_function (GtkWidget *widget,
|
||||
GdkEventKey *event,
|
||||
gpointer data);
|
||||
static void script_fu_open_siod_console (void);
|
||||
static void script_fu_close_siod_console (void);
|
||||
|
||||
static void script_fu_open_siod_console (void);
|
||||
static void script_fu_close_siod_console(void);
|
||||
|
||||
/*
|
||||
* Local variables
|
||||
*/
|
||||
|
||||
static ConsoleInterface cint =
|
||||
{
|
||||
NULL, /* console */
|
||||
NULL, /* current command */
|
||||
NULL, /* vertical adjustment */
|
||||
|
||||
NULL, /* strong font */
|
||||
NULL, /* emphasis font */
|
||||
NULL, /* weak font */
|
||||
NULL, /* normal font */
|
||||
NULL, /* text view */
|
||||
|
||||
-1 /* input id */
|
||||
};
|
||||
@ -116,11 +104,9 @@ static gint history_len = 0;
|
||||
static gint history_cur = 0;
|
||||
static gint history_max = 50;
|
||||
|
||||
static gint siod_output_pipe[2];
|
||||
static gint siod_output_pipe[2];
|
||||
|
||||
|
||||
#define message(string) printf("(%s): %d ::: %s\n", __PRETTY_FUNCTION__, __LINE__, string)
|
||||
|
||||
/*
|
||||
* Function definitions
|
||||
*/
|
||||
@ -154,7 +140,7 @@ script_fu_console_run (gchar *name,
|
||||
case GIMP_RUN_WITH_LAST_VALS:
|
||||
case GIMP_RUN_NONINTERACTIVE:
|
||||
status = GIMP_PDB_CALLING_ERROR;
|
||||
gimp_message (_("Script-Fu console mode allows only interactive invocation"));
|
||||
g_message (_("Script-Fu console mode allows only interactive invocation"));
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -171,11 +157,11 @@ script_fu_console_run (gchar *name,
|
||||
static void
|
||||
script_fu_console_interface (void)
|
||||
{
|
||||
GtkWidget *dlg;
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *main_vbox;
|
||||
GtkWidget *button;
|
||||
GtkWidget *label;
|
||||
GtkWidget *vsb;
|
||||
GtkWidget *table;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *hbox;
|
||||
GIOChannel *input_channel;
|
||||
|
||||
@ -183,138 +169,129 @@ script_fu_console_interface (void)
|
||||
|
||||
gimp_ui_init ("script-fu", FALSE);
|
||||
|
||||
dlg = gtk_dialog_new ();
|
||||
gtk_window_set_title (GTK_WINDOW (dlg), _("Script-Fu Console"));
|
||||
gimp_help_connect_help_accel (dlg, gimp_standard_help_func,
|
||||
"filters/script-fu.html");
|
||||
gtk_signal_connect (GTK_OBJECT (dlg), "destroy",
|
||||
(GtkSignalFunc) script_fu_close_callback,
|
||||
NULL);
|
||||
gtk_signal_connect (GTK_OBJECT (dlg), "destroy",
|
||||
GTK_SIGNAL_FUNC (gtk_widget_destroyed),
|
||||
&dlg);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dlg)->vbox), 2);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dlg)->action_area), 0);
|
||||
dialog = gimp_dialog_new (_("Script-Fu Console"), "script-fu-console",
|
||||
gimp_standard_help_func, "filters/script-fu.html",
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, FALSE,
|
||||
|
||||
/* Action area */
|
||||
button = gtk_button_new_with_label (_("Close"));
|
||||
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
|
||||
(GtkSignalFunc) gtk_widget_destroy,
|
||||
(gpointer)dlg);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->action_area), button, TRUE, TRUE, 0);
|
||||
gtk_widget_show (button);
|
||||
_("Close"), gtk_widget_destroy, NULL,
|
||||
1, NULL, FALSE, TRUE,
|
||||
|
||||
NULL);
|
||||
|
||||
g_signal_connect (G_OBJECT (dialog), "destroy",
|
||||
G_CALLBACK (script_fu_close_callback),
|
||||
NULL);
|
||||
g_signal_connect (G_OBJECT (dialog), "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&dialog);
|
||||
|
||||
/* The main vbox */
|
||||
main_vbox = gtk_vbox_new (FALSE, 4);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 4);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), main_vbox,
|
||||
TRUE, TRUE, 0);
|
||||
gtk_widget_show (main_vbox);
|
||||
|
||||
/* The info vbox */
|
||||
label = gtk_label_new (_("SIOD Output"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), label, FALSE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
/* The output text widget */
|
||||
cint.vadj = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
|
||||
vsb = gtk_vscrollbar_new (cint.vadj);
|
||||
cint.console = gtk_text_new (NULL, cint.vadj);
|
||||
gtk_text_set_editable (GTK_TEXT (cint.console), FALSE);
|
||||
gtk_widget_set_usize (cint.console, TEXT_WIDTH, TEXT_HEIGHT);
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_ALWAYS);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), scrolled_window, TRUE, TRUE, 0);
|
||||
gtk_widget_show (scrolled_window);
|
||||
|
||||
table = gtk_table_new (1, 2, FALSE);
|
||||
gtk_table_set_col_spacing (GTK_TABLE (table), 0, 2);
|
||||
cint.console = gtk_text_buffer_new (NULL);
|
||||
cint.text_view = gtk_text_view_new_with_buffer (cint.console);
|
||||
g_object_unref (G_OBJECT (cint.console));
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), table, TRUE, TRUE, 0);
|
||||
gtk_text_view_set_editable (GTK_TEXT_VIEW (cint.text_view), FALSE);
|
||||
gtk_widget_set_usize (cint.text_view, TEXT_WIDTH, TEXT_HEIGHT);
|
||||
gtk_container_add (GTK_CONTAINER (scrolled_window), cint.text_view);
|
||||
gtk_widget_show (cint.text_view);
|
||||
|
||||
gtk_table_attach (GTK_TABLE (table), vsb, 1, 2, 0, 1,
|
||||
0, GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), cint.console, 0, 1, 0, 1,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_text_buffer_create_tag (cint.console, "strong",
|
||||
"weight", PANGO_WEIGHT_BOLD,
|
||||
"size", 12 * PANGO_SCALE,
|
||||
NULL);
|
||||
gtk_text_buffer_create_tag (cint.console, "emphasis",
|
||||
"style", PANGO_STYLE_OBLIQUE,
|
||||
"size", 10 * PANGO_SCALE,
|
||||
NULL);
|
||||
gtk_text_buffer_create_tag (cint.console, "weak",
|
||||
"size", 10 * PANGO_SCALE,
|
||||
NULL);
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (table), 2);
|
||||
{
|
||||
const gchar *greeting_texts[] =
|
||||
{
|
||||
"strong", "The GIMP - GNU Image Manipulation Program\n\n",
|
||||
"emphasis", "Copyright (C) 1995-2001\n",
|
||||
"emphasis", "Spencer Kimball, Peter Mattis and the GIMP Development Team\n",
|
||||
"weak", "\nThis program is free software; you can redistribute it and/or modify\n",
|
||||
"weak", "it under the terms of the GNU General Public License as published by\n",
|
||||
"weak", "the Free Software Foundation; either version 2 of the License, or\n",
|
||||
"weak", "(at your option) any later version.\n\n",
|
||||
"weak", "This program is distributed in the hope that it will be useful,\n",
|
||||
"weak", "but WITHOUT ANY WARRANTY; without even the implied warranty of\n",
|
||||
"weak", "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n",
|
||||
"weak", "See the GNU General Public License for more details.\n\n",
|
||||
"weak", "You should have received a copy of the GNU General Public License\n",
|
||||
"weak", "along with this program; if not, write to the Free Software\n",
|
||||
"weak", "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n\n\n",
|
||||
"strong", "Script-Fu Console - FIXME(\\n)\n",
|
||||
"emphasis", "Interactive Scheme Development\n\n",
|
||||
NULL
|
||||
};
|
||||
|
||||
cint.font_strong =
|
||||
gdk_font_load ("-*-helvetica-bold-r-normal-*-*-120-*-*-*-*-*-*");
|
||||
cint.font_emphasis =
|
||||
gdk_font_load ("-*-helvetica-medium-o-normal-*-*-100-*-*-*-*-*-*");
|
||||
cint.font_weak =
|
||||
gdk_font_load ("-*-helvetica-medium-r-normal-*-*-100-*-*-*-*-*-*");
|
||||
cint.font =
|
||||
gdk_fontset_load ("-*-*-medium-r-normal-*-*-100-*-*-c-*-iso8859-1,*");
|
||||
GtkTextIter cursor;
|
||||
gint i;
|
||||
|
||||
/* Realize the widget before allowing new text to be inserted */
|
||||
gtk_widget_realize (cint.console);
|
||||
gtk_text_buffer_get_end_iter (cint.console, &cursor);
|
||||
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_strong, NULL, NULL,
|
||||
"The GIMP - GNU Image Manipulation Program\n\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_emphasis, NULL, NULL,
|
||||
"Copyright (C) 1995-2001\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_emphasis, NULL, NULL,
|
||||
"Spencer Kimball, Peter Mattis and the GIMP Development Team\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"This program is free software; you can redistribute it and/or modify\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"it under the terms of the GNU General Public License as published by\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"the Free Software Foundation; either version 2 of the License, or\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"(at your option) any later version.\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"This program is distributed in the hope that it will be useful,\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"but WITHOUT ANY WARRANTY; without even the implied warranty of\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"See the GNU General Public License for more details.\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"You should have received a copy of the GNU General Public License\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"along with this program; if not, write to the Free Software\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
"\n\n", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_strong, NULL, NULL,
|
||||
"Script-Fu Console - ", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_emphasis, NULL, NULL,
|
||||
"Interactive Scheme Development\n\n", -1);
|
||||
|
||||
gtk_widget_show (vsb);
|
||||
gtk_widget_show (cint.console);
|
||||
gtk_widget_show (table);
|
||||
for (i = 0; greeting_texts[i]; i += 2)
|
||||
{
|
||||
gtk_text_buffer_insert_with_tags_by_name (cint.console, &cursor,
|
||||
greeting_texts[i + 1], -1,
|
||||
greeting_texts[i],
|
||||
NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/* The current command */
|
||||
label = gtk_label_new (_("Current Command"));
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), label, FALSE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
hbox = gtk_hbox_new ( FALSE, 0 );
|
||||
hbox = gtk_hbox_new (FALSE, 2);
|
||||
gtk_widget_set_usize (hbox, ENTRY_WIDTH, 0);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), hbox, FALSE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
|
||||
cint.cc = gtk_entry_new ();
|
||||
gtk_box_pack_start (GTK_BOX (hbox), cint.cc,
|
||||
TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), cint.cc, TRUE, TRUE, 0);
|
||||
GTK_WIDGET_SET_FLAGS (cint.cc, GTK_CAN_DEFAULT);
|
||||
gtk_widget_grab_default (cint.cc);
|
||||
gtk_signal_connect (GTK_OBJECT (cint.cc), "key_press_event",
|
||||
(GtkSignalFunc) script_fu_cc_key_function,
|
||||
NULL);
|
||||
gtk_widget_show (cint.cc);
|
||||
|
||||
g_signal_connect (G_OBJECT (cint.cc), "key_press_event",
|
||||
G_CALLBACK (script_fu_cc_key_function),
|
||||
NULL);
|
||||
|
||||
button = gtk_button_new_with_label (_("Browse..."));
|
||||
gtk_box_pack_start (GTK_BOX (hbox), button,
|
||||
FALSE, TRUE, 0);
|
||||
gtk_signal_connect (GTK_OBJECT (button), "clicked",
|
||||
(GtkSignalFunc) script_fu_browse_callback,
|
||||
NULL);
|
||||
gtk_misc_set_padding (GTK_MISC (GTK_BIN (button)->child), 2, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0);
|
||||
gtk_widget_show (button);
|
||||
gtk_widget_show (cint.cc);
|
||||
|
||||
g_signal_connect (G_OBJECT (button), "clicked",
|
||||
G_CALLBACK (script_fu_browse_callback),
|
||||
NULL);
|
||||
|
||||
input_channel = g_io_channel_unix_new (siod_output_pipe[0]);
|
||||
cint.input_id = g_io_add_watch (input_channel,
|
||||
@ -323,19 +300,17 @@ script_fu_console_interface (void)
|
||||
NULL);
|
||||
|
||||
/* Initialize the history */
|
||||
history = g_list_append (history, NULL);
|
||||
history = g_list_append (history, NULL);
|
||||
history_len = 1;
|
||||
|
||||
gtk_widget_show (dlg);
|
||||
gtk_widget_show (dialog);
|
||||
|
||||
gtk_main ();
|
||||
|
||||
g_source_remove (cint.input_id);
|
||||
|
||||
if (dlg)
|
||||
gtk_widget_destroy (dlg);
|
||||
|
||||
gdk_flush ();
|
||||
if (dialog)
|
||||
gtk_widget_destroy (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -382,63 +357,56 @@ static void
|
||||
script_fu_browse_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
gtk_quit_add_destroy (1, (GtkObject*) gimp_db_browser (apply_callback));
|
||||
gtk_quit_add_destroy (1, (GtkObject *) gimp_db_browser (apply_callback));
|
||||
}
|
||||
|
||||
static gboolean
|
||||
script_fu_console_scroll_end (gpointer data)
|
||||
script_fu_console_idle_scroll_end (gpointer data)
|
||||
{
|
||||
/* The Text widget in 1.0.1 doesn't like being scrolled before
|
||||
* it is size-allocated, so we wait for it
|
||||
*/
|
||||
if ((cint.console->allocation.width > 1) &&
|
||||
(cint.console->allocation.height > 1))
|
||||
{
|
||||
cint.vadj->value = cint.vadj->upper - cint.vadj->page_size;
|
||||
gtk_signal_emit_by_name (GTK_OBJECT (cint.vadj), "changed");
|
||||
}
|
||||
else
|
||||
gtk_idle_add (script_fu_console_scroll_end, NULL);
|
||||
|
||||
GtkAdjustment *adj;
|
||||
|
||||
adj = GTK_ADJUSTMENT (data);
|
||||
|
||||
gtk_adjustment_set_value (adj, adj->upper - adj->page_size);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
script_fu_console_scroll_end (void)
|
||||
{
|
||||
GtkTextView *view;
|
||||
|
||||
view = GTK_TEXT_VIEW (cint.text_view);
|
||||
|
||||
/* the text view idle updates so we need to idle scroll too
|
||||
*/
|
||||
g_idle_add (script_fu_console_idle_scroll_end, view->vadjustment);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
script_fu_siod_read (GIOChannel *channel,
|
||||
GIOCondition cond,
|
||||
gpointer data)
|
||||
{
|
||||
static gboolean hack = FALSE;
|
||||
gint count;
|
||||
GIOError error;
|
||||
gint count;
|
||||
GIOError error;
|
||||
GtkTextIter cursor;
|
||||
|
||||
count = 0;
|
||||
error = g_io_channel_read (channel, read_buffer, BUFSIZE - 1, &count);
|
||||
|
||||
if (error == G_IO_ERROR_NONE)
|
||||
{
|
||||
#ifndef G_OS_WIN32
|
||||
/* Is this needed any longer on Unix? */
|
||||
if (!hack) /* this is a stupid hack, but as of 10/27/98
|
||||
* the script-fu-console will hang on my system without it.
|
||||
* the real cause of this needs to be tracked down.
|
||||
* posibly a problem with the text widget, or the
|
||||
* signal handlers not getting fully initialized or...
|
||||
* no reports of hangs on other platforms, could just be a
|
||||
* problem with my system.
|
||||
*/
|
||||
{
|
||||
hack = TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
read_buffer[count] = '\0';
|
||||
gtk_text_freeze (GTK_TEXT (cint.console));
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_weak, NULL, NULL,
|
||||
read_buffer, -1);
|
||||
gtk_text_thaw (GTK_TEXT (cint.console));
|
||||
|
||||
script_fu_console_scroll_end (NULL);
|
||||
gtk_text_buffer_get_end_iter (cint.console, &cursor);
|
||||
gtk_text_buffer_insert_with_tags_by_name (cint.console, &cursor,
|
||||
read_buffer, -1,
|
||||
"weak",
|
||||
NULL);
|
||||
|
||||
script_fu_console_scroll_end ();
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
@ -447,7 +415,7 @@ script_fu_siod_read (GIOChannel *channel,
|
||||
static gboolean
|
||||
script_fu_cc_is_empty (void)
|
||||
{
|
||||
gchar *str;
|
||||
const gchar *str;
|
||||
|
||||
if ((str = gtk_entry_get_text (GTK_ENTRY (cint.cc))) == NULL)
|
||||
return TRUE;
|
||||
@ -468,8 +436,9 @@ script_fu_cc_key_function (GtkWidget *widget,
|
||||
GdkEventKey *event,
|
||||
gpointer data)
|
||||
{
|
||||
GList *list;
|
||||
gint direction = 0;
|
||||
GList *list;
|
||||
gint direction = 0;
|
||||
GtkTextIter cursor;
|
||||
|
||||
switch (event->keyval)
|
||||
{
|
||||
@ -484,20 +453,36 @@ script_fu_cc_key_function (GtkWidget *widget,
|
||||
g_free (list->data);
|
||||
list->data = g_strdup (gtk_entry_get_text (GTK_ENTRY (cint.cc)));
|
||||
|
||||
gtk_text_freeze (GTK_TEXT (cint.console));
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font_strong, NULL, NULL,
|
||||
"=> ", -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font, NULL, NULL,
|
||||
gtk_entry_get_text (GTK_ENTRY (cint.cc)), -1);
|
||||
gtk_text_insert (GTK_TEXT (cint.console), cint.font, NULL, NULL,
|
||||
"\n\n", -1);
|
||||
gtk_text_thaw (GTK_TEXT (cint.console));
|
||||
gtk_text_buffer_get_end_iter (cint.console, &cursor);
|
||||
|
||||
cint.vadj->value = cint.vadj->upper - cint.vadj->page_size;
|
||||
gtk_signal_emit_by_name (GTK_OBJECT (cint.vadj), "changed");
|
||||
gtk_text_buffer_insert_with_tags_by_name (cint.console, &cursor,
|
||||
"=> FIXME(\\n)\n", -1,
|
||||
"strong",
|
||||
NULL);
|
||||
{
|
||||
gchar *eek;
|
||||
|
||||
eek = g_strdup_printf ("%s\n\n",
|
||||
gtk_entry_get_text (GTK_ENTRY (cint.cc)));
|
||||
|
||||
gtk_text_buffer_insert_with_tags_by_name (cint.console, &cursor,
|
||||
eek, -1,
|
||||
"weak",
|
||||
NULL);
|
||||
|
||||
g_free (eek);
|
||||
}
|
||||
|
||||
/*
|
||||
gtk_text_buffer_insert_with_tags_by_name (cint.console, &cursor,
|
||||
"\n\n", -1,
|
||||
"weak",
|
||||
NULL);
|
||||
*/
|
||||
|
||||
script_fu_console_scroll_end ();
|
||||
|
||||
gtk_entry_set_text (GTK_ENTRY (cint.cc), "");
|
||||
gdk_flush ();
|
||||
|
||||
siod_interpret_string ((char *) list->data);
|
||||
gimp_displays_flush ();
|
||||
@ -595,13 +580,13 @@ script_fu_open_siod_console (void)
|
||||
}
|
||||
else
|
||||
{
|
||||
gimp_message (_("Unable to open a stream on the SIOD output pipe"));
|
||||
g_message (_("Unable to open a stream on the SIOD output pipe"));
|
||||
siod_output = stdout;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gimp_message (_("Unable to open the SIOD output pipe"));
|
||||
g_message (_("Unable to open the SIOD output pipe"));
|
||||
siod_output = stdout;
|
||||
}
|
||||
}
|
||||
@ -646,7 +631,7 @@ script_fu_eval_run (gchar *name,
|
||||
case GIMP_RUN_INTERACTIVE:
|
||||
case GIMP_RUN_WITH_LAST_VALS:
|
||||
status = GIMP_PDB_CALLING_ERROR;
|
||||
gimp_message (_("Script-Fu evaluate mode allows only noninteractive invocation"));
|
||||
g_message (_("Script-Fu evaluate mode allows only noninteractive invocation"));
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -659,4 +644,3 @@ script_fu_eval_run (gchar *name,
|
||||
values[0].type = GIMP_PDB_STATUS;
|
||||
values[0].data.d_status = status;
|
||||
}
|
||||
|
||||
|
@ -19,15 +19,17 @@
|
||||
#ifndef __SCRIPT_FU_CONSOLE_H__
|
||||
#define __SCRIPT_FU_CONSOLE_H__
|
||||
|
||||
void script_fu_console_run (gchar *name,
|
||||
gint nparams,
|
||||
GimpParam *params,
|
||||
gint *nreturn_vals,
|
||||
GimpParam **return_vals);
|
||||
void script_fu_eval_run (gchar *name,
|
||||
gint nparams,
|
||||
GimpParam *params,
|
||||
gint *nreturn_vals,
|
||||
GimpParam **return_vals);
|
||||
|
||||
void script_fu_console_run (gchar *name,
|
||||
gint nparams,
|
||||
GimpParam *params,
|
||||
gint *nreturn_vals,
|
||||
GimpParam **return_vals);
|
||||
void script_fu_eval_run (gchar *name,
|
||||
gint nparams,
|
||||
GimpParam *params,
|
||||
gint *nreturn_vals,
|
||||
GimpParam **return_vals);
|
||||
|
||||
|
||||
#endif /* __SCRIPT_FU_CONSOLE__ */
|
||||
|
@ -35,10 +35,6 @@
|
||||
#include <libgimp/gimp.h>
|
||||
#include <libgimp/gimpui.h>
|
||||
|
||||
/* FIXME: To get the 'broken' GtkText */
|
||||
#define GTK_ENABLE_BROKEN
|
||||
#include <gtk/gtktext.h>
|
||||
|
||||
#include "siod.h"
|
||||
#include "script-fu-scripts.h"
|
||||
|
||||
@ -257,16 +253,16 @@ extern gchar siod_err_msg[];
|
||||
void
|
||||
script_fu_find_scripts (void)
|
||||
{
|
||||
gchar *path_str;
|
||||
gchar *home;
|
||||
gchar *local_path;
|
||||
gchar *path;
|
||||
gchar *filename;
|
||||
gchar *token;
|
||||
gchar *next_token;
|
||||
gchar *command;
|
||||
gint my_err;
|
||||
DIR *dir;
|
||||
const gchar *home;
|
||||
gchar *path_str;
|
||||
gchar *local_path;
|
||||
gchar *path;
|
||||
gchar *filename;
|
||||
gchar *token;
|
||||
gchar *next_token;
|
||||
gchar *command;
|
||||
gint my_err;
|
||||
DIR *dir;
|
||||
struct dirent *dir_ent;
|
||||
|
||||
/* Make sure to clear any existing scripts */
|
||||
@ -1226,9 +1222,10 @@ script_fu_interface (SFScript *script)
|
||||
gtk_quit_add_destroy (1, GTK_OBJECT (dlg));
|
||||
gtk_window_set_title (GTK_WINDOW (dlg), sf_interface->window_title);
|
||||
gtk_window_set_wmclass (GTK_WINDOW (dlg), "script_fu", "Gimp");
|
||||
gtk_signal_connect_object (GTK_OBJECT (dlg), "delete_event",
|
||||
GTK_SIGNAL_FUNC (script_fu_interface_quit),
|
||||
(GtkObject *) script);
|
||||
|
||||
g_signal_connect_swapped (G_OBJECT (dlg), "delete_event",
|
||||
G_CALLBACK (script_fu_interface_quit),
|
||||
script);
|
||||
|
||||
gimp_help_connect_help_accel (dlg, gimp_standard_help_func,
|
||||
"filters/script-fu.html");
|
||||
@ -1312,10 +1309,11 @@ script_fu_interface (SFScript *script)
|
||||
COLOR_SAMPLE_WIDTH, COLOR_SAMPLE_HEIGHT,
|
||||
&script->arg_values[i].sfa_color,
|
||||
GIMP_COLOR_AREA_FLAT);
|
||||
gtk_signal_connect (GTK_OBJECT (sf_interface->args_widgets[i]),
|
||||
"color_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_color_button_get_color),
|
||||
&script->arg_values[i].sfa_color);
|
||||
|
||||
g_signal_connect (G_OBJECT (sf_interface->args_widgets[i]),
|
||||
"color_changed",
|
||||
G_CALLBACK (gimp_color_button_get_color),
|
||||
&script->arg_values[i].sfa_color);
|
||||
break;
|
||||
|
||||
case SF_TOGGLE:
|
||||
@ -1325,10 +1323,11 @@ script_fu_interface (SFScript *script)
|
||||
gtk_check_button_new_with_label (gettext (script->arg_labels[i]));
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sf_interface->args_widgets[i]),
|
||||
script->arg_values[i].sfa_toggle);
|
||||
gtk_signal_connect (GTK_OBJECT (sf_interface->args_widgets[i]),
|
||||
"toggled",
|
||||
GTK_SIGNAL_FUNC (gimp_toggle_button_update),
|
||||
&script->arg_values[i].sfa_toggle);
|
||||
|
||||
g_signal_connect (G_OBJECT (sf_interface->args_widgets[i]),
|
||||
"toggled",
|
||||
G_CALLBACK (gimp_toggle_button_update),
|
||||
&script->arg_values[i].sfa_toggle);
|
||||
break;
|
||||
|
||||
case SF_VALUE:
|
||||
@ -1391,10 +1390,10 @@ script_fu_interface (SFScript *script)
|
||||
script->arg_values[i].sfa_file.fileselection =
|
||||
sf_interface->args_widgets[i];
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (sf_interface->args_widgets[i]),
|
||||
"filename_changed",
|
||||
(GtkSignalFunc) script_fu_file_selection_callback,
|
||||
&script->arg_values[i].sfa_file);
|
||||
g_signal_connect (G_OBJECT (sf_interface->args_widgets[i]),
|
||||
"filename_changed",
|
||||
G_CALLBACK (script_fu_file_selection_callback),
|
||||
&script->arg_values[i].sfa_file);
|
||||
break;
|
||||
|
||||
case SF_FONT:
|
||||
@ -1412,10 +1411,9 @@ script_fu_interface (SFScript *script)
|
||||
script_fu_font_preview (script->arg_values[i].sfa_font.preview,
|
||||
script->arg_values[i].sfa_font.fontname);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (sf_interface->args_widgets[i]),
|
||||
"clicked",
|
||||
(GtkSignalFunc) script_fu_font_preview_callback,
|
||||
&script->arg_values[i].sfa_font);
|
||||
g_signal_connect (G_OBJECT (sf_interface->args_widgets[i]), "clicked",
|
||||
G_CALLBACK (script_fu_font_preview_callback),
|
||||
&script->arg_values[i].sfa_font);
|
||||
break;
|
||||
|
||||
case SF_PATTERN:
|
||||
@ -1454,7 +1452,7 @@ script_fu_interface (SFScript *script)
|
||||
menu_item = gtk_menu_item_new_with_label (gettext ((gchar *)list->data));
|
||||
gtk_object_set_user_data (GTK_OBJECT (menu_item),
|
||||
GUINT_TO_POINTER (j));
|
||||
gtk_menu_append (GTK_MENU (menu), menu_item);
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
|
||||
gtk_widget_show (menu_item);
|
||||
}
|
||||
|
||||
@ -1481,15 +1479,16 @@ script_fu_interface (SFScript *script)
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 4);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
button = gtk_button_new_with_label (_("Reset to Defaults"));
|
||||
gtk_misc_set_padding (GTK_MISC (GTK_BIN (button)->child), 2, 0);
|
||||
gtk_signal_connect (GTK_OBJECT (button), "clicked",
|
||||
(GtkSignalFunc) script_fu_reset_callback,
|
||||
script);
|
||||
gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0);
|
||||
gtk_widget_show (button);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
g_signal_connect (G_OBJECT (button), "clicked",
|
||||
G_CALLBACK (script_fu_reset_callback),
|
||||
script);
|
||||
|
||||
gtk_widget_show (vbox);
|
||||
gtk_widget_show (frame);
|
||||
@ -1503,44 +1502,45 @@ script_fu_interface (SFScript *script)
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 2);
|
||||
gtk_box_pack_start (GTK_BOX (main_box), hbox, FALSE, TRUE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
bbox = gtk_hbutton_box_new ();
|
||||
gtk_button_box_set_spacing (GTK_BUTTON_BOX (bbox), 4);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), bbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (bbox);
|
||||
|
||||
button = gtk_button_new_with_label (_("About"));
|
||||
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
|
||||
gtk_signal_connect (GTK_OBJECT (button), "clicked",
|
||||
GTK_SIGNAL_FUNC (script_fu_about_callback),
|
||||
script);
|
||||
gtk_container_add (GTK_CONTAINER (bbox), button);
|
||||
gtk_widget_show (button);
|
||||
|
||||
gtk_widget_show (bbox);
|
||||
g_signal_connect (G_OBJECT (button), "clicked",
|
||||
G_CALLBACK (script_fu_about_callback),
|
||||
script);
|
||||
|
||||
bbox = gtk_hbutton_box_new ();
|
||||
gtk_button_box_set_spacing (GTK_BUTTON_BOX (bbox), 4);
|
||||
gtk_box_pack_end (GTK_BOX (hbox), bbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (bbox);
|
||||
|
||||
button = gtk_button_new_with_label (_("OK"));
|
||||
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
|
||||
gtk_signal_connect (GTK_OBJECT (button), "clicked",
|
||||
GTK_SIGNAL_FUNC (script_fu_ok_callback),
|
||||
script);
|
||||
gtk_container_add (GTK_CONTAINER (bbox), button);
|
||||
gtk_widget_grab_default (button);
|
||||
gtk_widget_show (button);
|
||||
|
||||
g_signal_connect (G_OBJECT (button), "clicked",
|
||||
G_CALLBACK (script_fu_ok_callback),
|
||||
script);
|
||||
|
||||
button = gtk_button_new_with_label (_("Cancel"));
|
||||
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
|
||||
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
|
||||
GTK_SIGNAL_FUNC (script_fu_interface_quit),
|
||||
(GtkObject *) script);
|
||||
gtk_container_add (GTK_CONTAINER (bbox), button);
|
||||
gtk_widget_show (button);
|
||||
|
||||
gtk_widget_show (bbox);
|
||||
gtk_widget_show (hbox);
|
||||
g_signal_connect_swapped (G_OBJECT (button), "clicked",
|
||||
G_CALLBACK (script_fu_interface_quit),
|
||||
script);
|
||||
|
||||
/* The statusbar (well it's a faked statusbar...) */
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
@ -1833,13 +1833,13 @@ script_fu_ok_callback (GtkWidget *widget,
|
||||
break;
|
||||
|
||||
case SF_VALUE:
|
||||
text = gtk_entry_get_text (GTK_ENTRY (sf_interface->args_widgets[i]));
|
||||
text = (gchar *) gtk_entry_get_text (GTK_ENTRY (sf_interface->args_widgets[i]));
|
||||
g_free (script->arg_values[i].sfa_value);
|
||||
script->arg_values[i].sfa_value = g_strdup (text);
|
||||
break;
|
||||
|
||||
case SF_STRING:
|
||||
text = gtk_entry_get_text (GTK_ENTRY (sf_interface->args_widgets[i]));
|
||||
text = (gchar *) gtk_entry_get_text (GTK_ENTRY (sf_interface->args_widgets[i]));
|
||||
g_free (script->arg_values[i].sfa_value);
|
||||
script->arg_values[i].sfa_value = g_strdup (text);
|
||||
escaped = ESCAPE (text);
|
||||
@ -1940,30 +1940,37 @@ static void
|
||||
script_fu_about_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *frame;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *button;
|
||||
GtkWidget *label;
|
||||
GtkWidget *table;
|
||||
GtkWidget *text;
|
||||
GtkWidget *vscrollbar;
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *frame;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *table;
|
||||
GtkWidget *text_view;
|
||||
GtkTextBuffer *text_buffer;
|
||||
|
||||
SFScript *script = (SFScript *) data;
|
||||
|
||||
if (sf_interface->about_dialog == NULL)
|
||||
{
|
||||
dialog = gtk_dialog_new ();
|
||||
gtk_window_set_title (GTK_WINDOW (dialog), sf_interface->window_title);
|
||||
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
|
||||
gtk_signal_connect_object (GTK_OBJECT (dialog), "delete_event",
|
||||
GTK_SIGNAL_FUNC (gtk_widget_destroy),
|
||||
GTK_OBJECT (dialog));
|
||||
dialog = gimp_dialog_new (sf_interface->window_title, "script-fu-about",
|
||||
gimp_standard_help_func,
|
||||
"filters/script-fu.html",
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, FALSE,
|
||||
|
||||
_("Close"), gtk_widget_destroy, NULL,
|
||||
1, NULL, TRUE, TRUE,
|
||||
|
||||
NULL);
|
||||
|
||||
sf_interface->about_dialog = dialog;
|
||||
|
||||
g_signal_connect (G_OBJECT (dialog), "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&sf_interface->about_dialog);
|
||||
|
||||
gimp_help_connect_help_accel (dialog, gimp_standard_help_func,
|
||||
"filters/script-fu.html");
|
||||
|
||||
frame = gtk_frame_new (NULL);
|
||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (frame), 2);
|
||||
@ -1987,30 +1994,24 @@ script_fu_about_callback (GtkWidget *widget,
|
||||
gtk_widget_show (label);
|
||||
|
||||
/* the help display */
|
||||
table = gtk_table_new (2, 2, FALSE);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (table), 0, 2);
|
||||
gtk_table_set_col_spacing (GTK_TABLE (table), 0, 2);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
|
||||
gtk_widget_show (table);
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, TRUE, TRUE, 0);
|
||||
gtk_widget_show (scrolled_window);
|
||||
|
||||
text = gtk_text_new (NULL, NULL);
|
||||
gtk_text_set_editable (GTK_TEXT (text), FALSE);
|
||||
gtk_text_set_word_wrap (GTK_TEXT (text), TRUE);
|
||||
gtk_table_attach (GTK_TABLE (table), text, 0, 1, 0, 1,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_widget_set_usize (text, 200, 60);
|
||||
gtk_widget_show (text);
|
||||
text_buffer = gtk_text_buffer_new (NULL);
|
||||
text_view = gtk_text_view_new_with_buffer (text_buffer);
|
||||
g_object_unref (G_OBJECT (text_buffer));
|
||||
|
||||
vscrollbar = gtk_vscrollbar_new (GTK_TEXT (text)->vadj);
|
||||
gtk_table_attach (GTK_TABLE (table), vscrollbar, 1, 2, 0, 1,
|
||||
GTK_FILL, GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_widget_show (vscrollbar);
|
||||
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
|
||||
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD);
|
||||
gtk_widget_set_usize (text_view, 200, 60);
|
||||
gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
|
||||
gtk_widget_show (text_view);
|
||||
|
||||
gtk_widget_realize (text);
|
||||
gtk_text_freeze (GTK_TEXT (text));
|
||||
gtk_text_insert (GTK_TEXT (text), NULL, &text->style->black, NULL,
|
||||
script->help, -1);
|
||||
gtk_text_buffer_set_text (text_buffer, script->help, -1);
|
||||
|
||||
/* author, copyright, etc. */
|
||||
table = gtk_table_new (2, 4, FALSE);
|
||||
@ -2046,25 +2047,6 @@ script_fu_about_callback (GtkWidget *widget,
|
||||
}
|
||||
|
||||
gtk_widget_show (frame);
|
||||
gtk_text_thaw (GTK_TEXT (text));
|
||||
|
||||
/* action area */
|
||||
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->action_area), 2);
|
||||
button = gtk_button_new_with_label (_("Close"));
|
||||
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
|
||||
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
|
||||
GTK_SIGNAL_FUNC (gtk_widget_destroy),
|
||||
GTK_OBJECT (dialog));
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
|
||||
button, TRUE, TRUE, 0);
|
||||
gtk_widget_grab_default (button);
|
||||
gtk_widget_show (button);
|
||||
|
||||
sf_interface->about_dialog = dialog;
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (dialog), "destroy",
|
||||
GTK_SIGNAL_FUNC (gtk_widget_destroyed),
|
||||
&sf_interface->about_dialog);
|
||||
}
|
||||
|
||||
gtk_window_set_position (GTK_WINDOW (sf_interface->about_dialog),
|
||||
@ -2201,27 +2183,29 @@ script_fu_font_preview_callback (GtkWidget *widget,
|
||||
|
||||
font = (SFFont *) data;
|
||||
|
||||
if (!font->dialog)
|
||||
if (! font->dialog)
|
||||
{
|
||||
font->dialog =
|
||||
font->dialog =
|
||||
gtk_font_selection_dialog_new (_("Script-Fu Font Selection"));
|
||||
fsd = GTK_FONT_SELECTION_DIALOG (font->dialog);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (fsd->ok_button), "clicked",
|
||||
GTK_SIGNAL_FUNC (script_fu_font_dialog_ok),
|
||||
font);
|
||||
gtk_signal_connect (GTK_OBJECT (fsd), "delete_event",
|
||||
GTK_SIGNAL_FUNC (script_fu_font_dialog_delete),
|
||||
font);
|
||||
gtk_signal_connect (GTK_OBJECT (fsd), "destroy",
|
||||
GTK_SIGNAL_FUNC (gtk_widget_destroyed),
|
||||
&font->dialog);
|
||||
gtk_signal_connect (GTK_OBJECT (fsd->cancel_button), "clicked",
|
||||
GTK_SIGNAL_FUNC (script_fu_font_dialog_cancel),
|
||||
font);
|
||||
g_signal_connect (G_OBJECT (fsd->ok_button), "clicked",
|
||||
G_CALLBACK (script_fu_font_dialog_ok),
|
||||
font);
|
||||
g_signal_connect (G_OBJECT (fsd), "delete_event",
|
||||
G_CALLBACK (script_fu_font_dialog_delete),
|
||||
font);
|
||||
g_signal_connect (G_OBJECT (fsd), "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&font->dialog);
|
||||
g_signal_connect (G_OBJECT (fsd->cancel_button), "clicked",
|
||||
G_CALLBACK (script_fu_font_dialog_cancel),
|
||||
font);
|
||||
}
|
||||
else
|
||||
fsd = GTK_FONT_SELECTION_DIALOG (font->dialog);
|
||||
{
|
||||
fsd = GTK_FONT_SELECTION_DIALOG (font->dialog);
|
||||
}
|
||||
|
||||
gtk_font_selection_dialog_set_font_name (fsd, font->fontname);
|
||||
gtk_window_set_position (GTK_WINDOW (font->dialog), GTK_WIN_POS_MOUSE);
|
||||
|
@ -35,10 +35,6 @@
|
||||
#include <libgimp/gimp.h>
|
||||
#include <libgimp/gimpui.h>
|
||||
|
||||
/* FIXME: To get the 'broken' GtkText */
|
||||
#define GTK_ENABLE_BROKEN
|
||||
#include <gtk/gtktext.h>
|
||||
|
||||
#include "siod.h"
|
||||
#include "script-fu-scripts.h"
|
||||
|
||||
@ -257,16 +253,16 @@ extern gchar siod_err_msg[];
|
||||
void
|
||||
script_fu_find_scripts (void)
|
||||
{
|
||||
gchar *path_str;
|
||||
gchar *home;
|
||||
gchar *local_path;
|
||||
gchar *path;
|
||||
gchar *filename;
|
||||
gchar *token;
|
||||
gchar *next_token;
|
||||
gchar *command;
|
||||
gint my_err;
|
||||
DIR *dir;
|
||||
const gchar *home;
|
||||
gchar *path_str;
|
||||
gchar *local_path;
|
||||
gchar *path;
|
||||
gchar *filename;
|
||||
gchar *token;
|
||||
gchar *next_token;
|
||||
gchar *command;
|
||||
gint my_err;
|
||||
DIR *dir;
|
||||
struct dirent *dir_ent;
|
||||
|
||||
/* Make sure to clear any existing scripts */
|
||||
@ -1226,9 +1222,10 @@ script_fu_interface (SFScript *script)
|
||||
gtk_quit_add_destroy (1, GTK_OBJECT (dlg));
|
||||
gtk_window_set_title (GTK_WINDOW (dlg), sf_interface->window_title);
|
||||
gtk_window_set_wmclass (GTK_WINDOW (dlg), "script_fu", "Gimp");
|
||||
gtk_signal_connect_object (GTK_OBJECT (dlg), "delete_event",
|
||||
GTK_SIGNAL_FUNC (script_fu_interface_quit),
|
||||
(GtkObject *) script);
|
||||
|
||||
g_signal_connect_swapped (G_OBJECT (dlg), "delete_event",
|
||||
G_CALLBACK (script_fu_interface_quit),
|
||||
script);
|
||||
|
||||
gimp_help_connect_help_accel (dlg, gimp_standard_help_func,
|
||||
"filters/script-fu.html");
|
||||
@ -1312,10 +1309,11 @@ script_fu_interface (SFScript *script)
|
||||
COLOR_SAMPLE_WIDTH, COLOR_SAMPLE_HEIGHT,
|
||||
&script->arg_values[i].sfa_color,
|
||||
GIMP_COLOR_AREA_FLAT);
|
||||
gtk_signal_connect (GTK_OBJECT (sf_interface->args_widgets[i]),
|
||||
"color_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_color_button_get_color),
|
||||
&script->arg_values[i].sfa_color);
|
||||
|
||||
g_signal_connect (G_OBJECT (sf_interface->args_widgets[i]),
|
||||
"color_changed",
|
||||
G_CALLBACK (gimp_color_button_get_color),
|
||||
&script->arg_values[i].sfa_color);
|
||||
break;
|
||||
|
||||
case SF_TOGGLE:
|
||||
@ -1325,10 +1323,11 @@ script_fu_interface (SFScript *script)
|
||||
gtk_check_button_new_with_label (gettext (script->arg_labels[i]));
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sf_interface->args_widgets[i]),
|
||||
script->arg_values[i].sfa_toggle);
|
||||
gtk_signal_connect (GTK_OBJECT (sf_interface->args_widgets[i]),
|
||||
"toggled",
|
||||
GTK_SIGNAL_FUNC (gimp_toggle_button_update),
|
||||
&script->arg_values[i].sfa_toggle);
|
||||
|
||||
g_signal_connect (G_OBJECT (sf_interface->args_widgets[i]),
|
||||
"toggled",
|
||||
G_CALLBACK (gimp_toggle_button_update),
|
||||
&script->arg_values[i].sfa_toggle);
|
||||
break;
|
||||
|
||||
case SF_VALUE:
|
||||
@ -1391,10 +1390,10 @@ script_fu_interface (SFScript *script)
|
||||
script->arg_values[i].sfa_file.fileselection =
|
||||
sf_interface->args_widgets[i];
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (sf_interface->args_widgets[i]),
|
||||
"filename_changed",
|
||||
(GtkSignalFunc) script_fu_file_selection_callback,
|
||||
&script->arg_values[i].sfa_file);
|
||||
g_signal_connect (G_OBJECT (sf_interface->args_widgets[i]),
|
||||
"filename_changed",
|
||||
G_CALLBACK (script_fu_file_selection_callback),
|
||||
&script->arg_values[i].sfa_file);
|
||||
break;
|
||||
|
||||
case SF_FONT:
|
||||
@ -1412,10 +1411,9 @@ script_fu_interface (SFScript *script)
|
||||
script_fu_font_preview (script->arg_values[i].sfa_font.preview,
|
||||
script->arg_values[i].sfa_font.fontname);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (sf_interface->args_widgets[i]),
|
||||
"clicked",
|
||||
(GtkSignalFunc) script_fu_font_preview_callback,
|
||||
&script->arg_values[i].sfa_font);
|
||||
g_signal_connect (G_OBJECT (sf_interface->args_widgets[i]), "clicked",
|
||||
G_CALLBACK (script_fu_font_preview_callback),
|
||||
&script->arg_values[i].sfa_font);
|
||||
break;
|
||||
|
||||
case SF_PATTERN:
|
||||
@ -1454,7 +1452,7 @@ script_fu_interface (SFScript *script)
|
||||
menu_item = gtk_menu_item_new_with_label (gettext ((gchar *)list->data));
|
||||
gtk_object_set_user_data (GTK_OBJECT (menu_item),
|
||||
GUINT_TO_POINTER (j));
|
||||
gtk_menu_append (GTK_MENU (menu), menu_item);
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
|
||||
gtk_widget_show (menu_item);
|
||||
}
|
||||
|
||||
@ -1481,15 +1479,16 @@ script_fu_interface (SFScript *script)
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 4);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
button = gtk_button_new_with_label (_("Reset to Defaults"));
|
||||
gtk_misc_set_padding (GTK_MISC (GTK_BIN (button)->child), 2, 0);
|
||||
gtk_signal_connect (GTK_OBJECT (button), "clicked",
|
||||
(GtkSignalFunc) script_fu_reset_callback,
|
||||
script);
|
||||
gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0);
|
||||
gtk_widget_show (button);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
g_signal_connect (G_OBJECT (button), "clicked",
|
||||
G_CALLBACK (script_fu_reset_callback),
|
||||
script);
|
||||
|
||||
gtk_widget_show (vbox);
|
||||
gtk_widget_show (frame);
|
||||
@ -1503,44 +1502,45 @@ script_fu_interface (SFScript *script)
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 2);
|
||||
gtk_box_pack_start (GTK_BOX (main_box), hbox, FALSE, TRUE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
bbox = gtk_hbutton_box_new ();
|
||||
gtk_button_box_set_spacing (GTK_BUTTON_BOX (bbox), 4);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), bbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (bbox);
|
||||
|
||||
button = gtk_button_new_with_label (_("About"));
|
||||
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
|
||||
gtk_signal_connect (GTK_OBJECT (button), "clicked",
|
||||
GTK_SIGNAL_FUNC (script_fu_about_callback),
|
||||
script);
|
||||
gtk_container_add (GTK_CONTAINER (bbox), button);
|
||||
gtk_widget_show (button);
|
||||
|
||||
gtk_widget_show (bbox);
|
||||
g_signal_connect (G_OBJECT (button), "clicked",
|
||||
G_CALLBACK (script_fu_about_callback),
|
||||
script);
|
||||
|
||||
bbox = gtk_hbutton_box_new ();
|
||||
gtk_button_box_set_spacing (GTK_BUTTON_BOX (bbox), 4);
|
||||
gtk_box_pack_end (GTK_BOX (hbox), bbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (bbox);
|
||||
|
||||
button = gtk_button_new_with_label (_("OK"));
|
||||
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
|
||||
gtk_signal_connect (GTK_OBJECT (button), "clicked",
|
||||
GTK_SIGNAL_FUNC (script_fu_ok_callback),
|
||||
script);
|
||||
gtk_container_add (GTK_CONTAINER (bbox), button);
|
||||
gtk_widget_grab_default (button);
|
||||
gtk_widget_show (button);
|
||||
|
||||
g_signal_connect (G_OBJECT (button), "clicked",
|
||||
G_CALLBACK (script_fu_ok_callback),
|
||||
script);
|
||||
|
||||
button = gtk_button_new_with_label (_("Cancel"));
|
||||
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
|
||||
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
|
||||
GTK_SIGNAL_FUNC (script_fu_interface_quit),
|
||||
(GtkObject *) script);
|
||||
gtk_container_add (GTK_CONTAINER (bbox), button);
|
||||
gtk_widget_show (button);
|
||||
|
||||
gtk_widget_show (bbox);
|
||||
gtk_widget_show (hbox);
|
||||
g_signal_connect_swapped (G_OBJECT (button), "clicked",
|
||||
G_CALLBACK (script_fu_interface_quit),
|
||||
script);
|
||||
|
||||
/* The statusbar (well it's a faked statusbar...) */
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
@ -1833,13 +1833,13 @@ script_fu_ok_callback (GtkWidget *widget,
|
||||
break;
|
||||
|
||||
case SF_VALUE:
|
||||
text = gtk_entry_get_text (GTK_ENTRY (sf_interface->args_widgets[i]));
|
||||
text = (gchar *) gtk_entry_get_text (GTK_ENTRY (sf_interface->args_widgets[i]));
|
||||
g_free (script->arg_values[i].sfa_value);
|
||||
script->arg_values[i].sfa_value = g_strdup (text);
|
||||
break;
|
||||
|
||||
case SF_STRING:
|
||||
text = gtk_entry_get_text (GTK_ENTRY (sf_interface->args_widgets[i]));
|
||||
text = (gchar *) gtk_entry_get_text (GTK_ENTRY (sf_interface->args_widgets[i]));
|
||||
g_free (script->arg_values[i].sfa_value);
|
||||
script->arg_values[i].sfa_value = g_strdup (text);
|
||||
escaped = ESCAPE (text);
|
||||
@ -1940,30 +1940,37 @@ static void
|
||||
script_fu_about_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *frame;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *button;
|
||||
GtkWidget *label;
|
||||
GtkWidget *table;
|
||||
GtkWidget *text;
|
||||
GtkWidget *vscrollbar;
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *frame;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *table;
|
||||
GtkWidget *text_view;
|
||||
GtkTextBuffer *text_buffer;
|
||||
|
||||
SFScript *script = (SFScript *) data;
|
||||
|
||||
if (sf_interface->about_dialog == NULL)
|
||||
{
|
||||
dialog = gtk_dialog_new ();
|
||||
gtk_window_set_title (GTK_WINDOW (dialog), sf_interface->window_title);
|
||||
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
|
||||
gtk_signal_connect_object (GTK_OBJECT (dialog), "delete_event",
|
||||
GTK_SIGNAL_FUNC (gtk_widget_destroy),
|
||||
GTK_OBJECT (dialog));
|
||||
dialog = gimp_dialog_new (sf_interface->window_title, "script-fu-about",
|
||||
gimp_standard_help_func,
|
||||
"filters/script-fu.html",
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, FALSE,
|
||||
|
||||
_("Close"), gtk_widget_destroy, NULL,
|
||||
1, NULL, TRUE, TRUE,
|
||||
|
||||
NULL);
|
||||
|
||||
sf_interface->about_dialog = dialog;
|
||||
|
||||
g_signal_connect (G_OBJECT (dialog), "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&sf_interface->about_dialog);
|
||||
|
||||
gimp_help_connect_help_accel (dialog, gimp_standard_help_func,
|
||||
"filters/script-fu.html");
|
||||
|
||||
frame = gtk_frame_new (NULL);
|
||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (frame), 2);
|
||||
@ -1987,30 +1994,24 @@ script_fu_about_callback (GtkWidget *widget,
|
||||
gtk_widget_show (label);
|
||||
|
||||
/* the help display */
|
||||
table = gtk_table_new (2, 2, FALSE);
|
||||
gtk_table_set_row_spacing (GTK_TABLE (table), 0, 2);
|
||||
gtk_table_set_col_spacing (GTK_TABLE (table), 0, 2);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
|
||||
gtk_widget_show (table);
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, TRUE, TRUE, 0);
|
||||
gtk_widget_show (scrolled_window);
|
||||
|
||||
text = gtk_text_new (NULL, NULL);
|
||||
gtk_text_set_editable (GTK_TEXT (text), FALSE);
|
||||
gtk_text_set_word_wrap (GTK_TEXT (text), TRUE);
|
||||
gtk_table_attach (GTK_TABLE (table), text, 0, 1, 0, 1,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_widget_set_usize (text, 200, 60);
|
||||
gtk_widget_show (text);
|
||||
text_buffer = gtk_text_buffer_new (NULL);
|
||||
text_view = gtk_text_view_new_with_buffer (text_buffer);
|
||||
g_object_unref (G_OBJECT (text_buffer));
|
||||
|
||||
vscrollbar = gtk_vscrollbar_new (GTK_TEXT (text)->vadj);
|
||||
gtk_table_attach (GTK_TABLE (table), vscrollbar, 1, 2, 0, 1,
|
||||
GTK_FILL, GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0);
|
||||
gtk_widget_show (vscrollbar);
|
||||
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
|
||||
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD);
|
||||
gtk_widget_set_usize (text_view, 200, 60);
|
||||
gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
|
||||
gtk_widget_show (text_view);
|
||||
|
||||
gtk_widget_realize (text);
|
||||
gtk_text_freeze (GTK_TEXT (text));
|
||||
gtk_text_insert (GTK_TEXT (text), NULL, &text->style->black, NULL,
|
||||
script->help, -1);
|
||||
gtk_text_buffer_set_text (text_buffer, script->help, -1);
|
||||
|
||||
/* author, copyright, etc. */
|
||||
table = gtk_table_new (2, 4, FALSE);
|
||||
@ -2046,25 +2047,6 @@ script_fu_about_callback (GtkWidget *widget,
|
||||
}
|
||||
|
||||
gtk_widget_show (frame);
|
||||
gtk_text_thaw (GTK_TEXT (text));
|
||||
|
||||
/* action area */
|
||||
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->action_area), 2);
|
||||
button = gtk_button_new_with_label (_("Close"));
|
||||
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
|
||||
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
|
||||
GTK_SIGNAL_FUNC (gtk_widget_destroy),
|
||||
GTK_OBJECT (dialog));
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
|
||||
button, TRUE, TRUE, 0);
|
||||
gtk_widget_grab_default (button);
|
||||
gtk_widget_show (button);
|
||||
|
||||
sf_interface->about_dialog = dialog;
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (dialog), "destroy",
|
||||
GTK_SIGNAL_FUNC (gtk_widget_destroyed),
|
||||
&sf_interface->about_dialog);
|
||||
}
|
||||
|
||||
gtk_window_set_position (GTK_WINDOW (sf_interface->about_dialog),
|
||||
@ -2201,27 +2183,29 @@ script_fu_font_preview_callback (GtkWidget *widget,
|
||||
|
||||
font = (SFFont *) data;
|
||||
|
||||
if (!font->dialog)
|
||||
if (! font->dialog)
|
||||
{
|
||||
font->dialog =
|
||||
font->dialog =
|
||||
gtk_font_selection_dialog_new (_("Script-Fu Font Selection"));
|
||||
fsd = GTK_FONT_SELECTION_DIALOG (font->dialog);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (fsd->ok_button), "clicked",
|
||||
GTK_SIGNAL_FUNC (script_fu_font_dialog_ok),
|
||||
font);
|
||||
gtk_signal_connect (GTK_OBJECT (fsd), "delete_event",
|
||||
GTK_SIGNAL_FUNC (script_fu_font_dialog_delete),
|
||||
font);
|
||||
gtk_signal_connect (GTK_OBJECT (fsd), "destroy",
|
||||
GTK_SIGNAL_FUNC (gtk_widget_destroyed),
|
||||
&font->dialog);
|
||||
gtk_signal_connect (GTK_OBJECT (fsd->cancel_button), "clicked",
|
||||
GTK_SIGNAL_FUNC (script_fu_font_dialog_cancel),
|
||||
font);
|
||||
g_signal_connect (G_OBJECT (fsd->ok_button), "clicked",
|
||||
G_CALLBACK (script_fu_font_dialog_ok),
|
||||
font);
|
||||
g_signal_connect (G_OBJECT (fsd), "delete_event",
|
||||
G_CALLBACK (script_fu_font_dialog_delete),
|
||||
font);
|
||||
g_signal_connect (G_OBJECT (fsd), "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&font->dialog);
|
||||
g_signal_connect (G_OBJECT (fsd->cancel_button), "clicked",
|
||||
G_CALLBACK (script_fu_font_dialog_cancel),
|
||||
font);
|
||||
}
|
||||
else
|
||||
fsd = GTK_FONT_SELECTION_DIALOG (font->dialog);
|
||||
{
|
||||
fsd = GTK_FONT_SELECTION_DIALOG (font->dialog);
|
||||
}
|
||||
|
||||
gtk_font_selection_dialog_set_font_name (fsd, font->fontname);
|
||||
gtk_window_set_position (GTK_WINDOW (font->dialog), GTK_WIN_POS_MOUSE);
|
||||
|
@ -26,18 +26,20 @@
|
||||
#endif
|
||||
#include <glib.h>
|
||||
|
||||
|
||||
static void script_fu_text_console_interface (void);
|
||||
|
||||
|
||||
void
|
||||
script_fu_text_console_run (char *name,
|
||||
int nparams,
|
||||
GimpParam *params,
|
||||
int *nreturn_vals,
|
||||
GimpParam **return_vals)
|
||||
script_fu_text_console_run (gchar *name,
|
||||
gint nparams,
|
||||
GimpParam *params,
|
||||
gint *nreturn_vals,
|
||||
GimpParam **return_vals)
|
||||
{
|
||||
static GimpParam values[1];
|
||||
static GimpParam values[1];
|
||||
GimpPDBStatusType status = GIMP_PDB_SUCCESS;
|
||||
GimpRunModeType run_mode;
|
||||
GimpRunModeType run_mode;
|
||||
|
||||
run_mode = params[0].data.d_int32;
|
||||
|
||||
@ -57,7 +59,7 @@ script_fu_text_console_run (char *name,
|
||||
case GIMP_RUN_WITH_LAST_VALS:
|
||||
case GIMP_RUN_NONINTERACTIVE:
|
||||
status = GIMP_PDB_CALLING_ERROR;
|
||||
gimp_message (_("Script-Fu console mode allows only interactive invocation"));
|
||||
g_message (_("Script-Fu console mode allows only interactive invocation"));
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -65,24 +67,25 @@ script_fu_text_console_run (char *name,
|
||||
}
|
||||
|
||||
*nreturn_vals = 1;
|
||||
*return_vals = values;
|
||||
*return_vals = values;
|
||||
|
||||
values[0].type = GIMP_PDB_STATUS;
|
||||
values[0].type = GIMP_PDB_STATUS;
|
||||
values[0].data.d_status = status;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
read_command (GString *command)
|
||||
{
|
||||
unsigned char c;
|
||||
int next;
|
||||
int left = 0, right = 0;
|
||||
guchar c;
|
||||
gint next;
|
||||
gint left = 0;
|
||||
gint right = 0;
|
||||
|
||||
g_string_assign (command, "");
|
||||
|
||||
while ((next = fgetc (stdin)) != EOF)
|
||||
{
|
||||
c = (unsigned char) next;
|
||||
c = (guchar) next;
|
||||
|
||||
if ((c == '\n') && (left == right))
|
||||
break;
|
||||
@ -101,8 +104,8 @@ read_command (GString *command)
|
||||
static void
|
||||
script_fu_text_console_interface (void)
|
||||
{
|
||||
gboolean quit = FALSE;
|
||||
GString *command;
|
||||
gboolean quit = FALSE;
|
||||
GString *command;
|
||||
|
||||
command = g_string_new ("");
|
||||
|
||||
@ -115,6 +118,3 @@ script_fu_text_console_interface (void)
|
||||
|
||||
g_string_free (command, TRUE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -19,10 +19,12 @@
|
||||
#ifndef __SCRIPT_FU_TEXT_CONSOLE_H__
|
||||
#define __SCRIPT_FU_TEXT_CONSOLE_H__
|
||||
|
||||
void script_fu_text_console_run (gchar *name,
|
||||
gint nparams,
|
||||
GimpParam *params,
|
||||
gint *nreturn_vals,
|
||||
GimpParam **return_vals);
|
||||
|
||||
#endif /* __SCRIPT_FU_CONSOLE__ */
|
||||
void script_fu_text_console_run (gchar *name,
|
||||
gint nparams,
|
||||
GimpParam *params,
|
||||
gint *nreturn_vals,
|
||||
GimpParam **return_vals);
|
||||
|
||||
|
||||
#endif /* __SCRIPT_FU_TEXT_CONSOLE__ */
|
||||
|
@ -199,16 +199,17 @@ script_fu_run (gchar *name,
|
||||
siod_init (FALSE);
|
||||
}
|
||||
|
||||
|
||||
/* Load all of the available scripts */
|
||||
script_fu_find_scripts ();
|
||||
|
||||
/*
|
||||
* The main, automatically installed script fu extension.
|
||||
* For things like logos and effects that are runnable from GIMP menus.
|
||||
*/
|
||||
if (strcmp (name, "extension_script_fu") == 0)
|
||||
{
|
||||
/*
|
||||
* The main, automatically installed script fu extension. For
|
||||
* things like logos and effects that are runnable from GIMP
|
||||
* menus.
|
||||
*/
|
||||
|
||||
static GimpParam values[1];
|
||||
GimpPDBStatusType status = GIMP_PDB_SUCCESS;
|
||||
|
||||
@ -224,32 +225,43 @@ script_fu_run (gchar *name,
|
||||
values[0].type = GIMP_PDB_STATUS;
|
||||
values[0].data.d_status = status;
|
||||
}
|
||||
/*
|
||||
* The script-fu consoles for interactive SIOD development
|
||||
*/
|
||||
else if (strcmp (name, "extension_script_fu_text_console") == 0)
|
||||
{
|
||||
script_fu_text_console_run (name, nparams, param, nreturn_vals, return_vals);
|
||||
/*
|
||||
* The script-fu text console for interactive SIOD development
|
||||
*/
|
||||
|
||||
script_fu_text_console_run (name, nparams, param,
|
||||
nreturn_vals, return_vals);
|
||||
}
|
||||
else if (strcmp (name, "extension_script_fu_console") == 0)
|
||||
{
|
||||
script_fu_console_run (name, nparams, param, nreturn_vals, return_vals);
|
||||
/*
|
||||
* The script-fu console for interactive SIOD development
|
||||
*/
|
||||
|
||||
script_fu_console_run (name, nparams, param,
|
||||
nreturn_vals, return_vals);
|
||||
}
|
||||
#ifndef G_OS_WIN32
|
||||
/*
|
||||
* The script-fu server for remote operation
|
||||
*/
|
||||
else if (strcmp (name, "extension_script_fu_server") == 0)
|
||||
{
|
||||
script_fu_server_run (name, nparams, param, nreturn_vals, return_vals);
|
||||
/*
|
||||
* The script-fu server for remote operation
|
||||
*/
|
||||
|
||||
script_fu_server_run (name, nparams, param,
|
||||
nreturn_vals, return_vals);
|
||||
}
|
||||
#endif
|
||||
/*
|
||||
* A non-interactive "console" (for batch mode)
|
||||
*/
|
||||
else if (strcmp (name, "extension_script_fu_eval") == 0)
|
||||
{
|
||||
script_fu_eval_run (name, nparams, param, nreturn_vals, return_vals);
|
||||
/*
|
||||
* A non-interactive "console" (for batch mode)
|
||||
*/
|
||||
|
||||
script_fu_eval_run (name, nparams, param,
|
||||
nreturn_vals, return_vals);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user