first effort in making the L&C dialog nicer.

--Sven
This commit is contained in:
Sven Neumann 1999-10-23 20:30:59 +00:00
parent 69359dbcce
commit 7a432a7734
11 changed files with 165 additions and 136 deletions

View file

@ -1,3 +1,16 @@
Sat Oct 23 22:26:59 MEST 1999 Sven Neumann <sven@gimp.org>
* app/channels_dialog.c
* app/gimpui.c
* app/layers_dialog.c
* app/ops_buttons.c
* app/paths_dialog.c: first approach at making the L&C-dialog smaller,
nicer and more usable.
* pixmaps/anchor.xpm: changed the anchor back to the old 1.0 one. This
change is done only to test the new padding and to reflect the fact
that we need to overwork the icons. I don't want this icon to stay!!
Fri Oct 22 18:29:14 PDT 1999 Manish Singh <yosh@gimp.org>
* app/procedural_db.c: db_lookup seems to be used pretty often as a

View file

@ -277,6 +277,8 @@ channels_dialog_create ()
/* The channels listbox */
listbox = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (listbox),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_widget_set_usize (listbox, CHANNEL_LIST_WIDTH, CHANNEL_LIST_HEIGHT);
gtk_box_pack_start (GTK_BOX (vbox), listbox, TRUE, TRUE, 2);

View file

@ -156,57 +156,61 @@ gimp_dialog_newv (const gchar *title,
(GTK_CONTAINER (GTK_DIALOG (dialog)->action_area), 2);
gtk_box_set_homogeneous (GTK_BOX (GTK_DIALOG (dialog)->action_area), FALSE);
hbbox = gtk_hbutton_box_new ();
gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbbox), 4);
gtk_box_pack_end (GTK_BOX (GTK_DIALOG (dialog)->action_area), hbbox,
FALSE, FALSE, 0);
gtk_widget_show (hbbox);
/* the action_area buttons */
label = va_arg (args, gchar*);
while (label)
if (label)
{
callback = va_arg (args, GtkSignalFunc);
data = va_arg (args, gpointer);
widget_ptr = va_arg (args, gpointer);
default_action = va_arg (args, gboolean);
connect_delete = va_arg (args, gboolean);
button = gtk_button_new_with_label (label);
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (hbbox), button, FALSE, FALSE, 0);
/* pass data as user_data if data != NULL, or the dialog otherwise */
if (callback)
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (callback),
data ? data : dialog);
if (widget_ptr)
*widget_ptr = button;
if (connect_delete && callback && !delete_connected)
hbbox = gtk_hbutton_box_new ();
gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbbox), 4);
gtk_box_pack_end (GTK_BOX (GTK_DIALOG (dialog)->action_area), hbbox,
FALSE, FALSE, 0);
gtk_widget_show (hbbox);
while (label)
{
gtk_object_set_data (GTK_OBJECT (dialog),
"gimp_dialog_cancel_callback",
callback);
gtk_object_set_data (GTK_OBJECT (dialog),
"gimp_dialog_cancel_widget",
button);
callback = va_arg (args, GtkSignalFunc);
data = va_arg (args, gpointer);
widget_ptr = va_arg (args, gpointer);
default_action = va_arg (args, gboolean);
connect_delete = va_arg (args, gboolean);
button = gtk_button_new_with_label (label);
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (hbbox), button, FALSE, FALSE, 0);
/* pass data as user_data if data != NULL, or the dialog otherwise */
if (callback)
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (callback),
data ? data : dialog);
if (widget_ptr)
*widget_ptr = button;
if (connect_delete && callback && !delete_connected)
{
gtk_object_set_data (GTK_OBJECT (dialog),
"gimp_dialog_cancel_callback",
callback);
gtk_object_set_data (GTK_OBJECT (dialog),
"gimp_dialog_cancel_widget",
button);
/* catch the WM delete event */
gtk_signal_connect (GTK_OBJECT (dialog), "delete_event",
(GdkEventFunc) gimp_dialog_delete_callback,
data ? data : dialog);
delete_connected = TRUE;
}
/* catch the WM delete event */
gtk_signal_connect (GTK_OBJECT (dialog), "delete_event",
(GdkEventFunc) gimp_dialog_delete_callback,
data ? data : dialog);
delete_connected = TRUE;
if (default_action)
gtk_widget_grab_default (button);
gtk_widget_show (button);
label = va_arg (args, gchar*);
}
if (default_action)
gtk_widget_grab_default (button);
gtk_widget_show (button);
label = va_arg (args, gchar*);
}
/* catch the WM delete event if not already done */

