#include <gobject/gobjectnotifyqueue.c>
#include "gdk/gdkkeysyms.h"
#include "gtkaccessible.h"
-#include "gtktooltips.h"
#include "gtktooltip.h"
#include "gtkinvisible.h"
#include "gtkbuildable.h"
G_TYPE_NONE,
1,
GTK_TYPE_DIRECTION_TYPE);
+ /**
+ * GtkWidget::event:
+ * @widget: the object which received the signal.
+ * @event: the #GdkEvent which triggered this signal
+ *
+ * The GTK+ main loop will emit three signals for each GDK event delivered
+ * to a widget: one generic ::event signal, another, more specific,
+ * signal that matches the type of event delivered (e.g.
+ * #GtkWidget::key-press-event) and finally a generic
+ * #GtkWidget::event-after signal.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event
+ * and to cancel the emission of the second specific ::event signal.
+ * %FALSE to propagate the event further and to allow the emission of
+ * the second signal. The ::event-after signal is emitted regardless of
+ * the return value.
+ */
widget_signals[EVENT] =
g_signal_new (I_("event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::event-after:
+ * @widget: the object which received the signal.
+ * @event: the #GdkEvent which triggered this signal
+ *
+ * After the emission of the #GtkWidget::event signal and (optionally)
+ * the second more specific signal, ::event-after will be emitted
+ * regardless of the previous two signals handlers return values.
+ *
+ */
widget_signals[EVENT_AFTER] =
g_signal_new (I_("event_after"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_VOID__BOXED,
G_TYPE_NONE, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::button-press-event:
+ * @widget: the object which received the signal.
+ * @event: the #GdkEventButton which triggered this signal
+ *
+ * The ::button-press-event signal will be emitted when a button
+ * (typically from a mouse) is pressed.
+ *
+ * To receive this signal, the #GdkWindow associated to the
+ * widget needs to enable the #GDK_BUTTON_PRESS_MASK mask.
+ *
+ * This signal will be sent to the grab widget if there is one.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[BUTTON_PRESS_EVENT] =
g_signal_new (I_("button_press_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::button-release-event:
+ * @widget: the object which received the signal.
+ * @event: the #GdkEventButton which triggered this signal
+ *
+ * The ::button-release-event signal will be emitted when a button
+ * (typically from a mouse) is released.
+ *
+ * To receive this signal, the #GdkWindow associated to the
+ * widget needs to enable the #GDK_BUTTON_RELEASE_MASK mask.
+ *
+ * This signal will be sent to the grab widget if there is one.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[BUTTON_RELEASE_EVENT] =
g_signal_new (I_("button_release_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::scroll-event:
+ * @widget: the object which received the signal.
+ * @event: the #GdkEventScroll which triggered this signal
+ *
+ * The ::scroll-event signal is emitted when a button in the 4 to 7
+ * range is pressed. Wheel mice are usually configured to generate
+ * button press events for buttons 4 and 5 when the wheel is turned.
+ *
+ * To receive this signal, the #GdkWindow associated to the widget needs
+ * to enable the #GDK_BUTTON_PRESS_MASK mask.
+ *
+ * This signal will be sent to the grab widget if there is one.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[SCROLL_EVENT] =
g_signal_new (I_("scroll_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+ /**
+ * GtkWidget::motion-notify-event:
+ * @widget: the object which received the signal.
+ * @event: the #GdkEventMotion which triggered this signal
+ *
+ * The ::motion-notify-event signal is emitted when the pointer moves
+ * over the widget's #GdkWindow.
+ *
+ * To receive this signal, the #GdkWindow associated to the widget
+ * needs to enable the #GDK_POINTER_MOTION_MASK mask.
+ *
+ * This signal will be sent to the grab widget if there is one.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[MOTION_NOTIFY_EVENT] =
g_signal_new (I_("motion_notify_event"),
G_TYPE_FROM_CLASS (gobject_class),
* from their window before they destroy it, so no widget owns the
* window at destroy time.
*
+ * To receive this signal, the #GdkWindow associated to the widget needs
+ * to enable the #GDK_STRUCTURE_MASK mask. GDK will enable this mask
+ * automatically for all new windows.
+ *
* Returns: %TRUE to stop other handlers from being invoked for the event.
* %FALSE to propagate the event further.
*/
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::expose-event:
+ * @widget: the object which received the signal.
+ * @event: the #GdkEventExpose which triggered this signal
+ *
+ * The ::expose-event signal is emitted when an area of a previously
+ * obscured #GdkWindow is made visible and needs to be redrawn.
+ * #GTK_NO_WINDOW widgets will get a synthesized event from their parent
+ * widget.
+ *
+ * To receive this signal, the #GdkWindow associated to the widget needs
+ * to enable the #GDK_EXPOSURE_MASK mask.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[EXPOSE_EVENT] =
g_signal_new (I_("expose_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::key-press-event:
+ * @widget: the object which received the signal
+ * @event: the #GdkEventKey which triggered this signal
+ *
+ * The ::key-press-event signal is emitted when a key is pressed.
+ *
+ * To receive this signal, the #GdkWindow associated to the widget needs
+ * to enable the #GDK_KEY_PRESS_MASK mask.
+ *
+ * This signal will be sent to the grab widget if there is one.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[KEY_PRESS_EVENT] =
g_signal_new (I_("key_press_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::key-release-event:
+ * @widget: the object which received the signal
+ * @event: the #GdkEventKey which triggered this signal
+ *
+ * The ::key-release-event signal is emitted when a key is pressed.
+ *
+ * To receive this signal, the #GdkWindow associated to the widget needs
+ * to enable the #GDK_KEY_RELEASE_MASK mask.
+ *
+ * This signal will be sent to the grab widget if there is one.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[KEY_RELEASE_EVENT] =
g_signal_new (I_("key_release_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::enter-notify-event:
+ * @widget: the object which received the signal
+ * @event: the #GdkEventCrossing which triggered this signal
+ *
+ * The ::enter-notify-event will be emitted when the pointer enters
+ * the @widget's window.
+ *
+ * To receive this signal, the #GdkWindow associated to the widget needs
+ * to enable the #GDK_ENTER_NOTIFY_MASK mask.
+ *
+ * This signal will be sent to the grab widget if there is one.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[ENTER_NOTIFY_EVENT] =
g_signal_new (I_("enter_notify_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::leave-notify-event:
+ * @widget: the object which received the signal
+ * @event: the #GdkEventCrossing which triggered this signal
+ *
+ * The ::leave-notify-event will be emitted when the pointer leaves
+ * the @widget's window.
+ *
+ * To receive this signal, the #GdkWindow associated to the widget needs
+ * to enable the #GDK_LEAVE_NOTIFY_MASK mask.
+ *
+ * This signal will be sent to the grab widget if there is one.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[LEAVE_NOTIFY_EVENT] =
g_signal_new (I_("leave_notify_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::configure-event
+ * @widget: the object which received the signal
+ * @event: the #GdkEventConfigure which triggered this signal
+ *
+ * The ::configure-event signal will be emitted when the size, position or
+ * stacking of the @widget's window has changed.
+ *
+ * To receive this signal, the #GdkWindow associated to the widget needs
+ * to enable the #GDK_STRUCTURE_MASK mask. GDK will enable this mask
+ * automatically for all new windows.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[CONFIGURE_EVENT] =
g_signal_new (I_("configure_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::focus-in-event
+ * @widget: the object which received the signal
+ * @event: the #GdkEventFocus which triggered this signal
+ *
+ * The ::focus-in-event signal will be emitted when the keyboard focus
+ * enters the @widget's window.
+ *
+ * To receive this signal, the #GdkWindow associated to the widget needs
+ * to enable the #GDK_FOCUS_CHANGE_MASK mask.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[FOCUS_IN_EVENT] =
g_signal_new (I_("focus_in_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::focus-out-event
+ * @widget: the object which received the signal
+ * @event: the #GdkEventFocus which triggered this signal
+ *
+ * The ::focus-out-event signal will be emitted when the keyboard focus
+ * leaves the @widget's window.
+ *
+ * To receive this signal, the #GdkWindow associated to the widget needs
+ * to enable the #GDK_FOCUS_CHANGE_MASK mask.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[FOCUS_OUT_EVENT] =
g_signal_new (I_("focus_out_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::map-event
+ * @widget: the object which received the signal
+ * @event: the #GdkEventAny which triggered this signal
+ *
+ * The ::map-event signal will be emitted when the @widget's window is
+ * mapped. A window is mapped when it becomes visible on the screen.
+ *
+ * To receive this signal, the #GdkWindow associated to the widget needs
+ * to enable the #GDK_STRUCTURE_MASK mask. GDK will enable this mask
+ * automatically for all new windows.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[MAP_EVENT] =
g_signal_new (I_("map_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::unmap-event
+ * @widget: the object which received the signal
+ * @event: the #GdkEventAny which triggered this signal
+ *
+ * The ::unmap-event signal will be emitted when the @widget's window is
+ * unmapped. A window is unmapped when it becomes invisible on the screen.
+ *
+ * To receive this signal, the #GdkWindow associated to the widget needs
+ * to enable the #GDK_STRUCTURE_MASK mask. GDK will enable this mask
+ * automatically for all new windows.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[UNMAP_EVENT] =
g_signal_new (I_("unmap_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::property-notify-event
+ * @widget: the object which received the signal
+ * @event: the #GdkEventProperty which triggered this signal
+ *
+ * The ::property-notify-event signal will be emitted when a property on
+ * the @widget's window has been changed or deleted.
+ *
+ * To receive this signal, the #GdkWindow associated to the widget needs
+ * to enable the #GDK_PROPERTY_CHANGE_MASK mask.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[PROPERTY_NOTIFY_EVENT] =
g_signal_new (I_("property_notify_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::selection-clear-event
+ * @widget: the object which received the signal
+ * @event: the #GdkEventSelection which triggered this signal
+ *
+ * The ::selection-clear-event signal will be emitted when the
+ * the @widget's window has lost ownership of a selection.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[SELECTION_CLEAR_EVENT] =
g_signal_new (I_("selection_clear_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::selection-request-event
+ * @widget: the object which received the signal
+ * @event: the #GdkEventSelection which triggered this signal
+ *
+ * The ::selection-request-event signal will be emitted when
+ * another client requests ownership of the selection owned by
+ * the @widget's window.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[SELECTION_REQUEST_EVENT] =
g_signal_new (I_("selection_request_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
widget_signals[SELECTION_NOTIFY_EVENT] =
g_signal_new (I_("selection_notify_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
widget_signals[SELECTION_RECEIVED] =
g_signal_new (I_("selection_received"),
G_TYPE_FROM_CLASS (gobject_class),
G_TYPE_NONE, 2,
GTK_TYPE_SELECTION_DATA | G_SIGNAL_TYPE_STATIC_SCOPE,
G_TYPE_UINT);
+
widget_signals[SELECTION_GET] =
g_signal_new (I_("selection_get"),
G_TYPE_FROM_CLASS (gobject_class),
GTK_TYPE_SELECTION_DATA | G_SIGNAL_TYPE_STATIC_SCOPE,
G_TYPE_UINT,
G_TYPE_UINT);
+
+ /**
+ * GtkWidget::proximity-in-event
+ * @widget: the object which received the signal
+ * @event: the #GdkEventProximity which triggered this signal
+ *
+ * To receive this signal the #GdkWindow associated to the widget needs
+ * to enable the #GDK_PROXIMITY_IN_MASK mask.
+ *
+ * This signal will be sent to the grab widget if there is one.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[PROXIMITY_IN_EVENT] =
g_signal_new (I_("proximity_in_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::proximity-out-event
+ * @widget: the object which received the signal
+ * @event: the #GdkEventProximity which triggered this signal
+ *
+ * To receive this signal the #GdkWindow associated to the widget needs
+ * to enable the #GDK_PROXIMITY_OUT_MASK mask.
+ *
+ * This signal will be sent to the grab widget if there is one.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[PROXIMITY_OUT_EVENT] =
g_signal_new (I_("proximity_out_event"),
G_TYPE_FROM_CLASS (gobject_class),
G_TYPE_UINT,
G_TYPE_UINT);
-/**
- * GtkWidget::drag-data-received:
- * @widget: the object which received the signal
- * @drag_context: the drag context
- * @x: where the drop happened
- * @y: where the drop happened
- * @data: the received data
- * @info: the info that has been registered with the target in the
- * #GtkTargetList
- * @time: the timestamp at which the data was received
- *
- * The ::drag-data-received signal is emitted on the drop site when the dragged
- * data has been received. If the data was received in order to determine
- * whether the drop will be accepted, the handler is expected to call
- * gdk_drag_status() and <emphasis>not</emphasis> finish the drag. If the
- * data was received in response to a #GtkWidget::drag-drop signal (and this
- * is the last target to be received), the handler for this signal is expected
- * to process the received data and then call gtk_drag_finish(), setting the
- * @success parameter depending on whether the data was processed successfully.
- *
- * The handler may inspect and modify @drag_context->action before calling
- * gtk_drag_finish(), e.g. to implement %GDK_ACTION_ASK as shown in the
- * following example:
- * <informalexample><programlisting>
- * void
- * drag_data_received (GtkWidget *widget,
- * GdkDragContext *drag_context,
- * gint x,
- * gint y,
- * GtkSelectionData *data,
- * guint info,
- * guint time)
- * {
- * if ((data->length >= 0) && (data->format == 8))
- * {
- * if (drag_context->action == GDK_ACTION_ASK)
- * {
- * GtkWidget *dialog;
- * gint response;
- *
- * dialog = gtk_message_dialog_new (NULL,
- * GTK_DIALOG_MODAL |
- * GTK_DIALOG_DESTROY_WITH_PARENT,
- * GTK_MESSAGE_INFO,
- * GTK_BUTTONS_YES_NO,
- * "Move the data ?\n");
- * response = gtk_dialog_run (GTK_DIALOG (dialog));
- * gtk_widget_destroy (dialog);
- *
- * if (response == GTK_RESPONSE_YES)
- * drag_context->action = GDK_ACTION_MOVE;
- * else
- * drag_context->action = GDK_ACTION_COPY;
- * }
- *
- * gtk_drag_finish (drag_context, TRUE, FALSE, time);
- * return;
- * }
- *
- * gtk_drag_finish (drag_context, FALSE, FALSE, time);
- * }
- * </programlisting></informalexample>
- */
+ /**
+ * GtkWidget::drag-data-received:
+ * @widget: the object which received the signal
+ * @drag_context: the drag context
+ * @x: where the drop happened
+ * @y: where the drop happened
+ * @data: the received data
+ * @info: the info that has been registered with the target in the
+ * #GtkTargetList
+ * @time: the timestamp at which the data was received
+ *
+ * The ::drag-data-received signal is emitted on the drop site when the
+ * dragged data has been received. If the data was received in order to
+ * determine whether the drop will be accepted, the handler is expected
+ * to call gdk_drag_status() and <emphasis>not</emphasis> finish the drag.
+ * If the data was received in response to a #GtkWidget::drag-drop signal
+ * (and this is the last target to be received), the handler for this
+ * signal is expected to process the received data and then call
+ * gtk_drag_finish(), setting the @success parameter depending on whether
+ * the data was processed successfully.
+ *
+ * The handler may inspect and modify @drag_context->action before calling
+ * gtk_drag_finish(), e.g. to implement %GDK_ACTION_ASK as shown in the
+ * following example:
+ * <informalexample><programlisting>
+ * void
+ * drag_data_received (GtkWidget *widget,
+ * GdkDragContext *drag_context,
+ * gint x,
+ * gint y,
+ * GtkSelectionData *data,
+ * guint info,
+ * guint time)
+ * {
+ * if ((data->length >= 0) && (data->format == 8))
+ * {
+ * if (drag_context->action == GDK_ACTION_ASK)
+ * {
+ * GtkWidget *dialog;
+ * gint response;
+ *
+ * dialog = gtk_message_dialog_new (NULL,
+ * GTK_DIALOG_MODAL |
+ * GTK_DIALOG_DESTROY_WITH_PARENT,
+ * GTK_MESSAGE_INFO,
+ * GTK_BUTTONS_YES_NO,
+ * "Move the data ?\n");
+ * response = gtk_dialog_run (GTK_DIALOG (dialog));
+ * gtk_widget_destroy (dialog);
+ *
+ * if (response == GTK_RESPONSE_YES)
+ * drag_context->action = GDK_ACTION_MOVE;
+ * else
+ * drag_context->action = GDK_ACTION_COPY;
+ * }
+ *
+ * gtk_drag_finish (drag_context, TRUE, FALSE, time);
+ * return;
+ * }
+ *
+ * gtk_drag_finish (drag_context, FALSE, FALSE, time);
+ * }
+ * </programlisting></informalexample>
+ */
widget_signals[DRAG_DATA_RECEIVED] =
g_signal_new (I_("drag_data_received"),
G_TYPE_FROM_CLASS (gobject_class),
GTK_TYPE_SELECTION_DATA | G_SIGNAL_TYPE_STATIC_SCOPE,
G_TYPE_UINT,
G_TYPE_UINT);
+
+ /**
+ * GtkWidget::visibility-notify-event:
+ * @widget: the object which received the signal
+ * @event: the #GdkEventVisibility which triggered this signal
+ *
+ * The ::visibility-notify-event will be emitted when the @widget's window
+ * is obscured or unobscured.
+ *
+ * To receive this signal the #GdkWindow associated to the widget needs
+ * to enable the #GDK_VISIBILITY_NOTIFY_MASK mask.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[VISIBILITY_NOTIFY_EVENT] =
g_signal_new (I_("visibility_notify_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::client-event:
+ * @widget: the object which received the signal
+ * @event: the #GdkEventClient which triggered this signal
+ *
+ * The ::client-event will be emitted when the @widget's window
+ * receives a message (via a ClientMessage event) from another
+ * application.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for
+ * the event. %FALSE to propagate the event further.
+ */
widget_signals[CLIENT_EVENT] =
g_signal_new (I_("client_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::no-expose-event:
+ * @widget: the object which received the signal
+ * @event: the #GdkEventNoExpose which triggered this signal
+ *
+ * The ::no-expose-event will be emitted when the @widget's window is
+ * drawn as a copy of another #GdkDrawable (with gdk_draw_drawable() or
+ * gdk_window_copy_area()) which was completely unobscured. If the source
+ * window was partially obscured #GdkEventExpose events will be generated
+ * for those areas.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the event.
+ * %FALSE to propagate the event further.
+ */
widget_signals[NO_EXPOSE_EVENT] =
g_signal_new (I_("no_expose_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+ /**
+ * GtkWidget::window-state-event:
+ * @widget: the object which received the signal
+ * @event: the #GdkEventWindowState which triggered this signal
+ *
+ * The ::window-state-event will be emitted when the state of the
+ * toplevel window associated to the @widget changes.
+ *
+ * To receive this signal the #GdkWindow associated to the widget
+ * needs to enable the #GDK_STRUCTURE_MASK mask. GDK will enable
+ * this mask automatically for all new windows.
+ *
+ * Returns: %TRUE to stop other handlers from being invoked for the
+ * event. %FALSE to propagate the event further.
+ */
widget_signals[WINDOW_STATE_EVENT] =
g_signal_new (I_("window_state_event"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_BOOLEAN__BOXED,
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
+
/**
* GtkWidget::grab-broken-event:
* @widget: the object which received the signal
* (i.e. it or one of its ancestors is unmapped), or if the same
* application grabs the pointer or keyboard again.
*
- * Returns: %TRUE to stop other handlers from being invoked for the event.
- * %FALSE to propagate the event further.
+ * Returns: %TRUE to stop other handlers from being invoked for
+ * the event. %FALSE to propagate the event further.
*
* Since: 2.8
*/
/**
* GtkWidget::query-tooltip:
* @widget: the object which received the signal
- * @x: the x coordinate of the cursor position where the request has been
- * emitted, relative to @widget->window
- * @y: the y coordinate of the cursor position where the request has been
- * emitted, relative to @widget->window
+ * @x: the x coordinate of the cursor position where the request has
+ * been emitted, relative to @widget->window
+ * @y: the y coordinate of the cursor position where the request has
+ * been emitted, relative to @widget->window
* @keyboard_mode: %TRUE if the tooltip was trigged using the keyboard
* @tooltip: a #GtkTooltip
*
G_TYPE_INT,
G_TYPE_BOOLEAN,
GTK_TYPE_TOOLTIP);
-/**
- * GtkWidget::popup-menu
- * @widget: the object which received the signal
- * @returns: %TRUE if a menu was activated
- *
- * This signal gets emitted whenever a widget should pop up a context menu.
- * This usually happens through the standard key binding mechanism; by
- * pressing a certain key while a widget is focused, the user can cause the
- * widget to pop up a menu. For example, the #GtkEntry widget creates a
- * menu with clipboard commands. See <xref linkend="checklist-popup-menu"/>
- * for an example of how to use this signal.
- */
+
+ /**
+ * GtkWidget::popup-menu
+ * @widget: the object which received the signal
+ *
+ * This signal gets emitted whenever a widget should pop up a context
+ * menu. This usually happens through the standard key binding mechanism;
+ * by pressing a certain key while a widget is focused, the user can cause
+ * the widget to pop up a menu. For example, the #GtkEntry widget creates
+ * a menu with clipboard commands. See <xref linkend="checklist-popup-menu"/>
+ * for an example of how to use this signal.
+ *
+ * Returns: %TRUE if a menu was activated
+ */
widget_signals[POPUP_MENU] =
g_signal_new (I_("popup_menu"),
G_TYPE_FROM_CLASS (gobject_class),
NULL, NULL,
_gtk_marshal_NONE__NONE,
G_TYPE_NONE, 0);
-/**
- * GtkWidget::screen-changed:
- * @widget: the object on which the signal is emitted
- * @previous_screen: the previous screen, or %NULL if the
- * widget was not associated with a screen before
- *
- * The ::screen-changed signal gets emitted when the
- * screen of a widget has changed.
- */
+
+ /**
+ * GtkWidget::screen-changed:
+ * @widget: the object on which the signal is emitted
+ * @previous_screen: the previous screen, or %NULL if the
+ * widget was not associated with a screen before
+ *
+ * The ::screen-changed signal gets emitted when the
+ * screen of a widget has changed.
+ */
widget_signals[SCREEN_CHANGED] =
g_signal_new (I_("screen_changed"),
G_TYPE_FROM_CLASS (gobject_class),
_gtk_marshal_VOID__OBJECT,
G_TYPE_NONE, 1,
GDK_TYPE_SCREEN);
-/**
- * GtkWidget::can-activate-accel:
- * @widget: the object which received the signal
- * @signal_id: the ID of a signal installed on @widget
- *
- * Determines whether an accelerator that activates the signal
- * identified by @signal_id can currently be activated.
- * This signal is present to allow applications and derived
- * widgets to override the default #GtkWidget handling
- * for determining whether an accelerator can be activated.
- *
- * Returns: %TRUE if the signal can be activated.
- */
+ /**
+ * GtkWidget::can-activate-accel:
+ * @widget: the object which received the signal
+ * @signal_id: the ID of a signal installed on @widget
+ *
+ * Determines whether an accelerator that activates the signal
+ * identified by @signal_id can currently be activated.
+ * This signal is present to allow applications and derived
+ * widgets to override the default #GtkWidget handling
+ * for determining whether an accelerator can be activated.
+ *
+ * Returns: %TRUE if the signal can be activated.
+ */
widget_signals[CAN_ACTIVATE_ACCEL] =
g_signal_new (I_("can_activate_accel"),
G_TYPE_FROM_CLASS (gobject_class),
0.0, 1.0, 0.04,
GTK_PARAM_READABLE));
-/**
- * GtkWidget:draw-border:
- *
- * The "draw-border" style property defines the size of areas outside
- * the widget's allocation to draw.
- *
- * Since: 2.8
- */
+ /**
+ * GtkWidget:draw-border:
+ *
+ * The "draw-border" style property defines the size of areas outside
+ * the widget's allocation to draw.
+ *
+ * Since: 2.8
+ */
gtk_widget_class_install_style_property (klass,
g_param_spec_boxed ("draw-border",
P_("Draw Border"),
GTK_TYPE_BORDER,
GTK_PARAM_READABLE));
-/**
- * GtkWidget:link-color:
- *
- * The "link-color" style property defines the color of unvisited links.
- *
- * Since: 2.10
- */
+ /**
+ * GtkWidget:link-color:
+ *
+ * The "link-color" style property defines the color of unvisited links.
+ *
+ * Since: 2.10
+ */
gtk_widget_class_install_style_property (klass,
g_param_spec_boxed ("link-color",
P_("Unvisited Link Color"),
GDK_TYPE_COLOR,
GTK_PARAM_READABLE));
-/**
- * GtkWidget:visited-link-color:
- *
- * The "visited-link-color" style property defines the color of visited links.
- *
- * Since: 2.10
- */
+ /**
+ * GtkWidget:visited-link-color:
+ *
+ * The "visited-link-color" style property defines the color of visited links.
+ *
+ * Since: 2.10
+ */
gtk_widget_class_install_style_property (klass,
g_param_spec_boxed ("visited-link-color",
P_("Visited Link Color"),
GDK_TYPE_COLOR,
GTK_PARAM_READABLE));
-/**
- * GtkWidget:wide-separators:
- *
- * The "wide-separators" style property defines whether separators have
- * configurable width and should be drawn using a box instead of a line.
- *
- * Since: 2.10
- */
+ /**
+ * GtkWidget:wide-separators:
+ *
+ * The "wide-separators" style property defines whether separators have
+ * configurable width and should be drawn using a box instead of a line.
+ *
+ * Since: 2.10
+ */
gtk_widget_class_install_style_property (klass,
g_param_spec_boolean ("wide-separators",
P_("Wide Separators"),
FALSE,
GTK_PARAM_READABLE));
-/**
- * GtkWidget:separator-width:
- *
- * The "separator-width" style property defines the width of separators.
- * This property only takes effect if #GtkWidget:wide-separators is %TRUE.
- *
- * Since: 2.10
- */
+ /**
+ * GtkWidget:separator-width:
+ *
+ * The "separator-width" style property defines the width of separators.
+ * This property only takes effect if #GtkWidget:wide-separators is %TRUE.
+ *
+ * Since: 2.10
+ */
gtk_widget_class_install_style_property (klass,
g_param_spec_int ("separator-width",
P_("Separator Width"),
0, G_MAXINT, 0,
GTK_PARAM_READABLE));
-/**
- * GtkWidget:separator-height:
- *
- * The "separator-height" style property defines the height of separators.
- * This property only takes effect if #GtkWidget:wide-separators is %TRUE.
- *
- * Since: 2.10
- */
+ /**
+ * GtkWidget:separator-height:
+ *
+ * The "separator-height" style property defines the height of separators.
+ * This property only takes effect if #GtkWidget:wide-separators is %TRUE.
+ *
+ * Since: 2.10
+ */
gtk_widget_class_install_style_property (klass,
g_param_spec_int ("separator-height",
P_("Separator Height"),
0, G_MAXINT, 0,
GTK_PARAM_READABLE));
-/**
- * GtkWidget:scroll-arrow-hlength:
- *
- * The "scroll-arrow-hlength" style property defines the length of
- * horizontal scroll arrows.
- *
- * Since: 2.10
- */
+ /**
+ * GtkWidget:scroll-arrow-hlength:
+ *
+ * The "scroll-arrow-hlength" style property defines the length of
+ * horizontal scroll arrows.
+ *
+ * Since: 2.10
+ */
gtk_widget_class_install_style_property (klass,
g_param_spec_int ("scroll-arrow-hlength",
P_("Horizontal Scroll Arrow Length"),
1, G_MAXINT, 16,
GTK_PARAM_READABLE));
-/**
- * GtkWidget:scroll-arrow-vlength:
- *
- * The "scroll-arrow-vlength" style property defines the length of
- * vertical scroll arrows.
- *
- * Since: 2.10
- */
+ /**
+ * GtkWidget:scroll-arrow-vlength:
+ *
+ * The "scroll-arrow-vlength" style property defines the length of
+ * vertical scroll arrows.
+ *
+ * Since: 2.10
+ */
gtk_widget_class_install_style_property (klass,
g_param_spec_int ("scroll-arrow-vlength",
P_("Vertical Scroll Arrow Length"),