GtkWidget

GtkWidget — Base class for all widgets

Synopsis


#include <gtk/gtk.h>


            GtkWidget;
            GtkWidgetClass;
enum        GtkWidgetFlags;
#define     GTK_WIDGET_TYPE                 (wid)
#define     GTK_WIDGET_STATE                (wid)
#define     GTK_WIDGET_SAVED_STATE          (wid)
#define     GTK_WIDGET_FLAGS                (wid)
#define     GTK_WIDGET_TOPLEVEL             (wid)
#define     GTK_WIDGET_NO_WINDOW            (wid)
#define     GTK_WIDGET_REALIZED             (wid)
#define     GTK_WIDGET_MAPPED               (wid)
#define     GTK_WIDGET_VISIBLE              (wid)
#define     GTK_WIDGET_DRAWABLE             (wid)
#define     GTK_WIDGET_SENSITIVE            (wid)
#define     GTK_WIDGET_PARENT_SENSITIVE     (wid)
#define     GTK_WIDGET_IS_SENSITIVE         (wid)
#define     GTK_WIDGET_CAN_FOCUS            (wid)
#define     GTK_WIDGET_HAS_FOCUS            (wid)
#define     GTK_WIDGET_CAN_DEFAULT          (wid)
#define     GTK_WIDGET_RECEIVES_DEFAULT     (wid)
#define     GTK_WIDGET_HAS_DEFAULT          (wid)
#define     GTK_WIDGET_HAS_GRAB             (wid)
#define     GTK_WIDGET_RC_STYLE             (wid)
#define     GTK_WIDGET_COMPOSITE_CHILD      (wid)
#define     GTK_WIDGET_APP_PAINTABLE        (wid)
#define     GTK_WIDGET_DOUBLE_BUFFERED      (wid)
#define     GTK_WIDGET_SET_FLAGS            (wid,flag)
#define     GTK_WIDGET_UNSET_FLAGS          (wid,flag)
void        (*GtkCallback)                  (GtkWidget *widget,
                                             gpointer data);
            GtkRequisition;
struct      GtkAllocation;
            GtkSelectionData;
            GtkWidgetAuxInfo;
            GtkWidgetShapeInfo;
enum        GtkWidgetHelpType;
GtkWidget*  gtk_widget_new                  (GType type,
                                             const gchar *first_property_name,
                                             ...);
GtkWidget*  gtk_widget_ref                  (GtkWidget *widget);
void        gtk_widget_unref                (GtkWidget *widget);
void        gtk_widget_destroy              (GtkWidget *widget);
void        gtk_widget_destroyed            (GtkWidget *widget,
                                             GtkWidget **widget_pointer);
void        gtk_widget_set                  (GtkWidget *widget,
                                             const gchar *first_property_name,
                                             ...);
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_map                  (GtkWidget *widget);
void        gtk_widget_unmap                (GtkWidget *widget);
void        gtk_widget_realize              (GtkWidget *widget);
void        gtk_widget_unrealize            (GtkWidget *widget);
void        gtk_widget_queue_draw           (GtkWidget *widget);
void        gtk_widget_queue_resize         (GtkWidget *widget);
void        gtk_widget_queue_resize_no_redraw
                                            (GtkWidget *widget);
void        gtk_widget_draw                 (GtkWidget *widget,
                                             GdkRectangle *area);
void        gtk_widget_size_request         (GtkWidget *widget,
                                             GtkRequisition *requisition);
void        gtk_widget_get_child_requisition
                                            (GtkWidget *widget,
                                             GtkRequisition *requisition);
void        gtk_widget_size_allocate        (GtkWidget *widget,
                                             GtkAllocation *allocation);
void        gtk_widget_add_accelerator      (GtkWidget *widget,
                                             const gchar *accel_signal,
                                             GtkAccelGroup *accel_group,
                                             guint accel_key,
                                             GdkModifierType accel_mods,
                                             GtkAccelFlags accel_flags);
gboolean    gtk_widget_remove_accelerator   (GtkWidget *widget,
                                             GtkAccelGroup *accel_group,
                                             guint accel_key,
                                             GdkModifierType accel_mods);
void        gtk_widget_set_accel_path       (GtkWidget *widget,
                                             const gchar *accel_path,
                                             GtkAccelGroup *accel_group);
GList*      gtk_widget_list_accel_closures  (GtkWidget *widget);
gboolean    gtk_widget_can_activate_accel   (GtkWidget *widget,
                                             guint signal_id);
gboolean    gtk_widget_event                (GtkWidget *widget,
                                             GdkEvent *event);
gboolean    gtk_widget_activate             (GtkWidget *widget);
void        gtk_widget_reparent             (GtkWidget *widget,
                                             GtkWidget *new_parent);
gboolean    gtk_widget_intersect            (GtkWidget *widget,
                                             GdkRectangle *area,
                                             GdkRectangle *intersection);
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);
const 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_parent           (GtkWidget *widget,
                                             GtkWidget *parent);
void        gtk_widget_set_parent_window    (GtkWidget *widget,
                                             GdkWindow *parent_window);
