X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkwidget.h;h=cb5841fbd3a97e2410568cbfc5918322ed639ecb;hb=6f581dd268d751951a23eddf31de95a57a957441;hp=1d5d4bee85c16493629807f421ec6780aa493d23;hpb=c2c98d9e120a0ed4493c7743c9e79ef5b71fb5b1;p=~andy%2Fgtk diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index 1d5d4bee8..cb5841fbd 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -32,12 +32,10 @@ #include #include #include +#include +#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - +G_BEGIN_DECLS /* The flags that are used by GtkWidget on top of the * flags field of GtkObject. @@ -75,18 +73,26 @@ typedef enum */ GTK_RECEIVES_DEFAULT = 1 << 20, - GTK_DOUBLE_BUFFERED = 1 << 21 + GTK_DOUBLE_BUFFERED = 1 << 21, + GTK_NO_SHOW_ALL = 1 << 22 } GtkWidgetFlags; +/* Kinds of widget-specific help */ +typedef enum +{ + GTK_WIDGET_HELP_TOOLTIP, + GTK_WIDGET_HELP_WHATS_THIS +} GtkWidgetHelpType; + /* Macro for casting a pointer to a GtkWidget or GtkWidgetClass pointer. * Macros for testing whether `widget' or `klass' are of type GTK_TYPE_WIDGET. */ #define GTK_TYPE_WIDGET (gtk_widget_get_type ()) -#define GTK_WIDGET(widget) (GTK_CHECK_CAST ((widget), GTK_TYPE_WIDGET, GtkWidget)) -#define GTK_WIDGET_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_WIDGET, GtkWidgetClass)) -#define GTK_IS_WIDGET(widget) (GTK_CHECK_TYPE ((widget), GTK_TYPE_WIDGET)) -#define GTK_IS_WIDGET_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_WIDGET)) -#define GTK_WIDGET_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_WIDGET, GtkWidgetClass)) +#define GTK_WIDGET(widget) (G_TYPE_CHECK_INSTANCE_CAST ((widget), GTK_TYPE_WIDGET, GtkWidget)) +#define GTK_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_WIDGET, GtkWidgetClass)) +#define GTK_IS_WIDGET(widget) (G_TYPE_CHECK_INSTANCE_TYPE ((widget), GTK_TYPE_WIDGET)) +#define GTK_IS_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_WIDGET)) +#define GTK_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_WIDGET, GtkWidgetClass)) /* Macros for extracting various fields from GtkWidget and GtkWidgetClass. */ @@ -123,15 +129,17 @@ typedef enum #define GTK_WIDGET_SET_FLAGS(wid,flag) G_STMT_START{ (GTK_WIDGET_FLAGS (wid) |= (flag)); }G_STMT_END #define GTK_WIDGET_UNSET_FLAGS(wid,flag) G_STMT_START{ (GTK_WIDGET_FLAGS (wid) &= ~(flag)); }G_STMT_END +#define GTK_TYPE_REQUISITION (gtk_requisition_get_type ()) /* forward declaration to avoid excessive includes (and concurrent includes) */ typedef struct _GtkRequisition GtkRequisition; -typedef struct _GdkRectangle GtkAllocation; +typedef GdkRectangle GtkAllocation; typedef struct _GtkSelectionData GtkSelectionData; typedef struct _GtkWidgetClass GtkWidgetClass; typedef struct _GtkWidgetAuxInfo GtkWidgetAuxInfo; typedef struct _GtkWidgetShapeInfo GtkWidgetShapeInfo; +typedef struct _GtkClipboard GtkClipboard; typedef void (*GtkCallback) (GtkWidget *widget, gpointer data); @@ -171,7 +179,7 @@ struct _GtkWidget */ guint8 state; - /* The saved state of the widget. When a widgets state + /* The saved state of the widget. When a widget's state * is changed to GTK_STATE_INSENSITIVE via * "gtk_widget_set_state" or "gtk_widget_set_sensitive" * the old state is kept around in this field. The state @@ -179,14 +187,16 @@ struct _GtkWidget */ guint8 saved_state; - /* The widgets name. If the widget does not have a name + /* The widget's name. If the widget does not have a name * (the name is NULL), then its name (as returned by - * "gtk_widget_get_name") is its classes name. + * "gtk_widget_get_name") is its class's name. * Among other things, the widget name is used to determine * the style to use for a widget. */ gchar *name; + /*< public >*/ + /* The style for the widget. The style contains the * colors the widget should be drawn in for each state * along with graphics contexts used to draw with and @@ -194,21 +204,21 @@ struct _GtkWidget */ GtkStyle *style; - /* The widgets desired size. + /* The widget's desired size. */ GtkRequisition requisition; - /* The widgets allocated size. + /* The widget's allocated size. */ GtkAllocation allocation; - /* The widgets window or its parent window if it does + /* The widget's window or its parent window if it does * not have a window. (Which will be indicated by the * GTK_NO_WINDOW flag being set). */ GdkWindow *window; - /* The widgets parent. + /* The widget's parent. */ GtkWidget *parent; }; @@ -222,20 +232,20 @@ struct _GtkWidgetClass * pointer. */ GtkObjectClass parent_class; + + /*< public >*/ - /* The signal to emit when a widget of this class is activated, - * gtk_widget_activate() handles the emission. - * Implementation of this signal is optional. - */ guint activate_signal; - /* This signal is emitted when a widget of this class is added - * to a scrolling aware parent, gtk_widget_set_scroll_adjustments() - * handles the emission. - * Implementation of this signal is optional. - */ guint set_scroll_adjustments_signal; + + /*< private >*/ + /* seldomly overidden */ + void (*dispatch_child_properties_changed) (GtkWidget *widget, + guint n_pspecs, + GParamSpec **pspecs); + /* basics */ void (* show) (GtkWidget *widget); void (* show_all) (GtkWidget *widget); @@ -253,95 +263,90 @@ struct _GtkWidgetClass GtkStateType previous_state); void (* parent_set) (GtkWidget *widget, GtkWidget *previous_parent); - void (* hierarchy_changed) (GtkWidget *widget); + void (* hierarchy_changed) (GtkWidget *widget, + GtkWidget *previous_toplevel); void (* style_set) (GtkWidget *widget, GtkStyle *previous_style); void (* direction_changed) (GtkWidget *widget, GtkTextDirection previous_direction); + void (* grab_notify) (GtkWidget *widget, + gboolean was_grabbed); + void (* child_notify) (GtkWidget *widget, + GParamSpec *pspec); - /* accelerators */ - gint (* add_accelerator) (GtkWidget *widget, - guint accel_signal_id, - GtkAccelGroup *accel_group, - guint accel_key, - GdkModifierType accel_mods, - GtkAccelFlags accel_flags); - void (* remove_accelerator) (GtkWidget *widget, - GtkAccelGroup *accel_group, - guint accel_key, - GdkModifierType accel_mods); - /* Mnemonics */ - gboolean (* activate_mnemonic) (GtkWidget *widget, + gboolean (* mnemonic_activate) (GtkWidget *widget, gboolean group_cycling); /* explicit focus */ - void (* grab_focus) (GtkWidget *widget); + void (* grab_focus) (GtkWidget *widget); + gboolean (* focus) (GtkWidget *widget, + GtkDirectionType direction); /* events */ - gint (* event) (GtkWidget *widget, - GdkEvent *event); - gint (* button_press_event) (GtkWidget *widget, - GdkEventButton *event); - gint (* button_release_event) (GtkWidget *widget, - GdkEventButton *event); - gint (* scroll_event) (GtkWidget *widget, - GdkEventScroll *event); - gint (* motion_notify_event) (GtkWidget *widget, - GdkEventMotion *event); - gint (* delete_event) (GtkWidget *widget, - GdkEventAny *event); - gint (* destroy_event) (GtkWidget *widget, - GdkEventAny *event); - gint (* expose_event) (GtkWidget *widget, - GdkEventExpose *event); - gint (* key_press_event) (GtkWidget *widget, - GdkEventKey *event); - gint (* key_release_event) (GtkWidget *widget, - GdkEventKey *event); - gint (* enter_notify_event) (GtkWidget *widget, - GdkEventCrossing *event); - gint (* leave_notify_event) (GtkWidget *widget, - GdkEventCrossing *event); - gint (* configure_event) (GtkWidget *widget, - GdkEventConfigure *event); - gint (* focus_in_event) (GtkWidget *widget, - GdkEventFocus *event); - gint (* focus_out_event) (GtkWidget *widget, - GdkEventFocus *event); - gint (* map_event) (GtkWidget *widget, - GdkEventAny *event); - gint (* unmap_event) (GtkWidget *widget, - GdkEventAny *event); - gint (* property_notify_event) (GtkWidget *widget, - GdkEventProperty *event); - gint (* selection_clear_event) (GtkWidget *widget, - GdkEventSelection *event); - gint (* selection_request_event) (GtkWidget *widget, - GdkEventSelection *event); - gint (* selection_notify_event) (GtkWidget *widget, - GdkEventSelection *event); - gint (* proximity_in_event) (GtkWidget *widget, - GdkEventProximity *event); - gint (* proximity_out_event) (GtkWidget *widget, - GdkEventProximity *event); - gint (* visibility_notify_event) (GtkWidget *widget, - GdkEventVisibility *event); - gint (* client_event) (GtkWidget *widget, - GdkEventClient *event); - gint (* no_expose_event) (GtkWidget *widget, - GdkEventAny *event); - gint (* window_state_event) (GtkWidget *widget, - GdkEventWindowState *event); + gboolean (* event) (GtkWidget *widget, + GdkEvent *event); + gboolean (* button_press_event) (GtkWidget *widget, + GdkEventButton *event); + gboolean (* button_release_event) (GtkWidget *widget, + GdkEventButton *event); + gboolean (* scroll_event) (GtkWidget *widget, + GdkEventScroll *event); + gboolean (* motion_notify_event) (GtkWidget *widget, + GdkEventMotion *event); + gboolean (* delete_event) (GtkWidget *widget, + GdkEventAny *event); + gboolean (* destroy_event) (GtkWidget *widget, + GdkEventAny *event); + gboolean (* expose_event) (GtkWidget *widget, + GdkEventExpose *event); + gboolean (* key_press_event) (GtkWidget *widget, + GdkEventKey *event); + gboolean (* key_release_event) (GtkWidget *widget, + GdkEventKey *event); + gboolean (* enter_notify_event) (GtkWidget *widget, + GdkEventCrossing *event); + gboolean (* leave_notify_event) (GtkWidget *widget, + GdkEventCrossing *event); + gboolean (* configure_event) (GtkWidget *widget, + GdkEventConfigure *event); + gboolean (* focus_in_event) (GtkWidget *widget, + GdkEventFocus *event); + gboolean (* focus_out_event) (GtkWidget *widget, + GdkEventFocus *event); + gboolean (* map_event) (GtkWidget *widget, + GdkEventAny *event); + gboolean (* unmap_event) (GtkWidget *widget, + GdkEventAny *event); + gboolean (* property_notify_event) (GtkWidget *widget, + GdkEventProperty *event); + gboolean (* selection_clear_event) (GtkWidget *widget, + GdkEventSelection *event); + gboolean (* selection_request_event) (GtkWidget *widget, + GdkEventSelection *event); + gboolean (* selection_notify_event) (GtkWidget *widget, + GdkEventSelection *event); + gboolean (* proximity_in_event) (GtkWidget *widget, + GdkEventProximity *event); + gboolean (* proximity_out_event) (GtkWidget *widget, + GdkEventProximity *event); + gboolean (* visibility_notify_event) (GtkWidget *widget, + GdkEventVisibility *event); + gboolean (* client_event) (GtkWidget *widget, + GdkEventClient *event); + gboolean (* no_expose_event) (GtkWidget *widget, + GdkEventAny *event); + gboolean (* window_state_event) (GtkWidget *widget, + GdkEventWindowState *event); /* selection */ void (* selection_get) (GtkWidget *widget, GtkSelectionData *selection_data, guint info, - guint time); + guint time_); void (* selection_received) (GtkWidget *widget, GtkSelectionData *selection_data, - guint time); + guint time_); /* Source side drag signals */ void (* drag_begin) (GtkWidget *widget, @@ -352,37 +357,63 @@ struct _GtkWidgetClass GdkDragContext *context, GtkSelectionData *selection_data, guint info, - guint time); + guint time_); void (* drag_data_delete) (GtkWidget *widget, GdkDragContext *context); /* Target side drag signals */ void (* drag_leave) (GtkWidget *widget, GdkDragContext *context, - guint time); + guint time_); gboolean (* drag_motion) (GtkWidget *widget, GdkDragContext *context, gint x, gint y, - guint time); + guint time_); gboolean (* drag_drop) (GtkWidget *widget, GdkDragContext *context, gint x, gint y, - guint time); + guint time_); void (* drag_data_received) (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, - guint time); + guint time_); + + /* Signals used only for keybindings */ + gboolean (* popup_menu) (GtkWidget *widget); + + /* If a widget has multiple tooltips/whatsthis, it should show the + * one for the current focus location, or if that doesn't make + * sense, should cycle through them showing each tip alongside + * whatever piece of the widget it applies to. + */ + gboolean (* show_help) (GtkWidget *widget, + GtkWidgetHelpType help_type); - /* Padding for future expandsion */ - GtkFunction pad1; - GtkFunction pad2; - GtkFunction pad3; - GtkFunction pad4; + /* accessibility support + */ + AtkObject* (*get_accessible) (GtkWidget *widget); + + void (*screen_changed) (GtkWidget *widget, + GdkScreen *previous_screen); + gboolean (*can_activate_accel) (GtkWidget *widget, + guint signal_id); + + /* Sent when a grab is broken. */ + gboolean (*grab_broken_event) (GtkWidget *widget, + GdkEventGrabBroken *event); + + void (* composited_changed) (GtkWidget *widget); + + /* Padding for future expansion */ + void (*_gtk_reserved4) (void); + void (*_gtk_reserved5) (void); + void (*_gtk_reserved6) (void); + void (*_gtk_reserved7) (void); }; struct _GtkWidgetAuxInfo @@ -391,6 +422,8 @@ struct _GtkWidgetAuxInfo gint y; gint width; gint height; + guint x_set : 1; + guint y_set : 1; }; struct _GtkWidgetShapeInfo @@ -400,8 +433,8 @@ struct _GtkWidgetShapeInfo GdkBitmap *shape_mask; }; -GtkType gtk_widget_get_type (void) G_GNUC_CONST; -GtkWidget* gtk_widget_new (GtkType type, +GType gtk_widget_get_type (void) G_GNUC_CONST; +GtkWidget* gtk_widget_new (GType type, const gchar *first_property_name, ...); GtkWidget* gtk_widget_ref (GtkWidget *widget); @@ -409,15 +442,20 @@ void gtk_widget_unref (GtkWidget *widget); void gtk_widget_destroy (GtkWidget *widget); void gtk_widget_destroyed (GtkWidget *widget, GtkWidget **widget_pointer); +#ifndef GTK_DISABLE_DEPRECATED void gtk_widget_set (GtkWidget *widget, const gchar *first_property_name, - ...); + ...) G_GNUC_NULL_TERMINATED; +#endif /* GTK_DISABLE_DEPRECATED */ void gtk_widget_unparent (GtkWidget *widget); void gtk_widget_show (GtkWidget *widget); void gtk_widget_show_now (GtkWidget *widget); void gtk_widget_hide (GtkWidget *widget); void gtk_widget_show_all (GtkWidget *widget); void gtk_widget_hide_all (GtkWidget *widget); +void gtk_widget_set_no_show_all (GtkWidget *widget, + gboolean no_show_all); +gboolean gtk_widget_get_no_show_all (GtkWidget *widget); void gtk_widget_map (GtkWidget *widget); void gtk_widget_unmap (GtkWidget *widget); void gtk_widget_realize (GtkWidget *widget); @@ -441,6 +479,7 @@ void gtk_widget_queue_clear_area (GtkWidget *widget, void gtk_widget_queue_resize (GtkWidget *widget); +void gtk_widget_queue_resize_no_redraw (GtkWidget *widget); #ifndef GTK_DISABLE_DEPRECATED void gtk_widget_draw (GtkWidget *widget, GdkRectangle *area); @@ -455,23 +494,21 @@ void gtk_widget_add_accelerator (GtkWidget *widget, const gchar *accel_signal, GtkAccelGroup *accel_group, guint accel_key, - guint accel_mods, + GdkModifierType accel_mods, GtkAccelFlags accel_flags); -void gtk_widget_remove_accelerator (GtkWidget *widget, - GtkAccelGroup *accel_group, - guint accel_key, - guint accel_mods); -void gtk_widget_remove_accelerators (GtkWidget *widget, - const gchar *accel_signal, - gboolean visible_only); -guint gtk_widget_accelerator_signal (GtkWidget *widget, +gboolean gtk_widget_remove_accelerator (GtkWidget *widget, GtkAccelGroup *accel_group, guint accel_key, - guint accel_mods); -void gtk_widget_lock_accelerators (GtkWidget *widget); -void gtk_widget_unlock_accelerators (GtkWidget *widget); -gboolean gtk_widget_accelerators_locked (GtkWidget *widget); -gboolean gtk_widget_activate_mnemonic (GtkWidget *widget, + GdkModifierType accel_mods); +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); +gboolean gtk_widget_mnemonic_activate (GtkWidget *widget, gboolean group_cycling); gboolean gtk_widget_event (GtkWidget *widget, GdkEvent *event); @@ -485,41 +522,66 @@ gboolean gtk_widget_set_scroll_adjustments (GtkWidget *widget, void gtk_widget_reparent (GtkWidget *widget, GtkWidget *new_parent); -void gtk_widget_popup (GtkWidget *widget, - gint x, - gint y); gboolean gtk_widget_intersect (GtkWidget *widget, GdkRectangle *area, GdkRectangle *intersection); GdkRegion *gtk_widget_region_intersect (GtkWidget *widget, GdkRegion *region); +void gtk_widget_freeze_child_notify (GtkWidget *widget); +void gtk_widget_child_notify (GtkWidget *widget, + const gchar *child_property); +void gtk_widget_thaw_child_notify (GtkWidget *widget); + gboolean gtk_widget_is_focus (GtkWidget *widget); void gtk_widget_grab_focus (GtkWidget *widget); void gtk_widget_grab_default (GtkWidget *widget); -void gtk_widget_set_name (GtkWidget *widget, - const gchar *name); -G_CONST_RETURN gchar* gtk_widget_get_name (GtkWidget *widget); -void gtk_widget_set_state (GtkWidget *widget, - GtkStateType state); -void gtk_widget_set_sensitive (GtkWidget *widget, - gboolean sensitive); -void gtk_widget_set_app_paintable (GtkWidget *widget, - gboolean app_paintable); -void gtk_widget_set_double_buffered (GtkWidget *widget, - gboolean double_buffered); -void gtk_widget_set_parent (GtkWidget *widget, - GtkWidget *parent); -void gtk_widget_set_parent_window (GtkWidget *widget, - GdkWindow *parent_window); +void gtk_widget_set_name (GtkWidget *widget, + const gchar *name); +G_CONST_RETURN gchar* gtk_widget_get_name (GtkWidget *widget); +void gtk_widget_set_state (GtkWidget *widget, + GtkStateType state); +void gtk_widget_set_sensitive (GtkWidget *widget, + gboolean sensitive); +void gtk_widget_set_app_paintable (GtkWidget *widget, + gboolean app_paintable); +void gtk_widget_set_double_buffered (GtkWidget *widget, + gboolean double_buffered); +void gtk_widget_set_redraw_on_allocate (GtkWidget *widget, + gboolean redraw_on_allocate); +void gtk_widget_set_parent (GtkWidget *widget, + GtkWidget *parent); +void gtk_widget_set_parent_window (GtkWidget *widget, + GdkWindow *parent_window); +void gtk_widget_set_child_visible (GtkWidget *widget, + gboolean is_visible); +gboolean gtk_widget_get_child_visible (GtkWidget *widget); + +GtkWidget *gtk_widget_get_parent (GtkWidget *widget); GdkWindow *gtk_widget_get_parent_window (GtkWidget *widget); + +gboolean gtk_widget_child_focus (GtkWidget *widget, + GtkDirectionType direction); +gboolean gtk_widget_keynav_failed (GtkWidget *widget, + GtkDirectionType direction); +void gtk_widget_error_bell (GtkWidget *widget); + +void gtk_widget_set_size_request (GtkWidget *widget, + gint width, + gint height); +void gtk_widget_get_size_request (GtkWidget *widget, + gint *width, + gint *height); +#ifndef GTK_DISABLE_DEPRECATED void gtk_widget_set_uposition (GtkWidget *widget, gint x, gint y); void gtk_widget_set_usize (GtkWidget *widget, gint width, gint height); +#endif + void gtk_widget_set_events (GtkWidget *widget, gint events); void gtk_widget_add_events (GtkWidget *widget, @@ -530,10 +592,28 @@ void gtk_widget_set_extension_events (GtkWidget *widget, GdkExtensionMode gtk_widget_get_extension_events (GtkWidget *widget); GtkWidget* gtk_widget_get_toplevel (GtkWidget *widget); GtkWidget* gtk_widget_get_ancestor (GtkWidget *widget, - GtkType widget_type); + GType widget_type); GdkColormap* gtk_widget_get_colormap (GtkWidget *widget); GdkVisual* gtk_widget_get_visual (GtkWidget *widget); +GdkScreen * gtk_widget_get_screen (GtkWidget *widget); +gboolean gtk_widget_has_screen (GtkWidget *widget); +GdkDisplay * gtk_widget_get_display (GtkWidget *widget); +GdkWindow * gtk_widget_get_root_window (GtkWidget *widget); +GtkSettings* gtk_widget_get_settings (GtkWidget *widget); +GtkClipboard *gtk_widget_get_clipboard (GtkWidget *widget, + GdkAtom selection); + +#ifndef GTK_DISABLE_DEPRECATED +#define gtk_widget_set_visual(widget,visual) ((void) 0) +#define gtk_widget_push_visual(visual) ((void) 0) +#define gtk_widget_pop_visual() ((void) 0) +#define gtk_widget_set_default_visual(visual) ((void) 0) +#endif /* GTK_DISABLE_DEPRECATED */ + +/* Accessibility support */ +AtkObject* gtk_widget_get_accessible (GtkWidget *widget); + /* The following functions must not be called on an already * realized widget. Because it is possible that somebody * can call get_colormap() or get_visual() and save the @@ -551,6 +631,13 @@ void gtk_widget_get_pointer (GtkWidget *widget, gboolean gtk_widget_is_ancestor (GtkWidget *widget, GtkWidget *ancestor); +gboolean gtk_widget_translate_coordinates (GtkWidget *src_widget, + GtkWidget *dest_widget, + gint src_x, + gint src_y, + gint *dest_x, + gint *dest_y); + /* Hide widget and return TRUE. */ gboolean gtk_widget_hide_on_delete (GtkWidget *widget); @@ -559,29 +646,32 @@ gboolean gtk_widget_hide_on_delete (GtkWidget *widget); */ void gtk_widget_set_style (GtkWidget *widget, GtkStyle *style); -void gtk_widget_set_rc_style (GtkWidget *widget); void gtk_widget_ensure_style (GtkWidget *widget); GtkStyle* gtk_widget_get_style (GtkWidget *widget); -void gtk_widget_restore_default_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, - GdkColor *color); + const GdkColor *color); void gtk_widget_modify_bg (GtkWidget *widget, GtkStateType state, - GdkColor *color); + const GdkColor *color); void gtk_widget_modify_text (GtkWidget *widget, GtkStateType state, - GdkColor *color); + const GdkColor *color); void gtk_widget_modify_base (GtkWidget *widget, GtkStateType state, - GdkColor *color); + const GdkColor *color); void gtk_widget_modify_font (GtkWidget *widget, PangoFontDescription *font_desc); +#ifndef GTK_DISABLE_DEPRECATED +#define gtk_widget_set_rc_style(widget) (gtk_widget_set_style (widget, NULL)) +#define gtk_widget_restore_default_style(widget) (gtk_widget_set_style (widget, NULL)) +#endif + PangoContext *gtk_widget_create_pango_context (GtkWidget *widget); PangoContext *gtk_widget_get_pango_context (GtkWidget *widget); PangoLayout *gtk_widget_create_pango_layout (GtkWidget *widget, @@ -606,20 +696,22 @@ void gtk_widget_reset_rc_styles (GtkWidget *widget); * This will override the values that got set by the * gtk_widget_set_default_* () functions. */ -void gtk_widget_push_style (GtkStyle *style); void gtk_widget_push_colormap (GdkColormap *cmap); void gtk_widget_push_composite_child (void); void gtk_widget_pop_composite_child (void); -void gtk_widget_pop_style (void); void gtk_widget_pop_colormap (void); /* widget style properties */ -void gtk_widget_class_install_style_property (GtkWidgetClass *class, +void gtk_widget_class_install_style_property (GtkWidgetClass *klass, GParamSpec *pspec); -void gtk_widget_class_install_style_property_parser (GtkWidgetClass *class, +void gtk_widget_class_install_style_property_parser (GtkWidgetClass *klass, GParamSpec *pspec, GtkRcPropertyParser parser); +GParamSpec* gtk_widget_class_find_style_property (GtkWidgetClass *klass, + const gchar *property_name); +GParamSpec** gtk_widget_class_list_style_properties (GtkWidgetClass *klass, + guint *n_properties); void gtk_widget_style_get_property (GtkWidget *widget, const gchar *property_name, GValue *value); @@ -628,16 +720,17 @@ void gtk_widget_style_get_valist (GtkWidget *widget, va_list var_args); void gtk_widget_style_get (GtkWidget *widget, const gchar *first_property_name, - ...); + ...) G_GNUC_NULL_TERMINATED; /* Set certain default values to be used at widget creation time. */ -void gtk_widget_set_default_style (GtkStyle *style); void gtk_widget_set_default_colormap (GdkColormap *colormap); GtkStyle* gtk_widget_get_default_style (void); +#ifndef GDK_MULTIHEAD_SAFE GdkColormap* gtk_widget_get_default_colormap (void); GdkVisual* gtk_widget_get_default_visual (void); +#endif /* Functions for setting directionality for widgets */ @@ -649,12 +742,19 @@ GtkTextDirection gtk_widget_get_direction (GtkWidget *widget); void gtk_widget_set_default_direction (GtkTextDirection dir); GtkTextDirection gtk_widget_get_default_direction (void); +/* Compositing manager functionality */ +gboolean gtk_widget_is_composited (GtkWidget *widget); + /* Counterpart to gdk_window_shape_combine_mask. */ void gtk_widget_shape_combine_mask (GtkWidget *widget, GdkBitmap *shape_mask, gint offset_x, gint offset_y); +void gtk_widget_input_shape_combine_mask (GtkWidget *widget, + GdkBitmap *shape_mask, + gint offset_x, + gint offset_y); /* internal function */ void gtk_widget_reset_shapes (GtkWidget *widget); @@ -671,15 +771,34 @@ void gtk_widget_class_path (GtkWidget *widget, gchar **path, gchar **path_reversed); +GList* gtk_widget_list_mnemonic_labels (GtkWidget *widget); +void gtk_widget_add_mnemonic_label (GtkWidget *widget, + GtkWidget *label); +void gtk_widget_remove_mnemonic_label (GtkWidget *widget, + GtkWidget *label); + +GType gtk_requisition_get_type (void) G_GNUC_CONST; +GtkRequisition *gtk_requisition_copy (const GtkRequisition *requisition); +void gtk_requisition_free (GtkRequisition *requisition); + #if defined (GTK_TRACE_OBJECTS) && defined (__GNUC__) # define gtk_widget_ref gtk_object_ref # define gtk_widget_unref gtk_object_unref #endif /* GTK_TRACE_OBJECTS && __GNUC__ */ +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); -#ifdef __cplusplus -} -#endif /* __cplusplus */ +GdkColormap* _gtk_widget_peek_colormap (void); +G_END_DECLS #endif /* __GTK_WIDGET_H__ */