Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Implemented Interfaces  |  Known Derived Interfaces  |  Properties  |  Style Properties  |  Signals

GtkWidget

GtkWidget Базовый класс для всех виджетов

Краткое описание

#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_input_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); GtkAction* gtk_widget_get_action (GtkWidget *widget); gboolean gtk_widget_is_composited (GtkWidget *widget); GtkRequisition* gtk_requisition_copy (const GtkRequisition *requisition); void gtk_requisition_free (GtkRequisition *requisition);

Иерархия объектов

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

Известные производные интерфейсы

GtkWidget требует GtkFileChooser и GtkCellEditable.

Реализуемые интерфейсы

GtkWidget реализует AtkImplementorIface.

Свойства

"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

Свойства стиля

"cursor-aspect-ratio" gfloat : Read "cursor-color" GdkColor : Read "draw-border" GtkBorder : Read "focus-line-pattern" gchararray : Read "focus-line-width" gint : Read "focus-padding" gint : Read "interior-focus" gboolean : Read "link-color" GdkColor : Read "scroll-arrow-hlength" gint : Read "scroll-arrow-vlength" gint : Read "secondary-cursor-color" GdkColor : Read "separator-height" gint : Read "separator-width" gint : Read "visited-link-color" GdkColor : Read "wide-separators" gboolean : Read

Сигналы

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

Описание

GtkWidget включает свойства стиля (style properties) это основные свойства объекта которые сохраняются не в объекте, а в стиле объекта связанного с виджетом. Свойства стиля устанавливаются в resource files. Этот механизм используется для конфигурирования таких параметров как например тема расположения стрелок колеи полосы прокручивания, предоставление темы создаёт большую управляемость внешним видом приложения без необходимости писать движок темы на C.

Для установки свойств стиля класса виджета используйте gtk_widget_class_install_style_property(), gtk_widget_class_find_style_property() или gtk_widget_class_list_style_properties() для получения информации о существующих стилях и gtk_widget_style_get_property(), gtk_widget_style_get() или gtk_widget_style_get_valist() для определения значения свойств стиля.

Детали

GtkWidget

typedef struct { /* Стиль для виджета. Стиль содержит * цвета виджета для каждого состояния * вместе с графическим содержимым используемым для * отрисовки и шрифт используемый в тексте. */ GtkStyle *style; /* Желательный размер виджета. */ GtkRequisition requisition; /* Распределённый размер для виджета. */ GtkAllocation allocation; /* Окно виджета или его родительское окно если он * не имеет окна. (Что указывает установленный * флажок GTK_NO_WINDOW). */ GdkWindow *window; /* Родитель виджета. */ GtkWidget *parent; } GtkWidget;

GtkStyle *style;

Стиль для виджета. Стиль содержит цвета используемые для разных состояний виджета, графическое содержимое для отрисовки виджета и шрифт используемый в тексте.

GtkRequisition requisition;

Желательный размер виджета.

GtkAllocation allocation;

Распределённый размер виджета.

GdkWindow *window;

Окно виджета или его родительское окно, если виджет не имеет собственного окна. (Это указывается установкой флажка GTK_NO_WINDOW).

GtkWidget *parent;


GtkWidgetClass

typedef struct { /* Структура объекта класса должна быть первым * элементом в структуре класса виджета для правильной * работы механизма классов. Это позволяет указатель * GtkWidgetClass привести к указателю GtkObjectClass */ GtkObjectClass parent_class; guint activate_signal; guint set_scroll_adjustments_signal; } GtkWidgetClass;

activate_signal сигнал издаётся когда виджет этого класса активизирован, gtk_widget_activate() обрабатывает эмиссию. Реализация данного сигнала опциональна.

set_scroll_adjustment_signal сигнал издаётся когда виджет этого класса добавляется к прокрутке осведомлённого родителя, gtk_widget_set_scroll_adjustments() обрабатывает эмиссию. Реализация этого сигнала опциональна.


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, /* виджету позволено получать значения по умолчанию через gtk_widget_grab_default * и резервировать пространство для отрисовки значения по умолчанию, если возможно. */ GTK_CAN_DEFAULT = 1 << 13, /* виджет в текущий момент действует по умолчанию и должен быть соответственно отображён, * если возможно. */ 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, /* виджет при фокусировании действует по умолчанию и имеет * установку HAS_DEFAULT, даже если другой виджет установлен по умолчанию */ GTK_RECEIVES_DEFAULT = 1 << 20, GTK_DOUBLE_BUFFERED = 1 << 21, GTK_NO_SHOW_ALL = 1 << 22 } GtkWidgetFlags;

Сообщает определённые свойства виджета.

GTK_TOPLEVEL

Виджеты без реальных родителей, например GtkWindows и GtkMenus имеющие этот флажок установленным на протяжении всего времени существования. Виджет верхнего уровня всегда содержит собственный GdkWindow.

GTK_NO_WINDOW

Указывает что виджет не имеет собственного GdkWindow. Видимые действия (например отображение) выполняются на родительском GdkWindow.

GTK_REALIZED

Устанавливается с помощью gtk_widget_realize(), отменяется с помощью gtk_widget_unrealize(). Реализованный виджет имеющий ассоциированный GdkWindow.

GTK_MAPPED

Устанавливается с помощью gtk_widget_map(), отменяется с помощью gtk_widget_unmap(). Только реализованные виджеты могут быть отображены. Это значит что gdk_window_show() вызывается для окон виджетов.

GTK_VISIBLE

Устанавливается с помощью gtk_widget_show(), отменяется с помощью gtk_widget_hide(). Предполагает что виджет отображается сразу после отображения его родителя.

GTK_SENSITIVE

Устанавливается и отменяется с помощью gtk_widget_set_sensitive(). Чувствительность виджета определяет получит ли он определённые события (например нажатие кнопки мыши или клавиатуры). Для первичной предпосылки чувствительности виджета этот флажок должен быть установлен.

GTK_PARENT_SENSITIVE

Устанавливается и отменяется с помощью gtk_widget_set_sensitive() на родителе виджета. Это вторичная предпосылка чувствительности виджета. Как только установлены GTK_SENSITIVE и GTK_PARENT_SENSITIVE, его состояние действительно чувствительно. Это явно выражено (и может быть проверено) с помощью макроса GTK_WIDGET_IS_SENSITIVE.

GTK_CAN_FOCUS

Определяет перехватывает ли виджет фокус.

GTK_HAS_FOCUS

Устанавливается с помощью gtk_widget_grab_focus() для виджетов которые также имеют установленный GTK_CAN_FOCUS. Флаг будет отменён как только другой виджет перехватит фокус.

GTK_CAN_DEFAULT

Виджет позволяющий получать действие по умолчанию через gtk_widget_grab_default().

GTK_HAS_DEFAULT

Виджет в текущий момент получающий действие по умолчанию.

GTK_HAS_GRAB

Устанавливается с помощью gtk_grab_add(), отменяется с помощью gtk_grab_remove(). Это значит что виджет находится в стеке grab_widgets, и привилегирован для получения событий кроме косметических значений.

GTK_RC_STYLE

Указывает что стиль виджетов определяется через механизм rc (ресурсных файлов). Это не подразумевает что виджет фактически имеет стиль определённый через механизм rc файлов.

GTK_COMPOSITE_CHILD

Указывает что виджет является дочерним для своего родителя; смотрите gtk_widget_push_composite_child(), gtk_widget_pop_composite_child().

GTK_NO_REPARENT

Не используется начиная с версии GTK+ 1.2, будет удален в следующих версиях.

GTK_APP_PAINTABLE

Устанавливается и отменяется с помощью gtk_widget_set_app_paintable(). Должен устанавливаться для виджетов чьё окно отображается непосредственно приложением, чтобы оградить GTK+ от перезаписи отображаемого материала.

GTK_RECEIVES_DEFAULT

Виджет который при фокусировании получит действие по умолчания и имеет установленным флажок GTK_HAS_DEFAULT, даже если другой виджет установлен по умолчанию.

GTK_DOUBLE_BUFFERED

Устанавливается и отменяется с помощью gtk_widget_set_double_buffered(). Указывает что экспозиция виджета должна иметь двойную буферизацию (double-buffered).

GTK_NO_SHOW_ALL


GTK_WIDGET_TYPE()

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

Определяет тип виджета.

wid :

GtkWidget.


GTK_WIDGET_STATE()

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

Возвращает текущеме состояние виджета, как GtkStateType.

wid :

GtkWidget.


GTK_WIDGET_SAVED_STATE()

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

Возвращает сохранённое состояние виджета, как GtkStateType.

Сохранённое состояние виджета восстанавливается когда он снова становится чувствительным, после того как был сделан нечувствительным с помощью gtk_widget_set_state() или gtk_widget_set_sensitive().

wid :

GtkWidget.


GTK_WIDGET_FLAGS()

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

Возвращает флажок виджета из wid.

wid :

GtkWidget.


GTK_WIDGET_TOPLEVEL()

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

Вычисляет TRUE если виджет это виджет верхнего уровня.

wid :

GtkWidget.


GTK_WIDGET_NO_WINDOW()

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

Вычисляет TRUE если виджет не имеет собственного GdkWindow.

wid :

GtkWidget.


GTK_WIDGET_REALIZED()

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

Вычисляет TRUE если виджет реализован.

wid :

GtkWidget.


GTK_WIDGET_MAPPED()

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

Вычисляет TRUE если виджет отображён.

wid :

GtkWidget.


GTK_WIDGET_VISIBLE()

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

Вычисляет TRUE если виджет видим.

wid :

GtkWidget.


GTK_WIDGET_DRAWABLE()

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

Вычисляет TRUE если виджет отображён и виден.

wid :

GtkWidget.


GTK_WIDGET_SENSITIVE()

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

Вычисляет TRUE если флажок GTK_SENSITIVE установлен для виджета.

wid :

GtkWidget.


GTK_WIDGET_PARENT_SENSITIVE()

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

Вычисляет TRUE если для виджета установлен флажок GTK_PARENT_SENSITIVE.

wid :

GtkWidget.


GTK_WIDGET_IS_SENSITIVE()

#define     GTK_WIDGET_IS_SENSITIVE(wid)

Вычисляет TRUE если виджет действительно чувствителен.

wid :

GtkWidget.


GTK_WIDGET_CAN_FOCUS()

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

Вычисляет TRUE если виджет может перехватывать фокус.

wid :

GtkWidget.


GTK_WIDGET_HAS_FOCUS()

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

Вычисляет TRUE если виджет находится в фокусе.

wid :

GtkWidget.


GTK_WIDGET_CAN_DEFAULT()

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

Вычисляет TRUE если виджет позволяет получать действие по умолчанию через gtk_widget_grab_default().

wid :

GtkWidget.


GTK_WIDGET_RECEIVES_DEFAULT()

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

Вычисляет TRUE если виджет находясь в фокусе получает действие по умолчанию, даже если по умолчанию установлен другой виджет.

wid :

GtkWidget.


GTK_WIDGET_HAS_DEFAULT()

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

Вычисляет TRUE если виджет в данный момент получает действие по умолчанию.

wid :

GtkWidget.


GTK_WIDGET_HAS_GRAB()

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

Вычисляет TRUE если виджет находится в стеке grab_widgets, и привилегированный для получения событий кроме косметических значений.

wid :

GtkWidget.


GTK_WIDGET_RC_STYLE()

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

Вычисляет TRUE если стиль виджета определяется с помощью механизма rc файлов.

wid :

GtkWidget.


GTK_WIDGET_COMPOSITE_CHILD()

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

Вычисляет TRUE если виджет является составной частью родителя.

wid :

GtkWidget.


GTK_WIDGET_APP_PAINTABLE()

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

Вычисляет TRUE если для виджета установлен флажок GTK_APP_PAINTABLE.

wid :

GtkWidget.


GTK_WIDGET_DOUBLE_BUFFERED()

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

Вычисляет TRUE если для виджета установлен флажок GTK_DOUBLE_BUFFERED.

wid :

GtkWidget.


GTK_WIDGET_SET_FLAGS()

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

Включает определённые флажки для виджета.

wid :

GtkWidget.

flag :

Флажки для установки.


GTK_WIDGET_UNSET_FLAGS()

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

Отключает определённые флажки для виджета.

wid :

GtkWidget.

flag :

Отключаемые флажки.


GtkCallback ()

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

Тип callback-функции используемой, например, для итерации дочерних виджетов контейнера, смотрите gtk_container_foreach().

widget :

Виджет для операции

data :

Пользовательские данные


GtkRequisition

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

GtkRequisition представляет желаемый размер виджета. Смотрите the section called Size Requisition для более подробной информации.

gint width;

Желаемая ширина виджета

gint height;

Желаемая высота виджета


struct GtkAllocation

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

GtkAllocation представляет область которая распределяется для виджета его родителем. Смотрите the section called Size Allocation для более подробной информации.

gint x;

X позиция области виджета относительно его родительского распределения.

gint y;

Y позиция области виджета относительно его родительского распределения.

gint width;

Ширина распределенной для виджета области.

gint height;

Высота распределённой для виджета области.


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, ...);

Это удобная функция для создания виджета и настройки его свойств в один приём. Например вы можете написать: gtk_widget_new (GTK_TYPE_LABEL, "label", "Hello World", "xalign", 0.0, NULL) для создания ярлыка с левым выравниванием. Равноценна для g_object_new(), но возвращает виджет, поэтому вы не должны преобразовывать объект самостоятельно.

type :

Тип ID создаваемого виджета

first_property_name :

Имя первого устанавливаемого свойства

... :

Значение первого свойства, затем остальные свойства, завершается NULL

Возвращает :

Новый GtkWidget типа widget_type


gtk_widget_ref ()

GtkWidget*  gtk_widget_ref                  (GtkWidget *widget);

Добавляет ссылку на виджет. Это тоже самое что вызвать g_object_ref(), и существует главным образом для совместимости. Может быть удобной для избежания преобразования виджета к GObject, это позволяет меньше печатать.

