Spec-Zone.ru › GTK 3.22

GtkWidget

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

Функции

void (GtkCallback) ()
GtkWidget * gtk_widget_new ()
void gtk_widget_destroy ()
gboolean gtk_widget_in_destruction ()
void gtk_widget_destroyed ()
void gtk_widget_unparent ()
void gtk_widget_show ()
void gtk_widget_show_now ()
void gtk_widget_hide ()
void gtk_widget_show_all ()
void gtk_widget_map ()
void gtk_widget_unmap ()
void gtk_widget_realize ()
void gtk_widget_unrealize ()
void gtk_widget_draw ()
void gtk_widget_queue_draw ()
void gtk_widget_queue_resize ()
void gtk_widget_queue_resize_no_redraw ()
void gtk_widget_queue_allocate ()
GdkFrameClock * gtk_widget_get_frame_clock ()
gint gtk_widget_get_scale_factor ()
gboolean (*GtkTickCallback) ()
guint gtk_widget_add_tick_callback ()
void gtk_widget_remove_tick_callback ()
void gtk_widget_size_request ()
void gtk_widget_get_child_requisition ()
void gtk_widget_size_allocate ()
void gtk_widget_size_allocate_with_baseline ()
void gtk_widget_add_accelerator ()
gboolean gtk_widget_remove_accelerator ()
void gtk_widget_set_accel_path ()
GList * gtk_widget_list_accel_closures ()
gboolean gtk_widget_can_activate_accel ()
gboolean gtk_widget_event ()
gboolean gtk_widget_activate ()
void gtk_widget_reparent ()
gboolean gtk_widget_intersect ()
gboolean gtk_widget_is_focus ()
void gtk_widget_grab_focus ()
END_OF_DOCUMENT_MARKER
void gtk_widget_grab_default ()
void gtk_widget_set_name ()
const gchar * gtk_widget_get_name ()
void gtk_widget_set_state ()
void gtk_widget_set_sensitive ()
void gtk_widget_set_parent ()
void gtk_widget_set_parent_window ()
GdkWindow * gtk_widget_get_parent_window ()
void gtk_widget_set_events ()
gint gtk_widget_get_events ()
void gtk_widget_add_events ()
void gtk_widget_set_device_events ()
GdkEventMask gtk_widget_get_device_events ()
void gtk_widget_add_device_events ()
void gtk_widget_set_device_enabled ()
gboolean gtk_widget_get_device_enabled ()
GtkWidget * gtk_widget_get_toplevel ()
GtkWidget * gtk_widget_get_ancestor ()
GdkVisual * gtk_widget_get_visual ()
void gtk_widget_set_visual ()
void gtk_widget_get_pointer ()
gboolean gtk_widget_is_ancestor ()
gboolean gtk_widget_translate_coordinates ()
gboolean gtk_widget_hide_on_delete ()
void gtk_widget_set_style ()
void gtk_widget_ensure_style ()
GtkStyle * gtk_widget_get_style ()
void gtk_widget_reset_rc_styles ()
GtkStyle * gtk_widget_get_default_style ()
void gtk_widget_set_direction ()
GtkTextDirection gtk_widget_get_direction ()
void gtk_widget_set_default_direction ()
GtkTextDirection gtk_widget_get_default_direction ()
void gtk_widget_shape_combine_region ()
void gtk_widget_input_shape_combine_region ()
void gtk_widget_path ()
void gtk_widget_class_path ()
gchar * gtk_widget_get_composite_name ()
void gtk_widget_override_background_color ()
void gtk_widget_override_color ()
void gtk_widget_override_font ()
void gtk_widget_override_symbolic_color ()
void gtk_widget_override_cursor ()
void gtk_widget_modify_style ()
GtkRcStyle * gtk_widget_get_modifier_style ()
void gtk_widget_modify_fg ()
void gtk_widget_modify_bg ()
void gtk_widget_modify_text ()
void gtk_widget_modify_base ()
void gtk_widget_modify_font ()
void gtk_widget_modify_cursor ()
PangoContext * gtk_widget_create_pango_context ()
PangoContext * gtk_widget_get_pango_context ()
void gtk_widget_set_font_options ()
const cairo_font_options_t * gtk_widget_get_font_options ()
void gtk_widget_set_font_map ()
PangoFontMap * gtk_widget_get_font_map ()
PangoLayout * gtk_widget_create_pango_layout ()
GdkPixbuf * gtk_widget_render_icon ()
GdkPixbuf * gtk_widget_render_icon_pixbuf ()
void gtk_widget_pop_composite_child ()
void gtk_widget_push_composite_child ()
void gtk_widget_queue_draw_area ()
void gtk_widget_queue_draw_region ()
void gtk_widget_set_app_paintable ()
void gtk_widget_set_double_buffered ()
void gtk_widget_set_redraw_on_allocate ()
void gtk_widget_set_composite_name ()
gboolean gtk_widget_mnemonic_activate ()
void gtk_widget_class_install_style_property ()
void gtk_widget_class_install_style_property_parser ()
GParamSpec * gtk_widget_class_find_style_property ()
GParamSpec ** gtk_widget_class_list_style_properties ()
cairo_region_t * gtk_widget_region_intersect ()
gint gtk_widget_send_expose ()
gboolean gtk_widget_send_focus_change ()
void gtk_widget_style_get ()
void gtk_widget_style_get_property ()
void gtk_widget_style_get_valist ()
void gtk_widget_style_attach ()
void gtk_widget_class_set_accessible_type ()
void gtk_widget_class_set_accessible_role ()
AtkObject * gtk_widget_get_accessible ()
gboolean gtk_widget_child_focus ()
void gtk_widget_child_notify ()
void gtk_widget_freeze_child_notify ()
gboolean gtk_widget_get_child_visible ()
GtkWidget * gtk_widget_get_parent ()
GtkSettings * gtk_widget_get_settings ()
GtkClipboard * gtk_widget_get_clipboard ()
GdkDisplay * gtk_widget_get_display ()
GdkWindow * gtk_widget_get_root_window ()
GdkScreen * gtk_widget_get_screen ()
gboolean gtk_widget_has_screen ()
void gtk_widget_get_size_request ()
void gtk_widget_set_child_visible ()
void gtk_widget_set_size_request ()
void gtk_widget_thaw_child_notify ()
void gtk_widget_set_no_show_all ()
gboolean gtk_widget_get_no_show_all ()
GList * gtk_widget_list_mnemonic_labels ()
void gtk_widget_add_mnemonic_label ()
void gtk_widget_remove_mnemonic_label ()
gboolean gtk_widget_is_composited ()
void gtk_widget_error_bell ()
gboolean gtk_widget_keynav_failed ()
gchar * gtk_widget_get_tooltip_markup ()
void gtk_widget_set_tooltip_markup ()
gchar * gtk_widget_get_tooltip_text ()
void gtk_widget_set_tooltip_text ()
GtkWindow * gtk_widget_get_tooltip_window ()
void gtk_widget_set_tooltip_window ()
gboolean gtk_widget_get_has_tooltip ()
void gtk_widget_set_has_tooltip ()
void gtk_widget_trigger_tooltip_query ()
GdkWindow * gtk_widget_get_window ()
void gtk_widget_register_window ()
void gtk_widget_unregister_window ()
gboolean gtk_cairo_should_draw_window ()
void gtk_cairo_transform_to_window ()
int gtk_widget_get_allocated_width ()
int gtk_widget_get_allocated_height ()
void gtk_widget_get_allocation ()
void gtk_widget_set_allocation ()
int gtk_widget_get_allocated_baseline ()
void gtk_widget_get_allocated_size ()
void gtk_widget_get_clip ()
void gtk_widget_set_clip ()
gboolean gtk_widget_get_app_paintable ()
gboolean gtk_widget_get_can_default ()
void gtk_widget_set_can_default ()
gboolean gtk_widget_get_can_focus ()
void gtk_widget_set_can_focus ()
gboolean gtk_widget_get_focus_on_click ()
void gtk_widget_set_focus_on_click ()
gboolean gtk_widget_get_double_buffered ()
gboolean gtk_widget_get_has_window ()
void gtk_widget_set_has_window ()
gboolean gtk_widget_get_sensitive ()
gboolean gtk_widget_is_sensitive ()
GtkStateType gtk_widget_get_state ()
gboolean gtk_widget_get_visible ()
gboolean gtk_widget_is_visible ()
void gtk_widget_set_visible ()
void gtk_widget_set_state_flags ()
void gtk_widget_unset_state_flags ()
GtkStateFlags gtk_widget_get_state_flags ()
gboolean gtk_widget_has_default ()
gboolean gtk_widget_has_focus ()
gboolean gtk_widget_has_visible_focus ()
gboolean gtk_widget_has_grab ()
gboolean gtk_widget_has_rc_style ()
gboolean gtk_widget_is_drawable ()
gboolean gtk_widget_is_toplevel ()
void gtk_widget_set_window ()
void gtk_widget_set_receives_default ()
gboolean gtk_widget_get_receives_default ()
void gtk_widget_set_support_multidevice ()
gboolean gtk_widget_get_support_multidevice ()
void gtk_widget_set_realized ()
gboolean gtk_widget_get_realized ()
void gtk_widget_set_mapped ()
gboolean gtk_widget_get_mapped ()
void gtk_widget_get_requisition ()
gboolean gtk_widget_device_is_shadowed ()
GdkModifierType gtk_widget_get_modifier_mask ()
void gtk_widget_insert_action_group ()
double gtk_widget_get_opacity ()
void gtk_widget_set_opacity ()
const gchar ** gtk_widget_list_action_prefixes ()
GActionGroup * gtk_widget_get_action_group ()
GtkWidgetPath * gtk_widget_get_path ()
GtkStyleContext * gtk_widget_get_style_context ()
void gtk_widget_reset_style ()
const char * gtk_widget_class_get_css_name ()
void gtk_widget_class_set_css_name ()
GtkRequisition * gtk_requisition_new ()
GtkRequisition * gtk_requisition_copy ()
void gtk_requisition_free ()
void gtk_widget_get_preferred_height ()
void gtk_widget_get_preferred_width ()
void gtk_widget_get_preferred_height_for_width ()
void gtk_widget_get_preferred_width_for_height ()
void gtk_widget_get_preferred_height_and_baseline_for_width ()
GtkSizeRequestMode gtk_widget_get_request_mode ()
void gtk_widget_get_preferred_size ()
gint gtk_distribute_natural_allocation ()
GtkAlign gtk_widget_get_halign ()
void gtk_widget_set_halign ()
GtkAlign gtk_widget_get_valign ()
GtkAlign gtk_widget_get_valign_with_baseline ()
void gtk_widget_set_valign ()
gint gtk_widget_get_margin_left ()
void gtk_widget_set_margin_left ()
gint gtk_widget_get_margin_right ()
void gtk_widget_set_margin_right ()
gint gtk_widget_get_margin_start ()
void gtk_widget_set_margin_start ()
gint gtk_widget_get_margin_end ()
void gtk_widget_set_margin_end ()
gint gtk_widget_get_margin_top ()
void gtk_widget_set_margin_top ()
gint gtk_widget_get_margin_bottom ()
void gtk_widget_set_margin_bottom ()
gboolean gtk_widget_get_hexpand ()
void gtk_widget_set_hexpand ()
gboolean gtk_widget_get_hexpand_set ()
void gtk_widget_set_hexpand_set ()
gboolean gtk_widget_get_vexpand ()
void gtk_widget_set_vexpand ()
gboolean gtk_widget_get_vexpand_set ()
void gtk_widget_set_vexpand_set ()
void gtk_widget_queue_compute_expand ()
gboolean gtk_widget_compute_expand ()
void gtk_widget_init_template ()
void gtk_widget_class_set_template ()
void gtk_widget_class_set_template_from_resource ()
GObject * gtk_widget_get_template_child ()
#define gtk_widget_class_bind_template_child()
#define gtk_widget_class_bind_template_child_internal()
#define gtk_widget_class_bind_template_child_private()
#define gtk_widget_class_bind_template_child_internal_private()
void gtk_widget_class_bind_template_child_full ()
#define gtk_widget_class_bind_template_callback()
void gtk_widget_class_bind_template_callback_full ()
void gtk_widget_class_set_connect_func ()

Свойства

gboolean app-paintable Чтение / Запись
gboolean can-default Чтение / Запись
gboolean can-focus Чтение / Запись
gboolean composite-child Чтение
gboolean double-buffered Чтение / Запись
GdkEventMask events Чтение / Запись
gboolean expand Чтение / Запись
gboolean focus-on-click Чтение / Запись
GtkAlign halign Чтение / Запись
gboolean has-default Чтение / Запись
gboolean has-focus Чтение / Запись
gboolean has-tooltip Чтение / Запись
gint height-request Чтение / Запись
gboolean hexpand Чтение / Запись
gboolean hexpand-set Чтение / Запись
gboolean is-focus Чтение / Запись
gint margin Чтение / Запись
gint margin-bottom Чтение / Запись
gint margin-end Чтение / Запись
gint margin-left Чтение / Запись
gint margin-right Чтение / Запись
gint margin-start Чтение / Запись
gint margin-top Чтение / Запись
gchar * name Чтение / Запись
gboolean no-show-all Чтение / Запись
gdouble opacity Чтение / Запись
GtkContainer * parent Чтение / Запись
gboolean receives-default Чтение / Запись
gint scale-factor Чтение
gboolean sensitive Чтение / Запись
GtkStyle * style Чтение / Запись
gchar * tooltip-markup Чтение / Запись
gchar * tooltip-text Чтение / Запись
GtkAlign valign Чтение / Запись
gboolean vexpand Чтение / Запись
gboolean vexpand-set Чтение / Запись
gboolean visible Чтение / Запись
gint width-request Чтение / Запись
GdkWindow * window Чтение

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

gfloat cursor-aspect-ratio Чтение
GdkColor * cursor-color Чтение
gchar * focus-line-pattern Чтение
gint focus-line-width Чтение
gint focus-padding Чтение
gboolean interior-focus Чтение
GdkColor * link-color Чтение
gint scroll-arrow-hlength Чтение
gint scroll-arrow-vlength Чтение
GdkColor * secondary-cursor-color Чтение
gint separator-height Чтение
gint separator-width Чтение
gint text-handle-height Чтение
gint text-handle-width Чтение
GdkColor * visited-link-color Чтение
gboolean wide-separators Чтение
gboolean window-dragging Чтение

Сигналы

void accel-closures-changed
gboolean button-press-event Выполнить последним
gboolean button-release-event Выполнить последним
gboolean can-activate-accel Выполнить последним
void child-notify Без хуков
void composited-changed Действие
gboolean configure-event Выполнить последним
gboolean damage-event Выполнить последним
gboolean delete-event Выполнить последним
void destroy Без хуков
gboolean destroy-event Выполнить последним
void direction-changed Выполнить первым
void drag-begin Выполнить последним
void drag-data-delete Выполнить последним
void drag-data-get Выполнить последним
void drag-data-received Выполнить последним
gboolean drag-drop Выполнить последним
void drag-end Выполнить последним
gboolean drag-failed Выполнить последним
void drag-leave Выполнить последним
gboolean drag-motion Выполнить последним
gboolean draw Выполнить последним
gboolean enter-notify-event Выполнить последним
gboolean event Выполнить последним
void event-after
gboolean focus Выполнить последним
gboolean focus-in-event Выполнить последним
gboolean focus-out-event Выполнить последним
gboolean grab-broken-event Выполнить последним
void grab-focus Действие
void grab-notify Выполнить сначала
void hide Выполнить сначала
void hierarchy-changed Выполнить последним
gboolean key-press-event Выполнить последним
gboolean key-release-event Выполнить последним
gboolean keynav-failed Выполнить последним
gboolean leave-notify-event Выполнить последним
void map Выполнить сначала
gboolean map-event Выполнить последним
gboolean mnemonic-activate Выполнить последним
gboolean motion-notify-event Выполнить последним
void move-focus Действие
void parent-set Выполнить сначала
gboolean popup-menu Действие
gboolean property-notify-event Выполнить последним
gboolean proximity-in-event Выполнить последним
gboolean proximity-out-event Выполнить последним
gboolean query-tooltip Выполнить последним
void realize Выполнить сначала
void screen-changed Выполнить последним
gboolean scroll-event Выполнить последним
gboolean selection-clear-event Выполнить последним
void selection-get Выполнить последним
gboolean selection-notify-event Выполнить последним
void selection-received Выполнить последним
gboolean selection-request-event Выполнить последним
void show Выполнить сначала
gboolean show-help Действие
void size-allocate Выполнить сначала
void state-changed Выполнить сначала
void state-flags-changed Выполнить сначала
void style-set Выполнить сначала
void style-updated Выполнить сначала
gboolean touch-event Выполнить последним
void unmap Выполнить сначала
gboolean unmap-event Выполнить последним
void unrealize Выполнить последним
gboolean visibility-notify-event Выполнить последним
gboolean window-state-event Выполнить последним

Типы и значения

GtkWidget
struct GtkWidgetClass
GtkRequisition
typedef GtkAllocation
enum GtkWidgetHelpType
enum GtkTextDirection
enum GtkStateType
enum GtkSizeRequestMode
struct GtkRequestedSize
enum GtkAlign

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

    GBoxed
    ╰── GtkRequisition
    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ├── GtkContainer
            ├── GtkMisc
            ├── GtkCalendar
            ├── GtkCellView
            ├── GtkDrawingArea
            ├── GtkEntry
            ├── GtkGLArea
            ├── GtkRange
            ├── GtkSeparator
            ├── GtkHSV
            ├── GtkInvisible
            ├── GtkProgressBar
            ├── GtkSpinner
            ├── GtkSwitch
            ╰── GtkLevelBar

Известные интерфейсы-потомки

GtkWidget необходим для GtkActionable, GtkAppChooser, GtkCellEditable и GtkToolShell.

Реализованные интерфейсы

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

Файлы заголовков

#include <gtk/gtk.h>

Описание

GtkWidget — базовый класс всех виджетов в GTK+, от которого производятся все остальные. Он управляет жизненным циклом виджета, состояниями и стилем.

Управление геометрией с учётом высоты по ширине

GTK+ использует систему управления геометрией «высота по ширине» (и «ширина по высоте»). «Высота по ширине» означает, что виджет может изменять требуемое вертикальное пространство, в зависимости от предоставляемой горизонтальной области (аналогично для «ширины по высоте»). Наиболее распространённый пример — метка, которая перестраивает свой текст для заполнения доступной ширины, переносит текст на новые строки и, таким образом, требует меньшей высоты.

Управление геометрией «высота по ширине» в GTK+ реализовано пятью виртуальными методами:

  • GtkWidgetClass.get_request_mode()

  • GtkWidgetClass.get_preferred_width()

  • GtkWidgetClass.get_preferred_height()

  • GtkWidgetClass.get_preferred_height_for_width()

  • GtkWidgetClass.get_preferred_width_for_height()

  • GtkWidgetClass.get_preferred_height_and_baseline_for_width()

Важно учитывать несколько моментов при реализации управления «высота по ширине» и использовании его в контейнерах.

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

Например, при запросе в обычном режиме GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH: Сначала вычисляется минимальная и естественная ширина каждого виджета в интерфейсе с помощью gtk_widget_get_preferred_width(). Так как предпочтительные ширины каждого контейнера зависят от предпочтительных ширин его дочерних элементов, эта информация распространяется по иерархии, и в итоге определяется минимальная и естественная ширина для всего верхнего уровня. Затем верхний уровень использует минимальную ширину для запроса минимальной высоты, соответствующей этой ширине, с помощью gtk_widget_get_preferred_height_for_width(), что также будет итерационной операцией. Минимальная высота для минимальной ширины обычно используется для установки минимального ограничения размера на верхнем уровне (если не используется gtk_window_set_geometry_hints()).

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

Дополнительную информацию о выполнении выделений «высота по ширине» контейнерными виджетами см. в разделе «Управление геометрией» GtkContainer.

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

Например, GtkLabel, который выполняет перенос слов по высоте в зависимости от ширины, не ожидает вызова GtkWidgetClass.get_preferred_height(), так как этот вызов специфичен для запроса «ширина по высоте». В этом случае метка должна вернуть высоту, необходимую для своей минимальной возможной ширины. Следуя этому правилу, любой виджет, который обрабатывает запросы «высота по ширине» или «ширина по высоте», всегда получит выделенное пространство, достаточно для размещения своего содержимого.

Вот примеры того, как виджет GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH обычно справляется с запросами «ширина по высоте». Для GtkWidgetClass.get_preferred_height() он будет:

А в GtkWidgetClass.get_preferred_width_for_height() он просто вернёт минимальную и естественную ширину:

Часто виджету требуется получить собственный запрос во время запроса размера или выделения. Например, при вычислении высоты виджету может потребоваться также вычислить ширину. Или при определении способа использования выделения виджету может потребоваться знать свой естественный размер. В этих случаях виджет должен быть внимателен к тому, чтобы вызывать свои виртуальные методы напрямую, например так:

Нельзя использовать обертки функций, такие как gtk_widget_get_preferred_width() в своей собственной реализации запроса размера. Они возвращают запрос, скорректированный GtkSizeGroup и виртуальным методом GtkWidgetClass.adjust_size_request(). Если виджет использовал обертки в своих реализациях виртуальных методов, то корректировки (например, отступы виджета) будут применены дважды. GTK+ поэтому не допускает этого и выведет предупреждение, если вы попытаетесь это сделать.

Конечно, если вы получаете запрос размера для другого виджета, например, для дочернего элемента контейнера, вы должны использовать API обёртки. В противном случае вы не должным образом учтёте отступы виджета, GtkSizeGroup и так далее.

Начиная с версии 3.10, GTK+ также поддерживает вертикальное выравнивание виджетов по отметке. Это означает, что виджеты позиционируются таким образом, что типографическая отметка виджетов в одной строке выравнивается. Это происходит, если виджет поддерживает отметки, имеет вертикальное выравнивание GTK_ALIGN_BASELINE и находится внутри контейнера, который поддерживает отметки и имеет естественную «строку», к которой он выравнивается по отметке, или отметку, заданную родительским элементом.

Поддержка выравнивания по отметке для виджета выполняется виртуальной функцией GtkWidgetClass.get_preferred_height_and_baseline_for_width(). Она позволяет указывать отметку в сочетании с минимальной и естественной высотой. Если отметки нет, вы можете вернуть -1, чтобы указать это. По умолчанию эта виртуальная функция обращается к GtkWidgetClass.get_preferred_height() и GtkWidgetClass.get_preferred_height_for_width(), поэтому, если отметки не поддерживаются, её реализовывать не нужно.

Если виджет выравнивается по отметке, ему будет выделено всё пространство в родительском элементе, как будто он имеет GTK_ALIGN_FILL, но выбранную отметку можно найти с помощью gtk_widget_get_allocated_baseline(). Если это значение отлично от -1, вам необходимо выровнять виджет так, чтобы отметка отображалась в нужном положении.

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

GtkWidget вводит «свойства стиля» — это, по сути, свойства объекта, которые хранятся не в самом объекте, а в объекте стиля, связанном с виджетом. Свойства стиля задаются в файлах ресурсов. Этот механизм используется для настройки, например, расположения стрелок полосы прокрутки с помощью темы, что даёт авторам тем больше контроля над внешним видом приложений без необходимости написания движка темы на языке 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 как GtkBuildable

Реализация GtkWidget интерфейса GtkBuildable поддерживает пользовательский элемент <accelerator>, у которого есть атрибуты «key», «modifiers» и «signal», позволяющие указывать активаторы.

Пример фрагмента определения пользовательского интерфейса, определяющего активатор:

Помимо активаторов, GtkWidget также поддерживает пользовательский элемент <accessible>, который поддерживает действия и отношения. Свойства реализации accessible объекта можно установить, обратившись к внутреннему дочернему элементу «accessible» GtkWidget.

Пример фрагмента определения пользовательского интерфейса, определяющего доступность:

Наконец, GtkWidget позволяет связывать с виджетами информацию о стиле, например, классы стиля, с помощью пользовательского элемента <style>:

Создание составных виджетов из шаблонов XML

GtkWidget предоставляет некоторые средства для автоматизации процесса создания составных виджетов с использованием языка описания интерфейса GtkBuilder.

Для создания составных виджетов с помощью XML GtkBuilder необходимо связать описание интерфейса с классом виджета во время инициализации класса, используя gtk_widget_class_set_template().

Семантика описания интерфейса, ожидаемая в описаниях шаблонов составных виджетов, немного отличается от обычного XML GtkBuilder.

В отличие от обычных описаний интерфейса, gtk_widget_class_set_template() будет ожидать тег <template> как непосредственного дочернего тега тега <interface> верхнего уровня. Тег <template> должен содержать атрибут «class», значение которого должно быть именем типа виджета. Дополнительно можно указать атрибут «parent», чтобы указать непосредственный родительский тип типа виджета. Этот атрибут игнорируется GtkBuilder, но необходим Glade для интроспекции свойств и внутренних дочерних элементов для данного типа, когда сам тип не существует.

