+ container_class->forall = gtk_scrolled_window_forall;
+
+ class->scrollbar_spacing = -1;
+
+ class->scroll_child = gtk_scrolled_window_scroll_child;
+ class->move_focus_out = gtk_scrolled_window_move_focus_out;
+
+ g_object_class_install_property (gobject_class,
+ PROP_HADJUSTMENT,
+ g_param_spec_object ("hadjustment",
+ P_("Horizontal Adjustment"),
+ P_("The GtkAdjustment for the horizontal position"),
+ GTK_TYPE_ADJUSTMENT,
+ GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (gobject_class,
+ PROP_VADJUSTMENT,
+ g_param_spec_object ("vadjustment",
+ P_("Vertical Adjustment"),
+ P_("The GtkAdjustment for the vertical position"),
+ GTK_TYPE_ADJUSTMENT,
+ GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (gobject_class,
+ PROP_HSCROLLBAR_POLICY,
+ g_param_spec_enum ("hscrollbar-policy",
+ P_("Horizontal Scrollbar Policy"),
+ P_("When the horizontal scrollbar is displayed"),
+ GTK_TYPE_POLICY_TYPE,
+ GTK_POLICY_ALWAYS,
+ GTK_PARAM_READABLE | GTK_PARAM_WRITABLE));
+ g_object_class_install_property (gobject_class,
+ PROP_VSCROLLBAR_POLICY,
+ g_param_spec_enum ("vscrollbar-policy",
+ P_("Vertical Scrollbar Policy"),
+ P_("When the vertical scrollbar is displayed"),
+ GTK_TYPE_POLICY_TYPE,
+ GTK_POLICY_ALWAYS,
+ GTK_PARAM_READABLE | GTK_PARAM_WRITABLE));
+
+ g_object_class_install_property (gobject_class,
+ PROP_WINDOW_PLACEMENT,
+ g_param_spec_enum ("window-placement",
+ P_("Window Placement"),
+ P_("Where the contents are located with respect to the scrollbars"),
+ GTK_TYPE_CORNER_TYPE,
+ GTK_CORNER_TOP_LEFT,
+ GTK_PARAM_READABLE | GTK_PARAM_WRITABLE));
+ g_object_class_install_property (gobject_class,
+ PROP_SHADOW_TYPE,
+ g_param_spec_enum ("shadow-type",
+ P_("Shadow Type"),
+ P_("Style of bevel around the contents"),
+ GTK_TYPE_SHADOW_TYPE,
+ GTK_SHADOW_NONE,
+ GTK_PARAM_READABLE | GTK_PARAM_WRITABLE));
+
+ gtk_widget_class_install_style_property (widget_class,
+ g_param_spec_int ("scrollbar-spacing",
+ P_("Scrollbar spacing"),
+ P_("Number of pixels between the scrollbars and the scrolled window"),
+ 0,
+ G_MAXINT,
+ DEFAULT_SCROLLBAR_SPACING,
+ GTK_PARAM_READABLE));
+
+ signals[SCROLL_CHILD] =
+ g_signal_new (I_("scroll_child"),
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (GtkScrolledWindowClass, scroll_child),
+ NULL, NULL,
+ _gtk_marshal_VOID__ENUM_BOOLEAN,
+ G_TYPE_NONE, 2,
+ GTK_TYPE_SCROLL_TYPE,
+ G_TYPE_BOOLEAN);
+ signals[MOVE_FOCUS_OUT] =
+ g_signal_new (I_("move_focus_out"),
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (GtkScrolledWindowClass, move_focus_out),
+ NULL, NULL,
+ _gtk_marshal_VOID__ENUM,
+ G_TYPE_NONE, 1,
+ GTK_TYPE_DIRECTION_TYPE);
+
+ binding_set = gtk_binding_set_by_class (class);
+
+ add_scroll_binding (binding_set, GDK_Left, GDK_CONTROL_MASK, GTK_SCROLL_STEP_BACKWARD, TRUE);
+ add_scroll_binding (binding_set, GDK_Right, GDK_CONTROL_MASK, GTK_SCROLL_STEP_FORWARD, TRUE);
+ add_scroll_binding (binding_set, GDK_Up, GDK_CONTROL_MASK, GTK_SCROLL_STEP_BACKWARD, FALSE);
+ add_scroll_binding (binding_set, GDK_Down, GDK_CONTROL_MASK, GTK_SCROLL_STEP_FORWARD, FALSE);
+
+ add_scroll_binding (binding_set, GDK_Page_Up, GDK_CONTROL_MASK, GTK_SCROLL_PAGE_BACKWARD, TRUE);
+ add_scroll_binding (binding_set, GDK_Page_Down, GDK_CONTROL_MASK, GTK_SCROLL_PAGE_FORWARD, TRUE);
+ add_scroll_binding (binding_set, GDK_Page_Up, 0, GTK_SCROLL_PAGE_BACKWARD, FALSE);
+ add_scroll_binding (binding_set, GDK_Page_Down, 0, GTK_SCROLL_PAGE_FORWARD, FALSE);