Spec-Zone.ru › GTK 3.24

GtkEventBox

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

Функции

GtkWidget * gtk_event_box_new ()
void gtk_event_box_set_above_child ()
gboolean gtk_event_box_get_above_child ()
void gtk_event_box_set_visible_window ()
gboolean gtk_event_box_get_visible_window ()

Свойства

gboolean above-child Чтение / Запись
gboolean visible-window Чтение / Запись

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

struct GtkEventBox
struct GtkEventBoxClass

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

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkEventBox

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

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

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

#include <gtk/gtk.h>

Описание

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

Функции

gtk_event_box_new ()

GtkWidget *
gtk_event_box_new (void);

Создает новый GtkEventBox.

Возвращает

новый GtkEventBox

gtk_event_box_set_above_child ()

void
gtk_event_box_set_above_child (GtkEventBox *event_box,
                               gboolean above_child);

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

По умолчанию окно остается под дочерним элементом.

Параметры

event_box

a GtkEventBox

above_child

TRUE если окно event box находится над его дочерним элементом

С: 2.4

gtk_event_box_get_above_child ()

gboolean
gtk_event_box_get_above_child (GtkEventBox *event_box);

Возвращает, находится ли окно event box над или под окнами его дочернего элемента. См. gtk_event_box_set_above_child() для получения подробностей.

Параметры

event_box

a GtkEventBox

Возвращает

TRUE если окно event box находится над окном его дочернего элемента

С: 2.4

gtk_event_box_set_visible_window ()

void
gtk_event_box_set_visible_window (GtkEventBox *event_box,
                                  gboolean visible_window);

Устанавливает, использует ли event box видимое или невидимое окно дочернего элемента. По умолчанию используются видимые окна.

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

Event box с видимым окном создает видимое (GDK_INPUT_OUTPUT) окно, которое действует как родительское окно для всех виджетов, содержащихся в event box.

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

Основная причина создания event box без входных данных — возможность установить другой цвет фона или рисовать на нем.

Есть одна неожиданная проблема для невидимого event box, у которого окно находится ниже дочернего элемента. (См. gtk_event_box_set_above_child().) Поскольку окно только для ввода не является предковым окном для каких-либо окон, создаваемых дочерними виджетами event box, события в этих окнах не распространяются вверх системой окон, а только GTK+. Практический эффект состоит в том, что если событие не находится в маске событий для дочернего окна (см. gtk_widget_add_events()), оно не будет получено event box.

Эта проблема не возникает для видимых event box, поскольку в этом случае окно event box фактически является предком дочерних окон, а не просто находится в том же месте на экране.

Параметры

event_box

a GtkEventBox

visible_window

TRUE для того, чтобы event box имел видимое окно

С: 2.4

gtk_event_box_get_visible_window ()

gboolean
gtk_event_box_get_visible_window (GtkEventBox *event_box);

Возвращает, имеет ли event box видимое окно. См. gtk_event_box_set_visible_window() для получения подробностей.

Параметры

event_box

a GtkEventBox

Возвращает

TRUE если окно event box видимо

С: 2.4

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

struct GtkEventBox

struct GtkEventBox;

struct GtkEventBoxClass

struct GtkEventBoxClass {
  GtkBinClass parent_class;
};

Члены

Подробности свойств

Свойство “above-child”

  “above-child”              gboolean

Указывает, находится ли окно захвата событий eventbox над окном виджета-дочернего элемента, а не под ним.

Владелец: GtkEventBox

Флаги: Чтение / Запись

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

Свойство “visible-window”

  “visible-window”           gboolean

Указывает, является ли event box видимым, а не невидимым и используемым только для перехвата событий.

Владелец: GtkEventBox

Флаги: Чтение / Запись

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

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkEventBox.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API