diff --git a/libgimp/gimpprocbrowserdialog.c b/libgimp/gimpprocbrowserdialog.c index b835067b05..e69888f336 100644 --- a/libgimp/gimpprocbrowserdialog.c +++ b/libgimp/gimpprocbrowserdialog.c @@ -76,13 +76,15 @@ enum }; -typedef struct _GimpProcBrowserDialogPrivate +struct _GimpProcBrowserDialog { + GimpDialog parent_instance; + GtkWidget *browser; GtkListStore *store; GtkWidget *tree_view; -} GimpProcBrowserDialogPrivate; +}; static void browser_selection_changed (GtkTreeSelection *sel, @@ -97,8 +99,7 @@ static void browser_search (GimpBrowser *browser, GimpProcBrowserDialog *dialog); -G_DEFINE_TYPE_WITH_PRIVATE (GimpProcBrowserDialog, gimp_proc_browser_dialog, - GIMP_TYPE_DIALOG) +G_DEFINE_TYPE (GimpProcBrowserDialog, gimp_proc_browser_dialog, GIMP_TYPE_DIALOG) #define parent_class gimp_proc_browser_dialog_parent_class @@ -117,9 +118,7 @@ gimp_proc_browser_dialog_class_init (GimpProcBrowserDialogClass *klass) dialog_signals[SELECTION_CHANGED] = g_signal_new ("selection-changed", G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GimpProcBrowserDialogClass, - selection_changed), + G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 0); @@ -132,32 +131,24 @@ gimp_proc_browser_dialog_class_init (GimpProcBrowserDialogClass *klass) dialog_signals[ROW_ACTIVATED] = g_signal_new ("row-activated", G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GimpProcBrowserDialogClass, - row_activated), + G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 0); - - klass->selection_changed = NULL; - klass->row_activated = NULL; } static void gimp_proc_browser_dialog_init (GimpProcBrowserDialog *dialog) { - GimpProcBrowserDialogPrivate *priv; - GtkWidget *scrolled_window; - GtkCellRenderer *renderer; - GtkTreeSelection *selection; - GtkWidget *parent; + GtkWidget *scrolled_window; + GtkCellRenderer *renderer; + GtkTreeSelection *selection; + GtkWidget *parent; gtk_window_set_default_size (GTK_WINDOW (dialog), DBL_WIDTH, DBL_WIDTH - DBL_LIST_WIDTH); - priv = gimp_proc_browser_dialog_get_instance_private (dialog); - - priv->browser = gimp_browser_new (); - gimp_browser_add_search_types (GIMP_BROWSER (priv->browser), + dialog->browser = gimp_browser_new (); + gimp_browser_add_search_types (GIMP_BROWSER (dialog->browser), _("by name"), SEARCH_TYPE_NAME, _("by description"), SEARCH_TYPE_BLURB, _("by help"), SEARCH_TYPE_HELP, @@ -166,12 +157,12 @@ gimp_proc_browser_dialog_init (GimpProcBrowserDialog *dialog) _("by date"), SEARCH_TYPE_DATE, _("by type"), SEARCH_TYPE_PROC_TYPE, NULL); - gtk_container_set_border_width (GTK_CONTAINER (priv->browser), 12); + gtk_container_set_border_width (GTK_CONTAINER (dialog->browser), 12); gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), - priv->browser, TRUE, TRUE, 0); - gtk_widget_show (priv->browser); + dialog->browser, TRUE, TRUE, 0); + gtk_widget_show (dialog->browser); - g_signal_connect (priv->browser, "search", + g_signal_connect (dialog->browser, "search", G_CALLBACK (browser_search), dialog); @@ -183,44 +174,44 @@ gimp_proc_browser_dialog_init (GimpProcBrowserDialog *dialog) gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); - gtk_box_pack_start (GTK_BOX (gimp_browser_get_left_vbox (GIMP_BROWSER (priv->browser))), + gtk_box_pack_start (GTK_BOX (gimp_browser_get_left_vbox (GIMP_BROWSER (dialog->browser))), scrolled_window, TRUE, TRUE, 0); gtk_widget_show (scrolled_window); - priv->tree_view = gtk_tree_view_new (); + dialog->tree_view = gtk_tree_view_new (); renderer = gtk_cell_renderer_text_new (); gtk_cell_renderer_text_set_fixed_height_from_font (GTK_CELL_RENDERER_TEXT (renderer), 1); - gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->tree_view), + gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (dialog->tree_view), -1, NULL, renderer, "text", 0, NULL); - gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (priv->tree_view), FALSE); + gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (dialog->tree_view), FALSE); - g_signal_connect (priv->tree_view, "row_activated", + g_signal_connect (dialog->tree_view, "row-activated", G_CALLBACK (browser_row_activated), dialog); - gtk_widget_set_size_request (priv->tree_view, DBL_LIST_WIDTH, DBL_HEIGHT); - gtk_container_add (GTK_CONTAINER (scrolled_window), priv->tree_view); - gtk_widget_show (priv->tree_view); + gtk_widget_set_size_request (dialog->tree_view, DBL_LIST_WIDTH, DBL_HEIGHT); + gtk_container_add (GTK_CONTAINER (scrolled_window), dialog->tree_view); + gtk_widget_show (dialog->tree_view); - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->tree_view)); + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (dialog->tree_view)); g_signal_connect (selection, "changed", G_CALLBACK (browser_selection_changed), dialog); - parent = gtk_widget_get_parent (gimp_browser_get_right_vbox (GIMP_BROWSER (priv->browser))); + parent = gtk_widget_get_parent (gimp_browser_get_right_vbox (GIMP_BROWSER (dialog->browser))); parent = gtk_widget_get_parent (parent); gtk_widget_set_size_request (parent, DBL_WIDTH - DBL_LIST_WIDTH, -1); /* first search (all procedures) */ - browser_search (GIMP_BROWSER (priv->browser), + browser_search (GIMP_BROWSER (dialog->browser), "", SEARCH_TYPE_ALL, dialog); } @@ -288,21 +279,18 @@ gimp_proc_browser_dialog_new (const gchar *title, gchar * gimp_proc_browser_dialog_get_selected (GimpProcBrowserDialog *dialog) { - GimpProcBrowserDialogPrivate *priv; - GtkTreeSelection *sel; - GtkTreeIter iter; + GtkTreeSelection *sel; + GtkTreeIter iter; g_return_val_if_fail (GIMP_IS_PROC_BROWSER_DIALOG (dialog), NULL); - priv = gimp_proc_browser_dialog_get_instance_private (dialog); - - sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->tree_view)); + sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (dialog->tree_view)); if (gtk_tree_selection_get_selected (sel, NULL, &iter)) { gchar *proc_name; - gtk_tree_model_get (GTK_TREE_MODEL (priv->store), &iter, + gtk_tree_model_get (GTK_TREE_MODEL (dialog->store), &iter, COLUMN_PROC_NAME, &proc_name, -1); @@ -319,20 +307,17 @@ static void browser_selection_changed (GtkTreeSelection *sel, GimpProcBrowserDialog *dialog) { - GimpProcBrowserDialogPrivate *priv; - GtkTreeIter iter; - - priv = gimp_proc_browser_dialog_get_instance_private (dialog); + GtkTreeIter iter; if (gtk_tree_selection_get_selected (sel, NULL, &iter)) { gchar *proc_name; - gtk_tree_model_get (GTK_TREE_MODEL (priv->store), &iter, + gtk_tree_model_get (GTK_TREE_MODEL (dialog->store), &iter, COLUMN_PROC_NAME, &proc_name, -1); - gimp_browser_set_widget (GIMP_BROWSER (priv->browser), + gimp_browser_set_widget (GIMP_BROWSER (dialog->browser), gimp_proc_view_new (proc_name)); g_free (proc_name); @@ -356,22 +341,19 @@ browser_search (GimpBrowser *browser, gint search_type, GimpProcBrowserDialog *dialog) { - GimpProcBrowserDialogPrivate *priv; - GimpPDB *pdb = gimp_get_pdb (); - gchar **proc_list = NULL; - gint num_procs; - gchar *str; - GRegex *regex; - - priv = gimp_proc_browser_dialog_get_instance_private (dialog); + GimpPDB *pdb = gimp_get_pdb (); + gchar **proc_list = NULL; + gint num_procs; + gchar *str; + GRegex *regex; /* first check if the query is a valid regex */ regex = g_regex_new (query_text, 0, 0, NULL); if (! regex) { - gtk_tree_view_set_model (GTK_TREE_VIEW (priv->tree_view), NULL); - priv->store = NULL; + gtk_tree_view_set_model (GTK_TREE_VIEW (dialog->tree_view), NULL); + dialog->store = NULL; gimp_browser_show_message (browser, _("No matches")); @@ -500,36 +482,36 @@ browser_search (GimpBrowser *browser, GtkTreeIter iter; gint i; - priv->store = gtk_list_store_new (N_COLUMNS, + dialog->store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING); - gtk_tree_view_set_model (GTK_TREE_VIEW (priv->tree_view), - GTK_TREE_MODEL (priv->store)); - g_object_unref (priv->store); + gtk_tree_view_set_model (GTK_TREE_VIEW (dialog->tree_view), + GTK_TREE_MODEL (dialog->store)); + g_object_unref (dialog->store); for (i = 0; i < num_procs; i++) { - gtk_list_store_append (priv->store, &iter); - gtk_list_store_set (priv->store, &iter, + gtk_list_store_append (dialog->store, &iter); + gtk_list_store_set (dialog->store, &iter, COLUMN_PROC_NAME, proc_list[i], -1); } g_strfreev (proc_list); - gtk_tree_view_columns_autosize (GTK_TREE_VIEW (priv->tree_view)); + gtk_tree_view_columns_autosize (GTK_TREE_VIEW (dialog->tree_view)); - gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (priv->store), + gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (dialog->store), COLUMN_PROC_NAME, GTK_SORT_ASCENDING); - gtk_tree_model_get_iter_first (GTK_TREE_MODEL (priv->store), &iter); - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->tree_view)); + gtk_tree_model_get_iter_first (GTK_TREE_MODEL (dialog->store), &iter); + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (dialog->tree_view)); gtk_tree_selection_select_iter (selection, &iter); } else { - gtk_tree_view_set_model (GTK_TREE_VIEW (priv->tree_view), NULL); - priv->store = NULL; + gtk_tree_view_set_model (GTK_TREE_VIEW (dialog->tree_view), NULL); + dialog->store = NULL; gimp_browser_show_message (browser, _("No matches")); } diff --git a/libgimp/gimpprocbrowserdialog.h b/libgimp/gimpprocbrowserdialog.h index 106a0ed8b4..e697a94424 100644 --- a/libgimp/gimpprocbrowserdialog.h +++ b/libgimp/gimpprocbrowserdialog.h @@ -32,26 +32,7 @@ G_BEGIN_DECLS #define GIMP_TYPE_PROC_BROWSER_DIALOG (gimp_proc_browser_dialog_get_type ()) -G_DECLARE_DERIVABLE_TYPE (GimpProcBrowserDialog, gimp_proc_browser_dialog, GIMP, PROC_BROWSER_DIALOG, GimpDialog) - - -struct _GimpProcBrowserDialogClass -{ - GimpDialogClass parent_class; - - void (* selection_changed) (GimpProcBrowserDialog *dialog); - void (* row_activated) (GimpProcBrowserDialog *dialog); - - /* Padding for future expansion */ - void (* _gimp_reserved1) (void); - void (* _gimp_reserved2) (void); - void (* _gimp_reserved3) (void); - void (* _gimp_reserved4) (void); - void (* _gimp_reserved5) (void); - void (* _gimp_reserved6) (void); - void (* _gimp_reserved7) (void); - void (* _gimp_reserved8) (void); -}; +G_DECLARE_FINAL_TYPE (GimpProcBrowserDialog, gimp_proc_browser_dialog, GIMP, PROC_BROWSER_DIALOG, GimpDialog) GtkWidget * gimp_proc_browser_dialog_new (const gchar *title,