GdkWindow*  gtk_widget_get_parent_window    (GtkWidget *widget);
void        gtk_widget_set_uposition        (GtkWidget *widget,
                                             gint x,
                                             gint y);
void        gtk_widget_set_usize            (GtkWidget *widget,
                                             gint width,
                                             gint height);
void        gtk_widget_set_events           (GtkWidget *widget,
                                             gint events);
void        gtk_widget_add_events           (GtkWidget *widget,
                                             gint events);
void        gtk_widget_set_extension_events (GtkWidget *widget,
                                             GdkExtensionMode mode);
GdkExtensionMode gtk_widget_get_extension_events
                                            (GtkWidget *widget);
GtkWidget*  gtk_widget_get_toplevel         (GtkWidget *widget);
GtkWidget*  gtk_widget_get_ancestor         (GtkWidget *widget,
                                             GType widget_type);
GdkColormap* gtk_widget_get_colormap        (GtkWidget *widget);
void        gtk_widget_set_colormap         (GtkWidget *widget,
                                             GdkColormap *colormap);
GdkVisual*  gtk_widget_get_visual           (GtkWidget *widget);
gint        gtk_widget_get_events           (GtkWidget *widget);
void        gtk_widget_get_pointer          (GtkWidget *widget,
                                             gint *x,
                                             gint *y);
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);
gboolean    gtk_widget_hide_on_delete       (GtkWidget *widget);
void        gtk_widget_set_style            (GtkWidget *widget,
                                             GtkStyle *style);
#define     gtk_widget_set_rc_style         (widget)
void        gtk_widget_ensure_style         (GtkWidget *widget);
GtkStyle*   gtk_widget_get_style            (GtkWidget *widget);
#define     gtk_widget_restore_default_style(widget)
void        gtk_widget_reset_rc_styles      (GtkWidget *widget);
void        gtk_widget_push_colormap        (GdkColormap *cmap);
void        gtk_widget_pop_colormap         (void);
void        gtk_widget_set_default_colormap (GdkColormap *colormap);
GtkStyle*   gtk_widget_get_default_style    (void);
GdkColormap* gtk_widget_get_default_colormap
                                            (void);
GdkVisual*  gtk_widget_get_default_visual   (void);
void        gtk_widget_set_direction        (GtkWidget *widget,
                                             GtkTextDirection dir);
enum        GtkTextDirection;
GtkTextDirection gtk_widget_get_direction   (GtkWidget *widget);
void        gtk_widget_set_default_direction
                                            (GtkTextDirection dir);
GtkTextDirection gtk_widget_get_default_direction
                                            (void);
void        gtk_widget_shape_combine_mask   (GtkWidget *widget,
                                             GdkBitmap *shape_mask,
                                             gint offset_x,
                                             gint offset_y);
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);
gchar*      gtk_widget_get_composite_name   (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_font          (GtkWidget *widget,
                                             PangoFontDescription *font_desc);
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,
                                             const gchar *stock_id,
                                             GtkIconSize size,
                                             const gchar *detail);
void        gtk_widget_pop_composite_child  (void);
void        gtk_widget_push_composite_child (void);
void        gtk_widget_queue_clear          (GtkWidget *widget);
void        gtk_widget_queue_clear_area     (GtkWidget *widget,
                                             gint x,
                                             gint y,
                                             gint width,
                                             gint height);
void        gtk_widget_queue_draw_area      (GtkWidget *widget,
                                             gint x,
                                             gint y,
                                             gint width,
                                             gint height);
void        gtk_widget_reset_shapes         (GtkWidget *widget);
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_composite_name   (GtkWidget *widget,
                                             const gchar *name);
gboolean    gtk_widget_set_scroll_adjustments
                                            (GtkWidget *widget,
                                             GtkAdjustment *hadjustment,
                                             GtkAdjustment *vadjustment);
gboolean    gtk_widget_mnemonic_activate    (GtkWidget *widget,
                                             gboolean group_cycling);
void        gtk_widget_class_install_style_property
                                            (GtkWidgetClass *klass,
                                             GParamSpec *pspec);
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);
GdkRegion*  gtk_widget_region_intersect     (GtkWidget *widget,
                                             GdkRegion *region);
gint        gtk_widget_send_expose          (GtkWidget *widget,
                                             GdkEvent *event);
void        gtk_widget_style_get            (GtkWidget *widget,
                                             const gchar *first_property_name,
                                             ...);
void        gtk_widget_style_get_property   (GtkWidget *widget,
                                             const gchar *property_name,
                                             GValue *value);
void        gtk_widget_style_get_valist     (GtkWidget *widget,
                                             const gchar *first_property_name,
                                             va_list var_args);
AtkObject*  gtk_widget_get_accessible       (GtkWidget *widget);
gboolean    gtk_widget_child_focus          (GtkWidget *widget,
                                             GtkDirectionType direction);
void        gtk_widget_child_notify         (GtkWidget *widget,
                                             const gchar *child_property);
