]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkwidget.h
stylecontext: Do invalidation on first resize container
[~andy/gtk] / gtk / gtkwidget.h
index e4886e61b23c477cb76a58b97c217363f7040219..bdf8e5e607f16bb4bd371c3e4e661b4846a7b540 100644 (file)
@@ -12,9 +12,7 @@
  * 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/>.
  */
 
 /*
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
  */
 
+#ifndef __GTK_WIDGET_H__
+#define __GTK_WIDGET_H__
+
 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
 #error "Only <gtk/gtk.h> can be included directly."
 #endif
 
-#ifndef __GTK_WIDGET_H__
-#define __GTK_WIDGET_H__
-
 #include <gdk/gdk.h>
 #include <gtk/gtkaccelgroup.h>
-#include <gtk/gtkadjustment.h>
 #include <gtk/gtkborder.h>
-#include <gtk/gtksettings.h>
-#include <gtk/gtkstylecontext.h>
-#include <gtk/gtkwidgetpath.h>
+#include <gtk/gtktypes.h>
 #include <atk/atk.h>
 
 G_BEGIN_DECLS
@@ -61,17 +56,10 @@ typedef enum
 
 #define GTK_TYPE_REQUISITION              (gtk_requisition_get_type ())
 
-/* forward declaration to avoid excessive includes (and concurrent includes)
- */
-typedef struct _GtkRequisition        GtkRequisition;
-typedef struct _GtkSelectionData       GtkSelectionData;
 typedef struct _GtkWidgetPrivate       GtkWidgetPrivate;
 typedef struct _GtkWidgetClass        GtkWidgetClass;
 typedef struct _GtkWidgetClassPrivate  GtkWidgetClassPrivate;
 typedef struct _GtkWidgetAuxInfo       GtkWidgetAuxInfo;
-typedef struct _GtkClipboard          GtkClipboard;
-typedef struct _GtkTooltip             GtkTooltip;
-typedef struct _GtkWindow              GtkWindow;
 
 /**
  * GtkAllocation:
@@ -90,7 +78,7 @@ typedef       GdkRectangle       GtkAllocation;
 /**
  * GtkCallback:
  * @widget: the widget to operate on
- * @data: user-supplied data
+ * @data: (closure): user-supplied data
  *
  * The type of the callback functions used for e.g. iterating over
  * the children of a container, see gtk_container_foreach().
@@ -98,6 +86,23 @@ typedef      GdkRectangle       GtkAllocation;
 typedef void    (*GtkCallback)     (GtkWidget        *widget,
                                    gpointer          data);
 
+/**
+ * GtkTickCallback:
+ * @widget: the widget
+ * @frame_clock: the frame clock for the widget (same as calling gtk_widget_get_frame_clock())
+ * @user_data: user data passed to gtk_widget_add_tick_callback().
+ *
+ * Callback type for adding a function to update animations. See gtk_widget_add_tick_callback().
+ *
+ * Returns: %G_SOURCE_CONTINUE if the tick callback should continue to be called,
+ *  %G_SOURCE_REMOVE if the tick callback should be removed.
+ *
+ * Since: 3.8
+ */
+typedef gboolean (*GtkTickCallback) (GtkWidget     *widget,
+                                     GdkFrameClock *frame_clock,
+                                     gpointer       user_data);
+
 /**
  * GtkRequisition:
  * @width: the widget's desired width
@@ -172,7 +177,7 @@ struct _GtkWidget
  *   method it is possible for a #GtkLabel to tell its parent how much height
  *   would be required if the label were to be allocated a said width.
  * @adjust_size_request: Convert an initial size request from a widget's
- *   #GtkSizeRequest virtual method implementations into a size request to
+ *   #GtkSizeRequestMode virtual method implementations into a size request to
  *   be used by parent containers in laying out the widget.
  *   adjust_size_request adjusts <emphasis>from</emphasis> a child widget's
  *   original request <emphasis>to</emphasis> what a parent container should
@@ -241,7 +246,7 @@ struct _GtkWidgetClass
   void (* grab_notify)         (GtkWidget        *widget,
                                gboolean          was_grabbed);
   void (* child_notify)        (GtkWidget       *widget,
-                               GParamSpec       *pspec);
+                               GParamSpec       *child_property);
   gboolean (* draw)           (GtkWidget        *widget,
                                 cairo_t          *cr);
 
@@ -425,6 +430,9 @@ struct _GtkWidgetClass
 
   void         (* style_updated)          (GtkWidget *widget);
 
+  gboolean     (* touch_event)            (GtkWidget     *widget,
+                                           GdkEventTouch *event);
+
   /*< private >*/
 
   GtkWidgetClassPrivate *priv;