widget :

GtkWidget

Возвращает :

Виджет на который сделана ссылка


gtk_widget_unref ()

void        gtk_widget_unref                (GtkWidget *widget);

Противоположна gtk_widget_ref(). Эквивалентна для g_object_unref().

widget :

GtkWidget


gtk_widget_destroy ()

void        gtk_widget_destroy              (GtkWidget *widget);

Уничтожает виджет. Эквивалент для gtk_object_destroy(), за исключением того что вы не должны преобразовывать виджет к GtkObject. Когда виджет разрушен, уничтожаются все ссылки содержащиеся в других объектах. Если виджет находится в контейнере, он будет удалён из контейнера. Если виджет верхнего уровня (происходит из GtkWindow), он будет удалён из списка верхнего уровня и будут удалены ссылки на него которые содержит GTK+. Удаление виджета из его родительского контейнера ил из списка верхнего уровня является завершающей стадией (finalized), если вы не добавите ссылки на виджет с помощью g_object_ref().

В большинстве случаев, только виджеты верхнего уровня (окна) требуют явного уничтожения, потому что при их уничтожении также уничтожаются дочерние виджеты.

widget :

GtkWidget


gtk_widget_destroyed ()

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

Эта функция устанавливает *widget_pointer в значение NULL если widget_pointer != NULL. Она предназначена для использования в качестве callback-функции подключённой к сигналу "destroy" виджета. Вы подключаете gtk_widget_destroyed() как обработчик сигнала, и помещаете вашу переменную виджета как пользовательские данные. После уничтожения виджета переменная устанавливается в NULL. Полезна например, для избежания многократного копирования одного и того же диалога.

widget :

GtkWidget

widget_pointer :

Адрес переменной которая содержит widget


gtk_widget_set ()

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

Внимание

gtk_widget_set устарела и не должна использоваться во вновь создаваемом коде.

Тоже что и g_object_set() - нет причин использовать её вместо g_object_set().

widget :

GtkWidget

first_property_name :

Имя первого свойства для установки

... :

Значение первого свойства, затем остальные свойства, завершается NULL


gtk_widget_unparent ()

void        gtk_widget_unparent             (GtkWidget *widget);

Эта функция используется только для реализации виджетов. Должна вызываться для реализации метода удаления из контейнера GtkContainer, отсоединяя дочерний виджет от контейнера.

widget :

GtkWidget


gtk_widget_show ()

void        gtk_widget_show                 (GtkWidget *widget);

Отмечает виджет для отображения. Любой не отображённый виджет не будет появляться на экране. Если вам нужно отобразить все виджеты в контейнере, лучше вызвать gtk_widget_show_all() для контейнера, вместо индивидуального отображения виджетов.

Помните, что вы должны отобразить контейнер содержащий виджет, в дополнение к непосредственно отображению самого виджета, после этого он появится на экране.

Когда контейнер верхнего уровня отображён, он реализован; другие виджеты являются отображёнными и реализованными когда их контейнер реализован и отображён.

widget :

GtkWidget


gtk_widget_show_now ()

void        gtk_widget_show_now             (GtkWidget *widget);

Показывает виджет. Если виджет является не отображенным виджетом верхнего уровня (то есть GtkWindow который не показан), входит в основной цикл в ожидании фактического отображения окна. Будьте внимательны; поскольку выполняется основной цикл, может что нибудь произойти во время выполнения этой функции.

widget :

GtkWidget


gtk_widget_hide ()

void        gtk_widget_hide                 (GtkWidget *widget);

Обратный эффект от gtk_widget_show(), скрывает виджет (невидим для пользователя).

widget :

GtkWidget


gtk_widget_show_all ()

void        gtk_widget_show_all             (GtkWidget *widget);

Рекурсивно отображает все виджеты и любые дочерние виджеты (если виджет является контейнером).

widget :

GtkWidget


gtk_widget_hide_all ()

void        gtk_widget_hide_all             (GtkWidget *widget);

Рекурсивно скрывает все виджеты и любые дочерние виджеты.

widget :

GtkWidget


gtk_widget_map ()

void        gtk_widget_map                  (GtkWidget *widget);

Эта функция используется только для реализации виджета. Отображает виджет если он ещё не отображён.

widget :

GtkWidget


gtk_widget_unmap ()

void        gtk_widget_unmap                (GtkWidget *widget);

Эта функция используется только для реализации виджета. Отменяет текущеме отображение.

widget :

GtkWidget


gtk_widget_realize ()

void        gtk_widget_realize              (GtkWidget *widget);

Создаёт GDK (оконную систему) ресурсы, связанные с виджетом. Например, widget->window будет создан когда виджет реализован. Обычно реализация происходит не явно; если вы покажите виджет все его родительские контейнеры, то виджет будет реализован и отображён автоматически.

Реализация виджета требует чтобы все родители виджета тоже были реализованы; вызов gtk_widget_realize() реализует родителей виджета в дополнение к непосредственно реализации widget. Если виджет не в окне верхнего уровня когда вы его реализуете, может произойти ошибка.

Эта функция в первую очередь используется при реализации виджета, и не очень полезна в других ситуациях. В большинстве случаев когда вы думаете что нуждаетесь в этой функции, лучшим решением будет подключение сигнала который будет издаваться после реализации автоматически, такой как "expose_event". Или просто g_signal_connect_after() для сигнала "realize".

widget :

GtkWidget


gtk_widget_unrealize ()

void        gtk_widget_unrealize            (GtkWidget *widget);

Эта функция полезна только при реализации виджета. Делает виджет не реализованным (освобождает все ресурсы GDK связанные с виджетом, такие как widget->window).

widget :

GtkWidget


gtk_widget_queue_draw ()

void        gtk_widget_queue_draw           (GtkWidget *widget);

Равноценна вызову gtk_widget_queue_draw_area() для всей области виджета.

widget :

GtkWidget


gtk_widget_queue_resize ()

void        gtk_widget_queue_resize         (GtkWidget *widget);

Эта функция используется только для реализации виджета. Отмечает виджет для пересмотра размера; должна вызываться когда виджет по каким то причинам запрашивает новый размер. Например, когда вы изменяете текст в GtkLabel, GtkLabel запрашивает изменение размера чтобы соответствовать новому тексту.

widget :

GtkWidget


gtk_widget_queue_resize_no_redraw ()

void gtk_widget_queue_resize_no_redraw (GtkWidget *widget);

Эта функция работает также как gtk_widget_queue_resize(), за исключением того, что виджет не аннулируется.

widget :

GtkWidget

Начиная с версии 2.4


gtk_widget_draw ()

void gtk_widget_draw (GtkWidget *widget, GdkRectangle *area);

Внимание

gtk_widget_draw устарела и не должна использоваться во вновь создаваемом коде.

В GTK+ 1.2, эта функция немедленно бы нарисовала участок area виджета, вызывая виртуальный метод рисования виджета. В GTK+ 2.0, метод рисования исключён, а вместо него gtk_widget_draw() просто аннулирует участок виджета, затем немедленно обновляет аннулированный участок. Обычно вам не нужно обновлять участок немедленно по причинам производительности, таким образом в основном gtk_widget_queue_draw_area() лучший выбор, если вам нужно отобразить участок виджета.

widget :

GtkWidget

area :

Отображаемая область


gtk_widget_size_request ()

void gtk_widget_size_request (GtkWidget *widget, GtkRequisition *requisition);

Эта функция обычно используется при реализации подкласса GtkContainer. Определяет привилегированный размер виджета. Контейнер использует эту информацию для упорядочения дочерних виджетов и решить какой размер распределить для них с помощью gtk_widget_size_allocate().

Вы также можете вызвать эту функцию из приложения, с некоторыми оговорками. Наиболее важная, получение запроса размера требует, чтобы виджет был связан с экраном, потому что может быть необходима информация о шрифте. Многооконные (Multihead-aware) приложения должны хранить это в памяти.

Помните, запрашиваемый размер не всегда является фактическим размером виджета.

Смотрите также gtk_widget_get_child_requisition().

widget :

GtkWidget

requisition :

GtkRequisition


gtk_widget_get_child_requisition ()

void gtk_widget_get_child_requisition (GtkWidget *widget, GtkRequisition *requisition);

Эта функция используется только для реализации виджета. Определяет widget->requisition, если кто нибудь не установил специфическую геометрию для виджета (например с помощью gtk_widget_set_usize()), в этом случае возвращается эта геометрия вместо запрашиваемой виджетом.

Эта функция отличается от gtk_widget_size_request() в том, что определяет последний запрашиваемый размер из widget->requisition, в то время как gtk_widget_size_request() фактически вызывает "size_request" метод на widget для вычисления вычисления запрашиваемого размера и заполнения в widget->requisition, и только после этого возвращает widget->requisition.

Поскольку эта функция не вызывает "size_request" метод, она может использоваться только когда вы знаете что widget->requisition обновлен, то есть, gtk_widget_size_request() вызывался с момента последнего изменения размера. В основном, только контейнеры используют эту информацию; приложения должны использовать gtk_widget_size_request().

widget :

GtkWidget

requisition :

GtkRequisition для заполнения


gtk_widget_size_allocate ()

void gtk_widget_size_allocate (GtkWidget *widget, GtkAllocation *allocation);

Эта функция используется только подклассами GtkContainer, для привязки размера и позиции их дочерних виджетов.

widget :

GtkWidget

allocation :

Позиция и размер для widget


gtk_widget_add_accelerator ()

void gtk_widget_add_accelerator (GtkWidget *widget, const gchar *accel_signal, GtkAccelGroup *accel_group, guint accel_key, GdkModifierType accel_mods, GtkAccelFlags accel_flags);

Устанавливает акселератор для widget в accel_group, который издаёт сигнал accel_signal если активизирован. accel_group должен быть добавлен в виджет верхнего уровня с помощью gtk_window_add_accel_group(), а сигнал должен быть типа G_RUN_ACTION. Акселераторы добавленные с помощью этой функции не могут изменяться пользователем в течении выполнения. Если вам нужна поддержка акселераторов которые могут изменяться пользователем, используйте gtk_accel_map_add_entry() и gtk_widget_set_accel_path() или gtk_menu_item_set_accel_path().

widget :

Виджет для которого устанавливается акселератор

accel_signal :

Сигнал виджета издаваемый при активизации акселератора

accel_group :

Группа акселераторов для виджета, добавляемая в его верхний уровень

accel_key :

Клавишное значение GDK акселератора

accel_mods :

Комбинация клавиш модификатора акселератора

accel_flags :

Флаг акселератора, например GTK_ACCEL_VISIBLE


gtk_widget_remove_accelerator ()

gboolean gtk_widget_remove_accelerator (GtkWidget *widget, GtkAccelGroup *accel_group, guint accel_key, GdkModifierType accel_mods);

Удаляет акселератор для widget, предварительно установленный с помощью gtk_widget_add_accelerator().

widget :

Виджет для которого установлен акселератор

accel_group :

Группа акселераторов для этого виджета

accel_key :

Клавишное значение GDK акселератора

accel_mods :

Клавишная комбинация модификатора акселератора

Возвращает :

Удалён ли установленный ранее акселератор


gtk_widget_set_accel_path ()

void gtk_widget_set_accel_path (GtkWidget *widget, const gchar *accel_path, GtkAccelGroup *accel_group);

Учитывая группу акселератора, accel_group, и путь акселератора, accel_path, устанавливает акселератор в accel_group, чтобы всякий раз при нажатии клавишной привязки которая определена для accel_path, widget активировался. Это удаляет любые акселераторы (для любой группы акселераторов) предварительно установленные с помощью gtk_widget_set_accel_path(). Ассоциирует акселераторы с путями, позволяя пользователю изменять их и сохранять для использования в будущем. (Смотрите gtk_accel_map_save().)

Это функция нижнего уровня, которая наиболее вероятно использовалась бы системой создания меню, такой как GtkItemFactory. Если вы используете GtkItemFactory, установка путей акселератора будет выполнена автоматически.

Даже когда вы не используете GtkItemFactory, а просто хотите установить акселераторы для пунктов меню, gtk_menu_item_set_accel_path() обеспечивает наиболее удобный интерфейс.

widget :

GtkWidget

accel_path :

Путь используемый для поиска акселератора

accel_group :

GtkAccelGroup.


gtk_widget_list_accel_closures ()

GList*      gtk_widget_list_accel_closures  (GtkWidget *widget);

Перечисляет закрытые выражения используемые widget для групп акселераторов подключённых с помощью gtk_accel_group_connect_by_path() или gtk_accel_group_connect(). Закрытые выражения могут использоваться для контроля изменений акселератора для widget, подключая сигнал ::accel_changed закрытого выражения GtkAccelGroup, которое может быть найдено с помощью gtk_accel_group_from_accel_closure().

widget :

Виджет для списка закрытых выражений акселератора

Возвращает :

новый GList закрытых выражений


gtk_widget_can_activate_accel ()

gboolean gtk_widget_can_activate_accel (GtkWidget *widget, guint signal_id);

Определяет может ли в данный момент активизироваться акселератор, который подключен к сигналу идентифицируемому signal_id. Это издаёт сигнал GtkWidget::can-activate-accel для widget; если сигнал не отменён обработчиком или предком виджета, то по умолчанию проверяется может ли виджет быть чувствительным и отображены ли все его предки.

widget :

GtkWidget

signal_id :

ID сигнала установленного для widget

Возвращает :

TRUE если акселератор может быть активизирован.

Начиная с версии 2.4


gtk_widget_event ()

gboolean gtk_widget_event (GtkWidget *widget, GdkEvent *event);

Редко используемая функция. Эта функция используется для издания сигналов событий для виджета (которые не могут издаваться без использования этой функции). Если вам нужно синтезировать событие не используя эту функцию; вместо неё, используйте gtk_main_do_event(), таким образом событие будет вести себя как будто оно было в очереди событий. Не синтезируйте события экспозиции; вместо этого используйте gdk_window_invalidate_rect() для аннулирования участка окна.

