restructured toolbox to use a single gtk_hwrap_box with the added "forced
2000-02-07 Kelly Lynn Martin <kelly@poverty.bloomington.in.us> * app/interface.c: restructured toolbox to use a single gtk_hwrap_box with the added "forced break" functionality to make the selector boxes not run in with the rest of the tool buttons. The toolbox should now not cut things off, although if the user selects a really small toolbox the buttons or selectors may be, um, difficult to use... * app/gtkwrapbox.h: * app/gtkwrapbox.c: * app/gtkvwrapbox.c (reverse_list_col_children): * app/gtkhwrapbox.c (reverse_list_row_children): support for "forced break" functionality needed for toolbox -- will forward patches to Tim Janik as well
This commit is contained in:

committed by
Kelly Martin

parent
827e9ddad7
commit
77c44b21e1
16
ChangeLog
16
ChangeLog
@ -1,3 +1,19 @@
|
|||||||
|
2000-02-07 Kelly Lynn Martin <kelly@poverty.bloomington.in.us>
|
||||||
|
|
||||||
|
* app/interface.c: restructured toolbox to use a single
|
||||||
|
gtk_hwrap_box with the added "forced break" functionality to make
|
||||||
|
the selector boxes not run in with the rest of the tool buttons.
|
||||||
|
The toolbox should now not cut things off, although if the user
|
||||||
|
selects a really small toolbox the buttons or selectors may be,
|
||||||
|
um, difficult to use...
|
||||||
|
|
||||||
|
* app/gtkwrapbox.h:
|
||||||
|
* app/gtkwrapbox.c:
|
||||||
|
* app/gtkvwrapbox.c (reverse_list_col_children):
|
||||||
|
* app/gtkhwrapbox.c (reverse_list_row_children): support for
|
||||||
|
"forced break" functionality needed for toolbox -- will forward
|
||||||
|
patches to Tim Janik as well
|
||||||
|
|
||||||
Mon Feb 7 05:04:28 2000 Tim Janik <timj@gtk.org>
|
Mon Feb 7 05:04:28 2000 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* app/gtkhwrapbox.c:
|
* app/gtkhwrapbox.c:
|
||||||
|
@ -256,7 +256,7 @@ create_indicator_area (GtkWidget *parent)
|
|||||||
|
|
||||||
frame = gtk_frame_new (NULL);
|
frame = gtk_frame_new (NULL);
|
||||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
|
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
|
||||||
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), frame, FALSE, TRUE, FALSE, TRUE);
|
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), frame, TRUE, TRUE, TRUE, TRUE);
|
||||||
gtk_widget_realize (frame);
|
gtk_widget_realize (frame);
|
||||||
|
|
||||||
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||||
@ -290,7 +290,8 @@ create_color_area (GtkWidget *parent)
|
|||||||
|
|
||||||
frame = gtk_frame_new (NULL);
|
frame = gtk_frame_new (NULL);
|
||||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
|
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
|
||||||
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), frame, FALSE, TRUE, FALSE, TRUE);
|
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), frame, TRUE, TRUE, TRUE, TRUE);
|
||||||
|
gtk_wrap_box_set_child_forced_break (GTK_WRAP_BOX (parent), frame, TRUE);
|
||||||
gtk_widget_realize (frame);
|
gtk_widget_realize (frame);
|
||||||
|
|
||||||
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||||
@ -346,11 +347,7 @@ create_tools (GtkWidget *parent)
|
|||||||
GSList *group;
|
GSList *group;
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
/*create_logo (parent);*/
|
wbox = parent;
|
||||||
wbox = gtk_hwrap_box_new (FALSE);
|
|
||||||
gtk_wrap_box_set_aspect_ratio (GTK_WRAP_BOX (wbox), .36);
|
|
||||||
gtk_container_set_border_width (GTK_CONTAINER (wbox), 0);
|
|
||||||
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), wbox, TRUE, TRUE, TRUE, TRUE);
|
|
||||||
|
|
||||||
gtk_widget_realize (gtk_widget_get_toplevel (wbox));
|
gtk_widget_realize (gtk_widget_get_toplevel (wbox));
|
||||||
|
|
||||||
@ -368,7 +365,7 @@ create_tools (GtkWidget *parent)
|
|||||||
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), FALSE);
|
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), FALSE);
|
||||||
|
|
||||||
gtk_wrap_box_pack (GTK_WRAP_BOX (wbox), button,
|
gtk_wrap_box_pack (GTK_WRAP_BOX (wbox), button,
|
||||||
FALSE, TRUE, FALSE, TRUE);
|
FALSE, FALSE, FALSE, FALSE);
|
||||||
|
|
||||||
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||||
gtk_container_set_border_width (GTK_CONTAINER (alignment), 0);
|
gtk_container_set_border_width (GTK_CONTAINER (alignment), 0);
|
||||||
@ -592,16 +589,20 @@ create_toolbox (void)
|
|||||||
gimp_standard_help_func,
|
gimp_standard_help_func,
|
||||||
"toolbox/toolbox.html");
|
"toolbox/toolbox.html");
|
||||||
|
|
||||||
wbox = gtk_vwrap_box_new (FALSE);
|
wbox = gtk_hwrap_box_new (FALSE);
|
||||||
gtk_wrap_box_set_justify (GTK_WRAP_BOX (wbox), GTK_JUSTIFY_FILL);
|
gtk_wrap_box_set_justify (GTK_WRAP_BOX (wbox), GTK_JUSTIFY_TOP);
|
||||||
|
gtk_wrap_box_set_line_justify (GTK_WRAP_BOX (wbox), GTK_JUSTIFY_LEFT);
|
||||||
|
gtk_wrap_box_set_aspect_ratio (GTK_WRAP_BOX (wbox), 20);
|
||||||
gtk_container_set_border_width (GTK_CONTAINER (wbox), 0);
|
gtk_container_set_border_width (GTK_CONTAINER (wbox), 0);
|
||||||
gtk_box_pack_start (GTK_BOX (main_vbox), wbox, TRUE, TRUE, 0);
|
gtk_box_pack_start (GTK_BOX (main_vbox), wbox, TRUE, TRUE, 0);
|
||||||
gtk_widget_show (wbox);
|
gtk_widget_show (wbox);
|
||||||
|
|
||||||
create_tools (wbox);
|
create_tools (wbox);
|
||||||
|
|
||||||
create_color_area (wbox);
|
create_color_area (wbox);
|
||||||
if (show_indicators)
|
if (show_indicators)
|
||||||
create_indicator_area (wbox);
|
create_indicator_area (wbox);
|
||||||
|
|
||||||
gtk_widget_show (window);
|
gtk_widget_show (window);
|
||||||
toolbox_set_drag_dest (window);
|
toolbox_set_drag_dest (window);
|
||||||
|
|
||||||
|
@ -256,7 +256,7 @@ create_indicator_area (GtkWidget *parent)
|
|||||||
|
|
||||||
frame = gtk_frame_new (NULL);
|
frame = gtk_frame_new (NULL);
|
||||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
|
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
|
||||||
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), frame, FALSE, TRUE, FALSE, TRUE);
|
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), frame, TRUE, TRUE, TRUE, TRUE);
|
||||||
gtk_widget_realize (frame);
|
gtk_widget_realize (frame);
|
||||||
|
|
||||||
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||||
@ -290,7 +290,8 @@ create_color_area (GtkWidget *parent)
|
|||||||
|
|
||||||
frame = gtk_frame_new (NULL);
|
frame = gtk_frame_new (NULL);
|
||||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
|
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
|
||||||
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), frame, FALSE, TRUE, FALSE, TRUE);
|
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), frame, TRUE, TRUE, TRUE, TRUE);
|
||||||
|
gtk_wrap_box_set_child_forced_break (GTK_WRAP_BOX (parent), frame, TRUE);
|
||||||
gtk_widget_realize (frame);
|
gtk_widget_realize (frame);
|
||||||
|
|
||||||
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||||
@ -346,11 +347,7 @@ create_tools (GtkWidget *parent)
|
|||||||
GSList *group;
|
GSList *group;
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
/*create_logo (parent);*/
|
wbox = parent;
|
||||||
wbox = gtk_hwrap_box_new (FALSE);
|
|
||||||
gtk_wrap_box_set_aspect_ratio (GTK_WRAP_BOX (wbox), .36);
|
|
||||||
gtk_container_set_border_width (GTK_CONTAINER (wbox), 0);
|
|
||||||
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), wbox, TRUE, TRUE, TRUE, TRUE);
|
|
||||||
|
|
||||||
gtk_widget_realize (gtk_widget_get_toplevel (wbox));
|
gtk_widget_realize (gtk_widget_get_toplevel (wbox));
|
||||||
|
|
||||||
@ -368,7 +365,7 @@ create_tools (GtkWidget *parent)
|
|||||||
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), FALSE);
|
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), FALSE);
|
||||||
|
|
||||||
gtk_wrap_box_pack (GTK_WRAP_BOX (wbox), button,
|
gtk_wrap_box_pack (GTK_WRAP_BOX (wbox), button,
|
||||||
FALSE, TRUE, FALSE, TRUE);
|
FALSE, FALSE, FALSE, FALSE);
|
||||||
|
|
||||||
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||||
gtk_container_set_border_width (GTK_CONTAINER (alignment), 0);
|
gtk_container_set_border_width (GTK_CONTAINER (alignment), 0);
|
||||||
@ -592,16 +589,20 @@ create_toolbox (void)
|
|||||||
gimp_standard_help_func,
|
gimp_standard_help_func,
|
||||||
"toolbox/toolbox.html");
|
"toolbox/toolbox.html");
|
||||||
|
|
||||||
wbox = gtk_vwrap_box_new (FALSE);
|
wbox = gtk_hwrap_box_new (FALSE);
|
||||||
gtk_wrap_box_set_justify (GTK_WRAP_BOX (wbox), GTK_JUSTIFY_FILL);
|
gtk_wrap_box_set_justify (GTK_WRAP_BOX (wbox), GTK_JUSTIFY_TOP);
|
||||||
|
gtk_wrap_box_set_line_justify (GTK_WRAP_BOX (wbox), GTK_JUSTIFY_LEFT);
|
||||||
|
gtk_wrap_box_set_aspect_ratio (GTK_WRAP_BOX (wbox), 20);
|
||||||
gtk_container_set_border_width (GTK_CONTAINER (wbox), 0);
|
gtk_container_set_border_width (GTK_CONTAINER (wbox), 0);
|
||||||
gtk_box_pack_start (GTK_BOX (main_vbox), wbox, TRUE, TRUE, 0);
|
gtk_box_pack_start (GTK_BOX (main_vbox), wbox, TRUE, TRUE, 0);
|
||||||
gtk_widget_show (wbox);
|
gtk_widget_show (wbox);
|
||||||
|
|
||||||
create_tools (wbox);
|
create_tools (wbox);
|
||||||
|
|
||||||
create_color_area (wbox);
|
create_color_area (wbox);
|
||||||
if (show_indicators)
|
if (show_indicators)
|
||||||
create_indicator_area (wbox);
|
create_indicator_area (wbox);
|
||||||
|
|
||||||
gtk_widget_show (window);
|
gtk_widget_show (window);
|
||||||
toolbox_set_drag_dest (window);
|
toolbox_set_drag_dest (window);
|
||||||
|
|
||||||
|
@ -324,7 +324,8 @@ reverse_list_row_children (GtkWrapBox *wbox,
|
|||||||
if (GTK_WIDGET_VISIBLE (child->widget))
|
if (GTK_WIDGET_VISIBLE (child->widget))
|
||||||
{
|
{
|
||||||
get_child_requisition (wbox, child->widget, &child_requisition);
|
get_child_requisition (wbox, child->widget, &child_requisition);
|
||||||
if (width + wbox->hspacing + child_requisition.width > row_width)
|
if (width + wbox->hspacing + child_requisition.width > row_width ||
|
||||||
|
child->forced_break)
|
||||||
break;
|
break;
|
||||||
width += wbox->hspacing + child_requisition.width;
|
width += wbox->hspacing + child_requisition.width;
|
||||||
*max_child_size = MAX (*max_child_size, child_requisition.height);
|
*max_child_size = MAX (*max_child_size, child_requisition.height);
|
||||||
@ -620,7 +621,7 @@ layout_rows (GtkWrapBox *wbox,
|
|||||||
line->children,
|
line->children,
|
||||||
children_per_line,
|
children_per_line,
|
||||||
line->expand);
|
line->expand);
|
||||||
|
|
||||||
g_slist_free (line->children);
|
g_slist_free (line->children);
|
||||||
g_free (line);
|
g_free (line);
|
||||||
line = next_line;
|
line = next_line;
|
||||||
|
@ -324,7 +324,8 @@ reverse_list_col_children (GtkWrapBox *wbox,
|
|||||||
if (GTK_WIDGET_VISIBLE (child->widget))
|
if (GTK_WIDGET_VISIBLE (child->widget))
|
||||||
{
|
{
|
||||||
get_child_requisition (wbox, child->widget, &child_requisition);
|
get_child_requisition (wbox, child->widget, &child_requisition);
|
||||||
if (height + wbox->vspacing + child_requisition.height > col_height)
|
if (height + wbox->vspacing + child_requisition.height > col_height ||
|
||||||
|
child->forced_break)
|
||||||
break;
|
break;
|
||||||
height += wbox->vspacing + child_requisition.height;
|
height += wbox->vspacing + child_requisition.height;
|
||||||
*max_child_size = MAX (*max_child_size, child_requisition.width);
|
*max_child_size = MAX (*max_child_size, child_requisition.width);
|
||||||
|
@ -42,7 +42,8 @@ enum {
|
|||||||
CHILD_ARG_HEXPAND,
|
CHILD_ARG_HEXPAND,
|
||||||
CHILD_ARG_HFILL,
|
CHILD_ARG_HFILL,
|
||||||
CHILD_ARG_VEXPAND,
|
CHILD_ARG_VEXPAND,
|
||||||
CHILD_ARG_VFILL
|
CHILD_ARG_VFILL,
|
||||||
|
CHILD_ARG_FORCED_BREAK
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -166,6 +167,8 @@ gtk_wrap_box_class_init (GtkWrapBoxClass *class)
|
|||||||
GTK_TYPE_BOOL, GTK_ARG_READWRITE, CHILD_ARG_VEXPAND);
|
GTK_TYPE_BOOL, GTK_ARG_READWRITE, CHILD_ARG_VEXPAND);
|
||||||
gtk_container_add_child_arg_type ("GtkWrapBox::vfill",
|
gtk_container_add_child_arg_type ("GtkWrapBox::vfill",
|
||||||
GTK_TYPE_BOOL, GTK_ARG_READWRITE, CHILD_ARG_VFILL);
|
GTK_TYPE_BOOL, GTK_ARG_READWRITE, CHILD_ARG_VFILL);
|
||||||
|
gtk_container_add_child_arg_type ("GtkWrapBox::forcebreak",
|
||||||
|
GTK_TYPE_BOOL, GTK_ARG_READWRITE, CHILD_ARG_FORCED_BREAK);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -299,6 +302,10 @@ gtk_wrap_box_set_child_arg (GtkContainer *container,
|
|||||||
hexpand, hfill,
|
hexpand, hfill,
|
||||||
vexpand, GTK_VALUE_BOOL (*arg));
|
vexpand, GTK_VALUE_BOOL (*arg));
|
||||||
break;
|
break;
|
||||||
|
case CHILD_ARG_FORCED_BREAK:
|
||||||
|
gtk_wrap_box_set_child_forced_break (wbox, child,
|
||||||
|
GTK_VALUE_BOOL (*arg));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -457,6 +464,7 @@ gtk_wrap_box_pack (GtkWrapBox *wbox,
|
|||||||
child_info->hfill = hfill ? TRUE : FALSE;
|
child_info->hfill = hfill ? TRUE : FALSE;
|
||||||
child_info->vexpand = vexpand ? TRUE : FALSE;
|
child_info->vexpand = vexpand ? TRUE : FALSE;
|
||||||
child_info->vfill = vfill ? TRUE : FALSE;
|
child_info->vfill = vfill ? TRUE : FALSE;
|
||||||
|
child_info->forced_break = FALSE;
|
||||||
child_info->next = NULL;
|
child_info->next = NULL;
|
||||||
if (wbox->children)
|
if (wbox->children)
|
||||||
{
|
{
|
||||||
@ -565,6 +573,27 @@ gtk_wrap_box_query_child_packing (GtkWrapBox *wbox,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gtk_wrap_box_query_child_forced_break (GtkWrapBox *wbox,
|
||||||
|
GtkWidget *child,
|
||||||
|
gboolean *forced_break)
|
||||||
|
{
|
||||||
|
GtkWrapBoxChild *child_info;
|
||||||
|
|
||||||
|
g_return_if_fail (GTK_IS_WRAP_BOX (wbox));
|
||||||
|
g_return_if_fail (GTK_IS_WIDGET (child));
|
||||||
|
|
||||||
|
for (child_info = wbox->children; child_info; child_info = child_info->next)
|
||||||
|
if (child_info->widget == child)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (child_info)
|
||||||
|
{
|
||||||
|
if (forced_break)
|
||||||
|
*forced_break = child_info->forced_break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
gtk_wrap_box_set_child_packing (GtkWrapBox *wbox,
|
gtk_wrap_box_set_child_packing (GtkWrapBox *wbox,
|
||||||
GtkWidget *child,
|
GtkWidget *child,
|
||||||
@ -601,6 +630,32 @@ gtk_wrap_box_set_child_packing (GtkWrapBox *wbox,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gtk_wrap_box_set_child_forced_break (GtkWrapBox *wbox,
|
||||||
|
GtkWidget *child,
|
||||||
|
gboolean forced_break)
|
||||||
|
{
|
||||||
|
GtkWrapBoxChild *child_info;
|
||||||
|
|
||||||
|
g_return_if_fail (GTK_IS_WRAP_BOX (wbox));
|
||||||
|
g_return_if_fail (GTK_IS_WIDGET (child));
|
||||||
|
|
||||||
|
forced_break = forced_break != FALSE;
|
||||||
|
|
||||||
|
for (child_info = wbox->children; child_info; child_info = child_info->next)
|
||||||
|
if (child_info->widget == child)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (child_info &&
|
||||||
|
(child_info->forced_break != forced_break))
|
||||||
|
{
|
||||||
|
child_info->forced_break = forced_break;
|
||||||
|
|
||||||
|
if (GTK_WIDGET_VISIBLE (child) && GTK_WIDGET_VISIBLE (wbox))
|
||||||
|
gtk_widget_queue_resize (child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
guint*
|
guint*
|
||||||
gtk_wrap_box_query_line_lengths (GtkWrapBox *wbox,
|
gtk_wrap_box_query_line_lengths (GtkWrapBox *wbox,
|
||||||
guint *_n_lines)
|
guint *_n_lines)
|
||||||
|
@ -78,6 +78,7 @@ struct _GtkWrapBoxChild
|
|||||||
guint hfill : 1;
|
guint hfill : 1;
|
||||||
guint vexpand : 1;
|
guint vexpand : 1;
|
||||||
guint vfill : 1;
|
guint vfill : 1;
|
||||||
|
guint forced_break : 1;
|
||||||
|
|
||||||
GtkWrapBoxChild *next;
|
GtkWrapBoxChild *next;
|
||||||
};
|
};
|
||||||
@ -114,12 +115,18 @@ void gtk_wrap_box_query_child_packing (GtkWrapBox *wbox,
|
|||||||
gboolean *hfill,
|
gboolean *hfill,
|
||||||
gboolean *vexpand,
|
gboolean *vexpand,
|
||||||
gboolean *vfill);
|
gboolean *vfill);
|
||||||
|
void gtk_wrap_box_query_child_forced_break (GtkWrapBox *wbox,
|
||||||
|
GtkWidget *child,
|
||||||
|
gboolean *forced_break);
|
||||||
void gtk_wrap_box_set_child_packing (GtkWrapBox *wbox,
|
void gtk_wrap_box_set_child_packing (GtkWrapBox *wbox,
|
||||||
GtkWidget *child,
|
GtkWidget *child,
|
||||||
gboolean hexpand,
|
gboolean hexpand,
|
||||||
gboolean hfill,
|
gboolean hfill,
|
||||||
gboolean vexpand,
|
gboolean vexpand,
|
||||||
gboolean vfill);
|
gboolean vfill);
|
||||||
|
void gtk_wrap_box_set_child_forced_break (GtkWrapBox *wbox,
|
||||||
|
GtkWidget *child,
|
||||||
|
gboolean forced_break);
|
||||||
guint* gtk_wrap_box_query_line_lengths (GtkWrapBox *wbox,
|
guint* gtk_wrap_box_query_line_lengths (GtkWrapBox *wbox,
|
||||||
guint *n_lines);
|
guint *n_lines);
|
||||||
|
|
||||||
|
@ -256,7 +256,7 @@ create_indicator_area (GtkWidget *parent)
|
|||||||
|
|
||||||
frame = gtk_frame_new (NULL);
|
frame = gtk_frame_new (NULL);
|
||||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
|
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
|
||||||
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), frame, FALSE, TRUE, FALSE, TRUE);
|
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), frame, TRUE, TRUE, TRUE, TRUE);
|
||||||
gtk_widget_realize (frame);
|
gtk_widget_realize (frame);
|
||||||
|
|
||||||
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||||
@ -290,7 +290,8 @@ create_color_area (GtkWidget *parent)
|
|||||||
|
|
||||||
frame = gtk_frame_new (NULL);
|
frame = gtk_frame_new (NULL);
|
||||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
|
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
|
||||||
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), frame, FALSE, TRUE, FALSE, TRUE);
|
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), frame, TRUE, TRUE, TRUE, TRUE);
|
||||||
|
gtk_wrap_box_set_child_forced_break (GTK_WRAP_BOX (parent), frame, TRUE);
|
||||||
gtk_widget_realize (frame);
|
gtk_widget_realize (frame);
|
||||||
|
|
||||||
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||||
@ -346,11 +347,7 @@ create_tools (GtkWidget *parent)
|
|||||||
GSList *group;
|
GSList *group;
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
/*create_logo (parent);*/
|
wbox = parent;
|
||||||
wbox = gtk_hwrap_box_new (FALSE);
|
|
||||||
gtk_wrap_box_set_aspect_ratio (GTK_WRAP_BOX (wbox), .36);
|
|
||||||
gtk_container_set_border_width (GTK_CONTAINER (wbox), 0);
|
|
||||||
gtk_wrap_box_pack (GTK_WRAP_BOX (parent), wbox, TRUE, TRUE, TRUE, TRUE);
|
|
||||||
|
|
||||||
gtk_widget_realize (gtk_widget_get_toplevel (wbox));
|
gtk_widget_realize (gtk_widget_get_toplevel (wbox));
|
||||||
|
|
||||||
@ -368,7 +365,7 @@ create_tools (GtkWidget *parent)
|
|||||||
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), FALSE);
|
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), FALSE);
|
||||||
|
|
||||||
gtk_wrap_box_pack (GTK_WRAP_BOX (wbox), button,
|
gtk_wrap_box_pack (GTK_WRAP_BOX (wbox), button,
|
||||||
FALSE, TRUE, FALSE, TRUE);
|
FALSE, FALSE, FALSE, FALSE);
|
||||||
|
|
||||||
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||||
gtk_container_set_border_width (GTK_CONTAINER (alignment), 0);
|
gtk_container_set_border_width (GTK_CONTAINER (alignment), 0);
|
||||||
@ -592,16 +589,20 @@ create_toolbox (void)
|
|||||||
gimp_standard_help_func,
|
gimp_standard_help_func,
|
||||||
"toolbox/toolbox.html");
|
"toolbox/toolbox.html");
|
||||||
|
|
||||||
wbox = gtk_vwrap_box_new (FALSE);
|
wbox = gtk_hwrap_box_new (FALSE);
|
||||||
gtk_wrap_box_set_justify (GTK_WRAP_BOX (wbox), GTK_JUSTIFY_FILL);
|
gtk_wrap_box_set_justify (GTK_WRAP_BOX (wbox), GTK_JUSTIFY_TOP);
|
||||||
|
gtk_wrap_box_set_line_justify (GTK_WRAP_BOX (wbox), GTK_JUSTIFY_LEFT);
|
||||||
|
gtk_wrap_box_set_aspect_ratio (GTK_WRAP_BOX (wbox), 20);
|
||||||
gtk_container_set_border_width (GTK_CONTAINER (wbox), 0);
|
gtk_container_set_border_width (GTK_CONTAINER (wbox), 0);
|
||||||
gtk_box_pack_start (GTK_BOX (main_vbox), wbox, TRUE, TRUE, 0);
|
gtk_box_pack_start (GTK_BOX (main_vbox), wbox, TRUE, TRUE, 0);
|
||||||
gtk_widget_show (wbox);
|
gtk_widget_show (wbox);
|
||||||
|
|
||||||
create_tools (wbox);
|
create_tools (wbox);
|
||||||
|
|
||||||
create_color_area (wbox);
|
create_color_area (wbox);
|
||||||
if (show_indicators)
|
if (show_indicators)
|
||||||
create_indicator_area (wbox);
|
create_indicator_area (wbox);
|
||||||
|
|
||||||
gtk_widget_show (window);
|
gtk_widget_show (window);
|
||||||
toolbox_set_drag_dest (window);
|
toolbox_set_drag_dest (window);
|
||||||
|
|
||||||
|
@ -324,7 +324,8 @@ reverse_list_row_children (GtkWrapBox *wbox,
|
|||||||
if (GTK_WIDGET_VISIBLE (child->widget))
|
if (GTK_WIDGET_VISIBLE (child->widget))
|
||||||
{
|
{
|
||||||
get_child_requisition (wbox, child->widget, &child_requisition);
|
get_child_requisition (wbox, child->widget, &child_requisition);
|
||||||
if (width + wbox->hspacing + child_requisition.width > row_width)
|
if (width + wbox->hspacing + child_requisition.width > row_width ||
|
||||||
|
child->forced_break)
|
||||||
break;
|
break;
|
||||||
width += wbox->hspacing + child_requisition.width;
|
width += wbox->hspacing + child_requisition.width;
|
||||||
*max_child_size = MAX (*max_child_size, child_requisition.height);
|
*max_child_size = MAX (*max_child_size, child_requisition.height);
|
||||||
@ -620,7 +621,7 @@ layout_rows (GtkWrapBox *wbox,
|
|||||||
line->children,
|
line->children,
|
||||||
children_per_line,
|
children_per_line,
|
||||||
line->expand);
|
line->expand);
|
||||||
|
|
||||||
g_slist_free (line->children);
|
g_slist_free (line->children);
|
||||||
g_free (line);
|
g_free (line);
|
||||||
line = next_line;
|
line = next_line;
|
||||||
|
@ -324,7 +324,8 @@ reverse_list_col_children (GtkWrapBox *wbox,
|
|||||||
if (GTK_WIDGET_VISIBLE (child->widget))
|
if (GTK_WIDGET_VISIBLE (child->widget))
|
||||||
{
|
{
|
||||||
get_child_requisition (wbox, child->widget, &child_requisition);
|
get_child_requisition (wbox, child->widget, &child_requisition);
|
||||||
if (height + wbox->vspacing + child_requisition.height > col_height)
|
if (height + wbox->vspacing + child_requisition.height > col_height ||
|
||||||
|
child->forced_break)
|
||||||
break;
|
break;
|
||||||
height += wbox->vspacing + child_requisition.height;
|
height += wbox->vspacing + child_requisition.height;
|
||||||
*max_child_size = MAX (*max_child_size, child_requisition.width);
|
*max_child_size = MAX (*max_child_size, child_requisition.width);
|
||||||
|
@ -42,7 +42,8 @@ enum {
|
|||||||
CHILD_ARG_HEXPAND,
|
CHILD_ARG_HEXPAND,
|
||||||
CHILD_ARG_HFILL,
|
CHILD_ARG_HFILL,
|
||||||
CHILD_ARG_VEXPAND,
|
CHILD_ARG_VEXPAND,
|
||||||
CHILD_ARG_VFILL
|
CHILD_ARG_VFILL,
|
||||||
|
CHILD_ARG_FORCED_BREAK
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -166,6 +167,8 @@ gtk_wrap_box_class_init (GtkWrapBoxClass *class)
|
|||||||
GTK_TYPE_BOOL, GTK_ARG_READWRITE, CHILD_ARG_VEXPAND);
|
GTK_TYPE_BOOL, GTK_ARG_READWRITE, CHILD_ARG_VEXPAND);
|
||||||
gtk_container_add_child_arg_type ("GtkWrapBox::vfill",
|
gtk_container_add_child_arg_type ("GtkWrapBox::vfill",
|
||||||
GTK_TYPE_BOOL, GTK_ARG_READWRITE, CHILD_ARG_VFILL);
|
GTK_TYPE_BOOL, GTK_ARG_READWRITE, CHILD_ARG_VFILL);
|
||||||
|
gtk_container_add_child_arg_type ("GtkWrapBox::forcebreak",
|
||||||
|
GTK_TYPE_BOOL, GTK_ARG_READWRITE, CHILD_ARG_FORCED_BREAK);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -299,6 +302,10 @@ gtk_wrap_box_set_child_arg (GtkContainer *container,
|
|||||||
hexpand, hfill,
|
hexpand, hfill,
|
||||||
vexpand, GTK_VALUE_BOOL (*arg));
|
vexpand, GTK_VALUE_BOOL (*arg));
|
||||||
break;
|
break;
|
||||||
|
case CHILD_ARG_FORCED_BREAK:
|
||||||
|
gtk_wrap_box_set_child_forced_break (wbox, child,
|
||||||
|
GTK_VALUE_BOOL (*arg));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -457,6 +464,7 @@ gtk_wrap_box_pack (GtkWrapBox *wbox,
|
|||||||
child_info->hfill = hfill ? TRUE : FALSE;
|
child_info->hfill = hfill ? TRUE : FALSE;
|
||||||
child_info->vexpand = vexpand ? TRUE : FALSE;
|
child_info->vexpand = vexpand ? TRUE : FALSE;
|
||||||
child_info->vfill = vfill ? TRUE : FALSE;
|
child_info->vfill = vfill ? TRUE : FALSE;
|
||||||
|
child_info->forced_break = FALSE;
|
||||||
child_info->next = NULL;
|
child_info->next = NULL;
|
||||||
if (wbox->children)
|
if (wbox->children)
|
||||||
{
|
{
|
||||||
@ -565,6 +573,27 @@ gtk_wrap_box_query_child_packing (GtkWrapBox *wbox,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gtk_wrap_box_query_child_forced_break (GtkWrapBox *wbox,
|
||||||
|
GtkWidget *child,
|
||||||
|
gboolean *forced_break)
|
||||||
|
{
|
||||||
|
GtkWrapBoxChild *child_info;
|
||||||
|
|
||||||
|
g_return_if_fail (GTK_IS_WRAP_BOX (wbox));
|
||||||
|
g_return_if_fail (GTK_IS_WIDGET (child));
|
||||||
|
|
||||||
|
for (child_info = wbox->children; child_info; child_info = child_info->next)
|
||||||
|
if (child_info->widget == child)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (child_info)
|
||||||
|
{
|
||||||
|
if (forced_break)
|
||||||
|
*forced_break = child_info->forced_break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
gtk_wrap_box_set_child_packing (GtkWrapBox *wbox,
|
gtk_wrap_box_set_child_packing (GtkWrapBox *wbox,
|
||||||
GtkWidget *child,
|
GtkWidget *child,
|
||||||
@ -601,6 +630,32 @@ gtk_wrap_box_set_child_packing (GtkWrapBox *wbox,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gtk_wrap_box_set_child_forced_break (GtkWrapBox *wbox,
|
||||||
|
GtkWidget *child,
|
||||||
|
gboolean forced_break)
|
||||||
|
{
|
||||||
|
GtkWrapBoxChild *child_info;
|
||||||
|
|
||||||
|
g_return_if_fail (GTK_IS_WRAP_BOX (wbox));
|
||||||
|
g_return_if_fail (GTK_IS_WIDGET (child));
|
||||||
|
|
||||||
|
forced_break = forced_break != FALSE;
|
||||||
|
|
||||||
|
for (child_info = wbox->children; child_info; child_info = child_info->next)
|
||||||
|
if (child_info->widget == child)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (child_info &&
|
||||||
|
(child_info->forced_break != forced_break))
|
||||||
|
{
|
||||||
|
child_info->forced_break = forced_break;
|
||||||
|
|
||||||
|
if (GTK_WIDGET_VISIBLE (child) && GTK_WIDGET_VISIBLE (wbox))
|
||||||
|
gtk_widget_queue_resize (child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
guint*
|
guint*
|
||||||
gtk_wrap_box_query_line_lengths (GtkWrapBox *wbox,
|
gtk_wrap_box_query_line_lengths (GtkWrapBox *wbox,
|
||||||
guint *_n_lines)
|
guint *_n_lines)
|
||||||
|
@ -78,6 +78,7 @@ struct _GtkWrapBoxChild
|
|||||||
guint hfill : 1;
|
guint hfill : 1;
|
||||||
guint vexpand : 1;
|
guint vexpand : 1;
|
||||||
guint vfill : 1;
|
guint vfill : 1;
|
||||||
|
guint forced_break : 1;
|
||||||
|
|
||||||
GtkWrapBoxChild *next;
|
GtkWrapBoxChild *next;
|
||||||
};
|
};
|
||||||
@ -114,12 +115,18 @@ void gtk_wrap_box_query_child_packing (GtkWrapBox *wbox,
|
|||||||
gboolean *hfill,
|
gboolean *hfill,
|
||||||
gboolean *vexpand,
|
gboolean *vexpand,
|
||||||
gboolean *vfill);
|
gboolean *vfill);
|
||||||
|
void gtk_wrap_box_query_child_forced_break (GtkWrapBox *wbox,
|
||||||
|
GtkWidget *child,
|
||||||
|
gboolean *forced_break);
|
||||||
void gtk_wrap_box_set_child_packing (GtkWrapBox *wbox,
|
void gtk_wrap_box_set_child_packing (GtkWrapBox *wbox,
|
||||||
GtkWidget *child,
|
GtkWidget *child,
|
||||||
gboolean hexpand,
|
gboolean hexpand,
|
||||||
gboolean hfill,
|
gboolean hfill,
|
||||||
gboolean vexpand,
|
gboolean vexpand,
|
||||||
gboolean vfill);
|
gboolean vfill);
|
||||||
|
void gtk_wrap_box_set_child_forced_break (GtkWrapBox *wbox,
|
||||||
|
GtkWidget *child,
|
||||||
|
gboolean forced_break);
|
||||||
guint* gtk_wrap_box_query_line_lengths (GtkWrapBox *wbox,
|
guint* gtk_wrap_box_query_line_lengths (GtkWrapBox *wbox,
|
||||||
guint *n_lines);
|
guint *n_lines);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user