Spec-Zone.ru › GTK 4.0

GtkMenuButton

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

Функции

GtkWidget * gtk_menu_button_new ()
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_direction ()
GtkArrowType gtk_menu_button_get_direction ()
void gtk_menu_button_set_icon_name ()
const char * gtk_menu_button_get_icon_name ()
void gtk_menu_button_set_label ()
const char * gtk_menu_button_get_label ()
void gtk_menu_button_set_has_frame ()
gboolean gtk_menu_button_get_has_frame ()
gboolean gtk_menu_button_get_use_underline ()
void gtk_menu_button_set_use_underline ()
void gtk_menu_button_popup ()
void gtk_menu_button_popdown ()
void (*GtkMenuButtonCreatePopupFunc) ()
void gtk_menu_button_set_create_popup_func ()

Свойства

GtkArrowType direction Чтение/Запись
gboolean has-frame Чтение/Запись
char * icon-name Чтение/Запись
char * label Чтение/Запись
GMenuModel * menu-model Чтение/Запись
GtkPopover * popover Чтение/Запись
gboolean use-underline Чтение/Запись

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

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

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

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkMenuButton

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

GtkMenuButton реализует GtkAccessible, GtkBuildable и GtkConstraintTarget.

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

#include <gtk/gtk.h>

Описание

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

Виджет GtkMenuButton может отображать либо значок (устанавливается свойством “icon-name”), либо метку (устанавливается свойством “label”). Если ни то, ни другое не установлено явно, автоматически создаётся GtkImage со стрелочным изображением, ориентированным в соответствии со свойством “direction”, или общим значком «открытое меню» (symbolic), если свойство «direction» не установлено.

Позиционирование всплывающего меню определяется свойством “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-узлы

menubutton
╰── button.toggle
    ╰── [content]

GtkMenuButton имеет один CSS-узел с именем menubutton, который содержит узел кнопки переключения.

Доступность

GtkMenuButton использует роль GTK_ACCESSIBLE_ROLE_BUTTON.

Функции

gtk_menu_button_new ()

GtkWidget *
gtk_menu_button_new (void);

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

Возвращает

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

gtk_menu_button_set_popover ()

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

Устанавливает GtkPopover, который будет появляться при нажатии на menu_button, или NULL для отключения любого существующего всплывающего меню и отключения кнопки.

Если “menu-model” установлен, модель меню отсоединяется от menu_button, и свойство устанавливается в NULL.

Параметры

menu_button

виджет GtkMenuButton

popover

виджет GtkPopover, или NULL для сброса и отключения кнопки.

[nullable]

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]

gtk_menu_button_set_menu_model ()

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

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

Для построения GtkPopover из модели меню будет использована функция gtk_popover_menu_new_from_model(). Действия будут подключены, как описано для этой функции.

Если “popover” уже установлен, он будет отсоединён от menu_button, и свойство будет установлено в NULL.

Параметры

menu_button

виджет GtkMenuButton

menu_model

модель GMenuModel, или NULL для сброса и отключения кнопки.

[nullable]

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]

gtk_menu_button_set_direction ()

void
gtk_menu_button_set_direction (GtkMenuButton *menu_button,
                               GtkArrowType direction);

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

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

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

Параметры

menu_button

виджет GtkMenuButton

direction

значение GtkArrowType

gtk_menu_button_get_direction ()

GtkArrowType
gtk_menu_button_get_direction (GtkMenuButton *menu_button);

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

Параметры

menu_button

виджет GtkMenuButton

Возвращает

значение GtkArrowType

gtk_menu_button_set_icon_name ()

void
gtk_menu_button_set_icon_name (GtkMenuButton *menu_button,
                               const char *icon_name);

Устанавливает имя иконки, отображаемой внутри кнопки меню.

Параметры

menu_button

виджет GtkMenuButton

icon_name

имя иконки

gtk_menu_button_get_icon_name ()

const char *
gtk_menu_button_get_icon_name (GtkMenuButton *menu_button);

Возвращает имя иконки, отображаемой на кнопке.

Параметры

menu_button

виджет GtkMenuButton

Возвращает

имя иконки, отображаемой на кнопке

gtk_menu_button_set_label ()

void
gtk_menu_button_set_label (GtkMenuButton *menu_button,
                           const char *label);

Устанавливает текст, отображаемый внутри кнопки меню.

Параметры

menu_button

виджет GtkMenuButton

label

текст