void        gtk_widget_freeze_child_notify  (GtkWidget *widget);
gboolean    gtk_widget_get_child_visible    (GtkWidget *widget);
GtkWidget*  gtk_widget_get_parent           (GtkWidget *widget);
GtkSettings* gtk_widget_get_settings        (GtkWidget *widget);
GtkClipboard* gtk_widget_get_clipboard      (GtkWidget *widget,
                                             GdkAtom selection);
GdkDisplay* gtk_widget_get_display          (GtkWidget *widget);
GdkWindow*  gtk_widget_get_root_window      (GtkWidget *widget);
GdkScreen*  gtk_widget_get_screen           (GtkWidget *widget);
gboolean    gtk_widget_has_screen           (GtkWidget *widget);
void        gtk_widget_get_size_request     (GtkWidget *widget,
                                             gint *width,
                                             gint *height);
#define     gtk_widget_pop_visual           ()
#define     gtk_widget_push_visual          (visual)
void        gtk_widget_set_child_visible    (GtkWidget *widget,
                                             gboolean is_visible);
#define     gtk_widget_set_default_visual   (visual)
void        gtk_widget_set_size_request     (GtkWidget *widget,
                                             gint width,
                                             gint height);
#define     gtk_widget_set_visual           (widget,visual)
void        gtk_widget_thaw_child_notify    (GtkWidget *widget);
void        gtk_widget_set_no_show_all      (GtkWidget *widget,
                                             gboolean no_show_all);
gboolean    gtk_widget_get_no_show_all      (GtkWidget *widget);
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);

GtkRequisition* gtk_requisition_copy        (const GtkRequisition *requisition);
void        gtk_requisition_free            (GtkRequisition *requisition);


Object Hierarchy


  GObject
   +----GtkObject
         +----GtkWidget
               +----GtkContainer
               +----GtkMisc
               +----GtkCalendar
               +----GtkCellView
               +----GtkDrawingArea
               +----GtkEntry
               +----GtkRuler
               +----GtkRange
               +----GtkSeparator
               +----GtkInvisible
               +----GtkOldEditable
               +----GtkPreview
               +----GtkProgress

Known Derived Interfaces

GtkWidget is required by GtkFileChooser and GtkCellEditable.

Implemented Interfaces

GtkWidget implements AtkImplementorIface.

Properties


  "app-paintable"        gboolean              : Read / Write
  "can-default"          gboolean              : Read / Write
  "can-focus"            gboolean              : Read / Write
  "composite-child"      gboolean              : Read
  "events"               GdkEventMask          : Read / Write
  "extension-events"     GdkExtensionMode      : Read / Write
  "has-default"          gboolean              : Read / Write
  "has-focus"            gboolean              : Read / Write
  "height-request"       gint                  : Read / Write
  "is-focus"             gboolean              : Read / Write
  "name"                 gchararray            : Read / Write
  "no-show-all"          gboolean              : Read / Write
  "parent"               GtkContainer          : Read / Write
  "receives-default"     gboolean              : Read / Write
  "sensitive"            gboolean              : Read / Write
  "style"                GtkStyle              : Read / Write
  "visible"              gboolean              : Read / Write
  "width-request"        gint                  : Read / Write

Style Properties


  "cursor-aspect-ratio"  gfloat                : Read
  "cursor-color"         GdkColor              : Read
  "focus-line-pattern"   gchararray            : Read
  "focus-line-width"     gint                  : Read
  "focus-padding"        gint                  : Read
  "interior-focus"       gboolean              : Read
  "secondary-cursor-color" GdkColor              : Read

Signal Prototypes


"accel-closures-changed"
            void        user_function      (GtkWidget *widget,
                                            gpointer user_data);
"button-press-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventButton *event,
                                            gpointer user_data);
"button-release-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventButton *event,
                                            gpointer user_data);
"can-activate-accel"
            gboolean    user_function      (GtkWidget *widget,
                                            guint signal_id,
                                            gpointer user_data);
"child-notify"
            void        user_function      (GtkWidget *widget,
                                            GParamSpec *pspec,
                                            gpointer user_data);
"client-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventClient *event,
                                            gpointer user_data);
"configure-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventConfigure *event,
                                            gpointer user_data);
"delete-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEvent *event,
                                            gpointer user_data);
"destroy-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEvent *event,
                                            gpointer user_data);
"direction-changed"
            void        user_function      (GtkWidget *widget,
                                            GtkTextDirection arg1,
                                            gpointer user_data);
"drag-begin"
            void        user_function      (GtkWidget *widget,
                                            GdkDragContext *drag_context,
                                            gpointer user_data);
"drag-data-delete"
            void        user_function      (GtkWidget *widget,
                                            GdkDragContext *drag_context,
                                            gpointer user_data);
"drag-data-get"
            void        user_function      (GtkWidget *widget,
                                            GdkDragContext *drag_context,
                                            GtkSelectionData *data,
                                            guint info,
                                            guint time,
                                            gpointer user_data);
"drag-data-received"
            void        user_function      (GtkWidget *widget,
                                            GdkDragContext *drag_context,
                                            gint x,
                                            gint y,
                                            GtkSelectionData *data,
                                            guint info,
                                            guint time,
                                            gpointer user_data);
