Spec-Zone.ru › GTK 3.22

GtkMenuButton

GtkMenuButton — Виджет, отображающий всплывающее меню при нажатии

Функции

GtkWidget * gtk_menu_button_new ()
void gtk_menu_button_set_popup ()
GtkMenu * gtk_menu_button_get_popup ()
void gtk_menu_button_set_popover ()
GtkPopover * gtk_menu_button_get_popover ()
void gtk_menu_button_set_menu_model ()
GMenuModel * gtk_menu_button_get_menu_model ()
void gtk_menu_button_set_use_popover ()
gboolean gtk_menu_button_get_use_popover ()
void gtk_menu_button_set_direction ()
GtkArrowType gtk_menu_button_get_direction ()
void gtk_menu_button_set_align_widget ()
GtkWidget * gtk_menu_button_get_align_widget ()

Свойства

GtkContainer * align-widget Чтение / Запись
GtkArrowType direction Чтение / Запись
GMenuModel * menu-model Чтение / Запись
GtkPopover * popover Чтение / Запись
GtkMenu * popup Чтение / Запись
gboolean use-popover Чтение / Запись

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

struct GtkMenuButton
перечисление GtkArrowType

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

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkButton
                        ╰── GtkToggleButton
                            ╰── GtkMenuButton

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

GtkMenuButton реализует AtkImplementorIface, GtkBuildable, GtkActionable и GtkActivatable.

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

#include <gtk/gtk.h>

Описание

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

Виджет GtkMenuButton может содержать любой допустимый дочерний виджет. То есть, он может содержать практически любой другой стандартный виджет GtkWidget. Наиболее часто используемым дочерним виджетом является GtkImage. Если в GtkMenuButton не указан явно виджет, автоматически создается виджет GtkImage с изображением стрелки, ориентированной в соответствии со свойством «direction» или универсальным изображением "view-context-menu", если направление не задано.

Расположение всплывающего меню определяется свойством «direction» кнопки меню.

Для меню также учитываются свойства «halign» и «valign» меню. Например, когда направление равно GTK_ARROW_DOWN, а горизонтальное выравнивание равно GTK_ALIGN_START, меню будет размещено под кнопкой, при этом начальная граница (в зависимости от направления текста) меню выровнена с начальной границей кнопки. Если места под кнопкой недостаточно, меню всплывает над кнопкой вместо этого. Если выравнивание приведет к тому, что часть меню выйдет за экран, оно будет «отведено» внутрь.

Direction = Down

  • halign = start

  • halign = center

  • halign = end

Direction = Up

  • halign = start

  • halign = center

  • halign = end

Direction = Left

  • valign = start

  • valign = center

  • valign = end

Direction = Right

  • valign = start

  • valign = center

  • valign = end

CSS узлы

GtkMenuButton имеет один CSS узел с именем button. Чтобы отличить его от обычной кнопки GtkButton, к нему добавляется класс стиля .popup.

Функции

gtk_menu_button_new ()

GtkWidget *
gtk_menu_button_new (void);

Создаёт новый виджет GtkMenuButton со стрелкой вниз, являющейся единственным дочерним элементом. Вы можете заменить этот дочерний виджет другим виджетом GtkWidget, если нужно.

Возвращает

Созданный виджет GtkMenuButton

С: 3.6

gtk_menu_button_set_popup ()

void
gtk_menu_button_set_popup (GtkMenuButton *menu_button,
                           GtkWidget *menu);

Устанавливает GtkMenu, который будет появляться при нажатии на кнопку, или NULL, чтобы отключить кнопку. Если установлены “menu-model” или “popover”, они будут установлены в значение NULL.

Параметры

menu_button

объект GtkMenuButton

menu

объект GtkMenu.

[allow-none]

С: 3.6

gtk_menu_button_get_popup ()

GtkMenu *
gtk_menu_button_get_popup (GtkMenuButton *menu_button);

Возвращает GtkMenu, который отображается при нажатии на кнопку. Если кнопка не использует GtkMenu, эта функция возвращает NULL.

Параметры

menu_button

объект GtkMenuButton

Возвращает

объект GtkMenu или NULL.

[nullable][transfer none]

С: 3.6

gtk_menu_button_set_popover ()

void
gtk_menu_button_set_popover (GtkMenuButton *menu_button,
                             GtkWidget *popover);

Устанавливает GtkPopover, который будет появляться при нажатии на кнопку, или NULL для отключения кнопки. Если установлены “menu-model” или “popup”, они будут установлены в NULL.

Параметры

menu_button

объект GtkMenuButton

popover

объект GtkPopover.

[allow-none]

С: 3.12

gtk_menu_button_get_popover ()

GtkPopover *
gtk_menu_button_get_popover (GtkMenuButton *menu_button);

Возвращает GtkPopover, который отображается при нажатии на кнопку. Если кнопка не использует GtkPopover, эта функция возвращает NULL.

Параметры

menu_button

объект GtkMenuButton

Возвращает

объект GtkPopover или NULL.

[nullable][transfer none]

С: 3.12

gtk_menu_button_set_menu_model ()

