Spec-Zone.ru › Hammerspoon

hs.menubar

Создание и управление иконками в строке меню

Обзор API

  • Константы - Полезные значения, которые нельзя изменить
    • imagePositions
  • Конструкторы - Вызовы API, которые возвращают объект, обычно с методами API
    • new
  • Методы - Вызовы API, которые могут быть выполнены только с объектом, возвращенным конструктором
    • autosaveName
    • delete
    • frame
    • icon
    • imagePosition
    • isInMenuBar
    • popupMenu
    • removeFromMenuBar
    • returnToMenuBar
    • setClickCallback
    • setIcon
    • setMenu
    • setTitle
    • setTooltip
    • stateImageSize
    • title

Документация API

Константы

imagePositions
Подпись hs.menubar.imagePositions[]
Тип Константа
Описание

Предварительно определённый список позиций изображений для элемента строки меню

Источник extensions/menubar/libmenubar.m строка 1113

Конструкторы

new
Подпись hs.menubar.new([inMenuBar], [autosaveName]) -> menubaritem or nil
Тип Конструктор
Описание

Создаёт новый объект элемента строки меню и, по желанию, добавляет его в системную строку меню

Параметры
  • inMenuBar - необязательный параметр, по умолчанию установленный в true. Если true, элемент добавляется в системную строку меню, иначе — скрыт.
  • autosaveName - необязательный параметр, позволяющий определить имя для автосохранения, чтобы macOS мог восстановить расположение строки меню после перезагрузки.
Возвращает
  • объект элемента строки меню для использования с другими методами API или nil, если создание не удалось
Примечания
  • Вы должны вызвать hs.menubar:setTitle() или hs.menubar:setIcon() после создания объекта, иначе он будет невидимым

  • Вызов этого метода с inMenuBar равным false эквивалентен вызову hs.menubar.new():removeFromMenuBar().

  • Скрытый элемент строки меню можно добавить в системную строку меню, вызвав hs.menubar:returnToMenuBar(), или использовать в качестве всплывающего меню, вызвав hs.menubar:popupMenu().

Источник extensions/menubar/libmenubar.m строка 395

Методы

autosaveName
Signature hs.menubar:autosaveName([name]) -> menubaritem | current-value
Type Method
Description

Получить или установить имя автосохранения для строки меню. Определив имя автосохранения, macOS сможет восстановить положение строки меню после перезагрузки.

Parameters
  • name - Необязательная строка, если вы хотите установить имя автосохранения
Returns
  • Элемент строки меню, если его имя автосохранения было изменено, или текущее значение имени автосохранения
Source extensions/menubar/libmenubar.m строка 466
delete
Signature hs.menubar:delete()
Type Method
Description

Удаляет элемент строки меню из строки меню и уничтожает его.

Parameters
  • None
Returns
  • None
Source extensions/menubar/libmenubar.m строка 801
frame
Signature hs.menubar:frame() -> hs.geometry rect
Type Method
Description

Возвращает рамку элемента строки меню.

Parameters
  • None
Returns
  • прямоугольник hs.geometry, описывающий рамку элемента строки меню, или nil, если элемент строки меню в данный момент не находится в строке меню.
Notes
  • Это вернёт рамку, даже если нет иконки или заголовка.
Source extensions/menubar/menubar.lua строка 36
icon
Signature hs.menubar:icon() -> hs.image object
Type Method
Description

Возвращает текущую иконку объекта элемента строки меню.

Parameters
  • None
Returns
  • иконка элемента строки меню в качестве объекта hs.image, или nil, если её нет.
Source extensions/menubar/libmenubar.m строка 1036
imagePosition
Signature hs.menubar:imagePosition([position]) -> menubaritem | current-value
Type Method
Description

Получить или установить положение изображения строки меню относительно заголовка.

Parameters
  • position - Одно из значений в hs.menubar.imagePositions, которое будет установлено, или ничего, чтобы вернуть текущее положение
Returns
  • Элемент строки меню, если его положение изображения было изменено, или текущее значение положения изображения
Source extensions/menubar/libmenubar.m строка 506
isInMenuBar
Signature hs.menubar:isInMenuBar() -> boolean
Type Method
Description

Возвращает булевое значение, указывающее, находится ли указанное меню в строке меню OS X.

Parameters
  • None
