some fixes from the SGI build log

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5633 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2000-01-24 15:47:21 +00:00
parent b19d5e569e
commit bf3dab485a
7 changed files with 669 additions and 671 deletions

View File

@@ -24,6 +24,8 @@ public:
wxDataFormat( const wxChar *id ); wxDataFormat( const wxChar *id );
wxDataFormat( NativeFormat format ); wxDataFormat( NativeFormat format );
wxDataFormat& operator=(const wxDataFormat& format)
{ m_type = format.m_type; m_format = format.m_format; return *this; }
wxDataFormat& operator=(NativeFormat format) wxDataFormat& operator=(NativeFormat format)
{ SetId(format); return *this; } { SetId(format); return *this; }

View File

@@ -24,6 +24,8 @@ public:
wxDataFormat( const wxChar *id ); wxDataFormat( const wxChar *id );
wxDataFormat( NativeFormat format ); wxDataFormat( NativeFormat format );
wxDataFormat& operator=(const wxDataFormat& format)
{ m_type = format.m_type; m_format = format.m_format; return *this; }
wxDataFormat& operator=(NativeFormat format) wxDataFormat& operator=(NativeFormat format)
{ SetId(format); return *this; } { SetId(format); return *this; }

View File

@@ -33,7 +33,6 @@ void _GSocket_GDK_Input(gpointer data,
void _GSocket_GUI_Init(GSocket *socket) void _GSocket_GUI_Init(GSocket *socket)
{ {
int i;
gint *m_id; gint *m_id;
socket->m_gui_dependent = (char *)malloc(sizeof(gint)*2); socket->m_gui_dependent = (char *)malloc(sizeof(gint)*2);

View File

@@ -6,7 +6,7 @@
// Author: Robert Roebling // Author: Robert Roebling
// Id: $Id$ // Id: $Id$
// Copyright: (c) 1998 Robert Roebling // Copyright: (c) 1998 Robert Roebling
// Licence: wxWindows licence // Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////// */ /////////////////////////////////////////////////////////////////////////// */
#include "wx/gtk/win_gtk.h" #include "wx/gtk/win_gtk.h"
@@ -48,55 +48,55 @@ static void gtk_pizza_unrealize (GtkWidget *widget);
static void gtk_pizza_map (GtkWidget *widget); static void gtk_pizza_map (GtkWidget *widget);
static void gtk_pizza_size_request (GtkWidget *widget, static void gtk_pizza_size_request (GtkWidget *widget,
GtkRequisition *requisition); GtkRequisition *requisition);
static void gtk_pizza_size_allocate (GtkWidget *widget, static void gtk_pizza_size_allocate (GtkWidget *widget,
GtkAllocation *allocation); GtkAllocation *allocation);
static void gtk_pizza_draw (GtkWidget *widget, static void gtk_pizza_draw (GtkWidget *widget,
GdkRectangle *area); GdkRectangle *area);
static gint gtk_pizza_expose (GtkWidget *widget, static gint gtk_pizza_expose (GtkWidget *widget,
GdkEventExpose *event); GdkEventExpose *event);
static void gtk_pizza_add (GtkContainer *container, static void gtk_pizza_add (GtkContainer *container,
GtkWidget *widget); GtkWidget *widget);
static void gtk_pizza_remove (GtkContainer *container, static void gtk_pizza_remove (GtkContainer *container,
GtkWidget *widget); GtkWidget *widget);
static void gtk_pizza_forall (GtkContainer *container, static void gtk_pizza_forall (GtkContainer *container,
gboolean include_internals, gboolean include_internals,
GtkCallback callback, GtkCallback callback,
gpointer callback_data); gpointer callback_data);
static void gtk_pizza_position_child (GtkPizza *pizza, static void gtk_pizza_position_child (GtkPizza *pizza,
GtkPizzaChild *child); GtkPizzaChild *child);
static void gtk_pizza_allocate_child (GtkPizza *pizza, static void gtk_pizza_allocate_child (GtkPizza *pizza,
GtkPizzaChild *child); GtkPizzaChild *child);
static void gtk_pizza_position_children (GtkPizza *pizza); static void gtk_pizza_position_children (GtkPizza *pizza);
static void gtk_pizza_adjust_allocations_recurse (GtkWidget *widget, static void gtk_pizza_adjust_allocations_recurse (GtkWidget *widget,
gpointer cb_data); gpointer cb_data);
static void gtk_pizza_adjust_allocations (GtkPizza *pizza, static void gtk_pizza_adjust_allocations (GtkPizza *pizza,
gint dx, gint dx,
gint dy); gint dy);
static void gtk_pizza_expose_area (GtkPizza *pizza, static void gtk_pizza_expose_area (GtkPizza *pizza,
gint x, gint x,
gint y, gint y,
gint width, gint width,
gint height); gint height);
static void gtk_pizza_adjustment_changed (GtkAdjustment *adjustment, static void gtk_pizza_adjustment_changed (GtkAdjustment *adjustment,
GtkPizza *pizza); GtkPizza *pizza);
static GdkFilterReturn gtk_pizza_filter (GdkXEvent *gdk_xevent, static GdkFilterReturn gtk_pizza_filter (GdkXEvent *gdk_xevent,
GdkEvent *event, GdkEvent *event,
gpointer data); gpointer data);
static GdkFilterReturn gtk_pizza_main_filter (GdkXEvent *gdk_xevent, static GdkFilterReturn gtk_pizza_main_filter (GdkXEvent *gdk_xevent,
GdkEvent *event, GdkEvent *event,
gpointer data); gpointer data);
static GtkType gtk_pizza_child_type (GtkContainer *container); static GtkType gtk_pizza_child_type (GtkContainer *container);
static void gtk_pizza_scroll_set_adjustments (GtkPizza *pizza, static void gtk_pizza_scroll_set_adjustments (GtkPizza *pizza,
GtkAdjustment *hadj, GtkAdjustment *hadj,
GtkAdjustment *vadj); GtkAdjustment *vadj);
static GtkContainerClass *parent_class = NULL; static GtkContainerClass *parent_class = NULL;
@@ -111,12 +111,12 @@ gtk_pizza_get_type ()
{ {
GtkTypeInfo pizza_info = GtkTypeInfo pizza_info =
{ {
"GtkPizza", "GtkPizza",
sizeof (GtkPizza), sizeof (GtkPizza),
sizeof (GtkPizzaClass), sizeof (GtkPizzaClass),
(GtkClassInitFunc) gtk_pizza_class_init, (GtkClassInitFunc) gtk_pizza_class_init,
(GtkObjectInitFunc) gtk_pizza_init, (GtkObjectInitFunc) gtk_pizza_init,
/* reserved_1 */ NULL, /* reserved_1 */ NULL,
/* reserved_2 */ NULL, /* reserved_2 */ NULL,
(GtkClassInitFunc) NULL, (GtkClassInitFunc) NULL,
}; };
@@ -156,11 +156,11 @@ gtk_pizza_class_init (GtkPizzaClass *klass)
widget_class->set_scroll_adjustments_signal = widget_class->set_scroll_adjustments_signal =
gtk_signal_new ("set_scroll_adjustments", gtk_signal_new ("set_scroll_adjustments",
GTK_RUN_LAST, GTK_RUN_LAST,
object_class->type, object_class->type,
GTK_SIGNAL_OFFSET (GtkPizzaClass, set_scroll_adjustments), GTK_SIGNAL_OFFSET (GtkPizzaClass, set_scroll_adjustments),
gtk_marshal_NONE__POINTER_POINTER, gtk_marshal_NONE__POINTER_POINTER,
GTK_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT); GTK_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT);
} }
static GtkType static GtkType
@@ -203,15 +203,15 @@ gtk_pizza_new ()
static void static void
gtk_pizza_scroll_set_adjustments (GtkPizza *pizza, gtk_pizza_scroll_set_adjustments (GtkPizza *pizza,
GtkAdjustment *hadj, GtkAdjustment *hadj,
GtkAdjustment *vadj) GtkAdjustment *vadj)
{ {
/* We handle scrolling in the wxScrolledWindow, not here. */ /* We handle scrolling in the wxScrolledWindow, not here. */
} }
void void
gtk_pizza_set_shadow_type (GtkPizza *pizza, gtk_pizza_set_shadow_type (GtkPizza *pizza,
GtkMyShadowType type) GtkMyShadowType type)
{ {
g_return_if_fail (pizza != NULL); g_return_if_fail (pizza != NULL);
g_return_if_fail (GTK_IS_PIZZA (pizza)); g_return_if_fail (GTK_IS_PIZZA (pizza));
@@ -221,10 +221,10 @@ gtk_pizza_set_shadow_type (GtkPizza *pizza,
pizza->shadow_type = type; pizza->shadow_type = type;
if (GTK_WIDGET_VISIBLE (pizza)) if (GTK_WIDGET_VISIBLE (pizza))
{ {
gtk_widget_size_allocate (GTK_WIDGET (pizza), &(GTK_WIDGET (pizza)->allocation)); gtk_widget_size_allocate (GTK_WIDGET (pizza), &(GTK_WIDGET (pizza)->allocation));
gtk_widget_queue_draw (GTK_WIDGET (pizza)); gtk_widget_queue_draw (GTK_WIDGET (pizza));
} }
} }
} }
@@ -243,8 +243,8 @@ gtk_pizza_put (GtkPizza *pizza,
GtkWidget *widget, GtkWidget *widget,
gint x, gint x,
gint y, gint y,
gint width, gint width,
gint height) gint height)
{ {
GtkPizzaChild *child_info; GtkPizzaChild *child_info;
@@ -278,7 +278,7 @@ gtk_pizza_put (GtkPizza *pizza,
if (GTK_WIDGET_VISIBLE (pizza) && GTK_WIDGET_VISIBLE (widget)) if (GTK_WIDGET_VISIBLE (pizza) && GTK_WIDGET_VISIBLE (widget))
{ {
if (GTK_WIDGET_MAPPED (pizza)) if (GTK_WIDGET_MAPPED (pizza))
gtk_widget_map (widget); gtk_widget_map (widget);
gtk_widget_queue_resize (widget); gtk_widget_queue_resize (widget);
} }
@@ -305,24 +305,24 @@ gtk_pizza_move (GtkPizza *pizza,
if (child->widget == widget) if (child->widget == widget)
{ {
if ((child->x == x) && (child->y == y)) if ((child->x == x) && (child->y == y))
break; break;
child->x = x; child->x = x;
child->y = y; child->y = y;
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (pizza)) if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (pizza))
gtk_widget_queue_resize (widget); gtk_widget_queue_resize (widget);
break; break;
} }
} }
} }
void void
gtk_pizza_resize (GtkPizza *pizza, gtk_pizza_resize (GtkPizza *pizza,
GtkWidget *widget, GtkWidget *widget,
gint width, gint width,
gint height) gint height)
{ {
GtkPizzaChild *child; GtkPizzaChild *child;
GList *children; GList *children;
@@ -339,18 +339,18 @@ gtk_pizza_resize (GtkPizza *pizza,
if (child->widget == widget) if (child->widget == widget)
{ {
if ((child->width == width) && (child->height == height)) if ((child->width == width) && (child->height == height))
break; break;
child->width = width; child->width = width;
child->height = height; child->height = height;
gtk_widget_set_usize (widget, width, height); gtk_widget_set_usize (widget, width, height);
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (pizza)) if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (pizza))
gtk_widget_queue_resize (widget); gtk_widget_queue_resize (widget);
break; break;
} }
} }
} }
@@ -359,12 +359,11 @@ gtk_pizza_set_size (GtkPizza *pizza,
GtkWidget *widget, GtkWidget *widget,
gint x, gint x,
gint y, gint y,
gint width, gint width,
gint height) gint height)
{ {
GtkPizzaChild *child; GtkPizzaChild *child;
GList *children; GList *children;
GtkAllocation child_allocation;
g_return_if_fail (pizza != NULL); g_return_if_fail (pizza != NULL);
g_return_if_fail (GTK_IS_PIZZA (pizza)); g_return_if_fail (GTK_IS_PIZZA (pizza));
@@ -378,20 +377,20 @@ gtk_pizza_set_size (GtkPizza *pizza,
if (child->widget == widget) if (child->widget == widget)
{ {
if ((child->x == x) && if ((child->x == x) &&
(child->y == y) && (child->y == y) &&
(child->width == width) && (child->width == width) &&
(child->height == height)) return; (child->height == height)) return;
child->x = x; child->x = x;
child->y = y; child->y = y;
child->width = width; child->width = width;
child->height = height; child->height = height;
gtk_widget_set_usize (widget, width, height); gtk_widget_set_usize (widget, width, height);
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (pizza)) if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (pizza))
gtk_widget_queue_resize (widget); gtk_widget_queue_resize (widget);
return; return;
} }
@@ -418,11 +417,11 @@ gtk_pizza_map (GtkWidget *widget)
children = children->next; children = children->next;
if ( GTK_WIDGET_VISIBLE (child->widget) && if ( GTK_WIDGET_VISIBLE (child->widget) &&
!GTK_WIDGET_MAPPED (child->widget) && !GTK_WIDGET_MAPPED (child->widget) &&
!GTK_WIDGET_IS_OFFSCREEN (child->widget)) !GTK_WIDGET_IS_OFFSCREEN (child->widget))
{ {
gtk_widget_map (child->widget); gtk_widget_map (child->widget);
} }
} }
gdk_window_show (widget->window); gdk_window_show (widget->window);
@@ -485,7 +484,7 @@ gtk_pizza_realize (GtkWidget *widget)
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), widget->window = gdk_window_new (gtk_widget_get_parent_window (widget),
&attributes, attributes_mask); &attributes, attributes_mask);
gdk_window_set_user_data (widget->window, widget); gdk_window_set_user_data (widget->window, widget);
attributes.x = 0; attributes.x = 0;
@@ -493,23 +492,23 @@ gtk_pizza_realize (GtkWidget *widget)
attributes.event_mask = gtk_widget_get_events (widget); attributes.event_mask = gtk_widget_get_events (widget);
attributes.event_mask |= attributes.event_mask |=
GDK_EXPOSURE_MASK | GDK_EXPOSURE_MASK |
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_MOTION_MASK | GDK_BUTTON_MOTION_MASK |
GDK_BUTTON1_MOTION_MASK | GDK_BUTTON1_MOTION_MASK |
GDK_BUTTON2_MOTION_MASK | GDK_BUTTON2_MOTION_MASK |
GDK_BUTTON3_MOTION_MASK | GDK_BUTTON3_MOTION_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_RELEASE_MASK |
GDK_KEY_PRESS_MASK | GDK_KEY_PRESS_MASK |
GDK_KEY_RELEASE_MASK | GDK_KEY_RELEASE_MASK |
GDK_ENTER_NOTIFY_MASK | GDK_ENTER_NOTIFY_MASK |
GDK_LEAVE_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK |
GDK_FOCUS_CHANGE_MASK; GDK_FOCUS_CHANGE_MASK;
pizza->bin_window = gdk_window_new (widget->window, pizza->bin_window = gdk_window_new (widget->window,
&attributes, attributes_mask); &attributes, attributes_mask);
gdk_window_set_user_data (pizza->bin_window, widget); gdk_window_set_user_data (pizza->bin_window, widget);
widget->style = gtk_style_attach (widget->style, widget->window); widget->style = gtk_style_attach (widget->style, widget->window);
@@ -554,7 +553,7 @@ gtk_pizza_unrealize (GtkWidget *widget)
static void static void
gtk_pizza_size_request (GtkWidget *widget, gtk_pizza_size_request (GtkWidget *widget,
GtkRequisition *requisition) GtkRequisition *requisition)
{ {
GtkPizza *pizza; GtkPizza *pizza;
GtkPizzaChild *child; GtkPizzaChild *child;
@@ -574,9 +573,9 @@ gtk_pizza_size_request (GtkWidget *widget,
children = children->next; children = children->next;
if (GTK_WIDGET_VISIBLE (child->widget)) if (GTK_WIDGET_VISIBLE (child->widget))
{ {
gtk_widget_size_request (child->widget, &child_requisition); gtk_widget_size_request (child->widget, &child_requisition);
} }
} }
/* request very little, I'm not sure if requesting nothing /* request very little, I'm not sure if requesting nothing
@@ -587,13 +586,12 @@ gtk_pizza_size_request (GtkWidget *widget,
static void static void
gtk_pizza_size_allocate (GtkWidget *widget, gtk_pizza_size_allocate (GtkWidget *widget,
GtkAllocation *allocation) GtkAllocation *allocation)
{ {
GtkPizza *pizza; GtkPizza *pizza;
gint border; gint border;
gint x,y,w,h; gint x,y,w,h;
GtkPizzaChild *child; GtkPizzaChild *child;
GtkAllocation child_allocation;
GList *children; GList *children;
g_return_if_fail (widget != NULL); g_return_if_fail (widget != NULL);
@@ -636,7 +634,7 @@ gtk_pizza_size_allocate (GtkWidget *widget,
static void static void
gtk_pizza_draw (GtkWidget *widget, gtk_pizza_draw (GtkWidget *widget,
GdkRectangle *area) GdkRectangle *area)
{ {
GtkPizza *pizza; GtkPizza *pizza;
GtkPizzaChild *child; GtkPizzaChild *child;
@@ -653,22 +651,22 @@ gtk_pizza_draw (GtkWidget *widget,
(pizza->clear_on_draw)) (pizza->clear_on_draw))
{ {
gdk_window_clear_area( pizza->bin_window, gdk_window_clear_area( pizza->bin_window,
area->x, area->y, area->width, area->height); area->x, area->y, area->width, area->height);
} }
while (children) while (children)
{ {
child = children->data; child = children->data;
children = children->next; children = children->next;
if (gtk_widget_intersect (child->widget, area, &child_area)) if (gtk_widget_intersect (child->widget, area, &child_area))
gtk_widget_draw (child->widget, &child_area); gtk_widget_draw (child->widget, &child_area);
} }
} }
static gint static gint
gtk_pizza_expose (GtkWidget *widget, gtk_pizza_expose (GtkWidget *widget,
GdkEventExpose *event) GdkEventExpose *event)
{ {
GtkPizza *pizza; GtkPizza *pizza;
GtkPizzaChild *child; GtkPizzaChild *child;
@@ -695,17 +693,17 @@ gtk_pizza_expose (GtkWidget *widget,
children = pizza->children; children = pizza->children;
while (children) while (children)
{ {
child = children->data; child = children->data;
children = children->next; children = children->next;
child_event = *event; child_event = *event;
if (GTK_WIDGET_NO_WINDOW (child->widget) && if (GTK_WIDGET_NO_WINDOW (child->widget) &&
GTK_WIDGET_DRAWABLE (child->widget) && GTK_WIDGET_DRAWABLE (child->widget) &&
gtk_widget_intersect (child->widget, &event->area, &child_event.area)) gtk_widget_intersect (child->widget, &event->area, &child_event.area))
{ {
gtk_widget_event (child->widget, (GdkEvent*) &child_event); gtk_widget_event (child->widget, (GdkEvent*) &child_event);
} }
} }
return FALSE; return FALSE;
@@ -713,7 +711,7 @@ gtk_pizza_expose (GtkWidget *widget,
static void static void
gtk_pizza_add (GtkContainer *container, gtk_pizza_add (GtkContainer *container,
GtkWidget *widget) GtkWidget *widget)
{ {
g_return_if_fail (container != NULL); g_return_if_fail (container != NULL);
g_return_if_fail (GTK_IS_PIZZA (container)); g_return_if_fail (GTK_IS_PIZZA (container));
@@ -724,7 +722,7 @@ gtk_pizza_add (GtkContainer *container,
static void static void
gtk_pizza_remove (GtkContainer *container, gtk_pizza_remove (GtkContainer *container,
GtkWidget *widget) GtkWidget *widget)
{ {
GtkPizza *pizza; GtkPizza *pizza;
GtkPizzaChild *child; GtkPizzaChild *child;
@@ -742,23 +740,23 @@ gtk_pizza_remove (GtkContainer *container,
child = children->data; child = children->data;
if (child->widget == widget) if (child->widget == widget)
{ {
gtk_widget_unparent (widget); gtk_widget_unparent (widget);
/* security checks */ /* security checks */
g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (GTK_IS_WIDGET (widget));
pizza->children = g_list_remove_link (pizza->children, children); pizza->children = g_list_remove_link (pizza->children, children);
g_list_free (children); g_list_free (children);
g_free (child); g_free (child);
/* security checks */ /* security checks */
g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (GTK_IS_WIDGET (widget));
GTK_PRIVATE_UNSET_FLAG (widget, GTK_IS_OFFSCREEN); GTK_PRIVATE_UNSET_FLAG (widget, GTK_IS_OFFSCREEN);
break; break;
} }
children = children->next; children = children->next;
} }
@@ -766,9 +764,9 @@ gtk_pizza_remove (GtkContainer *container,
static void static void
gtk_pizza_forall (GtkContainer *container, gtk_pizza_forall (GtkContainer *container,
gboolean include_internals, gboolean include_internals,
GtkCallback callback, GtkCallback callback,
gpointer callback_data) gpointer callback_data)
{ {
GtkPizza *pizza; GtkPizza *pizza;
GtkPizzaChild *child; GtkPizzaChild *child;
@@ -796,7 +794,7 @@ gtk_pizza_forall (GtkContainer *container,
static void static void
gtk_pizza_position_child (GtkPizza *pizza, gtk_pizza_position_child (GtkPizza *pizza,
GtkPizzaChild *child) GtkPizzaChild *child)
{ {
gint x; gint x;
gint y; gint y;
@@ -807,28 +805,28 @@ gtk_pizza_position_child (GtkPizza *pizza,
if (IS_ONSCREEN (x,y)) if (IS_ONSCREEN (x,y))
{ {
if (GTK_WIDGET_MAPPED (pizza) && if (GTK_WIDGET_MAPPED (pizza) &&
GTK_WIDGET_VISIBLE (child->widget)) GTK_WIDGET_VISIBLE (child->widget))
{ {
if (!GTK_WIDGET_MAPPED (child->widget)) if (!GTK_WIDGET_MAPPED (child->widget))
gtk_widget_map (child->widget); gtk_widget_map (child->widget);
} }
if (GTK_WIDGET_IS_OFFSCREEN (child->widget)) if (GTK_WIDGET_IS_OFFSCREEN (child->widget))
GTK_PRIVATE_UNSET_FLAG (child->widget, GTK_IS_OFFSCREEN); GTK_PRIVATE_UNSET_FLAG (child->widget, GTK_IS_OFFSCREEN);
} }
else else
{ {
if (!GTK_WIDGET_IS_OFFSCREEN (child->widget)) if (!GTK_WIDGET_IS_OFFSCREEN (child->widget))
GTK_PRIVATE_SET_FLAG (child->widget, GTK_IS_OFFSCREEN); GTK_PRIVATE_SET_FLAG (child->widget, GTK_IS_OFFSCREEN);
if (GTK_WIDGET_MAPPED (child->widget)) if (GTK_WIDGET_MAPPED (child->widget))
gtk_widget_unmap (child->widget); gtk_widget_unmap (child->widget);
} }
} }
static void static void
gtk_pizza_allocate_child (GtkPizza *pizza, gtk_pizza_allocate_child (GtkPizza *pizza,
GtkPizzaChild *child) GtkPizzaChild *child)
{ {
GtkAllocation allocation; GtkAllocation allocation;
GtkRequisition requisition; GtkRequisition requisition;
@@ -859,7 +857,7 @@ gtk_pizza_position_children (GtkPizza *pizza)
static void static void
gtk_pizza_adjust_allocations_recurse (GtkWidget *widget, gtk_pizza_adjust_allocations_recurse (GtkWidget *widget,
gpointer cb_data) gpointer cb_data)
{ {
GtkPizzaAdjData *data = cb_data; GtkPizzaAdjData *data = cb_data;
@@ -869,15 +867,15 @@ gtk_pizza_adjust_allocations_recurse (GtkWidget *widget,
if (GTK_WIDGET_NO_WINDOW (widget) && GTK_IS_CONTAINER (widget)) if (GTK_WIDGET_NO_WINDOW (widget) && GTK_IS_CONTAINER (widget))
{ {
gtk_container_forall (GTK_CONTAINER (widget), gtk_container_forall (GTK_CONTAINER (widget),
gtk_pizza_adjust_allocations_recurse, gtk_pizza_adjust_allocations_recurse,
cb_data); cb_data);
} }
} }
static void static void
gtk_pizza_adjust_allocations (GtkPizza *pizza, gtk_pizza_adjust_allocations (GtkPizza *pizza,
gint dx, gint dx,
gint dy) gint dy)
{ {
GList *tmp_list; GList *tmp_list;
GtkPizzaAdjData data; GtkPizzaAdjData data;
@@ -895,10 +893,10 @@ gtk_pizza_adjust_allocations (GtkPizza *pizza,
child->widget->allocation.y += dy; child->widget->allocation.y += dy;
if (GTK_WIDGET_NO_WINDOW (child->widget) && if (GTK_WIDGET_NO_WINDOW (child->widget) &&
GTK_IS_CONTAINER (child->widget)) GTK_IS_CONTAINER (child->widget))
gtk_container_forall (GTK_CONTAINER (child->widget), gtk_container_forall (GTK_CONTAINER (child->widget),
gtk_pizza_adjust_allocations_recurse, gtk_pizza_adjust_allocations_recurse,
&data); &data);
} }
} }
@@ -908,7 +906,7 @@ gtk_pizza_adjust_allocations (GtkPizza *pizza,
*/ */
static void static void
gtk_pizza_expose_area (GtkPizza *pizza, gtk_pizza_expose_area (GtkPizza *pizza,
gint x, gint y, gint width, gint height) gint x, gint y, gint width, gint height)
{ {
if (pizza->visibility == GDK_VISIBILITY_UNOBSCURED) if (pizza->visibility == GDK_VISIBILITY_UNOBSCURED)
{ {
@@ -935,8 +933,8 @@ gtk_pizza_expose_area (GtkPizza *pizza,
static Bool static Bool
gtk_pizza_expose_predicate (Display *display, gtk_pizza_expose_predicate (Display *display,
XEvent *xevent, XEvent *xevent,
XPointer arg) XPointer arg)
{ {
if ((xevent->type == Expose) || if ((xevent->type == Expose) ||
((xevent->xany.window == *(Window *)arg) && ((xevent->xany.window == *(Window *)arg) &&
@@ -995,86 +993,86 @@ gtk_pizza_scroll (GtkPizza *pizza, gint dx, gint dy)
if (dx > 0) if (dx > 0)
{ {
if (gravity_works) if (gravity_works)
{ {
gdk_window_resize (pizza->bin_window, gdk_window_resize (pizza->bin_window,
w + dx, w + dx,
h); h);
gdk_window_move (pizza->bin_window, x-dx, y); gdk_window_move (pizza->bin_window, x-dx, y);
gdk_window_move_resize (pizza->bin_window, x, y, w, h ); gdk_window_move_resize (pizza->bin_window, x, y, w, h );
} }
else else
{ {
/* FIXME */ /* FIXME */
} }
gtk_pizza_expose_area (pizza, gtk_pizza_expose_area (pizza,
MAX ((gint)w - dx, 0), MAX ((gint)w - dx, 0),
0, 0,
MIN (dx, w), MIN (dx, w),
h); h);
} }
else if (dx < 0) else if (dx < 0)
{ {
if (gravity_works) if (gravity_works)
{ {
gdk_window_move_resize (pizza->bin_window, gdk_window_move_resize (pizza->bin_window,
x + dx, x + dx,
y, y,
w - dx, w - dx,
h); h);
gdk_window_move (pizza->bin_window, x, y); gdk_window_move (pizza->bin_window, x, y);
gdk_window_resize (pizza->bin_window, w, h ); gdk_window_resize (pizza->bin_window, w, h );
} }
else else
{ {
/* FIXME */ /* FIXME */
} }
gtk_pizza_expose_area (pizza, gtk_pizza_expose_area (pizza,
0, 0,
0, 0,
MIN (-dx, w), MIN (-dx, w),
h); h);
} }
if (dy > 0) if (dy > 0)
{ {
if (gravity_works) if (gravity_works)
{ {
gdk_window_resize (pizza->bin_window, w, h + dy); gdk_window_resize (pizza->bin_window, w, h + dy);
gdk_window_move (pizza->bin_window, x, y-dy); gdk_window_move (pizza->bin_window, x, y-dy);
gdk_window_move_resize (pizza->bin_window, gdk_window_move_resize (pizza->bin_window,
x, y, w, h ); x, y, w, h );
} }
else else
{ {
/* FIXME */ /* FIXME */
} }
gtk_pizza_expose_area (pizza, gtk_pizza_expose_area (pizza,
0, 0,
MAX ((gint)h - dy, 0), MAX ((gint)h - dy, 0),
w, w,
MIN (dy, h)); MIN (dy, h));
} }
else if (dy < 0) else if (dy < 0)
{ {
if (gravity_works) if (gravity_works)
{ {
gdk_window_move_resize (pizza->bin_window, gdk_window_move_resize (pizza->bin_window,
x, y+dy, w, h - dy ); x, y+dy, w, h - dy );
gdk_window_move (pizza->bin_window, x, y); gdk_window_move (pizza->bin_window, x, y);
gdk_window_resize (pizza->bin_window, w, h ); gdk_window_resize (pizza->bin_window, w, h );
} }
else else
{ {
/* FIXME */ /* FIXME */
} }
gtk_pizza_expose_area (pizza, gtk_pizza_expose_area (pizza,
0, 0,
0, 0,
w, w,
MIN (-dy, (gint)h)); MIN (-dy, (gint)h));
} }
gtk_pizza_position_children (pizza); gtk_pizza_position_children (pizza);
@@ -1092,37 +1090,37 @@ gtk_pizza_scroll (GtkPizza *pizza, gint dx, gint dy)
gdk_flush(); gdk_flush();
while (XCheckIfEvent(GDK_WINDOW_XDISPLAY (pizza->bin_window), while (XCheckIfEvent(GDK_WINDOW_XDISPLAY (pizza->bin_window),
&xevent, &xevent,
gtk_pizza_expose_predicate, gtk_pizza_expose_predicate,
(XPointer)&GDK_WINDOW_XWINDOW (pizza->bin_window))) (XPointer)&GDK_WINDOW_XWINDOW (pizza->bin_window)))
{ {
GdkEvent event; GdkEvent event;
GtkWidget *event_widget; GtkWidget *event_widget;
if ((xevent.xany.window == GDK_WINDOW_XWINDOW (pizza->bin_window)) && if ((xevent.xany.window == GDK_WINDOW_XWINDOW (pizza->bin_window)) &&
(gtk_pizza_filter (&xevent, &event, pizza) == GDK_FILTER_REMOVE)) (gtk_pizza_filter (&xevent, &event, pizza) == GDK_FILTER_REMOVE))
continue; continue;
if (xevent.type == Expose) if (xevent.type == Expose)
{ {
event.expose.window = gdk_window_lookup (xevent.xany.window); event.expose.window = gdk_window_lookup (xevent.xany.window);
gdk_window_get_user_data (event.expose.window, gdk_window_get_user_data (event.expose.window,
(gpointer *)&event_widget); (gpointer *)&event_widget);
if (event_widget) if (event_widget)
{ {
event.expose.type = GDK_EXPOSE; event.expose.type = GDK_EXPOSE;
event.expose.area.x = xevent.xexpose.x; event.expose.area.x = xevent.xexpose.x;
event.expose.area.y = xevent.xexpose.y; event.expose.area.y = xevent.xexpose.y;
event.expose.area.width = xevent.xexpose.width; event.expose.area.width = xevent.xexpose.width;
event.expose.area.height = xevent.xexpose.height; event.expose.area.height = xevent.xexpose.height;
event.expose.count = xevent.xexpose.count; event.expose.count = xevent.xexpose.count;
gdk_window_ref (event.expose.window); gdk_window_ref (event.expose.window);
gtk_widget_event (event_widget, &event); gtk_widget_event (event_widget, &event);
gdk_window_unref (event.expose.window); gdk_window_unref (event.expose.window);
} }
} }
} }
} }
@@ -1138,8 +1136,8 @@ gtk_pizza_scroll (GtkPizza *pizza, gint dx, gint dy)
*/ */
static GdkFilterReturn static GdkFilterReturn
gtk_pizza_filter (GdkXEvent *gdk_xevent, gtk_pizza_filter (GdkXEvent *gdk_xevent,
GdkEvent *event, GdkEvent *event,
gpointer data) gpointer data)
{ {
XEvent *xevent; XEvent *xevent;
GtkPizza *pizza; GtkPizza *pizza;
@@ -1151,26 +1149,26 @@ gtk_pizza_filter (GdkXEvent *gdk_xevent,
{ {
case Expose: case Expose:
if (xevent->xexpose.serial == pizza->configure_serial) if (xevent->xexpose.serial == pizza->configure_serial)
{ {
if (pizza->visibility == GDK_VISIBILITY_UNOBSCURED) if (pizza->visibility == GDK_VISIBILITY_UNOBSCURED)
return GDK_FILTER_REMOVE; return GDK_FILTER_REMOVE;
else else
{ {
xevent->xexpose.x += pizza->scroll_x; xevent->xexpose.x += pizza->scroll_x;
xevent->xexpose.y += pizza->scroll_y; xevent->xexpose.y += pizza->scroll_y;
break; break;
} }
} }
break; break;
case ConfigureNotify: case ConfigureNotify:
if ((xevent->xconfigure.x != 0) || (xevent->xconfigure.y != 0)) if ((xevent->xconfigure.x != 0) || (xevent->xconfigure.y != 0))
{ {
pizza->configure_serial = xevent->xconfigure.serial; pizza->configure_serial = xevent->xconfigure.serial;
pizza->scroll_x = xevent->xconfigure.x; pizza->scroll_x = xevent->xconfigure.x;
pizza->scroll_y = xevent->xconfigure.y; pizza->scroll_y = xevent->xconfigure.y;
} }
break; break;
} }
@@ -1183,8 +1181,8 @@ gtk_pizza_filter (GdkXEvent *gdk_xevent,
*/ */
static GdkFilterReturn static GdkFilterReturn
gtk_pizza_main_filter (GdkXEvent *gdk_xevent, gtk_pizza_main_filter (GdkXEvent *gdk_xevent,
GdkEvent *event, GdkEvent *event,
gpointer data) gpointer data)
{ {
XEvent *xevent; XEvent *xevent;
GtkPizza *pizza; GtkPizza *pizza;
@@ -1195,19 +1193,19 @@ gtk_pizza_main_filter (GdkXEvent *gdk_xevent,
if (xevent->type == VisibilityNotify) if (xevent->type == VisibilityNotify)
{ {
switch (xevent->xvisibility.state) switch (xevent->xvisibility.state)
{ {
case VisibilityFullyObscured: case VisibilityFullyObscured:
pizza->visibility = GDK_VISIBILITY_FULLY_OBSCURED; pizza->visibility = GDK_VISIBILITY_FULLY_OBSCURED;
break; break;
case VisibilityPartiallyObscured: case VisibilityPartiallyObscured:
pizza->visibility = GDK_VISIBILITY_PARTIAL; pizza->visibility = GDK_VISIBILITY_PARTIAL;
break; break;
case VisibilityUnobscured: case VisibilityUnobscured:
pizza->visibility = GDK_VISIBILITY_UNOBSCURED; pizza->visibility = GDK_VISIBILITY_UNOBSCURED;
break; break;
} }
return GDK_FILTER_REMOVE; return GDK_FILTER_REMOVE;
} }

View File

@@ -33,7 +33,6 @@ void _GSocket_GDK_Input(gpointer data,
void _GSocket_GUI_Init(GSocket *socket) void _GSocket_GUI_Init(GSocket *socket)
{ {
int i;
gint *m_id; gint *m_id;
socket->m_gui_dependent = (char *)malloc(sizeof(gint)*2); socket->m_gui_dependent = (char *)malloc(sizeof(gint)*2);

View File

@@ -6,7 +6,7 @@
// Author: Robert Roebling // Author: Robert Roebling
// Id: $Id$ // Id: $Id$
// Copyright: (c) 1998 Robert Roebling // Copyright: (c) 1998 Robert Roebling
// Licence: wxWindows licence // Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////// */ /////////////////////////////////////////////////////////////////////////// */
#include "wx/gtk/win_gtk.h" #include "wx/gtk/win_gtk.h"
@@ -48,55 +48,55 @@ static void gtk_pizza_unrealize (GtkWidget *widget);
static void gtk_pizza_map (GtkWidget *widget); static void gtk_pizza_map (GtkWidget *widget);
static void gtk_pizza_size_request (GtkWidget *widget, static void gtk_pizza_size_request (GtkWidget *widget,
GtkRequisition *requisition); GtkRequisition *requisition);
static void gtk_pizza_size_allocate (GtkWidget *widget, static void gtk_pizza_size_allocate (GtkWidget *widget,
GtkAllocation *allocation); GtkAllocation *allocation);
static void gtk_pizza_draw (GtkWidget *widget, static void gtk_pizza_draw (GtkWidget *widget,
GdkRectangle *area); GdkRectangle *area);
static gint gtk_pizza_expose (GtkWidget *widget, static gint gtk_pizza_expose (GtkWidget *widget,
GdkEventExpose *event); GdkEventExpose *event);
static void gtk_pizza_add (GtkContainer *container, static void gtk_pizza_add (GtkContainer *container,
GtkWidget *widget); GtkWidget *widget);
static void gtk_pizza_remove (GtkContainer *container, static void gtk_pizza_remove (GtkContainer *container,
GtkWidget *widget); GtkWidget *widget);
static void gtk_pizza_forall (GtkContainer *container, static void gtk_pizza_forall (GtkContainer *container,
gboolean include_internals, gboolean include_internals,
GtkCallback callback, GtkCallback callback,
gpointer callback_data); gpointer callback_data);
static void gtk_pizza_position_child (GtkPizza *pizza, static void gtk_pizza_position_child (GtkPizza *pizza,
GtkPizzaChild *child); GtkPizzaChild *child);
static void gtk_pizza_allocate_child (GtkPizza *pizza, static void gtk_pizza_allocate_child (GtkPizza *pizza,
GtkPizzaChild *child); GtkPizzaChild *child);
static void gtk_pizza_position_children (GtkPizza *pizza); static void gtk_pizza_position_children (GtkPizza *pizza);
static void gtk_pizza_adjust_allocations_recurse (GtkWidget *widget, static void gtk_pizza_adjust_allocations_recurse (GtkWidget *widget,
gpointer cb_data); gpointer cb_data);
static void gtk_pizza_adjust_allocations (GtkPizza *pizza, static void gtk_pizza_adjust_allocations (GtkPizza *pizza,
gint dx, gint dx,
gint dy); gint dy);
static void gtk_pizza_expose_area (GtkPizza *pizza, static void gtk_pizza_expose_area (GtkPizza *pizza,
gint x, gint x,
gint y, gint y,
gint width, gint width,
gint height); gint height);
static void gtk_pizza_adjustment_changed (GtkAdjustment *adjustment, static void gtk_pizza_adjustment_changed (GtkAdjustment *adjustment,
GtkPizza *pizza); GtkPizza *pizza);
static GdkFilterReturn gtk_pizza_filter (GdkXEvent *gdk_xevent, static GdkFilterReturn gtk_pizza_filter (GdkXEvent *gdk_xevent,
GdkEvent *event, GdkEvent *event,
gpointer data); gpointer data);
static GdkFilterReturn gtk_pizza_main_filter (GdkXEvent *gdk_xevent, static GdkFilterReturn gtk_pizza_main_filter (GdkXEvent *gdk_xevent,
GdkEvent *event, GdkEvent *event,
gpointer data); gpointer data);
static GtkType gtk_pizza_child_type (GtkContainer *container); static GtkType gtk_pizza_child_type (GtkContainer *container);
static void gtk_pizza_scroll_set_adjustments (GtkPizza *pizza, static void gtk_pizza_scroll_set_adjustments (GtkPizza *pizza,
GtkAdjustment *hadj, GtkAdjustment *hadj,
GtkAdjustment *vadj); GtkAdjustment *vadj);
static GtkContainerClass *parent_class = NULL; static GtkContainerClass *parent_class = NULL;
@@ -111,12 +111,12 @@ gtk_pizza_get_type ()
{ {
GtkTypeInfo pizza_info = GtkTypeInfo pizza_info =
{ {
"GtkPizza", "GtkPizza",
sizeof (GtkPizza), sizeof (GtkPizza),
sizeof (GtkPizzaClass), sizeof (GtkPizzaClass),
(GtkClassInitFunc) gtk_pizza_class_init, (GtkClassInitFunc) gtk_pizza_class_init,
(GtkObjectInitFunc) gtk_pizza_init, (GtkObjectInitFunc) gtk_pizza_init,
/* reserved_1 */ NULL, /* reserved_1 */ NULL,
/* reserved_2 */ NULL, /* reserved_2 */ NULL,
(GtkClassInitFunc) NULL, (GtkClassInitFunc) NULL,
}; };
@@ -156,11 +156,11 @@ gtk_pizza_class_init (GtkPizzaClass *klass)
widget_class->set_scroll_adjustments_signal = widget_class->set_scroll_adjustments_signal =
gtk_signal_new ("set_scroll_adjustments", gtk_signal_new ("set_scroll_adjustments",
GTK_RUN_LAST, GTK_RUN_LAST,
object_class->type, object_class->type,
GTK_SIGNAL_OFFSET (GtkPizzaClass, set_scroll_adjustments), GTK_SIGNAL_OFFSET (GtkPizzaClass, set_scroll_adjustments),
gtk_marshal_NONE__POINTER_POINTER, gtk_marshal_NONE__POINTER_POINTER,
GTK_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT); GTK_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT);
} }
static GtkType static GtkType
@@ -203,15 +203,15 @@ gtk_pizza_new ()
static void static void
gtk_pizza_scroll_set_adjustments (GtkPizza *pizza, gtk_pizza_scroll_set_adjustments (GtkPizza *pizza,
GtkAdjustment *hadj, GtkAdjustment *hadj,
GtkAdjustment *vadj) GtkAdjustment *vadj)
{ {
/* We handle scrolling in the wxScrolledWindow, not here. */ /* We handle scrolling in the wxScrolledWindow, not here. */
} }
void void
gtk_pizza_set_shadow_type (GtkPizza *pizza, gtk_pizza_set_shadow_type (GtkPizza *pizza,
GtkMyShadowType type) GtkMyShadowType type)
{ {
g_return_if_fail (pizza != NULL); g_return_if_fail (pizza != NULL);
g_return_if_fail (GTK_IS_PIZZA (pizza)); g_return_if_fail (GTK_IS_PIZZA (pizza));
@@ -221,10 +221,10 @@ gtk_pizza_set_shadow_type (GtkPizza *pizza,
pizza->shadow_type = type; pizza->shadow_type = type;
if (GTK_WIDGET_VISIBLE (pizza)) if (GTK_WIDGET_VISIBLE (pizza))
{ {
gtk_widget_size_allocate (GTK_WIDGET (pizza), &(GTK_WIDGET (pizza)->allocation)); gtk_widget_size_allocate (GTK_WIDGET (pizza), &(GTK_WIDGET (pizza)->allocation));
gtk_widget_queue_draw (GTK_WIDGET (pizza)); gtk_widget_queue_draw (GTK_WIDGET (pizza));
} }
} }
} }
@@ -243,8 +243,8 @@ gtk_pizza_put (GtkPizza *pizza,
GtkWidget *widget, GtkWidget *widget,
gint x, gint x,
gint y, gint y,
gint width, gint width,
gint height) gint height)
{ {
GtkPizzaChild *child_info; GtkPizzaChild *child_info;
@@ -278,7 +278,7 @@ gtk_pizza_put (GtkPizza *pizza,
if (GTK_WIDGET_VISIBLE (pizza) && GTK_WIDGET_VISIBLE (widget)) if (GTK_WIDGET_VISIBLE (pizza) && GTK_WIDGET_VISIBLE (widget))
{ {
if (GTK_WIDGET_MAPPED (pizza)) if (GTK_WIDGET_MAPPED (pizza))
gtk_widget_map (widget); gtk_widget_map (widget);
gtk_widget_queue_resize (widget); gtk_widget_queue_resize (widget);
} }
@@ -305,24 +305,24 @@ gtk_pizza_move (GtkPizza *pizza,
if (child->widget == widget) if (child->widget == widget)
{ {
if ((child->x == x) && (child->y == y)) if ((child->x == x) && (child->y == y))
break; break;
child->x = x; child->x = x;
child->y = y; child->y = y;
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (pizza)) if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (pizza))
gtk_widget_queue_resize (widget); gtk_widget_queue_resize (widget);
break; break;
} }
} }
} }
void void
gtk_pizza_resize (GtkPizza *pizza, gtk_pizza_resize (GtkPizza *pizza,
GtkWidget *widget, GtkWidget *widget,
gint width, gint width,
gint height) gint height)
{ {
GtkPizzaChild *child; GtkPizzaChild *child;
GList *children; GList *children;
@@ -339,18 +339,18 @@ gtk_pizza_resize (GtkPizza *pizza,
if (child->widget == widget) if (child->widget == widget)
{ {
if ((child->width == width) && (child->height == height)) if ((child->width == width) && (child->height == height))
break; break;
child->width = width; child->width = width;
child->height = height; child->height = height;
gtk_widget_set_usize (widget, width, height); gtk_widget_set_usize (widget, width, height);
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (pizza)) if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (pizza))
gtk_widget_queue_resize (widget); gtk_widget_queue_resize (widget);
break; break;
} }
} }
} }
@@ -359,12 +359,11 @@ gtk_pizza_set_size (GtkPizza *pizza,
GtkWidget *widget, GtkWidget *widget,
gint x, gint x,
gint y, gint y,
gint width, gint width,
gint height) gint height)
{ {
GtkPizzaChild *child; GtkPizzaChild *child;
GList *children; GList *children;
GtkAllocation child_allocation;
g_return_if_fail (pizza != NULL); g_return_if_fail (pizza != NULL);
g_return_if_fail (GTK_IS_PIZZA (pizza)); g_return_if_fail (GTK_IS_PIZZA (pizza));
@@ -378,20 +377,20 @@ gtk_pizza_set_size (GtkPizza *pizza,
if (child->widget == widget) if (child->widget == widget)
{ {
if ((child->x == x) && if ((child->x == x) &&
(child->y == y) && (child->y == y) &&
(child->width == width) && (child->width == width) &&
(child->height == height)) return; (child->height == height)) return;
child->x = x; child->x = x;
child->y = y; child->y = y;
child->width = width; child->width = width;
child->height = height; child->height = height;
gtk_widget_set_usize (widget, width, height); gtk_widget_set_usize (widget, width, height);
if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (pizza)) if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (pizza))
gtk_widget_queue_resize (widget); gtk_widget_queue_resize (widget);
return; return;
} }
@@ -418,11 +417,11 @@ gtk_pizza_map (GtkWidget *widget)
children = children->next; children = children->next;
if ( GTK_WIDGET_VISIBLE (child->widget) && if ( GTK_WIDGET_VISIBLE (child->widget) &&
!GTK_WIDGET_MAPPED (child->widget) && !GTK_WIDGET_MAPPED (child->widget) &&
!GTK_WIDGET_IS_OFFSCREEN (child->widget)) !GTK_WIDGET_IS_OFFSCREEN (child->widget))
{ {
gtk_widget_map (child->widget); gtk_widget_map (child->widget);
} }
} }
gdk_window_show (widget->window); gdk_window_show (widget->window);
@@ -485,7 +484,7 @@ gtk_pizza_realize (GtkWidget *widget)
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), widget->window = gdk_window_new (gtk_widget_get_parent_window (widget),
&attributes, attributes_mask); &attributes, attributes_mask);
gdk_window_set_user_data (widget->window, widget); gdk_window_set_user_data (widget->window, widget);
attributes.x = 0; attributes.x = 0;
@@ -493,23 +492,23 @@ gtk_pizza_realize (GtkWidget *widget)
attributes.event_mask = gtk_widget_get_events (widget); attributes.event_mask = gtk_widget_get_events (widget);
attributes.event_mask |= attributes.event_mask |=
GDK_EXPOSURE_MASK | GDK_EXPOSURE_MASK |
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_MOTION_MASK | GDK_BUTTON_MOTION_MASK |
GDK_BUTTON1_MOTION_MASK | GDK_BUTTON1_MOTION_MASK |
GDK_BUTTON2_MOTION_MASK | GDK_BUTTON2_MOTION_MASK |
GDK_BUTTON3_MOTION_MASK | GDK_BUTTON3_MOTION_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_RELEASE_MASK |
GDK_KEY_PRESS_MASK | GDK_KEY_PRESS_MASK |
GDK_KEY_RELEASE_MASK | GDK_KEY_RELEASE_MASK |
GDK_ENTER_NOTIFY_MASK | GDK_ENTER_NOTIFY_MASK |
GDK_LEAVE_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK |
GDK_FOCUS_CHANGE_MASK; GDK_FOCUS_CHANGE_MASK;
pizza->bin_window = gdk_window_new (widget->window, pizza->bin_window = gdk_window_new (widget->window,
&attributes, attributes_mask); &attributes, attributes_mask);
gdk_window_set_user_data (pizza->bin_window, widget); gdk_window_set_user_data (pizza->bin_window, widget);
widget->style = gtk_style_attach (widget->style, widget->window); widget->style = gtk_style_attach (widget->style, widget->window);
@@ -554,7 +553,7 @@ gtk_pizza_unrealize (GtkWidget *widget)
static void static void
gtk_pizza_size_request (GtkWidget *widget, gtk_pizza_size_request (GtkWidget *widget,
GtkRequisition *requisition) GtkRequisition *requisition)
{ {
GtkPizza *pizza; GtkPizza *pizza;
GtkPizzaChild *child; GtkPizzaChild *child;
@@ -574,9 +573,9 @@ gtk_pizza_size_request (GtkWidget *widget,
children = children->next; children = children->next;
if (GTK_WIDGET_VISIBLE (child->widget)) if (GTK_WIDGET_VISIBLE (child->widget))
{ {
gtk_widget_size_request (child->widget, &child_requisition); gtk_widget_size_request (child->widget, &child_requisition);
} }
} }
/* request very little, I'm not sure if requesting nothing /* request very little, I'm not sure if requesting nothing
@@ -587,13 +586,12 @@ gtk_pizza_size_request (GtkWidget *widget,
static void static void
gtk_pizza_size_allocate (GtkWidget *widget, gtk_pizza_size_allocate (GtkWidget *widget,
GtkAllocation *allocation) GtkAllocation *allocation)
{ {
GtkPizza *pizza; GtkPizza *pizza;
gint border; gint border;
gint x,y,w,h; gint x,y,w,h;
GtkPizzaChild *child; GtkPizzaChild *child;
GtkAllocation child_allocation;
GList *children; GList *children;
g_return_if_fail (widget != NULL); g_return_if_fail (widget != NULL);
@@ -636,7 +634,7 @@ gtk_pizza_size_allocate (GtkWidget *widget,
static void static void
gtk_pizza_draw (GtkWidget *widget, gtk_pizza_draw (GtkWidget *widget,
GdkRectangle *area) GdkRectangle *area)
{ {
GtkPizza *pizza; GtkPizza *pizza;
GtkPizzaChild *child; GtkPizzaChild *child;
@@ -653,22 +651,22 @@ gtk_pizza_draw (GtkWidget *widget,
(pizza->clear_on_draw)) (pizza->clear_on_draw))
{ {
gdk_window_clear_area( pizza->bin_window, gdk_window_clear_area( pizza->bin_window,
area->x, area->y, area->width, area->height); area->x, area->y, area->width, area->height);
} }
while (children) while (children)
{ {
child = children->data; child = children->data;
children = children->next; children = children->next;
if (gtk_widget_intersect (child->widget, area, &child_area)) if (gtk_widget_intersect (child->widget, area, &child_area))
gtk_widget_draw (child->widget, &child_area); gtk_widget_draw (child->widget, &child_area);
} }
} }
static gint static gint
gtk_pizza_expose (GtkWidget *widget, gtk_pizza_expose (GtkWidget *widget,
GdkEventExpose *event) GdkEventExpose *event)
{ {
GtkPizza *pizza; GtkPizza *pizza;
GtkPizzaChild *child; GtkPizzaChild *child;
@@ -695,17 +693,17 @@ gtk_pizza_expose (GtkWidget *widget,
children = pizza->children; children = pizza->children;
while (children) while (children)
{ {
child = children->data; child = children->data;
children = children->next; children = children->next;
child_event = *event; child_event = *event;
if (GTK_WIDGET_NO_WINDOW (child->widget) && if (GTK_WIDGET_NO_WINDOW (child->widget) &&
GTK_WIDGET_DRAWABLE (child->widget) && GTK_WIDGET_DRAWABLE (child->widget) &&
gtk_widget_intersect (child->widget, &event->area, &child_event.area)) gtk_widget_intersect (child->widget, &event->area, &child_event.area))
{ {
gtk_widget_event (child->widget, (GdkEvent*) &child_event); gtk_widget_event (child->widget, (GdkEvent*) &child_event);
} }
} }
return FALSE; return FALSE;
@@ -713,7 +711,7 @@ gtk_pizza_expose (GtkWidget *widget,
static void static void
gtk_pizza_add (GtkContainer *container, gtk_pizza_add (GtkContainer *container,
GtkWidget *widget) GtkWidget *widget)
{ {
g_return_if_fail (container != NULL); g_return_if_fail (container != NULL);
g_return_if_fail (GTK_IS_PIZZA (container)); g_return_if_fail (GTK_IS_PIZZA (container));
@@ -724,7 +722,7 @@ gtk_pizza_add (GtkContainer *container,
static void static void
gtk_pizza_remove (GtkContainer *container, gtk_pizza_remove (GtkContainer *container,
GtkWidget *widget) GtkWidget *widget)
{ {
GtkPizza *pizza; GtkPizza *pizza;
GtkPizzaChild *child; GtkPizzaChild *child;
@@ -742,23 +740,23 @@ gtk_pizza_remove (GtkContainer *container,
child = children->data; child = children->data;
if (child->widget == widget) if (child->widget == widget)
{ {
gtk_widget_unparent (widget); gtk_widget_unparent (widget);
/* security checks */ /* security checks */
g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (GTK_IS_WIDGET (widget));
pizza->children = g_list_remove_link (pizza->children, children); pizza->children = g_list_remove_link (pizza->children, children);
g_list_free (children); g_list_free (children);
g_free (child); g_free (child);
/* security checks */ /* security checks */
g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (GTK_IS_WIDGET (widget));
GTK_PRIVATE_UNSET_FLAG (widget, GTK_IS_OFFSCREEN); GTK_PRIVATE_UNSET_FLAG (widget, GTK_IS_OFFSCREEN);
break; break;
} }
children = children->next; children = children->next;
} }
@@ -766,9 +764,9 @@ gtk_pizza_remove (GtkContainer *container,
static void static void
gtk_pizza_forall (GtkContainer *container, gtk_pizza_forall (GtkContainer *container,
gboolean include_internals, gboolean include_internals,
GtkCallback callback, GtkCallback callback,
gpointer callback_data) gpointer callback_data)
{ {
GtkPizza *pizza; GtkPizza *pizza;
GtkPizzaChild *child; GtkPizzaChild *child;
@@ -796,7 +794,7 @@ gtk_pizza_forall (GtkContainer *container,
static void static void
gtk_pizza_position_child (GtkPizza *pizza, gtk_pizza_position_child (GtkPizza *pizza,
GtkPizzaChild *child) GtkPizzaChild *child)
{ {
gint x; gint x;
gint y; gint y;
@@ -807,28 +805,28 @@ gtk_pizza_position_child (GtkPizza *pizza,
if (IS_ONSCREEN (x,y)) if (IS_ONSCREEN (x,y))
{ {
if (GTK_WIDGET_MAPPED (pizza) && if (GTK_WIDGET_MAPPED (pizza) &&
GTK_WIDGET_VISIBLE (child->widget)) GTK_WIDGET_VISIBLE (child->widget))
{ {
if (!GTK_WIDGET_MAPPED (child->widget)) if (!GTK_WIDGET_MAPPED (child->widget))
gtk_widget_map (child->widget); gtk_widget_map (child->widget);
} }
if (GTK_WIDGET_IS_OFFSCREEN (child->widget)) if (GTK_WIDGET_IS_OFFSCREEN (child->widget))
GTK_PRIVATE_UNSET_FLAG (child->widget, GTK_IS_OFFSCREEN); GTK_PRIVATE_UNSET_FLAG (child->widget, GTK_IS_OFFSCREEN);
} }
else else
{ {
if (!GTK_WIDGET_IS_OFFSCREEN (child->widget)) if (!GTK_WIDGET_IS_OFFSCREEN (child->widget))
GTK_PRIVATE_SET_FLAG (child->widget, GTK_IS_OFFSCREEN); GTK_PRIVATE_SET_FLAG (child->widget, GTK_IS_OFFSCREEN);
if (GTK_WIDGET_MAPPED (child->widget)) if (GTK_WIDGET_MAPPED (child->widget))
gtk_widget_unmap (child->widget); gtk_widget_unmap (child->widget);
} }
} }
static void static void
gtk_pizza_allocate_child (GtkPizza *pizza, gtk_pizza_allocate_child (GtkPizza *pizza,
GtkPizzaChild *child) GtkPizzaChild *child)
{ {
GtkAllocation allocation; GtkAllocation allocation;
GtkRequisition requisition; GtkRequisition requisition;
@@ -859,7 +857,7 @@ gtk_pizza_position_children (GtkPizza *pizza)
static void static void
gtk_pizza_adjust_allocations_recurse (GtkWidget *widget, gtk_pizza_adjust_allocations_recurse (GtkWidget *widget,
gpointer cb_data) gpointer cb_data)
{ {
GtkPizzaAdjData *data = cb_data; GtkPizzaAdjData *data = cb_data;
@@ -869,15 +867,15 @@ gtk_pizza_adjust_allocations_recurse (GtkWidget *widget,
if (GTK_WIDGET_NO_WINDOW (widget) && GTK_IS_CONTAINER (widget)) if (GTK_WIDGET_NO_WINDOW (widget) && GTK_IS_CONTAINER (widget))
{ {
gtk_container_forall (GTK_CONTAINER (widget), gtk_container_forall (GTK_CONTAINER (widget),
gtk_pizza_adjust_allocations_recurse, gtk_pizza_adjust_allocations_recurse,
cb_data); cb_data);
} }
} }
static void static void
gtk_pizza_adjust_allocations (GtkPizza *pizza, gtk_pizza_adjust_allocations (GtkPizza *pizza,
gint dx, gint dx,
gint dy) gint dy)
{ {
GList *tmp_list; GList *tmp_list;
GtkPizzaAdjData data; GtkPizzaAdjData data;
@@ -895,10 +893,10 @@ gtk_pizza_adjust_allocations (GtkPizza *pizza,
child->widget->allocation.y += dy; child->widget->allocation.y += dy;
if (GTK_WIDGET_NO_WINDOW (child->widget) && if (GTK_WIDGET_NO_WINDOW (child->widget) &&
GTK_IS_CONTAINER (child->widget)) GTK_IS_CONTAINER (child->widget))
gtk_container_forall (GTK_CONTAINER (child->widget), gtk_container_forall (GTK_CONTAINER (child->widget),
gtk_pizza_adjust_allocations_recurse, gtk_pizza_adjust_allocations_recurse,
&data); &data);
} }
} }
@@ -908,7 +906,7 @@ gtk_pizza_adjust_allocations (GtkPizza *pizza,
*/ */
static void static void
gtk_pizza_expose_area (GtkPizza *pizza, gtk_pizza_expose_area (GtkPizza *pizza,
gint x, gint y, gint width, gint height) gint x, gint y, gint width, gint height)
{ {
if (pizza->visibility == GDK_VISIBILITY_UNOBSCURED) if (pizza->visibility == GDK_VISIBILITY_UNOBSCURED)
{ {
@@ -935,8 +933,8 @@ gtk_pizza_expose_area (GtkPizza *pizza,
static Bool static Bool
gtk_pizza_expose_predicate (Display *display, gtk_pizza_expose_predicate (Display *display,
XEvent *xevent, XEvent *xevent,
XPointer arg) XPointer arg)
{ {
if ((xevent->type == Expose) || if ((xevent->type == Expose) ||
((xevent->xany.window == *(Window *)arg) && ((xevent->xany.window == *(Window *)arg) &&
@@ -995,86 +993,86 @@ gtk_pizza_scroll (GtkPizza *pizza, gint dx, gint dy)
if (dx > 0) if (dx > 0)
{ {
if (gravity_works) if (gravity_works)
{ {
gdk_window_resize (pizza->bin_window, gdk_window_resize (pizza->bin_window,
w + dx, w + dx,
h); h);
gdk_window_move (pizza->bin_window, x-dx, y); gdk_window_move (pizza->bin_window, x-dx, y);
gdk_window_move_resize (pizza->bin_window, x, y, w, h ); gdk_window_move_resize (pizza->bin_window, x, y, w, h );
} }
else else
{ {
/* FIXME */ /* FIXME */
} }
gtk_pizza_expose_area (pizza, gtk_pizza_expose_area (pizza,
MAX ((gint)w - dx, 0), MAX ((gint)w - dx, 0),
0, 0,
MIN (dx, w), MIN (dx, w),
h); h);
} }
else if (dx < 0) else if (dx < 0)
{ {
if (gravity_works) if (gravity_works)
{ {
gdk_window_move_resize (pizza->bin_window, gdk_window_move_resize (pizza->bin_window,
x + dx, x + dx,
y, y,
w - dx, w - dx,
h); h);
gdk_window_move (pizza->bin_window, x, y); gdk_window_move (pizza->bin_window, x, y);
gdk_window_resize (pizza->bin_window, w, h ); gdk_window_resize (pizza->bin_window, w, h );
} }
else else
{ {
/* FIXME */ /* FIXME */
} }
gtk_pizza_expose_area (pizza, gtk_pizza_expose_area (pizza,
0, 0,
0, 0,
MIN (-dx, w), MIN (-dx, w),
h); h);
} }
if (dy > 0) if (dy > 0)
{ {
if (gravity_works) if (gravity_works)
{ {
gdk_window_resize (pizza->bin_window, w, h + dy); gdk_window_resize (pizza->bin_window, w, h + dy);
gdk_window_move (pizza->bin_window, x, y-dy); gdk_window_move (pizza->bin_window, x, y-dy);
gdk_window_move_resize (pizza->bin_window, gdk_window_move_resize (pizza->bin_window,
x, y, w, h ); x, y, w, h );
} }
else else
{ {
/* FIXME */ /* FIXME */
} }
gtk_pizza_expose_area (pizza, gtk_pizza_expose_area (pizza,
0, 0,
MAX ((gint)h - dy, 0), MAX ((gint)h - dy, 0),
w, w,
MIN (dy, h)); MIN (dy, h));
} }
else if (dy < 0) else if (dy < 0)
{ {
if (gravity_works) if (gravity_works)
{ {
gdk_window_move_resize (pizza->bin_window, gdk_window_move_resize (pizza->bin_window,
x, y+dy, w, h - dy ); x, y+dy, w, h - dy );
gdk_window_move (pizza->bin_window, x, y); gdk_window_move (pizza->bin_window, x, y);
gdk_window_resize (pizza->bin_window, w, h ); gdk_window_resize (pizza->bin_window, w, h );
} }
else else
{ {
/* FIXME */ /* FIXME */
} }
gtk_pizza_expose_area (pizza, gtk_pizza_expose_area (pizza,
0, 0,
0, 0,
w, w,
MIN (-dy, (gint)h)); MIN (-dy, (gint)h));
} }
gtk_pizza_position_children (pizza); gtk_pizza_position_children (pizza);
@@ -1092,37 +1090,37 @@ gtk_pizza_scroll (GtkPizza *pizza, gint dx, gint dy)
gdk_flush(); gdk_flush();
while (XCheckIfEvent(GDK_WINDOW_XDISPLAY (pizza->bin_window), while (XCheckIfEvent(GDK_WINDOW_XDISPLAY (pizza->bin_window),
&xevent, &xevent,
gtk_pizza_expose_predicate, gtk_pizza_expose_predicate,
(XPointer)&GDK_WINDOW_XWINDOW (pizza->bin_window))) (XPointer)&GDK_WINDOW_XWINDOW (pizza->bin_window)))
{ {
GdkEvent event; GdkEvent event;
GtkWidget *event_widget; GtkWidget *event_widget;
if ((xevent.xany.window == GDK_WINDOW_XWINDOW (pizza->bin_window)) && if ((xevent.xany.window == GDK_WINDOW_XWINDOW (pizza->bin_window)) &&
(gtk_pizza_filter (&xevent, &event, pizza) == GDK_FILTER_REMOVE)) (gtk_pizza_filter (&xevent, &event, pizza) == GDK_FILTER_REMOVE))
continue; continue;
if (xevent.type == Expose) if (xevent.type == Expose)
{ {
event.expose.window = gdk_window_lookup (xevent.xany.window); event.expose.window = gdk_window_lookup (xevent.xany.window);
gdk_window_get_user_data (event.expose.window, gdk_window_get_user_data (event.expose.window,
(gpointer *)&event_widget); (gpointer *)&event_widget);
if (event_widget) if (event_widget)
{ {
event.expose.type = GDK_EXPOSE; event.expose.type = GDK_EXPOSE;
event.expose.area.x = xevent.xexpose.x; event.expose.area.x = xevent.xexpose.x;
event.expose.area.y = xevent.xexpose.y; event.expose.area.y = xevent.xexpose.y;
event.expose.area.width = xevent.xexpose.width; event.expose.area.width = xevent.xexpose.width;
event.expose.area.height = xevent.xexpose.height; event.expose.area.height = xevent.xexpose.height;
event.expose.count = xevent.xexpose.count; event.expose.count = xevent.xexpose.count;
gdk_window_ref (event.expose.window); gdk_window_ref (event.expose.window);
gtk_widget_event (event_widget, &event); gtk_widget_event (event_widget, &event);
gdk_window_unref (event.expose.window); gdk_window_unref (event.expose.window);
} }
} }
} }
} }
@@ -1138,8 +1136,8 @@ gtk_pizza_scroll (GtkPizza *pizza, gint dx, gint dy)
*/ */
static GdkFilterReturn static GdkFilterReturn
gtk_pizza_filter (GdkXEvent *gdk_xevent, gtk_pizza_filter (GdkXEvent *gdk_xevent,
GdkEvent *event, GdkEvent *event,
gpointer data) gpointer data)
{ {
XEvent *xevent; XEvent *xevent;
GtkPizza *pizza; GtkPizza *pizza;
@@ -1151,26 +1149,26 @@ gtk_pizza_filter (GdkXEvent *gdk_xevent,
{ {
case Expose: case Expose:
if (xevent->xexpose.serial == pizza->configure_serial) if (xevent->xexpose.serial == pizza->configure_serial)
{ {
if (pizza->visibility == GDK_VISIBILITY_UNOBSCURED) if (pizza->visibility == GDK_VISIBILITY_UNOBSCURED)
return GDK_FILTER_REMOVE; return GDK_FILTER_REMOVE;
else else
{ {
xevent->xexpose.x += pizza->scroll_x; xevent->xexpose.x += pizza->scroll_x;
xevent->xexpose.y += pizza->scroll_y; xevent->xexpose.y += pizza->scroll_y;
break; break;
} }
} }
break; break;
case ConfigureNotify: case ConfigureNotify:
if ((xevent->xconfigure.x != 0) || (xevent->xconfigure.y != 0)) if ((xevent->xconfigure.x != 0) || (xevent->xconfigure.y != 0))
{ {
pizza->configure_serial = xevent->xconfigure.serial; pizza->configure_serial = xevent->xconfigure.serial;
pizza->scroll_x = xevent->xconfigure.x; pizza->scroll_x = xevent->xconfigure.x;
pizza->scroll_y = xevent->xconfigure.y; pizza->scroll_y = xevent->xconfigure.y;
} }
break; break;
} }
@@ -1183,8 +1181,8 @@ gtk_pizza_filter (GdkXEvent *gdk_xevent,
*/ */
static GdkFilterReturn static GdkFilterReturn
gtk_pizza_main_filter (GdkXEvent *gdk_xevent, gtk_pizza_main_filter (GdkXEvent *gdk_xevent,
GdkEvent *event, GdkEvent *event,
gpointer data) gpointer data)
{ {
XEvent *xevent; XEvent *xevent;
GtkPizza *pizza; GtkPizza *pizza;
@@ -1195,19 +1193,19 @@ gtk_pizza_main_filter (GdkXEvent *gdk_xevent,
if (xevent->type == VisibilityNotify) if (xevent->type == VisibilityNotify)
{ {
switch (xevent->xvisibility.state) switch (xevent->xvisibility.state)
{ {
case VisibilityFullyObscured: case VisibilityFullyObscured:
pizza->visibility = GDK_VISIBILITY_FULLY_OBSCURED; pizza->visibility = GDK_VISIBILITY_FULLY_OBSCURED;
break; break;
case VisibilityPartiallyObscured: case VisibilityPartiallyObscured:
pizza->visibility = GDK_VISIBILITY_PARTIAL; pizza->visibility = GDK_VISIBILITY_PARTIAL;
break; break;
case VisibilityUnobscured: case VisibilityUnobscured:
pizza->visibility = GDK_VISIBILITY_UNOBSCURED; pizza->visibility = GDK_VISIBILITY_UNOBSCURED;
break; break;
} }
return GDK_FILTER_REMOVE; return GDK_FILTER_REMOVE;
} }

View File

@@ -13,7 +13,7 @@
WXDIR = $(WXWIN) WXDIR = $(WXWIN)
!include $(WXDIR)\src\makeb32.env !include $(WXDIR)\src\makeb32.env
LIBS=$(WXLIB) $(EXTRALIBS) cw32mt import32 ole2w32 winpng zlib jpeg odbc32 LIBS=$(WXLIB) $(EXTRALIBS) cw32mt import32 ole2w32 winpng zlib jpeg xpm tiff odbc32
!if "$(FINAL)" == "0" !if "$(FINAL)" == "0"
LINKFLAGS=/v /c /Tpe /L$(WXLIBDIR);$(BCCDIR)\lib $(EXTRALINKFLAGS) LINKFLAGS=/v /c /Tpe /L$(WXLIBDIR);$(BCCDIR)\lib $(EXTRALINKFLAGS)