XML, содержащийся внутри тега <template>, ведет себя так, как будто он был добавлен к тегу <object>, определяющему widget. Вы можете задавать свойства widget, вставляя теги <property> в тег <template>, а также добавлять теги <child> для добавления дочерних элементов и расширения widget обычным способом, как вы это делаете с тегами <object>.

Кроме того, теги <object> также могут быть добавлены до и после начального тега <template> обычным способом, что позволяет определять вспомогательные объекты, которые могут быть сосланы на другие виджеты, объявленные как дочерние элементы тега <template>.

Пример определения шаблона GtkBuilder:

Обычно фрагмент шаблона размещается в файле, который входит в состав вашего проекта, используя GResource. Для загрузки шаблона необходимо вызвать gtk_widget_class_set_template_from_resource() из инициализации класса вашего типа GtkWidget:

Вам также необходимо вызвать gtk_widget_init_template() из функции инициализации экземпляра:

Вы можете получить доступ к виджетам, определенным в шаблоне, используя функцию gtk_widget_get_template_child(), но обычно вы объявляете указатель в структуре данных экземпляра вашего типа с тем же именем, что и виджет в определении шаблона, и вызываете gtk_widget_class_bind_template_child_private() с этим именем, например:

Вы также можете использовать gtk_widget_class_bind_template_callback() для подключения обратного вызова сигнала, определенного в шаблоне, к функции, видимой в области видимости класса, например:

Функции

GtkCallback ()

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

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

Параметры

widget

элемент управления для обработки

data

данные, предоставленные пользователем.

[closure]

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

ИД типа элемента управления для создания

first_property_name

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

...

значение первого свойства, за которым следуют дополнительные свойства, завершённые NULL

Возвращаемое значение

новый GtkWidget типа widget_type

gtk_widget_destroy ()

void
gtk_widget_destroy (GtkWidget *widget);

Уничтожает элемент управления.

При уничтожении элемента управления все ссылки, которые он содержит на другие объекты, будут освобождены:

  • если элемент управления находится внутри контейнера, он будет удалён из своего родителя

  • если элемент управления является контейнером, все его дочерние элементы будут уничтожены рекурсивно

  • если элемент управления является верхним уровнем, он будет удалён из списка элементов верхнего уровня, которые GTK+ поддерживает внутри

Ожидается, что все ссылки, удерживаемые на элементе управления, также будут освобождены; вы должны подключиться к сигналу “destroy”, если удерживаете ссылку на widget и хотите удалить её, когда эта функция вызывается. Это не обязательно, если вы реализуете GtkContainer, так как вы сможете использовать виртуальную функцию GtkContainerClass.remove() для этого.

Важно отметить, что gtk_widget_destroy() заставит элемент widget завершить работу только в том случае, если нет дополнительных ссылок, полученных с помощью g_object_ref(), удерживаются на нём. В случае, если дополнительные ссылки присутствуют, widget будет в "инерционном" состоянии после вызова этой функции; widget по-прежнему будет указывать на действительную память, позволяя вам освободить удерживаемые ссылки, но вы не сможете запросить состояние самого элемента управления.

Как правило, вы должны вызывать эту функцию для элементов верхнего уровня и редко для дочерних элементов.

См. также: gtk_container_remove()

Параметры

widget

a GtkWidget

gtk_widget_in_destruction ()