Returns
  • булево значение, указывающее, находится ли указанное меню в строке меню OS X
Source extensions/menubar/libmenubar.m строка 999
popupMenu
Signature hs.menubar:popupMenu(point[, darkMode]) -> menubaritem
Type Method
Description

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

Parameters
  • point - Положение верхнего левого угла всплывающего меню для отображения.
  • darkMode - (необязательно) true для принудительного переключения в тёмную тему строки меню (по умолчанию соответствует настройкам macOS)
Returns
  • Элемент строки меню
Notes
  • Элементы, вызывающие hs.menubar:setClickCallback(), будут вызывать функцию обратного вызова, но мы не можем контролировать позиционирование каких-либо визуальных элементов, которые может создать функция — вызов этого метода для такого объекта эквивалентен прямому вызову его функции обратного вызова.
  • Этот метод блокирующий. Hammerspoon не сможет реагировать на другую активность, пока всплывающее меню отображается.
  • darkMode использует недокументированный вызов API macOS, поэтому может сломаться в будущих релизах.
Source extensions/menubar/libmenubar.m строка 851
removeFromMenuBar
Signature hs.menubar:removeFromMenuBar() -> menubaritem
Type Method
Description

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

Parameters
  • None
Returns
  • Элемент строки меню
Source extensions/menubar/libmenubar.m строка 934
returnToMenuBar
Signature hs.menubar:returnToMenuBar() -> menubaritem
Type Method
Description

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

Parameters
  • None
Returns
  • Элемент строки меню
Source extensions/menubar/libmenubar.m строка 967
END_OF_DOCUMENT_MARKER
setClickCallback
Signature hs.menubar:setClickCallback([fn]) -> menubaritem
Type Method
Description

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

Parameters
  • fn - Необязательная функция, которая будет вызываться при нажатии на элемент меню. Если этот аргумент не указан, любая существующая функция будет удалена. Функция может необязательно принимать один аргумент, который будет таблицей, содержащей логические значения, указывающие, какие модификаторы клавиатуры были нажаты при нажатии на элемент меню; Возможные клавиши:
    • cmd
    • alt
    • shift
    • ctrl
    • fn
Returns
  • элемент меню
Notes
  • Если к элементу меню был прикреплён контекстное меню, этот обработчик никогда не будет вызван.
  • Не оказывает влияния на отображение всплывающего меню, но изменения вступят в силу, если hs.menubar:returnToMenuBar() будет вызвано для элемента меню.
Source extensions/menubar/libmenubar.m строка 654
setIcon
Signature hs.menubar:setIcon(imageData[, template]) -> menubaritem or nil
Type Method
Description

Устанавливает изображение для элемента меню. Изображение будет отображаться в системном меню.

Parameters
  • imageData - Может быть одним из следующих:
    • Объект hs.image
    • Строка, содержащая путь к файлу изображения
    • Строка, начинающаяся с ASCII:, что указывает, что остальная часть строки интерпретируется как специальный вид ASCII-диаграммы, которая будет отрисована в изображение и использована как значок. См. примечания ниже для получения информации о специальном формате ASCII-диаграммы.
    • nil, указывающее на удаление текущего изображения
  • template - Необязательное логическое значение по умолчанию true. Если оно true, предоставленное изображение будет обрабатываться как "шаблонное" изображение, что позволяет ему автоматически поддерживать тёмный режим OS X 10.10. Если оно false, изображение будет использоваться как есть, поддерживая цвет.
Returns
  • элемент меню, если изображение было загружено и установлено, nil если его не удалось найти или загрузить
