* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
+#include "gtkintl.h"
#include "gtkpaned.h"
enum {
ARG_0,
- ARG_HANDLE_SIZE
};
static void gtk_paned_class_init (GtkPanedClass *klass);
container_class->forall = gtk_paned_forall;
container_class->child_type = gtk_paned_child_type;
- gtk_object_add_arg_type("GtkPaned::handle_size", GTK_TYPE_UINT,
- GTK_ARG_READWRITE, ARG_HANDLE_SIZE);
+ gtk_widget_class_install_style_property (widget_class,
+ g_param_spec_int ("handle_size",
+ _("Handle Size"),
+ _("Width of handle"),
+ 0,
+ G_MAXINT,
+ 5,
+ G_PARAM_READABLE));
}
static GtkType
paned->handle_width = 5;
paned->handle_height = 5;
- paned->handle_size = 5;
paned->position_set = FALSE;
paned->last_allocation = -1;
paned->in_drag = FALSE;
GtkArg *arg,
guint arg_id)
{
- GtkPaned *paned = GTK_PANED (object);
-
switch (arg_id)
{
- case ARG_HANDLE_SIZE:
- gtk_paned_set_handle_size (paned, GTK_VALUE_UINT (*arg));
- break;
default:
break;
}
GtkArg *arg,
guint arg_id)
{
- GtkPaned *paned = GTK_PANED (object);
-
switch (arg_id)
{
- case ARG_HANDLE_SIZE:
- GTK_VALUE_UINT (*arg) = paned->handle_size;
- break;
default:
arg->type = GTK_TYPE_INVALID;
break;
GdkEventExpose *event)
{
GtkPaned *paned;
- GdkEventExpose child_event;
g_return_val_if_fail (widget != NULL, FALSE);
g_return_val_if_fail (GTK_IS_PANED (widget), FALSE);
paned = GTK_PANED (widget);
if (event->window != paned->handle)
- {
- child_event = *event;
-
- if (paned->child1 &&
- GTK_WIDGET_NO_WINDOW (paned->child1) &&
- gtk_widget_intersect (paned->child1, &event->area, &child_event.area))
- gtk_widget_event (paned->child1, (GdkEvent *) &child_event);
-
- if (paned->child2 &&
- GTK_WIDGET_NO_WINDOW (paned->child2) &&
- gtk_widget_intersect (paned->child2, &event->area, &child_event.area))
- gtk_widget_event (paned->child2, (GdkEvent *) &child_event);
- }
+ (* GTK_WIDGET_CLASS (parent_class)->expose_event) (widget, event);
}
return FALSE;
(*callback) (paned->child2, callback_data);
}
+/**
+ * gtk_paned_get_position:
+ * @paned: a #GtkPaned widget
+ *
+ * Obtains the position of the divider between the two panes.
+ *
+ * Return value: position of the divider
+ **/
gint
gtk_paned_get_position (GtkPaned *paned)
{
return paned->child1_size;
}
+/**
+ * gtk_paned_set_position:
+ * @paned: a #GtkPaned widget
+ * @position: pixel position of divider
+ *
+ * Sets the position of the divider between the two panes.
+ **/
void
gtk_paned_set_position (GtkPaned *paned,
gint position)
gtk_widget_queue_resize (GTK_WIDGET (paned));
}
-void
-gtk_paned_set_handle_size (GtkPaned *paned,
- guint16 size)
-{
- g_return_if_fail (paned != NULL);
- g_return_if_fail (GTK_IS_PANED (paned));
-
- gtk_widget_queue_resize (GTK_WIDGET (paned));
-
- paned->handle_size = size;
-}
-
void
gtk_paned_compute_position(GtkPaned *paned,
gint allocation,