"drag-drop" gboolean    user_function      (GtkWidget *widget,
                                            GdkDragContext *drag_context,
                                            gint x,
                                            gint y,
                                            guint time,
                                            gpointer user_data);
"drag-end"  void        user_function      (GtkWidget *widget,
                                            GdkDragContext *drag_context,
                                            gpointer user_data);
"drag-leave"
            void        user_function      (GtkWidget *widget,
                                            GdkDragContext *drag_context,
                                            guint time,
                                            gpointer user_data);
"drag-motion"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkDragContext *drag_context,
                                            gint x,
                                            gint y,
                                            guint time,
                                            gpointer user_data);
"enter-notify-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventCrossing *event,
                                            gpointer user_data);
"event"     gboolean    user_function      (GtkWidget *widget,
                                            GdkEvent *event,
                                            gpointer user_data);
"event-after"
            void        user_function      (GtkWidget *widget,
                                            GdkEvent *event,
                                            gpointer user_data);
"expose-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventExpose *event,
                                            gpointer user_data);
"focus"     gboolean    user_function      (GtkWidget *widget,
                                            GtkDirectionType arg1,
                                            gpointer user_data);
"focus-in-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventFocus *event,
                                            gpointer user_data);
"focus-out-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventFocus *event,
                                            gpointer user_data);
"grab-focus"
            void        user_function      (GtkWidget *widget,
                                            gpointer user_data);
"grab-notify"
            void        user_function      (GtkWidget *widget,
                                            gboolean arg1,
                                            gpointer user_data);
"hide"      void        user_function      (GtkWidget *widget,
                                            gpointer user_data);
"hierarchy-changed"
            void        user_function      (GtkWidget *widget,
                                            GtkWidget *widget2,
                                            gpointer user_data);
"key-press-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventKey *event,
                                            gpointer user_data);
"key-release-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventKey *event,
                                            gpointer user_data);
"leave-notify-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventCrossing *event,
                                            gpointer user_data);
"map"       void        user_function      (GtkWidget *widget,
                                            gpointer user_data);
"map-event" gboolean    user_function      (GtkWidget *widget,
                                            GdkEvent *event,
                                            gpointer user_data);
"mnemonic-activate"
            gboolean    user_function      (GtkWidget *widget,
                                            gboolean arg1,
                                            gpointer user_data);
"motion-notify-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventMotion *event,
                                            gpointer user_data);
"no-expose-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventNoExpose *event,
                                            gpointer user_data);
"parent-set"
            void        user_function      (GtkWidget *widget,
                                            GtkObject *old_parent,
                                            gpointer user_data);
"popup-menu"
            gboolean    user_function      (GtkWidget *widget,
                                            gpointer user_data);
"property-notify-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventProperty *event,
                                            gpointer user_data);
"proximity-in-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventProximity *event,
                                            gpointer user_data);
"proximity-out-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventProximity *event,
                                            gpointer user_data);
"realize"   void        user_function      (GtkWidget *widget,
                                            gpointer user_data);
"screen-changed"
            void        user_function      (GtkWidget *widget,
                                            GdkScreen *arg1,
                                            gpointer user_data);
"scroll-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventScroll *event,
                                            gpointer user_data);
"selection-clear-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventSelection *event,
                                            gpointer user_data);
"selection-get"
            void        user_function      (GtkWidget *widget,
                                            GtkSelectionData *data,
                                            guint info,
                                            guint time,
                                            gpointer user_data);
"selection-notify-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventSelection *event,
                                            gpointer user_data);
"selection-received"
            void        user_function      (GtkWidget *widget,
                                            GtkSelectionData *data,
                                            guint time,
                                            gpointer user_data);
"selection-request-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventSelection *event,
                                            gpointer user_data);
"show"      void        user_function      (GtkWidget *widget,
                                            gpointer user_data);
"show-help" gboolean    user_function      (GtkWidget *widget,
                                            GtkWidgetHelpType arg1,
                                            gpointer user_data);
"size-allocate"
            void        user_function      (GtkWidget *widget,
                                            GtkAllocation *allocation,
                                            gpointer user_data);
"size-request"
            void        user_function      (GtkWidget *widget,
                                            GtkRequisition *requisition,
                                            gpointer user_data);
"state-changed"
            void        user_function      (GtkWidget *widget,
                                            GtkStateType state,
                                            gpointer user_data);
"style-set" void        user_function      (GtkWidget *widget,
                                            GtkStyle *previous_style,
                                            gpointer user_data);
"unmap"     void        user_function      (GtkWidget *widget,
                                            gpointer user_data);
"unmap-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEvent *event,
                                            gpointer user_data);
"unrealize" void        user_function      (GtkWidget *widget,
                                            gpointer user_data);
"visibility-notify-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventVisibility *event,
                                            gpointer user_data);
"window-state-event"
            gboolean    user_function      (GtkWidget *widget,
                                            GdkEventWindowState *event,
                                            gpointer user_data);

Description