widget :

GtkWidget

event :

GdkEvent

Возвращает :

Возвращаемое значение из эмиссии сигнала события (TRUE если событие было обработано)


gtk_widget_activate ()

gboolean    gtk_widget_activate             (GtkWidget *widget);

Активизирует виджеты которые могут быть "activated" (кнопки, пункты меню, и т.д..). Активизация происходит когда вы нажимаете Enter на виджете во время клавиатурного управления. Если widget не может быть активизирован, функция вернёт FALSE.

widget :

активизируемый GtkWidget

Возвращает :

TRUE если виджет был активизирован


gtk_widget_reparent ()

void gtk_widget_reparent (GtkWidget *widget, GtkWidget *new_parent);

Перемещает виджет из одного GtkContainer в другой, обрабатывает ссылки для избежания разрушения виджета.

widget :

GtkWidget

new_parent :

GtkContainer в который перемещается виджет


gtk_widget_intersect ()

gboolean gtk_widget_intersect (GtkWidget *widget, GdkRectangle *area, GdkRectangle *intersection);

Вычисляет пересечение области widget's и area, сохраняя пересечение в intersection, и возвращая TRUE если пересечение было. intersection может быть NULL если вы только интересуетесь было ли пересечение.

widget :

GtkWidget

area :

прямоугольник

intersection :

Прямоугольник для хранения пересечения widget и area

Возвращает :

TRUE если пересечение было


gtk_widget_is_focus ()

gboolean    gtk_widget_is_focus             (GtkWidget *widget);

Определяет является ли сфокусированный виджет в пределах его верхнего уровня. (Это не значит что флажок HAS_FOCUS обязательно установлен; HAS_FOCUS устанавливается только если виджет верхнего уровня имеет общий фокус ввода.)

widget :

GtkWidget

Возвращает :

TRUE если виджет в фокусе.


gtk_widget_grab_focus ()

void        gtk_widget_grab_focus           (GtkWidget *widget);

Заставляет widget получить клавиатурный фокус внутри GtkWindow. widget должен быть фокусируемым, таким как GtkEntry; для таких как GtkFrame не будет работать. (Более точно, он должен иметь установленный флажок GTK_CAN_FOCUS.)

widget :

GtkWidget


gtk_widget_grab_default ()

void        gtk_widget_grab_default         (GtkWidget *widget);

Заставляет widget быть виджетом по умолчанию. widget должен иметь установленный флажок GTK_CAN_DEFAULT; обычно вы устанавливаете этот флажок самостоятельно вызывая GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_DEFAULT). Виджет по умолчанию активизируется когда пользователь нажимает Enter в сфокусированном окне. Виджет по умолчанию должен быть активизируемым, то есть, gtk_widget_activate() должна быть для него выполнена.

widget :

GtkWidget


gtk_widget_set_name ()

void gtk_widget_set_name (GtkWidget *widget, const gchar *name);

Виджет может быть именован, что позволит вам обращаться к нему через gtkrc файл. Вы можете применить стиль для виджетов с помощью специальных имён в gtkrc файле. Смотрите документацию для gtkrc файлов (там же где документация для GtkRcStyle).

Помните, имена виджетов разделяются точками в путях (смотрите gtk_widget_path()), поэтому имена включающие точки могут вызвать ошибку.

widget :

GtkWidget

name :

Имя виджета


gtk_widget_get_name ()

const gchar* gtk_widget_get_name            (GtkWidget *widget);

Определяет имя виджета. Смотрите gtk_widget_set_name().

widget :

GtkWidget

Возвращает :

Имя виджета. Строкой владеет GTK+ поэтому она не должна освобождаться или изменяться


gtk_widget_set_state ()

void gtk_widget_set_state (GtkWidget *widget, GtkStateType state);

Эта функция только для реализации виджетов. Устанавливает состояние виджета (нечувствительный, подсвеченный, и т.д..) Обычно состояние устанавливается используя функцию оболочку, такую как gtk_widget_set_sensitive().

widget :

GtkWidget

state :

Новое состояние для widget


gtk_widget_set_sensitive ()

void gtk_widget_set_sensitive (GtkWidget *widget, gboolean sensitive);

Устанавливает чувствительность виджета. Виджет чувствителен если пользователь может взаимодействовать с ним. Нечувствительные виджеты являются "недоступными (grayed out)" и пользователь не может с ними взаимодействовать. Нечувствительные виджеты известны как "inactive", "disabled", или "ghosted" в некоторых других инструментариях.

widget :

GtkWidget

sensitive :

TRUE для создания чувствительного виджета


gtk_widget_set_parent ()

void gtk_widget_set_parent (GtkWidget *widget, GtkWidget *parent);

Эта функция полезна только когда реализуется подкласс GtkContainer. Устанавливает контейнер как родительский для widget, и заботится о некоторых деталях, таких как обновление состояния и стиль дочернего виджета, отражая его новое расположение. Противоположна функции gtk_widget_unparent().

widget :

GtkWidget

parent :

Родительский контейнер


gtk_widget_set_parent_window ()

void gtk_widget_set_parent_window (GtkWidget *widget, GdkWindow *parent_window);

Устанавливает родительское окно для widget.

widget :

GtkWidget.

parent_window :

Новое родительское окно.


gtk_widget_get_parent_window ()

GdkWindow*  gtk_widget_get_parent_window    (GtkWidget *widget);

Определяет родительское окно для widget's.

widget :

GtkWidget.

Возвращает :

Родительское окно widget.


gtk_widget_set_uposition ()

void gtk_widget_set_uposition (GtkWidget *widget, gint x, gint y);

Внимание

gtk_widget_set_uposition устарела и не должна использоваться во вновь создаваемом коде.

Устанавливает позицию виджета. Дополнительное "u" в названии происходит из "user position" подсказки определенной X Window System, и существует для обратной совместимости. Эта функция не работает если виджет внутри контейнера; она полезна только для GtkWindow.

Не используйте эту функцию для центрирования диалога относительно основного окна; большинство менеджеров окон сделают это за вас, если вы вызовите gtk_window_set_transient_for(), невозможно заставить работать центрирование правильно во всех случаях прикладного кода. Но если вы настаиваете, используйте gtk_window_set_position() для установки GTK_WIN_POS_CENTER_ON_PARENT, не выполняйте центровку вручную.

Помните, хотя x и y могут быть индивидуально отменены, позиция не соблюдается если оба и x и y не установлены.

widget :

GtkWidget

x :

x позиция; -1 для отмены x; -2 для сохранения x неизменным

y :

y позиция; -1 для отмены y; -2 для сохранения y неизменным


gtk_widget_set_usize ()

void gtk_widget_set_usize (GtkWidget *widget, gint width, gint height);

Внимание

gtk_widget_set_usize устарела и не должна использоваться во вновь создаваемом коде.

Устанавливает минимальный размер виджета; то есть запрашиваемый размер виджета будет width и height. Вы можете использовать эту функцию чтобы заставить виджет стать меньше или больше чем он есть. Странное имя "usize" датируется ранними версиями GTK+, и происходит из терминологии X Window System. В большинстве случаев, gtk_window_set_default_size() лучше для окон верхнего уровня чем эта функция; установка размера по умолчанию все же позволит пользователю уменьшать окно. Установка usize заставит их сохранять размер окна не больше чем usize. Имея дело с размером окна, gtk_window_set_geometry_hints() также может быть полезна.

Помните, внутренне опасно устанавливать любой фиксированный размер - темы, перевод на другие языки, разные шрифты и пользовательские действия могут изменить соответственные размеры виджета. Поэтому не возможно подобрать размер который будет всегда правильным.

Deprecated: Вместо неё используйте gtk_widget_set_size_request().

widget :

GtkWidget

width :

Минимальная ширина виджета, или -1 для сброса

height :

Минимальная высота, или -1 для сброса


gtk_widget_set_events ()

void gtk_widget_set_events (GtkWidget *widget, gint events);

Устанавливает маску события (смотрите GdkEventMask) для виджета. Маска события определяет какие события будет получать виджет. Имейте ввиду, что разные виджеты имеют разные маски событий по умолчанию, и изменяя маску события вы можете нарушить функциональность виджета, поэтому будьте внимательны. Эта функция вызывается до реализации виджета. Рассмотрите gtk_widget_add_events() для виджетов которые уже реализованы, или если вам нужно сохранить существующую маску. Эта функция может использоваться с виджетами GTK_NO_WINDOW; для получения событий такими виджетами, поместите их в GtkEventBox а получаемое событие в контейнер событий.

widget :

GtkWidget

events :

Маска события


gtk_widget_add_events ()

void gtk_widget_add_events (GtkWidget *widget, gint events);

Добавляет событие к битовому полю events маски события для widget. Смотрите gtk_widget_set_events().

widget :

GtkWidget

events :

Маска события, смотрите GdkEventMask


gtk_widget_set_extension_events ()

void gtk_widget_set_extension_events (GtkWidget *widget, GdkExtensionMode mode);

Устанавливает дополнительную маску события в mode. Смотрите GdkExtensionMode и gdk_input_set_extension_events().

widget :

GtkWidget

mode :

Битовое поле дополнительного события для получения


gtk_widget_get_extension_events ()

GdkExtensionMode gtk_widget_get_extension_events (GtkWidget *widget);

Определяет дополнительное событие виджета для получения; смотрите gdk_input_set_extension_events().

widget :

GtkWidget

Возвращает :

Дополнительное событие для widget


gtk_widget_get_toplevel ()

GtkWidget*  gtk_widget_get_toplevel         (GtkWidget *widget);

Эта функция возвращает самый верхний виджет в контейнерной иерархии widget. Если widget не имеет родительского виджета, он будет возвращён как виджет верхнего уровня. На возвращаемый виджет не добавляется ссылок; он не должен освобождаться.

Помните о различных поведениях gtk_widget_get_ancestor(); gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW) вернёт NULL если widget был в окне верхнего уровня, и если окно было внутри GtkWindow-наследника виджета который был в свою очередь внутри GtkWindow верхнего уровня. В то время как второй случай может показаться мало вероятным, он происходит когда GtkPlug встроен в GtkSocket внутри некоторого приложения.

Для надёжного определения GtkWindow верхнего уровня, используйте gtk_widget_get_toplevel() и контролируйте установлен ли флаг TOPLEVEL в результате.

GtkWidget *toplevel = gtk_widget_get_toplevel (widget); if (GTK_WIDGET_TOPLEVEL (toplevel)) { [ Perform action on toplevel. ] }

widget :

GtkWidget

Возвращает :

Самый верхний предок виджета widget, или сам widget, если у него нет предков.


gtk_widget_get_ancestor ()

GtkWidget* gtk_widget_get_ancestor (GtkWidget *widget, GType widget_type);

Определяет первого предка виджета widget с типом widget_type. Например, gtk_widget_get_ancestor (widget, GTK_TYPE_BOX) получает первый GtkBox который является предком widget. К возвращаемому виджету не добавляется ссылок; он не должен освобождаться. Смотрите примечания о проверки верхнего уровня GtkWindow в документации для gtk_widget_get_toplevel().

Помните, в отличии от gtk_widget_is_ancestor(), gtk_widget_get_ancestor() предполагает что widget является предком самого себя.

widget :

GtkWidget

widget_type :

Тип предка

Возвращает :

Виджет предок, или NULL если не найден


gtk_widget_get_colormap ()

GdkColormap* gtk_widget_get_colormap        (GtkWidget *widget);

Определяет цветовую гамму для представления виджета widget. На цветовую гамму не добавляются ссылки; их не нужно отменять.

widget :

GtkWidget

Возвращает :

Цветовая гамма используемая widget


gtk_widget_set_colormap ()

void gtk_widget_set_colormap (GtkWidget *widget, GdkColormap *colormap);

Устанавливает цветовую гамму для виджета в определённое значение. Виджет не должен быть реализованным. Это в основном должно использоваться только init() функцией (то есть из конструктора для виджета).

widget :

GtkWidget

colormap :

Цветовая гамма


gtk_widget_get_visual ()

GdkVisual*  gtk_widget_get_visual           (GtkWidget *widget);

Определяет визуализацию которая используется для отображения виджета widget.

widget :

GtkWidget

Возвращает :

Визуализация для widget


gtk_widget_get_events ()

gint        gtk_widget_get_events           (GtkWidget *widget);

Возвращает маску событий для виджета (битовое поле содержит флажки из перечисления GdkEventMask). Они являются событиями которые получает виджет.

widget :

GtkWidget

Возвращает :

Маска событий для widget


gtk_widget_get_pointer ()

void gtk_widget_get_pointer (GtkWidget *widget, gint *x, gint *y);

Определяет расположение указателя мыши в координатах виджета. Координаты виджета немного избыточны; для обратной совместимости, они определяются как widget->window координаты для виджетов которые не являются виджетами GTK_NO_WINDOW, и соответственно widget->allocation.x, widget->allocation.y для виджетов которые являются виджетами GTK_NO_WINDOW.

widget :

GtkWidget

x :

Расположение возвращаемой X координаты, или NULL

y :

Расположение возвращаемой Y координаты, или NULL


gtk_widget_is_ancestor ()

gboolean gtk_widget_is_ancestor (GtkWidget *widget, GtkWidget *ancestor);

Определяет находится ли widget внутри какого нибудь ancestor, возможно с промежуточными контейнерами.

widget :

GtkWidget

ancestor :

другой GtkWidget

Возвращает :

TRUE если ancestor содержит widget как дочерний, дочерний дочернего и т.д..


gtk_widget_translate_coordinates ()

gboolean gtk_widget_translate_coordinates (GtkWidget *src_widget, GtkWidget *dest_widget, gint src_x, gint src_y, gint *dest_x, gint *dest_y);

