Spec-Zone.ru › GTK 3.20

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” или же общий иконкой "view-context-menu", если свойство 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, который будет всплывать при нажатии на кнопку, или NULL для отключения кнопки. Если установлены “menu-model” или “popover”, они будут установлены в NULL.

Параметры

menu_button

a GtkMenuButton

menu

a GtkMenu.

[allow-none]

С: 3.6

gtk_menu_button_get_popup ()

GtkMenu *
gtk_menu_button_get_popup (GtkMenuButton *menu_button);

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

Параметры

menu_button

a GtkMenuButton

Возвращает

a 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

a GtkMenuButton

popover

a GtkPopover.

[allow-none]

С: 3.12

gtk_menu_button_get_popover ()

GtkPopover *
gtk_menu_button_get_popover (GtkMenuButton *menu_button);

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

Параметры

menu_button

a GtkMenuButton

Возвращает

a 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

a GtkMenuButton

menu_model

a GMenuModel.

[allow-none]

С: 3.6

gtk_menu_button_get_menu_model ()

GMenuModel *
gtk_menu_button_get_menu_model (GtkMenuButton *menu_button);

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

Параметры

menu_button

a GtkMenuButton

Возвращает

a 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

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

a GtkWidget или NULL.

[nullable][transfer none]

С: 3.6

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

struct GtkMenuButton

struct GtkMenuButton;

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

Spec-Zone.ru

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