View file

@ -277,6 +277,8 @@ channels_dialog_create ()
/* The channels listbox */
listbox = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (listbox),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_widget_set_usize (listbox, CHANNEL_LIST_WIDTH, CHANNEL_LIST_HEIGHT);
gtk_box_pack_start (GTK_BOX (vbox), listbox, TRUE, TRUE, 2);

View file

@ -402,6 +402,8 @@ layers_dialog_create ()
/* The layers listbox */
listbox = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (listbox),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_widget_set_usize (listbox, LAYER_LIST_WIDTH, LAYER_LIST_HEIGHT);
gtk_box_pack_start (GTK_BOX (vbox), listbox, TRUE, TRUE, 2);

View file

@ -291,11 +291,11 @@ GtkWidget * paths_dialog_create()
gtk_container_set_border_width (GTK_CONTAINER (vbox), 2);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_box_pack_start(GTK_BOX(vbox), scrolled_win, TRUE, TRUE, 0);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_ALWAYS);
gtk_widget_set_usize (scrolled_win, PATHS_LIST_WIDTH, PATHS_LIST_HEIGHT);
gtk_box_pack_start(GTK_BOX(vbox), scrolled_win, TRUE, TRUE, 2);
paths_dialog->paths_list = paths_list = gtk_clist_new (2);

View file

@ -402,6 +402,8 @@ layers_dialog_create ()
/* The layers listbox */
listbox = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (listbox),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_widget_set_usize (listbox, LAYER_LIST_WIDTH, LAYER_LIST_HEIGHT);
gtk_box_pack_start (GTK_BOX (vbox), listbox, TRUE, TRUE, 2);

View file

@ -40,9 +40,13 @@ ops_button_box_new (GtkWidget *parent,
GtkWidget *pixmapwid;
GdkPixmap *pixmap;
GdkBitmap *mask;
GtkStyle *style;
GSList *group = NULL;
GtkStyle *style;
GSList *group = NULL;
GSList *box_list = NULL;
gint max_width = 0;
gint width;
gint height;
gtk_widget_realize (parent);
style = gtk_widget_get_style (parent);
@ -57,13 +61,15 @@ ops_button_box_new (GtkWidget *parent,
&mask,
&style->bg[GTK_STATE_NORMAL],
ops_button->xpm_data);
gdk_window_get_size (pixmap, &width, &height);
max_width = MAX (max_width, width);
pixmapwid = gtk_pixmap_new (pixmap, mask);
gtk_box_pack_start (GTK_BOX (box), pixmapwid, TRUE, TRUE, 3);
gtk_box_pack_start (GTK_BOX (box), pixmapwid, TRUE, TRUE, 1);
gtk_widget_show (pixmapwid);
gtk_widget_show (box);
switch(ops_type)
box_list = g_slist_prepend (box_list, box);
switch (ops_type)
{
case OPS_BUTTON_NORMAL :
button = gtk_button_new ();
@ -76,7 +82,7 @@ ops_button_box_new (GtkWidget *parent,
break;
default :
button = NULL; /*stop compiler complaints */
g_error("ops_button_box_new:: unknown type %d\n",ops_type);
g_error("ops_button_box_new: unknown type %d\n",ops_type);
break;
}
@ -108,6 +114,14 @@ ops_button_box_new (GtkWidget *parent,
ops_button++;
}
for (; box_list; box_list = box_list->next)
{
gtk_widget_set_usize (GTK_WIDGET (box_list->data), max_width, -1);
gtk_widget_show (GTK_WIDGET (box_list->data));
}
g_slist_free (box_list);
return (button_box);
}

View file

@ -291,11 +291,11 @@ GtkWidget * paths_dialog_create()
gtk_container_set_border_width (GTK_CONTAINER (vbox), 2);
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
gtk_box_pack_start(GTK_BOX(vbox), scrolled_win, TRUE, TRUE, 0);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_ALWAYS);
gtk_widget_set_usize (scrolled_win, PATHS_LIST_WIDTH, PATHS_LIST_HEIGHT);
gtk_box_pack_start(GTK_BOX(vbox), scrolled_win, TRUE, TRUE, 2);
paths_dialog->paths_list = paths_list = gtk_clist_new (2);

View file