Преобразует соответствующие координаты расположения src_widget's в соответствующие координаты расположения dest_widget's. Для выполнения этой операции оба виджета должны быть реализованы и должны иметь общий верхний уровень.

src_widget :

GtkWidget

dest_widget :

GtkWidget

src_x :

X позиция относительно src_widget

src_y :

Y позиция относительно src_widget

dest_x :

X позиция относительно dest_widget

dest_y :

Y позиция относительно dest_widget

Возвращает :

FALSE если какой нибудь виджет не реализован, или нет общего предка. В этом случае, ничего не сохраняется в *dest_x и *dest_y. Иначе TRUE.


gtk_widget_hide_on_delete ()

gboolean    gtk_widget_hide_on_delete       (GtkWidget *widget);

Сервисная функция; предназначена для подключения сигнала "delete_event" к GtkWindow. Функция вызывает gtk_widget_hide() в своём аргументе, затем возвращает TRUE, если подключение к "delete_event", результат нажатия кнопки close на окне (обычно в верхнем правом углу) оно скрывается, но не разрушается. По умолчанию, GTK+ разрушает окна когда получает "delete_event".

widget :

GtkWidget

Возвращает :

TRUE


gtk_widget_set_style ()

void gtk_widget_set_style (GtkWidget *widget, GtkStyle *style);

Устанавливает GtkStyle для виджета (widget->style). В основном вам не нужно использовать эту функцию; это ужасно взаимодействует с темами, поскольку темы заменяют GtkStyle. Вместо неё используйте gtk_widget_modify_style().

widget :

GtkWidget

style :

GtkStyle, или NULL для удаления предыдущего эффекта gtk_widget_set_style() и возврату к стилю по умолчанию


gtk_widget_set_rc_style()

#define gtk_widget_set_rc_style(widget)          (gtk_widget_set_style (widget, NULL))

Внимание

gtk_widget_set_rc_style устарела и не должна использоваться во вновь создаваемом коде.

Равноценна для gtk_widget_set_style (widget, NULL).

widget :

GtkWidget.


gtk_widget_ensure_style ()

void        gtk_widget_ensure_style         (GtkWidget *widget);

Убеждается что widget имеет стиль (widget->style). Не очень полезная функция; в большинстве случаев, если вам нужен стиль, виджет реализован, а реализованный виджет гарантировано имеет стиль.

widget :

GtkWidget


gtk_widget_get_style ()

GtkStyle*   gtk_widget_get_style            (GtkWidget *widget);

Возвращает стиль widget->style.

widget :

GtkWidget

Возвращает :

GtkStyle


gtk_widget_restore_default_style()

#define gtk_widget_restore_default_style(widget) (gtk_widget_set_style (widget, NULL))

Внимание

gtk_widget_restore_default_style устарела и не должна использоваться во вновь создаваемом коде.

Равноценна для gtk_widget_set_style (widget, NULL).

widget :

GtkWidget.


gtk_widget_reset_rc_styles ()

void        gtk_widget_reset_rc_styles      (GtkWidget *widget);

Отменяет стиль виджета widget и всех его потомков, поэтому когда они определяться снова, они получат правильные значения для текущих загруженных настроек RC файла.

Эта функция бесполезна для приложений.

widget :

GtkWidget.


gtk_widget_push_colormap ()

void        gtk_widget_push_colormap        (GdkColormap *cmap);

Помещает cmap в общий стек цветовых гамм; самая верхняя цветовая гамма в стеке будет использоваться для отображения всех виджетов. Удаляется cmap с помощью gtk_widget_pop_colormap(). Существует мало причин использовать эту функцию.

cmap :

GdkColormap


gtk_widget_pop_colormap ()

void        gtk_widget_pop_colormap         (void);

Удаляет цветовую гамму помещённую с помощью gtk_widget_push_colormap().


gtk_widget_set_default_colormap ()

void        gtk_widget_set_default_colormap (GdkColormap *colormap);

Устанавливает цветовую гамму по умолчанию при создании виджетов. gtk_widget_push_colormap() влияет только на несколько виджетов а не на все сразу.

colormap :

GdkColormap


gtk_widget_get_default_style ()

GtkStyle*   gtk_widget_get_default_style    (void);

Возвращает стиль используемый всеми инициализированными виджетами.

Возвращает :

Стиль по умолчанию. Этим объектом GtkStyle владеет GTK+ и он не должен освобождаться или изменяться.


gtk_widget_get_default_colormap ()

GdkColormap* gtk_widget_get_default_colormap (void);

Определяет цветовую гамму используемую по умолчанию при создании виджетов.

Возвращает :

Цветовая гамма виджета по умолчанию


gtk_widget_get_default_visual ()

GdkVisual*  gtk_widget_get_default_visual   (void);

Определяет визуализацию цветовой гаммы по умолчанию. Не очень полезна; используется перед осуществлением gdk_colormap_get_visual().

Возвращает :

Визуализация цветовой гаммы по умолчанию


gtk_widget_set_direction ()

void gtk_widget_set_direction (GtkWidget *widget, GtkTextDirection dir);

Устанавливает направление интерпретации определенного виджета. Контролирует первичное направление для виджета содержащего текст, а также направление в котором упакованы дочерние виджеты в контейнере. Позволяет устанавливать направление представляющее возможность правильно отображать языковую локализацию с право на лево. Обычно, приложения используют направление интерпретации по умолчанию, за исключением контейнеров выравненных в порядке явной визуализации, а не логической (такие как кнопки для для выравнивания текста).

Если направление установлено в GTK_TEXT_DIR_NONE, то будет использоваться значение установленное с помощью gtk_widget_set_default_direction().

widget :

GtkWidget

dir :

Новое направление


enum GtkTextDirection

typedef enum { GTK_TEXT_DIR_NONE, GTK_TEXT_DIR_LTR, GTK_TEXT_DIR_RTL } GtkTextDirection;

gtk_widget_get_direction ()

GtkTextDirection gtk_widget_get_direction   (GtkWidget *widget);

Определяет направление интерпретации определённого виджета. Смотрите gtk_widget_set_direction().

widget :

GtkWidget

Возвращает :

Направление интерпретации для виджета.


gtk_widget_set_default_direction ()

void gtk_widget_set_default_direction (GtkTextDirection dir);

Устанавливает направление интерпретации для виджетов, если оно не было установлено явно с помощью gtk_widget_set_direction().

dir :

Новое направление по умолчанию. Не может быть GTK_TEXT_DIR_NONE.


gtk_widget_get_default_direction ()

GtkTextDirection gtk_widget_get_default_direction (void);

Определяет текущеме направление интерпретации по умолчанию. Смотрите gtk_widget_set_default_direction().

Возвращает :

Текущее направление по умолчанию.


gtk_widget_shape_combine_mask ()

void gtk_widget_shape_combine_mask (GtkWidget *widget, GdkBitmap *shape_mask, gint offset_x, gint offset_y);

Устанавливает очертания для этого виджета GDK окна. Это позволяет делать прозрачные окна и т.д., смотрите gdk_window_shape_combine_mask() для более подробной информации.

widget :

GtkWidget.

shape_mask :

Добавляемое очертание, или NULL для удаления существующего.

offset_x :

X позиция маски очертания относительно window.

offset_y :

Y позиция маски очертания относительно window.


gtk_widget_input_shape_combine_mask ()

void gtk_widget_input_shape_combine_mask (GtkWidget *widget, GdkBitmap *shape_mask, gint offset_x, gint offset_y);

Устанавливает очертание ввода для виджета GDK окна. Позволяет окнам реагировать на нажатие мышки вне прямоугольной области, смотрите gdk_window_input_shape_combine_mask() для более подробной информации.

widget :

GtkWidget.

shape_mask :

Добавляемое очертание, или NULL для удаления существующего очертания.

offset_x :

X позиция маски очертания относительно window.

offset_y :

Y позиция маски очертания относительно window.

Начиная с версии 2.10


gtk_widget_path ()

void gtk_widget_path (GtkWidget *widget, guint *path_length, gchar **path, gchar **path_reversed);

Определяет полный путь для widget. Путь это имя виджета и всех родительских контейнеров в иерархии, разделённые точками. Имя виджета определяется с помощью gtk_widget_get_name(). Пути используются для применения стилей к виджетам в gtkrc файлах конфигурации. По умолчанию именем виджета является его тип (например "GtkButton") или может устанавливаться в определённое приложением значение с помощью gtk_widget_set_name(). Установив имя виджета вы позволяете пользователю или автору темы применять стили к определённому виджету в gtkrc файле. path_reversed_p заполняется путём в обратном порядке, то есть начиная с имени виджета widget's вместо имени изначального родителя widget's.

widget :

GtkWidget

path_length :

Длина пути, или NULL

path :

Строка содержащая путь, или NULL

path_reversed :

Строка содержащая обратный путь, или NULL


gtk_widget_class_path ()

void gtk_widget_class_path (GtkWidget *widget, guint *path_length, gchar **path, gchar **path_reversed);

Также как gtk_widget_path(), но всегда использует имя типа виджета, никогда не использует выбранное имя установленное с помощью gtk_widget_set_name().

widget :

GtkWidget

path_length :

Длина пути, или NULL

path :

Строка содержащая путь, или NULL

path_reversed :

Строка содержащая обратный путь, или NULL


gtk_widget_get_composite_name ()

gchar*      gtk_widget_get_composite_name   (GtkWidget *widget);

Определяет составное имя виджета.

widget :

GtkWidget.

Возвращает :

Составное имя widget, или NULL если widget не имеет составных дочерних элементов. Строка не должна освобождаться.


gtk_widget_modify_style ()

void gtk_widget_modify_style (GtkWidget *widget, GtkRcStyle *style);

Изменят стиль виджета. Изменения сделанные с помощью этой функции имеют приоритет перед стилем установленным через RC файл, однако, они будут отменены если стиль явно установить используя gtk_widget_set_style(). Структура GtkRcStyle спроектирована так, что каждое поле может быть установлено или сброшено, поэтому возможно изменение некоторых значений стиля в то время как другие остаются без изменений.

Помните, изменения сделанные с помощью этой функции не совмещаются с предыдущими вызовами gtk_widget_modify_style() или с такими функциями как gtk_widget_modify_fg(). Если вы хотите сохранить предыдущие значения, вы должны сначала вызвать gtk_widget_get_modifier_style(), вложив ваши изменения в возвращаемый стиль, затем вызвать gtk_widget_modify_style() с этим стилем. С другой стороны, если вы сначала вызовите gtk_widget_modify_style(), то последующие вызовы таких функций как gtk_widget_modify_fg() будут совмещать эффект с начальными изменениями.

widget :

GtkWidget

style :

GtkRcStyle содержащая изменения стиля


gtk_widget_get_modifier_style ()

GtkRcStyle* gtk_widget_get_modifier_style   (GtkWidget *widget);

Возвращает текущие модификатор стиля виджета. (Которые установлены с помощью gtk_widget_modify_style().) Если нет предварительно установленного стиля, создаётся новый GtkRcStyle с неустановленными значениями и устанавливается как модификатор стиля виджета. Если вы делаете изменения в этом rc стиле, вы должны вызвать gtk_widget_modify_style(), помещая возвращаемый rc стиль, убедившись что ваши изменения вступили в силу.

Предостережение: помещение стиля назад в gtk_widget_modify_style() обычно заканчивается его уничтожением, потому что gtk_widget_modify_style() копирует помещаемый в неё стиль и устанавливает копию как новый изменённый стиль, таким образом отменяются все ссылки на старую модификацию стиля. Добавьте ссылку на модификатор стиля, если вам нужно чтобы он существовал.

widget :

GtkWidget

Возвращает :

Модификатор стиля виджета. Этим rc стилем владеет виджет. Если вам нужен указатель на него, вы должны добавить ссылку используя g_object_ref().


gtk_widget_modify_fg ()

void gtk_widget_modify_fg (GtkWidget *widget, GtkStateType state, const GdkColor *color);

Устанавливает цвет символов (переднего плана) виджета в специфическом состоянии. Все остальные значения стиля остаются нетронутыми. Смотрите также gtk_widget_modify_style().

widget :

GtkWidget.

state :

Состояние для которого устанавливается цвет символов (переднего плана).

color :

Назначаемый цвет (не нуждается в распределении), или NULL для отмены эффекта предыдущего вызова gtk_widget_modify_fg().


gtk_widget_modify_bg ()

void gtk_widget_modify_bg (GtkWidget *widget, GtkStateType state, const GdkColor *color);

Устанавливает цвет фона для виджета в специфическом состоянии. Остальные значения стиля остаются не тронутыми. Смотрите также gtk_widget_modify_style().

Помните, виджеты без окон "no window" (для которых установлен флажок GTK_NO_WINDOW) отображаются в окнах их родительских контейнеров и поэтому не могут отображать фон самостоятельно. Например как GtkLabel. Для установки фона таких виджетов, вы должны установить цвет фона для его родителя; если вам нужно установить фон прямоугольной области вокруг ярлыка, попробуйте разместить ярлык в GtkEventBox виджете и установить фон для него.

widget :

GtkWidget.

state :

Состояние в котором устанавливается фон.

color :

Назначаемый цвет (не нуждается в распределении), или NULL для отмены эффекта предыдущего вызова gtk_widget_modify_bg().


gtk_widget_modify_text ()

void gtk_widget_modify_text (GtkWidget *widget, GtkStateType state, const GdkColor *color);

Устанавливает цвет текста виджета в специфическом состоянии. Остальные значения стиля остаются нетронутыми. Цвет текста это цвет символов используемый вместе с основным цветом (смотрите gtk_widget_modify_base()) для таких виджетов как GtkEntry и GtkTextView. Смотрите также gtk_widget_modify_style().

widget :

GtkWidget.

state :

Состояние для которого устанавливается цвет текста.

color :

Назначаемый цвет (не нуждается в распределении), или NULL для отмены эффекта предыдущего вызова gtk_widget_modify_text().


