hs.canvas
Другой подход к рисованию в Hammerspoon
hs.drawing подходы к графическим изображениям как независимым примитивам, каждая "фигура" является отдельным объектом рисования на основе основных примитивов: эллипс, прямоугольник, точка, линия, текст и т. д. Эта модель хорошо работает с графическими элементами, которые, как ожидается, будут управляться индивидуально и не будут иметь сложных взаимодействий с обрезкой, но не масштабируется хорошо, когда требуется перемещать или манипулировать более сложными комбинациями или группами элементов рисования как группой, и допускает только простые области обрезки включения.
Этот модуль работает, назначая холст, а затем назначая серию графических примитивов холсту. В этот список заданий входят правила о том, как отдельные элементы взаимодействуют друг с другом на холсте (правила композиции и обрезки), и непосредственная модификация самого холста (перемещение, изменение размера и т. д.) приводит к тому, что все назначенные элементы корректируются как группа.
Элементы холста определены в массиве, и каждое значение массива является таблицей пар ключ-значение, описывающих элемент в этом положении. Элементы рендерятся в порядке их назначения массиву (т. е. элемент 1 рисуется перед элементом 2 и т. д.).
Атрибуты для элементов холста определены в hs.canvas.attributes. Все элементы холста требуют поля type; все остальные атрибуты имеют значения по умолчанию. Поля, необходимые для правильного определения элемента (например, frame для типа элемента rectangle), будут скопированы в определение элемента со значениями по умолчанию, если они не указаны во время создания. Необязательные атрибуты будут назначены только в определении элемента, если они указаны. Когда модуль требует значения атрибута элемента, он сначала проверяет само определение элемента, затем ищет значения по умолчанию в значениях по умолчанию холста, а затем, наконец, в значениях по умолчанию модуля (указанных в описаниях ниже).
Некоторые примеры использования этого модуля можно найти по адресу https://github.com/asmagill/hammerspoon/wiki/hs.canvas.examples
Подмодули
Обзор API
- Константы - полезные значения, которые нельзя изменить
- Функции - вызовы API, непосредственно предоставляемые расширением
- Конструкторы - вызовы API, которые возвращают объект, обычно объект, предоставляющий методы API
- Поля - переменные, к которым можно получить доступ только из объекта, возвращаемого конструктором
- Методы - вызовы API, которые могут быть выполнены только на объекте, возвращенном конструктором
- _accessibilitySubrole
- alpha
- appendElements
- assignElement
- behavior
- behaviorAsLabels
- bringToFront
- canvasDefaultFor
- canvasDefaultKeys
- canvasDefaults
- canvasElements
- canvasMouseEvents
- clickActivating
- copy
- delete
- draggingCallback
- elementAttribute
- elementBounds
- elementCount
- elementKeys
- frame
- hide
- imageFromCanvas
- insertElement
- isOccluded
- isShowing
- isVisible
- level
- minimumTextSize
- mouseCallback
- orderAbove
- orderBelow
- removeElement
- replaceElements
- rotateElement
- sendToBack
- show
- size
- topLeft
- transformation
- wantsLayer
Документация API
Константы
compositeTypes
| Подпись | hs.canvas.compositeTypes[] |
|---|---|
| Тип | Константа |
| Описание |
Таблица, содержащая возможные правила композиции для элементов внутри холста. |
| Источник | extensions/canvas/libcanvas.m строка 3728 |
windowBehaviors
| Подпись | hs.canvas.windowBehaviors[] |
|---|---|
| Тип | Константа |
| Описание |
Массив меток поведения окна для определения того, как холст или объект рисования обрабатываются в Пространствах и Экспозиции |
| Источник | extensions/canvas/libcanvas.m строка 3757 |
windowLevels
| Подпись | hs.canvas.windowLevels |
|---|---|
| Тип | Константа |
| Описание |
Таблица предопределенных уровней окон, используемых с hs.canvas:level |
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 3816 |
Функции
defaultTextStyle
| Подпись | hs.canvas.defaultTextStyle() -> |
|---|---|
| Тип | Функция |
| Описание |
Возвращает таблицу, содержащую шрифт, размер, цвет и paragraphStyle по умолчанию, используемые |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 2395 |
elementSpec
| Подпись | hs.canvas.elementSpec() -> table |
|---|---|
| Тип | Функция |
| Описание |
Возвращает список атрибутов и их спецификаций, которые распознаются для элементов холста этим модулем. |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 2376 |
help
| Подпись | hs.canvas.help([attribute]) -> string |
|---|---|
| Тип | Функция |
| Описание |
Предоставляет информацию о спецификации распознаваемых атрибутов или указанного атрибута. |
| Параметры |
|
| Возвращает |
|
| Источник | extensions/canvas/canvas.lua строка 716 |
useCustomAccessibilitySubrole
| Подпись | hs.canvas.useCustomAccessibilitySubrole([state]) -> boolean |
|---|---|
| Тип | Функция |
| Описание |
Получить или установить, используют ли объекты холста пользовательский подроль доступности для содержащего системного окна. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 2316 |
Конструкторы
new
| Подпись | hs.canvas.new(rect) -> canvasObject |
|---|---|
| Тип | Конструктор |
| Описание |
Создать новый объект холста в заданных координатах |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 2343 |
Поля
attributes
| Подпись | hs.canvas.attributes |
|---|---|
| Тип | Поле |
| Описание |
Атрибуты элемента холста |
| Примечания |
|
|
| |
| Источник | extensions/canvas/canvas.lua строка 15 |
|---|
object
| Подпись | hs.canvas.object[index] |
|---|---|
| Тип | Поле |
| Описание |
Массивоподобный метод для доступа к атрибутам элемента холста по указанному индексу. |
| Примечания |
Метаметоды присваиваются объекту холста, чтобы вы могли обращаться к отдельным элементам холста, как если бы объект холста был массивом. Каждый элемент представлен таблицей пар ключ-значение, где каждый ключ представляет атрибут этого элемента. Действительные индексы варьируются от 1 до hs.canvas:elementCount() при получении элемента или получении/установке одного из его атрибутов и от 1 до hs.canvas:elementCount() + 1 при присваивании таблицы элемента индексу в холсте. Например: c = require("hs.canvas")
a = c.new{ x = 100, y = 100, h = 100, w = 100 }:show()
a:insertElement({ type = "rectangle", id = "part1", fillColor = { blue = 1 } })
a:insertElement({ type = "circle", id = "part2", fillColor = { green = 1 } })
также может быть выражено как: c = require("hs.canvas")
a = c.new{ x = 100, y = 100, h = 100, w = 100 }:show()
a[1] = { type = "rectangle", id = "part1", fillColor = { blue = 1 } }
a[2] = { type = "circle", id = "part2", fillColor = { green = 1 } }
Вы можете изменить атрибуты элемента холста таким же образом: Значения по умолчанию холста также доступны с помощью поля Атрибуты, для которых в качестве атрибута Важно отметить, что эти методы являются удобством, и объект холста не является настоящей таблицей. Таблицы генерируются динамически по мере необходимости; поэтому Атрибуты, которые позволяют использовать строку для указания процента (см. проценты), также могут быть извлечены как фактическое число для текущего размера холста путем добавления Поскольку объект холста на самом деле является Lua userdata, а не реальной таблицей, вы не можете использовать функции Однако вы можете удалить последний элемент с помощью Чтобы вывести все элементы на холсте: |
| Источник | extensions/canvas/canvas.lua строка 603 |
проценты
| Подпись | hs.canvas.percentages |
|---|---|
| Тип | Поле |
| Описание |
Атрибуты холста, которые определяют расположение и размер элементов холста, могут быть указаны с абсолютным расположением или в процентах от размера холста. |
| Примечания |
Проценты могут быть присвоены следующим атрибутам:
Проценты присваиваются этим полям в виде строки. Если число в строке заканчивается знаком процента (%), то процент - это целое число, которое предшествует знаку процента. Если знак процента отсутствует, то ожидается процент в десятичном формате (например, "1.0" равно "100%"). Поскольку тень, применённая к элементу холста, не учитывается в пределах элемента, вы также можете установить атрибут |
| Источник | extensions/canvas/canvas.lua строка 734 |
Методы
_accessibilitySubrole
| Подпись | hs.canvas:_accessibilitySubrole([subrole]) -> canvasObject | current value |
|---|---|
| Тип | Метод |
| Описание |
Получение или установка подроли доступности, возвращаемой объектами |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 2474 |
alpha
| Подпись | hs.canvas:alpha([alpha]) -> canvasObject | currentValue |
|---|---|
| Тип | Метод |
| Описание |
Получение или установка уровня альфа-канала окна, содержащего canvasObject. |
| Параметры |
|
| Возвращаемое значение |
|
| Источник | extensions/canvas/libcanvas.m строка 2986 |
appendElements
| Подпись | hs.canvas:appendElements(element...) -> canvasObject |
|---|---|
| Тип | Метод |
| Описание |
Добавляет указанные элементы в холст. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/canvas.lua строка 348 |
assignElement
| Подпись | hs.canvas:assignElement(elementTable, [index]) -> canvasObject |
|---|---|
| Тип | Метод |
| Описание |
Присваивает новый элемент холсту в указанном индексе. |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 3664 |
behavior
| Подпись | hs.canvas:behavior([behavior]) -> canvasObject | currentValue |
|---|---|
| Тип | Метод |
| Описание |
Получение или установка параметров поведения окна для объекта холста с помощью меток, определённых в hs.canvas.windowBehaviors. |
| Параметры |
|
| Возвращает |
|
| Источник | extensions/canvas/canvas.lua строка 160 |
behaviorAsLabels
| Подпись | hs.canvas:behaviorAsLabels(behaviorTable) -> canvasObject | currentValue |
|---|---|
| Тип | Метод |
| Описание |
Получение или установка параметров поведения окна для объекта холста с помощью меток, определённых в hs.canvas.windowBehaviors. |
| Параметры |
|
| Возвращает |
|
| Источник | extensions/canvas/canvas.lua строка 204 |
bringToFront
| Подпись | hs.canvas:bringToFront([aboveEverything]) -> canvasObject |
|---|---|
| Тип | Метод |
| Описание |
Размещает объект холста поверх обычных окон. |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Источник | extensions/canvas/canvas.lua строка 286 |
canvasDefaultFor
| Подпись | hs.canvas:canvasDefaultFor(keyName, [newValue]) -> canvasObject | currentValue |
|---|---|
| Тип | Метод |
| Описание |
Получение или установка значения по умолчанию для элемента, указанного ключом keyName. |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 3272 |
canvasDefaultKeys
| Подпись | hs.canvas:canvasDefaultKeys([module]) -> table |
|---|---|
| Тип | Метод |
| Описание |
Возвращает список имён ключей для атрибутов, установленных по умолчанию для холста. |
| Параметры |
|
| Возвращает |
|
| Источник | extensions/canvas/libcanvas.m строка 3566 |
canvasDefaults
| Подпись | hs.canvas:canvasDefaults([module]) -> table |
|---|---|
| Тип | Метод |
| Описание |
Получение таблицы значений по умолчанию пар ключ-значение, которые применяются к холсту. |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 3533 |
canvasElements
| Подпись | hs.canvas:canvasElements() -> table |
|---|---|
| Тип | Метод |
| Описание |
Возвращает массив, содержащий элементы, определённые для этого холста. Каждый элемент массива будет таблицей, содержащей пары ключ-значение, которые были установлены для этого элемента холста. |
| Параметры |
|
| Возвращает |
|
| Источник | extensions/canvas/libcanvas.m строка 3594 |
canvasMouseEvents
| Подпись | hs.canvas:canvasMouseEvents([down], [up], [enterExit], [move]) -> canvasObject | current values |
|---|---|
| Тип | Метод |
| Описание |
Получить или установить, нужно ли обрабатывать события мыши для областей холста, не покрытых элементами с включённым отслеживанием мыши. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 2777 |
clickActivating
| Подпись | hs.canvas:clickActivating([flag]) -> canvasObject | currentValue |
|---|---|
| Тип | Метод |
| Описание |
Получить или установить, нужно ли при нажатии на холст с определённым обратным вызовом отклика, переводить все открытые окна Hammerspoon вперёд. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 2742 |
copy
| Подпись | hs.canvas:copy() -> canvasObject |
|---|---|
| Тип | Метод |
| Описание |
Создаёт копию холста. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/canvas.lua строка 431 |
delete
| Подпись | hs.canvas:delete([fadeOutTime]) -> none |
|---|---|
| Тип | Метод |
| Описание |
Удаляет объект холста, предварительно, при необходимости, затухая (если он в данный момент видим). |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 3170 |
draggingCallback
| Подпись | hs.canvas:draggingCallback(fn) -> canvasObject |
|---|---|
| Тип | Метод |
| Описание |
Устанавливает или удаляет обратный вызов для принятия перетаскивания и выгрузки элементов на холст. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 2428 |
elementAttribute
| Подпись | hs.canvas:elementAttribute(index, key, [value]) -> canvasObject | current value |
|---|---|
| Тип | Метод |
| Описание |
Получить или установить атрибут |
| Параметры |
|
| Возвращаемое значение |
|
| Источник | extensions/canvas/libcanvas.m строка 3411 |
elementBounds
| Подпись | hs.canvas:elementBounds(index) -> rectTable |
|---|---|
| Тип | Метод |
| Описание |
Возвращает наименьший прямоугольник, который может полностью содержать элемент холста по указанному индексу. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 3612 |
elementCount
| Signature | hs.canvas:elementCount() -> integer |
|---|---|
| Type | Method |
| Description |
Возвращает количество элементов, в настоящее время определенных для объекта холста. |
| Parameters |
|
| Returns |
|
| Source | extensions/canvas/libcanvas.m строка 3516 |
elementKeys
| Signature | hs.canvas:elementKeys(index, [optional]) -> table |
|---|---|
| Type | Method |
| Description |
Возвращает список имён ключей для атрибутов, установленных для элемента холста по указанному индексу. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/canvas/libcanvas.m строка 3475 |
frame
| Signature | hs.canvas:frame([rect]) -> canvasObject | currentValue |
|---|---|
| Type | Method |
| Description |
Получить или установить рамку объекта холста. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/canvas/canvas.lua строка 247 |
hide
| Signature | hs.canvas:hide([fadeOutTime]) -> canvasObject |
|---|---|
| Type | Method |
| Description |
Скрывает объект холста |
| Parameters |
|
| Returns |
|
| Source | extensions/canvas/libcanvas.m строка 2655 |
imageFromCanvas
| Signature | hs.canvas:imageFromCanvas() -> hs.image object |
|---|---|
| Type | Method |
| Description |
Возвращает изображение содержимого холста в виде объекта |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/canvas/libcanvas.m строка 2867 |
insertElement
| Signature | hs.canvas:insertElement(elementTable, [index]) -> canvasObject |
|---|---|
| Type | Method |
| Description |
Вставляет новый элемент на холст по указанному индексу. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/canvas/libcanvas.m строка 3329 |
isOccluded
| Signature | hs.canvas:isOccluded() -> boolean |
|---|---|
| Type | Method |
| Description |
Возвращает, является ли холст в данный момент скрытым (скрыт другими окнами, за пределами экрана и т. д.). |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/canvas/libcanvas.m строка 3242 |
isShowing
| Signature | hs.canvas:isShowing() -> boolean |
|---|---|
| Type | Method |
| Description |
Возвращает, отображается ли холст в данный момент. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/canvas/libcanvas.m строка 3214 |
isVisible
| Signature | hs.canvas:isVisible() -> boolean |
|---|---|
| Type | Method |
| Description |
Возвращает, отображается ли холст в данный момент и (по крайней мере частично) виден на экране. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/canvas/canvas.lua строка 333 |
level
| Signature | hs.canvas:level([level]) -> canvasObject | currentValue |
|---|---|
| Type | Method |
| Description |
Устанавливает уровень окна более точно, чем sendToBack и bringToFront. |
| Parameters |
|
| Returns |
|
| Source | extensions/canvas/libcanvas.m строка 3055 |
minimumTextSize
| Подпись | hs.canvas:minimumTextSize([index], text) -> table |
|---|---|
| Тип | Метод |
| Описание |
Возвращает таблицу, определяющую размер прямоугольника, который может полностью отобразить текст с указанным стилем, чтобы он был полностью виден. |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 2510 |
mouseCallback
| Подпись | hs.canvas:mouseCallback(mouseCallbackFn) -> canvasObject |
|---|---|
| Тип | Метод |
| Описание |
Устанавливает обработчик событий мыши относительно холста |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 2691 |
orderAbove
| Подпись | hs.canvas:orderAbove([canvas2]) -> canvasObject |
|---|---|
| Тип | Метод |
| Описание |
Перемещает объект холста над canvas2 или все объекты холста на том же уровне представления, если canvas2 не задан. |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 3023 |
orderBelow
| Подпись | hs.canvas:orderBelow([canvas2]) -> canvasObject |
|---|---|
| Тип | Метод |
| Описание |
Перемещает объект холста под canvas2 или все объекты холста на том же уровне представления, если canvas2 не задан. |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 3039 |
removeElement
| Подпись | hs.canvas:removeElement([index]) -> canvasObject |
|---|---|
| Тип | Метод |
| Описание |
Вставляет новый элемент в холст в указанный индекс. |
| Параметры |
|
| Возвращает |
|
| Источник | extensions/canvas/libcanvas.m строка 3378 |
replaceElements
| Подпись | hs.canvas:replaceElements(element...) -> canvasObject |
|---|---|
| Тип | Метод |
| Описание |
Заменяет все элементы в холсте указанными элементами. Укорачивает или удлиняет количество элементов холста, если это необходимо, чтобы вместить новые элементы холста. |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Источник | extensions/canvas/canvas.lua строка 367 |
rotateElement
| Подпись | hs.canvas:rotateElement(index, angle, [point], [append]) -> canvasObject |
|---|---|
| Тип | Метод |
| Описание |
Поворачивает элемент вокруг заданной точки или центра элемента, если точка не указана. |
| Параметры |
|
| Возвращает |
|
| Примечания |
|
| Источник | extensions/canvas/canvas.lua строка 387 |
sendToBack
| Подпись | hs.canvas:sendToBack() -> canvasObject |
|---|---|
| Тип | Метод |
| Описание |
Размещает объект холста позади обычных окон, между обоями рабочего стола и значками на рабочем столе |
| Параметры |
|
| Возвращаемое значение |
|
| Источник | extensions/canvas/canvas.lua строка 314 |
show
| Подпись | hs.canvas:show([fadeInTime]) -> canvasObject |
|---|---|
| Тип | Метод |
| Описание |
Отображает объект холста |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 2617 |
size
| Подпись | hs.canvas:size([size]) -> canvasObject | currentValue |
|---|---|
| Тип | Метод |
| Описание |
Получение или установка размера объекта холста |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 2892 |
topLeft
| Подпись | hs.canvas:topLeft([point]) -> canvasObject | currentValue |
|---|---|
| Тип | Метод |
| Описание |
Получение или установка координаты верхнего левого угла объекта холста |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 2830 |
transformation
| Подпись | hs.canvas:transformation([matrix]) -> canvasObject | current value |
|---|---|
| Тип | Метод |
| Описание |
Получение или установка матричной трансформации, которая применяется ко всем элементам на холсте перед их индивидуальной обработкой и добавлением на холст. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 2588 |
wantsLayer
| Подпись | hs.canvas:wantsLayer([flag]) -> canvasObject | currentValue |
|---|---|
| Тип | Метод |
| Описание |
Получение или установка значения, определяющего, должен ли объект холста отрисовываться представлением или с помощью Core Animation. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/canvas/libcanvas.m строка 3105 |
© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.canvas.html