libgimp: new gimp_procedure_dialog_fill_scrolled_window()

This allows plug-in developers to create GTKScrolledWindow with the
procedure dialog API.
This commit is contained in:
Alx Sa 2023-03-31 13:55:59 +00:00
parent f9eec671a9
commit f15b144a81
3 changed files with 52 additions and 0 deletions

View File

@ -1859,6 +1859,52 @@ gimp_procedure_dialog_fill_expander (GimpProcedureDialog *dialog,
}
/**
* gimp_procedure_dialog_fill_scrolled_window:
* @dialog: the #GimpProcedureDialog.
* @container_id: a container identifier.
* @contents_id: The identifier for the contents.
*
* Creates and populates a new #GtkScrolledWindow with a widget corresponding
* to the declared content id.
*
* The @container_id must be a unique ID which is neither the name of a
* property of the #GimpProcedureConfig associated to @dialog, nor is it
* the ID of any previously created container. This ID can later be used
* together with property names to be packed in other containers or
* inside @dialog itself.
*
* Returns: (transfer none): the #GtkScrolledWindow representing @contents_id.
* The object belongs to @dialog and must not be
* freed.
*/
GtkWidget *
gimp_procedure_dialog_fill_scrolled_window (GimpProcedureDialog *dialog,
const gchar *container_id,
const gchar *contents_id)
{
GtkWidget *scrolled_window;
GList *single_list = NULL;
g_return_val_if_fail (GIMP_IS_PROCEDURE_DIALOG (dialog), NULL);
g_return_val_if_fail (container_id != NULL, NULL);
/* GtkScrolledWindow can only have one child */
g_return_val_if_fail (contents_id != NULL, NULL);
single_list = g_list_prepend (single_list, (gpointer) contents_id);
scrolled_window =
gimp_procedure_dialog_fill_container_list (dialog, container_id,
GTK_CONTAINER (gtk_scrolled_window_new (NULL, NULL)),
single_list);
if (single_list)
g_list_free (single_list);
return scrolled_window;
}
/**
* gimp_procedure_dialog_set_sensitive:
* @dialog: the #GimpProcedureDialog.

View File

@ -128,6 +128,11 @@ GtkWidget * gimp_procedure_dialog_fill_expander (GimpProcedureDialog *dialog
gboolean invert_title,
const gchar *contents_id);
GtkWidget * gimp_procedure_dialog_fill_scrolled_window
(GimpProcedureDialog *dialog,
const gchar *container_id,
const gchar *property);
void gimp_procedure_dialog_fill (GimpProcedureDialog *dialog,
...) G_GNUC_NULL_TERMINATED;
void gimp_procedure_dialog_fill_list (GimpProcedureDialog *dialog,

View File

@ -47,6 +47,7 @@ EXPORTS
gimp_procedure_dialog_fill_flowbox_list
gimp_procedure_dialog_fill_frame
gimp_procedure_dialog_fill_list
gimp_procedure_dialog_fill_scrolled_window
gimp_procedure_dialog_get_color_widget
gimp_procedure_dialog_get_file_chooser
gimp_procedure_dialog_get_int_combo