gtk_widget_modify_base ()

void gtk_widget_modify_base (GtkWidget *widget, GtkStateType state, const GdkColor *color);

Устанавливает основной цвет для виджета в специфическом состоянии. Остальные значения стиля остаются нетронутыми. Основной цвет это фон используемый вместе с цветом текста (смотрите gtk_widget_modify_text()) для таких виджетов как GtkEntry и GtkTextView. Смотрите также gtk_widget_modify_style().

Помните, виджеты без окон "no window" (для которых установлен флажок GTK_NO_WINDOW) отображаются в окнах их родительских контейнеров и поэтому не могут отображать фон самостоятельно. Например как GtkLabel. Для установки фона таких виджетов, вы должны установить цвет фона для его родителя; если вам нужно установить фон прямоугольной области вокруг ярлыка, попробуйте разместить ярлык в GtkEventBox виджете и установить фон для него.

widget :

GtkWidget.

state :

Состояние для которого устанавливается основной цвет.

color :

Назначаемый цвет (не нуждается в распределении), или NULL для отмены эффекта предыдущего вызова gtk_widget_modify_base().


gtk_widget_modify_font ()

void gtk_widget_modify_font (GtkWidget *widget, PangoFontDescription *font_desc);

Устанавливает шрифт используемый в виджете. Остальные значения стиля остаются нетронутыми. Смотрите также gtk_widget_modify_style().

widget :

GtkWidget

font_desc :

Описание используемого шрифта, или NULL для отмены эффекта предыдущего вызова gtk_widget_modify_font().


gtk_widget_create_pango_context ()

PangoContext* gtk_widget_create_pango_context (GtkWidget *widget);

Создаёт новый PangoContext с соответствующей картой шрифта, описанием шрифта и основного направления отображения текста в виджете. Смотрите также gtk_widget_get_pango_context().

widget :

GtkWidget

Возвращает :

новый PangoContext


gtk_widget_get_pango_context ()

PangoContext* gtk_widget_get_pango_context  (GtkWidget *widget);

Определяет PangoContext с соответствующей картой шрифта, описанием шрифта и основного направления текста в виджете. В отличие от контекста возвращаемого из gtk_widget_create_pango_context(), этот контекст принадлежит виджету (он может использоваться в течении отображения для изменения виджета или удаления виджета из его верхнего уровня) и обновляется для соответствия любым изменениям атрибутов виджета.

Если вы создаёте и сохраняете PangoLayout используя этот контекст, вы должны иметь дело с изменениями для контекста вызывая pango_layout_context_changed() для макета в ответ на сигналы виджета ::style-set и ::direction-changed.

widget :

GtkWidget

Возвращает :

PangoContext для виджета.


gtk_widget_create_pango_layout ()

PangoLayout* gtk_widget_create_pango_layout (GtkWidget *widget, const gchar *text);

Создаёт новый PangoLayout с соответствующей картой шрифта, описанием шрифта и основным направлением отображения текста в виджете.

Если вы сохраняете PangoLayout созданный этим способом, чтобы зарегистрировать макет изменений основного направления или шрифта этого виджета, вы должны вызвать pango_layout_context_changed() в ответ на сигналы виджета ::style-set и ::direction-changed.

widget :

GtkWidget

text :

Текст для установки в макет (может быть NULL)

Возвращает :

the new PangoLayout


gtk_widget_render_icon ()

GdkPixbuf* gtk_widget_render_icon (GtkWidget *widget, const gchar *stock_id, GtkIconSize size, const gchar *detail);

Удобная функция которая использует механизм тем и настройки RC файла для widget, чтобы определить stock_id и предоставить его для изображения (pixbuf). stock_id должен быть ID готового значка, такой как GTK_STOCK_OPEN или GTK_STOCK_OK. size должен быть таким размером как GTK_ICON_SIZE_MENU. detail должен быть строкой которая идентифицирует виджет или код выполняющий представление, так чтобы движки тем могли быть специально выбраны для представления этим виджетом или кодом.

Пикселы в возвращаемом GdkPixbuf являются общими с приложением и не должны освобождаться. Изображение должно освобождаться после использования, с помощью g_object_unref().

widget :

GtkWidget

stock_id :

ID заготовки

size :

Размер заготовки. Размер (GtkIconSize)-1 означает представление в исходном размере без масштабирования (если есть много исходных размеров, GTK+ выберет один из доступных размеров).

detail :

Представляет детали для представления движка темы

Возвращает :

Новое изображение, или NULL если ID не известен


gtk_widget_pop_composite_child ()

void        gtk_widget_pop_composite_child  (void);

Прекращает действие предыдущего вызова gtk_widget_push_composite_child().


gtk_widget_push_composite_child ()

void        gtk_widget_push_composite_child (void);

Делает все вновь созданные виджеты как составные дочерние, перед передачей вызову gtk_widget_pop_composite_child().

Составные виджеты это дочерние виджеты которые реализуют детали контейнера в котором они находятся и не должны быть видимы людям использующим контейнер. Составные дочерние виджеты обрабатываются GTK не по другому (смотрите gtk_container_foreach() против gtk_container_forall()), но например разработчики GUI могут захотеть обработать их другим способом.

Вот простой пример:

gtk_widget_push_composite_child (); scrolled_window->hscrollbar = gtk_hscrollbar_new (hadjustment); gtk_widget_set_composite_name (scrolled_window->hscrollbar, "hscrollbar"); gtk_widget_pop_composite_child (); gtk_widget_set_parent (scrolled_window->hscrollbar, GTK_WIDGET (scrolled_window)); g_object_ref (scrolled_window->hscrollbar);

gtk_widget_queue_clear ()

void        gtk_widget_queue_clear          (GtkWidget *widget);

Внимание

gtk_widget_queue_clear устарела и не должна использоваться во вновь создаваемом коде.

Эта функция тоже самое, что и gtk_widget_queue_draw().

Deprecated: Вместо неё используйте gtk_widget_queue_draw().

widget :

GtkWidget


gtk_widget_queue_clear_area ()

void gtk_widget_queue_clear_area (GtkWidget *widget, gint x, gint y, gint width, gint height);

Внимание

gtk_widget_queue_clear_area устарела и не должна использоваться во вновь создаваемом коде.

Эта функция ничем не отличается от gtk_widget_queue_draw_area(), хотя раньше такое было. Теперь она просто вызывает gtk_widget_queue_draw_area(). Первоначально gtk_widget_queue_clear_area() заставляла перерисовывать фон для GTK_NO_WINDOW виджетов, а gtk_widget_queue_draw_area() не делала этого. Теперь обе функции гарантируют перерисовку фона.

Устарела: Вместо неё используйте gtk_widget_queue_draw_area().

widget :

GtkWidget

x :

x координаты верхнего левого угла перерисовываемого прямоугольника

y :

y координаты верхнего левого угла перерисовываемого прямоугольника

width :

Ширина отображаемого участка

height :

Высота отображаемого участка


gtk_widget_queue_draw_area ()

void gtk_widget_queue_draw_area (GtkWidget *widget, gint x, gint y, gint width, gint height);

Аннулирует прямоугольную область виджета widget определённую x, y, width и height вызывая gdk_window_invalidate_rect() для окна виджета и для всех его дочерних окон. Когда основной цикл бездействует (например после обработки текущемго пакета событий), окно получает событие экспозиции для объединения всех частей которые были аннулированы.

Обычно эта функция используется при реализации виджета. Вы также можете использовать её, или непосредственно gdk_window_invalidate_rect(), для перерисовки GtkDrawingArea или некоторой её части.

Часто вы можете просто вызвать gdk_window_invalidate_rect() или gdk_window_invalidate_region() вместо этой функции. Эти функции аннулируют только одно окно, вместо виджета со всеми дочерними окнами.

Преимущество добавления аннулированного участка вместо простого перерисовывания заключается в эффективности; использование аннулированного участка гарантирует перерисовку только один раз.

widget :

GtkWidget

x :

x координаты верхнего левого угла перерисовываемого прямоугольника

y :

y координаты верхнего левого угла перерисовываемого прямоугольника

width :

Ширина отображаемого участка

height :

Высота отображаемого участка


gtk_widget_reset_shapes ()

void        gtk_widget_reset_shapes         (GtkWidget *widget);

Рекурсивно сбрасывает форму виджета и его потомков.

widget :

GtkWidget.


gtk_widget_set_app_paintable ()

void gtk_widget_set_app_paintable (GtkWidget *widget, gboolean app_paintable);

Устанавливает подразумевает ли приложение отображение виджета при обработке ::expose-event.

Это подсказка для виджета и не затрагивает поведение ядра GTK+; большинство виджетов полностью игнорируют этот флажок. Для виджетов которые обращают внимание на флажок, таких как GtkEventBox и GtkWindow, эффектом будет подавление тематического отображения по умолчанию фона виджета. (Дочерние виджеты все же будут отображаться.) Приложение полностью отвечает за отображение фона виджета.

Помните, фон отображается в течении отображения виджета. Если это не устраивает (например потому, что вы хотите создать прозрачное окно используя RGBA визуализацию), вы можете поработать над этим выполнив:

gtk_widget_realize (window); gdk_window_set_back_pixmap (window->window, NULL, FALSE); gtk_widget_show (window);

widget :

GtkWidget

app_paintable :

TRUE если приложение рисует виджет


gtk_widget_set_double_buffered ()

void gtk_widget_set_double_buffered (GtkWidget *widget, gboolean double_buffered);

По умолчанию виджет дважды буферизуются (double buffered); вы можете использовать эту функцию для отключения буферизации. "Double buffered" просто означает что gdk_window_begin_paint_region() и gdk_window_end_paint() вызываются автоматически при получении события экспозиции виджета. gdk_window_begin_paint() сбрасывает все отрисованное в буфер, а gdk_window_end_paint() отображает буфер на экран. В результате пользователи видят обновление окна в один приём и не видят прорисовку отдельных графических примитивов.

Проще говоря, виджет двойной буферизации не мерцает, поэтому вы должны использовать эту функцию только если уверены в том что делаете.

Помните: если вы выключите двойную буферизацию, вы должны обрабатывать экспонирующие события, так как даже очистка фона или изображения не произойдут автоматически (как это происходит при выполнении gdk_window_begin_paint()).

widget :

GtkWidget

double_buffered :

TRUE для двойной буферизации виджета


gtk_widget_set_redraw_on_allocate ()

void gtk_widget_set_redraw_on_allocate (GtkWidget *widget, gboolean redraw_on_allocate);

Устанавливает перерисовывается ли виджет полностью когда его распределённый размер изменяется. По умолчанию установлено TRUE и весь виджет перерисовывается при каждом изменении его размера.

Помните, для виджета без окна NO_WINDOW установка этого флажка в FALSE отключит все распределяемое изменение размера: виджет не будет перерисовываться даже если его позиция изменится; это позволяет контейнерам ничего не отрисовывать избегая лишних аннулированний. Если вы установите этот флаг для виджета без окна NO_WINDOW который отображается widget->window, вы отвечаете за аннулирование и старого и нового распределения виджета, когда виджет перемещается и отвечаете за аннулирование участка когда виджет увеличивает размер.

widget :

GtkWidget

redraw_on_allocate :

Если TRUE, весь виджет будет перерисован когда получит новый размер распределения. Иначе только новая часть виджета будет перерисована.


gtk_widget_set_composite_name ()

void gtk_widget_set_composite_name (GtkWidget *widget, const gchar *name);

Устанавливает составное имя виджета. Виджет должен быть составным дочерним виджетом своего родителя; смотрите gtk_widget_push_composite_child().

widget :

GtkWidget.

name :

Устанавливаемое имя.


gtk_widget_set_scroll_adjustments ()

gboolean gtk_widget_set_scroll_adjustments (GtkWidget *widget, GtkAdjustment *hadjustment, GtkAdjustment *vadjustment);

Для виджетов поддерживающих прокручивание, устанавливает регуляторы прокрутки и возвращает TRUE. Для виджетов которые не поддерживают прокручивание, ничего не делает и возвращает FALSE. Виджеты не поддерживающие прокручивание можно поместить в GtkViewport, который поддерживает прокручивание.

widget :

GtkWidget

hadjustment :

Регулятор для горизонтального прокручивания, или NULL

vadjustment :

Регулятор для вертикального прокручивания, или NULL

Возвращает :

TRUE если виджет поддерживает прокручивание


gtk_widget_mnemonic_activate ()

gboolean gtk_widget_mnemonic_activate (GtkWidget *widget, gboolean group_cycling);

widget :

group_cycling :

Возвращает :


gtk_widget_class_install_style_property ()

void gtk_widget_class_install_style_property (GtkWidgetClass *klass, GParamSpec *pspec);

Устанавливает свойство стиля для класса виджета. Анализатор свойства стиля определяется значением типа pspec.

klass :

GtkWidgetClass

pspec :

GParamSpec для свойства


gtk_widget_class_install_style_property_parser ()

void gtk_widget_class_install_style_property_parser (GtkWidgetClass *klass, GParamSpec *pspec, GtkRcPropertyParser parser);

Устанавливает свойство стиля класса виджета.

klass :

GtkWidgetClass

pspec :

GParamSpec для свойства стиля

parser :

Анализатор для свойства стиля


gtk_widget_class_find_style_property ()

GParamSpec* gtk_widget_class_find_style_property (GtkWidgetClass *klass, const gchar *property_name);

Находит свойство стиля класса виджета по имени.

klass :

GtkWidgetClass

property_name :

Имя свойства стиля для поиска

Возвращает :

GParamSpec свойства стиля или NULL если class не имеет свойства стиля с таким именем.

Начиная с версии 2.2


gtk_widget_class_list_style_properties ()

GParamSpec** gtk_widget_class_list_style_properties (GtkWidgetClass *klass, guint *n_properties);

Возвращает все свойства стиля класса виджета.

klass :

GtkWidgetClass

n_properties :