GtkWidget introduces style properties - these are basically object properties that are stored not on the object, but in the style object associated to the widget. Style properties are set in resource files. This mechanism is used for configuring such things as the location of the scrollbar arrows through the theme, giving theme authors more control over the look of applications without the need to write a theme engine in C.

Use gtk_widget_class_install_style_property() to install style properties for a widget class, gtk_widget_class_find_style_property() or gtk_widget_class_list_style_properties() to get information about existing style properties and gtk_widget_style_get_property(), gtk_widget_style_get() or gtk_widget_style_get_valist() to obtain the value of a style property.

Details

GtkWidget

typedef struct {
  /* 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
   *  the font to use for text.
   */
  GtkStyle *style;
  
  /* The widgets desired size.
   */
  GtkRequisition requisition;
  
  /* The widgets allocated size.
   */
  GtkAllocation allocation;
  
  /* The widgets 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.
   */
  GtkWidget *parent;
} GtkWidget;

GtkStyle *style;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 the font to use for text.
GtkRequisition requisition;The widgets desired size.
GtkAllocation allocation;The widgets allocated size.
GdkWindow *window;The widgets window or its parent window if it does not have a window. (Which will be indicated by the GTK_NO_WINDOW flag being set).
GtkWidget *parent;

GtkWidgetClass

typedef struct {
  /* The object class structure needs to be the first
   *  element in the widget class structure in order for
   *  the class mechanism to work correctly. This allows a
   *  GtkWidgetClass pointer to be cast to a GtkObjectClass
   *  pointer.
   */
  GtkObjectClass parent_class;

  
  guint activate_signal;

  guint set_scroll_adjustments_signal;
} GtkWidgetClass;

activate_signal The signal to emit when a widget of this class is activated, gtk_widget_activate() handles the emission. Implementation of this signal is optional.

set_scroll_adjustment_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.


enum GtkWidgetFlags

typedef enum
{
  GTK_TOPLEVEL         = 1 << 4,
  GTK_NO_WINDOW        = 1 << 5,
  GTK_REALIZED         = 1 << 6,
  GTK_MAPPED           = 1 << 7,
  GTK_VISIBLE          = 1 << 8,
  GTK_SENSITIVE        = 1 << 9,
  GTK_PARENT_SENSITIVE = 1 << 10,
  GTK_CAN_FOCUS        = 1 << 11,
  GTK_HAS_FOCUS        = 1 << 12,

  /* widget is allowed to receive the default via gtk_widget_grab_default
   * and will reserve space to draw the default if possible
   */
  GTK_CAN_DEFAULT      = 1 << 13,

  /* the widget currently is receiving the default action and should be drawn
   * appropriately if possible
   */
  GTK_HAS_DEFAULT      = 1 << 14,

  GTK_HAS_GRAB	       = 1 << 15,
  GTK_RC_STYLE	       = 1 << 16,
  GTK_COMPOSITE_CHILD  = 1 << 17,
  GTK_NO_REPARENT      = 1 << 18,
  GTK_APP_PAINTABLE    = 1 << 19,

  /* the widget when focused will receive the default action and have
   * HAS_DEFAULT set even if there is a different widget set as default
   */
  GTK_RECEIVES_DEFAULT = 1 << 20,

  GTK_DOUBLE_BUFFERED  = 1 << 21,
  GTK_NO_SHOW_ALL      = 1 << 22
} GtkWidgetFlags;

Tells about certain properties of the widget.

GTK_TOPLEVEL widgets without a real parent, as there are GtkWindows and GtkMenus have this flag set throughout their lifetime. Toplevel widgets always contain their own GdkWindow.
GTK_NO_WINDOW Indicative for a widget that does not provide its own GdkWindow. Visible action (e.g. drawing) is performed on the parent's GdkWindow.
GTK_REALIZED Set by gtk_widget_realize(), unset by gtk_widget_unrealize(). A realized widget has an associated GdkWindow.
GTK_MAPPED Set by gtk_widget_map(), unset by gtk_widget_unmap(). Only realized widgets can be mapped. It means that gdk_window_show() has been called on the widgets window(s).
GTK_VISIBLE Set by gtk_widget_show(), unset by gtk_widget_hide(). Implies that a widget will be mapped as soon as its parent is mapped.
GTK_SENSITIVE Set and unset by gtk_widget_set_sensitive(). The sensitivity of a widget determines whether it will receive certain events (e.g. button or key presses). One premise for the widgets sensitivity is to have this flag set.
GTK_PARENT_SENSITIVE Set and unset by gtk_widget_set_sensitive() operations on the parents of the widget. This is the second premise for the widgets sensitivity. Once it has GTK_SENSITIVE and GTK_PARENT_SENSITIVE set, its state is effectively sensitive. This is expressed (and can be examined) by the GTK_WIDGET_IS_SENSITIVE macro.
GTK_CAN_FOCUS Determines whether a widget is able to handle focus grabs.
GTK_HAS_FOCUS Set by gtk_widget_grab_focus() for widgets that also have GTK_CAN_FOCUS set. The flag will be unset once another widget grabs the focus.
GTK_CAN_DEFAULT The widget is allowed to receive the default action via gtk_widget_grab_default().
GTK_HAS_DEFAULT The widget currently is receiving the default action.
GTK_HAS_GRAB Set by gtk_grab_add(), unset by gtk_grab_remove(). It means that the widget is in the grab_widgets stack, and will be the preferred one for receiving events other than ones of cosmetic value.
GTK_RC_STYLE Indicates that the widgets style has been looked up through the rc mechanism. It does not imply that the widget actually had a style defined through the rc mechanism.
GTK_COMPOSITE_CHILD Indicates that the widget is a composite child of its parent; see gtk_widget_push_composite_child(), gtk_widget_pop_composite_child().
GTK_NO_REPARENT Unused since before GTK+ 1.2, will be removed in a future version.
GTK_APP_PAINTABLE Set and unset by gtk_widget_set_app_paintable(). Must be set on widgets whose window the application directly draws on, in order to keep GTK+ from overwriting the drawn stuff.
GTK_RECEIVES_DEFAULT The widget when focused will receive the default action and have GTK_HAS_DEFAULT set even if there is a different widget set as default.
GTK_DOUBLE_BUFFERED Set and unset by gtk_widget_set_double_buffered(). Indicates that exposes done on the widget should be double-buffered.
GTK_NO_SHOW_ALL