@@ -436,7 +444,6 @@ struct _GtkWidgetClass
   void (*_gtk_reserved5) (void);
   void (*_gtk_reserved6) (void);
   void (*_gtk_reserved7) (void);
-  void (*_gtk_reserved8) (void);
 };
 
 struct _GtkWidgetAuxInfo
@@ -483,6 +490,9 @@ void           gtk_widget_queue_draw_region   (GtkWidget           *widget,
                                            const cairo_region_t*region);
 void      gtk_widget_queue_resize        (GtkWidget           *widget);
 void      gtk_widget_queue_resize_no_redraw (GtkWidget *widget);
+GDK_AVAILABLE_IN_3_8
+GdkFrameClock* gtk_widget_get_frame_clock (GtkWidget           *widget);
+
 GDK_DEPRECATED_IN_3_0_FOR(gtk_widget_get_preferred_size)
 void       gtk_widget_size_request        (GtkWidget           *widget,
                                            GtkRequisition      *requisition);
@@ -599,6 +609,7 @@ gboolean              gtk_widget_is_sensitive           (GtkWidget    *widget);
 void                  gtk_widget_set_visible            (GtkWidget    *widget,
                                                          gboolean      visible);
 gboolean              gtk_widget_get_visible            (GtkWidget    *widget);
+gboolean              gtk_widget_is_visible             (GtkWidget    *widget);
 
 void                  gtk_widget_set_has_window         (GtkWidget    *widget,
                                                          gboolean      has_window);
@@ -639,6 +650,12 @@ gboolean              gtk_widget_get_child_visible      (GtkWidget    *widget);
 void                  gtk_widget_set_window             (GtkWidget    *widget,
                                                          GdkWindow    *window);
 GdkWindow           * gtk_widget_get_window             (GtkWidget    *widget);
+GDK_AVAILABLE_IN_3_8
+void                  gtk_widget_register_window        (GtkWidget    *widget,
+                                                         GdkWindow    *window);
+GDK_AVAILABLE_IN_3_8
+void                  gtk_widget_unregister_window      (GtkWidget    *widget,
+                                                         GdkWindow    *window);
 
 int                   gtk_widget_get_allocated_width    (GtkWidget     *widget);
 int                   gtk_widget_get_allocated_height   (GtkWidget     *widget);
@@ -673,6 +690,11 @@ void          gtk_widget_set_device_events   (GtkWidget           *widget,
 void       gtk_widget_add_device_events   (GtkWidget           *widget,
                                            GdkDevice           *device,
                                           GdkEventMask         events);
+GDK_AVAILABLE_IN_3_8
+void      gtk_widget_set_opacity         (GtkWidget           *widget,
+                                          double               opacity);
+GDK_AVAILABLE_IN_3_8
+double    gtk_widget_get_opacity         (GtkWidget           *widget);
 
 void       gtk_widget_set_device_enabled  (GtkWidget    *widget,
                                            GdkDevice    *device,
@@ -753,7 +775,7 @@ void     gtk_widget_set_margin_bottom (GtkWidget *widget,
 gint        gtk_widget_get_events      (GtkWidget      *widget);
 GdkEventMask gtk_widget_get_device_events (GtkWidget   *widget,
                                            GdkDevice    *device);
-GDK_DEPRECATED_IN_3_0_FOR(gdk_window_get_device_position)
+GDK_DEPRECATED_IN_3_4_FOR(gdk_window_get_device_position)
 void        gtk_widget_get_pointer     (GtkWidget      *widget,
                                         gint           *x,
                                         gint           *y);
@@ -896,6 +918,22 @@ GDK_AVAILABLE_IN_3_4
 GdkModifierType   gtk_widget_get_modifier_mask (GtkWidget         *widget,
                                                 GdkModifierIntent  intent);
 
+GDK_AVAILABLE_IN_3_6
+void                    gtk_widget_insert_action_group                  (GtkWidget    *widget,
+                                                                         const gchar  *name,
+                                                                         GActionGroup *group);
+
+
+
+GDK_AVAILABLE_IN_3_8
+guint gtk_widget_add_tick_callback (GtkWidget       *widget,
+                                    GtkTickCallback  callback,
+                                    gpointer         user_data,
+                                    GDestroyNotify   notify);
+
+GDK_AVAILABLE_IN_3_8
+void gtk_widget_remove_tick_callback (GtkWidget       *widget,
+                                      guint            id);
 
 G_END_DECLS