gboolean
gtk_widget_in_destruction (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если widget уничтожается

gtk_widget_destroyed ()

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

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

Параметры

widget

a GtkWidget

widget_pointer

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

[inout][transfer none]

gtk_widget_unparent ()

void
gtk_widget_unparent (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

gtk_widget_show ()

void
gtk_widget_show (GtkWidget *widget);

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

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

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

Параметры

widget

a GtkWidget

gtk_widget_show_now ()

void
gtk_widget_show_now (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

gtk_widget_hide ()

void
gtk_widget_hide (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

gtk_widget_show_all ()

void
gtk_widget_show_all (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

gtk_widget_map ()

void
gtk_widget_map (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

gtk_widget_unmap ()

void
gtk_widget_unmap (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

gtk_widget_realize ()

void
gtk_widget_realize (GtkWidget *widget);

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

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

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

Параметры

widget

a GtkWidget

gtk_widget_unrealize ()

void
gtk_widget_unrealize (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

gtk_widget_draw ()

void
gtk_widget_draw (GtkWidget *widget,
                 cairo_t *cr);

Рисует widget на cr. Левый верхний угол виджета будет нарисован в текущей точке начала координат cr.

Вы должны передать контекст Cairo в качестве аргумента cr, который находится в исходном состоянии. В противном случае результат рисования не определён. Например, изменение оператора с помощью cairo_set_operator() или ширины линии с помощью cairo_set_line_width() может иметь нежелательные побочные эффекты. Однако вы можете изменить матрицу преобразования контекста, например, с помощью cairo_scale(), cairo_translate() или cairo_set_matrix(), и область обрезки с помощью cairo_clip() перед вызовом этой функции. Также можно изменить контекст с помощью cairo_save() и cairo_push_group() перед вызовом этой функции.

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

Параметры

widget

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

cr

контекст Cairo для рисования

С: 3.0

gtk_widget_queue_draw ()

void
gtk_widget_queue_draw (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

gtk_widget_queue_resize ()

void
gtk_widget_queue_resize (GtkWidget *widget);

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

Обратите внимание, что вы не можете вызвать gtk_widget_queue_resize() для виджета изнутри его реализации виртуального метода GtkWidgetClass::size_allocate. Вызовы gtk_widget_queue_resize() изнутри GtkWidgetClass::size_allocate будут проигнорированы.

Параметры

widget

a GtkWidget

gtk_widget_queue_resize_no_redraw ()

void
gtk_widget_queue_resize_no_redraw (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

С: 2.4

gtk_widget_queue_allocate ()

void
gtk_widget_queue_allocate (GtkWidget *widget);

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

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

Пример использования этой функции — gtk_widget_set_halign().

Параметры

widget

a GtkWidget

С: 3.20

gtk_widget_get_frame_clock ()

GdkFrameClock *
gtk_widget_get_frame_clock (GtkWidget *widget);

Получает таймер кадра для виджета. Таймер кадра — это глобальный «тактовый генератор», который можно использовать для управления анимацией и перерисовкой. Наиболее частая причина получения таймера кадра — вызов gdk_frame_clock_get_frame_time(), чтобы получить время, используемое для анимации. Например, можно записать начало анимации с начальным значением из gdk_frame_clock_get_frame_time(), а затем обновить анимацию, вызвав gdk_frame_clock_get_frame_time() снова во время каждой перерисовки.

gdk_frame_clock_request_phase() приведет к новому кадру на таймере, но не обязательно перерисует какие-либо виджеты. Чтобы перерисовать виджет, необходимо использовать gtk_widget_queue_draw(), которое делает виджет недействительным (тем самым запланировав его перерисовку в следующем кадре). gtk_widget_queue_draw() также приведет к запросу кадра на соответствующем таймере кадра.

Таймер кадра виджета не изменится, пока виджет отображается. Перемещение виджета (что подразумевает временное скрытие) может изменить таймер кадра виджета.

У неинициализированных виджетов нет таймера кадра.

Параметры

widget

a GtkWidget

Возвращаемое значение

a GdkFrameClock, или NULL, если виджет не инициализирован.

[nullable][transfer none]

С: 3.8

gtk_widget_get_scale_factor ()

gint
gtk_widget_get_scale_factor (GtkWidget *widget);

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

См. gdk_window_get_scale_factor().

Параметры

widget

a GtkWidget

Возвращаемое значение

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

С: 3.10

GtkTickCallback ()

gboolean
(*GtkTickCallback) (GtkWidget *widget,
                    GdkFrameClock *frame_clock,
                    gpointer user_data);

Тип обратного вызова для добавления функции обновления анимаций. См. gtk_widget_add_tick_callback().

Параметры

widget

виджет

frame_clock

таймер кадра для виджета (то же, что при вызове gtk_widget_get_frame_clock())

user_data

переданные пользовательские данные в gtk_widget_add_tick_callback().

Возвращаемое значение

G_SOURCE_CONTINUE, если обратный вызов таймера должен продолжать вызываться, G_SOURCE_REMOVE, если обратный вызов таймера должен быть удален.

С: 3.8

gtk_widget_add_tick_callback ()

guint
gtk_widget_add_tick_callback (GtkWidget *widget,
                              GtkTickCallback callback,
                              gpointer user_data,
                              GDestroyNotify notify);

Очередь обновления кадра анимации и добавление обратного вызова, который вызывается перед каждым кадром. До тех пор, пока обратный вызов таймера не будет удален, он будет вызываться часто (обычно со скоростью обновления вывода устройства или так быстро, как приложение может быть перерисовано, что медленнее). По этой причине он наиболее подходит для обработки графики, которая изменяется в каждом или нескольких кадрах. Обратный вызов таймера не подразумевает автоматическое перерасчёт макета или перерисовку. Если вам нужна перерисовка или перерасчёт макета и вы не изменяете свойства виджета, которые бы их вызывали (например, изменение текста GtkLabel), то вам нужно вызвать gtk_widget_queue_resize() или gtk_widget_queue_draw_area() самостоятельно.

gdk_frame_clock_get_frame_time() в целом следует использовать для определения времени непрерывной анимации, и gdk_frame_timings_get_predicted_presentation_time(), если вы пытаетесь отображать отдельные кадры в определённые моменты времени.

Это более удобная альтернатива непосредственному подключению к сигналу «update» GdkFrameClock, так как вам не нужно беспокоиться о том, когда GdkFrameClock назначен виджету.

Параметры

widget

a GtkWidget

callback

функция для обновления анимаций

user_data

данные для передачи в callback

notify

функция для освобождения user_data при удалении обратного вызова.

Возвращаемое значение

идентификатор подключения этого обратного вызова. Удалите обратный вызов, передав его в gtk_widget_remove_tick_callback()

С: 3.8

gtk_widget_remove_tick_callback ()

void
gtk_widget_remove_tick_callback (GtkWidget *widget,
                                 guint id);

Удаляет обратный вызов таймера, ранее зарегистрированный с помощью gtk_widget_add_tick_callback().

Параметры

widget

a GtkWidget

id

идентификатор, возвращённый gtk_widget_add_tick_callback()

С: 3.8

gtk_widget_size_request ()

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

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

Используйте gtk_widget_get_preferred_size() вместо этого.

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

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

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

Параметры

widget

a GtkWidget

requisition

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

[out]

gtk_widget_get_child_requisition ()

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

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

Используйте gtk_widget_get_preferred_size() вместо этого.

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

Эта функция отличается от 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

a GtkWidget

requisition

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

[out]

gtk_widget_size_allocate ()

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

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

В этой функции выделение может быть скорректировано. Оно будет принудительно установлено к минимальному размеру 1x1, и будет использован виртуальный метод adjust_size_allocation дочернего виджета для корректировки выделения. Стандартные корректировки включают удаление отступов виджета и применение свойств “halign” и “valign” виджета.

Для базовой поддержки в контейнерах необходимо использовать gtk_widget_size_allocate_with_baseline() вместо этого.

Параметры

widget

a GtkWidget

allocation

позиция и размер для выделения widget

gtk_widget_size_allocate_with_baseline ()

void
gtk_widget_size_allocate_with_baseline
                               (GtkWidget *widget,
                                GtkAllocation *allocation,
                                gint baseline);

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

В этой функции выделение и базовая линия могут быть скорректированы. Она будет принудительно установлена к минимальному размеру 1x1, и будут использованы виртуальные методы adjust_size_allocation и adjust_baseline_allocation дочернего виджета для корректировки выделения и базовой линии. Стандартные корректировки включают удаление отступов виджета и применение свойств “halign” и “valign” виджета.

Если у дочернего виджета нет выравнивания GTK_ALIGN_BASELINE, аргумент baseline игнорируется, и вместо него используется -1.

Параметры

widget

a GtkWidget

allocation

позиция и размер для выделения widget

baseline

Базовая линия дочернего виджета или -1

С: 3.10

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_SIGNAL_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 keyval ускорителя

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 keyval акселератора

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().)

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

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

Обратите внимание, что строка accel_path будет храниться в GQuark. Поэтому, если вы передаёте статическую строку, вы можете сэкономить память, предварительно интернировав её с помощью g_intern_static_string().

Параметры

widget

a GtkWidget

accel_path

путь для поиска акселератора.

[allow-none]

accel_group

a GtkAccelGroup.

[allow-none]

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, подключившись к сигналу GtkAccelGroup ::accel-changed группы акселераторов (который можно найти с помощью gtk_accel_group_from_accel_closure()).

Параметры

widget

виджет, для которого нужно вывести замыкания акселераторов

Возвращаемое значение

нововыделенный GList замыканий.

[transfer container][element-type GClosure]

gtk_widget_can_activate_accel ()

gboolean
gtk_widget_can_activate_accel (GtkWidget *widget,
                               guint signal_id);

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

Параметры

widget

a GtkWidget

signal_id

идентификатор сигнала, установленного на widget

Возвращаемое значение

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

Since: 2.4

gtk_widget_event ()

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

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

Параметры

widget

a GtkWidget

event

a GdkEvent

Возвращаемое значение

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

gtk_widget_activate ()

gboolean
gtk_widget_activate (GtkWidget *widget);

Для виджетов, которые могут быть «активированы» (кнопки, пункты меню и т. д.), эта функция активирует их. Активация происходит при нажатии клавиши Enter на виджете во время навигации по клавишам. Если widget не может быть активирован, функция возвращает FALSE.

Параметры

widget

a GtkWidget который может быть активирован

Возвращаемое значение

TRUE, если виджет был активируем

gtk_widget_reparent ()

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

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

Используйте gtk_container_remove() и gtk_container_add().

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

Параметры

widget

a GtkWidget

new_parent

a GtkContainer для перемещения виджета

gtk_widget_intersect ()

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

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

Параметры

widget

a GtkWidget

area

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

intersection

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

[nullable]

Возвращает

TRUE, если произошло пересечение

gtk_widget_is_focus ()

gboolean
gtk_widget_is_focus (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

Возвращает

TRUE, если виджет является виджетом фокуса.

gtk_widget_grab_focus ()

void
gtk_widget_grab_focus (GtkWidget *widget);

Приводит к тому, что widget получает фокус клавиатуры для GtkWindow, в котором он находится. widget должен быть фокусируемым виджетом, таким как GtkEntry; что-то вроде GtkFrame не сработает.

Более точно, у него должен быть установлен флаг GTK_CAN_FOCUS. Используйте gtk_widget_set_can_focus() для изменения этого флага.

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

Параметры

widget

a GtkWidget

gtk_widget_grab_default ()

void
gtk_widget_grab_default (GtkWidget *widget);

Приводит к тому, что widget становится виджетом по умолчанию. widget должен быть виджетом по умолчанию; обычно вы сами обеспечиваете это, вызывая gtk_widget_set_can_default() со значением TRUE. Виджет по умолчанию активируется, когда пользователь нажимает Enter в окне. Виджеты по умолчанию должны быть активируемыми, то есть gtk_widget_activate() должен влиять на них. Обратите внимание, что для виджетов GtkEntry свойство «activates-default» должно быть установлено в TRUE, прежде чем они активируют виджет по умолчанию при нажатии Enter и фокусе на GtkEntry.

Параметры

widget

a GtkWidget

gtk_widget_set_name ()

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

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

Обратите внимание, что синтаксис CSS имеет определённые специальные символы для разграничения и представления элементов в селекторе (точка, #, >, *...), поэтому использование этих символов сделает ваш виджет невозможным для сопоставления по имени. Любая комбинация буквенно-цифровых символов, дефисов и символов нижнего подчеркивания подойдёт.

Параметры

widget

a GtkWidget

name

имя для виджета

gtk_widget_get_name ()

const gchar *
gtk_widget_get_name (GtkWidget *widget);

Возвращает имя виджета. См. gtk_widget_set_name() для понимания значения имён виджетов.

Параметры

widget

a GtkWidget

Возвращает

имя виджета. Эта строка принадлежит GTK+ и не должна изменяться или освобождаться

gtk_widget_set_state ()

void
gtk_widget_set_state (GtkWidget *widget,
                      GtkStateType state);

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

Используйте gtk_widget_set_state_flags() вместо этого.

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

Параметры

widget

a GtkWidget

state

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

gtk_widget_set_sensitive ()

void
gtk_widget_set_sensitive (GtkWidget *widget,
                          gboolean sensitive);

Устанавливает чувствительность виджета. Виджет чувствителен, если пользователь может с ним взаимодействовать. Нечувствительные виджеты «осерены» и пользователь не может с ними взаимодействовать. Нечувствительные виджеты также известны как «неактивные», «отключенные» или «призрачные» в некоторых других наборах инструментов.

Параметры

widget

a GtkWidget

sensitive

TRUE, чтобы сделать виджет чувствительным

gtk_widget_set_parent ()

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

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

Параметры

widget

a GtkWidget

parent

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

gtk_widget_set_parent_window ()

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

Устанавливает родительское окно по умолчанию для widget.

Для классов GtkWindow установка parent_window влияет на то, является ли окно основным или может быть вложено в другие виджеты.

Для классов GtkWindow это необходимо вызвать до реализации окна.

Параметры

widget

a GtkWidget.

parent_window

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

gtk_widget_get_parent_window ()

GdkWindow *
gtk_widget_get_parent_window (GtkWidget *widget);

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

Параметры

widget

a GtkWidget.

Возвращает

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

[transfer none]

gtk_widget_set_events ()

void
gtk_widget_set_events (GtkWidget *widget,
                       gint events);

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

Параметры

widget

a GtkWidget

events

маска событий

gtk_widget_get_events ()

gint
gtk_widget_get_events (GtkWidget *widget);

Возвращает маску событий (см. GdkEventMask) для виджета. Это события, которые будет получать виджет.

Примечание: внутренне, маска событий виджета будет логическим ИЛИ маски событий, установленной через gtk_widget_set_events() или gtk_widget_add_events(), и маской событий, необходимой для каждого GtkEventController, созданного для виджета.

Параметры

widget

a GtkWidget

Возвращает

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

gtk_widget_add_events ()

void
gtk_widget_add_events (GtkWidget *widget,
                       gint events);

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

Параметры

widget

a GtkWidget

events

маска событий, см. GdkEventMask

gtk_widget_set_device_events ()

void
gtk_widget_set_device_events (GtkWidget *widget,
                              GdkDevice *device,
                              GdkEventMask events);

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

Параметры

widget

a GtkWidget

device

a GdkDevice

events

маска событий

Since: 3.0

gtk_widget_get_device_events ()

GdkEventMask
gtk_widget_get_device_events (GtkWidget *widget,
                              GdkDevice *device);

Возвращает маску событий для виджета, соответствующую определённому устройству. Это события, которые виджет будет получать, когда device воздействует на него.

Параметры

widget

a GtkWidget

device

a GdkDevice

Возвращает

маска событий устройства для widget

Since: 3.0

gtk_widget_add_device_events ()

void
gtk_widget_add_device_events (GtkWidget *widget,
                              GdkDevice *device,
                              GdkEventMask events);

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

Параметры

widget

a GtkWidget

device

a GdkDevice

events

an event mask, see GdkEventMask

Since: 3.0

gtk_widget_set_device_enabled ()

void
gtk_widget_set_device_enabled (GtkWidget *widget,
                               GdkDevice *device,
                               gboolean enabled);

Включает или отключает GdkDevice для взаимодействия с widget и всеми его дочерними элементами.

Это делается путём обхода иерархии GdkWindow и включения той же маски, что и для основных событий (т.е. той, которую возвращает gdk_window_get_events()).

Параметры

widget

a GtkWidget

device

a GdkDevice

enabled

whether to enable the device

Since: 3.0

gtk_widget_get_device_enabled ()

gboolean
gtk_widget_get_device_enabled (GtkWidget *widget,
                               GdkDevice *device);

Возвращает, может ли device взаимодействовать с widget и его дочерними элементами. Смотрите gtk_widget_set_device_enabled().

Параметры

widget

a GtkWidget

device

a GdkDevice

Возвращает

TRUE если device включен для widget

Since: 3.0

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-derived, который, в свою очередь, находится внутри окна верхнего уровня GtkWindow. Хотя второй случай может показаться маловероятным, он фактически происходит, когда GtkPlug вложен внутри GtkSocket в том же приложении.

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

Параметры

widget

a GtkWidget

Возвращает

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

[transfer none]

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

a GtkWidget

widget_type

ancestor type

Возвращает

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

[transfer none][nullable]

gtk_widget_get_visual ()

GdkVisual *
gtk_widget_get_visual (GtkWidget *widget);

Получает визуальное отображение, которое будет использоваться для отрисовки widget.

Параметры

widget

a GtkWidget

Возвращает

визуальное отображение для widget.

[transfer none]

gtk_widget_set_visual ()

void
gtk_widget_set_visual (GtkWidget *widget,
                       GdkVisual *visual);

Устанавливает визуальный режим, который должен использоваться виджетом и его дочерними элементами для создания окна Gdk. Визуальный режим должен находиться на том же экран Gdk, что и возвращает gtk_widget_get_screen(), поэтому необходимо обработать сигнал “screen-changed”.

Установка нового visual не вызовет пересоздание окон widget, поэтому следует вызвать эту функцию до того, как widget будет реализован.

Параметры

widget

виджет GtkWidget

visual

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

[allow-none]

gtk_widget_get_pointer ()

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

gtk_widget_get_pointer устарела с версии 3.4 и не должна использоваться в новых кодах.

Используйте gdk_window_get_device_position() вместо этого.

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

Параметры

widget

виджет GtkWidget

x

место для возврата координаты X или NULL.

[out][allow-none]

y

место для возврата координаты Y или NULL.

[out][allow-none]

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 в координаты, относящиеся к размещениям dest_widget. Для выполнения этой операции оба виджета должны быть реализованы и должны иметь общий верхний уровень.

Параметры

src_widget

виджет GtkWidget

dest_widget

виджет GtkWidget

src_x

координата X, относительная к src_widget

src_y

координата Y, относительная к src_widget

dest_x

место для хранения координаты X, относительной к dest_widget.

[out][optional]

dest_y

место для хранения координаты Y, относительной к dest_widget.

[out][optional]

Возвращает

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

gtk_widget_hide_on_delete ()

gboolean
gtk_widget_hide_on_delete (GtkWidget *widget);

Вспомогательная функция; предназначена для подключения к сигналу “delete-event” для окна Gtk. Функция вызывает gtk_widget_hide() для своего аргумента, а затем возвращает TRUE. При подключении к ::delete-event результат заключается в том, что нажатие кнопки закрытия окна (обычно в правом верхнем углу рамки окна) скроет окно, но не уничтожит его. По умолчанию GTK+ уничтожает окна при получении ::delete-event.

Параметры

widget

виджет GtkWidget

Возвращает

TRUE

gtk_widget_set_style ()

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

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

Используйте GtkStyleContext вместо него

Используется для установки GtkStyle для виджета (widget->style). Начиная с GTK 3, эта функция ничего не делает, переданный стиль игнорируется.

Параметры

widget

a GtkWidget

style

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

[allow-none]

gtk_widget_ensure_style ()

void
gtk_widget_ensure_style (GtkWidget *widget);

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

Используйте GtkStyleContext вместо него

Обеспечивает, что widget имеет стиль (widget->style).

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

Параметры

widget

a GtkWidget

gtk_widget_get_style ()

GtkStyle *
gtk_widget_get_style (GtkWidget *widget);

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

Используйте GtkStyleContext вместо него

Просто функция-аксессор, которая возвращает widget->style.

Параметры

widget

a GtkWidget

Возвращаемое значение

стиль виджета GtkStyle.

[transfer none]

gtk_widget_reset_rc_styles ()

void
gtk_widget_reset_rc_styles (GtkWidget *widget);

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

Используйте GtkStyleContext вместо этого, и gtk_widget_reset_style()

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

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

Параметры

widget

a GtkWidget.

gtk_widget_get_default_style ()

GtkStyle *
gtk_widget_get_default_style (void);

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

Используйте GtkStyleContext вместо этого, и gtk_css_provider_get_default(), чтобы получить GtkStyleProvider с информацией о стилях виджетов по умолчанию.

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

Возвращаемое значение

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

[transfer none]

gtk_widget_set_direction ()

void
gtk_widget_set_direction (GtkWidget *widget,
                          GtkTextDirection dir);

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

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

Параметры

widget

a GtkWidget

dir

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

gtk_widget_get_direction ()

GtkTextDirection
gtk_widget_get_direction (GtkWidget *widget);

Получает направление чтения для конкретного виджета. См. gtk_widget_set_direction().

Параметры

widget

a 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_region ()

void
gtk_widget_shape_combine_region (GtkWidget *widget,
                                 cairo_region_t *region);

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

Параметры

widget

a GtkWidget

region

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

[allow-none]

С версии: 3.0

gtk_widget_input_shape_combine_region ()

void
gtk_widget_input_shape_combine_region (GtkWidget *widget,
                                       cairo_region_t *region);

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

Параметры

widget

виджет GtkWidget

region

форма, добавляемая, или NULL для удаления существующей формы.

[allow-none]

С момента: 3.0

gtk_widget_path ()

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

gtk_widget_path устарел с версии 3.0 и не должен использоваться в новых кодах.

Используйте gtk_widget_get_path() вместо этого

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

Параметры

widget

виджет GtkWidget

path_length

место для хранения длины пути или NULL.

[out][allow-none]

path

место для хранения выделенной строки пути или NULL.

[out][allow-none]

path_reversed

место для хранения выделенной строки обратного пути или NULL.

[out][allow-none]

gtk_widget_class_path ()

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

gtk_widget_class_path устарел с версии 3.0 и не должен использоваться в новых кодах.

Используйте gtk_widget_get_path() вместо этого

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

Параметры

widget

виджет GtkWidget

path_length

место для хранения длины пути класса, или NULL.

[out][optional]

path

место для хранения пути класса в виде выделенной строки, или NULL.

[out][optional]

path_reversed

место для хранения обратного пути класса в виде выделенной строки, или NULL.

[out][optional]

gtk_widget_get_composite_name ()

gchar *
gtk_widget_get_composite_name (GtkWidget *widget);

gtk_widget_get_composite_name устарел с версии 3.10 и не должен использоваться в новых кодах.

Используйте gtk_widget_class_set_template(), или вообще не используйте этот API.

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

Параметры

widget

виджет GtkWidget

Возвращает

составное имя widget или NULL, если widget не является составным потомком. Строка должна быть освобождена, когда она больше не нужна.

gtk_widget_override_background_color ()

void
gtk_widget_override_background_color (GtkWidget *widget,
                                      GtkStateFlags state,
                                      const GdkRGBA *color);

gtk_widget_override_background_color устарел с версии 3.16 и не должен использоваться в новых кодах.

Эта функция бесполезна в контексте визуализации на основе CSS. Если вы хотите изменить способ, которым виджет отрисовывает свой фон, используйте пользовательский стиль CSS через прикладной GtkStyleProvider и класс стиля CSS. Вы также можете переопределить стандартную отрисовку виджета через сигнал “draw” и использовать Cairo для отрисовки определенного цвета, независимо от стиля CSS.

Устанавливает цвет фона для использования виджетом.

Все остальные значения стиля остаются без изменений. См. gtk_widget_override_color().

Параметры

widget

виджет GtkWidget

state

состояние, для которого необходимо установить цвет фона

color

цвет для назначения, или NULL для отмены эффекта предыдущих вызовов gtk_widget_override_background_color().

[allow-none]

С момента: 3.0

gtk_widget_override_color ()

void
gtk_widget_override_color (GtkWidget *widget,
                           GtkStateFlags state,
                           const GdkRGBA *color);

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

Используйте пользовательский поставщик стилей и классы стилей вместо этого.

Устанавливает цвет для использования виджетом.

Все остальные значения стиля остаются без изменений.

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

Этот API в основном предназначен для быстрого изменения внешнего вида виджета приложениями. Если вы разрабатываете библиотеку виджетов и хотите, чтобы это изменение было темабельным, лучше установить осмысленные CSS-классы в вашей реализации виджета/контейнера с помощью gtk_style_context_add_class().

Таким образом, ваша библиотека виджетов может установить GtkCssProvider с приоритетом GTK_STYLE_PROVIDER_PRIORITY_FALLBACK, чтобы предоставить стандартную стилизацию для этих виджетов, которые в ней нуждаются, и эта тема может быть полностью переопределена темой пользователя.

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

Параметры

widget

a GtkWidget

state

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

color

цвет для назначения, или NULL для отмены эффекта предыдущих вызовов gtk_widget_override_color().

[allow-none]

С: 3.0

gtk_widget_override_font ()

void
gtk_widget_override_font (GtkWidget *widget,
                          const PangoFontDescription *font_desc);

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

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

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

Параметры

widget

a GtkWidget

font_desc

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

[allow-none]

С: 3.0

gtk_widget_override_symbolic_color ()

void
gtk_widget_override_symbolic_color (GtkWidget *widget,
                                    const gchar *name,
                                    const GdkRGBA *color);

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

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

Устанавливает символьный цвет для виджета.

Все остальные значения стиля остаются без изменений. Смотрите gtk_widget_override_color() для переопределения цвета переднего или заднего плана.

Параметры

widget

a GtkWidget

name

имя символьного цвета для изменения

color

цвет для назначения (не нужно выделять), или NULL для отмены эффекта предыдущих вызовов gtk_widget_override_symbolic_color().

[allow-none]

С: 3.0

gtk_widget_override_cursor ()

void
gtk_widget_override_cursor (GtkWidget *widget,
                            const GdkRGBA *cursor,
                            const GdkRGBA *secondary_cursor);

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

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

Устанавливает цвет курсора для использования в виджете, переопределяя свойства стиля cursor-color и secondary-cursor-color. Все остальные значения стиля остаются без изменений. См. также gtk_widget_modify_style().

Обратите внимание, что базовые свойства имеют тип GdkColor, поэтому значение альфа в primary и secondary будет проигнорировано.

Параметры

widget

a GtkWidget

cursor

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

[allow-none]

secondary_cursor

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

[allow-none]

С: 3.0

gtk_widget_modify_style ()

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

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

Вместо этого используйте GtkStyleContext с настраиваемым GtkStyleProvider

Изменяет значения стиля виджета.

Изменения, сделанные с помощью этой техники, имеют приоритет над значениями стиля, заданными в файле 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

a GtkWidget

style

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

gtk_widget_get_modifier_style ()

GtkRcStyle *
gtk_widget_get_modifier_style (GtkWidget *widget);

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

Вместо этого используйте GtkStyleContext с настраиваемым GtkStyleProvider

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

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

Параметры

widget

a GtkWidget

Возвращает

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

[transfer none]

gtk_widget_modify_fg ()

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

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

Вместо этого используйте gtk_widget_override_color()

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

Все остальные значения стиля остаются неизменными. См. также gtk_widget_modify_style().

Параметры

widget

a GtkWidget

state

состояние, для которого нужно установить цвет переднего плана

color

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

[allow-none]

gtk_widget_modify_bg ()

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

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

Вместо этого используйте gtk_widget_override_background_color()

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

Все остальные значения стиля остаются неизменными. См. также gtk_widget_modify_style().

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

Чтобы изменить фон таких виджетов, необходимо установить цвет фона на родительском виджете; если вы хотите установить цвет фона прямоугольной области вокруг метки, попробуйте поместить метку в виджет GtkEventBox и установить цвет фона на нём.

Параметры

widget

a GtkWidget

state

состояние, для которого нужно установить цвет фона

color

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

[allow-none]

gtk_widget_modify_text ()

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

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

Используйте gtk_widget_override_color() вместо этого

Устанавливает цвет текста для виджета в определённом состоянии.

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

Параметры

widget

виджет GtkWidget

state

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

color

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

[allow-none]

gtk_widget_modify_base ()

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

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

Используйте gtk_widget_override_background_color() вместо этого

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

Обратите внимание, что виджеты «без окна» (у которых установлен флаг GTK_NO_WINDOW) рисуют на окне родительского контейнера и, следовательно, могут не рисовать свой собственный фон. Так обстоит дело, например, с GtkLabel.

Чтобы изменить фон таких виджетов, нужно установить базовый цвет на их родителе; если вы хотите установить фон прямоугольной области вокруг метки, попробуйте поместить метку в виджет GtkEventBox и установить базовый цвет на нём.

Параметры

widget

виджет GtkWidget

state

состояние, для которого нужно установить базовый цвет

color

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

[allow-none]

gtk_widget_modify_font ()

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

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

Используйте gtk_widget_override_font() вместо этого

Устанавливает шрифт для виджета.

Все остальные значения стиля остаются без изменений. См. также gtk_widget_modify_style().

Параметры

widget

виджет GtkWidget

font_desc

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

[allow-none]

gtk_widget_modify_cursor ()

void
gtk_widget_modify_cursor (GtkWidget *widget,
                          const GdkColor *primary,
                          const GdkColor *secondary);

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

Используйте gtk_widget_override_cursor() вместо этого.

Устанавливает цвет курсора для использования в виджете, перезаписывая свойства стиля GtkWidget cursor-color и secondary-cursor-color.

Все остальные значения стиля остаются без изменений. См. также gtk_widget_modify_style().

Параметры

widget

виджет GtkWidget

primary

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

[nullable]

secondary

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

[nullable]

С: 2.12

gtk_widget_create_pango_context ()

PangoContext *
gtk_widget_create_pango_context (GtkWidget *widget);

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

Параметры

widget

виджет GtkWidget

Возвращаемое значение

новый PangoContext.

[transfer full]

gtk_widget_get_pango_context ()

PangoContext *
gtk_widget_get_pango_context (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

Возвращаемое значение

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

[transfer none]

gtk_widget_set_font_options ()

void
gtk_widget_set_font_options (GtkWidget *widget,
                             const cairo_font_options_t *options);

Устанавливает cairo_font_options_t, используемые для отрисовки Pango в этом виджете. Если не задано, будут использоваться параметры шрифта по умолчанию для GdkScreen.

Параметры

widget

a GtkWidget

options

a cairo_font_options_t, или NULL для сброса ранее установленных параметров шрифта по умолчанию.

[allow-none]

Since: 3.18

gtk_widget_get_font_options ()

const cairo_font_options_t *
gtk_widget_get_font_options (GtkWidget *widget);

Возвращает cairo_font_options_t, используемые для отрисовки Pango. Если не задано, будут использоваться параметры шрифта по умолчанию для GdkScreen.

Параметры

widget

a GtkWidget

Возвращаемое значение

cairo_font_options_t или NULL, если не задано.

[transfer none][nullable]

Since: 3.18

gtk_widget_set_font_map ()

void
gtk_widget_set_font_map (GtkWidget *widget,
                         PangoFontMap *font_map);

Устанавливает карту шрифтов для использования в Pango отрисовке. Если не задано, виджет унаследует карту шрифтов от родителя.

Параметры

widget

a GtkWidget

font_map

a PangoFontMap, или NULL для сброса ранее установленной карты шрифтов.

[allow-none]

Since: 3.18

gtk_widget_get_font_map ()

PangoFontMap *
gtk_widget_get_font_map (GtkWidget *widget);

Получает карту шрифтов, установленную с помощью gtk_widget_set_font_map().

Параметры

widget

a GtkWidget

Возвращаемое значение

A PangoFontMap, или NULL.

[transfer none][nullable]

Since: 3.18

gtk_widget_create_pango_layout ()

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

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

Если вы сохраняете PangoLayout, созданный таким образом, вам нужно пересоздать его, когда контекст виджета PangoContext заменяется. Это можно отслеживать, используя сигнал “screen-changed” виджета.

Параметры

widget

a GtkWidget

text

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

[nullable]

Возвращаемое значение

новый PangoLayout.

[transfer full]

gtk_widget_render_icon ()

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

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

Используйте gtk_widget_render_icon_pixbuf() вместо этого.

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

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

Параметры

widget

a GtkWidget

stock_id

идентификатор стокового значка

size

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

[type int]

detail

детали отображения для передачи в движок темы.

[allow-none]

Возвращаемое значение

новый pixbuf или NULL, если идентификатор стокового значка не был найден.

[nullable][transfer full]

gtk_widget_render_icon_pixbuf ()

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

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

Используйте gtk_icon_theme_load_icon() вместо этого.

Функция-обёртка, которая использует движок тем и настройки стиля для widget для поиска stock_id и отображения его в pixbuf. stock_id должен быть идентификатором стокового значка, например, GTK_STOCK_OPEN или GTK_STOCK_OK. size должен быть размером, таким как GTK_ICON_SIZE_MENU.

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

Параметры

widget

a GtkWidget

stock_id

идентификатор стокового значка

size

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

[type int]

Возвращаемое значение

новый pixbuf или NULL, если идентификатор стокового значка не был найден.

[transfer full][nullable]

С: 3.0

gtk_widget_pop_composite_child ()

void
gtk_widget_pop_composite_child (void);

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

Используйте gtk_widget_class_set_template(), или вообще не используйте этот API.

Отменяет действие предыдущего вызова gtk_widget_push_composite_child().

gtk_widget_push_composite_child ()

void
gtk_widget_push_composite_child (void);

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

Этот API никогда не работал хорошо и практически не использовался. Теперь у нас есть более полная механизма для составных дочерних элементов, см. gtk_widget_class_set_template().

Делает все вновь созданные виджеты составными дочерними элементами до соответствующего вызова gtk_widget_pop_composite_child().

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

gtk_widget_queue_draw_area ()

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

Функция-обёртка, которая вызывает gtk_widget_queue_draw_region() в области, созданной из заданных координат.

Здесь область задаётся в координатах виджета. Координаты виджета немного необычны; по историческим причинам они определены как widget->window координаты для виджетов, которые возвращают TRUE для gtk_widget_get_has_window(), и относительны к widget->allocation.x в противном случае.

width или height могут быть 0, в этом случае функция ничего не делает. Отрицательные значения для width и height недопустимы.

Параметры

widget

a GtkWidget

x

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

y

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

width

ширина области для перерисовки

height

высота области для перерисовки

gtk_widget_queue_draw_region ()

void
gtk_widget_queue_draw_region (GtkWidget *widget,
                              const cairo_region_t *region);

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

Обычно эту функцию используют только при реализации виджетов. Её также можно использовать для планирования перерисовки GtkDrawingArea или его части.

Параметры

widget

a GtkWidget

region

область для перерисовки

С: 3.0

gtk_widget_set_app_paintable ()

void
gtk_widget_set_app_paintable (GtkWidget *widget,
                              gboolean app_paintable);

Устанавливает, собирается ли приложение рисовать на виджете в обработчике “draw”.

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

Обратите внимание, что фон всё равно рисуется, когда виджет отображён.

Параметры

widget

a GtkWidget

app_paintable

TRUE, если приложение будет рисовать на виджете

gtk_widget_set_double_buffered ()

void
gtk_widget_set_double_buffered (GtkWidget *widget,
                                gboolean double_buffered);

gtk_widget_set_double_buffered устарел начиная с версии 3.14 и не должен использоваться в новых кодах.

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

Виджеты по умолчанию работают с буферизацией; вы можете использовать эту функцию, чтобы отключить буферизацию. «Буферизация» означает, что gdk_window_begin_draw_frame() и gdk_window_end_draw_frame() вызываются автоматически вокруг событий отображения, отправленных виджету. gdk_window_begin_draw_frame() перенаправляет всё рисование в окно виджета на отложенный буфер, а gdk_window_end_draw_frame() рисует буфер на экран. В результате пользователь видит обновление окна за один плавный шаг, а не отдельных графических примитивов.

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

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

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

Параметры

widget

a GtkWidget

double_buffered

TRUE, чтобы виджет использовал буферизацию

gtk_widget_set_redraw_on_allocate ()

void
gtk_widget_set_redraw_on_allocate (GtkWidget *widget,
                                   gboolean redraw_on_allocate);

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

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

Параметры

widget

a GtkWidget

redraw_on_allocate

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

gtk_widget_set_composite_name ()

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

gtk_widget_set_composite_name устарел начиная с версии 3.10 и не должен использоваться в новых кодах.

Используйте gtk_widget_class_set_template(), или вообще не используйте эту API.

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

Параметры

widget

a GtkWidget.

name

имя для установки

gtk_widget_mnemonic_activate ()

gboolean
gtk_widget_mnemonic_activate (GtkWidget *widget,
                              gboolean group_cycling);

Вызывает сигнал “mnemonic-activate”.

Обработчик по умолчанию для этого сигнала активирует widget, если group_cycling равен FALSE, и просто захватывает фокус, если group_cycling равен TRUE.

Параметры

widget

a GtkWidget

group_cycling

TRUE, если есть другие виджеты с тем же мнемоническим символом

Возвращает

TRUE, если сигнал был обработан

gtk_widget_class_install_style_property ()

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

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

Параметры

klass

a GtkWidgetClass

pspec

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

gtk_widget_class_install_style_property_parser ()

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

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

[skip]

Параметры

klass

a GtkWidgetClass

pspec

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

parser

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

gtk_widget_class_find_style_property ()

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

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

Параметры

klass

a GtkWidgetClass

property_name

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

Возвращает

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

[transfer none]

Since: 2.2

gtk_widget_class_list_style_properties ()

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

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

Параметры

klass

a GtkWidgetClass

n_properties

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

[out]

Возвращает

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

[array length=n_properties][transfer container]

Since: 2.2

gtk_widget_region_intersect ()

cairo_region_t *
gtk_widget_region_intersect (GtkWidget *widget,
                             const cairo_region_t *region);

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

Используйте gtk_widget_get_allocation() и cairo_region_intersect_rectangle() для получения аналогичного поведения.

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

Параметры

widget

a GtkWidget

region

a cairo_region_t, в той же системе координат, что и widget->allocation . То есть, относительно widget->window для виджетов, которые возвращают FALSE из gtk_widget_get_has_window(); относительно родительского окна widget->window в противном случае.

Возвращает

Новый выделенный регион, содержащий пересечение widget и region .

gtk_widget_send_expose ()

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

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

Код приложения и виджета не должен обрабатывать события expose напрямую; для обновления должно использоваться API GtkWidget, а отрисовка должна выполняться только внутри реализаций сигнала “draw”

Функция, которая используется очень редко. Эта функция используется для генерации события expose для виджета. Эта функция обычно не используется напрямую. Единственный случай её использования — при распространении события expose на виджет без окна (gtk_widget_get_has_window() равен FALSE), и это обычно делается с помощью gtk_container_propagate_draw().

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

Параметры

widget

a GtkWidget

event

expose GdkEvent

Возвращает

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

gtk_widget_send_focus_change ()

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

Отправляет изменение фокуса event виджету widget

Данная функция не предназначена для использования приложениями. Единственный случай её использования — когда необходимо виджету GtkWidget назначить фокус виджету, который семантически принадлежит первому виджету, хотя он не является его непосредственным потомком — например, строке поиска в всплывающем окне, подобном быстрому поиску в GtkTreeView.

Пример её использования:

Параметры

widget

виджет GtkWidget

event

событие GdkEvent типа GDK_FOCUS_CHANGE

Возвращаемое значение

результат срабатывания сигнала события: TRUE если событие обработано, и FALSE в противном случае

С версии: 2.20

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

Вариант без vararg функции gtk_widget_style_get(). Используется в основном языковыми связками.

Параметры

widget

виджет GtkWidget

first_property_name

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

var_args

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

gtk_widget_style_attach ()

void
gtk_widget_style_attach (GtkWidget *widget);

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

Эта операция не требуется с GtkStyleContext.

Эта функция прикрепляет стиль виджета GtkStyle к GdkWindow виджета. Заменяет

и должна вызываться только в реализации «realize» производного виджета, которая не вызывает реализацию «realize» родительского класса, потому что один из родительских классов (в конечном итоге GtkWidget) прикрепит стиль сам.

Параметры

widget

виджет GtkWidget

С версии: 2.20

gtk_widget_class_set_accessible_type ()

void
gtk_widget_class_set_accessible_type (GtkWidgetClass *widget_class,
                                      GType type);

Устанавливает тип, используемый для создания объектов доступности для виджетов класса widget_class . Указанный type должен быть подтипом типа, используемого для объектов доступности родительского класса.

Функция должна вызываться только из функций инициализации класса виджетов.

Параметры

widget_class

класс для установки типа доступности

type

тип объекта, реализующего доступность для widget_class

С версии: 3.2

gtk_widget_class_set_accessible_role ()

void
gtk_widget_class_set_accessible_role (GtkWidgetClass *widget_class,
                                      AtkRole role);

Устанавливает значение по умолчанию AtkRole для объектов доступности, создаваемых для виджетов класса widget_class . Объекты доступности могут решить не учитывать это значение, если их отчет о роли более точен. Вызовы gtk_widget_class_set_accessible_type() сбросят это значение.

В тех случаях, когда требуется более точный контроль над ролью объектов доступности, созданных для widget_class, следует предоставить собственный тип объекта доступности и использовать gtk_widget_class_set_accessible_type() вместо этого.

Если role равно ATK_ROLE_INVALID, значение по умолчанию не изменится, и будет использоваться значение по умолчанию для объекта доступности.

Функция должна вызываться только из функций инициализации класса виджетов.

Параметры

widget_class

класс для установки роли доступности

role

роль, используемая для объектов доступности, создаваемых для widget_class

С версии: 3.2

gtk_widget_get_accessible ()

AtkObject *
gtk_widget_get_accessible (GtkWidget *widget);

Возвращает объект доступности, описывающий виджет для технологии輔助工具.

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

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

Параметры

widget

виджет GtkWidget

Возвращаемое значение

AtkObject, связанный с widget .

[transfer none]

gtk_widget_child_focus ()

gboolean
gtk_widget_child_focus (GtkWidget *widget,
                        GtkDirectionType direction);

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

gtk_widget_child_focus() вызывается контейнерами, когда пользователь перемещает фокус по окну с помощью комбинаций клавиш. direction указывает, какой вид перемещения происходит (вверх, вниз, влево, вправо, Tab вперёд, Tab назад). gtk_widget_child_focus() генерирует сигнал “focus”; виджеты переопределяют обработчик по умолчанию для этого сигнала, чтобы реализовать соответствующее поведение фокуса.

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

Параметры

widget

a GtkWidget

direction

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

Возвращаемое значение

TRUE, если фокус оказался внутри widget

gtk_widget_child_notify ()

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

Генерирует сигнал “child-notify” для свойства дочернего элемента child_property на widget .

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

См. также gtk_container_child_notify().

Параметры

widget

a GtkWidget

child_property

имя свойства дочернего элемента, установленного для класса родителя widget

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

a GtkWidget

gtk_widget_get_child_visible ()

gboolean
gtk_widget_get_child_visible (GtkWidget *widget);

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

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

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если виджет отображается вместе с родителем.

gtk_widget_get_parent ()

GtkWidget *
gtk_widget_get_parent (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

Возвращаемое значение

родительский контейнер widget или NULL.

[transfer none][nullable]

gtk_widget_get_settings ()

GtkSettings *
gtk_widget_get_settings (GtkWidget *widget);

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

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

Параметры

widget

a GtkWidget

Возвращаемое значение

соответствующий объект GtkSettings.

[transfer none]

gtk_widget_get_clipboard ()

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

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

Параметры

widget

a GtkWidget

selection

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

Возвращаемое значение

соответствующий объект буфера обмена. Если буфера обмена ещё не существует, он будет создан. После создания объект буфера обмена сохраняется на всё время.

[transfer none]

С: 2.2

gtk_widget_get_display ()

GdkDisplay *
gtk_widget_get_display (GtkWidget *widget);

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

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

Параметры

widget

виджет GtkWidget

Возвращает

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

[transfer none]

С версии: 2.2

gtk_widget_get_root_window ()

GdkWindow *
gtk_widget_get_root_window (GtkWidget *widget);

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

Используйте gdk_screen_get_root_window() вместо этого.

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

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

Параметры

widget

виджет GtkWidget

Возвращает

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

[transfer none]

С версии: 2.2

gtk_widget_get_screen ()

GdkScreen *
gtk_widget_get_screen (GtkWidget *widget);

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

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

Параметры

widget

виджет GtkWidget

Возвращает

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

[transfer none]

С версии: 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_get_preferred_size() вместо этой функции.

Параметры

widget

виджет GtkWidget

width

место для возврата ширины, или NULL.

[out][allow-none]

height

место для возврата высоты, или NULL.

[out][allow-none]

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_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 (не задан), то вместо этого будет использован «естественный» запрос размера виджета.

Запрос размера, установленный здесь, не включает отступы от свойств GtkWidget margin-left, margin-right, margin-top и margin-bottom, но включает практически все другие отступы или свойства границ, установленные любым подклассом GtkWidget.

Параметры

widget

a GtkWidget

width

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

height

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

gtk_widget_thaw_child_notify ()

void
gtk_widget_thaw_child_notify (GtkWidget *widget);

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

Параметры

widget

a 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() влиять на этот виджет.

Это в основном используется при построении иерархий виджетов с внешним управлением видимостью, см. GtkUIManager.

Параметры

widget

a 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() влиять на этот виджет.

Параметры

widget

a GtkWidget

Возвращает

текущее значение свойства “no-show-all”.

С момента: 2.4

gtk_widget_list_mnemonic_labels ()

GList *
gtk_widget_list_mnemonic_labels (GtkWidget *widget);

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

Виджеты в списке не ссылаются индивидуально. Если вы хотите перебирать список и выполнять действия, включающие обратные вызовы, которые могут уничтожить виджеты, вы должны вызвать g_list_foreach (result, (GFunc)g_object_ref, NULL) сначала, а затем unref все виджеты после этого.

Параметры

widget

a GtkWidget

Возвращает

список меток мнемоники; освободите этот список с помощью g_list_free(), когда вы закончите с ним.

[тип-элемента GtkWidget][передача-контейнера]

С момента: 2.4

gtk_widget_add_mnemonic_label ()

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

Добавляет виджет в список меток мнемоники для этого виджета. (См. gtk_widget_list_mnemonic_labels()). Обратите внимание, что список меток мнемоники для виджета очищается при уничтожении виджета, поэтому вызывающий должен убедиться, что также обновит своё внутреннее состояние в этот момент, используя соединение с сигналом “destroy” или слабым уведомителем.

Параметры

widget

a GtkWidget

label

a 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

a GtkWidget

label

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

С момента: 2.4

gtk_widget_is_composited ()

gboolean
gtk_widget_is_composited (GtkWidget *widget);

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

Используйте gdk_screen_is_composited() вместо него.

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

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

Параметры

widget

a GtkWidget

Возвращаемое значение

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

С: 2.10

gtk_widget_error_bell ()

void
gtk_widget_error_bell (GtkWidget *widget);

Уведомляет пользователя об ошибке, связанной с вводом, в данном виджете. Если значение настройки “gtk-error-bell” равно TRUE, вызывается функция gdk_window_beep(); в противном случае никаких действий не выполняется.

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

Параметры

widget

a GtkWidget

С: 2.12

gtk_widget_keynav_failed ()

gboolean
gtk_widget_keynav_failed (GtkWidget *widget,
                          GtkDirectionType direction);

Эта функция должна вызываться всякий раз, когда навигация с помощью клавиатуры внутри одного виджета достигает границы. Функция генерирует сигнал “keynav-failed” для виджета, и значение возврата должно интерпретироваться аналогично значению возврата функции gtk_widget_child_focus():

Если возвращается TRUE, оставайтесь в виджете; навигация с помощью клавиатуры прошла успешно, и/или нет места, куда можно/следует переместить фокус.

Если возвращается FALSE, вызывающий код должен продолжить навигацию с помощью клавиатуры за пределами виджета, например, вызвав gtk_widget_child_focus() для верхнего уровня виджета.

По умолчанию обработчик ::keynav-failed возвращает TRUE для GTK_DIR_TAB_FORWARD и GTK_DIR_TAB_BACKWARD. Для других значений GtkDirectionType он возвращает FALSE.

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

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

Параметры

widget

a GtkWidget

direction

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

Возвращаемое значение

TRUE, если можно прекратить навигацию с помощью клавиатуры, FALSE, если виджет-отправитель должен попробовать обработать попытку навигации с помощью клавиатуры в своих родительских контейнерах.

С: 2.12

gtk_widget_get_tooltip_markup ()

gchar *
gtk_widget_get_tooltip_markup (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

Возвращаемое значение

текст подсказки или NULL. После использования освободите возвращённую строку с помощью g_free().

[nullable]

С: 2.12

gtk_widget_set_tooltip_markup ()

void
gtk_widget_set_tooltip_markup (GtkWidget *widget,
                               const gchar *markup);

Устанавливает markup в качестве содержимого подсказки, используя язык разметки Pango.

Эта функция позаботится о настройке “has-tooltip” на TRUE и об обработчике по умолчанию для сигнала “query-tooltip”.

См. также свойство “tooltip-markup” и gtk_tooltip_set_markup().

Параметры

widget

a GtkWidget

markup

содержимое подсказки для widget, или NULL.

[allow-none]

С: 2.12

gtk_widget_get_tooltip_text ()

gchar *
gtk_widget_get_tooltip_text (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

Возвращаемое значение

текст подсказки или NULL. После использования освободите возвращённую строку с помощью g_free().

[nullable]

С: 2.12

gtk_widget_set_tooltip_text ()

void
gtk_widget_set_tooltip_text (GtkWidget *widget,
                             const gchar *text);

Устанавливает text в качестве содержимого подсказки. Эта функция позаботится о настройке “has-tooltip” на значение TRUE и о обработчике по умолчанию сигнала “query-tooltip”.

См. также свойство “tooltip-text” и gtk_tooltip_set_text().

Параметры

widget

a GtkWidget

text

содержимое подсказки для widget .

[allow-none]

С: 2.12

gtk_widget_get_tooltip_window ()

GtkWindow *
gtk_widget_get_tooltip_window (GtkWidget *widget);

Возвращает GtkWindow текущего окна подсказки. Это может быть GtkWindow, созданный по умолчанию, или пользовательское окно подсказки, заданное с помощью gtk_widget_set_tooltip_window().

Параметры

widget

a GtkWidget

Возвращаемое значение

GtkWindow текущего окна подсказки.

[transfer none]

С: 2.12

gtk_widget_set_tooltip_window ()

void
gtk_widget_set_tooltip_window (GtkWidget *widget,
                               GtkWindow *custom_window);

Заменяет окно, используемое по умолчанию для отображения подсказок (обычно жёлтого цвета), на custom_window . GTK+ позаботится о своевременном отображении и скрытии custom_window, чтобы оно работало аналогично стандартному окну подсказки. Если custom_window равно NULL, будет использоваться стандартное окно подсказки.

Если пользовательское окно должно использовать стандартную тему, оно должно иметь имя «gtk-tooltip», см. gtk_widget_set_name().

Параметры

widget

a GtkWidget

custom_window

GtkWindow, или NULL.

[allow-none]

С: 2.12

gtk_widget_get_has_tooltip ()

gboolean
gtk_widget_get_has_tooltip (GtkWidget *widget);

Возвращает текущее значение свойства has-tooltip. См. “has-tooltip” для получения дополнительной информации.

Параметры

widget

a GtkWidget

Возвращаемое значение

текущее значение has-tooltip для widget .

С: 2.12

gtk_widget_set_has_tooltip ()

void
gtk_widget_set_has_tooltip (GtkWidget *widget,
                            gboolean has_tooltip);

Устанавливает свойство has-tooltip для widget в значение has_tooltip . См. “has-tooltip” для получения дополнительной информации.

Параметры

widget

a GtkWidget

has_tooltip

имеет ли widget подсказку.

С: 2.12

gtk_widget_trigger_tooltip_query ()

void
gtk_widget_trigger_tooltip_query (GtkWidget *widget);

Вызывает запрос подсказки на экране, где расположен toplevel для widget . См. gtk_tooltip_trigger_tooltip_query() для получения дополнительной информации.

Параметры

widget

a GtkWidget

С: 2.12

gtk_widget_get_window ()

GdkWindow *
gtk_widget_get_window (GtkWidget *widget);

Возвращает окно виджета, если оно реализовано, иначе NULL.

Параметры

widget

a GtkWidget

Возвращаемое значение

окно widget .

[transfer none][nullable]

С: 2.14

gtk_widget_register_window ()

void
gtk_widget_register_window (GtkWidget *widget,
                            GdkWindow *window);

Регистрирует GdkWindow у виджета и настраивает его так, чтобы виджет получал события для него. Вызывайте gtk_widget_unregister_window() при уничтожении окна.

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

Параметры

widget

a GtkWidget

window

a GdkWindow

С: 3.8

gtk_widget_unregister_window ()

void
gtk_widget_unregister_window (GtkWidget *widget,
                              GdkWindow *window);

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

Параметры

widget

a GtkWidget

window

a GdkWindow

С: 3.8

gtk_cairo_should_draw_window ()

gboolean
gtk_cairo_should_draw_window (cairo_t *cr,
                              GdkWindow *window);

Эта функция должна вызываться в реализациях сигнала “draw” для виджетов, поддерживающих несколько окон. cr должен быть не преобразован из вызова функции рисования. Эта функция вернёт TRUE, если содержимое заданного window должно быть нарисовано, и FALSE в противном случае. Обратите внимание, что когда рисование не было инициировано системным окном, эта функция вернёт TRUE для всех окон, поэтому вам необходимо сначала нарисовать самое нижнее окно. Также не используйте инструкции «else if» для проверки того, какое окно следует нарисовать.

Параметры

cr

контекст cairo

window

окно для проверки. window может быть не только окном ввода.

Возвращает

TRUE, если window нужно нарисовать

С версии: 3.0

gtk_cairo_transform_to_window ()

void
gtk_cairo_transform_to_window (cairo_t *cr,
                               GtkWidget *widget,
                               GdkWindow *window);

Преобразует заданный контекст cairo cr, чтобы перейти от координат, относящихся к widget, к координатам, относящимся к window. Если окно widget не является предком window, никакие изменения не будут применены.

Это обратное преобразование, которое GTK применяет при подготовке события expose для отправки с сигналом “draw”. Это предназначено для помощи в портировании виджетов с несколькими окнами из GTK+ 2 в архитектуру отрисовки GTK+ 3.

Параметры

cr

контекст cairo для преобразования

widget

виджет, для которого контекст в настоящее время центрирован

window

окно для преобразования контекста в него

С версии: 3.0

gtk_widget_get_allocated_width ()

int
gtk_widget_get_allocated_width (GtkWidget *widget);

Возвращает ширину, которая в настоящее время выделена для widget. Эта функция предназначена для использования при реализации обработчиков функции “draw”.

Параметры

widget

виджет для запроса

Возвращает

ширину widget

gtk_widget_get_allocated_height ()

int
gtk_widget_get_allocated_height (GtkWidget *widget);

Возвращает высоту, которая в настоящее время выделена для widget. Эта функция предназначена для использования при реализации обработчиков функции “draw”.

Параметры

widget

виджет для запроса

Возвращает

высоту widget

gtk_widget_get_allocation ()

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

Получает выделение виджета.

Примечание. При реализации GtkContainer: выделение виджета будет его «откорректированным» выделением, то есть контейнер-родитель виджета обычно вызывает gtk_widget_size_allocate() с выделением, и это выделение затем корректируется (например, для обработки отступов и выравнивания) перед присвоением виджету. gtk_widget_get_allocation() возвращает откорректированное выделение, которое фактически было присвоено виджету. Однако откорректированное выделение гарантированно полностью содержится в выделении gtk_widget_size_allocate(). Таким образом, GtkContainer гарантирует, что его дочерние элементы остаются в заданных пределах, но не гарантирует, что у них будут ровно те же пределы, которые назначил контейнер. Нет способа получить исходное выделение, присвоенное gtk_widget_size_allocate(), так как оно не хранится; если реализации контейнера нужна эта информация, она должна отслеживать её сама.

Параметры

widget

GtkWidget

allocation

указатель на GtkAllocation для копирования в него.

[out]

С версии: 2.18

gtk_widget_set_allocation ()

void
gtk_widget_set_allocation (GtkWidget *widget,
                           const GtkAllocation *allocation);

Устанавливает выделение виджета. Это не следует использовать напрямую, а только внутри метода size_allocate виджета.

Установленное выделение должно быть «откорректированным» или фактическим выделением. Если вы реализуете GtkContainer, вы хотите использовать gtk_widget_size_allocate() вместо gtk_widget_set_allocation(). Виртуальный метод GtkWidgetClass::adjust_size_allocation корректирует выделение внутри gtk_widget_size_allocate(), чтобы создать откорректированное выделение.

Параметры

widget

GtkWidget

allocation

указатель на GtkAllocation для копирования из него

С версии: 2.18

gtk_widget_get_allocated_baseline ()

int
gtk_widget_get_allocated_baseline (GtkWidget *widget);

Возвращает базовую линию, которая в настоящее время выделена для widget. Эта функция предназначена для использования при реализации обработчиков функции “draw” и при выделении дочерних виджетов в “size_allocate”.

Параметры

widget

виджет для запроса

Возвращает

базовую линию widget, или -1, если её нет

С версии: 3.10

gtk_widget_get_allocated_size ()

void
gtk_widget_get_allocated_size (GtkWidget *widget,
                               GtkAllocation *allocation,
                               int *baseline);

Получает размер выделенного места для виджета.

Эта функция возвращает последние значения, переданные функции gtk_widget_size_allocate_with_baseline(). Значение отличается от размера, возвращаемого функцией gtk_widget_get_allocation(), поскольку такие функции, как gtk_widget_set_halign(), могут изменять выделение, но не значение, возвращаемое этой функцией.

Если виджет не отображается, его выделенный размер равен 0.

Параметры

widget

a GtkWidget

allocation

указатель на GtkAllocation для копирования.

[out]

baseline

указатель на целое число для копирования.

[out][allow-none]

С версии: 3.20

gtk_widget_get_clip ()

void
gtk_widget_get_clip (GtkWidget *widget,
                     GtkAllocation *clip);

Получает область обрезки виджета.

Область обрезки — это область, в которой будет происходить всё рисование widget. Другие наборы инструментов называют её ограничительной областью.

Исторически в GTK+ область обрезки равна выделенному месту, полученному с помощью gtk_widget_get_allocation().

Параметры

widget

a GtkWidget

clip

указатель на GtkAllocation для копирования.

[out]

С версии: 3.14

gtk_widget_set_clip ()

void
gtk_widget_set_clip (GtkWidget *widget,
                     const GtkAllocation *clip);

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

Установленная область обрезки должна содержать область, на которой widget рисует. Если widget является GtkContainer, область должна содержать области обрезки всех дочерних элементов.

Если эта функция не вызывается widget во время обработки ::size-allocate, область обрезки будет установлена равной области выделения widget.

Параметры

widget

a GtkWidget

clip

указатель на GtkAllocation для копирования

С версии: 3.14

gtk_widget_get_app_paintable ()

gboolean
gtk_widget_get_app_paintable (GtkWidget *widget);

Определяет, намеревается ли приложение рисовать на виджете в обработчике “draw”.

См. gtk_widget_set_app_paintable()

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если виджет поддерживает рисование приложением

С версии: 2.18

gtk_widget_get_can_default ()

gboolean
gtk_widget_get_can_default (GtkWidget *widget);

Определяет, может ли widget быть виджетом по умолчанию. См. gtk_widget_set_can_default().

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если widget может быть виджетом по умолчанию, FALSE в противном случае

С версии: 2.18

gtk_widget_set_can_default ()

void
gtk_widget_set_can_default (GtkWidget *widget,
                            gboolean can_default);

Устанавливает, может ли widget быть виджетом по умолчанию. См. gtk_widget_grab_default() для подробностей о значении «по умолчанию».

Параметры

widget

a GtkWidget

can_default

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

С версии: 2.18

gtk_widget_get_can_focus ()

gboolean
gtk_widget_get_can_focus (GtkWidget *widget);

Определяет, может ли widget получить фокус ввода. См. gtk_widget_set_can_focus().

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если widget может получить фокус ввода, FALSE в противном случае

С версии: 2.18

gtk_widget_set_can_focus ()

void
gtk_widget_set_can_focus (GtkWidget *widget,
                          gboolean can_focus);

Устанавливает, может ли widget получить фокус ввода. См. gtk_widget_grab_focus() для получения фокуса ввода для виджета.

Параметры

widget

a GtkWidget

can_focus

может ли widget получить фокус ввода.

С версии: 2.18

gtk_widget_get_focus_on_click ()

gboolean
gtk_widget_get_focus_on_click (GtkWidget *widget);

Возвращает, должен ли виджет получить фокус при щелчке мышью. См. gtk_widget_set_focus_on_click().

Параметры

widget

a GtkWidget

Возвращает

TRUE, если виджет должен получить фокус при щелчке мышью.

Since: 3.20

gtk_widget_set_focus_on_click ()

void
gtk_widget_set_focus_on_click (GtkWidget *widget,
                               gboolean focus_on_click);

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

Параметры

widget

a GtkWidget

focus_on_click

должен ли виджет получить фокус при щелчке мышью

Since: 3.20

gtk_widget_get_double_buffered ()

gboolean
gtk_widget_get_double_buffered (GtkWidget *widget);

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

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

См. gtk_widget_set_double_buffered()

Параметры

widget

a GtkWidget

Возвращает

TRUE, если виджет использует двойную буферизацию

Since: 2.18

gtk_widget_get_has_window ()

gboolean
gtk_widget_get_has_window (GtkWidget *widget);

Определяет, имеет ли widget свой GdkWindow. См. gtk_widget_set_has_window().

Параметры

widget

a GtkWidget

Возвращает

TRUE, если у widget есть окно, FALSE в противном случае

Since: 2.18

gtk_widget_set_has_window ()

void
gtk_widget_set_has_window (GtkWidget *widget,
                           gboolean has_window);

Указывает, имеет ли widget свой GdkWindow. Обратите внимание, что все реализованные виджеты имеют указатель на окно, отличное от NULL (gtk_widget_get_window() никогда не возвращает окно NULL при реализации виджета), но для многих из них это фактически окно одного из родительских виджетов. Виджеты, которые не создают окно для себя в сигнале “realize”, должны это объявить, вызвав эту функцию с has_window = FALSE.

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

Параметры

widget

a GtkWidget

has_window

имеет ли widget окно.

Since: 2.18

gtk_widget_get_sensitive ()

gboolean
gtk_widget_get_sensitive (GtkWidget *widget);

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

Однако эффективная чувствительность виджета определяется как его собственной чувствительностью, так и чувствительностью родительского виджета. См. gtk_widget_is_sensitive().

Параметры

widget

a GtkWidget

Возвращает

TRUE, если виджет чувствителен

Since: 2.18

gtk_widget_is_sensitive ()

gboolean
gtk_widget_is_sensitive (GtkWidget *widget);

Возвращает эффективную чувствительность виджета, что означает, что сам виджет чувствителен, и его родительский виджет также чувствителен.

Параметры

widget

a GtkWidget

Возвращает

TRUE, если виджет эффективно чувствителен

Since: 2.18

gtk_widget_get_state ()

GtkStateType
gtk_widget_get_state (GtkWidget *widget);

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

Используйте gtk_widget_get_state_flags() вместо этого.

Возвращает состояние виджета. См. gtk_widget_set_state().

Параметры

widget

a GtkWidget

Возвращает

состояние widget .

Since: 2.18

gtk_widget_get_visible ()

gboolean
gtk_widget_get_visible (GtkWidget *widget);

Определяет, виден ли виджет. Если вы хотите учесть, виден ли также родительский виджет, используйте gtk_widget_is_visible() вместо этого.

Эта функция не проверяет, не скрыт ли виджет каким-либо образом.

См. gtk_widget_set_visible().

Параметры

widget

a GtkWidget

Возвращает

TRUE, если виджет виден

Since: 2.18

gtk_widget_is_visible ()

gboolean
gtk_widget_is_visible (GtkWidget *widget);

Определяет, отмечен ли виджет и все его родительские элементы как видимые.

Эта функция не проверяет, скрыт ли виджет каким-либо образом.

См. также gtk_widget_get_visible() и gtk_widget_set_visible()

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если виджет и все его родительские элементы видимы

С версии: 3.8

gtk_widget_set_visible ()

void
gtk_widget_set_visible (GtkWidget *widget,
                        gboolean visible);

Устанавливает состояние видимости widget. Обратите внимание, что установка значения в TRUE не означает, что виджет действительно отображается, см. gtk_widget_get_visible().

Эта функция просто вызывает gtk_widget_show() или gtk_widget_hide(), но её удобнее использовать, когда видимость виджета зависит от какого-либо условия.

Параметры

widget

a GtkWidget

visible

должен ли виджет отображаться

С версии: 2.18

gtk_widget_set_state_flags ()

void
gtk_widget_set_state_flags (GtkWidget *widget,
                            GtkStateFlags flags,
                            gboolean clear);

Эта функция предназначена для использования в реализациях виджетов. Включает значения флагов в текущем состоянии виджета (нечувствительность, предварительная подсветка и т. д.).

Эта функция принимает значения GTK_STATE_FLAG_DIR_LTR и GTK_STATE_FLAG_DIR_RTL, но игнорирует их. Если вы хотите установить направление виджета, используйте gtk_widget_set_direction().

Стоит отметить, что любое состояние, отличное от GTK_STATE_FLAG_INSENSITIVE, будет передано всем дочерним элементам, которые не являются внутренними, если widget является GtkContainer, в то время как GTK_STATE_FLAG_INSENSITIVE само будет передано всем дочерним элементам GtkContainer другими способами, чем включение флага состояния вниз по иерархии, как gtk_widget_get_state_flags(), так и gtk_widget_is_sensitive() будут использовать это.

Параметры

widget

a GtkWidget

flags

Флаги состояния для включения

clear

Очистить состояние перед включением flags

С версии: 3.0

gtk_widget_unset_state_flags ()

void
gtk_widget_unset_state_flags (GtkWidget *widget,
                              GtkStateFlags flags);

Эта функция предназначена для использования в реализациях виджетов. Отключает значения флагов для текущего состояния виджета (нечувствительность, предварительная подсветка и т. д.). См. gtk_widget_set_state_flags().

Параметры

widget

a GtkWidget

flags

Флаги состояния для выключения

С версии: 3.0

gtk_widget_get_state_flags ()

GtkStateFlags
gtk_widget_get_state_flags (GtkWidget *widget);

Возвращает состояние виджета как набор флагов. Стоит отметить, что будет возвращено эффективное состояние GTK_STATE_FLAG_INSENSITIVE, то есть также на основе нечувствительности родительского элемента, даже если widget сам по себе чувствителен.

Также обратите внимание, что если вам нужен способ получения GtkStateFlags для передачи методу GtkStyleContext, вы должны обратиться к gtk_style_context_get_state().

Параметры

widget

a GtkWidget

Возвращаемое значение

Флаги состояния виджета

С версии: 3.0

gtk_widget_has_default ()

gboolean
gtk_widget_has_default (GtkWidget *widget);

Определяет, является ли widget текущим виджетом по умолчанию в своем верхнем уровне. См. gtk_widget_set_can_default().

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если widget является текущим виджетом по умолчанию в своем верхнем уровне, FALSE в противном случае

С версии: 2.18

gtk_widget_has_focus ()

gboolean
gtk_widget_has_focus (GtkWidget *widget);

Определяет, имеет ли виджет глобальный фокус ввода. См. gtk_widget_is_focus() для отличия между наличием глобального фокуса ввода и наличием фокуса только в пределах верхнего уровня.

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если виджет имеет глобальный фокус ввода.

С версии: 2.18

gtk_widget_has_visible_focus ()

gboolean
gtk_widget_has_visible_focus (GtkWidget *widget);

Определяет, должен ли виджет отображать видимый индикатор того, что у него есть глобальный фокус ввода. Эта функция удобна для использования в обработчиках ::draw, учитывая, должен ли в настоящее время отображаться указатель фокуса в окне верхнего уровня widget . См. gtk_window_get_focus_visible() для получения дополнительной информации об указателе фокуса.

Чтобы узнать, имеет ли виджет глобальный фокус ввода, используйте gtk_widget_has_focus().

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если виджет должен отображать «прямоугольник фокуса»

С версии: 3.2

gtk_widget_has_grab ()

gboolean
gtk_widget_has_grab (GtkWidget *widget);

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

См. также gtk_grab_add().

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если виджет находится в стеке grab_widgets

С версии: 2.18

gtk_widget_has_rc_style ()

gboolean
gtk_widget_has_rc_style (GtkWidget *widget);

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

Используйте GtkStyleContext вместо этого

Определяет, был ли стиль виджета получен с помощью механизма rc.

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если виджет был получен с помощью механизма rc, FALSE в противном случае.

С версии: 2.20

gtk_widget_is_drawable ()

gboolean
gtk_widget_is_drawable (GtkWidget *widget);

Определяет, можно ли отрисовывать на widget. Виджет может быть отрисован, если он сопоставлен и видим.

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если widget можно отрисовать, FALSE в противном случае

С версии: 2.18

gtk_widget_is_toplevel ()

gboolean
gtk_widget_is_toplevel (GtkWidget *widget);

Определяет, является ли widget виджетом верхнего уровня.

В настоящее время только GtkWindow и GtkInvisible (и виджеты вне процесса GtkPlugs) являются виджетами верхнего уровня. Виджеты верхнего уровня не имеют родительского виджета.

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если widget виджет верхнего уровня, FALSE в противном случае

С версии: 2.18

gtk_widget_set_window ()

void
gtk_widget_set_window (GtkWidget *widget,
                       GdkWindow *window);

Устанавливает окно виджета. Эта функция должна использоваться только в реализации «realize» виджета. Переданное window обычно является либо новым окном, созданным с помощью gdk_window_new(), либо окном его родительского виджета, возвращаемым gtk_widget_get_parent_window().

Виджеты должны указывать, будут ли они создавать собственное GdkWindow, вызвав gtk_widget_set_has_window(). Это обычно делается в функции init().

Обратите внимание, что эта функция не добавляет никакой ссылки на window.

Параметры

widget

a GtkWidget

window

a GdkWindow.

[передача полная]

С версии: 2.18

gtk_widget_set_receives_default ()

void
gtk_widget_set_receives_default (GtkWidget *widget,
                                 gboolean receives_default);

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

См. gtk_widget_grab_default() для получения подробной информации о значении «по умолчанию».

Параметры

widget

a GtkWidget

receives_default

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

С версии: 2.18

gtk_widget_get_receives_default ()

gboolean
gtk_widget_get_receives_default (GtkWidget *widget);

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

См. gtk_widget_set_receives_default().

Параметры

widget

a GtkWidget

Возвращаемое значение

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

С версии: 2.18

gtk_widget_set_support_multidevice ()

void
gtk_widget_set_support_multidevice (GtkWidget *widget,
                                    gboolean support_multidevice);

Включает или отключает многоуровневое взаимодействие с указателями. Если это значение TRUE, widget начнёт получать несколько событий входа/выхода, относящихся к каждому устройству. Обратите внимание, что если пользовательские GdkWindows создаются в “realize”, gdk_window_set_support_multidevice() необходимо будет вызывать вручную на них.

Параметры

widget

a GtkWidget

support_multidevice

TRUE для поддержки ввода от нескольких устройств.

С версии: 3.0

gtk_widget_get_support_multidevice ()

gboolean
gtk_widget_get_support_multidevice (GtkWidget *widget);

Возвращает TRUE, если widget поддерживает несколько указателей. Смотрите gtk_widget_set_support_multidevice() для получения дополнительной информации.

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если widget поддерживает несколько устройств.

gtk_widget_set_realized ()

void
gtk_widget_set_realized (GtkWidget *widget,
                         gboolean realized);

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

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

Параметры

widget

a GtkWidget

realized

TRUE для того, чтобы отметить виджет как реализованный

С версии: 2.20

gtk_widget_get_realized ()

gboolean
gtk_widget_get_realized (GtkWidget *widget);

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

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если widget реализован, FALSE в противном случае

С версии: 2.20

gtk_widget_set_mapped ()

void
gtk_widget_set_mapped (GtkWidget *widget,
                       gboolean mapped);

Помечает виджет как отображаемый.

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

Параметры

widget

a GtkWidget

mapped

TRUE для того, чтобы отметить виджет как отображаемый

С версии: 2.20

gtk_widget_get_mapped ()

gboolean
gtk_widget_get_mapped (GtkWidget *widget);

Определяет, отображен ли виджет.

Параметры

widget

a GtkWidget

Возвращаемое значение

TRUE, если виджет отображен, FALSE в противном случае.

С версии: 2.20

gtk_widget_get_requisition ()

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

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

Кэш GtkRequisition виджета был удален. Если вам нужно кешировать размеры между запросами и выделениями, добавьте явный кэш в соответствующий виджет.

Возвращает требуемые размеры виджета.

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

В обычных случаях следует использовать gtk_widget_size_request().

Параметры

widget

a GtkWidget

requisition

указатель на GtkRequisition для копирования.

[out]

С версии: 2.20

gtk_widget_device_is_shadowed ()

gboolean
gtk_widget_device_is_shadowed (GtkWidget *widget,
                               GdkDevice *device);

Возвращает TRUE, если device был затенён GTK+ захватчиком устройства на другом виджете, поэтому он перестанет отправлять события widget . Это может использоваться в сигнале “grab-notify” для проверки конкретных устройств. Смотрите gtk_device_grab_add().

Параметры

widget

a GtkWidget

device

a GdkDevice

Возвращаемое значение

TRUE, если есть текущий захват device другим GtkWidget, отличным от widget .

С версии: 3.0

gtk_widget_get_modifier_mask ()

GdkModifierType
gtk_widget_get_modifier_mask (GtkWidget *widget,
                              GdkModifierIntent intent);

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

См. gdk_keymap_get_modifier_mask().

Параметры

widget

a GtkWidget

intent

случай использования маски модификаторов

Возвращаемое значение

маску модификаторов, используемую для intent .

С версии: 3.4

gtk_widget_insert_action_group ()

void
gtk_widget_insert_action_group (GtkWidget *widget,
                                const gchar *name,
                                GActionGroup *group);

Вставляет group в widget. Потомки widget, реализующие GtkActionable, могут быть связаны с действиями в group, установив их «action-name» в prefix.action-name.

Если group равен NULL, ранее вставленная группа для name удаляется из widget.

Параметры

widget

виджет GtkWidget

name

префикс для действий в group

group

GActionGroup, или NULL.

[allow-none]

С: 3.6

gtk_widget_get_opacity ()

double
gtk_widget_get_opacity (GtkWidget *widget);

Получает заданную непрозрачность для этого виджета. См. gtk_widget_set_opacity().

Параметры

widget

виджет GtkWidget

Возвращаемое значение

заданная непрозрачность для этого виджета.

С: 3.8

gtk_widget_set_opacity ()

void
gtk_widget_set_opacity (GtkWidget *widget,
                        double opacity);

Запрашивает, чтобы widget отображался с частичной прозрачностью, с непрозрачностью 0, соответствующей полной прозрачности, и 1 — полной непрозрачности. (Значения непрозрачности ограничены диапазоном [0,1]). Это работает как для виджетов верхнего уровня, так и для дочерних виджетов, но есть некоторые ограничения:

Для виджетов верхнего уровня это зависит от возможностей оконной системы. В X11 это влияет только на X-экраны с работающим менеджером композиции. См. gtk_widget_is_composited(). В Windows это должно работать всегда, хотя установка непрозрачности окна после его отображения вызывает мерцание в Windows.

Для дочерних виджетов это не работает, если у какого-либо из затронутых виджетов есть нативное окно или отключен буферизация.

Параметры

widget

виджет GtkWidget

opacity

желаемая непрозрачность, от 0 до 1

С: 3.8

gtk_widget_list_action_prefixes ()

const gchar **
gtk_widget_list_action_prefixes (GtkWidget *widget);

Возвращает массив строк, завершённый NULL, содержащий префиксы доступных GActionGroup для widget.

Параметры

widget

виджет GtkWidget

Возвращаемое значение

массив завершённых NULL строк.

[transfer container]

С: 3.16

gtk_widget_get_action_group ()

GActionGroup *
gtk_widget_get_action_group (GtkWidget *widget,
                             const gchar *prefix);

Возвращает GActionGroup, зарегистрированный с помощью prefix. Полученный GActionGroup может быть зарегистрирован для widget или любого виджета GtkWidget в его предках.

Если не найдено соответствующего GActionGroup prefix, возвращается NULL.

Параметры

widget

виджет GtkWidget

prefix

«Префикс» группы действий.

Возвращаемое значение

GActionGroup или NULL.

[transfer none][nullable]

С: 3.16

gtk_widget_get_path ()

GtkWidgetPath *
gtk_widget_get_path (GtkWidget *widget);

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

Параметры

widget

виджет GtkWidget

Возвращаемое значение

GtkWidgetPath, представляющий widget .

[transfer none]

gtk_widget_get_style_context ()

GtkStyleContext *
gtk_widget_get_style_context (GtkWidget *widget);

Возвращает контекст стиля, связанный с widget. Возвращаемый объект гарантированно останется неизменным на протяжении жизненного цикла widget.

Параметры

widget

виджет GtkWidget

Возвращаемое значение

GtkStyleContext. Память, выделенная для объекта, принадлежит widget и освобождать её не нужно.

[transfer none]

gtk_widget_reset_style ()

void
gtk_widget_reset_style (GtkWidget *widget);

Обновляет контекст стиля для widget и всех его потомков, обновив его путь виджета. GtkContainers могут захотеть использовать это для дочернего элемента при его переупорядочивании, если может примениться другой стиль. См. также gtk_container_get_path_for_child().

Параметры

widget

a GtkWidget

С момента: 3.0

gtk_widget_class_get_css_name ()

const char *
gtk_widget_class_get_css_name (GtkWidgetClass *widget_class);

Возвращает имя, используемое этим классом для сопоставления в коде CSS. См. gtk_widget_class_set_css_name() для подробностей.

Параметры

widget_class

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

Возвращает

имя CSS данного класса

С момента: 3.20

gtk_widget_class_set_css_name ()

void
gtk_widget_class_set_css_name (GtkWidgetClass *widget_class,
                               const char *name);

Устанавливает имя для сопоставления виджетов с CSS.

Если эта функция не вызвана для данного класса, используется имя родительского класса.

Параметры

widget_class

класс, для которого нужно установить имя

name

используемое имя

С момента: 3.20

gtk_requisition_new ()

GtkRequisition *
gtk_requisition_new (void);

Выделяет новый GtkRequisition и инициализирует его элементы нулём.

Возвращает

новый пустой GtkRequisition. Выделенный GtkRequisition нужно освободить с помощью gtk_requisition_free().

С момента: 3.0

gtk_requisition_copy ()

GtkRequisition *
gtk_requisition_copy (const GtkRequisition *requisition);

Копирует GtkRequisition.

Параметры

requisition

a GtkRequisition

Возвращает

копию requisition

gtk_requisition_free ()

void
gtk_requisition_free (GtkRequisition *requisition);

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

Параметры

requisition

a GtkRequisition

gtk_widget_get_preferred_height ()

void
gtk_widget_get_preferred_height (GtkWidget *widget,
                                 gint *minimum_height,
                                 gint *natural_height);

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

Этот вызов специфичен для запросов «ширина по высоте».

Возвращаемый запрос будет изменён виртуальным методом GtkWidgetClass::adjust_size_request и любыми GtkSizeGroups, которые были применены. То есть, возвращаемый запрос — тот, который следует использовать для компоновки, а не обязательно тот, который возвращает сам виджет.

Параметры

widget

экземпляр GtkWidget

minimum_height

место для хранения минимальной высоты или NULL.

[out][allow-none]

natural_height

место для хранения естественной высоты или NULL.

[out][allow-none]

С момента: 3.0

gtk_widget_get_preferred_width ()

void
gtk_widget_get_preferred_width (GtkWidget *widget,
                                gint *minimum_width,
                                gint *natural_width);

Возвращает начальную минимальную и естественную ширину виджета.

Этот вызов специфичен для запросов «высота по ширине».

Возвращаемый запрос будет изменён виртуальным методом GtkWidgetClass::adjust_size_request и любыми GtkSizeGroups, которые были применены. То есть, возвращаемый запрос — тот, который следует использовать для компоновки, а не обязательно тот, который возвращает сам виджет.

Параметры

widget

экземпляр GtkWidget

minimum_width

место для хранения минимальной ширины или NULL.

[out][allow-none]

natural_width

место для хранения естественной ширины или NULL.

[out][allow-none]

С момента: 3.0

gtk_widget_get_preferred_height_for_width ()

void
gtk_widget_get_preferred_height_for_width
                               (GtkWidget *widget,
                                gint width,
                                gint *minimum_height,
                                gint *natural_height);

Получает минимальную и естественную высоту виджета, если бы ему был задан указанный width.

Запрос, возвращаемый функцией, будет изменён виртуальным методом GtkWidgetClass::adjust_size_request и любыми GtkSizeGroups, которые были применены. То есть, возвращаемый запрос — тот, который следует использовать для макета, а не обязательно тот, который возвращает сам виджет.

Параметры

widget

экземпляр GtkWidget

width

ширина, доступная для выделения

minimum_height

место для хранения минимальной высоты, или NULL.

[out][allow-none]

natural_height

место для хранения естественной высоты, или NULL.

[out][allow-none]

С: 3.0

gtk_widget_get_preferred_width_for_height ()

void
gtk_widget_get_preferred_width_for_height
                               (GtkWidget *widget,
                                gint height,
                                gint *minimum_width,
                                gint *natural_width);

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

Запрос, возвращаемый функцией, будет изменён виртуальным методом GtkWidgetClass::adjust_size_request и любыми GtkSizeGroups, которые были применены. То есть, возвращаемый запрос — тот, который следует использовать для макета, а не обязательно тот, который возвращает сам виджет.

Параметры

widget

экземпляр GtkWidget

height

высота, доступная для выделения

minimum_width

место для хранения минимальной ширины, или NULL.

[out][allow-none]

natural_width

место для хранения естественной ширины, или NULL.

[out][allow-none]

С: 3.0

gtk_widget_get_preferred_height_and_baseline_for_width ()

void
gtk_widget_get_preferred_height_and_baseline_for_width
                               (GtkWidget *widget,
                                gint width,
                                gint *minimum_height,
                                gint *natural_height,
                                gint *minimum_baseline,
                                gint *natural_baseline);

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

Возвращаемый запрос будет изменён виртуальными методами GtkWidgetClass::adjust_size_request и GtkWidgetClass::adjust_baseline_request, а также любыми GtkSizeGroups, которые были применены. То есть, возвращаемый запрос — тот, который следует использовать для макета, а не обязательно тот, который возвращает сам виджет.

Параметры

widget

экземпляр GtkWidget

width

ширина, доступная для выделения, или -1, если ни одна не доступна

minimum_height

место для хранения минимальной высоты, или NULL.

[out][allow-none]

natural_height

место для хранения естественной высоты, или NULL.

[out][allow-none]

minimum_baseline

место для хранения базовой линии для минимальной высоты, или NULL.

[out][allow-none]

natural_baseline

место для хранения базовой линии для естественной высоты, или NULL.

[out][allow-none]

С: 3.10

gtk_widget_get_request_mode ()

GtkSizeRequestMode
gtk_widget_get_request_mode (GtkWidget *widget);

Получает, предпочитает ли виджет макет «высота для ширины» или «ширина для высоты».

Виджеты GtkBin обычно передают предпочтение своего дочернего элемента. Контейнерные виджеты должны запросить что-то либо в контексте своих дочерних элементов, либо в контексте своих возможностей выделения.

Параметры

widget

экземпляр GtkWidget

Возвращает

GtkSizeRequestMode , предпочитаемый widget.

С: 3.0

gtk_widget_get_preferred_size ()

void
gtk_widget_get_preferred_size (GtkWidget *widget,
                               GtkRequisition *minimum_size,
                               GtkRequisition *natural_size);

Возвращает минимальный и естественный размер виджета, учитывая предпочтение виджета к управлению высотой через ширину.

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

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

Используйте gtk_widget_get_preferred_height_and_baseline_for_width(), если вы хотите поддерживать выравнивание по основанию.

Параметры

widget

экземпляр GtkWidget

minimum_size

место для хранения минимального размера или NULL.

[out][allow-none]

natural_size

место для хранения естественного размера или NULL.

[out][allow-none]

С: 3.0

gtk_distribute_natural_allocation ()

gint
gtk_distribute_natural_allocation (gint extra_space,
                                   guint n_requested_sizes,
                                   GtkRequestedSize *sizes);

Распределяет extra_space по дочерним sizes, сначала увеличивая размер меньших до естественного.

Остальное пространство будет добавлено к члену minimum_size структуры GtkRequestedSize. Если все размеры достигнут своего естественного значения, остаток пространства возвращается.

Параметры

extra_space

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

n_requested_sizes

Количество запросов для размещения в распределении.

sizes

Массив структур с указателем на клиентский объект и минимальным/естественным размером в ориентации распределения.

Возвращает

Остаток extra_space после перераспределения пространства для sizes.

gtk_widget_get_halign ()

GtkAlign
gtk_widget_get_halign (GtkWidget *widget);

Получает значение свойства “halign”.

Из соображений обратной совместимости этот метод никогда не вернёт GTK_ALIGN_BASELINE, вместо этого он преобразует его в GTK_ALIGN_FILL. Выравнивание по основанию не поддерживается для горизонтального выравнивания.

Параметры

widget

a GtkWidget

Возвращает

Горизонтальное выравнивание widget

gtk_widget_set_halign ()

void
gtk_widget_set_halign (GtkWidget *widget,
                       GtkAlign align);

Устанавливает горизонтальное выравнивание widget. См. свойство “halign”.

Параметры

widget

a GtkWidget

align

горизонтальное выравнивание

gtk_widget_get_valign ()

GtkAlign
gtk_widget_get_valign (GtkWidget *widget);

Получает значение свойства “valign”.

Из соображений обратной совместимости этот метод никогда не вернёт GTK_ALIGN_BASELINE, вместо этого он преобразует его в GTK_ALIGN_FILL. Если ваш виджет должен поддерживать выравнивание по основанию, он должен использовать gtk_widget_get_valign_with_baseline() или g_object_get (widget, "valign", &value, NULL), который также сообщит истинное значение.

Параметры

widget

a GtkWidget

Возвращает

вертикальное выравнивание widget, игнорируя выравнивание по основанию.

gtk_widget_get_valign_with_baseline ()

GtkAlign
gtk_widget_get_valign_with_baseline (GtkWidget *widget);

Получает значение свойства “valign”, включая GTK_ALIGN_BASELINE.

Параметры

widget

a GtkWidget

Возвращает

вертикальное выравнивание widget

С: 3.10

gtk_widget_set_valign ()

void
gtk_widget_set_valign (GtkWidget *widget,
                       GtkAlign align);

Устанавливает вертикальное выравнивание widget. См. свойство “valign”.

Параметры

widget

a GtkWidget

align

вертикальное выравнивание

gtk_widget_get_margin_left ()

gint
gtk_widget_get_margin_left (GtkWidget *widget);

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

Используйте gtk_widget_get_margin_start() вместо этого.

Получает значение свойства “margin-left”.

Параметры

widget

a GtkWidget

Возвращает

Левый отступ widget

С: 3.0

gtk_widget_set_margin_left ()

void
gtk_widget_set_margin_left (GtkWidget *widget,
                            gint margin);

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

Используйте gtk_widget_set_margin_start() вместо этого.

Устанавливает левое отступ widget. См. свойство “margin-left”.

Параметры

widget

a GtkWidget

margin

левый отступ

С: 3.0

gtk_widget_get_margin_right ()

gint
gtk_widget_get_margin_right (GtkWidget *widget);

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

Используйте gtk_widget_get_margin_end() вместо этого.

Возвращает значение свойства “margin-right”.

Параметры

widget

a GtkWidget

Возвращаемое значение

Правый отступ widget

С: 3.0

gtk_widget_set_margin_right ()

void
gtk_widget_set_margin_right (GtkWidget *widget,
                             gint margin);

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

Используйте gtk_widget_set_margin_end() вместо этого.

Устанавливает правый отступ widget. См. свойство “margin-right”.

Параметры

widget

a GtkWidget

margin

правый отступ

С: 3.0

gtk_widget_get_margin_start ()

gint
gtk_widget_get_margin_start (GtkWidget *widget);

Возвращает значение свойства “margin-start”.

Параметры

widget

a GtkWidget

Возвращаемое значение

Начальный отступ widget

С: 3.12

gtk_widget_set_margin_start ()

void
gtk_widget_set_margin_start (GtkWidget *widget,
                             gint margin);

Устанавливает начальный отступ widget. См. свойство “margin-start”.

Параметры

widget

a GtkWidget

margin

начальный отступ

С: 3.12

gtk_widget_get_margin_end ()

gint
gtk_widget_get_margin_end (GtkWidget *widget);

Возвращает значение свойства “margin-end”.

Параметры

widget

a GtkWidget

Возвращаемое значение

Конечный отступ widget

С: 3.12

gtk_widget_set_margin_end ()

void
gtk_widget_set_margin_end (GtkWidget *widget,
                           gint margin);

Устанавливает конечный отступ widget. См. свойство “margin-end”.

Параметры

widget

a GtkWidget

margin

конечный отступ

С: 3.12

gtk_widget_get_margin_top ()

gint
gtk_widget_get_margin_top (GtkWidget *widget);

Возвращает значение свойства “margin-top”.

Параметры

widget

a GtkWidget

Возвращаемое значение

Верхний отступ widget

С: 3.0

gtk_widget_set_margin_top ()

void
gtk_widget_set_margin_top (GtkWidget *widget,
                           gint margin);

Устанавливает верхний отступ widget. См. свойство “margin-top”.

Параметры

widget

a GtkWidget

margin

верхний отступ

С: 3.0

gtk_widget_get_margin_bottom ()

gint
gtk_widget_get_margin_bottom (GtkWidget *widget);

Возвращает значение свойства “margin-bottom”.

Параметры

widget

a GtkWidget

Возвращаемое значение

Нижний отступ widget

С: 3.0

gtk_widget_set_margin_bottom ()

void
gtk_widget_set_margin_bottom (GtkWidget *widget,
                              gint margin);

Устанавливает нижний отступ widget. См. свойство “margin-bottom”.

Параметры

widget

a GtkWidget

margin

нижний отступ

С: 3.0

gtk_widget_get_hexpand ()

gboolean
gtk_widget_get_hexpand (GtkWidget *widget);

Узнаёт, хотел бы виджет получить любое доступное дополнительное горизонтальное пространство. Когда пользователь изменяет размер GtkWindow, виджеты с expand=TRUE, как правило, получают дополнительное пространство. Например, список, область прокрутки или документ в вашем окне часто устанавливаются для расширения.

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

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

Параметры

widget

виджет

Возвращает

установлен ли флаг hexpand

gtk_widget_set_hexpand ()

void
gtk_widget_set_hexpand (GtkWidget *widget,
                        gboolean expand);

Устанавливает, хотел бы виджет получить любое доступное дополнительное горизонтальное пространство. Когда пользователь изменяет размер GtkWindow, виджеты с expand=TRUE, как правило, получают дополнительное пространство. Например, список, область прокрутки или документ в вашем окне часто устанавливаются для расширения.

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

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

Явная установка hexpand с помощью этой функции переопределит автоматическое поведение расширения.

Эта функция принудительно заставляет виджет расширяться или не расширяться, независимо от дочерних элементов. Переопределение происходит, потому что gtk_widget_set_hexpand() устанавливает свойство hexpand-set (см. gtk_widget_set_hexpand_set()), что приводит к использованию значения hexpand виджета, а не к проверке дочерних элементов и состояния виджета.

Параметры

widget

виджет

expand

расширять ли

gtk_widget_get_hexpand_set ()

gboolean
gtk_widget_get_hexpand_set (GtkWidget *widget);

Узнаёт, использовалась ли gtk_widget_set_hexpand() для явной установки флага expand для этого виджета.

Если hexpand установлен, то он переопределяет любое вычисленное значение expand, основанное на дочерних виджетах. Если hexpand не установлен, то значение expand зависит от того, хотят ли расшириться какие-либо дочерние элементы виджета.

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

Параметры

widget

виджет

Возвращает

был ли hexpand явно установлен

gtk_widget_set_hexpand_set ()

void
gtk_widget_set_hexpand_set (GtkWidget *widget,
                            gboolean set);

Устанавливает, будет ли использоваться флаг hexpand (см. gtk_widget_get_hexpand()).

Свойство hexpand-set будет установлено автоматически, когда вы вызовете gtk_widget_set_hexpand() для установки hexpand, поэтому наиболее вероятной причиной использования этой функции будет отмена явного флага expand.

Если hexpand установлен, то он переопределяет любое вычисленное значение expand, основанное на дочерних виджетах. Если hexpand не установлен, то значение expand зависит от того, хотят ли расшириться какие-либо дочерние элементы виджета.

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

Параметры

widget

виджет

set

значение для свойства hexpand-set

gtk_widget_get_vexpand ()

gboolean
gtk_widget_get_vexpand (GtkWidget *widget);

Узнаёт, хотел бы виджет получить любое доступное дополнительное вертикальное пространство.

См. gtk_widget_get_hexpand() для получения дополнительной информации.

Параметры

widget

виджет

Возвращает

установлен ли флаг vexpand

gtk_widget_set_vexpand ()

void
gtk_widget_set_vexpand (GtkWidget *widget,
                        gboolean expand);

Устанавливает, хотел бы виджет получить любое доступное дополнительное вертикальное пространство.

См. gtk_widget_set_hexpand() для получения дополнительной информации.

Параметры

widget

виджет

expand

расширять ли

gtk_widget_get_vexpand_set ()

gboolean
gtk_widget_get_vexpand_set (GtkWidget *widget);

Узнаёт, использовалась ли gtk_widget_set_vexpand() для явной установки флага expand для этого виджета.

См. gtk_widget_get_hexpand_set() для получения дополнительной информации.

Параметры

widget

виджет

Возвращает

был ли vexpand явно установлен

gtk_widget_set_vexpand_set ()

void
gtk_widget_set_vexpand_set (GtkWidget *widget,
                            gboolean set);

Устанавливает, будет ли использоваться флаг vexpand (см. gtk_widget_get_vexpand()).

См. gtk_widget_set_hexpand_set() для получения дополнительной информации.

Параметры

widget

виджет

set

значение для свойства vexpand-set

gtk_widget_queue_compute_expand ()

void
gtk_widget_queue_compute_expand (GtkWidget *widget);

Помечает widget как нуждающийся в пересчёте своих флагов expand. Вызовите эту функцию при установке устаревших свойств expand child для дочернего элемента контейнера.

См. gtk_widget_compute_expand().

Параметры

widget

a GtkWidget

gtk_widget_compute_expand ()

gboolean
gtk_widget_compute_expand (GtkWidget *widget,
                           GtkOrientation orientation);

Вычисляет, должен ли контейнер предоставлять этому виджету дополнительное пространство, когда это возможно. Контейнеры должны проверять это, а не смотреть на gtk_widget_get_hexpand() или gtk_widget_get_vexpand().

Эта функция уже проверяет, видим ли виджет, поэтому видимость не нужно проверять отдельно. Невидимые виджеты не расширяются.

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

Параметры

widget

виджет

orientation

направление расширения

Возвращает

следует ли расширять дерево виджетов, корнем которого является этот элемент

gtk_widget_init_template ()

void
gtk_widget_init_template (GtkWidget *widget);

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

Важно вызывать эту функцию в инициализаторе экземпляра подкласса GtkWidget, а не в GObject.constructed() или GObject.constructor() по двум причинам.

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

Другая причина заключается в том, что при вызове g_object_new() на виджете с составными шаблонами важно построить составные виджеты до того, как будут установлены свойства конструкции. Свойства, передаваемые в g_object_new(), должны иметь приоритет над свойствами, заданными в частном XML-шаблоне.

Параметры

widget

виджет GtkWidget

С: 3.10

gtk_widget_class_set_template ()

void
gtk_widget_class_set_template (GtkWidgetClass *widget_class,
                               GBytes *template_bytes);

Этот метод должен вызываться во время инициализации класса для указания XML-файла GtkBuilder, который будет использоваться для расширения виджета.

Для удобства также предоставляется gtk_widget_class_set_template_from_resource().

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

Параметры

widget_class

Объект GtkWidgetClass

template_bytes

GBytes содержащий XML-файл GtkBuilder

С: 3.10

gtk_widget_class_set_template_from_resource ()

void
gtk_widget_class_set_template_from_resource
                               (GtkWidgetClass *widget_class,
                                const gchar *resource_name);

Функция для удобства вызова gtk_widget_class_set_template().

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

Параметры

widget_class

Объект GtkWidgetClass

resource_name

Имя ресурса для загрузки шаблона

С: 3.10

gtk_widget_get_template_child ()

GObject *
gtk_widget_get_template_child (GtkWidget *widget,
                               GType widget_type,
                               const gchar *name);

Получить объект, созданный из XML-шаблона для widget_type в этом экземпляре widget.

Будут возвращены только те дочерние элементы, которые ранее были объявлены с помощью gtk_widget_class_bind_template_child_full() или одной из его разновидностей.

Эта функция предназначена только для использования кодом, который является закрытым для widget_type, который объявил дочерний элемент, и предназначена для языковых библиотек, которые не могут легко использовать смещения структуры GObject.

Параметры

widget

Объект GtkWidget

widget_type

GType дочернего элемента шаблона

name

«Идентификатор» дочернего элемента, определённого в XML-шаблоне

Возвращает

Объект, созданный в XML-шаблоне с идентификатором name.

[transfer none]

gtk_widget_class_bind_template_child()

#define             gtk_widget_class_bind_template_child(widget_class, TypeName, member_name)

Связывает дочерний виджет, определённый в шаблоне, с widget_class.

Это макрос — удобная обёртка вокруг функции gtk_widget_class_bind_template_child_full().

Это макрос использует смещение member_name внутри структуры экземпляра TypeName.

Параметры

widget_class

Объект GtkWidgetClass

TypeName

имя типа этого виджета

member_name

имя члена экземпляра в структуре экземпляра для data_type

С: 3.10

gtk_widget_class_bind_template_child_internal()

#define             gtk_widget_class_bind_template_child_internal(widget_class, TypeName, member_name)

Связывает дочерний виджет, определённый в шаблоне, с widget_class, а также делает его доступным как внутреннего дочернего элемента в GtkBuilder под именем member_name.

Этот макрос — удобная обёртка вокруг функции gtk_widget_class_bind_template_child_full().

Этот макрос использует смещение member_name внутри структуры экземпляра TypeName.

Параметры

widget_class

Объект GtkWidgetClass

TypeName

имя типа в формате CamelCase

member_name

имя члена экземпляра в структуре экземпляра для data_type

С: 3.10

gtk_widget_class_bind_template_child_private()

#define             gtk_widget_class_bind_template_child_private(widget_class, TypeName, member_name)

Связывает виджет-потомок, определённый в шаблоне, с widget_class .

Этот макрос — это удобная обертка вокруг функции gtk_widget_class_bind_template_child_full().

Этот макрос будет использовать смещение member_name внутри структуры данных TypeName (он использует G_PRIVATE_OFFSET(), поэтому структура private должна быть добавлена с помощью G_ADD_PRIVATE()).

Параметры

widget_class

структура GtkWidgetClass

TypeName

имя типа этого виджета

member_name

имя частного члена экземпляра в частной структуре для data_type

С версии: 3.10

gtk_widget_class_bind_template_child_internal_private()

#define             gtk_widget_class_bind_template_child_internal_private(widget_class, TypeName, member_name)

Связывает виджет-потомок, определённый в шаблоне, с widget_class , а также делает его доступным как внутренний виджет в GtkBuilder под именем member_name .

Этот макрос — это удобная обертка вокруг функции gtk_widget_class_bind_template_child_full().

Этот макрос будет использовать смещение member_name внутри структуры данных TypeName.

Параметры

widget_class

структура GtkWidgetClass

TypeName

имя типа, в формате CamelCase

member_name

имя частного члена экземпляра в частной структуре для data_type

С версии: 3.10

gtk_widget_class_bind_template_child_full ()

void
gtk_widget_class_bind_template_child_full
                               (GtkWidgetClass *widget_class,
                                const gchar *name,
                                gboolean internal_child,
                                gssize struct_offset);

Автоматически присваивает объект, объявленный в XML-шаблоне класса, для установки в местоположение на только что созданной частной структуре экземпляра, или, альтернативно, доступный через gtk_widget_get_template_child().

Структура может указывать либо на публичное поле экземпляра, тогда вы должны использовать G_STRUCT_OFFSET(WidgetType, member) для struct_offset , либо на частную структуру, тогда вы должны использовать G_PRIVATE_OFFSET(WidgetType, member).

Явно будет создана сильная ссылка на объект на время существования экземпляра, она будет автоматически освобождена, когда будет выполнено GObjectClass.dispose() для вашего экземпляра и если указано struct_offset, которое не равно 0, то автоматическое местоположение в публичных или частных данных вашего экземпляра будет установлено в NULL. Тем не менее, вы можете получить автоматический указатель на подчинённый элемент в первый раз, когда для вашего класса будет выполнено GObjectClass.dispose(), или альтернативно в GtkWidgetClass.destroy().

Если указано internal_child, GtkBuildableIface.get_internal_child() будет автоматически реализован классом GtkWidget, поэтому нет необходимости реализовывать его вручную.

Обратите внимание, что это необходимо вызывать из инициализатора класса составного виджета после вызова gtk_widget_class_set_template().

Параметры

widget_class

Структура GtkWidgetClass

name

«ID» потомка, определённого в XML-шаблоне

internal_child

Должен ли потомок быть доступен как «внутренний» при использовании этого класса в XML GtkBuilder

struct_offset

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

С версии: 3.10

gtk_widget_class_bind_template_callback()

#define             gtk_widget_class_bind_template_callback(widget_class, callback)

Связывает функцию обратного вызова, определённую в шаблоне, с widget_class .

Этот макрос — это удобная обертка вокруг функции gtk_widget_class_bind_template_callback_full().

Параметры

widget_class

структура GtkWidgetClass

callback

символ обратного вызова

С версии: 3.10

gtk_widget_class_bind_template_callback_full ()

void
gtk_widget_class_bind_template_callback_full
                               (GtkWidgetClass *widget_class,
                                const gchar *callback_name,
                                GCallback callback_symbol);

Объявляет callback_symbol для обработки callback_name из XML-шаблона, определённого для widget_type . См. gtk_builder_add_callback_symbol().

Обратите внимание, что это необходимо вызывать из инициализатора класса составного виджета после вызова gtk_widget_class_set_template().

Параметры

widget_class

Структура GtkWidgetClass

callback_name

Имя обратного вызова, ожидаемое в XML-шаблоне

callback_symbol

Символ обратного вызова.

[scope async]

С версии: 3.10

gtk_widget_class_set_connect_func ()

void
gtk_widget_class_set_connect_func (GtkWidgetClass *widget_class,
                                   GtkBuilderConnectFunc connect_func,
                                   gpointer connect_data,
                                   GDestroyNotify connect_data_destroy);

Для использования в языковых привязках, это переопределяет по умолчанию GtkBuilderConnectFunc для использования при разборе GtkBuilder XML из шаблона данных данного класса.

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

Параметры

widget_class

A GtkWidgetClass

connect_func

The GtkBuilderConnectFunc для использования при подключении сигналов в шаблоне класса

connect_data

Данные, передаваемые в connect_func

connect_data_destroy

The GDestroyNotify для освобождения connect_data, это будет использовано только во время завершения работы класса, когда больше нет ни одного класса типа widget_type.

Since: 3.10

Типы и значения

GtkWidget

typedef struct _GtkWidget GtkWidget;

struct GtkWidgetClass

struct GtkWidgetClass {
  GInitiallyUnownedClass parent_class;


  guint activate_signal;

  /* seldomly overidden */
  void (*dispatch_child_properties_changed) (GtkWidget   *widget,
					     guint        n_pspecs,
					     GParamSpec **pspecs);

  /* basics */
  void (* destroy)             (GtkWidget        *widget);
  void (* show)		       (GtkWidget        *widget);
  void (* show_all)            (GtkWidget        *widget);
  void (* hide)		       (GtkWidget        *widget);
  void (* map)		       (GtkWidget        *widget);
  void (* unmap)	       (GtkWidget        *widget);
  void (* realize)	       (GtkWidget        *widget);
  void (* unrealize)	       (GtkWidget        *widget);
  void (* size_allocate)       (GtkWidget        *widget,
				GtkAllocation    *allocation);
  void (* state_changed)       (GtkWidget        *widget,
				GtkStateType   	  previous_state);
  void (* state_flags_changed) (GtkWidget        *widget,
				GtkStateFlags  	  previous_state_flags);
  void (* parent_set)	       (GtkWidget        *widget,
				GtkWidget        *previous_parent);
  void (* hierarchy_changed)   (GtkWidget        *widget,
				GtkWidget        *previous_toplevel);
  void (* style_set)	       (GtkWidget        *widget,
				GtkStyle         *previous_style);
  void (* direction_changed)   (GtkWidget        *widget,
				GtkTextDirection  previous_direction);
  void (* grab_notify)         (GtkWidget        *widget,
				gboolean          was_grabbed);
  void (* child_notify)        (GtkWidget	 *widget,
				GParamSpec       *child_property);
  gboolean (* draw)	       (GtkWidget	 *widget,
                                cairo_t          *cr);

  /* size requests */
  GtkSizeRequestMode (* get_request_mode)               (GtkWidget      *widget);

  void               (* get_preferred_height)           (GtkWidget       *widget,
                                                         gint            *minimum_height,
                                                         gint            *natural_height);
  void               (* get_preferred_width_for_height) (GtkWidget       *widget,
                                                         gint             height,
                                                         gint            *minimum_width,
                                                         gint            *natural_width);
  void               (* get_preferred_width)            (GtkWidget       *widget,
                                                         gint            *minimum_width,
                                                         gint            *natural_width);
  void               (* get_preferred_height_for_width) (GtkWidget       *widget,
                                                         gint             width,
                                                         gint            *minimum_height,
                                                         gint            *natural_height);

  /* Mnemonics */
  gboolean (* mnemonic_activate)        (GtkWidget           *widget,
                                         gboolean             group_cycling);

  /* explicit focus */
  void     (* grab_focus)               (GtkWidget           *widget);
  gboolean (* focus)                    (GtkWidget           *widget,
                                         GtkDirectionType     direction);

  /* keyboard navigation */
  void     (* move_focus)               (GtkWidget           *widget,
                                         GtkDirectionType     direction);
  gboolean (* keynav_failed)            (GtkWidget           *widget,
                                         GtkDirectionType     direction);

  /* events */
  gboolean (* event)			(GtkWidget	     *widget,
					 GdkEvent	     *event);
  gboolean (* button_press_event) (GtkWidget	     *widget,
					 GdkEventButton      *event);
  gboolean (* button_release_event) (GtkWidget	     *widget,
					 GdkEventButton      *event);
  gboolean (* scroll_event)		(GtkWidget           *widget,
					 GdkEventScroll      *event);
  gboolean (* motion_notify_event) (GtkWidget	     *widget,
					 GdkEventMotion      *event);
  gboolean (* delete_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* destroy_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* key_press_event)		(GtkWidget	     *widget,
					 GdkEventKey	     *event);
  gboolean (* key_release_event) (GtkWidget	     *widget,
					 GdkEventKey	     *event);
  gboolean (* enter_notify_event) (GtkWidget	     *widget,
					 GdkEventCrossing    *event);
  gboolean (* leave_notify_event) (GtkWidget	     *widget,
					 GdkEventCrossing    *event);
  gboolean (* configure_event)		(GtkWidget	     *widget,
					 GdkEventConfigure   *event);
  gboolean (* focus_in_event)		(GtkWidget	     *widget,
					 GdkEventFocus       *event);
  gboolean (* focus_out_event)		(GtkWidget	     *widget,
					 GdkEventFocus       *event);
  gboolean (* map_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* unmap_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* property_notify_event) (GtkWidget	     *widget,
					 GdkEventProperty    *event);
  gboolean (* selection_clear_event) (GtkWidget	     *widget,
					 GdkEventSelection   *event);
  gboolean (* selection_request_event) (GtkWidget	     *widget,
					 GdkEventSelection   *event);
  gboolean (* selection_notify_event) (GtkWidget	     *widget,
					 GdkEventSelection   *event);
  gboolean (* proximity_in_event) (GtkWidget	     *widget,
					 GdkEventProximity   *event);
  gboolean (* proximity_out_event) (GtkWidget	     *widget,
					 GdkEventProximity   *event);
  gboolean (* visibility_notify_event) (GtkWidget	     *widget,
					 GdkEventVisibility  *event);
  gboolean (* window_state_event) (GtkWidget	     *widget,
					 GdkEventWindowState *event);
  gboolean (* damage_event)             (GtkWidget           *widget,
                                         GdkEventExpose      *event);
  gboolean (* grab_broken_event)        (GtkWidget           *widget,
                                         GdkEventGrabBroken  *event);

  /* selection */
  void     (* selection_get)       (GtkWidget          *widget,
				    GtkSelectionData   *selection_data,
				    guint               info,
				    guint               time_);
  void     (* selection_received)  (GtkWidget          *widget,
				    GtkSelectionData   *selection_data,
				    guint               time_);

  /* Source side drag signals */
  void     (* drag_begin)          (GtkWidget         *widget,
				    GdkDragContext     *context);
  void     (* drag_end)	           (GtkWidget	       *widget,
				    GdkDragContext     *context);
  void     (* drag_data_get)       (GtkWidget          *widget,
				    GdkDragContext     *context,
				    GtkSelectionData   *selection_data,
				    guint               info,
				    guint               time_);
  void     (* drag_data_delete)    (GtkWidget          *widget,
				    GdkDragContext     *context);

  /* Target side drag signals */
  void     (* drag_leave)          (GtkWidget          *widget,
				    GdkDragContext     *context,
				    guint               time_);
  gboolean (* drag_motion)         (GtkWidget	       *widget,
				    GdkDragContext     *context,
				    gint                x,
				    gint                y,
				    guint               time_);
  gboolean (* drag_drop)           (GtkWidget	       *widget,
				    GdkDragContext     *context,
				    gint                x,
				    gint                y,
				    guint               time_);
  void     (* drag_data_received)  (GtkWidget          *widget,
				    GdkDragContext     *context,
				    gint                x,
				    gint                y,
				    GtkSelectionData   *selection_data,
				    guint               info,
				    guint               time_);
  gboolean (* drag_failed)         (GtkWidget          *widget,
                                    GdkDragContext     *context,
                                    GtkDragResult       result);

  /* Signals used only for keybindings */
  gboolean (* popup_menu)          (GtkWidget          *widget);

  /* If a widget has multiple tooltips/whatsthis, it should show the
   * one for the current focus location, or if that doesn't make
   * sense, should cycle through them showing each tip alongside
   * whatever piece of the widget it applies to.
   */
  gboolean (* show_help)           (GtkWidget          *widget,
                                    GtkWidgetHelpType   help_type);

  /* accessibility support
   */
  AtkObject *  (* get_accessible)     (GtkWidget *widget);

  void         (* screen_changed)     (GtkWidget *widget,
                                       GdkScreen *previous_screen);
  gboolean     (* can_activate_accel) (GtkWidget *widget,
                                       guint      signal_id);


  void         (* composited_changed) (GtkWidget *widget);

  gboolean     (* query_tooltip)      (GtkWidget  *widget,
				       gint        x,
				       gint        y,
				       gboolean    keyboard_tooltip,
				       GtkTooltip *tooltip);

  void         (* compute_expand)     (GtkWidget  *widget,
                                       gboolean   *hexpand_p,
                                       gboolean   *vexpand_p);

  void         (* adjust_size_request)    (GtkWidget         *widget,
                                           GtkOrientation     orientation,
                                           gint              *minimum_size,
                                           gint              *natural_size);
  void         (* adjust_size_allocation) (GtkWidget         *widget,
                                           GtkOrientation     orientation,
                                           gint              *minimum_size,
                                           gint              *natural_size,
                                           gint              *allocated_pos,
                                           gint              *allocated_size);

  void         (* style_updated)          (GtkWidget *widget);

  gboolean     (* touch_event)            (GtkWidget     *widget,
                                           GdkEventTouch *event);

  void         (* get_preferred_height_and_baseline_for_width)  (GtkWidget     *widget,
								 gint           width,
								 gint          *minimum_height,
								 gint          *natural_height,
								 gint          *minimum_baseline,
								 gint          *natural_baseline);
  void         (* adjust_baseline_request)(GtkWidget         *widget,
                                           gint              *minimum_baseline,
                                           gint              *natural_baseline);
  void         (* adjust_baseline_allocation) (GtkWidget         *widget,
					       gint              *baseline);
  void         (*queue_draw_region)           (GtkWidget         *widget,
					       const cairo_region_t *region);
};

Члены

guint activate_signal;

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

dispatch_child_properties_changed ()

Редко переопределяется.

destroy ()

Сигнализирует всем держателям ссылки на виджет о необходимости освободить удерживаемую ими ссылку.

show ()

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

show_all ()

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

hide ()

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

map ()

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

unmap ()

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

realize ()

Сигнал, генерируемый при ассоциации виджета с GdkWindow, что означает, что gtk_widget_realize() был вызван или виджет был отображён (то есть он будет нарисован).

unrealize ()

Сигнал, генерируемый при уничтожении связанного с виджетом GdkWindow, что означает, что gtk_widget_unrealize() был вызван или виджет был скрыт (то есть он будет скрыт).

size_allocate ()

Сигнал, генерируемый для получения выделения виджета.

state_changed ()

Сигнал, генерируемый при изменении состояния виджета. Устарело: 3.0

state_flags_changed ()

Сигнал, генерируемый при изменении состояния виджета, см. gtk_widget_get_state_flags().

parent_set ()

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

hierarchy_changed ()

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

style_set ()

Сигнал, генерируемый при установке нового стиля виджета. Устарело: 3.0

direction_changed ()

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

grab_notify ()

Сигнал, генерируемый, когда виджет становится затенённым GTK+ захватом (не указателем или клавиатурным захватом) на другом виджете, или когда он становится незатенённым из-за удаления захвата.

child_notify ()

Сигнал, генерируемый для каждой изменённой свойства дочернего элемента.

draw ()

Сигнал, генерируемый, когда виджет должен отрисовать себя.

get_request_mode ()

Это позволяет виджету сообщить своему родительскому контейнеру, предпочитает ли он быть размещённым в режиме GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH или GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT. GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH означает, что виджет предпочитает вызов GtkWidgetClass.get_preferred_width(), а затем GtkWidgetClass.get_preferred_height_for_width(). GTK_SIZE_REQUEST_CONSTANT_SIZE отключает любое управление геометрией высоты для ширины или ширины для высоты для данного виджета и является значением по умолчанию. Важно отметить (как описано ниже), что любой виджет, который меняет высоту на ширину или ширину на высоту, должен правильно реагировать на оба виртуальных метода GtkWidgetClass.get_preferred_height_for_width() и GtkWidgetClass.get_preferred_width_for_height(), так как он может быть запрошен в GtkSizeRequestMode родительским контейнером.

get_preferred_height ()

Это вызывается контейнерами для получения минимальной и естественной высоты виджета. Виджет, который не меняет высоту на ширину или ширину на высоту, должен реализовать только эти два виртуальных метода (GtkWidgetClass.get_preferred_width() и GtkWidgetClass.get_preferred_height()).

get_preferred_width_for_height ()

Это аналогично GtkWidgetClass.get_preferred_height_for_width(), но работает в обратном направлении. Редко, когда виджет использует GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT запросы, но это может произойти, например, когда виджет или контейнер получают дополнительные столбцы для компенсации меньшей выделенной высоты.

get_preferred_width ()

Это вызывается контейнерами для получения минимальной и естественной ширины виджета. Ширина виджета никогда не будет меньше минимальной и никогда не будет больше естественной ширины, пока все его сестринские виджеты не получат свои естественные ширины. Кроме того, ширина виджета будет больше естественной ширины только в том случае, если он был настроен на получение дополнительного расширяемого пространства от своего родительского контейнера.

get_preferred_height_for_width ()

Это аналогично GtkWidgetClass.get_preferred_height(), за исключением того, что ему передаётся контекстная ширина для запроса высоты. Реализуя этот виртуальный метод, GtkLabel может сообщить своему родителю, какая высота потребуется, если метке будет выделена указанная ширина.

mnemonic_activate ()

Активирует widget, если group_cycling имеет значение FALSE, и просто получает фокус, если group_cycling имеет значение TRUE.

grab_focus ()

Приводит к тому, что widget получает фокус клавиатуры для GtkWindow, внутри которого он находится.

focus ()

move_focus ()

Сигнал, генерируемый при запросе изменения фокуса.

keynav_failed ()

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

event ()

Основной цикл GTK+ генерирует три сигнала для каждого события GDK, переданного виджету: один общий сигнал ::event, другой, более специфичный, сигнал, соответствующий типу переданного события (например, "key-press-event"), и, наконец, общий сигнал "event-after".

button_press_event ()

Сигнал генерируется при нажатии кнопки (обычно мыши).

button_release_event ()

Сигнал генерируется при отпускании кнопки (обычно мыши).

scroll_event ()

Сигнал генерируется при нажатии кнопки в диапазоне от 4 до 7.

motion_notify_event ()

Сигнал генерируется при перемещении указателя над GdkWindow виджета.

delete_event ()

Сигнал генерируется, если пользователь запрашивает закрытие окна верхнего уровня.

destroy_event ()

Сигнал генерируется при уничтожении GdkWindow.

key_press_event ()

Сигнал генерируется при нажатии клавиши.

key_release_event ()

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

enter_notify_event ()

Сигнал события генерируется при входе указателя в окно виджета.

leave_notify_event ()

Генерируется при выходе указателя из окна виджета.

configure_event ()

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

focus_in_event ()

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

focus_out_event ()

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

map_event ()

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

unmap_event ()

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

property_notify_event ()

Сигнал генерируется при изменении или удалении свойства в окне виджета.

selection_clear_event ()

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

selection_request_event ()

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

selection_notify_event ()

proximity_in_event ()

proximity_out_event ()

visibility_notify_event ()

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

window_state_event ()

Сигнал генерируется, когда состояние окна верхнего уровня, связанного с виджетом, изменяется.

damage_event ()

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

grab_broken_event ()

Сигнал генерируется, когда захват указателя или клавиатуры для окна, принадлежащего виджету, прерывается.

selection_get ()

selection_received ()

drag_begin ()

Сигнал, испускаемый источником перетаскивания при начале перетаскивания.

drag_end ()

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

drag_data_get ()

Сигнал, испускаемый источником перетаскивания, когда место назначения запросило данные, которые перетаскиваются.

drag_data_delete ()

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

drag_leave ()

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

drag_motion ()

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

drag_drop ()

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

drag_data_received ()

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

drag_failed ()

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

popup_menu ()

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

show_help ()

get_accessible ()

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

screen_changed ()

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

can_activate_accel ()

Сигнал позволяет приложениям и производным виджетам переопределять стандартную обработку GtkWidget для определения возможности активации ускорителя.

composited_changed ()

Сигнал, испускаемый, когда составной статус экрана виджетов изменяется. См. gdk_screen_is_composited().

query_tooltip ()

Сигнал испускается, когда «has-tooltip» TRUE и таймаут ожидания наведения курсора истек, при наведении курсора «над» виджетом; или испускается, когда виджет получил фокус в режиме клавиатуры.

compute_expand ()

Вычисляет, должен ли контейнер предоставить этому виджету дополнительное пространство при возможности.

adjust_size_request ()

Преобразует первоначальный запрос размера из реализации виртуального метода GtkSizeRequestMode виджета в запрос размера, который будет использоваться родительскими контейнерами для размещения виджета. adjust_size_request корректирует запрос от дочернего виджета до того, что должен использовать родительский контейнер для макета. Аргумент for_size будет равен -1, если запрос не должен быть для определенного размера в противоположной ориентации, т.е. если запрос не является высотой для ширины или шириной для высоты. Если for_size больше -1, это предполагаемое размещение в противоположной ориентации, для которого нам нужен запрос. Реализации adjust_size_request должны связываться с базовой реализацией, которая применяет свойства отступа виджета GtkWidget и накладывает любые значения из gtk_widget_set_size_request(). Связывание должно происходить последним, после того как ваш подкласс скорректирует запрос, чтобы виджет GtkWidget мог применить ограничения и правильно добавить отступ.

adjust_size_allocation ()

Преобразует начальное размещение размера, назначенное контейнером GtkContainer с помощью gtk_widget_size_allocate(), в фактическое размещение размера, которое будет использоваться виджетом. adjust_size_allocation корректирует фактическое размещение дочернего виджета от того, что родительский контейнер вычислил для дочернего. Корректированное размещение должно полностью находиться внутри исходного размещения. В любой пользовательской реализации необходимо связаться с базовой реализацией виджета GtkWidget, которая применяет свойства отступа и выравнивания виджета GtkWidget. Связывайтесь с базовым классом перед выполнением собственных корректировок, чтобы ваши корректировки удалили больше размещения после того, как базовый класс GtkWidget уже удалил отступ и выравнивание. Естественный размер, переданный в качестве аргумента, должен быть скорректирован таким же образом, как и размер размещения, что позволяет корректировкам выполнять выравнивание или другие изменения на основе естественного размера.

style_updated ()

Сигнал, испускаемый, когда GtkStyleContext виджета изменяется.

touch_event ()

get_preferred_height_and_baseline_for_width ()

adjust_baseline_request ()

adjust_baseline_allocation ()

queue_draw_region ()

Делает область виджета недействительной, вызывая gdk_window_invalidate_region() на окне виджета и всех его дочерних окнах.

GtkRequisition

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

A GtkRequisition представляет желаемый размер виджета. Дополнительную информацию см. в разделе управления геометрией GtkWidget.

Члены

gint width;

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

gint height;

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

GtkAllocation

typedef 	GdkRectangle	   GtkAllocation;

A GtkAllocation виджета представляет область, выделенную родителем виджета. Это подобласть выделения родителя. Дополнительную информацию см. в разделе управления геометрией GtkWidget.

Перечисление GtkWidgetHelpType

Типы помощи, специфичные для виджетов. Используется сигналом ::show-help.

Члены

GTK_WIDGET_HELP_TOOLTIP

Подсказка.

GTK_WIDGET_HELP_WHATS_THIS

Что это?

Перечисление GtkTextDirection

Направления чтения текста.

Члены

GTK_TEXT_DIR_NONE

Без направления.

GTK_TEXT_DIR_LTR

Направление чтения текста слева направо.

GTK_TEXT_DIR_RTL

Направление чтения текста справа налево.

Перечисление GtkStateType

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

Все API, использующие это перечисление, устарели в пользу альтернатив, использующих GtkStateFlags.

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

Члены

GTK_STATE_NORMAL

Состояние при нормальной работе.

GTK_STATE_ACTIVE

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

GTK_STATE-PRELIGHT

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

GTK_STATE_SELECTED

Состояние выделенного элемента, например, выделенной строки в списке.

GTK_STATE_INSENSITIVE

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

GTK_STATE_INCONSISTENT

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

GTK_STATE_FOCUSED

Виджет имеет фокус клавиатуры.

Перечисление GtkSizeRequestMode

Указывает предпочтение для управления геометрией по принципу высота-для-ширины или ширина-для-высоты.

Члены

GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH

Предпочтение управления геометрией по принципу высота-для-ширины

GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT

Предпочтение управления геометрией по принципу ширина-для-высоты

GTK_SIZE_REQUEST_CONSTANT_SIZE

Не использовать высоту-для-ширины или ширину-для-высоты

Структура GtkRequestedSize

struct GtkRequestedSize {
  gpointer data;
  gint     minimum_size;
  gint     natural_size;
};

Представляет запрос объекта экрана в заданном направлении. Они в основном используются в реализациях контейнеров при выделении естественного размера для потомков, вызывая. См. gtk_distribute_natural_allocation().

Члены

gpointer data;

Указатель клиента

gint minimum_size;

Минимальный размер, необходимый для выделения в заданном направлении

gint natural_size;

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

Перечисление GtkAlign

Управляет тем, как виджет обрабатывает дополнительное пространство в одном измерении (x или y).

Выравнивание имеет значение только в том случае, если виджет получает «слишком большое» выделение, например, если вы добавили виджет с флагом “expand” внутри GtkBox, тогда виджет может получить дополнительное пространство. Например, если у вас есть значок 16x16 внутри пространства 32x32, значок может быть изменён в размерах и растянут, он может быть центрирован или помещён на одну из сторон пространства.

Обратите внимание, что в горизонтальном контексте GTK_ALIGN_START и GTK_ALIGN_END интерпретируются относительно направления текста.

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

Члены

GTK_ALIGN_FILL

растягивается, чтобы заполнить всё доступное пространство, если возможно, центрируется, если нет осмысленного способа растяжения

GTK_ALIGN_START

прижимается к левой или верхней стороне, оставляя пространство справа или снизу

GTK_ALIGN_END

прижимается к правой или нижней стороне, оставляя пространство слева или сверху

GTK_ALIGN_CENTER

центрирует естественную ширину виджета внутри выделения

GTK_ALIGN_BASELINE

выравнивает виджет относительно базовой линии. С версии 3.10.

Подробное описание свойств

Свойство “app-paintable”

  “app-paintable”            gboolean

Определяет, будет ли приложение рисовать напрямую на виджете.

Флаги: Чтение / Запись

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

Свойство “can-default”

  “can-default”              gboolean

Определяет, может ли виджет быть виджетом по умолчанию.

Флаги: Чтение / Запись

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

Свойство “can-focus”

  “can-focus”                gboolean

Определяет, может ли виджет принимать фокус ввода.

Флаги: Чтение / Запись

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

Свойство “composite-child”

  “composite-child”          gboolean

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

Флаги: Чтение

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

Свойство “double-buffered”

  “double-buffered”          gboolean

Определяет, является ли виджет двойной буферизованным.

GtkWidget:double-buffered устарело начиная с версии 3.14 и не должно использоваться в новом коде.

Виджеты не должны использовать это свойство.

Флаги: Чтение / Запись

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

С версии: 2.18

Свойство “events”

  “events”                   GdkEventMask

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

Флаги: Чтение / Запись

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

Свойство “expand”

  “expand”                   gboolean

Определяет, нужно ли расширять в обоих направлениях. Установка этого свойства устанавливает и “hexpand”, и “vexpand”.

Флаги: Чтение / Запись

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

С версии: 3.0

Свойство “focus-on-click”

  “focus-on-click”           gboolean

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

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

До версии 3.20 несколько виджетов (GtkButton, GtkFileChooserButton, GtkComboBox) реализовывали это свойство индивидуально.

Флаги: Чтение / Запись

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

С версии: 3.20

Свойство “halign”

  “halign”                   GtkAlign

Как распределять горизонтальное пространство, если виджет получает дополнительное пространство, см. GtkAlign

Флаги: Чтение / Запись

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

С версии: 3.0

Свойство “has-default”

  “has-default”              gboolean

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

Флаги: Чтение / Запись

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

Свойство “has-focus”

  “has-focus”                gboolean

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

Флаги: Чтение / Запись

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

Свойство “has-tooltip”

  “has-tooltip”              gboolean

Включает или отключает вызов сигнала “query-tooltip” для widget. Значение TRUE означает, что widget может иметь всплывающую подсказку, в этом случае виджет будет запрошен с помощью сигнала “query-tooltip” для определения, будет ли он предоставлять подсказку или нет.

Обратите внимание, что установка этого свойства в TRUE в первый раз изменит маски событий GdkWindows этого виджета, включив события leave-notify и motion-notify. Это действие необратимо при повторной установке свойства в FALSE.

Флаги: Чтение / Запись

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

С версии: 2.12

Свойство “height-request”

  “height-request”           gint

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

Флаги: Чтение / Запись

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

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

Свойство “hexpand”

  “hexpand”                  gboolean

Определяет, расширять ли горизонтально. См. gtk_widget_set_hexpand().

Флаги: Чтение / Запись

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

С версии: 3.0

Свойство “hexpand-set”

  “hexpand-set”              gboolean

Определяет, использовать ли свойство “hexpand”. См. gtk_widget_get_hexpand_set().

Флаги: Чтение / Запись

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

С версии: 3.0

Свойство “is-focus”

  “is-focus”                 gboolean

Определяет, является ли виджет виджетом, имеющим фокус в окне верхнего уровня.

Флаги: Чтение / Запись

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

Свойство “margin”

  “margin”                   gint

Устанавливает отступы для всех четырех сторон сразу. Если читается, возвращает максимальный отступ для любой стороны.

Флаги: Чтение / Запись

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

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

С версии: 3.0

Свойство “margin-bottom”

  “margin-bottom”            gint

Отступ снизу виджета.

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

Флаги: Чтение / Запись

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

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

С версии: 3.0

Свойство “margin-end”

  “margin-end”               gint

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

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

Флаги: Чтение / Запись

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

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

С версии: 3.12

Свойство “margin-left”

  “margin-left”              gint

Отступ слева виджета.

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

GtkWidget:margin-left устарело начиная с версии 3.12 и не должно использоваться в новом коде.

Используйте “margin-start” вместо этого.

Флаги: Чтение / Запись

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

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

С версии: 3.0

Свойство “margin-right”

  “margin-right”             gint

Отступ справа виджета.

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

GtkWidget:margin-right устарело начиная с версии 3.12 и не должно использоваться в новом коде.

Используйте “margin-end” вместо этого.

Флаги: Чтение / Запись

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

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

С версии: 3.0

Свойство “margin-start”

  “margin-start”             gint

Отступ в начале виджета по горизонтали. Это свойство поддерживает направления текста слева направо и справа налево.

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

Флаги: Чтение / Запись

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

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

С версии: 3.12

Свойство “margin-top”

  “margin-top”               gint

Отступ сверху виджета.

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

Флаги: Чтение / Запись

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

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

С: 3.0

Свойство “name”

  “name”                     gchar *

Имя виджета.

Флаги: Чтение / Запись

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

Свойство “no-show-all”

  “no-show-all”              gboolean

Определяет, должен ли gtk_widget_show_all() не влиять на данный виджет.

Флаги: Чтение / Запись

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

Свойство “opacity”

  “opacity”                  gdouble

Запрошенная непрозрачность виджета. Подробнее о непрозрачности окна см. gtk_widget_set_opacity().

До версии 3.8 это свойство было доступно только в GtkWindow

Флаги: Чтение / Запись

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

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

С: 3.8

Свойство “parent”

  “parent”                   GtkContainer *

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

Флаги: Чтение / Запись

Свойство “receives-default”

  “receives-default”         gboolean

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

Флаги: Чтение / Запись

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

Свойство “scale-factor”

  “scale-factor”             gint

Масштабный множитель виджета. Подробнее о масштабировании виджетов см. gtk_widget_get_scale_factor().

Флаги: Чтение

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

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

С: 3.10

Свойство “sensitive”

  “sensitive”                gboolean

Указывает, реагирует ли виджет на входные данные.

Флаги: Чтение / Запись

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

Свойство “style”

  “style”                    GtkStyle *

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

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

Используйте GtkStyleContext вместо него.

Флаги: Чтение / Запись

Свойство “tooltip-markup”

  “tooltip-markup”           gchar *

Устанавливает текст всплывающей подсказки в виде строки, форматированной с помощью языка разметки текста Pango. Также см. gtk_tooltip_set_markup().

Это удобное свойство, которое позаботится о отображении всплывающей подсказки, если заданная строка не равна NULL: “has-tooltip” будет автоматически установлено в TRUE, и будет обработано “query-tooltip” в обработчике сигнала по умолчанию.

Обратите внимание, что если установлены как “tooltip-text”, так и “tooltip-markup”, то последнее свойство переопределяет предыдущее.

Флаги: Чтение / Запись

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

С: 2.12

Свойство “tooltip-text”

  “tooltip-text”             gchar *

Устанавливает текст всплывающей подсказки в виде заданной строки.

См. также gtk_tooltip_set_text().

Это удобное свойство, которое позаботится о отображении всплывающей подсказки, если заданная строка не равна NULL: “has-tooltip” будет автоматически установлено в TRUE, и будет обработано “query-tooltip” в обработчике сигнала по умолчанию.

Обратите внимание, что если установлены как “tooltip-text”, так и “tooltip-markup”, то последнее свойство переопределяет предыдущее.

Флаги: Чтение / Запись

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

С: 2.12

Свойство “valign”

  “valign”                   GtkAlign

Способ распределения вертикального пространства, если виджет получает дополнительное пространство, см. GtkAlign

Флаги: Чтение / Запись

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

С: 3.0

Свойство “vexpand”

  “vexpand”                  gboolean

Расширение по вертикали. См. gtk_widget_set_vexpand().

Флаги: Чтение / Запись

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

С: 3.0

Свойство “vexpand-set”

  “vexpand-set”              gboolean

Использовать ли свойство “vexpand”. См. gtk_widget_get_vexpand_set().

Флаги: Чтение / Запись

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

С: 3.0

Свойство “visible”

  “visible”                  gboolean

Видимость виджета.

Флаги: Чтение / Запись

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

Свойство “width-request”

  “width-request”            gint

Переопределённый запрос ширины виджета или -1, если использовать естественный запрос.

Флаги: Чтение / Запись

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

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

Свойство “window”

  “window”                   GdkWindow *

Окно виджета, если оно реализовано, NULL в противном случае.

Флаги: Чтение

С: 2.14

Подробное описание свойств стиля

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

  “cursor-aspect-ratio”      gfloat

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

Флаги: Чтение

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

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

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

  “cursor-color”             GdkColor *

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

GtkWidget:cursor-color устарело начиная с версии 3.20 и не должно использоваться в новом коде.

Используйте свойство caret-color CSS.

Флаги: Чтение

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

  “focus-line-pattern”       gchar *

Свойство "focus-line-pattern" определяет шаблон пунктирной линии для индикатора фокуса. Символы интерпретируются как ширины пикселей чередующихся отрезков линии — включенных и выключенных.

GtkWidget:focus-line-pattern устарело начиная с версии 3.14 и не должно использоваться в новом коде.

используйте свойство outline-style CSS вместо него.

Флаги: Чтение

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

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

  “focus-line-width”         gint

Свойство "focus-line-width" определяет ширину, в пикселях, линии индикатора фокуса.

GtkWidget:focus-line-width устарело начиная с версии 3.14 и не должно использоваться в новом коде.

используйте свойства outline-width и padding CSS вместо них.

Флаги: Чтение

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

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

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

  “focus-padding”            gint

Свойство "focus-padding" определяет ширину, в пикселях, между индикатором фокуса и «рамкой» виджета.

GtkWidget:focus-padding устарело начиная с версии 3.14 и не должно использоваться в новом коде.

используйте свойства outline-offset CSS вместо них.

Флаги: Чтение

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

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

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

  “interior-focus”           gboolean

Свойство "interior-focus" определяет, нужно ли рисовать индикатор фокуса внутри виджетов.

GtkWidget:interior-focus устарело начиная с версии 3.14 и не должно использоваться в новом коде.

используйте свойства outline CSS вместо них.

Флаги: Чтение

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

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

  “link-color”               GdkColor *

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

GtkWidget:link-color устарело начиная с версии 3.12 и не должно использоваться в новом коде.

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

Флаги: Чтение

С версии: 2.10

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

  “scroll-arrow-hlength”     gint

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

Флаги: Чтение

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

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

С версии: 2.10

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

  “scroll-arrow-vlength”     gint

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

Флаги: Чтение

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

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

С версии: 2.10

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

  “secondary-cursor-color”   GdkColor *

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

GtkWidget:secondary-cursor-color устарело начиная с версии 3.20 и не должно использоваться в новом коде.

Используйте свойство -gtk-secondary-caret-color CSS.

Флаги: Чтение

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

  “separator-height”         gint

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

GtkWidget:separator-height устарело начиная с версии 3.20 и не должно использоваться в новом коде.

Используйте стандартное свойство min-height CSS для элементов разделителя, чтобы задать размер разделителей; значение этого свойства игнорируется.

Флаги: Чтение

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

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

С версии: 2.10

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

  “separator-width”          gint

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

GtkWidget:separator-width устарело начиная с версии 3.20 и не должно использоваться в новом коде.

Используйте стандартное свойство min-width CSS для элементов разделителя, чтобы задать размер разделителей; значение этого свойства игнорируется.

Флаги: Чтение

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

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

С версии: 2.10

Свойство стиля “text-handle-height”

  “text-handle-height”       gint

Высота ручек выделения текста.

Флаги: Чтение

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

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

Свойство стиля “text-handle-width”

  “text-handle-width”        gint

Ширина ручек выделения текста.

Флаги: Чтение

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

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

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

  “visited-link-color”       GdkColor *

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

GtkWidget:visited-link-color устарело начиная с версии 3.12 и не должно использоваться в новом коде.

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

Флаги: Чтение

С версии: 2.10

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

  “wide-separators”          gboolean

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

GtkWidget:wide-separators устарело начиная с версии 3.20 и не должно использоваться в новом коде.

Используйте свойства CSS для элементов разделителя, чтобы стилизовать разделители; значение этого свойства игнорируется.

Флаги: Чтение

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

С версии: 2.10

Свойство стиля “window-dragging”

  “window-dragging”          gboolean

Можно ли перетаскивать окна и изменять их размер, нажав на пустые области.

Флаги: Чтение

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

Подробное описание сигналов

Сигнал “accel-closures-changed”

void
user_function (GtkWidget *widget,
               gpointer   user_data)

Параметры

widget

объект, получивший сигнал.

user_data

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

Сигнал “button-press-event”

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

Сигнал ::button-press-event генерируется при нажатии кнопки (обычно мыши).

Для получения этого сигнала связанному с виджетом GdkWindow необходимо установить маску GDK_BUTTON_PRESS_MASK.

Этот сигнал будет отправлен виджету-захвату, если таковой имеется.

Параметры

widget

объект, получивший сигнал.

event

событие GdkEventButton, которое спровоцировало данный сигнал.

[type Gdk.EventButton]

user_data

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

Возвращаемое значение

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

Флаги: Run Last

Сигнал “button-release-event”

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

Сигнал ::button-release-event генерируется при отпускании кнопки (обычно мыши).

Для получения этого сигнала связанному с виджетом GdkWindow необходимо установить маску GDK_BUTTON_RELEASE_MASK.

Этот сигнал будет отправлен виджету-захвату, если таковой имеется.

Параметры

widget

объект, получивший сигнал.

event

событие GdkEventButton, которое спровоцировало данный сигнал.

[type Gdk.EventButton]

user_data

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

Возвращаемое значение

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

Флаги: Run Last

Сигнал “can-activate-accel”

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

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

Параметры

widget

объект, получивший сигнал

signal_id

Идентификатор сигнала, установленного на widget

user_data

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

Возвращаемое значение

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

Флаги: Run Last

Сигнал “child-notify”

void
user_function (GtkWidget  *widget,
               GParamSpec *child_property,
               gpointer    user_data)

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

Параметры

widget

объект, получивший сигнал

child_property

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

user_data

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

Флаги: No Hooks

Сигнал “composited-changed”

void
user_function (GtkWidget *widget,
               gpointer   user_data)

Сигнал ::composited-changed генерируется при изменении состояния композиции экрана widgets. См. gdk_screen_is_composited().

GtkWidget::composited-changed устарел с версии 3.22 и не должен использоваться в новом коде.

Используйте GdkScreen::composited-changed вместо него.

Параметры

widget

объект, на котором генерируется сигнал

user_data

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

Флаги: Action

Сигнал “configure-event”

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

Сигнал ::configure-event генерируется при изменении размера, положения или расположения окна widget.

Для получения этого сигнала связанному с виджетом GdkWindow необходимо установить маску GDK_STRUCTURE_MASK. GDK автоматически устанавливает эту маску для всех новых окон.

Параметры

widget

объект, получивший сигнал

event

событие GdkEventConfigure, которое спровоцировало данный сигнал.

[type Gdk.EventConfigure]

user_data

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

Возвращаемое значение

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

Флаги: Run Last

Сигнал “damage-event”

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

Издаётся, когда перенаправленное окно, принадлежащее widget, отрисовывается. Члены события region/area показывают область перенаправленного изображения, в которую производилась отрисовка.

Параметры

widget

объект, получивший сигнал

event

событие GdkEventExpose.

[type Gdk.EventExpose]

user_data

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

Возвращаемое значение

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

Флаги: Run Last

С: 2.14

Сигнал “delete-event”

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

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

Параметры

widget

объект, получивший сигнал

event

событие, которое вызвало этот сигнал

user_data

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

Возвращаемое значение

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

Флаги: Run Last

Сигнал “destroy”

void
user_function (GtkWidget *object,
               gpointer   user_data)

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

Этот сигнал не подходит для сохранения состояния виджета.

Параметры

object

объект, получивший сигнал

user_data

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

Флаги: No Hooks

Сигнал “destroy-event”

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

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

Чтобы получить этот сигнал, связанное с виджетом GdkWindow необходимо включить маску GDK_STRUCTURE_MASK. GDK автоматически включит эту маску для всех новых окон.

Параметры

widget

объект, получивший сигнал.

event

событие, которое вызвало этот сигнал

user_data

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

Возвращаемое значение

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

Флаги: Run Last

Сигнал “direction-changed”

void
user_function (GtkWidget       *widget,
               GtkTextDirection previous_direction,
               gpointer         user_data)

Сигнал ::direction-changed издаётся, когда меняется направление текста в виджете.

Параметры

widget

объект, на котором излучается сигнал

previous_direction

предыдущее направление текста в widget

user_data

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

Флаги: Run First

Сигнал “drag-begin”

void
user_function (GtkWidget      *widget,
               GdkDragContext *context,
               gpointer        user_data)

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

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

Параметры

widget

объект, получивший сигнал

context

контекст перетаскивания

user_data

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

Флаги: Run Last

Сигнал “drag-data-delete”

void
user_function (GtkWidget      *widget,
               GdkDragContext *context,
               gpointer        user_data)

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

Параметры

widget

объект, получивший сигнал

context

контекст перетаскивания

user_data

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

Флаги: Run Last

Сигнал “drag-data-get”

void
user_function (GtkWidget        *widget,
               GdkDragContext   *context,
               GtkSelectionData *data,
               guint             info,
               guint             time,
               gpointer          user_data)

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

Параметры

widget

объект, получивший сигнал

context

контекст перетаскивания

data

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

info

информация, зарегистрированная целевым объектом в GtkTargetList

time

временная метка запроса данных

user_data

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

Флаги: Выполнить последним

Сигнал “drag-data-received”

void
user_function (GtkWidget        *widget,
               GdkDragContext   *context,
               gint              x,
               gint              y,
               GtkSelectionData *data,
               guint             info,
               guint             time,
               gpointer          user_data)

Сигнал ::drag-data-received испускается местом назначения, когда перетаскиваемые данные получены. Если данные были получены для определения, будет ли принято перетаскивание, обработчик должен вызвать gdk_drag_status() и не завершать перетаскивание. Если данные были получены в ответ на сигнал “drag-drop” (и это последний целевой объект), обработчик этого сигнала должен обработать полученные данные, а затем вызвать gtk_drag_finish(), установив параметр success в зависимости от того, были ли данные обработаны успешно.

Приложения должны определить, почему был испущен сигнал, и, следовательно, нужно ли вызвать gdk_drag_status() или gtk_drag_finish().

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

Параметры

widget

объект, получивший сигнал

context

контекст перетаскивания

x

место, куда произошло перетаскивание

y

место, куда произошло перетаскивание

data

полученные данные

info

информация, зарегистрированная целевым объектом в GtkTargetList

time

временная метка получения данных

user_data

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

Флаги: Выполнить последним

Сигнал “drag-drop”

gboolean
user_function (GtkWidget      *widget,
               GdkDragContext *context,
               gint            x,
               gint            y,
               guint           time,
               gpointer        user_data)

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

Параметры

widget

объект, получивший сигнал

context

контекст перетаскивания

x

координата x текущего положения указателя мыши

y

координата y текущего положения указателя мыши

time

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

user_data

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

Возвращаемое значение

является ли положение курсора в зоне перетаскивания

Флаги: Выполнить последним

Сигнал “drag-end”

void
user_function (GtkWidget      *widget,
               GdkDragContext *context,
               gpointer        user_data)

Сигнал ::drag-end испускается источником перетаскивания при завершении перетаскивания. Типичная причина подключения к этому сигналу — отмена действий, выполненных в “drag-begin”.

Параметры

widget

объект, получивший сигнал

context

контекст перетаскивания

user_data

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

Флаги: Выполнить последним

Сигнал “drag-failed”

gboolean
user_function (GtkWidget      *widget,
               GdkDragContext *context,
               GtkDragResult   result,
               gpointer        user_data)

Сигнал ::drag-failed испускается на источнике перетаскивания, когда перетаскивание завершилось неудачно. Обработчик сигнала может подключить пользовательский код для обработки неудачной операции DnD на основе типа ошибки; он возвращает TRUE, если ошибка уже обработана (не отображается анимация по умолчанию «операция перетаскивания завершилась неудачно»), в противном случае возвращает FALSE.

Параметры

widget

объект, получивший сигнал

context

контекст перетаскивания

result

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

user_data

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

Возвращаемое значение

TRUE, если неудачная операция перетаскивания уже обработана.

Флаги: Run Last

С версии: 2.12

Сигнал “drag-leave”

void
user_function (GtkWidget      *widget,
               GdkDragContext *context,
               guint           time,
               gpointer        user_data)

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

Аналогично, сигнал “drag-leave” также испускается перед сигналом ::drag-drop, например, для очистки предварительного элемента, созданного в обработчике сигнала “drag-motion”.

Параметры

widget

объект, получивший сигнал.

context

контекст перетаскивания

time

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

user_data

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

Флаги: Run Last

Сигнал “drag-motion”

gboolean
user_function (GtkWidget      *widget,
               GdkDragContext *context,
               gint            x,
               gint            y,
               guint           time,
               gpointer        user_data)

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

Если решение о принятии или отклонении опускания не может быть принято только на основе позиции курсора и типа данных, обработчик может проверить перетаскиваемые данные, вызвав gtk_drag_get_data() и отложить вызов gdk_drag_status() до обработчика сигнала “drag-data-received”. Обратите внимание, что при использовании сигнала drag-motion таким образом необходимо передать GTK_DEST_DEFAULT_DROP, GTK_DEST_DEFAULT_MOTION или GTK_DEST_DEFAULT_ALL в gtk_drag_dest_set().

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

static void
foo_widget_get_preferred_height (GtkWidget *widget,
                                 gint *min_height,
                                 gint *nat_height)
{
   if (i_am_in_height_for_width_mode)
     {
       gint min_width, nat_width;

       GTK_WIDGET_GET_CLASS (widget)->get_preferred_width (widget,
                                                           &min_width,
                                                           &nat_width);
       GTK_WIDGET_GET_CLASS (widget)->get_preferred_height_for_width
                                                          (widget,
                                                           min_width,
                                                           min_height,
                                                           nat_height);
     }
   else
     {
        ... some widgets do both. For instance, if a GtkLabel is
        rotated to 90 degrees it will return the minimum and
        natural height for the rotated label here.
     }
}

Параметры

...

Возвращаемое значение

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

Флаги: Run Last

Сигнал “draw”

gboolean
user_function (GtkWidget    *widget,
               CairoContext *cr,
               gpointer      user_data)

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

Обработчики сигналов, подключенные к этому сигналу, могут изменять контекст cairo, переданный как cr, любым способом и не обязаны восстанавливать его. Испускание сигнала позаботится о вызове cairo_save() до и cairo_restore() после вызова обработчика.

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

Параметры

...

Возвращаемое значение

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

Флаги: Run Last

С версии: 3.0

Сигнал “enter-notify-event”

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

Сигнал ::enter-notify-event будет выпущен, когда указатель войдёт в окно виджета widget.

Для получения этого сигнала GdkWindow, связанный с виджетом, должен разрешить маску GDK_ENTER_NOTIFY_MASK.

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

Параметры

widget

объект, получивший сигнал

event

событие GdkEventCrossing, которое вызвало этот сигнал.

[type Gdk.EventCrossing]

user_data

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

Возвращаемое значение

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

Флаги: Run Last

Сигнал “event”

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

Цикл GTK+ главного цикла выпустит три сигнала для каждого события GDK, доставленного виджету: один общий сигнал ::event, другой, более специфичный, сигнал, соответствующий типу доставленного события (например, “key-press-event”), и, наконец, общий сигнал “event-after”.

Параметры

widget

объект, получивший сигнал.

event

событие GdkEvent, которое вызвало этот сигнал

user_data

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

Возвращаемое значение

TRUE, чтобы остановить вызов других обработчиков для события и отменить отправку второго специфичного сигнала ::event. FALSE, чтобы продолжить распространение события и разрешить отправку второго сигнала. Сигнал ::event-after отправляется независимо от возвращаемого значения.

Флаги: Run Last

Сигнал “event-after”

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

После отправки сигнала “event” и (необязательно) второго более специфичного сигнала, ::event-after будет отправлен независимо от возвращаемых значений обработчиков двух предыдущих сигналов.

Параметры

widget

объект, получивший сигнал.

event

событие GdkEvent, которое вызвало этот сигнал

user_data

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

Сигнал “focus”

gboolean
user_function (GtkWidget       *widget,
               GtkDirectionType direction,
               gpointer         user_data)

Параметры

widget

объект, получивший сигнал.

user_data

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

Возвращаемое значение

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

Флаги: Run Last

Сигнал “focus-in-event”

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

Сигнал ::focus-in-event будет выпущен, когда фокус клавиатуры перейдёт в окно виджета widget.

Для получения этого сигнала GdkWindow, связанный с виджетом, должен разрешить маску GDK_FOCUS_CHANGE_MASK.

Параметры

widget

объект, получивший сигнал

event

событие GdkEventFocus, которое вызвало этот сигнал.

[type Gdk.EventFocus]

user_data

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

Возвращаемое значение

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

Флаги: Run Last

Сигнал “focus-out-event”

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

Сигнал ::focus-out-event будет выпущен, когда фокус клавиатуры покинет окно виджета widget.

Для получения этого сигнала GdkWindow, связанный с виджетом, должен разрешить маску GDK_FOCUS_CHANGE_MASK.

Параметры

widget

объект, получивший сигнал

event

событие GdkEventFocus, которое вызвало этот сигнал.

[type Gdk.EventFocus]

user_data

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

Возвращаемое значение

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

Флаги: Run Last

Сигнал “grab-broken-event”

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

Выполняется при прерывании захвата указателя или клавиатуры на окне, принадлежащем widget.

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

Параметры

widget

объект, получивший сигнал

event

событие GdkEventGrabBroken.

[type Gdk.EventGrabBroken]

user_data

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

Возвращаемое значение

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

Флаги: Выполнить последним

С: 2.8

Сигнал “grab-focus”

void
user_function (GtkWidget *widget,
               gpointer   user_data)

Параметры

widget

объект, получивший сигнал.

user_data

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

Флаги: Действие

Сигнал “grab-notify”

void
user_function (GtkWidget *widget,
               gboolean   was_grabbed,
               gpointer   user_data)

Сигнал ::grab-notify генерируется, когда виджет затеняется GTK+-захватом (не захват указателя или клавиатуры) на другом виджете или когда он перестает затеняться из-за удаления захвата.

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

Параметры

widget

объект, получивший сигнал

was_grabbed

FALSE, если виджет затеняется, TRUE, если он перестает затеняться

user_data

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

Флаги: Выполнить первым

Сигнал “hide”

void
user_function (GtkWidget *widget,
               gpointer   user_data)

Сигнал ::hide генерируется, когда widget скрыт, например, с помощью gtk_widget_hide().

Параметры

widget

объект, получивший сигнал.

user_data

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

Флаги: Выполнить первым

Сигнал “hierarchy-changed”

void
user_function (GtkWidget *widget,
               GtkWidget *previous_toplevel,
               gpointer   user_data)

Сигнал ::hierarchy-changed генерируется, когда меняется закрепленное состояние виджета. Виджет «закреплен», когда его верхний предок является GtkWindow. Этот сигнал генерируется, когда виджет меняет свое состояние с незакрепленного на закрепленный или наоборот.

Параметры

widget

объект, на котором генерируется сигнал

previous_toplevel

предыдущий верхний предок или NULL, если виджет ранее был незакрепленным.

[allow-none]

user_data

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

Флаги: Выполнить последним

Сигнал “key-press-event”

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

Сигнал ::key-press-event генерируется при нажатии клавиши. Вызов сигнала будет повторяться со скоростью повторения клавиш, пока клавиша нажата.

Для получения этого сигнала связанное с виджетом GdkWindow окно должно разрешить маску GDK_KEY_PRESS_MASK.

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

Параметры

widget

объект, получивший сигнал

event

GdkEventKey, который вызвал этот сигнал.

[type Gdk.EventKey]

user_data

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

Возвращаемое значение

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

Флаги: Выполнить последним

Сигнал “key-release-event”

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

Сигнал ::key-release-event генерируется при отпускании клавиши.

Для получения этого сигнала связанное с виджетом GdkWindow окно должно разрешить маску GDK_KEY_RELEASE_MASK.

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

Параметры

widget

объект, получивший сигнал

event

GdkEventKey, который вызвал этот сигнал.

[type Gdk.EventKey]

user_data

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

Возвращаемое значение

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

Флаги: Выполнить последним

Сигнал “keynav-failed”

gboolean
user_function (GtkWidget       *widget,
               GtkDirectionType direction,
               gpointer         user_data)

Выдаётся, если навигация по клавиатуре завершается неудачно. Подробности см. в gtk_widget_keynav_failed().

Параметры

widget

объект, получивший сигнал

direction

направление перемещения

user_data

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

Возвращаемое значение

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

Флаги: Выполнять последним

С версии: 2.12

Сигнал “leave-notify-event”

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

Сигнал ::leave-notify-event генерируется, когда указатель покидает окно widget.

Для получения этого сигнала необходимо, чтобы связанное с виджетом окно GdkWindow включило маску GDK_LEAVE_NOTIFY_MASK.

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

Параметры

widget

объект, получивший сигнал

event

событие GdkEventCrossing, вызвавшее этот сигнал.

[type Gdk.EventCrossing]

user_data

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

Возвращаемое значение

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

Флаги: Выполнять последним

Сигнал “map”

void
user_function (GtkWidget *widget,
               gpointer   user_data)

Сигнал ::map генерируется, когда widget будет отображён, то есть когда виджет становится видимым (что регулируется gtk_widget_set_visible()) и все его родительские виджеты до самого верхнего также видимы. После отображения генерируется сигнал “map-event”.

Сигнал ::map может использоваться для определения того, будет ли виджет отрисован, например, для возобновления анимации, остановленной во время генерации сигнала “unmap”.

Параметры

widget

объект, получивший сигнал.

user_data

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

Флаги: Выполнять первым

Сигнал “map-event”

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

Сигнал ::map-event генерируется, когда окно widget отображается. Окно отображается, когда оно становится видимым на экране.

Для получения этого сигнала необходимо, чтобы связанное с виджетом окно GdkWindow включило маску GDK_STRUCTURE_MASK. GDK автоматически включит эту маску для всех новых окон.

Параметры

widget

объект, получивший сигнал

event

событие GdkEventAny, вызвавшее этот сигнал.

[type Gdk.EventAny]

user_data

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

Возвращаемое значение

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

Флаги: Выполнять последним

Сигнал “mnemonic-activate”

gboolean
user_function (GtkWidget *widget,
               gboolean   arg1,
               gpointer   user_data)

Параметры

widget

объект, получивший сигнал.

user_data

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

Возвращаемое значение

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

Флаги: Выполнять последним

Сигнал “motion-notify-event”

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

Сигнал ::motion-notify-event генерируется, когда указатель перемещается по GdkWindow виджета.

Для получения этого сигнала необходимо, чтобы связанное с виджетом окно GdkWindow включило маску GDK_POINTER_MOTION_MASK.

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

Параметры

widget

объект, получивший сигнал.

event

событие GdkEventMotion, вызвавшее этот сигнал.

[type Gdk.EventMotion]

user_data

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

Возвращаемое значение

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

Флаги: Выполнять последним

Сигнал “move-focus”

void
user_function (GtkWidget       *widget,
               GtkDirectionType direction,
               gpointer         user_data)

Параметры

widget

объект, получивший сигнал.

user_data

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

Флаги: Действие

Сигнал “parent-set”

void
user_function (GtkWidget *widget,
               GtkWidget *old_parent,
               gpointer   user_data)

Сигнал ::parent-set генерируется, когда для виджета устанавливается новый родитель.

Параметры

widget

объект, на котором генерируется сигнал

old_parent

предыдущий родитель или NULL, если виджет только получил своего первоначального родителя.

[allow-none]

user_data

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

Флаги: Выполнить сначала

Сигнал “popup-menu”

gboolean
user_function (GtkWidget *widget,
               gpointer   user_data)

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

Параметры

widget

объект, получивший сигнал

user_data

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

Возвращаемое значение

TRUE, если меню было активировано

Флаги: Действие

Сигнал “property-notify-event”

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

Сигнал ::property-notify-event генерируется, когда свойство окна widget было изменено или удалено.

Для получения этого сигнала связанному с виджетом GdkWindow нужно включить маску GDK_PROPERTY_CHANGE_MASK.

Параметры

widget

объект, получивший сигнал

event

событие GdkEventProperty, которое вызвало этот сигнал.

[type Gdk.EventProperty]

user_data

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

Возвращаемое значение

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

Флаги: Выполнить последним

Сигнал “proximity-in-event”

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

Для получения этого сигнала связанному с виджетом GdkWindow нужно включить маску GDK_PROXIMITY_IN_MASK.

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

Параметры

widget

объект, получивший сигнал

event

событие GdkEventProximity, которое вызвало этот сигнал.

[type Gdk.EventProximity]

user_data

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

Возвращаемое значение

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

Флаги: Выполнить последним

Сигнал “proximity-out-event”

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

Для получения этого сигнала связанному с виджетом GdkWindow нужно включить маску GDK_PROXIMITY_OUT_MASK.

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

Параметры

widget

объект, получивший сигнал

event

событие GdkEventProximity, которое вызвало этот сигнал.

[type Gdk.EventProximity]

user_data

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

Возвращаемое значение

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

Флаги: Выполнить последним

Сигнал “query-tooltip”

gboolean
user_function (GtkWidget  *widget,
               gint        x,
               gint        y,
               gboolean    keyboard_mode,
               GtkTooltip *tooltip,
               gpointer    user_data)

Издаётся, когда свойство “has-tooltip” имеет значение TRUE и таймаут зависания курсора истек, при этом курсор наведён "над" widget; или издаётся, когда widget получил фокус в режиме работы с клавиатурой.

Обработчик сигнала, используя указанные координаты, должен определить, следует ли отобразить подсказку для widget . В случае необходимости, должно возвращаться значение TRUE, в противном случае — FALSE. Обратите внимание, что если keyboard_mode имеет значение TRUE, значения x и y не определены и использовать их не следует.

Обработчик сигнала свободен манипулировать tooltip с использованием соответствующих вызовов функций.

Параметры

widget

объект, получивший сигнал

x

координата x позиции курсора, где был издан запрос, относительно левой стороны widget

y

координата y позиции курсора, где был издан запрос, относительно верхней стороны widget

keyboard_mode

TRUE, если подсказка была вызвана с помощью клавиатуры

tooltip

GtkTooltip

user_data

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

Возвращаемое значение

TRUE, если tooltip следует отобразить прямо сейчас; FALSE в противном случае.

Флаги: Run Last

С версии: 2.12

Сигнал “realize”

void
user_function (GtkWidget *widget,
               gpointer   user_data)

Сигнал ::realize издаётся, когда widget ассоциирован с окном GdkWindow, что означает, что был вызван gtk_widget_realize() или виджет был отображён (то есть он будет нарисован).

Параметры

widget

объект, получивший сигнал.

user_data

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

Флаги: Run First

Сигнал “screen-changed”

void
user_function (GtkWidget *widget,
               GdkScreen *previous_screen,
               gpointer   user_data)

Сигнал ::screen-changed издаётся, когда экран виджета изменился.

Параметры

widget

объект, на котором издан сигнал

previous_screen

предыдущий экран или NULL, если виджет не был ассоциирован с экраном ранее.

[allow-none]

user_data

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

Флаги: Run Last

Сигнал “scroll-event”

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

Сигнал ::scroll-event издаётся, когда нажата кнопка в диапазоне от 4 до 7. Колёсиковые мыши обычно настроены так, чтобы генерировать события нажатия кнопок 4 и 5 при вращении колёсика.

Для получения этого сигнала необходимо, чтобы связанное с виджетом окно GdkWindow активировало маску GDK_SCROLL_MASK.

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

Параметры

widget

объект, получивший сигнал.

event

событие GdkEventScroll, вызвавшее этот сигнал.

[type Gdk.EventScroll]

user_data

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

Возвращаемое значение

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

Флаги: Run Last

Сигнал “selection-clear-event”

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

Сигнал ::selection-clear-event издаётся, когда окно widget потеряло право владения выделением.

Параметры

widget

объект, получивший сигнал

event

событие GdkEventSelection, вызвавшее этот сигнал.

[type Gdk.EventSelection]

user_data

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

Возвращаемое значение

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

Флаги: Run Last

Сигнал “selection-get”

void
user_function (GtkWidget        *widget,
               GtkSelectionData *data,
               guint             info,
               guint             time,
               gpointer          user_data)

Параметры

widget

объект, получивший сигнал.

user_data

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

Флаги: Run Last

Сигнал “selection-notify-event”

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

Параметры

widget

объект, получивший сигнал.

event

.

[тип Gdk.EventSelection]

user_data

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

Возвращаемое значение

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

Флаги: Выполнить последним

Сигнал “selection-received”

void
user_function (GtkWidget        *widget,
               GtkSelectionData *data,
               guint             time,
               gpointer          user_data)

Параметры

widget

объект, получивший сигнал.

user_data

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

Флаги: Выполнить последним

Сигнал “selection-request-event”

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

Сигнал ::selection-request-event будет выпущен, когда другой клиент запросит владение выделением, принадлежащим окну widget.

Параметры

widget

объект, получивший сигнал

event

GdkEventSelection, который вызвал этот сигнал.

[тип Gdk.EventSelection]

user_data

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

Возвращаемое значение

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

Флаги: Выполнить последним

Сигнал “show”

void
user_function (GtkWidget *widget,
               gpointer   user_data)

Сигнал ::show генерируется, когда widget отображается, например, с помощью gtk_widget_show().

Параметры

widget

объект, получивший сигнал.

user_data

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

Флаги: Выполнить первым

Сигнал “show-help”

gboolean
user_function (GtkWidget        *widget,
               GtkWidgetHelpType help_type,
               gpointer          user_data)

Параметры

widget

объект, получивший сигнал.

user_data

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

Возвращаемое значение

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

Флаги: Действие

Сигнал “size-allocate”

void
user_function (GtkWidget    *widget,
               GdkRectangle *allocation,
               gpointer      user_data)

Параметры

widget

объект, получивший сигнал.

allocation

область, выделенная виджету.

[тип Gtk.Allocation]

user_data

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

Флаги: Выполнить первым

Сигнал “state-changed”

void
user_function (GtkWidget   *widget,
               GtkStateType state,
               gpointer     user_data)

Сигнал ::state-changed генерируется при изменении состояния виджета. См. gtk_widget_get_state().

GtkWidget::state-changed устарел с версии 3.0 и не должен использоваться в новом коде.

Используйте “state-flags-changed” вместо него.

Параметры

widget

объект, получивший сигнал.

state

предыдущее состояние

user_data

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

Флаги: Выполнить первым

Сигнал “state-flags-changed”

void
user_function (GtkWidget    *widget,
               GtkStateFlags flags,
               gpointer      user_data)

Сигнал ::state-flags-changed генерируется при изменении состояния виджета, см. gtk_widget_get_state_flags().

Параметры

widget

объект, получивший сигнал.

flags

Предыдущие флаги состояния.

user_data

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

Флаги: Выполнить первым

С: 3.0

Сигнал “style-set”

void
user_function (GtkWidget *widget,
               GtkStyle  *previous_style,
               gpointer   user_data)

Сигнал ::style-set генерируется, когда для виджета установлено новое стилевое оформление. Обратите внимание, что функции, изменяющие стиль, такие как gtk_widget_modify_base(), также вызывают генерацию этого сигнала.

Обратите внимание, что этот сигнал генерируется для изменений устаревшего GtkStyle. Для отслеживания изменений GtkStyleContext, связанного с виджетом, используйте сигнал “style-updated”.

GtkWidget::style-set устарел с версии 3.0 и не должен использоваться в новом коде.

Используйте сигнал “style-updated”

Параметры

widget

объект, на котором генерируется сигнал

previous_style

предыдущее стилевое оформление или NULL, если виджет только что получил начальное стилевое оформление.

[allow-none]

user_data

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

Флаги: Выполняется первым

Сигнал “style-updated”

void
user_function (GtkWidget *widget,
               gpointer   user_data)

Сигнал ::style-updated — это вспомогательный сигнал, который генерируется, когда сигнал “changed” генерируется для widget's связанного GtkStyleContext, возвращаемого функцией gtk_widget_get_style_context().

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

Параметры

widget

объект, на котором генерируется сигнал

user_data

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

Флаги: Выполняется первым

С: 3.0

Сигнал “touch-event”

gboolean
user_function (GtkWidget *widget,
               GdkEvent  *arg1,
               gpointer   user_data)

Флаги: Выполняется последним

Сигнал “unmap”

void
user_function (GtkWidget *widget,
               gpointer   user_data)

Сигнал ::unmap генерируется, когда widget будет скрыт, что означает, что он или любой из его родительских виджетов до уровня верхнего виджета были скрыты.

Поскольку ::unmap указывает, что виджет больше не будет отображаться, его можно использовать, например, для остановки анимации на виджете.

Параметры

widget

объект, получивший сигнал.

user_data

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

Флаги: Выполняется первым

Сигнал “unmap-event”

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

Сигнал ::unmap-event генерируется, когда окно widget будет скрыто. Окно скрывается, когда оно становится невидимым на экране.

Для получения этого сигнала связанному с виджетом GdkWindow необходимо включить маску GDK_STRUCTURE_MASK. GDK автоматически включит эту маску для всех новых окон.

Параметры

widget

объект, получивший сигнал

event

события GdkEventAny, вызвавшее этот сигнал.

[type Gdk.EventAny]

user_data

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

Возвращаемое значение

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

Флаги: Выполняется последним

Сигнал “unrealize”

void
user_function (GtkWidget *widget,
               gpointer   user_data)

Сигнал ::unrealize генерируется, когда GdkWindow, связанный с widget, уничтожается, что означает, что функция gtk_widget_unrealize() была вызвана или виджет был скрыт (то есть он будет скрыт).

Параметры

widget

объект, получивший сигнал.

user_data

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

Флаги: Выполняется последним

Сигнал “visibility-notify-event”

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

Сигнал ::visibility-notify-event генерируется, когда окно widget скрыто или перестало быть скрытым.

Для получения этого сигнала связанному с виджетом GdkWindow необходимо включить маску GDK_VISIBILITY_NOTIFY_MASK.

GtkWidget::visibility-notify-event устарел с версии 3.12 и не должен использоваться в новом коде.

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

Параметры

widget

объект, получивший сигнал

event

события GdkEventVisibility, вызвавшее этот сигнал.

[type Gdk.EventVisibility]

user_data

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

Возвращаемое значение

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

Флаги: Выполняется последним

Сигнал “window-state-event”

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

Сигнал ::window-state-event будет испущен, когда состояние верхнего окна, связанного с widget, изменится.

Для получения этого сигнала GdkWindow, связанный с виджетом, должен включить маску GDK_STRUCTURE_MASK. GDK автоматически включит эту маску для всех новых окон.

Параметры

widget

объект, получивший сигнал

event

структура GdkEventWindowState, которая вызвала этот сигнал.

[type Gdk.EventWindowState]

user_data

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

Возвращаемое значение

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

Флаги: Run Last

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/GtkWidget.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API