2 * This file is a part of hildon
4 * Copyright (C) 2008 Nokia Corporation, all rights reserved.
6 * Contact: Karl Lattimer <karl.lattimer@nokia.com>
8 * This widget is based on MokoFingerScroll from libmokoui
9 * OpenMoko Application Framework UI Library
10 * Authored by Chris Lord <chris@openedhand.com>
11 * Copyright (C) 2006-2007 OpenMoko Inc.
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU Lesser Public License as published by
15 * the Free Software Foundation; version 2 of the license.
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU Lesser Public License for more details.
24 #ifndef _HILDON_PANNABLE_AREA
25 #define _HILDON_PANNABLE_AREA
27 #include <glib-object.h>
32 #define HILDON_TYPE_PANNABLE_AREA hildon_pannable_area_get_type()
33 #define HILDON_PANNABLE_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
34 HILDON_TYPE_PANNABLE_AREA, HildonPannableArea))
35 #define HILDON_PANNABLE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \
36 HILDON_TYPE_PANNABLE_AREA, HildonPannableAreaClass))
37 #define HILDON_IS_PANNABLE_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
38 HILDON_TYPE_PANNABLE_AREA))
39 #define HILDON_IS_PANNABLE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
40 HILDON_TYPE_PANNABLE_AREA))
41 #define HILDON_PANNABLE_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \
42 HILDON_TYPE_PANNABLE_AREA, HildonPannableAreaClass))
44 GType hildon_pannable_area_mode_get_type (void) G_GNUC_CONST;
45 #define HILDON_TYPE_PANNABLE_AREA_MODE (hildon_pannable_area_mode_get_type())
47 GType hildon_pannable_area_indicator_mode_get_type (void) G_GNUC_CONST;
48 #define HILDON_TYPE_PANNABLE_AREA_INDICATOR_MODE \
49 (hildon_pannable_area_indicator_mode_get_type())
54 * HildonPannableArea has no publicly accessible fields
56 typedef struct _HildonPannableArea HildonPannableArea;
57 typedef struct _HildonPannableAreaClass HildonPannableAreaClass;
59 struct _HildonPannableArea {
63 struct _HildonPannableAreaClass {
64 GtkEventBoxClass parent_class;
68 * HildonPannableAreaMode:
69 * @HILDON_PANNABLE_AREA_MODE_PUSH: Areaing follows pointer
70 * @HILDON_PANNABLE_AREA_MODE_ACCEL: Areaing uses physics to "spin" the widget
71 * @HILDON_PANNABLE_AREA_MODE_AUTO: Automatically chooses between push and accel
72 * modes, depending on input.
74 * Used to change the behaviour of the pannable areaing
77 HILDON_PANNABLE_AREA_MODE_PUSH,
78 HILDON_PANNABLE_AREA_MODE_ACCEL,
79 HILDON_PANNABLE_AREA_MODE_AUTO
80 } HildonPannableAreaMode;
83 HILDON_PANNABLE_AREA_INDICATOR_MODE_AUTO,
84 HILDON_PANNABLE_AREA_INDICATOR_MODE_SHOW,
85 HILDON_PANNABLE_AREA_INDICATOR_MODE_HIDE
86 } HildonPannableAreaIndicatorMode;
88 GType hildon_pannable_area_get_type (void);
90 GtkWidget* hildon_pannable_area_new (void);
91 GtkWidget* hildon_pannable_area_new_full (gint mode, gboolean enabled,
92 gdouble vel_min, gdouble vel_max,
93 gdouble decel, guint sps);
94 void hildon_pannable_area_add_with_viewport (HildonPannableArea *area,
99 #endif /* _HILDON_PANNABLE_AREA */