GTK_WIDGET_TYPE()

#define GTK_WIDGET_TYPE(wid)		  (GTK_OBJECT_TYPE (wid))

Gets the type of a widget.

wid :a GtkWidget.

GTK_WIDGET_STATE()

#define GTK_WIDGET_STATE(wid)		  (GTK_WIDGET (wid)->state)

Returns the current state of the widget, as a GtkStateType.

wid :a GtkWidget.

GTK_WIDGET_SAVED_STATE()

#define GTK_WIDGET_SAVED_STATE(wid)	  (GTK_WIDGET (wid)->saved_state)

Returns the saved state of the widget, as a GtkStateType.

The saved state will be restored when a widget gets sensitive again, after it has been made insensitive with gtk_widget_set_state() or gtk_widget_set_sensitive().

wid :a GtkWidget.

GTK_WIDGET_FLAGS()

#define GTK_WIDGET_FLAGS(wid)		  (GTK_OBJECT_FLAGS (wid))

Returns the widget flags from wid.

wid :a GtkWidget.

GTK_WIDGET_TOPLEVEL()

#define GTK_WIDGET_TOPLEVEL(wid)	  ((GTK_WIDGET_FLAGS (wid) & GTK_TOPLEVEL) != 0)

Evaluates to TRUE if the widget is a toplevel widget.

wid :a GtkWidget.

GTK_WIDGET_NO_WINDOW()

#define GTK_WIDGET_NO_WINDOW(wid)	  ((GTK_WIDGET_FLAGS (wid) & GTK_NO_WINDOW) != 0)

Evaluates to TRUE if the widget doesn't have an own GdkWindow.

wid :a GtkWidget.

GTK_WIDGET_REALIZED()

#define GTK_WIDGET_REALIZED(wid)	  ((GTK_WIDGET_FLAGS (wid) & GTK_REALIZED) != 0)

Evaluates to TRUE if the widget is realized.

wid :a GtkWidget.

GTK_WIDGET_MAPPED()

#define GTK_WIDGET_MAPPED(wid)		  ((GTK_WIDGET_FLAGS (wid) & GTK_MAPPED) != 0)

Evaluates to TRUE if the widget is mapped.

wid :a GtkWidget.

GTK_WIDGET_VISIBLE()

#define GTK_WIDGET_VISIBLE(wid)		  ((GTK_WIDGET_FLAGS (wid) & GTK_VISIBLE) != 0)

Evaluates to TRUE if the widget is visible.

wid :a GtkWidget.

GTK_WIDGET_DRAWABLE()

#define GTK_WIDGET_DRAWABLE(wid)	  (GTK_WIDGET_VISIBLE (wid) && GTK_WIDGET_MAPPED (wid))

Evaluates to TRUE if the widget is mapped and visible.

wid :a GtkWidget.

GTK_WIDGET_SENSITIVE()

#define GTK_WIDGET_SENSITIVE(wid)	  ((GTK_WIDGET_FLAGS (wid) & GTK_SENSITIVE) != 0)

Evaluates to TRUE if the GTK_SENSITIVE flag has be set on the widget.

wid :a GtkWidget.

GTK_WIDGET_PARENT_SENSITIVE()

#define GTK_WIDGET_PARENT_SENSITIVE(wid)  ((GTK_WIDGET_FLAGS (wid) & GTK_PARENT_SENSITIVE) != 0)

Evaluates to TRUE if the GTK_PARENT_SENSITIVE flag has be set on the widget.

wid :a GtkWidget.

GTK_WIDGET_IS_SENSITIVE()

#define     GTK_WIDGET_IS_SENSITIVE(wid)

Evaluates to TRUE if the widget is effectively sensitive.

wid :a GtkWidget.

GTK_WIDGET_CAN_FOCUS()

#define GTK_WIDGET_CAN_FOCUS(wid)	  ((GTK_WIDGET_FLAGS (wid) & GTK_CAN_FOCUS) != 0)

