]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkscrolledwindow.h
Silently return NULL if the widget is not realized. (#316023, Guillaume
[~andy/gtk] / gtk / gtkscrolledwindow.h
index afae4414a5a86232524181aa6a98ba1dec11ac60..de6b643191100828d8f808159836cd0a401c2a5e 100644 (file)
 #include <gtk/gtkviewport.h>
 
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+G_BEGIN_DECLS
 
 
 #define GTK_TYPE_SCROLLED_WINDOW            (gtk_scrolled_window_get_type ())
-#define GTK_SCROLLED_WINDOW(obj)            (GTK_CHECK_CAST ((obj), GTK_TYPE_SCROLLED_WINDOW, GtkScrolledWindow))
-#define GTK_SCROLLED_WINDOW_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_SCROLLED_WINDOW, GtkScrolledWindowClass))
-#define GTK_IS_SCROLLED_WINDOW(obj)         (GTK_CHECK_TYPE ((obj), GTK_TYPE_SCROLLED_WINDOW))
-#define GTK_IS_SCROLLED_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SCROLLED_WINDOW))
-#define GTK_SCROLLED_WINDOW_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_SCROLLED_WINDOW, GtkScrolledWindowClass))
+#define GTK_SCROLLED_WINDOW(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SCROLLED_WINDOW, GtkScrolledWindow))
+#define GTK_SCROLLED_WINDOW_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SCROLLED_WINDOW, GtkScrolledWindowClass))
+#define GTK_IS_SCROLLED_WINDOW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SCROLLED_WINDOW))
+#define GTK_IS_SCROLLED_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SCROLLED_WINDOW))
+#define GTK_SCROLLED_WINDOW_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SCROLLED_WINDOW, GtkScrolledWindowClass))
 
 
 
@@ -55,14 +53,17 @@ struct _GtkScrolledWindow
 {
   GtkBin container;
 
+  /*< public >*/
   GtkWidget *hscrollbar;
   GtkWidget *vscrollbar;
 
+  /*< private >*/
   guint hscrollbar_policy      : 2;
   guint vscrollbar_policy      : 2;
   guint hscrollbar_visible     : 1;
   guint vscrollbar_visible     : 1;
   guint window_placement       : 2;
+  guint focus_out              : 1;    /* Flag used by ::move-focus-out implementation */
 
   guint16 shadow_type;
 };
@@ -72,24 +73,46 @@ struct _GtkScrolledWindowClass
   GtkBinClass parent_class;
   
   gint scrollbar_spacing;
+
+  /* Action signals for keybindings. Do not connect to these signals
+   */
+
+  /* Unfortunately, GtkScrollType is deficient in that there is
+   * no horizontal/vertical variants for GTK_SCROLL_START/END,
+   * so we have to add an additional boolean flag.
+   */
+  void (*scroll_child) (GtkScrolledWindow *scrolled_window,
+                       GtkScrollType      scroll,
+                       gboolean           horizontal);
+
+  void (* move_focus_out) (GtkScrolledWindow *scrolled_window,
+                          GtkDirectionType   direction);
+
+  /* Padding for future expansion */
+  void (*_gtk_reserved1) (void);
+  void (*_gtk_reserved2) (void);
+  void (*_gtk_reserved3) (void);
+  void (*_gtk_reserved4) (void);
 };
 
 
-GtkType        gtk_scrolled_window_get_type          (void) G_GNUC_CONST;
+GType          gtk_scrolled_window_get_type          (void) G_GNUC_CONST;
 GtkWidget*     gtk_scrolled_window_new               (GtkAdjustment     *hadjustment,
                                                      GtkAdjustment     *vadjustment);
 void           gtk_scrolled_window_set_hadjustment   (GtkScrolledWindow *scrolled_window,
                                                      GtkAdjustment     *hadjustment);
 void           gtk_scrolled_window_set_vadjustment   (GtkScrolledWindow *scrolled_window,
-                                                     GtkAdjustment     *hadjustment);
+                                                     GtkAdjustment     *vadjustment);
 GtkAdjustment* gtk_scrolled_window_get_hadjustment   (GtkScrolledWindow *scrolled_window);
 GtkAdjustment* gtk_scrolled_window_get_vadjustment   (GtkScrolledWindow *scrolled_window);
+GtkWidget*     gtk_scrolled_window_get_hscrollbar    (GtkScrolledWindow *scrolled_window);
+GtkWidget*     gtk_scrolled_window_get_vscrollbar    (GtkScrolledWindow *scrolled_window);
 void           gtk_scrolled_window_set_policy        (GtkScrolledWindow *scrolled_window,
                                                      GtkPolicyType      hscrollbar_policy,
                                                      GtkPolicyType      vscrollbar_policy);
 void           gtk_scrolled_window_get_policy        (GtkScrolledWindow *scrolled_window,
                                                      GtkPolicyType     *hscrollbar_policy,
-                                                     GtkPolicyType     *vscrollvar_policy);
+                                                     GtkPolicyType     *vscrollbar_policy);
 void           gtk_scrolled_window_set_placement     (GtkScrolledWindow *scrolled_window,
                                                      GtkCornerType      window_placement);
 GtkCornerType  gtk_scrolled_window_get_placement     (GtkScrolledWindow *scrolled_window);
@@ -99,10 +122,10 @@ GtkShadowType  gtk_scrolled_window_get_shadow_type   (GtkScrolledWindow *scrolle
 void          gtk_scrolled_window_add_with_viewport (GtkScrolledWindow *scrolled_window,
                                                      GtkWidget         *child);
 
+gint _gtk_scrolled_window_get_scrollbar_spacing (GtkScrolledWindow *scrolled_window);
+
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+G_END_DECLS
 
 
 #endif /* __GTK_SCROLLED_WINDOW_H__ */