HIG-compliant GtkMessageDialog



Hello.  I believe that it is currently too difficult to create an
HIG-compliant alert
(http://developer.gnome.org/projects/gup/hig/1.0/windows.html#alert-windows).

One way to do it is create a GtkDialog and manually HIG-ify it according
to the instructions in the HIG.  This is fine, but not very convenient. 
I feel that it should be as convenient as possible to create an alert,
since uniformity in alert implementations is one main point of the HIG.

Another way to make an alert is to create a GtkMessageDialog and pass it
appropriate Pango markup per HIG.  However, the GtkMessageDialog widget
fails in several areas:
1) Window title is non-empty
2) Separator bar is present
3) Spacing is wrong
4) Specifying required markup is a pain (especially when using gettext)
5) Window must be modal only to the parent window

1, 2, 3, and 5 can all be fixed inside GtkMessageDialog code without
breaking the API.  4 is somewhat easy to get around.  5 is awkward to
do, needing to monkey with gtk_window_groups (could also be done without
changing the API).

There are two things wrong with the current GtkMessageDialog API when
making alerts:
A) The GtkDialogFlags parameter shouldn't exist -- all alerts would have
the same flags
B) Markup is a pain.  All alerts have a required markup structure like
the following:  '<span font="larger" weight="bold">primary
text\n</span>\nsecondary text'.  When using gettext, you need to make
sure that no markup gets in your translators' way.

So, would you be willing to make the changes needed behind the scenes to
GtkMessageDialog and then just live with the admittedly trivial markup
problem and the unnecessary parameter problem?  Or, would you prefer a
whole new widget?  Maybe GtkAlertDialog with the following API:

GtkWidget *gtk_alert_dialog_new (GtkWindow *parent, GtkMessageType type,
GtkButtonsType buttons, const gchar *primary_text, const gchar
*secondary_text);

I am willing to make either code change and submit a patch to the
appropriate place (gtk for the non-API one, libegg for the new-widget
one).  But, I request official GTK+ sanction and discussion on this
issue.

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]