Место для хранения количества найденных свойств стиля

Возвращает :

Новый массив GParamSpec*. Массив должен освобождаться с помощью g_free().

Начиная с версии 2.2


gtk_widget_region_intersect ()

GdkRegion* gtk_widget_region_intersect (GtkWidget *widget, GdkRegion *region);

Рассчитывает пересечение области виджета widget's и region, возвращая пересечение. Результат может быть пустым, используйте gdk_region_empty() для проверки.

widget :

GtkWidget

region :

GdkRegion, в некоторой координатной системе как widget->allocation. То есть, относительно widget->window для NO_WINDOW виджетов; относительно родительского окна widget->window для виджетов имеющих собственное окно.

Возвращает :

Участок содержащий пересечение widget и region. Координаты возвращаемого значения относительны widget->window для NO_WINDOW виджетов и относительны родительского окна widget->window для виджетов имеющих собственное окно.


gtk_widget_send_expose ()

gint gtk_widget_send_expose (GtkWidget *widget, GdkEvent *event);

Очень редко используемая функция. Используется для создания сигналов экспонирующего события для виджета. Обычно не используется не посредственно. Единственная ситуация использования заключается в распространении экспонирующего события на дочерние виджеты NO_WINDOW, обычно выполняется с помощью gtk_container_propagate_expose().

Если вам нужно заставить область окна перерисоваться, используйте gdk_window_invalidate_rect() или gdk_window_invalidate_region(). Чтобы выполнить перерисовку немедленно, следом за этим вызовом вызовите gdk_window_process_updates().

widget :

GtkWidget

event :

экспонирующий GdkEvent

Возвращает :

Возврат из распространения сигнала события (TRUE если событие было обработано)


gtk_widget_style_get ()

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

Определяет значения множества свойств стиля widget.

widget :

GtkWidget

first_property_name :

Имя первого определяемого свойства стиля

... :

Пары имен свойств стиля и их значений, начинается с размещения для first_property_name, заканчивается NULL.


gtk_widget_style_get_property ()

void gtk_widget_style_get_property (GtkWidget *widget, const gchar *property_name, GValue *value);

Определяет значение свойства стиля widget.

widget :

GtkWidget

property_name :

Имя свойства стиля

value :

Размещение возвращаемого значения свойства стиля


gtk_widget_style_get_valist ()

void gtk_widget_style_get_valist (GtkWidget *widget, const gchar *first_property_name, va_list var_args);

Вариант gtk_widget_style_get() без массива аргументов. В первую очередь используется языковыми привязками.

widget :

GtkWidget

first_property_name :

Имя первого свойства стиля для получения

var_args :

Список va_list пар имен свойств и расположений возвращённых значений свойств, начиная с расположения для first_property_name.


gtk_widget_get_accessible ()

AtkObject*  gtk_widget_get_accessible       (GtkWidget *widget);

Возвращает объект доступа который описывает виджет вспомогательной технологии.

Если нет загруженной библиотеки доступа (то есть библиотека ATK реализации не загружена через GTK_MODULES или через другую библиотеку приложения, такую как libgnome), то в этом случае AtkObject может быть пустой командой. Аналогично, если нет определённого класса AtkObject реализации доступности для образца виджета в запросе, он унаследует AtkObject реализацию из первого предка класса для которого такая реализация определена.

Документация по библиотеке ATK содержит больше информации об объектах доступности и их использовании.

widget :

GtkWidget

Возвращает :

AtkObject ассоциированный с widget


gtk_widget_child_focus ()

gboolean gtk_widget_child_focus (GtkWidget *widget, GtkDirectionType direction);

Эта функция используется при выборочной реализации виджета; если вы пишите приложение, вы могли бы использовать gtk_widget_grab_focus() для перемещения фокуса в определённый виджет, а gtk_container_set_focus_chain() для изменения фокуса методом табуляции (нажатием клавиши tab). Поэтому вы можете изучить эти функции вместо этой.

gtk_widget_child_focus() вызывается контейнером при пользовательских перемещениях в пределах окна используя горячие клавиши клавиатуры. direction указывает направление движения (вверх(up), вниз(down), влево(left), в право(right), tab вперёд, tab назад). gtk_widget_child_focus() вызывает сигнал "focus" на GtkWidget; виджеты отменяю обработчик по умолчанию для этого сигнала, чтобы реализовать соответствующее поведение фокуса.

Обработчик "focus" по умолчанию для виджета, должен возвращать TRUE если движение в direction оставило фокус в том же виджете, а FALSE если движение в direction переместило фокус за пределы виджета. Если возвращено TRUE, виджеты обычно вызывают gtk_widget_grab_focus() для соответственного размещения фокуса; если возвращено FALSE, они не меняют текущемго расположения фокуса.

Эта функция заменяет gtk_container_focus() из GTK+ 1.2. В которой необходимо было проверять что дочерний виджет был видим, чувствителен и сфокусирован перед вызовом gtk_container_focus(). gtk_widget_child_focus() возвращает FALSE если виджет в текущий момент не в фокусе, поэтому отпала необходимость в вышеперечисленных проверках.

widget :

GtkWidget

direction :

Направление перемещения фокуса

Возвращает :

TRUE если фокус остался в пределах widget


gtk_widget_child_notify ()

void gtk_widget_child_notify (GtkWidget *widget, const gchar *child_property);

Издаёт сигнал "child-notify" для child property child_property на widget.

Это аналог g_object_notify() для дочерних свойств.

widget :

GtkWidget

child_property :

Имя дочернего свойства установленный в класс родительского widget's.


gtk_widget_freeze_child_notify ()

void        gtk_widget_freeze_child_notify  (GtkWidget *widget);

Останавливает распространение сигнала "child-notify" на widget. Сигнал находится в очереди пока вызывается gtk_widget_thaw_child_notify() для widget.

Это аналог g_object_freeze_notify() для дочернего свойства.

widget :

GtkWidget


gtk_widget_get_child_visible ()

gboolean    gtk_widget_get_child_visible    (GtkWidget *widget);

Определяет значение установленное с помощью gtk_widget_set_child_visible(). Если вы чувствуете потребность в этой функции, ваш код вероятно нужно реорганизовать.

Эта функция полезна только для реализации контейнеров и никогда не должна вызываться приложением.

widget :

GtkWidget

Возвращает :

TRUE если виджет отображён с родителем.


gtk_widget_get_parent ()

GtkWidget*  gtk_widget_get_parent           (GtkWidget *widget);

Возвращает родительский контейнер для widget.

widget :

GtkWidget

Возвращает :

Родительский контейнер для widget, или NULL


gtk_widget_get_settings ()

GtkSettings* gtk_widget_get_settings        (GtkWidget *widget);

Определяет объект настроек содержащий настройки (общие настройки свойств, информацию RC файла и т.д.) используемые для этого виджета.

Помните, эта функция вызывается только когда GtkWidget прикреплён к верхнему уровню, так как объект настройки определяется для определённого GdkScreen.

widget :

GtkWidget

Возвращает :

Допустимый объект GtkSettings


gtk_widget_get_clipboard ()

GtkClipboard* gtk_widget_get_clipboard (GtkWidget *widget, GdkAtom selection);

Возвращает объект буфера обмена для выделения полученного с использованием widget. widget должен иметь GdkDisplay связанный с ним, то есть должен быть прикреплён к окну верхнего уровня.

widget :

GtkWidget

selection :

GdkAtom идентифицирующий буфер обмена для использования. GDK_SELECTION_CLIPBOARD выдаёт буфер обмена по умолчанию. Другое основное значение - это GDK_SELECTION_PRIMARY, которое выдаёт первичное X выделение.

Возвращает :

Соответствующий объект буфера обмена. Если нет существующего буфера обмена, то создаётся новый. Как только объект буфера обмена создан, он предоставляется постоянно.

Начиная с версии 2.2


gtk_widget_get_display ()

GdkDisplay* gtk_widget_get_display          (GtkWidget *widget);

Определяет GdkDisplay для окна верхнего уровня связанного с этим виджетом. Эта функция может быть вызвана только после добавления виджета к верхней иерархии виджетов GtkWindow.

В основном, вы должны создавать только ресурсы определяющие отображение виджета при реализации и должны освобождать эти ресурсы когда реализация виджета аннулирована (unrealized).

widget :

GtkWidget

Возвращает :

GdkDisplay для верхнего уровня этого виджета.

Начиная с версии 2.2


gtk_widget_get_root_window ()

GdkWindow*  gtk_widget_get_root_window      (GtkWidget *widget);

Определяет основное окно в котором распределён данный виджет. Эта функция может быть вызвана только после добавления виджета к верхней иерархии виджетов GtkWindow.

Основное окно полезно для таких целей как создание всплывающего GdkWindow связанного с окном. В основном, вы должны создавать только ресурсы определяющие отображение виджета при реализации и должны освобождать эти ресурсы когда реализация виджета аннулирована (unrealized).

widget :

GtkWidget

Возвращает :

GdkWindow основное окно верхнего уровня для виджета.

Начиная с версии 2.2


gtk_widget_get_screen ()

GdkScreen*  gtk_widget_get_screen           (GtkWidget *widget);

Определяет GdkScreen из окна верхнего уровня связанного с этим виджетом. Эта функция может быть вызвана только после добавления виджета к верхней иерархии виджетов GtkWindow.

В основном, вы должны создавать только ресурсы определяющие отображение виджета при реализации и должны освобождать эти ресурсы когда реализация виджета аннулирована (unrealized).

widget :

GtkWidget

Возвращает :

GdkScreen верхнего уровня для этого виджета.

Начиная с версии 2.2


gtk_widget_has_screen ()

gboolean    gtk_widget_has_screen           (GtkWidget *widget);

Проверяет есть ли GdkScreen связанный с этим виджетом. Все виджеты верхнего уровня имеют связанный с ними дисплей и все виджеты добавляются в иерархию окна верхнего уровня.

widget :

GtkWidget

Возвращает :

TRUE если есть GdkScreen связанный с виджетом.

Начиная с версии 2.2


gtk_widget_get_size_request ()

void gtk_widget_get_size_request (GtkWidget *widget, gint *width, gint *height);

Определяет запрашиваемый размер который явно установлен для виджета с помощью gtk_widget_set_size_request(). Значение -1 сохраняемое в width или height указывает что размер не был явно установлен и вместо него будет использована обычная реквизиция виджета. Смотрите gtk_widget_set_size_request(). Для определения размера фактически используемого виджетом, вызовите gtk_widget_size_request() вместо этой функции.

widget :

GtkWidget

width :

Место для сохранения возвращаемого значения ширины, или NULL

height :

Место для сохранения возвращаемого значения высоты, или NULL


gtk_widget_pop_visual()

#define gtk_widget_pop_visual()               ((void) 0)

Внимание

gtk_widget_pop_visual устарела и не должна использоваться во вновь создаваемом коде.

Эта функция устарела: она ничего не делает..


gtk_widget_push_visual()

#define gtk_widget_push_visual(visual)        ((void) 0)

Внимание

gtk_widget_push_visual устарела и не должна использоваться во вновь создаваемом коде.

Эта функция устарела: она ничего не делает..

visual :


gtk_widget_set_child_visible ()

void gtk_widget_set_child_visible (GtkWidget *widget, gboolean is_visible);

Устанавливает должен ли widget отображаться вместе со своим родителем и должен ли widget показываться с помощью gtk_widget_show().

Дочерняя видимость может быть установлена для виджета перед добавлением его в контейнер с помощью gtk_widget_set_parent(), избегая отображения дочерних виджетов раньше необходимого. Однако это значение сбрасывается в состояние по умолчанию TRUE, когда виджет удаляется из контейнера.

Помните, изменение дочерней видимости виджета не влияет на структуру изменения размера виджета. Большинство времени, размер виджета рассчитывается из всех видимых дочерних виджетов, отображены они или нет. Если дело обстоит не так, контейнер может обработать изменение размера самостоятельно.

Эта функция полезна только для реализации контейнеров и никогда не должна вызываться приложениями.

widget :

GtkWidget

is_visible :

если TRUE, widget должен быть отображён вместе с его родителем.


gtk_widget_set_default_visual()

#define gtk_widget_set_default_visual(visual) ((void) 0)

Внимание

gtk_widget_set_default_visual устарела и не должна использоваться во вновь создаваемом коде.

Эта функция устарела: она ничего не делает.

visual :


gtk_widget_set_size_request ()

void gtk_widget_set_size_request (GtkWidget *widget, gint width, gint height);

Устанавливает минимальный размер виджета; то есть, запрашиваемый размер виджета будет width и height. Вы можете использовать эту функцию чтобы заставить виджет иметь больший или меньший размер чем обычно.

В большинстве случаев, gtk_window_set_default_size() лучше чем эта функция для окна верхнего уровня; установка размера по умолчанию позволит пользователям сокращать окно. Установка запрашиваемого размера заставит окно быть по крайней мере того же размера как запрашиваемый. Имея дело с размерами окна, функция gtk_window_set_geometry_hints() также может быть полезной.

Помните о внутренней опасности установки фиксированных размеров темы, перевод на другие языки, разные шрифты и действия пользователя могут соответственно изменить размер данного виджета. Так как не возможно подобрать жесткий размер который будет всегда корректен.

Запрашиваемый размер виджета это наименьший размер который виджет может принять при правильном отображении и функционировании. Однако в некоторых не обычных случаях виджет может быть распределён в меньший чем запрашиваемый размер, а в большинстве случаев может распределяться больше пространства чем запрошено.

Если запрос размера в данном направлении -1 (не установлен), то используется размер "natural".

Фактически виджеты не могут быть меньше чем 1 на 1, но вы можете поместить 0,0 в эту функцию, что значит "наименьший из возможных."

widget :

GtkWidget

width :

Запрашиваемая ширина widget, или -1 для сброса

height :

Запрашиваемая высота widget, или -1 для сброса


gtk_widget_set_visual()

