#endif
#if (GTK_MINOR_VERSION > 0)
- myfixed->shadow_type = GTK_SHADOW_NONE;
+ myfixed->shadow_type = GTK_MYSHADOW_NONE;
#endif
myfixed->children = NULL;
}
void
-gtk_myfixed_set_shadow_type (GtkMyFixed *myfixed,
- GtkShadowType type)
+gtk_myfixed_set_shadow_type (GtkMyFixed *myfixed,
+ GtkMyShadowType type)
{
g_return_if_fail (myfixed != NULL);
g_return_if_fail (GTK_IS_MYFIXED (myfixed));
- if ((GtkShadowType) myfixed->shadow_type != type)
+ if ((GtkMyShadowType) myfixed->shadow_type != type)
{
myfixed->shadow_type = type;
attributes.width = widget->allocation.width;
attributes.height = widget->allocation.height;
- if (myfixed->shadow_type != GTK_SHADOW_NONE)
+ if (myfixed->shadow_type == GTK_MYSHADOW_NONE)
{
+ /* no border, no changes to sizes */
+ } else
+ if (myfixed->shadow_type == GTK_MYSHADOW_THIN)
+ {
+ /* GTK_MYSHADOW_THIN == wxSIMPLE_BORDER */
+ attributes.x += 1;
+ attributes.y += 1;
+ attributes.width -= 2;
+ attributes.height -= 2;
+ } else
+ {
+ /* GTK_MYSHADOW_IN == wxSUNKEN_BORDER */
+ /* GTK_MYSHADOW_OUT == wxRAISED_BORDER */
attributes.x += 2;
attributes.y += 2;
attributes.width -= 4;
widget->allocation = *allocation;
#if (GTK_MINOR_VERSION > 0)
- if (myfixed->shadow_type == GTK_SHADOW_NONE)
+ if (myfixed->shadow_type == GTK_MYSHADOW_NONE)
border = 0;
+ else
+ if (myfixed->shadow_type == GTK_MYSHADOW_THIN)
+ border = 1;
else
border = 2;
#else
if (GTK_WIDGET_DRAWABLE (widget))
{
myfixed = GTK_MYFIXED (widget);
- gtk_myfixed_paint (widget, area);
-
+
children = myfixed->children;
+ if (children) /* mini optimisation */
+ gtk_myfixed_paint (widget, area);
+
while (children)
{
child = children->data;
gtk_widget_unparent (widget);
+ /* security checks */
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+
myfixed->children = g_list_remove_link (myfixed->children, children);
g_list_free (children);
g_free (child);
if (was_visible && GTK_WIDGET_VISIBLE (container))
gtk_widget_queue_resize (GTK_WIDGET (container));
+ /* security checks */
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+
break;
}