Evaluates to TRUE if the widget is able to handle focus grabs.

wid :a GtkWidget.

GTK_WIDGET_HAS_FOCUS()

#define GTK_WIDGET_HAS_FOCUS(wid)	  ((GTK_WIDGET_FLAGS (wid) & GTK_HAS_FOCUS) != 0)

Evaluates to TRUE if the widget has grabbed the focus and no other widget has done so more recently.

wid :a GtkWidget.

GTK_WIDGET_CAN_DEFAULT()

#define GTK_WIDGET_CAN_DEFAULT(wid)	  ((GTK_WIDGET_FLAGS (wid) & GTK_CAN_DEFAULT) != 0)

Evaluates to TRUE if the widget is allowed to receive the default action via gtk_widget_grab_default().

wid :a GtkWidget.

GTK_WIDGET_RECEIVES_DEFAULT()

#define GTK_WIDGET_RECEIVES_DEFAULT(wid)  ((GTK_WIDGET_FLAGS (wid) & GTK_RECEIVES_DEFAULT) != 0)

Evaluates to TRUE if the widget when focused will receive the default action even if there is a different widget set as default.

wid :a GtkWidget.

GTK_WIDGET_HAS_DEFAULT()

#define GTK_WIDGET_HAS_DEFAULT(wid)	  ((GTK_WIDGET_FLAGS (wid) & GTK_HAS_DEFAULT) != 0)

Evaluates to TRUE if the widget currently is receiving the default action.

wid :a GtkWidget.

GTK_WIDGET_HAS_GRAB()

#define GTK_WIDGET_HAS_GRAB(wid)	  ((GTK_WIDGET_FLAGS (wid) & GTK_HAS_GRAB) != 0)

Evaluates to TRUE if the widget is in the grab_widgets stack, and will be the preferred one for receiving events other than ones of cosmetic value.

wid :a GtkWidget.

GTK_WIDGET_RC_STYLE()

#define GTK_WIDGET_RC_STYLE(wid)	  ((GTK_WIDGET_FLAGS (wid) & GTK_RC_STYLE) != 0)

Evaluates to TRUE if the widgets style has been looked up through the rc mechanism.

wid :a GtkWidget.

GTK_WIDGET_COMPOSITE_CHILD()

#define GTK_WIDGET_COMPOSITE_CHILD(wid)	  ((GTK_WIDGET_FLAGS (wid) & GTK_COMPOSITE_CHILD) != 0)

Evaluates to TRUE if the widget is a composite child of its parent.

wid :a GtkWidget.

GTK_WIDGET_APP_PAINTABLE()

#define GTK_WIDGET_APP_PAINTABLE(wid)	  ((GTK_WIDGET_FLAGS (wid) & GTK_APP_PAINTABLE) != 0)

Evaluates to TRUE if the GTK_APP_PAINTABLE flag has been set on the widget.

wid :a GtkWidget.

GTK_WIDGET_DOUBLE_BUFFERED()

#define GTK_WIDGET_DOUBLE_BUFFERED(wid)	  ((GTK_WIDGET_FLAGS (wid) & GTK_DOUBLE_BUFFERED) != 0)

Evaluates to TRUE if the GTK_DOUBLE_BUFFERED flag has been set on the widget.

wid :a GtkWidget.

GTK_WIDGET_SET_FLAGS()

#define GTK_WIDGET_SET_FLAGS(wid,flag)	  G_STMT_START{ (GTK_WIDGET_FLAGS (wid) |= (flag)); }G_STMT_END

Turns on certain widget flags.

wid :a GtkWidget.
flag :the flags to set.

GTK_WIDGET_UNSET_FLAGS()

#define GTK_WIDGET_UNSET_FLAGS(wid,flag)  G_STMT_START{ (GTK_WIDGET_FLAGS (wid) &= ~(flag)); }G_STMT_END

Turns off certain widget flags.

wid :a GtkWidget.
flag :the flags to unset.

GtkCallback ()

void        (*GtkCallback)                  (GtkWidget *widget,
                                             gpointer data);

The type of the callback functions used for e.g. iterating over the children of a container, see gtk_container_foreach().

widget :the widget to operate on
data :user-supplied data

GtkRequisition

typedef struct {
  gint width;
  gint height;
} GtkRequisition;

A GtkRequisition represents the desired size of a widget. See the section called “Size Requisition” for more information.

gint width;the widget's desired width
gint height;the widget's desired height

struct GtkAllocation

struct GtkAllocation {
  gint x;
  gint y;
  gint width;
  gint height;
};

A GtkAllocation of a widget represents region which has been allocated to the widget by its parent. It is a subregion of its parents allocation. See the section called “Size Allocation” for more information.

gint x;the X position of the widgets area relative to its parents allocation.
gint y;the Y position of the widgets area relative to its parents allocation.
gint width;the width of the widgets allocated area.
gint height;the height of the widgets allocated area.

GtkSelectionData

typedef struct {
  GdkAtom	selection;
  GdkAtom	target;
  GdkAtom	type;
  gint		format;
  guchar       *data;  
  gint		length;
  GdkDisplay   *display;
} GtkSelectionData;