#define gtk_widget_set_visual(widget,visual)  ((void) 0)

Внимание

gtk_widget_set_visual устарела и не должна использоваться во вновь создаваемом коде.

Эта функция устарела: она ничего не делает.

widget :

visual :


gtk_widget_thaw_child_notify ()

void        gtk_widget_thaw_child_notify    (GtkWidget *widget);

Отменяет эффект предыдущего вызова gtk_widget_freeze_child_notify(). В этом случае все сигналы "child-notify" в очереди для widget будут изданы.

widget :

GtkWidget


gtk_widget_set_no_show_all ()

void gtk_widget_set_no_show_all (GtkWidget *widget, gboolean no_show_all);

Устанавливает свойство "no_show_all", которое определяет влияют ли вызовы gtk_widget_show_all() и gtk_widget_hide_all() на этот виджет.

Это главным образом полезно для построения иерархии виджета с внешним управлением видимости, смотрите GtkUIManager.

widget :

GtkWidget

no_show_all :

Новое значение для свойства "no_show_all"

Начиная с версии 2.4


gtk_widget_get_no_show_all ()

gboolean    gtk_widget_get_no_show_all      (GtkWidget *widget);

Возвращает текущеме значение свойства "no_show_all", которое определяет влияют ли вызовы gtk_widget_show_all() и gtk_widget_hide_all() на виджет.

widget :

GtkWidget

Возвращает :

Текущее значение свойства "no_show_all".

Начиная с версии 2.4


gtk_widget_list_mnemonic_labels ()

GList*      gtk_widget_list_mnemonic_labels (GtkWidget *widget);

Возвращает список виджетов, обычно ярлыков, для которых этот виджет мнемоник (смотрите например, gtk_label_set_mnemonic_widget()).

На виджеты в списке нет отдельных ссылок. Если вы хотите выполнить итерацию через список и выполнить действия вызывающие callback-функции разрушающие виджеты, вы сначала должны вызвать g_list_foreach (result, (GFunc)g_object_ref, NULL), а затем затем снять все ссылки с виджетов после использования.

widget :

GtkWidget

Возвращает :

Список мнемонических ярлыков; освободите этот список с помощью g_list_free() когда он больше не нужен.

Начиная с версии 2.4


gtk_widget_add_mnemonic_label ()

void gtk_widget_add_mnemonic_label (GtkWidget *widget, GtkWidget *label);

Добавляет виджет в список мнемонических ярлыков для этого виджета. (Смотрите gtk_widget_list_mnemonic_labels()). Помните, список мнемонических ярлыков очищается когда разрушается виджет, поэтому вызывающая программа должна убедиться в обновлении внутреннего состояния, используя подключение сигнала ::destroy или уведомление.

widget :

GtkWidget

label :

GtkWidget который действует как мнемоник для widget.

Начиная с версии 2.4


gtk_widget_remove_mnemonic_label ()

void gtk_widget_remove_mnemonic_label (GtkWidget *widget, GtkWidget *label);

Удаляет виджет из списка мнемонических ярлыков для данного виджета. (Смотрите gtk_widget_list_mnemonic_labels()). Виджет должен быть предварительно добавлен в список с помощью gtk_widget_add_mnemonic_label().

widget :

GtkWidget

label :

GtkWidget который предварительно установлен как мнемоник для widget с помощью gtk_widget_add_mnemonic_label().

Начиная с версии 2.4


gtk_widget_get_action ()

GtkAction*  gtk_widget_get_action           (GtkWidget *widget);

Возвращает GtkAction для widget. Смотрите также gtk_action_get_proxies().

widget :

GtkWidget

Возвращает :

Уполномоченное действие для виджета, или NULL, если нет прикреплённого действия.

Начиная с версии 2.10


gtk_widget_is_composited ()

gboolean    gtk_widget_is_composited        (GtkWidget *widget);

Может ли widget положиться на правильное отображение альфа канала. В X11 эта функция возвращает выполняется ли композитное управление (compositing manager) для отображения widget's.

widget :

GtkWidget

Возвращает :

TRUE если виджет может рассчитывать на правильное отображение альфа канала.

Начиная с версии 2.10


gtk_requisition_copy ()

GtkRequisition* gtk_requisition_copy        (const GtkRequisition *requisition);

Копирует GtkRequisition.

requisition :

GtkRequisition.

Возвращает :

копия requisition.


gtk_requisition_free ()

void        gtk_requisition_free            (GtkRequisition *requisition);

Освобождает GtkRequisition.

requisition :

GtkRequisition.

Детали свойств

Свойство "app-paintable"

  "app-paintable"        gboolean              : Read / Write

Будет ли приложение непосредственно рисовать на виджете.

Значение по умолчанию: FALSE


Свойство "can-default"

  "can-default"          gboolean              : Read / Write

Может ли виджет быть виджетом по умолчанию.

Значение по умолчанию: FALSE


Свойство "can-focus"

  "can-focus"            gboolean              : Read / Write

Может ли виджет фокусироваться для ввода.

Значение по умолчанию: FALSE


Свойство "composite-child"

  "composite-child"      gboolean              : Read

Является ли виджет частью сложного виджета.

Значение по умолчанию: FALSE


Свойство "events"

  "events"               GdkEventMask          : Read / Write

Маска событий которая решает какие GdkEvents получает виджет.

Значение по умолчанию: GDK_STRUCTURE_MASK


Свойство "extension-events"

  "extension-events"     GdkExtensionMode      : Read / Write

Маска которая решает какие дополнительные события получает виджет.

Значение по умолчанию: GDK_EXTENSION_EVENTS_NONE


Свойство "has-default"

  "has-default"          gboolean              : Read / Write

Является ли виджет виджетом по умолчанию.

Значение по умолчанию: FALSE


Свойство "has-focus"

  "has-focus"            gboolean              : Read / Write

Имеет ли виджет фокус ввода.

Значение по умолчанию: FALSE


Свойство "height-request"

  "height-request"       gint                  : Read / Write

Переписывает запрос высоты виджета, или -1 ели должна использоваться натуральная реквизиция.

Допустимые значения: >= -1

Значение по умолчанию: -1


Свойство "is-focus"

  "is-focus"             gboolean              : Read / Write

Является ли виджет сфокусированным внутри верхнего уровня.

Значение по умолчанию: FALSE


Свойство "name"

  "name"                 gchararray            : Read / Write

Имя виджета.

Значение по умолчанию: NULL


Свойство "no-show-all"

  "no-show-all"          gboolean              : Read / Write

Имеет ли влияние gtk_widget_show_all() на виджет.

Значение по умолчанию: FALSE


Свойство "parent"

  "parent"               GtkContainer          : Read / Write

Родительский виджет виджета. Должен быть контейнерным виджетом.


Свойство "receives-default"

  "receives-default"     gboolean              : Read / Write

Если TRUE, виджет получает действие по умолчанию при фокусировании.

Значение по умолчанию: FALSE


Свойство "sensitive"

  "sensitive"            gboolean              : Read / Write

Реагирует ли виджет на ввод.

Значение по умолчанию: TRUE


Свойство "style"

  "style"                GtkStyle              : Read / Write

Стиль виджета, который содержит информацию о внешнем виде (цвет и т.д.).


Свойство "visible"

  "visible"              gboolean              : Read / Write

Видим ли виджет.

Значение по умолчанию: FALSE


Свойство "width-request"

  "width-request"        gint                  : Read / Write

Перезаписывает запрашиваемую ширину виджета, или -1 если должна использоваться натуральная реквизиция.

Допустимые значения: >= -1

Значение по умолчанию: -1

Детали свойств стиля

Свойство стиля "cursor-aspect-ratio"

  "cursor-aspect-ratio"  gfloat                : Read

Соотношение сторон для отображения курсора вставки.

Допустимые значения: [0,1]

Значение по умолчанию: 0.04


Свойство стиля "cursor-color"

  "cursor-color"         GdkColor              : Read

Цвет для отображения курсора вставки.


Свойство стиля "draw-border"

  "draw-border"          GtkBorder             : Read

Свойство "draw-border" определяет размер внешней области для отображения виджета.

Начиная с версии 2.8


Свойство стиля "focus-line-pattern"

  "focus-line-pattern"   gchararray            : Read

Шаблон линии для отображения индикатора фокуса.

Значение по умолчанию: "\001\001"


Свойство стиля "focus-line-width"

  "focus-line-width"     gint                  : Read

Ширина, в пикселах, индикаторной линии фокуса.

Допустимые значения: >= 0

Значение по умолчанию: 1


Свойство стиля "focus-padding"

  "focus-padding"        gint                  : Read

Ширина, в пикселах, между индикатором фокуса и контейнером виджета.

Допустимые значения: >= 0

Значение по умолчанию: 1


Свойство стиля "interior-focus"

  "interior-focus"       gboolean              : Read

Отображается ли индикатор фокуса внутри виджета.

Значение по умолчанию: TRUE


Свойство стиля "link-color"

  "link-color"           GdkColor              : Read

Свойство "link-color" определяет цвет не посещенной ссылки.

Начиная с версии 2.10


Свойство стиля "scroll-arrow-hlength"

  "scroll-arrow-hlength" gint                  : Read

Свойство "scroll-arrow-hlength" определяет длину горизонтальных кнопок прокручивания.

Допустимые значения: >= 1

Значение по умолчанию: 16

Начиная с версии 2.10


Свойство стиля "scroll-arrow-vlength"

  "scroll-arrow-vlength" gint                  : Read

Свойство "scroll-arrow-vlength" определяет длину вертикальных стрелок прокручивания.

Допустимые значения: >= 1

Значение по умолчанию: 16

Начиная с версии 2.10


Свойство стиля "secondary-cursor-color"

  "secondary-cursor-color" GdkColor              : Read

Цвет для отображения вторичного выделения курсором когда редактируется смешанный right-to-left и left-to-right текст.


Свойство стиля "separator-height"

  "separator-height"     gint                  : Read

Свойство "separator-height" определяет высоту разделителей. Это свойство имеет значение только если "wide-separators" равно TRUE.

Допустимые значения: >= 0

Значение по умолчанию: 0

Начиная с версии 2.10


Свойство стиля "separator-width"

  "separator-width"      gint                  : Read

Свойство "separator-width" определяет ширину разделителя. Это свойство имеет значение только если "wide-separators" равно TRUE.

Допустимые значения: >= 0

Значение по умолчанию: 0

Начиная с версии 2.10


Свойство стиля "visited-link-color"

  "visited-link-color"   GdkColor              : Read

Свойство "visited-link-color" определяет цвет посещённой ссылки.

Начиная с версии 2.10


Свойство стиля "wide-separators"

  "wide-separators"      gboolean              : Read

Свойство "wide-separators" определяет могут ли конфигурироваться разделители и должны ли отображаться используя контейнер вместо линии.

Значение по умолчанию: FALSE

Начиная с версии 2.10

Детали сигналов

Сигнал "accel-closures-changed"

void user_function (GtkWidget *widget, gpointer user_data) :

widget :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "button-press-event"

