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( NativeFormat format );
wxDataFormat& operator=(const wxDataFormat& format)
{ m_type = format.m_type; m_format = format.m_format; return *this; }
wxDataFormat& operator=(NativeFormat format)
{ SetId(format); return *this; }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -13,7 +13,7 @@
WXDIR = $(WXWIN)
!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"
LINKFLAGS=/v /c /Tpe /L$(WXLIBDIR);$(BCCDIR)\lib $(EXTRALINKFLAGS)