diff options
author | Federico Mena Quintero <federico@novell.com> | 2010-06-22 13:10:52 -0500 |
---|---|---|
committer | Federico Mena Quintero <federico@novell.com> | 2010-06-22 13:13:44 -0500 |
commit | 9b9bb4c6e820507e02f9d69620097d0fc8786176 (patch) | |
tree | fa24887c7e8ec76b590a1f502337b6ac6babb47e /gtk/gtkmessagedialog.c | |
parent | abfc6f8f07ada02b20f7596918b2a08016f2c9dd (diff) | |
download | gtk+-9b9bb4c6e820507e02f9d69620097d0fc8786176.tar.gz |
bgo#328069 - Add gtk_message_dialog_get_message_area()
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Diffstat (limited to 'gtk/gtkmessagedialog.c')
-rw-r--r-- | gtk/gtkmessagedialog.c | 57 |
1 files changed, 52 insertions, 5 deletions
diff --git a/gtk/gtkmessagedialog.c b/gtk/gtkmessagedialog.c index 18adeea2a0..f9c72823aa 100644 --- a/gtk/gtkmessagedialog.c +++ b/gtk/gtkmessagedialog.c @@ -93,6 +93,7 @@ typedef struct _GtkMessageDialogPrivate GtkMessageDialogPrivate; struct _GtkMessageDialogPrivate { + GtkWidget *message_area; /* vbox for the primary and secondary labels, and any extra content from the caller */ GtkWidget *secondary_label; guint message_type : 3; guint has_primary_markup : 1; @@ -121,7 +122,8 @@ enum { PROP_USE_MARKUP, PROP_SECONDARY_TEXT, PROP_SECONDARY_USE_MARKUP, - PROP_IMAGE + PROP_IMAGE, + PROP_MESSAGE_AREA }; G_DEFINE_TYPE (GtkMessageDialog, gtk_message_dialog, GTK_TYPE_DIALOG) @@ -264,6 +266,23 @@ gtk_message_dialog_class_init (GtkMessageDialogClass *class) GTK_TYPE_WIDGET, GTK_PARAM_READWRITE)); + /** + * GtkMessageDialog:message-area + * + * The #GtkVBox that corresponds to the message area of this dialog. See + * gtk_message_dialog_get_message_area() for a detailed description of this + * area. + * + * Since: 2.22 + */ + g_object_class_install_property (gobject_class, + PROP_MESSAGE_AREA, + g_param_spec_object ("message-area", + P_("Message area"), + P_("GtkVBox that holds the dialog's primary and secondary labels"), + GTK_TYPE_WIDGET, + GTK_PARAM_READABLE)); + g_type_class_add_private (gobject_class, sizeof (GtkMessageDialogPrivate)); } @@ -298,18 +317,18 @@ gtk_message_dialog_init (GtkMessageDialog *dialog) gtk_misc_set_alignment (GTK_MISC (priv->secondary_label), 0.0, 0.0); hbox = gtk_hbox_new (FALSE, 12); - vbox = gtk_vbox_new (FALSE, 12); + priv->message_area = gtk_vbox_new (FALSE, 12); - gtk_box_pack_start (GTK_BOX (vbox), dialog->label, + gtk_box_pack_start (GTK_BOX (priv->message_area), dialog->label, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (vbox), priv->secondary_label, + gtk_box_pack_start (GTK_BOX (priv->message_area), priv->secondary_label, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), dialog->image, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (hbox), vbox, + gtk_box_pack_start (GTK_BOX (hbox), priv->message_area, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), @@ -514,6 +533,9 @@ gtk_message_dialog_get_property (GObject *object, case PROP_IMAGE: g_value_set_object (value, dialog->image); break; + case PROP_MESSAGE_AREA: + g_value_set_object (value, priv->message_area); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -852,6 +874,31 @@ gtk_message_dialog_format_secondary_markup (GtkMessageDialog *message_dialog, setup_primary_label_font (message_dialog); } +/** + * gtk_message_dialog_get_message_area: + * @message_dialog: a #GtkMessageDialog + * + * Return value: A #GtkVBox corresponding to the "message area" in the + * @message_dialog. This is the box where the dialog's primary and secondary + * labels are packed. You can add your own extra content to that box and it + * will appear below those labels, on the right side of the dialog's image (or + * on the left for right-to-left languages). See gtk_dialog_get_content_area() + * for the corresponding function in the parent #GtkDialog. + * + * Since: 2.22 + **/ +GtkWidget * +gtk_message_dialog_get_message_area (GtkMessageDialog *message_dialog) +{ + GtkMessageDialogPrivate *priv; + + g_return_val_if_fail (GTK_IS_MESSAGE_DIALOG (message_dialog), NULL); + + priv = GTK_MESSAGE_DIALOG_GET_PRIVATE (message_dialog); + + return priv->message_area; +} + static void gtk_message_dialog_add_buttons (GtkMessageDialog* message_dialog, GtkButtonsType buttons) |