gboolean user_function (GtkWidget *widget, GdkEventButton *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "button-release-event"

gboolean user_function (GtkWidget *widget, GdkEventButton *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "can-activate-accel"

gboolean user_function (GtkWidget *widget, guint signal_id, gpointer user_data) : Run last

Определяет может ли акселератор, активизирующий сигнал идентифицируемый signal_id, быть активирован в данный момент. Этот сигнал позволяет приложениям и производным виджетам отменять обработчик по умолчанию для GtkWidget для определения может ли акселератор быть активизирован.

widget :

объект получающий сигнал

signal_id :

ID сигнала установленного для widget

Возвращает :

TRUE если сигнал может быть активизирован.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "child-notify"

void user_function (GtkWidget *widget, GParamSpec *pspec, gpointer user_data) : Run first / No recursion / Has details / No hooks

Сигнал ::child-notify издаётся для каждого изменения дочернего свойства объекта. Деталь сигнала содержит имя свойства.

widget :

объект получающий сигнал.

pspec :

GParamSpec изменённого дочернего свойства.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "client-event"

gboolean user_function (GtkWidget *widget, GdkEventClient *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "composited-changed"

void user_function (GtkWidget *widget, gpointer user_data) : Run last / Action

widget :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "configure-event"

gboolean user_function (GtkWidget *widget, GdkEventConfigure *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "delete-event"

gboolean user_function (GtkWidget *widget, GdkEvent *event, gpointer user_data) : Run last

Сигнал ::delete-event издаётся когда пользователь закрывает окно верхнего уровня. Обработчик по умолчанию для этого сигнала уничтожает окно. Подключение gtk_widget_hide_on_delete() для сигнала заставит окно скрываться а не закрываться, поэтому его можно будет позже показать снова.

widget :

объект получающий сигнал.

event :

Событие которое переключает этот сигнал

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "destroy-event"

gboolean user_function (GtkWidget *widget, GdkEvent *event, gpointer user_data) : Run last

Сигнал ::destroy-event издаётся когда GdkWindow уничтожен. Вы редко получаете этот сигнал, потому что большинство виджетов самостоятельно отключаются от их окна перед их разрушением, таким образом нет виджетов владеющих окном в момент уничтожения.

widget :

объект получающий сигнал.

event :

Событие которое переключает этот сигнал

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "direction-changed"

void user_function (GtkWidget *widget, GtkTextDirection arg1, gpointer user_data) : Run first

widget :

объект получающий сигнал.

arg1 :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "drag-begin"

void user_function (GtkWidget *widget, GdkDragContext *drag_context, gpointer user_data) : Run last

Сигнал ::drag-begin издаётся на источнике перетаскивания когда начинается процесс перетаскивания. Обычная причина подключения этого сигнала заключается в том, чтобы установить выбранный значок перетаскивания с помощью gtk_drag_source_set_icon().

widget :

объект получающий сигнал.

drag_context :

Содержимое перетаскивания

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "drag-data-delete"

void user_function (GtkWidget *widget, GdkDragContext *drag_context, gpointer user_data) : Run last

Сигнал ::drag-data-delete издаётся на источнике перетаскивания когда действие перетаскивания GDK_ACTION_MOVE полностью выполнено. Обработчик сигнала отвечает за удаление перемещенных данных после завершения операции. Что означает "удаление", зависит от содержимого операции перетаскивания.

widget :

объект получающий сигнал.

drag_context :

Перетаскиваемое содержимое

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "drag-data-get"

void user_function (GtkWidget *widget, GdkDragContext *drag_context, GtkSelectionData *data, guint info, guint time, gpointer user_data) : Run last

Сигнал ::drag-data-get издаётся на источнике перетаскивания когда адресат перетаскивания запрашивает данные перетаскивания. Это обязывает обработчик сигнала заполнить data данными в формате который указан info. Смотрите gtk_selection_data_set() и gtk_selection_data_set_text().

widget :

объект получающий сигнал.

drag_context :

Перетаскиваемый контекст

data :

GtkSelectionData для заполнения перетаскиваемыми данными

info :

Информация которая была зарегистрирована с целью в GtkTargetList.

time :

Отметка времени когда были запрошены данные

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) : Run last

Сигнал ::drag-data-received издаётся на адресате перетаскивания когда были получены перетаскиваемые данные. Если данные были получены для определения будет ли принято перетаскивание, обработчик вызовет gdk_drag_status() и не закончит перетаскивание. Если данные были получены в ответ на сигнал ::drag-drop signal (и это последний адрес для получения), обработчик для этого сигнала после обработки данных вызовет gtk_drag_finish(), установив параметр success в зависимости от того были ли данные обработаны полностью.

Обработчик может изучить и изменить drag_context->action перед вызовом gtk_drag_finish(), например осуществляя GDK_ACTION_ASK как показано в следующем примере:

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); }

widget :

объект получающий сигнал.

drag_context :

Перетаскиваемый контекст

x :

Где происходит перетаскивание

y :

Где происходит перетаскивание

data :

Получаемые данные

info :

Информация которая зарегистрирована с адресатом в GtkTargetList.

time :

Отметка времени когда были запрошены данные

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "drag-drop"

gboolean user_function (GtkWidget *widget, GdkDragContext *drag_context, gint x, gint y, guint time, gpointer user_data) : Run last

Сигнал ::drag-drop издаётся на адресате перетаскивания когда пользователь перетащил данные на виджет. Обработчик сигнала должен определять находится ли курсор в зоне адресата перетаскивания или нет. Если он не в зоне адресата перетаскивания, возвращается FALSE и никакой дальнейшей обработки не происходит. Иначе, обработчик возвращает TRUE. В этом случае, обработчик должен убедиться что gtk_drag_finish() вызвана, для того чтобы источник знал что перетаскивание выполнено. Вызов gtk_drag_finish() может выполняться или непосредственно, или в обработчике ::drag-data-received который вызывается gtk_drag_get_data() для получения данных для одного или более поддерживаемых адресатов.

widget :

объект получающий сигнал.

drag_context :

Перетаскиваемый контекст

x :

x координаты текущемй позиции курсора

y :

y координаты текущемй позиции курсора

time :

Отметка времени события перемещения

Возвращает :

Находится ли позиция курсора в зоне адресата перетаскивания

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "drag-end"

void user_function (GtkWidget *widget, GdkDragContext *drag_context, gpointer user_data) : Run last

Сигнал ::drag-end издаётся на источнике перетаскивания когда перетаскивание завершено. Обычно сигнал подключается для отмены действий выполненных в ::drag-begin.

widget :

объект получающий сигнал.

drag_context :

Перетаскиваемый контекст

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "drag-leave"

void user_function (GtkWidget *widget, GdkDragContext *drag_context, guint time, gpointer user_data) : Run last

Сигнал ::drag-leave издаётся на адресате перетаскивания когда курсор покидает виджет. Обычное применение этого сигнала отмена действия ::drag-motion, например отмена подсвечивания с помощью gtk_drag_unhighlight()

widget :

объект получающий сигнал.

drag_context :

Перетаскиваемый контекст

time :

Отметка времени события перемещения

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "drag-motion"

gboolean user_function (GtkWidget *widget, GdkDragContext *drag_context, gint x, gint y, guint time, gpointer user_data) : Run last

Сигнал ::drag-motion издаётся на адресате перетаскивания когда пользователь перемещает курсор над виджетом в течении перетаскивания. Обработчик сигнала должен определять находится ли курсор в зоне адресата перетаскивания или нет. Если он не в зоне адресата перетаскивания, возвращается FALSE и дальнейшая обработка прекращается. Иначе, возвращается TRUE. В этом случае, обработчик отвечает за обеспечение необходимой информации для отображения пользователю, вызывая gdk_drag_status(). Если решение о принятии или отклонении перетаскиваемого не может быть принято исключительно на основе позиции курсора и типа данных, обработчик может изучить перетаскиваемые данные вызвав gtk_drag_get_data() и отложить вызов gdk_drag_status() обработчика ::drag-data-received.

Помните, что есть не ::drag-enter сигнал. Адресат перетаскивания должен следить получал ли он какие нибудь сигналы ::drag-motion с момента последнего ::drag-leave и если нет, обработать сигнал ::drag-motion как сигнал "входа(enter)". После "входа(enter)", обработчик обычно подсвечивает адресат перетаскивания с помощью gtk_drag_highlight().

static void drag_motion (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time) { GdkAtom target; PrivateData *private_data = GET_PRIVATE_DATA (widget); if (!private_data->drag_highlight) { private_data->drag_highlight = 1; gtk_drag_highlight (widget); } target = gtk_drag_dest_find_target (widget, context, NULL); if (target == GDK_NONE) gdk_drag_status (context, 0, time); else { private_data->pending_status = context->suggested_action; gtk_drag_get_data (widget, context, target, time); } return TRUE; } static void drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, guint time) { PrivateData *private_data = GET_PRIVATE_DATA (widget); if (private_data->suggested_action) { private_data->suggested_action = 0; /* Мы получаем эти данные из запроса в drag_motion, * а не из запроса в drag_drop, поэтому мы просто * предположили вызов gdk_drag_status(), фактически * не помещая данные. */ str = gtk_selection_data_get_text (selection_data); if (!data_is_acceptable (str)) gdk_drag_status (context, 0, time); else gdk_drag_status (context, private_data->suggested_action, time); } else { /* принимаем перетаскивание */ } }

widget :

объект получающий сигнал.

drag_context :

Перетаскиваемый контекст

x :

x координата текущемй позиции курсора

y :

y координата текущемй позиции курсора

time :

Отметка времени события перемещения

Возвращает :

Находится ли курсор в зоне адресата перетаскивания

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "enter-notify-event"

gboolean user_function (GtkWidget *widget, GdkEventCrossing *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "event"

gboolean user_function (GtkWidget *widget, GdkEvent *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "event-after"

void user_function (GtkWidget *widget, GdkEvent *event, gpointer user_data) :

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "expose-event"

gboolean user_function (GtkWidget *widget, GdkEventExpose *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "focus"

gboolean user_function (GtkWidget *widget, GtkDirectionType arg1, gpointer user_data) : Run last

widget :

объект получающий сигнал.

arg1 :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "focus-in-event"

gboolean user_function (GtkWidget *widget, GdkEventFocus *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "focus-out-event"

gboolean user_function (GtkWidget *widget, GdkEventFocus *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "grab-broken-event"

gboolean user_function (GtkWidget *widget, GdkEvent *event, gpointer user_data) : Run last

Издаётся когда захват фокуса указателя или клавиатуры на окне widget прерван.

В X11, это происходит когда захваченное окно становится не доступно (то есть оно или один из его предков не отображаются), или если некоторое приложение снова перехватило фокус указателя или клавиатуры.

widget :

объект получающий сигнал

event :

GdkEventGrabBroken событие

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.

Начиная с версии 2.8


Сигнал "grab-focus"

void user_function (GtkWidget *widget, gpointer user_data) : Run last / Action

widget :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "grab-notify"

void user_function (GtkWidget *widget, gboolean was_grabbed, gpointer user_data) : Run first

Сигнал ::grab-notify издаётся когда виджет становится затененным захватывая GTK+ (не захват клавиатуры или указателя) другой виджет, или когда снимается затенение из-за удаления захвата.

Виджет затеняется с помощью gtk_grab_add() когда самый верхний захваченный виджет в стеке захвата его группы окна не является его предком.

widget :

объект получающий сигнал

was_grabbed :

FALSE если виджет затенён, TRUE если затенение снято

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "hide"

void user_function (GtkWidget *widget, gpointer user_data) : Run first

widget :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "hierarchy-changed"

void user_function (GtkWidget *widget, GtkWidget *widget2, gpointer user_data) : Run last

Издаётся когда происходят изменения в иерархии виджетов. Точнее, виджет закреплён когда его предок верхнего уровня GtkWindow. Этот сигнал издаётся когда виджет изменяется от закреплённого к не закреплённому и обратно.

widget :

объект получающий сигнал.

widget2 :

Предок верхнего уровня, или NULL

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "key-press-event"

gboolean user_function (GtkWidget *widget, GdkEventKey *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "key-release-event"

gboolean user_function (GtkWidget *widget, GdkEventKey *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "leave-notify-event"

gboolean user_function (GtkWidget *widget, GdkEventCrossing *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "map"

void user_function (GtkWidget *widget, gpointer user_data) : Run first

widget :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "map-event"

gboolean user_function (GtkWidget *widget, GdkEvent *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "mnemonic-activate"

gboolean user_function (GtkWidget *widget, gboolean arg1, gpointer user_data) : Run last

widget :

объект получающий сигнал.

arg1 :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :


Сигнал "motion-notify-event"

gboolean user_function (GtkWidget *widget, GdkEventMotion *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "no-expose-event"

gboolean user_function (GtkWidget *widget, GdkEventNoExpose *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "parent-set"

void user_function (GtkWidget *widget, GtkObject *old_parent, gpointer user_data) : Run first

Сигнал parent-set когда устанавливается новый родитель для виджета.

widget :

Объект на котором издаётся сигнал

old_parent :

Предыдущий родитель, или NULL если виджет просто инициирует родителя.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "popup-menu"

gboolean user_function (GtkWidget *widget, gpointer user_data) : Run last / Action

Этот сигнал издаётся каждый раз когда виджет должен показать всплывающее контекстно-зависимое меню. Это обычно происходит через стандартный механизм привязки клавиш; нажатием определённой клавиши во время фокусировки виджета, пользователь может вызвать всплывающее меню виджета. Например, GtkEntry виджет создаст меню с командами буфера обмена. Смотрите the section called Implement GtkWidget::popup_menu для примера использования этого сигнала.

widget :

объект получающий сигнал

Возвращает :

TRUE если меню активировано

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "property-notify-event"

gboolean user_function (GtkWidget *widget, GdkEventProperty *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "proximity-in-event"

gboolean user_function (GtkWidget *widget, GdkEventProximity *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "proximity-out-event"

gboolean user_function (GtkWidget *widget, GdkEventProximity *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "realize"

void user_function (GtkWidget *widget, gpointer user_data) : Run first

widget :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "screen-changed"

void user_function (GtkWidget *widget, GdkScreen *arg1, gpointer user_data) : Run last

widget :

объект получающий сигнал.

arg1 :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "scroll-event"

gboolean user_function (GtkWidget *widget, GdkEventScroll *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "selection-clear-event"

gboolean user_function (GtkWidget *widget, GdkEventSelection *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "selection-get"

void user_function (GtkWidget *widget, GtkSelectionData *data, guint info, guint time, gpointer user_data) : Run last

widget :

объект получающий сигнал.

data :

info :

time :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "selection-notify-event"

gboolean user_function (GtkWidget *widget, GdkEventSelection *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "selection-received"

void user_function (GtkWidget *widget, GtkSelectionData *data, guint time, gpointer user_data) : Run last

widget :

объект получающий сигнал.

data :

time :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "selection-request-event"

gboolean user_function (GtkWidget *widget, GdkEventSelection *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "show"

void user_function (GtkWidget *widget, gpointer user_data) : Run first

widget :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "show-help"

gboolean user_function (GtkWidget *widget, GtkWidgetHelpType arg1, gpointer user_data) : Run last / Action

widget :

объект получающий сигнал.

arg1 :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :


Сигнал "size-allocate"

void user_function (GtkWidget *widget, GtkAllocation *allocation, gpointer user_data) : Run first

widget :

объект получающий сигнал.

allocation :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "size-request"

void user_function (GtkWidget *widget, GtkRequisition *requisition, gpointer user_data) : Run first

widget :

объект получающий сигнал.

requisition :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "state-changed"

void user_function (GtkWidget *widget, GtkStateType state, gpointer user_data) : Run first

widget :

объект получающий сигнал.

state :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "style-set"

void user_function (GtkWidget *widget, GtkStyle *previous_style, gpointer user_data) : Run first

Сигнал style-set когда для виджета установлен новый стиль. Помните, функции изменения стиля, такие как gtk_widget_modify_base() также издают этот сигнал.

widget :

Объект на котором издаётся сигнал

previous_style :

Предыдущий стиль, или NULL если вы просто инициируете стиль

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "unmap"

void user_function (GtkWidget *widget, gpointer user_data) : Run first

widget :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "unmap-event"

gboolean user_function (GtkWidget *widget, GdkEvent *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "unrealize"

void user_function (GtkWidget *widget, gpointer user_data) : Run last

widget :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "visibility-notify-event"

gboolean user_function (GtkWidget *widget, GdkEventVisibility *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.


Сигнал "window-state-event"

gboolean user_function (GtkWidget *widget, GdkEventWindowState *event, gpointer user_data) : Run last

widget :

объект получающий сигнал.

event :

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

TRUE для предотвращения вызова других обработчиков события. FALSE для распространения события дальше.