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:
@@ -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; }
|
||||
|
||||
|
@@ -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; }
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user