* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GTK+ Team. See the ChangeLog
* files for a list of changes. These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
+#if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
#ifndef __GTK_WIDGET_H__
#define __GTK_WIDGET_H__
#include <gtk/gtkadjustment.h>
#include <gtk/gtkstyle.h>
#include <gtk/gtksettings.h>
-#include <atk/atkobject.h>
+#include <atk/atk.h>
G_BEGIN_DECLS
typedef struct _GtkWidgetAuxInfo GtkWidgetAuxInfo;
typedef struct _GtkWidgetShapeInfo GtkWidgetShapeInfo;
typedef struct _GtkClipboard GtkClipboard;
+typedef struct _GtkTooltip GtkTooltip;
+typedef struct _GtkWindow GtkWindow;
typedef void (*GtkCallback) (GtkWidget *widget,
gpointer data);
* state and saved_state go. we therefore don't waste any new
* space on this.
*/
- guint16 private_flags;
+ guint16 GSEAL (private_flags);
/* The state of the widget. There are actually only
* 5 widget states (defined in "gtkenums.h").
*/
- guint8 state;
+ guint8 GSEAL (state);
/* The saved state of the widget. When a widget's state
* is changed to GTK_STATE_INSENSITIVE via
* the old state is kept around in this field. The state
* will be restored once the widget gets sensitive again.
*/
- guint8 saved_state;
+ guint8 GSEAL (saved_state);
/* The widget's name. If the widget does not have a name
* (the name is NULL), then its name (as returned by
* Among other things, the widget name is used to determine
* the style to use for a widget.
*/
- gchar *name;
+ gchar *GSEAL (name);
/*< public >*/
* along with graphics contexts used to draw with and
* the font to use for text.
*/
- GtkStyle *style;
+ GtkStyle *GSEAL (style);
/* The widget's desired size.
*/
- GtkRequisition requisition;
+ GtkRequisition GSEAL (requisition);
/* The widget's allocated size.
*/
- GtkAllocation allocation;
+ GtkAllocation GSEAL (allocation);
/* 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;
+ GdkWindow *GSEAL (window);
/* The widget's parent.
*/
- GtkWidget *parent;
+ GtkWidget *GSEAL (parent);
};
struct _GtkWidgetClass
void (* composited_changed) (GtkWidget *widget);
+ gboolean (* query_tooltip) (GtkWidget *widget,
+ gint x,
+ gint y,
+ gboolean keyboard_tooltip,
+ GtkTooltip *tooltip);
+ /* Signals without a C default handler class slot:
+ * gboolean (*damage_event) (GtkWidget *widget,
+ * GdkEventExpose *event);
+ */
+
/* Padding for future expansion */
- void (*_gtk_reserved4) (void);
void (*_gtk_reserved5) (void);
void (*_gtk_reserved6) (void);
void (*_gtk_reserved7) (void);
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);
#ifndef GTK_DISABLE_DEPRECATED
+GtkWidget* gtk_widget_ref (GtkWidget *widget);
+void gtk_widget_unref (GtkWidget *widget);
void gtk_widget_set (GtkWidget *widget,
const gchar *first_property_name,
...) G_GNUC_NULL_TERMINATED;
void gtk_widget_queue_resize_no_redraw (GtkWidget *widget);
#ifndef GTK_DISABLE_DEPRECATED
void gtk_widget_draw (GtkWidget *widget,
- GdkRectangle *area);
+ const GdkRectangle *area);
#endif /* GTK_DISABLE_DEPRECATED */
void gtk_widget_size_request (GtkWidget *widget,
GtkRequisition *requisition);
void gtk_widget_reparent (GtkWidget *widget,
GtkWidget *new_parent);
gboolean gtk_widget_intersect (GtkWidget *widget,
- GdkRectangle *area,
+ const GdkRectangle *area,
GdkRectangle *intersection);
GdkRegion *gtk_widget_region_intersect (GtkWidget *widget,
- GdkRegion *region);
+ const 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);
+void gtk_widget_set_can_focus (GtkWidget *widget,
+ gboolean can_focus);
+gboolean gtk_widget_get_can_focus (GtkWidget *widget);
+gboolean gtk_widget_has_focus (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_grab_focus (GtkWidget *widget);
+
+void gtk_widget_set_can_default (GtkWidget *widget,
+ gboolean can_default);
+gboolean gtk_widget_get_can_default (GtkWidget *widget);
+gboolean gtk_widget_has_default (GtkWidget *widget);
+void gtk_widget_grab_default (GtkWidget *widget);
+
+void gtk_widget_set_receives_default (GtkWidget *widget,
+ gboolean receives_default);
+gboolean gtk_widget_get_receives_default (GtkWidget *widget);
+
+gboolean gtk_widget_has_grab (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);
+GtkStateType gtk_widget_get_state (GtkWidget *widget);
+
void gtk_widget_set_sensitive (GtkWidget *widget,
gboolean sensitive);
+gboolean gtk_widget_get_sensitive (GtkWidget *widget);
+gboolean gtk_widget_is_sensitive (GtkWidget *widget);
+
+void gtk_widget_set_visible (GtkWidget *widget,
+ gboolean visible);
+gboolean gtk_widget_get_visible (GtkWidget *widget);
+
+void gtk_widget_set_has_window (GtkWidget *widget,
+ gboolean has_window);
+gboolean gtk_widget_get_has_window (GtkWidget *widget);
+
+gboolean gtk_widget_is_toplevel (GtkWidget *widget);
+gboolean gtk_widget_is_drawable (GtkWidget *widget);
+
void gtk_widget_set_app_paintable (GtkWidget *widget,
gboolean app_paintable);
+gboolean gtk_widget_get_app_paintable (GtkWidget *widget);
+
void gtk_widget_set_double_buffered (GtkWidget *widget,
gboolean double_buffered);
+gboolean gtk_widget_get_double_buffered (GtkWidget *widget);
+
void gtk_widget_set_redraw_on_allocate (GtkWidget *widget,
gboolean redraw_on_allocate);
+
void gtk_widget_set_parent (GtkWidget *widget,
GtkWidget *parent);
+GtkWidget * gtk_widget_get_parent (GtkWidget *widget);
+
void gtk_widget_set_parent_window (GtkWidget *widget,
GdkWindow *parent_window);
+GdkWindow * gtk_widget_get_parent_window (GtkWidget *widget);
+
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);
+void gtk_widget_set_window (GtkWidget *widget,
+ GdkWindow *window);
+GdkWindow * gtk_widget_get_window (GtkWidget *widget);
+
+void gtk_widget_get_allocation (GtkWidget *widget,
+ GtkAllocation *allocation);
+void gtk_widget_set_allocation (GtkWidget *widget,
+ const GtkAllocation *allocation);
gboolean gtk_widget_child_focus (GtkWidget *widget,
GtkDirectionType direction);
GtkSettings* gtk_widget_get_settings (GtkWidget *widget);
GtkClipboard *gtk_widget_get_clipboard (GtkWidget *widget,
GdkAtom selection);
+GdkPixmap * gtk_widget_get_snapshot (GtkWidget *widget,
+ GdkRectangle *clip_rect);
#ifndef GTK_DISABLE_DEPRECATED
#define gtk_widget_set_visual(widget,visual) ((void) 0)
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);
void gtk_widget_remove_mnemonic_label (GtkWidget *widget,
GtkWidget *label);
+void gtk_widget_set_tooltip_window (GtkWidget *widget,
+ GtkWindow *custom_window);
+GtkWindow *gtk_widget_get_tooltip_window (GtkWidget *widget);
+void gtk_widget_trigger_tooltip_query (GtkWidget *widget);
+void gtk_widget_set_tooltip_text (GtkWidget *widget,
+ const gchar *text);
+gchar * gtk_widget_get_tooltip_text (GtkWidget *widget);
+void gtk_widget_set_tooltip_markup (GtkWidget *widget,
+ const gchar *markup);
+gchar * gtk_widget_get_tooltip_markup (GtkWidget *widget);
+void gtk_widget_set_has_tooltip (GtkWidget *widget,
+ gboolean has_tooltip);
+gboolean gtk_widget_get_has_tooltip (GtkWidget *widget);
+
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
+# define gtk_widget_ref g_object_ref
+# define gtk_widget_unref g_object_unref
#endif /* GTK_TRACE_OBJECTS && __GNUC__ */
void _gtk_widget_grab_notify (GtkWidget *widget,
GdkScreen *previous_screen);
void _gtk_widget_propagate_composited_changed (GtkWidget *widget);
+void _gtk_widget_set_pointer_window (GtkWidget *widget,
+ GdkWindow *pointer_window);
+GdkWindow *_gtk_widget_get_pointer_window (GtkWidget *widget);
+gboolean _gtk_widget_is_pointer_widget (GtkWidget *widget);
+void _gtk_widget_synthesize_crossing (GtkWidget *from,
+ GtkWidget *to,
+ GdkCrossingMode mode);
+
GdkColormap* _gtk_widget_peek_colormap (void);
+void _gtk_widget_buildable_finish_accelerator (GtkWidget *widget,
+ GtkWidget *toplevel,
+ gpointer user_data);
+
G_END_DECLS
#endif /* __GTK_WIDGET_H__ */