* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
* GtkLayout: Widget for scrolling of arbitrary-sized areas.
*
#include "gdk/gdk.h"
-#include "gtkprivate.h"
+#include "gtkadjustment.h"
#include "gtkintl.h"
#include "gtkmarshalers.h"
+#include "gtkprivate.h"
#include "gtkscrollable.h"
G_OBJECT_CLASS (gtk_layout_parent_class)->finalize (object);
}
-/**
- * gtk_layout_set_hadjustment:
- * @layout: a #GtkLayout
- * @adjustment: (allow-none): new scroll adjustment
- *
- * Sets the horizontal scroll adjustment for the layout.
- *
- * See #GtkScrolledWindow, #GtkScrollbar, #GtkAdjustment for details.
- *
- * Deprecated: 3.0: Use gtk_scrollable_set_hadjustment()
- **/
-void
-gtk_layout_set_hadjustment (GtkLayout *layout,
- GtkAdjustment *adjustment)
+static void
+gtk_layout_do_set_hadjustment (GtkLayout *layout,
+ GtkAdjustment *adjustment)
{
GtkLayoutPrivate *priv;
- g_return_if_fail (GTK_IS_LAYOUT (layout));
- g_return_if_fail (adjustment == NULL || GTK_IS_ADJUSTMENT (adjustment));
-
priv = layout->priv;
if (adjustment && priv->hadjustment == adjustment)
g_object_notify (G_OBJECT (layout), "hadjustment");
}
-
/**
- * gtk_layout_set_vadjustment:
+ * gtk_layout_set_hadjustment:
* @layout: a #GtkLayout
* @adjustment: (allow-none): new scroll adjustment
*
- * Sets the vertical scroll adjustment for the layout.
+ * Sets the horizontal scroll adjustment for the layout.
*
* See #GtkScrolledWindow, #GtkScrollbar, #GtkAdjustment for details.
*
- * Deprecated: 3.0: Use gtk_scrollable_set_vadjustment()
+ * Deprecated: 3.0: Use gtk_scrollable_set_hadjustment()
**/
void
-gtk_layout_set_vadjustment (GtkLayout *layout,
+gtk_layout_set_hadjustment (GtkLayout *layout,
GtkAdjustment *adjustment)
{
- GtkLayoutPrivate *priv;
-
g_return_if_fail (GTK_IS_LAYOUT (layout));
g_return_if_fail (adjustment == NULL || GTK_IS_ADJUSTMENT (adjustment));
+ gtk_layout_do_set_hadjustment (layout, adjustment);
+}
+
+static void
+gtk_layout_do_set_vadjustment (GtkLayout *layout,
+ GtkAdjustment *adjustment)
+{
+ GtkLayoutPrivate *priv;
+
priv = layout->priv;
if (adjustment && priv->vadjustment == adjustment)
g_object_notify (G_OBJECT (layout), "vadjustment");
}
+/**
+ * gtk_layout_set_vadjustment:
+ * @layout: a #GtkLayout
+ * @adjustment: (allow-none): new scroll adjustment
+ *
+ * Sets the vertical scroll adjustment for the layout.
+ *
+ * See #GtkScrolledWindow, #GtkScrollbar, #GtkAdjustment for details.
+ *
+ * Deprecated: 3.0: Use gtk_scrollable_set_vadjustment()
+ **/
+void
+gtk_layout_set_vadjustment (GtkLayout *layout,
+ GtkAdjustment *adjustment)
+{
+ g_return_if_fail (GTK_IS_LAYOUT (layout));
+ g_return_if_fail (adjustment == NULL || GTK_IS_ADJUSTMENT (adjustment));
+
+ gtk_layout_do_set_vadjustment (layout, adjustment);
+}
+
static GtkLayoutChild*
get_child (GtkLayout *layout,
GtkWidget *widget)
/**
* gtk_layout_get_size:
* @layout: a #GtkLayout
- * @width: (allow-none): location to store the width set on @layout, or %NULL
- * @height: (allow-none): location to store the height set on @layout, or %NULL
+ * @width: (out) (allow-none): location to store the width set on
+ * @layout, or %NULL
+ * @height: (out) (allow-none): location to store the height set on
+ * @layout, or %NULL
*
* Gets the size that has been set on the layout, and that determines
* the total extents of the layout's scrollbar area. See
switch (prop_id)
{
case PROP_HADJUSTMENT:
- gtk_layout_set_hadjustment (layout,
- (GtkAdjustment*) g_value_get_object (value));
+ gtk_layout_do_set_hadjustment (layout, g_value_get_object (value));
break;
case PROP_VADJUSTMENT:
- gtk_layout_set_vadjustment (layout,
- (GtkAdjustment*) g_value_get_object (value));
+ gtk_layout_do_set_vadjustment (layout, g_value_get_object (value));
break;
case PROP_HSCROLL_POLICY:
priv->hscroll_policy = g_value_get_enum (value);
window = gdk_window_new (gtk_widget_get_parent_window (widget),
&attributes, attributes_mask);
gtk_widget_set_window (widget, window);
- gdk_window_set_user_data (window, widget);
+ gtk_widget_register_window (widget, window);
gtk_widget_get_allocation (widget, &allocation);
attributes.y = - gtk_adjustment_get_value (priv->vadjustment);
attributes.width = MAX (priv->width, allocation.width);
attributes.height = MAX (priv->height, allocation.height);
- attributes.event_mask = GDK_EXPOSURE_MASK | GDK_SCROLL_MASK |
+ attributes.event_mask = GDK_EXPOSURE_MASK | GDK_SCROLL_MASK |
+ GDK_SMOOTH_SCROLL_MASK |
gtk_widget_get_events (widget);
priv->bin_window = gdk_window_new (window,
&attributes, attributes_mask);
- gdk_window_set_user_data (priv->bin_window, widget);
+ gtk_widget_register_window (widget, priv->bin_window);
gtk_style_context_set_background (gtk_widget_get_style_context (widget), priv->bin_window);
tmp_list = priv->children;
GtkLayout *layout = GTK_LAYOUT (widget);
GtkLayoutPrivate *priv = layout->priv;
- gdk_window_set_user_data (priv->bin_window, NULL);
+ gtk_widget_unregister_window (widget, priv->bin_window);
gdk_window_destroy (priv->bin_window);
priv->bin_window = NULL;
gdk_window_move (priv->bin_window,
- gtk_adjustment_get_value (priv->hadjustment),
- gtk_adjustment_get_value (priv->vadjustment));
-
- gdk_window_process_updates (priv->bin_window, TRUE);
}
}