@ -156,57 +156,61 @@ gimp_dialog_newv (const gchar *title,
(GTK_CONTAINER (GTK_DIALOG (dialog)->action_area), 2);
gtk_box_set_homogeneous (GTK_BOX (GTK_DIALOG (dialog)->action_area), FALSE);
hbbox = gtk_hbutton_box_new ();
gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbbox), 4);
gtk_box_pack_end (GTK_BOX (GTK_DIALOG (dialog)->action_area), hbbox,
FALSE, FALSE, 0);
gtk_widget_show (hbbox);
/* the action_area buttons */
label = va_arg (args, gchar*);
while (label)
if (label)
{
callback = va_arg (args, GtkSignalFunc);
data = va_arg (args, gpointer);
widget_ptr = va_arg (args, gpointer);
default_action = va_arg (args, gboolean);
connect_delete = va_arg (args, gboolean);
button = gtk_button_new_with_label (label);
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (hbbox), button, FALSE, FALSE, 0);
/* pass data as user_data if data != NULL, or the dialog otherwise */
if (callback)
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (callback),
data ? data : dialog);
if (widget_ptr)
*widget_ptr = button;
if (connect_delete && callback && !delete_connected)
hbbox = gtk_hbutton_box_new ();
gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbbox), 4);
gtk_box_pack_end (GTK_BOX (GTK_DIALOG (dialog)->action_area), hbbox,
FALSE, FALSE, 0);
gtk_widget_show (hbbox);
while (label)
{
gtk_object_set_data (GTK_OBJECT (dialog),
"gimp_dialog_cancel_callback",
callback);
gtk_object_set_data (GTK_OBJECT (dialog),
"gimp_dialog_cancel_widget",
button);
callback = va_arg (args, GtkSignalFunc);
data = va_arg (args, gpointer);
widget_ptr = va_arg (args, gpointer);
default_action = va_arg (args, gboolean);
connect_delete = va_arg (args, gboolean);
button = gtk_button_new_with_label (label);
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (hbbox), button, FALSE, FALSE, 0);
/* pass data as user_data if data != NULL, or the dialog otherwise */
if (callback)
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (callback),
data ? data : dialog);
if (widget_ptr)
*widget_ptr = button;
if (connect_delete && callback && !delete_connected)
{
gtk_object_set_data (GTK_OBJECT (dialog),
"gimp_dialog_cancel_callback",
callback);
gtk_object_set_data (GTK_OBJECT (dialog),
"gimp_dialog_cancel_widget",
button);
/* catch the WM delete event */
gtk_signal_connect (GTK_OBJECT (dialog), "delete_event",
(GdkEventFunc) gimp_dialog_delete_callback,
data ? data : dialog);
delete_connected = TRUE;
}
/* catch the WM delete event */
gtk_signal_connect (GTK_OBJECT (dialog), "delete_event",
(GdkEventFunc) gimp_dialog_delete_callback,
data ? data : dialog);
delete_connected = TRUE;
if (default_action)
gtk_widget_grab_default (button);
gtk_widget_show (button);
label = va_arg (args, gchar*);
}
if (default_action)
gtk_widget_grab_default (button);
gtk_widget_show (button);
label = va_arg (args, gchar*);
}
/* catch the WM delete event if not already done */

View file

@ -1,36 +1,22 @@
/* XPM */
static char * anchor_xpm[] = {
"24 24 9 1",
"16 16 3 1",
" c None",
". c #020204",
"+ c #8F8F91",
"@ c #6E6E6E",
"# c #5A5A5C",
"$ c #9A9A98",
"% c #D0D0D1",
"& c #E8E8E9",
"* c #B5B5B6",
" ",
" ",
" ... ",
" .+@.. ",
" .###. ",
" ..#.. ",
" .. .#. .. ",
" .####....$%@#..###@#. ",
" .#.......&$#......#.. ",
" .. .#@#. .. ",
" .*. ",
" .*. ",
" .$. ",
" . .+. . ",
" .. .+. .. ",
" .#. .+. .*. ",
" .+.. .+. .+@. ",
" .+. .$. ##. ",
" .@. .$. .+. ",
" .##....$@.....@#. ",
" .##@@$+#@+$#+.. ",
" ..###@+####.. ",
" ......... ",
" "};
". c #000000",
"+ c #7F7F7F",
" ",
" ",
" .. ",
" ...... ",
" ....++ ",
" ..++ ",
" ..+ ",
" ..+ ",
" ..+ ",
" .. ..+ .. ",
" .. ..+ ..++",
" ... ..+ ...+ ",
" ..........++ ",
" ........++ ",
" ++..++++ ",
" ++ "};