]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkwidget.h
gtkiconview: Use symbolic names for button numbers
[~andy/gtk] / gtk / gtkwidget.h
index 04f7772daf457c0f6ea19a7bc68f44f7867ad3e9..76d192ce2c8e11b1962000d419f2a8cb56467be8 100644 (file)
@@ -34,7 +34,6 @@
 #include <gdk/gdk.h>
 #include <gtk/gtkaccelgroup.h>
 #include <gtk/gtkadjustment.h>
-#include <gtk/gtkstyle.h>
 #include <gtk/gtkborder.h>
 #include <gtk/gtksettings.h>
 #include <gtk/gtkstylecontext.h>
@@ -64,15 +63,15 @@ typedef enum
 
 /* 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 _GtkWidgetAuxInfo   GtkWidgetAuxInfo;
-typedef struct _GtkClipboard      GtkClipboard;
-typedef struct _GtkTooltip         GtkTooltip;
-typedef struct _GtkWindow          GtkWindow;
-
+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:
@@ -139,12 +138,15 @@ struct _GtkWidget
  *   %GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT mode.
  *   %GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH means the widget prefers to have
  *   #GtkWidgetClass.get_preferred_width() called and then
- *   #GtkWidgetClass.get_preferred_height_for_width() and is the default
- *   return for unimplemented cases.
- *   However it's important to note (as described below) that any widget
- *   which trades height-for-width must respond properly to both
- *   #GtkSizeRequestModes since it might be queried in either orientation
- *   by its parent container.
+ *   #GtkWidgetClass.get_preferred_height_for_width().
+ *   %GTK_SIZE_REQUEST_CONSTANT_SIZE disables any height-for-width or
+ *   width-for-height geometry management for a said widget and is the
+ *   default return.
+ *   It's important to note (as described below) that any widget
+ *   which trades height-for-width or width-for-height must respond properly 
+ *   to both of the virtual methods #GtkWidgetClass.get_preferred_height_for_width()
+ *   and #GtkWidgetClass.get_preferred_width_for_height() since it might be 
+ *   queried in either #GtkSizeRequestMode by its parent container.
  * @get_preferred_height: This is called by containers to obtain the minimum
  *   and natural height of a widget. A widget that does not actually trade
  *   any height for width or width for height only has to implement these
@@ -323,8 +325,6 @@ struct _GtkWidgetClass
                                         GdkEventProximity   *event);
   gboolean (* visibility_notify_event) (GtkWidget           *widget,
                                         GdkEventVisibility  *event);
-  gboolean (* client_event)            (GtkWidget           *widget,
-                                        GdkEventClient      *event);
   gboolean (* window_state_event)      (GtkWidget           *widget,
                                         GdkEventWindowState *event);
   gboolean (* damage_event)             (GtkWidget           *widget,
@@ -375,6 +375,9 @@ struct _GtkWidgetClass
                                    GtkSelectionData   *selection_data,
                                    guint               info,
                                    guint               time_);
+  gboolean (* drag_failed)         (GtkWidget          *widget,
+                                    GdkDragContext     *context,
+                                    GtkDragResult       result);
 
   /* Signals used only for keybindings */
   gboolean (* popup_menu)          (GtkWidget          *widget);
@@ -415,6 +418,7 @@ struct _GtkWidgetClass
                                            gint              *natural_size);
   void         (* adjust_size_allocation) (GtkWidget         *widget,
                                            GtkOrientation     orientation,
+                                           gint              *minimum_size,
                                            gint              *natural_size,
                                            gint              *allocated_pos,
                                            gint              *allocated_size);
@@ -423,8 +427,9 @@ struct _GtkWidgetClass
 
   /*< private >*/
 
+  GtkWidgetClassPrivate *priv;
+
   /* Padding for future expansion */
-  void (*_gtk_reserved1) (void);
   void (*_gtk_reserved2) (void);
   void (*_gtk_reserved3) (void);
   void (*_gtk_reserved4) (void);
