Spec-Zone.ru › GTK 3.24

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
enum 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”, или универсальный иконкой «открыть меню» в случае, если свойство 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-узлы

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, который будет всплывать при нажатии на menu_button, или NULL для отсоединения любого существующего меню и отключения кнопки.

Если свойство “menu-model” или “popover” установлены, эти объекты отсоединяются от menu_button, и эти свойства устанавливаются в NULL.

Параметры

menu_button

виджет GtkMenuButton

menu

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

[nullable]

С версии: 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, который будет всплывать при нажатии на menu_button, или NULL для отсоединения любого существующего всплывающего окна и отключения кнопки.

Если свойства “menu-model” или “popup” установлены, эти объекты отсоединяются от menu_button, и эти свойства устанавливаются в NULL.

Параметры

menu_button

виджет GtkMenuButton

popover

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

[nullable]

С версии: 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, и эти свойства устанавливаются в NULL.

Параметры

menu_button

виджет GtkMenuButton

menu_model

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

[nullable]

С версии: 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+ постарается сохранить его на экране и полностью отобразить.

Если вы передадите GTK_ARROW_NONE для direction, всплывающее меню будет вести себя так, как если бы вы передали 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 для выравнивания меню.

Владелец: GtkMenuButton

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

С версии: 3.6

Свойство “direction”

  “direction”                GtkArrowType

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

Владелец: GtkMenuButton

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

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

С версии: 3.6

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

  “menu-model”               GMenuModel *

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

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

Владелец: GtkMenuButton

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

С версии: 3.6

Свойство “popover”

  “popover”                  GtkPopover *

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

Владелец: GtkMenuButton

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

С версии: 3.12

Свойство “popup”

  “popup”                    GtkMenu *

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

Владелец: GtkMenuButton

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

С версии: 3.6

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

  “use-popover”              gboolean

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

Владелец: GtkMenuButton

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

Значение по умолчанию: 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.24/GtkMenuButton.html

Spec-Zone.ru

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