forked from AuroraMiddleware/gtk
3fe0fb4ed9
This patch adds the GtkScrollablePolicy type property to GtkScrollable and implements it in all subclasses. GtkScrolledWindow observes this property to make a good guess about when to show/hide scrollbars for height-for-width content. Most scrollable children do not do height-for-width *yet* but most certainly will (toolpalette, treeview, iconview, textview widgets all TODO), for scrollable widgets that do have a minimum and natural size, it's important for them to observe the state of this property in order to properly drive the scroll adjustments according to the desired GtkScrollablePolicy. This patch makes GtkViewport do this. Patch also adds tests/testscrolledwindow.c to display the effects of this property.
63 lines
2.7 KiB
C
63 lines
2.7 KiB
C
/* gtkscrollable.h
|
|
* Copyright (C) 2008 Tadej Borovšak <tadeboro@gmail.com>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* 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.
|
|
*/
|
|
|
|
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
|
|
#error "Only <gtk/gtk.h> can be included directly."
|
|
#endif
|
|
|
|
#ifndef __GTK_SCROLLABLE_H__
|
|
#define __GTK_SCROLLABLE_H__
|
|
|
|
#include <gtk/gtkadjustment.h>
|
|
#include <gtk/gtkenums.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
#define GTK_TYPE_SCROLLABLE (gtk_scrollable_get_type ())
|
|
#define GTK_SCROLLABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SCROLLABLE, GtkScrollable))
|
|
#define GTK_IS_SCROLLABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SCROLLABLE))
|
|
#define GTK_SCROLLABLE_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GTK_TYPE_SCROLLABLE, GtkScrollableInterface))
|
|
|
|
typedef struct _GtkScrollable GtkScrollable; /* Dummy */
|
|
typedef struct _GtkScrollableInterface GtkScrollableInterface;
|
|
|
|
struct _GtkScrollableInterface
|
|
{
|
|
GTypeInterface base_iface;
|
|
};
|
|
|
|
/* Public API */
|
|
GType gtk_scrollable_get_type (void) G_GNUC_CONST;
|
|
GtkAdjustment *gtk_scrollable_get_hadjustment (GtkScrollable *scrollable);
|
|
void gtk_scrollable_set_hadjustment (GtkScrollable *scrollable,
|
|
GtkAdjustment *hadjustment);
|
|
GtkAdjustment *gtk_scrollable_get_vadjustment (GtkScrollable *scrollable);
|
|
void gtk_scrollable_set_vadjustment (GtkScrollable *scrollable,
|
|
GtkAdjustment *vadjustment);
|
|
GtkScrollablePolicy gtk_scrollable_get_hscroll_policy (GtkScrollable *scrollable);
|
|
void gtk_scrollable_set_hscroll_policy (GtkScrollable *scrollable,
|
|
GtkScrollablePolicy policy);
|
|
GtkScrollablePolicy gtk_scrollable_get_vscroll_policy (GtkScrollable *scrollable);
|
|
void gtk_scrollable_set_vscroll_policy (GtkScrollable *scrollable,
|
|
GtkScrollablePolicy policy);
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __GTK_SCROLLABLE_H__ */
|