Notes
  • ** Изменение API **

    • Этот метод раньше возвращал true при успехе — это было изменено на возврат элемента меню при успехе для облегчения цепочки методов. Поскольку Lua рассматривает любое значение, которое не nil или false, как "true", это должно затронуть только код, где значение возврата фактически сравнивалось с true, например, if result == true then..., а не (не затронутое) if result then....
  • Если вы установили заголовок и значок, они оба будут отображаться рядом друг с другом

  • Не оказывает влияния на отображение всплывающего меню, но изменения вступят в силу, если hs.menubar:returnToMenuBar() будет вызвано для элемента меню.

  • Значки должны быть небольшими, прозрачными изображениями, примерно соответствующими размеру обычных значков меню, в противном случае они будут выглядеть очень странно. Обратите внимание, что если вы используете объект изображения hs.image в качестве значка, вы можете принудительно изменить его размер с помощью hs.image:setSize({w=16,h=16})

  • Поддерживается масштабирование Retina, если изображение масштабируемое (например, PDF, созданный в Adobe Illustrator) или содержит несколько размеров (например, TIFF с маленькими и большими изображениями). Изображения не будут автоматически работать правильно, если у вас есть версия @2x.

  • Значки по умолчанию задаются как "шаблоны", что позволяет им автоматически поддерживать тёмный режим OS X 10.10, но это также означает, что они не могут быть сложными цветными изображениями.

  • Примеры хорошо работающих изображений см. в Hammerspoon.app/Contents/Resources/statusicon.tiff (для многоизображений TIFF-значка, совместимого с Retina) или https://github.com/jigish/slate/blob/master/Slate/status.pdf (для масштабируемого векторного PDF-значка).

  • Рекомендации по размеру изображений см. в http://alastairs-place.net/blog/2013/07/23/nsstatusitem-what-size-should-your-icon-be/

Source extensions/menubar/libmenubar.m строка 573
setMenu
Signature hs.menubar:setMenu(menuTable) -> menubaritem
Type Method
Description

Прикрепляет раскрывающееся меню к элементу меню.

Parameters
  • menuTable:
    • Если этот аргумент nil, удаляет любое ранее зарегистрированное меню.
    • Если этот аргумент таблица: устанавливает меню для этого элемента меню в предоставленную таблицу. Формат таблицы описан ниже.
    • Если этот аргумент функция: функция будет вызываться каждый раз, когда пользователь нажимает на элемент меню, и функция должна возвращать таблицу, которая определяет отображаемое меню. Таблица должна иметь тот же формат, что и описанный ниже. Функция может необязательно принимать один аргумент, который будет таблицей, содержащей логические значения, указывающие, какие модификаторы клавиатуры были нажаты при нажатии на элемент меню; Возможные клавиши:
    • cmd
    • alt
    • shift
    • ctrl
    • fn
    • Формат таблицы: lua { { title = "my menu item", fn = function() print("you clicked my menu item!") end }, { title = "-" }, { title = "other item", fn = some_function }, { title = "disabled item", disabled = true }, { title = "checked item", checked = true }, }
    • Доступные клавиши для каждого элемента меню (обратите внимание, что title — единственная необходимая клавиша — все остальные необязательны):
    • title - Строка или объект hs.styledtext для отображения в меню. Если это специальная строка "-", элемент будет отображаться как разделитель меню. Эта клавиша может быть установлена в пустую строку (""), но должна присутствовать.
    • fn - Функция, которая будет выполняться при нажатии на элемент меню. Функция будет вызвана с двумя аргументами. Первый аргумент будет таблицей, содержащей логические значения, указывающие, какие модификаторы клавиатуры были нажаты при нажатии на элемент меню (см. параметр menuTable для возможных клавиш), а второй — таблицей, представляющей элемент.
    • checked - Логическое значение, указывающее, должен ли элемент меню иметь галочку (по умолчанию) рядом с ним или нет. По умолчанию false.
    • state - Текстовое значение "on", "off" или "mixed", указывающее состояние элемента меню. "on" и "off" эквивалентны checked being true or false соответственно, а "mixed" будет иметь дефис (по умолчанию) рядом с ним.
    • disabled - Логическое значение, указывающее, должен ли элемент меню быть невыбираемым или нет. По умолчанию false (т. е. элементы меню выбираемы по умолчанию).
    • menu - таблица в том же формате, что и выше, которая будет представлена как подменю для этого элемента меню. * Элемент меню, который отключён и имеет подменю, будет отображать стрелку справа, указывающую, что у него есть подменю, но элементы в подменю не будут доступны, даже если элементы подменю сами по себе не отключены. * Элемент меню с подменю также является нажимаемой целью, поэтому он также может иметь клавишу fn.
    • image - Изображение для отображения в меню справа от любого изображения состояния или галочки и слева от заголовка элемента меню. Это изображение не ограничено размером, установленным с помощью hs.menubar:stateImageSize, поэтому вы должны настроить его с помощью hs.image:setSize, если ваше изображение чрезвычайно большое или маленькое.
    • tooltip - Подсказка, отображаемая при наведении курсора на элемент меню в течение нескольких секунд.
    • shortcut - Строка, содержащая один символ, который будет использоваться в качестве сочетания клавиш для элемента меню. Обратите внимание, что если вы используете прописную букву, для активации сочетания клавиш потребуется клавиша Shift.
    • indent - Целое число от 0 до 15, указывающее, насколько вправо должен быть отступом элемент меню. По умолчанию 0.
    • onStateImage - Изображение, отображаемое, когда checked имеет значение true или state имеет значение "on". Размер этого изображения ограничен размером, установленным hs.menubar:stateImageSize. Если эта клавиша не установлена, для отмеченных или "включённых" элементов меню будет отображаться галочка.
    • offStateImage - Изображение, отображаемое, когда checked имеет значение false или state имеет значение "off". Размер этого изображения ограничен размером, установленным hs.menubar:stateImageSize. Если эта клавиша не установлена, рядом с элементом меню не отображается специальная метка.
    • mixedStateImage - Изображение, отображаемое, когда state имеет значение "mixed". Размер этого изображения ограничен размером, установленным hs.menubar:stateImageSize. Если эта клавиша не установлена, для элементов меню с состоянием "mixed" будет отображаться тире.