@@ -475,13 +480,12 @@ void         gtk_widget_queue_draw_area     (GtkWidget           *widget,
                                           gint                 width,
                                           gint                 height);
 void      gtk_widget_queue_draw_region   (GtkWidget           *widget,
-                                           cairo_region_t      *region);
+                                           const cairo_region_t*region);
 void      gtk_widget_queue_resize        (GtkWidget           *widget);
 void      gtk_widget_queue_resize_no_redraw (GtkWidget *widget);
-#ifndef GTK_DISABLE_DEPRECATED
-void      gtk_widget_size_request        (GtkWidget           *widget,
-                                          GtkRequisition      *requisition);
-#endif
+GDK_DEPRECATED_FOR(gtk_widget_get_preferred_size)
+void       gtk_widget_size_request        (GtkWidget           *widget,
+                                           GtkRequisition      *requisition);
 void      gtk_widget_size_allocate       (GtkWidget           *widget,
                                           GtkAllocation       *allocation);
 
@@ -504,10 +508,9 @@ void                gtk_widget_get_preferred_size             (GtkWidget      *w
                                                                GtkRequisition *minimum_size,
                                                                GtkRequisition *natural_size);
 
-#ifndef GTK_DISABLE_DEPRECATED
-void       gtk_widget_get_child_requisition (GtkWidget        *widget,
-                                            GtkRequisition    *requisition);
-#endif
+GDK_DEPRECATED_FOR(gtk_widget_get_preferred_size)
+void       gtk_widget_get_child_requisition (GtkWidget         *widget,
+                                             GtkRequisition    *requisition);
 void      gtk_widget_add_accelerator     (GtkWidget           *widget,
                                           const gchar         *accel_signal,
                                           GtkAccelGroup       *accel_group,
@@ -521,8 +524,6 @@ gboolean   gtk_widget_remove_accelerator  (GtkWidget           *widget,
 void       gtk_widget_set_accel_path      (GtkWidget           *widget,
                                           const gchar         *accel_path,
                                           GtkAccelGroup       *accel_group);
-const gchar* _gtk_widget_get_accel_path   (GtkWidget           *widget,
-                                          gboolean            *locked);
 GList*     gtk_widget_list_accel_closures (GtkWidget          *widget);
 gboolean   gtk_widget_can_activate_accel  (GtkWidget           *widget,
                                            guint                signal_id);
@@ -555,6 +556,7 @@ void       gtk_widget_set_can_focus       (GtkWidget           *widget,
 gboolean   gtk_widget_get_can_focus       (GtkWidget           *widget);
 gboolean   gtk_widget_has_focus           (GtkWidget           *widget);
 gboolean   gtk_widget_is_focus            (GtkWidget           *widget);
+gboolean   gtk_widget_has_visible_focus   (GtkWidget           *widget);
 void       gtk_widget_grab_focus          (GtkWidget           *widget);
 
 void       gtk_widget_set_can_default     (GtkWidget           *widget,
@@ -575,7 +577,7 @@ gboolean   gtk_widget_device_is_shadowed  (GtkWidget           *widget,
 
 void                  gtk_widget_set_name               (GtkWidget    *widget,
                                                         const gchar  *name);
-G_CONST_RETURN gchar* gtk_widget_get_name               (GtkWidget    *widget);
+const gchar *         gtk_widget_get_name               (GtkWidget    *widget);
 
 void                  gtk_widget_set_state              (GtkWidget    *widget,
                                                         GtkStateType  state);
@@ -670,10 +672,13 @@ void         gtk_widget_set_device_events   (GtkWidget           *widget,
 void       gtk_widget_add_device_events   (GtkWidget           *widget,
                                            GdkDevice           *device,
                                           GdkEventMask         events);
-void      gtk_widget_set_extension_events (GtkWidget           *widget,
-                                           GdkExtensionMode    mode);
 
-GdkExtensionMode gtk_widget_get_extension_events (GtkWidget    *widget);
+void       gtk_widget_set_device_enabled  (GtkWidget    *widget,
+                                           GdkDevice    *device,
+                                           gboolean      enabled);
+gboolean   gtk_widget_get_device_enabled  (GtkWidget    *widget,
+                                           GdkDevice    *device);
+
 GtkWidget*   gtk_widget_get_toplevel   (GtkWidget      *widget);
 GtkWidget*   gtk_widget_get_ancestor   (GtkWidget      *widget,
                                         GType           widget_type);
@@ -714,6 +719,10 @@ void             gtk_widget_set_support_multidevice (GtkWidget      *widget,
                                                      gboolean        support_multidevice);
 
 /* Accessibility support */
+void             gtk_widget_class_set_accessible_type    (GtkWidgetClass     *widget_class,
+                                                          GType               type);
+void             gtk_widget_class_set_accessible_role    (GtkWidgetClass     *widget_class,
+                                                          AtkRole             role);
 AtkObject*       gtk_widget_get_accessible               (GtkWidget          *widget);
 
 
@@ -741,6 +750,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_FOR(gdk_window_get_device_position)
 void        gtk_widget_get_pointer     (GtkWidget      *widget,
                                         gint           *x,
                                         gint           *y);
@@ -777,70 +787,16 @@ void         gtk_widget_override_cursor           (GtkWidget       *widget,
                                                    const GdkRGBA   *cursor,
                                                    const GdkRGBA   *secondary_cursor);
 
-
-void        gtk_widget_style_attach               (GtkWidget     *widget);
-
-#if !defined(GTK_DISABLE_DEPRECATED) || defined(GTK_COMPILATION)
-
-/* Widget styles.
- */
-gboolean    gtk_widget_has_rc_style       (GtkWidget            *widget);
-void       gtk_widget_set_style          (GtkWidget            *widget,
-                                           GtkStyle             *style);
-void        gtk_widget_ensure_style       (GtkWidget            *widget);
-GtkStyle *  gtk_widget_get_style          (GtkWidget            *widget);
-
-void        gtk_widget_modify_style       (GtkWidget            *widget,
-                                          GtkRcStyle           *style);
-GtkRcStyle *gtk_widget_get_modifier_style (GtkWidget            *widget);
-void        gtk_widget_modify_fg          (GtkWidget            *widget,
-                                          GtkStateType          state,
-                                          const GdkColor       *color);
-void        gtk_widget_modify_bg          (GtkWidget            *widget,
-                                          GtkStateType          state,
-                                          const GdkColor       *color);
-void        gtk_widget_modify_text        (GtkWidget            *widget,
-                                          GtkStateType          state,
-                                          const GdkColor       *color);
-void        gtk_widget_modify_base        (GtkWidget            *widget,
-                                          GtkStateType          state,
-                                          const GdkColor       *color);
-void        gtk_widget_modify_cursor      (GtkWidget            *widget,
-                                          const GdkColor       *primary,
-                                          const GdkColor       *secondary);
-void        gtk_widget_modify_font        (GtkWidget            *widget,
-                                          PangoFontDescription *font_desc);
-
-/* Descend recursively and set rc-style on all widgets without user styles */
-void       gtk_widget_reset_rc_styles   (GtkWidget      *widget);
 void       gtk_widget_reset_style       (GtkWidget      *widget);
 
-/* Set certain default values to be used at widget creation time  */
-GtkStyle*    gtk_widget_get_default_style    (void);
-
-/* Compute a widget's path in the form "GtkWindow.MyLabel", and
- * return newly alocated strings.
- */
-void        gtk_widget_path               (GtkWidget *widget,
-                                           guint     *path_length,
-                                           gchar    **path,
-                                           gchar    **path_reversed);
-void        gtk_widget_class_path         (GtkWidget *widget,
-                                           guint     *path_length,
-                                           gchar    **path,
-                                           gchar    **path_reversed);
-
-#endif  /* GTK_DISABLE_DEPRECATED */
-
 PangoContext *gtk_widget_create_pango_context (GtkWidget   *widget);
 PangoContext *gtk_widget_get_pango_context    (GtkWidget   *widget);
 PangoLayout  *gtk_widget_create_pango_layout  (GtkWidget   *widget,
                                               const gchar *text);
 
-GdkPixbuf    *gtk_widget_render_icon          (GtkWidget   *widget,
+GdkPixbuf    *gtk_widget_render_icon_pixbuf   (GtkWidget   *widget,
                                                const gchar *stock_id,
-                                               GtkIconSize  size,
-                                               const gchar *detail);
+                                               GtkIconSize  size);
 
 /* handle composite names for GTK_COMPOSITE_CHILD widgets,
  * the returned name is newly allocated.
@@ -896,9 +852,6 @@ void             gtk_widget_shape_combine_region (GtkWidget *widget,
 void        gtk_widget_input_shape_combine_region (GtkWidget *widget,
                                                     cairo_region_t *region);
 
-/* internal function */
-void        gtk_widget_reset_shapes       (GtkWidget *widget);
-
 GList* gtk_widget_list_mnemonic_labels  (GtkWidget *widget);
 void   gtk_widget_add_mnemonic_label    (GtkWidget *widget,
                                         GtkWidget *label);
@@ -930,53 +883,15 @@ GtkRequisition *gtk_requisition_new      (void) G_GNUC_MALLOC;
 GtkRequisition *gtk_requisition_copy     (const GtkRequisition *requisition);
 void            gtk_requisition_free     (GtkRequisition       *requisition);
 
-GdkEventExpose *  _gtk_cairo_get_event                    (cairo_t      *cr);
-
-void              _gtk_widget_draw_internal               (GtkWidget    *widget,
-                                                           cairo_t      *cr,
-                                                           gboolean      clip_to_size);
-void              _gtk_widget_set_has_default             (GtkWidget    *widget,
-                                                           gboolean      has_default);
-void              _gtk_widget_set_has_grab                (GtkWidget    *widget,
-                                                           gboolean      has_grab);
-void              _gtk_widget_set_is_toplevel             (GtkWidget    *widget,
-                                                           gboolean      is_toplevel);
-
-void              _gtk_widget_grab_notify                 (GtkWidget    *widget,
-                                                          gboolean     was_grabbed);
-
-GtkWidgetAuxInfo *_gtk_widget_get_aux_info                (GtkWidget    *widget,
-                                                          gboolean      create);
-void              _gtk_widget_propagate_hierarchy_changed (GtkWidget    *widget,
-                                                          GtkWidget    *previous_toplevel);
-void              _gtk_widget_propagate_screen_changed    (GtkWidget    *widget,
-                                                          GdkScreen    *previous_screen);
-void             _gtk_widget_propagate_composited_changed (GtkWidget    *widget);
-
-void      _gtk_widget_set_device_window   (GtkWidget      *widget,
-                                            GdkDevice      *device,
-                                           GdkWindow      *pointer_window);
-GdkWindow *_gtk_widget_get_device_window   (GtkWidget      *widget,
-                                            GdkDevice      *device);
-GList *    _gtk_widget_list_devices        (GtkWidget      *widget);
-
-void       _gtk_widget_synthesize_crossing (GtkWidget      *from,
-                                           GtkWidget      *to,
-                                            GdkDevice      *device,
-                                           GdkCrossingMode mode);
-
-gpointer     _gtk_widget_peek_request_cache (GtkWidget *widget);
-
-void         _gtk_widget_buildable_finish_accelerator (GtkWidget *widget,
-                                                      GtkWidget *toplevel,
-                                                      gpointer   user_data);
-
 gboolean     gtk_widget_in_destruction (GtkWidget *widget);
 
 GtkStyleContext * gtk_widget_get_style_context (GtkWidget *widget);
 
 GtkWidgetPath *   gtk_widget_get_path (GtkWidget *widget);
 
+GdkModifierType   gtk_widget_get_modifier_mask (GtkWidget         *widget,
+                                                GdkModifierIntent  intent);
+
 
 G_END_DECLS