void
gtk_menu_button_set_menu_model (GtkMenuButton *menu_button,
                                GMenuModel *menu_model);

Устанавливает GMenuModel, на основе которого будет создан выпадающий список, или NULL для отключения кнопки.

В зависимости от значения “use-popover”, будет создан либо GtkMenu с помощью gtk_menu_new_from_model(), либо GtkPopover с помощью gtk_popover_new_from_model(). В обоих случаях действия будут связаны, как документировано для этих функций.

Если “popup” или “popover” уже установлены, их содержимое будет потеряно и заменено вновь созданным выпадающим списком.

Параметры

menu_button

объект GtkMenuButton

menu_model

объект GMenuModel.

[allow-none]

С: 3.6

gtk_menu_button_get_menu_model ()

GMenuModel *
gtk_menu_button_get_menu_model (GtkMenuButton *menu_button);

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

Параметры

menu_button

объект GtkMenuButton

Возвращает

объект GMenuModel или NULL.

[nullable][transfer none]

С: 3.6

gtk_menu_button_set_use_popover ()

void
gtk_menu_button_set_use_popover (GtkMenuButton *menu_button,
                                 gboolean use_popover);

Устанавливает, следует ли создавать GtkPopover вместо GtkMenu при вызове gtk_menu_button_set_menu_model(). Обратите внимание, что это свойство учитывается только при установке новой модели меню.

Параметры

menu_button

a GtkMenuButton

use_popover

TRUE, чтобы создать всплывающее окно из модели меню

С: 3.12

gtk_menu_button_get_use_popover ()

gboolean
gtk_menu_button_get_use_popover (GtkMenuButton *menu_button);

Возвращает, будет ли создаваться GtkPopover или GtkMenu из модели меню.

Параметры

menu_button

a GtkMenuButton

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

TRUE, если используется GtkPopover

С: 3.12

gtk_menu_button_set_direction ()

void
gtk_menu_button_set_direction (GtkMenuButton *menu_button,
                               GtkArrowType direction);

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

Если размещение не помещается в доступное пространство в заданном направлении, GTK+ постарается разместить его на экране и полностью отобразить.

Если для direction передать GTK_ARROW_NONE, всплывающее меню будет вести себя так, как если бы вы передали GTK_ARROW_DOWN (хотя вы не увидите стрелок).

Параметры

menu_button

a GtkMenuButton

direction

a GtkArrowType

С: 3.6

gtk_menu_button_get_direction ()

GtkArrowType
gtk_menu_button_get_direction (GtkMenuButton *menu_button);

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

Параметры

menu_button

a GtkMenuButton

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

Значение типа GtkArrowType

С: 3.6

gtk_menu_button_set_align_widget ()

void
gtk_menu_button_set_align_widget (GtkMenuButton *menu_button,
                                  GtkWidget *align_widget);

Устанавливает GtkWidget, используемый для выравнивания меню при всплывании. Обратите внимание, что align_widget должен содержать сам GtkMenuButton.

Установка значения NULL означает, что меню будет выровнено с самим кнопкой.

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

Параметры

menu_button

a GtkMenuButton

align_widget

a GtkWidget.

[allow-none]

С: 3.6

gtk_menu_button_get_align_widget ()

GtkWidget *
gtk_menu_button_get_align_widget (GtkMenuButton *menu_button);

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

Параметры

menu_button

a GtkMenuButton

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

значение типа GtkWidget или NULL.

[nullable][transfer none]

С: 3.6

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

struct GtkMenuButton

struct GtkMenuButton;

Перечисление GtkArrowType

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

Элементы

GTK_ARROW_UP

Представляет стрелку, направленную вверх.

GTK_ARROW_DOWN

Представляет стрелку, направленную вниз.

GTK_ARROW_LEFT

Представляет стрелку, направленную влево.

GTK_ARROW_RIGHT

Представляет стрелку, направленную вправо.

GTK_ARROW_NONE

Нет стрелки. С версии 2.10.

Подробное описание свойств

Свойство “align-widget”

  “align-widget”             GtkContainer *

Элемент GtkWidget, используемый для выравнивания меню.

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

С: 3.6

Свойство “direction”

  “direction”                GtkArrowType

Тип GtkArrowType, определяющий направление выпадающего меню или всплывающего окна.

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

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

С: 3.6

Свойство “menu-model”

  “menu-model”               GMenuModel *

Модель GMenuModel, на основе которой будет создано всплывающее меню. В зависимости от свойства “use-popover”, это может быть обычное меню или всплывающее окно.

См. gtk_menu_button_set_menu_model() для взаимодействия со свойством “popup”.

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

С: 3.6

Свойство “popover”

  “popover”                  GtkPopover *

Всплывающее окно GtkPopover, которое будет отображаться при нажатии на кнопку.

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

С: 3.12

Свойство “popup”

  “popup”                    GtkMenu *

Меню GtkMenu, которое будет отображаться при нажатии на кнопку.

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

С: 3.6

Свойство “use-popover”

  “use-popover”              gboolean

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

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

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

С: 3.12

© 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/GtkMenuButton.html

Spec-Zone.ru

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