Returns
  • элемент меню
Notes
  • Если вы используете функцию обратного вызова, позаботьтесь о том, чтобы не тратить слишком много времени на генерацию меню, так как вы заблокируете процесс, и операционная система может решить удалить элемент меню.
Source extensions/menubar/libmenubar.m строка 703
setTitle
Signature hs.menubar:setTitle(title) -> menubaritem
Type Method
Description

Устанавливает заголовок объекта элемента меню. Заголовок будет отображаться в системном меню.

Parameters
  • title - Строка или объект hs.styledtext для использования в качестве заголовка или nil для удаления заголовка
Returns
  • элемент меню
Notes
  • Если вы установили значок и заголовок, они оба будут отображаться рядом друг с другом.
  • Не оказывает влияния на отображение всплывающего меню, но изменения вступят в силу, если hs.menubar:returnToMenuBar() будет вызвано для элемента меню.
Source extensions/menubar/libmenubar.m строка 534
END_OF_DOCUMENT_MARKER
setTooltip
Signature hs.menubar:setTooltip(tooltip) -> menubaritem
Type Method
Description

Устанавливает текст всплывающей подсказки для пункта меню.

Parameters
  • tooltip - Строка, используемая в качестве всплывающей подсказки
Returns
  • пункт меню
Notes
  • Не влияет на отображение всплывающего меню, но изменения вступят в силу, если для пункта меню будет вызван hs.menubar:returnToMenuBar().
Source extensions/menubar/libmenubar.m строка 630
stateImageSize
Signature hs.menubar:stateImageSize([size]) -> hs.image object | current value
Type Method
Description

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

Parameters
  • size - необязательная таблица, определяющая размер изображений состояния, отображаемых при использовании ключа checked или state в определении таблицы меню. Значение по умолчанию определяется размером шрифта системного меню. Если вы явно зададите nil, размер будет сброшен до значения по умолчанию.
Returns
  • если параметр предоставлен, возвращает элемент меню; в противном случае возвращает текущее значение.
Notes
  • Изображение используется вместо галочки или тире только при установке с использованием ключей onStateImage, offStateImage, или mixedStateImage. Если эти ключи не используются, этот метод не повлияет на отображение меню. Подробнее см. hs.menubar:setMenu.
  • Если вы устанавливаете содержимое меню с помощью статической таблицы, вы должны вызвать этот метод перед вызовом hs.menubar:setMenu, так как изменения вступят в силу только при следующем преобразовании таблицы в структуру меню.
Source extensions/menubar/libmenubar.m строка 1073
title
Signature hs.menubar:title([styled]) -> string | styledtextObject
Type Method
Description

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

Parameters
  • styled - необязательный булевый параметр, по умолчанию false, указывающий, что должен быть возвращён styledtextObject, представляющий текст заголовка меню
Returns
  • заголовок пункта меню или пустая строка, если его нет. Если styled не задан или false, возвращается строка; в противном случае возвращается styledtextObject.
Source extensions/menubar/libmenubar.m строка 1014

© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.menubar.html

Spec-Zone.ru

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