GtkWidgetAuxInfo

typedef struct {
  gint x;
  gint y;
  gint width;
  gint height;
  guint x_set : 1;
  guint y_set : 1;
} GtkWidgetAuxInfo;


GtkWidgetShapeInfo

typedef struct {
  gint16     offset_x;
  gint16     offset_y;
  GdkBitmap *shape_mask;
} GtkWidgetShapeInfo;


enum GtkWidgetHelpType

typedef enum
{
  GTK_WIDGET_HELP_TOOLTIP,
  GTK_WIDGET_HELP_WHATS_THIS
} GtkWidgetHelpType;


gtk_widget_new ()

GtkWidget*  gtk_widget_new                  (GType type,
                                             const gchar *first_property_name,
                                             ...);

This is a convenience function for creating a widget and setting its properties in one go. For example you might write: gtk_widget_new (GTK_TYPE_LABEL, "label", "Hello World", "xalign", 0.0, NULL) to create a left-aligned label. Equivalent to g_object_new(), but returns a widget so you don't have to cast the object yourself.

type : type ID of the widget to create
first_property_name : name of first property to set
... : value of first property, followed by more properties, NULL-terminated
Returns : a new GtkWidget of type widget_type

gtk_widget_ref ()

GtkWidget*  gtk_widget_ref                  (GtkWidget *widget);

Adds a reference to a widget. This function is exactly the same as calling g_object_ref(), and exists mostly for historical reasons. It can still be convenient to avoid casting a widget to a GObject, it saves a small amount of typing.

widget : a GtkWidget
Returns : the widget that was referenced

gtk_widget_unref ()

void        gtk_widget_unref                (GtkWidget *widget);

Inverse of gtk_widget_ref(). Equivalent to g_object_unref().

widget : a GtkWidget

gtk_widget_destroy ()

void        gtk_widget_destroy              (GtkWidget *widget);

Destroys a widget. Equivalent to gtk_object_destroy(), except that you don't have to cast the widget to GtkObject. When a widget is destroyed, it will break any references it holds to other objects. If the widget is inside a container, the widget will be removed from the container. If the widget is a toplevel (derived from GtkWindow), it will be removed from the list of toplevels, and the reference GTK+ holds to it will be removed. Removing a widget from its container or the list of toplevels results in the widget being finalized, unless you've added additional references to the widget with g_object_ref().

In most cases, only toplevel widgets (windows) require explicit destruction, because when you destroy a toplevel its children will be destroyed as well.

widget : a GtkWidget

gtk_widget_destroyed ()

void        gtk_widget_destroyed            (GtkWidget *widget,
                                             GtkWidget **widget_pointer);

This function sets *widget_pointer to NULL if widget_pointer != NULL. It's intended to be used as a callback connected to the "destroy" signal of a widget. You connect gtk_widget_destroyed() as a signal handler, and pass the address of your widget variable as user data. Then when the widget is destroyed, the variable will be set to NULL. Useful for example to avoid multiple copies of the same dialog.

widget : a GtkWidget
widget_pointer : address of a variable that contains widget

gtk_widget_set ()

void        gtk_widget_set                  (GtkWidget *widget,
                                             const gchar *first_property_name,
                                             ...);

Warning

gtk_widget_set is deprecated and should not be used in newly-written code.

Like g_object_set() - there's no reason to use this instead of g_object_set().

widget : a GtkWidget
first_property_name : name of first property to set
... : value of first property, followed by more properties, NULL-terminated

gtk_widget_unparent ()

void        gtk_widget_unparent             (GtkWidget *widget);

This function is only for use in widget implementations. Should be called by implementations of the remove method on GtkContainer, to dissociate a child from the container.

widget : a GtkWidget

gtk_widget_show ()

void        gtk_widget_show                 (GtkWidget *widget);

Flags a widget to be displayed. Any widget that isn't shown will not appear on the screen. If you want to show all the widgets in a container, it's easier to call gtk_widget_show_all() on the container, instead of individually showing the widgets.

Remember that you have to show the containers containing a widget, in addition to the widget itself, before it will appear onscreen.

When a toplevel container is shown, it is immediately realized and mapped; other shown widgets are realized and mapped when their toplevel container is realized and mapped.

widget : a GtkWidget

gtk_widget_show_now ()

void        gtk_widget_show_now             (GtkWidget *widget);

Shows a widget. If the widget is an unmapped toplevel widget (i.e. a GtkWindow that has not yet been shown), enter the main loop and wait for the window to actually be mapped. Be careful; because the main loop is running, anything can happen during this function.

widget : a GtkWidget

gtk_widget_hide ()

void        gtk_widget_hide                 (GtkWidget *widget);

Reverses the effects of gtk_widget_show(), causing the widget to be hidden (invisible to the user).

widget : a GtkWidget

gtk_widget_show_all ()

void        gtk_widget_show_all             (GtkWidget *widget);

Recursively shows a widget, and any child widgets (if the widget is a container).

widget : a GtkWidget

gtk_widget_hide_all ()

void