gtk_menu_button_get_label ()

const char *
gtk_menu_button_get_label (GtkMenuButton *menu_button);

Возвращает отображаемый на кнопке текст.

Параметры

menu_button

виджет GtkMenuButton

Возвращает

текст, отображаемый на кнопке

gtk_menu_button_set_has_frame ()

void
gtk_menu_button_set_has_frame (GtkMenuButton *menu_button,
                               gboolean has_frame);

Устанавливает стиль кнопки.

Параметры

menu_button

виджет GtkMenuButton

has_frame

признак наличия рамки вокруг кнопки

gtk_menu_button_get_has_frame ()

gboolean
gtk_menu_button_get_has_frame (GtkMenuButton *menu_button);

Возвращает, имеет ли кнопка рамку.

Параметры

menu_button

a GtkMenuButton

Возвращает

TRUE если кнопка имеет рамку

gtk_menu_button_get_use_underline ()

gboolean
gtk_menu_button_get_use_underline (GtkMenuButton *menu_button);

Возвращает, указывает ли встроенное подчеркивание в тексте на мнемонический символ. См. gtk_menu_button_set_use_underline().

Параметры

menu_button

a GtkMenuButton

Возвращает

TRUE указывает ли встроенное подчеркивание в тексте на мнемонические клавиши ускорения.

gtk_menu_button_set_use_underline ()

void
gtk_menu_button_set_use_underline (GtkMenuButton *menu_button,
                                   gboolean use_underline);

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

Параметры

menu_button

a GtkMenuButton

use_underline

TRUE если подчеркивания в тексте обозначают мнемоники

gtk_menu_button_popup ()

void
gtk_menu_button_popup (GtkMenuButton *menu_button);

Вызывает всплывающее меню.

Параметры

menu_button

a GtkMenuButton

gtk_menu_button_popdown ()

void
gtk_menu_button_popdown (GtkMenuButton *menu_button);

Закрывает всплывающее меню.

Параметры

menu_button

a GtkMenuButton

GtkMenuButtonCreatePopupFunc ()

void
(*GtkMenuButtonCreatePopupFunc) (GtkMenuButton *menu_button,
                                 gpointer user_data);

Функция обратного вызова, предоставляемая пользователем, для создания всплывающего меню для menu_button по требованию. Эта функция вызывается, когда всплывающее меню menu_button отображается, но не было предоставлено через gtk_menu_button_set_popover() или gtk_menu_button_set_menu_model().

Параметры

menu_button

the GtkMenuButton

user_data

Данные пользователя, переданные в gtk_menu_button_set_create_popup_func()

gtk_menu_button_set_create_popup_func ()

void
gtk_menu_button_set_create_popup_func (GtkMenuButton *menu_button,
                                       GtkMenuButtonCreatePopupFunc func,
                                       gpointer user_data,
                                       GDestroyNotify destroy_notify);

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

  • gtk_menu_button_set_popover()

  • gtk_menu_button_set_menu_model()

для установки всплывающего меню для menu_button . Если func не NULL, menu_button всегда будет активным.

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

Параметры

menu_button

a GtkMenuButton

func

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

[nullable]

user_data

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

[closure]

destroy_notify

уведомление о уничтожении для user_data .

[nullable]

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

GtkMenuButton

typedef struct _GtkMenuButton GtkMenuButton;

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

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

Члены

GTK_ARROW_UP

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

GTK_ARROW_DOWN

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

GTK_ARROW_LEFT

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

GTK_ARROW_RIGHT

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

GTK_ARROW_NONE

Без стрелки.

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

Свойство “direction”

  “direction”                GtkArrowType

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

Владелец: GtkMenuButton

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

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

Свойство “has-frame”

  “has-frame”                gboolean

Указывает, имеет ли кнопка рамку.

Владелец: GtkMenuButton

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

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

Свойство “icon-name”

  “icon-name”                char *

Имя иконки, используемой для автоматического заполнения кнопки.

Владелец: GtkMenuButton

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

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

Свойство “label”

  “label”                    char *

Текст для кнопки.

Владелец: GtkMenuButton

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

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

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

  “menu-model”               GMenuModel *

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

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

Владелец: GtkMenuButton

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

Свойство “popover”

  “popover”                  GtkPopover *

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

Владелец: GtkMenuButton

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

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

  “use-underline”            gboolean

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

Владелец: GtkMenuButton

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

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

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkMenuButton.html

Spec-Zone.ru

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