Spec-Zone.ru › Hammerspoon

hs.canvas

Другой подход к рисованию в Hammerspoon

hs.drawing подходы к графическим изображениям как независимым примитивам, каждая "фигура" является отдельным объектом рисования на основе основных примитивов: эллипс, прямоугольник, точка, линия, текст и т. д. Эта модель хорошо работает с графическими элементами, которые, как ожидается, будут управляться индивидуально и не будут иметь сложных взаимодействий с обрезкой, но не масштабируется хорошо, когда требуется перемещать или манипулировать более сложными комбинациями или группами элементов рисования как группой, и допускает только простые области обрезки включения.

Этот модуль работает, назначая холст, а затем назначая серию графических примитивов холсту. В этот список заданий входят правила о том, как отдельные элементы взаимодействуют друг с другом на холсте (правила композиции и обрезки), и непосредственная модификация самого холста (перемещение, изменение размера и т. д.) приводит к тому, что все назначенные элементы корректируются как группа.

Элементы холста определены в массиве, и каждое значение массива является таблицей пар ключ-значение, описывающих элемент в этом положении. Элементы рендерятся в порядке их назначения массиву (т. е. элемент 1 рисуется перед элементом 2 и т. д.).

Атрибуты для элементов холста определены в hs.canvas.attributes. Все элементы холста требуют поля type; все остальные атрибуты имеют значения по умолчанию. Поля, необходимые для правильного определения элемента (например, frame для типа элемента rectangle), будут скопированы в определение элемента со значениями по умолчанию, если они не указаны во время создания. Необязательные атрибуты будут назначены только в определении элемента, если они указаны. Когда модуль требует значения атрибута элемента, он сначала проверяет само определение элемента, затем ищет значения по умолчанию в значениях по умолчанию холста, а затем, наконец, в значениях по умолчанию модуля (указанных в описаниях ниже).

Некоторые примеры использования этого модуля можно найти по адресу https://github.com/asmagill/hammerspoon/wiki/hs.canvas.examples

Подмодули

  • hs.canvas.matrix

Обзор API

  • Константы - полезные значения, которые нельзя изменить
    • compositeTypes
    • windowBehaviors
    • windowLevels
  • Функции - вызовы API, непосредственно предоставляемые расширением
    • defaultTextStyle
    • elementSpec
    • help
    • useCustomAccessibilitySubrole
  • Конструкторы - вызовы API, которые возвращают объект, обычно объект, предоставляющий методы API
    • new
  • Поля - переменные, к которым можно получить доступ только из объекта, возвращаемого конструктором
    • attributes
    • object
    • percentages
  • Методы - вызовы 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

Примечания
  • Эти имена ключей соответствуют константам, используемым в CoreGraphics для указания уровней окон, и могут фактически не использоваться для того, что предполагает название. Например, тесты показывают, что активный экранный сберегатель фактически работает на уровне 2002, а не на 1000, который соответствует уровню окна kCGScreenSaverWindowLevelKey.

  • Каждый уровень окна сортируется отдельно, и hs.canvas:orderAbove и hs.canvas:orderBelow упорядочивают только окна в рамках одного уровня.

  • Если вы используете скрытие панели задач (или в 10.11, скрытие меню), обратите внимание, что при раскрытии панели задач (или главного меню) это выполняется с неявным orderAbove, который поместит его выше любых элементов, которые вы также можете нарисовать на уровне панели задач (или главного меню).

  • Объект холста с функцией hs.canvas:draggingCallback может принимать элементы перетаскивания только в том случае, если его уровень окна равен или ниже hs.canvas.windowLevels.dragging.

  • Объект холста с функцией hs.canvas:mouseCallback может надежно получать события щелчка мыши, только если его уровень окна равен или выше hs.canvas.windowLevels.desktopIcon + 1.

Источник extensions/canvas/libcanvas.m строка 3816

Функции

defaultTextStyle
Подпись hs.canvas.defaultTextStyle() -> hs.styledtext attributes table
Тип Функция
Описание

Возвращает таблицу, содержащую шрифт, размер, цвет и paragraphStyle по умолчанию, используемые hs.canvas для объектов рисования текста.

Параметры
  • Нет
Возвращает
  • таблица, содержащая атрибуты стиля по умолчанию, которые hs.canvas использует для объектов рисования текста в формате таблицы атрибутов hs.styledtext.
Примечания
  • Этот метод предназначен для совместного использования с hs.styledtext для создания объектов styledtext, которые основаны на значениях по умолчанию или являются незначительным их вариантом, используемым hs.canvas.
Источник extensions/canvas/libcanvas.m строка 2395
elementSpec
Подпись hs.canvas.elementSpec() -> table
Тип Функция
Описание

Возвращает список атрибутов и их спецификаций, которые распознаются для элементов холста этим модулем.

Параметры
  • Нет
Возвращает
  • Таблица, содержащая атрибуты и спецификации, определенные для этого модуля.
Примечания
  • Это в первую очередь для отладки и может быть удалено в будущем.
Источник extensions/canvas/libcanvas.m строка 2376
help
Подпись hs.canvas.help([attribute]) -> string
Тип Функция
Описание

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

Параметры
  • attribute - необязательная строка, определяющая атрибут элемента. Если этот аргумент не указан, перечисляются все атрибуты.
Возвращает
  • строка, содержащая некоторую информацию, предоставляемую hs.canvas.elementSpec, удобным для ссылки из консоли Hammerspoon.
Источник extensions/canvas/canvas.lua строка 716
END_OF_DOCUMENT_MARKER
useCustomAccessibilitySubrole
Подпись hs.canvas.useCustomAccessibilitySubrole([state]) -> boolean
Тип Функция
Описание

Получить или установить, используют ли объекты холста пользовательский подроль доступности для содержащего системного окна.

Параметры
  • state — необязательный булево значение, по умолчанию true, указывающее, должны ли контейнеры холста использовать пользовательский подроль доступности.
Возвращаемое значение
  • текущее, возможно изменённое, значение в виде булева типа
Примечания
  • В некоторых условиях было отмечено, что модуль hs.window.filter Hammerspoon неправильно идентифицирует объекты Canvas и Drawing как окна приложения Hammerspoon, которые он должен учитывать при оценке своих фильтров. Чтобы устранить это, объекты hs.canvas (и ранее объекты hs.drawing, которые теперь устарели и передаются в hs.canvas) были присвоены нестандартный подроль доступности, чтобы предотвратить их включение. Это вызвало некоторые проблемы с инструментами сторонних разработчиков, такими как Yabai, которые также используют подроли доступности для определения действий, которые могут быть выполнены с окнами Hammerspoon.

  • Передавая false в эту функцию, все объекты холста вернутся к указанию стандартного подроля для содержащих окон по умолчанию и должны работать как ожидается с инструментами сторонних разработчиков. Обратите внимание, что это может вызвать проблемы или задержки, если вы также используете hs.window.filter; рассматривается более постоянное решение.

  • Если вам нужно более точно управлять подролем объектов холста или только для некоторых объектов холста, см. hs.canvas:_accessibilitySubrole.

Источник extensions/canvas/libcanvas.m строка 2316

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

new
Подпись hs.canvas.new(rect) -> canvasObject
Тип Конструктор
Описание

Создать новый объект холста в заданных координатах

Параметры
  • rect — таблица rect, содержащая координаты и размер для объекта холста
Возвращаемое значение
  • новый, пустой, объект холста или nil, если холст не может быть создан с заданными координатами
Примечания
  • Размер холста определяет видимую область холста — любая часть элемента холста, которая выходит за пределы холста, будет обрезана.
  • Таблица rect — это таблица с парами ключ-значение, определяющими координаты верхнего левого угла на экране для холста (ключи x и y) и размер (ключи h и w) холста. Таблица может быть создана любым методом, включающим эти ключи, включая использование объекта hs.geometry.
Источник extensions/canvas/libcanvas.m строка 2343

Поля

attributes
Подпись hs.canvas.attributes
Тип Поле
Описание

Атрибуты элемента холста

Примечания
  • type — указывает тип элемента холста, который представляет таблица. Этот атрибут не имеет значения по умолчанию и должен быть указан для каждого элемента в массиве холста. Допустимые строки типов:

    • arc — дуга, вписанная в окружность, определенная radius, center, startAngle и endAngle.
    • canvas — независимый объект холста, отображаемый как элемент в заданной рамке. Определяется canvas и frame.
    • circle — окружность, определенная radius и center.
    • ellipticalArc — дуга, вписанная в овал, определенная frame, startAngle и endAngle.
    • image — изображение, определенное одним из конструкторов hs.image.
    • oval — овал, определенный frame
    • points — список точек, определенных в coordinates.
    • rectangle — прямоугольник, необязательно с закругленными углами, определенный frame.
    • resetClip — специальный тип — указывает, что текущая форма обрезки должна быть сброшена на значение по умолчанию для холста (вся область холста). См. Clipping Example. Все остальные атрибуты, кроме action игнорируются.
    • segments — список отрезков прямых или кривых Безье с контрольными точками, определенных в coordinates.
    • text — строка или объект hs.styledtext, определенные text и frame.
  • Ниже приведен список всех допустимых атрибутов. Не все атрибуты применимы ко всем типам, но вы можете их задать для любого типа.

    • action - Значение по умолчанию strokeAndFill. Строка, определяющая действие, которое должно быть выполнено для элемента в массиве. Различаются следующие действия:
      • clip - добавить фигуру к текущей области обрезки для холста. Игнорируется для типов canvas, image и text.
      • build - не отрисовывать элемент — его форма сохраняется, а следующий элемент в массиве холста добавляется к нему. Это можно использовать для создания сложных форм или областей обрезки. Параметры обводки и заливки для сложного объекта, созданного таким образом, будут такими же, как у конечного объекта группы. Игнорируется для типов canvas, image и text.
      • fill - заполнить элемент холста, если это фигура, или отобразить его нормально, если это canvas, image или text. Игнорируется для resetClip.
      • skip - пропустить этот элемент или его эффекты. Может использоваться для временного "удаления" объекта с холста.
      • stroke - обвести (контур) элемент холста, если это фигура, или отобразить его нормально, если это canvas, image или text. Игнорируется для resetClip.
      • strokeAndFill - обвести и заполнить элемент холста, если это фигура, или отобразить его нормально, если это canvas, image или text. Игнорируется для resetClip.
    • absolutePosition - Значение по умолчанию true. Если ложь, числовые атрибуты местоположения и размера (frame, center, radius и coordinates) будут автоматически скорректированы при изменении размера холста с помощью hs.canvas:size или hs.canvas:frame, чтобы элемент оставался в том же относительном положении на холсте.
    • absoluteSize - Значение по умолчанию true. Если ложь, числовые атрибуты местоположения и размера (frame, center, radius и coordinates) будут автоматически скорректированы при изменении размера холста с помощью hs.canvas:size или hs.canvas:frame, чтобы элемент сохранял тот же относительный размер на холсте.
    • antialias - Значение по умолчанию true. Указывает, включена ли антиалиасинг для элемента.
    • arcRadii - Значение по умолчанию true. Используется типами arc и ellipticalArc для указания того, следует ли включать в видимую часть элемента отрезки прямых от центра элемента к начальному и конечному углам. Это влияет на то, будет ли обводка объекта секцией круга или дугой с хордой от начального до конечного угла.
    • arcClockwise - Значение по умолчанию true. Используется типами arc и ellipticalArc для указания, должна ли дуга быть нарисована от начального до конечного угла по часовой стрелке (true) или против часовой стрелки (false).
    • canvas - По умолчанию nil. Отдельный объект холста, который должен отображаться как элемент на этом холсте. Объект не должен в данный момент принадлежать видимому окну. Присвойте nil этому свойству, чтобы освободить ранее назначенный объект для использования в другом месте как элемента или самостоятельно.
    • canvasAlpha - Значение по умолчанию 1.0. Указывает значение альфа-канала, применяемое к независимому элементу холста.
    • compositeRule - Строка, по умолчанию "sourceOver", определяющая, как этот элемент должен комбинироваться с более ранними элементами холста. См. hs.canvas.compositeTypes для списка допустимых строк и их описаний.
    • center - Значение по умолчанию { x = "50%", y = "50%" }. Используется типами circle и arc для указания центра элемента холста. Поля x и y могут быть заданы как числами, так и строками. При указании в виде строки значение интерпретируется как процент размера холста. См. раздел проценты для получения дополнительной информации.
    • clipToPath - Значение по умолчанию false. Указывает, должны ли области обрезки временно ограничиваться формой элемента при отрисовке этого элемента или нет. Это может использоваться для получения более четких краев, как в случае с hs.drawing, но уменьшает гранулярность ширины обводки для ширин меньше 1,0 и вызывает случайное "отсутствие" линий с типом элемента segments. Игнорируется для типов canvas, image, point и text.
    • closed - Значение по умолчанию false. Используется типом segments для указания, должна ли фигура, определяемая линиями и кривыми, быть замкнутой (true) или открытой (false). Когда объект замкнут, неявно рисуется линия от конечной точки до начальной точки указанных координат.
    • coordinates - Массив, содержащий координаты, используемые типами segments и points для определения линий, кривых или точек, образующих элемент холста. Различаются следующие ключи, которые могут быть заданы как числами, так и строками (см. раздел проценты):
      • x - обязательный для segments и points, определяющий координату x точки.
      • y - обязательный для segments и points, определяющий координату y точки.
      • c1x - необязательный для segments, specifying the x coordinate of the first control point used to draw a bezier curve between this point and the previous point. Ignored forмассива координатand if present in the first coordinate in the.
      • c1y - необязательный для segments, specifying the y coordinate of the first control point used to draw a bezier curve between this point and the previous point. Ignored forмассива координатand if present in the first coordinate in the.
      • c2x - необязательный для segments, specifying the x coordinate of the second control point used to draw a bezier curve between this point and the previous point. Ignored forмассива координатand if present in the first coordinate in the.
      • c2y - необязательный для segments, specifying the y coordinate of the second control point used to draw a bezier curve between this point and the previous point. Ignored forмассива координатand if present in the first coordinate in the.
    • endAngle - Значение по умолчанию 360.0. Используется типами arc и ellipticalArc для указания конечной позиции угла для вписанной дуги.
    • fillColor - Значение по умолчанию { red = 1.0 }. Указывает цвет, используемый для заполнения элемента холста, когда action установлено в fill или strokeAndFill, а fillGradient равно none. Игнорируется для типов canvas, image, points и text.
    • fillGradient - Значение по умолчанию "none". Строка, определяющая, должен ли использоваться градиент заливки вместо цвета заливки, когда действие равно fill или strokeAndFill. Может быть "none", "linear" или "radial".
    • fillGradientAngle - Значение по умолчанию 0,0. Указывает направление линейного градиента, когда fillGradient является линейным.
    • fillGradientCenter - Значение по умолчанию { x = 0.0, y = 0.0 }. Указывает относительную центральную точку внутри границ элемента радиального градиента, когда fillGradient равно radial. Поля x и y должны быть в диапазоне от -1,0 до 1,0 включительно.
    • fillGradientColors - Значение по умолчанию { { white = 0.0 }, { white = 1.0 } }. Указывает цвета, используемые для градиента, когда fillGradient не равно none. Вы должны указать как минимум два цвета, каждый из которых должен быть преобразуем в цветовое пространство RGB (т.е. они не могут быть изображением, используемым в качестве цветового узора). Градиент будет плавно переходить от первого цвета ко второму и так далее до последнего цвета. Если указано более двух цветов, то «цветовые остановки» будут размещены в равномерно распределенных интервалах внутри элемента.
    • flatness - Значение по умолчанию 0.6. Число, которое определяет точность (или плавность) отрисовки кривых. Также является максимальной допустимой ошибкой (измеряемой в пикселях) при отрисовке кривых, где меньшие значения обеспечивают более плавные кривые за счёт большей вычислительной сложности.
    • flattenPath - Значение по умолчанию false. Указывает, следует ли преобразовывать криволинейные отрезки в приближения прямых отрезков. Гранулярность приближений управляется текущим значением плоской кривизны траектории.
    • frame - Значение по умолчанию { x = "0%", y = "0%", h = "100%", w = "100%" }. Используется типами rectangle, oval, ellipticalArc, text, canvas и image для указания положения и размера элемента. Если значения ключей для x, y, h или w заданы строкой, то значение интерпретируется как процент размера холста. См. раздел проценты для получения дополнительной информации.
    • id - Необязательная строка или число, включённые в обратные вызовы мыши для идентификации элемента, который был целью события мыши. Если это не указано для элемента, используется его индексная позиция.
    • image - По умолчанию пустое изображение. Используется типом image для указания объекта hs.image для отображения в виде изображения.
    • imageAlpha - Значение по умолчанию 1.0. Число от 0,0 до 1,0, определяющее значение альфа-канала, применяемое к изображению, указанному в image. Обратите внимание, что если изображение является шаблоном изображения, то этот атрибут по умолчанию будет равен 0.5, если явно не установлен для элемента.
    • imageAlignment - Значение по умолчанию "center". Строка, определяющая выравнивание изображения внутри рамки элемента холста. Допустимые значения для этого атрибута — "center", "bottom", "topLeft", "bottomLeft", "bottomRight", "left", "right", "top" и "topRight".
    • imageAnimationFrame - Значение по умолчанию 0. Целое число, определяющее кадр изображения для отображения, когда изображение взято из анимированного GIF. Этот атрибут игнорируется для других типов изображений. Может быть задано как отрицательное целое число, указывающее, что кадр изображения должен быть рассчитан с последнего кадра и вычислен в обратном порядке (например, указание -1 выбирает последний кадр для GIF).
    • imageAnimates - Значение по умолчанию false. Булево значение, указывающее, должен ли анимированный GIF анимироваться или отображаться только один кадр. Игнорируется для других типов изображений.
    • imageScaling - Значение по умолчанию "scaleProportionally". Строка, определяющая, как изображение должно быть масштабировано в пределах рамки элемента холста. Допустимые значения для этого атрибута:
      • scaleToFit - уменьшить изображение, сохраняя соотношение сторон, чтобы оно поместилось в рамку рисунка только в том случае, если изображение больше рамки рисунка.
      • shrinkToFit - уменьшить или увеличить изображение, чтобы оно полностью заполнило рамку рисунка. Соотношение сторон не сохраняется.
      • none - не выполнять масштабирования или изменения размера изображения.
      • scaleProportionally - уменьшить или увеличить изображение, чтобы оно полностью заполнило рамку рисунка, сохраняя соотношение сторон.
    • miterLimit - Значение по умолчанию 10.0. Предел, при котором скругленные соединения преобразуются в скошенные, когда strokeJoinStyle является miter. Предел скругления помогает избежать острых углов на стыке двух отрезков линий. Если отношение длины скругления (диагональной длины скругления) к толщине линии превышает предел скругления, соединение преобразуется в скошенное. Игнорируется для типов canvas, text и image.
    • padding - Значение по умолчанию 0.0. Когда элемент указывает информацию о позиции в процентах (т.е. в виде строки), фактическая рамка, используемая для вычисления значений позиции, смещена от рамки холста по всем сторонам на это значение. Если вы используете тени со своими элементами, положение тени не включается в указание размера и позиции элемента; этот атрибут можно использовать для создания дополнительного пространства, чтобы тень полностью отображалась в пределах холста.
    • radius - Значение по умолчанию "50%". Используется типами arc и circle для определения радиуса окружности для элемента. Может быть указано как строкой, так и числом. При указании в виде строки значение рассматривается как процент размера холста. Подробнее см. раздел о процентах.
    • reversePath - Значение по умолчанию false. Указывает направление рисования для элемента холста. По умолчанию элементы холста рисуются от точки, ближайшей к началу координат (верхний левый угол), по часовой стрелке. Установка этого значения в true заставляет элемент рисоваться против часовой стрелки. Это в основном повлияет на шаблоны заливки и обводки штрихов, но также может использоваться с областями обрезки для создания вырезов. Игнорируется для типов canvas, image и text.
    • roundedRectRadii - Значение по умолчанию { xRadius = 0.0, yRadius = 0.0 }.
    • shadow - Значение по умолчанию { blurRadius = 5.0, color = { alpha = 1/3 }, offset = { h = -5.0, w = 5.0 } }. Указывает размытие тени, цвет и смещение, которые добавляются к элементу, у которого withShadow установлено в true.
    • startAngle - Значение по умолчанию 0.0. Используется типами arc и ellipticalArc для указания начальной позиции угла для вписанной дуги.
    • strokeCapStyle - Значение по умолчанию "butt". Строка, которая определяет форму конечных точек открытой траектории при обводке. В первую очередь заметно для линий, отрисованных с типом segments. Допустимые значения для этого атрибута — "butt", "round" и "square".
    • strokeColor - Значение по умолчанию { white = 0 }. Указывает цвет обводки (контура) элемента холста, когда действие установлено на stroke или strokeAndFill. Игнорируется для типов canvas, text и image.
    • strokeDashPattern - Значение по умолчанию {}. Указывает массив чисел, определяющих шаблон штриховки для линий при обводке, когда атрибут action элемента установлен на stroke или strokeAndFill. Числа в массиве чередуются: первое число определяет длину штриха в пунктах, второе — длину пробела в пунктах, третье — длину штриха и т. д. Массив повторяется для полной обводки элемента. Игнорируется для типов canvas, image и text.
    • strokeDashPhase - Значение по умолчанию 0.0. Указывает смещение в пунктах, с которого должен начинаться шаблон штриховки, определенный в strokeDashPattern. Игнорируется для типов canvas, image и text.
    • strokeJoinStyle - Значение по умолчанию "miter". Строка, определяющая форму соединений между соединенными сегментами обведенной траектории. Допустимые значения для этого атрибута — "miter", "round" и "bevel". Игнорируется для типов элементов canvas, image и text.
    • strokeWidth - Значение по умолчанию 1.0. Указывает ширину линий обводки, когда действие элемента установлено на stroke или strokeAndFill. Игнорируется для типов элементов canvas, image и text.
    • text - Значение по умолчанию "". Указывает текст для отображения для элемента text. Может быть указан как строкой, так и объектом hs.styledtext.
    • textAlignment - Значение по умолчанию natural. Строка, определяющая выравнивание текста в элементе холста типа text. Это поле игнорируется, если текст указан как объект hs.styledtext. Допустимые значения для этого атрибута:
      • left - текст визуально выровнен слева.
      • right - текст визуально выровнен справа.
      • center - текст визуально выровнен по центру.
      • justified - текст выровнен по ширине.
      • natural - естественное выравнивание шрифта текста.
    • textColor - Значение по умолчанию { white = 1.0 }. Указывает цвет, используемый при отображении типа элемента text, если текст задан как строка. Это поле игнорируется, если текст указан как объект hs.styledtext.
    • textFont - По умолчанию шрифт системы. Строка, определяющая имя шрифта, который следует использовать при отображении типа элемента text, если текст задан как строка. Это поле игнорируется, если текст указан как объект hs.styledtext.
    • textLineBreak - Значение по умолчанию wordWrap. Строка, определяющая, как переносить текст, выходящий за рамки элемента холста для элемента типа text. Это поле игнорируется, если текст указан как объект hs.styledtext. Допустимые значения для этого атрибута:
      • wordWrap - переносить по границам слов, если слово само не помещается на одной строке.
      • charWrap - переносить перед первой буквой, которая не помещается.
      • clip - не рисовать за границей рамки рисунка объекта.
      • truncateHead - строка отображается так, что конец помещается в рамку, а отсутствующий текст в начале строки указывается многоточием.
      • truncateTail - строка отображается так, что начало помещается в рамку, а отсутствующий текст в конце строки указывается многоточием.
      • truncateMiddle - строка отображается так, что начало и конец помещаются в рамку, а отсутствующий текст посередине указывается многоточием.
    • textSize - Значение по умолчанию 27.0. Указывает размер шрифта для отображения типа элемента text, если текст задан как строка. Это поле игнорируется, если текст указан как объект hs.styledtext.
    • trackMouseByBounds - Значение по умолчанию false. Если true, события мыши основаны на границах элемента (наименьший прямоугольник, который полностью содержит элемент); в противном случае события мыши основаны на видимой части элемента холста.
    • trackMouseEnterExit - Значение по умолчанию false. Создает обратный вызов при входе или выходе курсора мыши в элемент холста. Для типов canvas и text границы области отслеживания определяются frame элемента.
    • trackMouseDown - Значение по умолчанию false. Создаёт обратный вызов при нажатии кнопки мыши, когда курсор находится внутри элемента холста. Для типов canvas и text границы области отслеживания определяются frame элемента.
    • trackMouseUp - Значение по умолчанию false. Создает обратный вызов при отпускании кнопки мыши, когда курсор находится внутри элемента холста. Для типов canvas и text границы области отслеживания определяются frame элемента.
    • trackMouseMove - Значение по умолчанию false. Создает обратный вызов при движении курсора мыши внутри элемента холста. Для типов canvas и text границы области отслеживания определяются frame элемента.
    • transformation - Значение по умолчанию { m11 = 1.0, m12 = 0.0, m21 = 0.0, m22 = 1.0, tX = 0.0, tY = 0.0 }. Указывает матричное преобразование, которое следует применить к элементу перед отображением. Преобразования могут включать вращение, перемещение, масштабирование, наклон и т. д.
    • windingRule - Значение по умолчанию "nonZero". Строка, определяющая правило обхода для элемента холста. Может быть "nonZero" или "evenOdd". Правило обхода определяет, какие части элемента нужно заполнить. Эта настройка повлияет только на составные элементы (созданные с помощью действия build) или элементы типа segments, когда объект состоит из пересекающихся линий.
    • withShadow - Значение по умолчанию false. Указывает, следует ли применять эффект тени к элементу холста. Игнорируется для типа text.
Источник 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 } }

Вы можете изменить атрибуты элемента холста таким же образом: a[2].fillColor.alpha = .5 изменит значение альфа-канала для элемента 2 холста, не изменяя другие поля цвета. Чтобы полностью заменить цвет, присвойте его так: a[2].fillColor = { white = .5, alpha = .25 }

Значения по умолчанию холста также доступны с помощью поля _default следующим образом: a._default.strokeWidth = 5.

Атрибуты, для которых в качестве атрибута id указана строка, также могут быть доступны так, как будто id был key в таблице-подобном холсте: например, a.part2.action = "skip"

Важно отметить, что эти методы являются удобством, и объект холста не является настоящей таблицей. Таблицы генерируются динамически по мере необходимости; поэтому hs.inspect не может их должным образом отобразить; однако вы можете просто ввести желаемый элемент или атрибут элемента в консоль Hammerspoon (или в команде print), чтобы увидеть присвоенные атрибуты, например a[1] или a[2].fillColor, и будет предоставлен вывод в стиле инспектора.

Атрибуты, которые позволяют использовать строку для указания процента (см. проценты), также могут быть извлечены как фактическое число для текущего размера холста путем добавления _raw к имени атрибута, например, a[2].frame_raw.

Поскольку объект холста на самом деле является Lua userdata, а не реальной таблицей, вы не можете использовать функции table.insert и a[#a] = nil на нём. Для вставки или удаления элемента в любой позиции, кроме конца холста, необходимо по-прежнему использовать hs.canvas:insertElement и hs.canvas:removeElement.

Однако вы можете удалить последний элемент с помощью a[#a] = nil.

Чтобы вывести все элементы на холсте: for i, v in ipairs(a) do print(v) end. Итератор pairs также будет работать и будет работать с дочерними таблицами элементов (преобразования, fillColor и strokeColor и т. д.), но этот итератор не гарантирует порядок.

Источник extensions/canvas/canvas.lua строка 603
проценты
Подпись hs.canvas.percentages
Тип Поле
Описание

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

Примечания

Проценты могут быть присвоены следующим атрибутам:

  • frame - рамка, используемая для типов rectangle, oval, ellipticalArc, text и image. Поля x и w будут процентом от ширины холста, а поля y и h будут процентом от высоты холста.
  • center - центральная точка для типов circle и arc. Поле x будет процентом от ширины холста, а поле y будет процентом от высоты холста.
  • radius - радиус для типов circle и arc. Радиус будет процентом от ширины холста.
  • coordinates - координаты точек, используемые типами segments и points. Координаты X (поля x, c1x и c2x) будут процентом от ширины холста, а координаты Y (поля y, c1y и c2y) будут процентом от высоты холста.

Проценты присваиваются этим полям в виде строки. Если число в строке заканчивается знаком процента (%), то процент - это целое число, которое предшествует знаку процента. Если знак процента отсутствует, то ожидается процент в десятичном формате (например, "1.0" равно "100%").

Поскольку тень, применённая к элементу холста, не учитывается в пределах элемента, вы также можете установить атрибут padding на положительное число точек, чтобы отступ рассчитываемых значений составлял значение от каждого края рамки холста, так что тень будет полностью видна внутри холста, даже когда элемент имеет ширину и высоту "100%".

Источник extensions/canvas/canvas.lua строка 734

Методы

_accessibilitySubrole
Подпись hs.canvas:_accessibilitySubrole([subrole]) -> canvasObject | current value
Тип Метод
Описание

Получение или установка подроли доступности, возвращаемой объектами hs.canvas.

Параметры
  • subrole - необязательная строка или явное nil, указывающие значение подроли доступности, которое должно возвращаться при запросе объектов холста через фреймворк доступности macOS. См. Примечания для обсуждения того, как интерпретируется это значение. По умолчанию nil.
Возвращаемое значение
  • Если аргумент указан, возвращается canvasObject; в противном случае возвращается текущее значение.
Примечания
  • Большинству пользователей, вероятно, не потребуется использовать этот метод. См. hs.canvas.useCustomAccessibilitySubrole для обсуждения того, почему этот метод может быть полезен, когда Hammerspoon управляется через фреймворк доступности другими приложениями.

  • Если в качестве аргумента этому методу передаётся непустая строка, строка будет возвращена всякий раз, когда окно, содержащее объект холста, запрашивается для своей подроли доступности.

  • Другие возможные значения зависят от значения, зарегистрированного в hs.canvas.useCustomAccessibilitySubrole:

    • Если useCustomAccessibilitySubrole установлено в true (по умолчанию):
      • Если для этого метода указано явное nil (по умолчанию), строка, возвращаемая при запросе доступности объекта холста, будет стандартной подролью macOS для окна холста со строкой ".Hammerspoon` добавленной к ней.
      • Если указана пустая строка (например, ""), то возвращается стандартная подроль macOS для окна холста.
    • Если useCustomAccessibilitySubrole установлено в false:
      • Если для этого метода указано явное nil (по умолчанию), то возвращается стандартная подроль macOS для окна холста.
      • Если указана пустая строка (например, ""), строка, возвращаемая при запросе доступности объекта холста, будет стандартной подролью macOS для окна холста со строкой ".Hammerspoon` добавленной к ней.
Источник extensions/canvas/libcanvas.m строка 2474
alpha
Подпись hs.canvas:alpha([alpha]) -> canvasObject | currentValue
Тип Метод
Описание

Получение или установка уровня альфа-канала окна, содержащего canvasObject.

Параметры
  • alpha - необязательное число, определяющее новое значение альфа-канала (0,0 - 1,0 включительно) для canvasObject
Возвращаемое значение
  • Если предоставлен аргумент, возвращается объект холста; в противном случае - текущее значение.
Источник extensions/canvas/libcanvas.m строка 2986
appendElements
Подпись hs.canvas:appendElements(element...) -> canvasObject
Тип Метод
Описание

Добавляет указанные элементы в холст.

Параметры
  • element - таблица, содержащая пары ключ-значение, определяющие элемент, который нужно добавить в холст. Вы можете указать один или несколько элементов, и они будут добавлены в порядке их перечисления.
Возвращаемое значение
  • объект холста
Примечания
  • Вы также можете указать несколько элементов в таблице как массив, где каждый индекс в таблице содержит таблицу элемента, и использовать массив как единственный аргумент этого метода, если этот стиль лучше подходит для вашего кода.
Источник extensions/canvas/canvas.lua строка 348
END_OF_DOCUMENT_MARKER
assignElement
Подпись hs.canvas:assignElement(elementTable, [index]) -> canvasObject
Тип Метод
Описание

Присваивает новый элемент холсту в указанном индексе.

Параметры
  • elementTable - таблица, содержащая пары ключ-значение, определяющие элемент, который нужно добавить на холст.
  • index - необязательное целое число от 1 до количества элементов холста + 1, определяющее позицию индекса для размещения нового элемента. Любой элемент, который в данный момент находится на этом индексе, будет заменён. По умолчанию используется количество элементов холста + 1 (т.е. после окончания текущего списка элементов).
Возвращает
  • объект холста
Примечания
  • Когда указанный индекс равен количеству элементов холста + 1, поведение этого метода такое же, как у hs.canvas:insertElement; т.е. он добавляет новый элемент в конец текущего списка элементов.
Источник extensions/canvas/libcanvas.m строка 3664
behavior
Подпись hs.canvas:behavior([behavior]) -> canvasObject | currentValue
Тип Метод
Описание

Получение или установка параметров поведения окна для объекта холста с помощью меток, определённых в hs.canvas.windowBehaviors.

Параметры
  • behavior - если присутствует, поведение должно быть комбинацией значений, найденных в hs.canvas.windowBehaviors, описывающих поведение окна. Поведение должно быть указано следующим образом:
    • целое число - число, представляющее поведение, которое можно создать, комбинируя значения, найденные в hs.canvas.windowBehaviors, с оператором логического ИЛИ.
    • строка - единственный ключ из hs.canvas.windowBehaviors, который будет переключен в текущем поведении окна.
    • таблица - список ключей из hs.canvas.windowBehaviors, которые будут объединены для создания окончательного поведения путём объединения их значений с оператором логического ИЛИ.
Возвращает
  • если аргумент предоставлен, возвращается объект холста; в противном случае возвращается текущее значение поведения.
Источник extensions/canvas/canvas.lua строка 160
behaviorAsLabels
Подпись hs.canvas:behaviorAsLabels(behaviorTable) -> canvasObject | currentValue
Тип Метод
Описание

Получение или установка параметров поведения окна для объекта холста с помощью меток, определённых в hs.canvas.windowBehaviors.

Параметры
  • behaviorTable - необязательная таблица строк и/или целых чисел, определяющая желаемое поведение окна для объекта холста.
Возвращает
  • Если аргумент предоставлен, возвращается объект холста; в противном случае текущее значение в виде таблицы строк.
Источник extensions/canvas/canvas.lua строка 204
bringToFront
Подпись hs.canvas:bringToFront([aboveEverything]) -> canvasObject
Тип Метод
Описание

Размещает объект холста поверх обычных окон.

Параметры
  • aboveEverything - необязательное булево значение, которое управляет тем, насколько далеко вперёд должен быть перемещён холст. По умолчанию false.
    • если true, холст размещается поверх всех окон (включая док, строку меню и полноэкранные окна).
    • если false, холст размещается поверх обычных окон, но ниже дока, строки меню и полноэкранных окон.
Возвращает
  • Объект холста
Примечания
  • Начиная с macOS Sierra и новее, если вы хотите, чтобы объект hs.canvas отображался поверх полноэкранных окон, вы должны сначала скрыть значок дока Hammerspoon, используя: hs.dockicon.hide()
Источник extensions/canvas/canvas.lua строка 286
canvasDefaultFor
Подпись hs.canvas:canvasDefaultFor(keyName, [newValue]) -> canvasObject | currentValue
Тип Метод
Описание

Получение или установка значения по умолчанию для элемента, указанного ключом keyName.

Параметры
  • keyName - значение по умолчанию элемента для проверки или изменения
  • value - необязательное новое значение для установки по умолчанию для этого холста, когда оно не указано явно в объявлении элемента.
Возвращает
  • Если аргумент предоставлен, возвращается объект холста; в противном случае возвращается текущее значение.
Примечания
  • Не все ключи применимы ко всем типам элементов.
  • Текущие установленные и встроенные значения по умолчанию могут быть получены в таблице с помощью hs.canvas:canvasDefaults.
Источник extensions/canvas/libcanvas.m строка 3272
canvasDefaultKeys
Подпись hs.canvas:canvasDefaultKeys([module]) -> table
Тип Метод
Описание

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

Параметры
  • module - необязательный булевый флаг, по умолчанию false, указывающий, должны ли в список включаться имена ключей для значений по умолчанию модуля (true). Если false, в список включаются только те значения по умолчанию, которые были явно установлены для холста.
Возвращает
  • таблица, содержащая имена ключей для значений по умолчанию, установленных для этого холста. Также может необязательно включать имена ключей для всех атрибутов, для которых определено значение по умолчанию модулем.
Источник extensions/canvas/libcanvas.m строка 3566
canvasDefaults
Подпись hs.canvas:canvasDefaults([module]) -> table
Тип Метод
Описание

Получение таблицы значений по умолчанию пар ключ-значение, которые применяются к холсту.

Параметры
  • module - необязательный булевый флаг, по умолчанию false, указывающий, должны ли быть включены значения по умолчанию модуля (true). Если false, в таблицу возвращаются только те значения по умолчанию, которые были явно установлены для холста.
Возвращает
  • таблица, содержащая пары ключ-значение значений по умолчанию, которые применяются к холсту.
Примечания
  • Не все ключи применяются ко всем типам элементов.
  • Для изменения значений по умолчанию холста используйте hs.canvas:canvasDefaultFor.
Источник extensions/canvas/libcanvas.m строка 3533
canvasElements
Подпись hs.canvas:canvasElements() -> table
Тип Метод
Описание

Возвращает массив, содержащий элементы, определённые для этого холста. Каждый элемент массива будет таблицей, содержащей пары ключ-значение, которые были установлены для этого элемента холста.

Параметры
  • Ничего
Возвращает
  • массив таблиц элементов, определённых для холста.
Источник extensions/canvas/libcanvas.m строка 3594
END_OF_DOCUMENT_MARKER
canvasMouseEvents
Подпись hs.canvas:canvasMouseEvents([down], [up], [enterExit], [move]) -> canvasObject | current values
Тип Метод
Описание

Получить или установить, нужно ли обрабатывать события мыши для областей холста, не покрытых элементами с включённым отслеживанием мыши.

Параметры
  • down - необязательный булево значение или nil, указывающее, нужно ли генерировать обратный вызов при нажатии кнопки мыши для областей холста, не покрытых элементами с включённым отслеживанием мыши.
  • up - необязательный булево значение или nil, указывающее, нужно ли генерировать обратный вызов при отпускании кнопки мыши для областей холста, не покрытых элементами с включённым отслеживанием мыши.
  • enterExit - необязательный булево значение или nil, указывающее, нужно ли генерировать обратный вызов при входе или выходе указателя мыши за пределы границ холста для областей холста, не покрытых элементами с включённым отслеживанием мыши.
  • move - необязательный булево значение или nil, указывающее, нужно ли генерировать обратный вызов при перемещении указателя мыши внутри границ холста для областей холста, не покрытых элементами с включённым отслеживанием мыши.
Возвращаемое значение
  • Если переданы какие-либо аргументы, возвращается объект холста, в противном случае возвращаются текущие значения в виде четырёх отдельных булевых значений (т.е. не в таблице).
Примечания
  • Каждое значение, которое вы хотите установить, должно быть предоставлено в указанном выше порядке, но вы можете указать положение как nil, чтобы указать, что независимо от текущего состояния, изменения не должны применяться. Например, чтобы активировать обратный вызов при входе и выходе из холста без изменения текущего состояния обратного вызова для нажатия и отпускания кнопок, можно использовать: hs.canvas:canvasMouseTracking(nil, nil, true).

  • Используйте hs.canvas:mouseCallback для установки функции обратного вызова. Поле идентификатора в списке аргументов обратного вызова будет "canvas", но в остальном оно будет идентично тем, что указаны в hs.canvas:mouseCallback.

Источник extensions/canvas/libcanvas.m строка 2777
clickActivating
Подпись hs.canvas:clickActivating([flag]) -> canvasObject | currentValue
Тип Метод
Описание

Получить или установить, нужно ли при нажатии на холст с определённым обратным вызовом отклика, переводить все открытые окна Hammerspoon вперёд.

Параметры
  • flag - необязательный булево значение, указывающее, нужно ли активировать Hammerspoon и выводить его окна вперёд при нажатии на холст с определённой функцией обратного вызова. По умолчанию true.
Возвращаемое значение
  • Если аргумент предоставлен, возвращается объект холста; в противном случае возвращается текущее значение.
Примечания
  • Установление этого значения в false изменяет значение AXsubrole объекта холста и может повлиять на результаты фильтров, используемых с hs.window.filter, в зависимости от их определения.
Источник extensions/canvas/libcanvas.m строка 2742
copy
Подпись hs.canvas:copy() -> canvasObject
Тип Метод
Описание

Создаёт копию холста.

Параметры
  • Нет
Возвращаемое значение
  • копия холста
Примечания
  • Копия холста будет идентична во всех отношениях, за исключением:

    • Новый холст не будет иметь присвоенной функции обратного вызова, даже если исходный холст её имеет.
    • Новый холст изначально не будет видимым, даже если исходный видимый.
  • Новый холст - независимый объект; любые последующие изменения в любом из холстов не будут отражаться в другом.

  • Этот метод позволяет отображать холст в нескольких местах или использовать его как элемент холста несколько раз.

Источник extensions/canvas/canvas.lua строка 431
delete
Подпись hs.canvas:delete([fadeOutTime]) -> none
Тип Метод
Описание

Удаляет объект холста, предварительно, при необходимости, затухая (если он в данный момент видим).

Параметры
  • fadeOutTime - необязательное число секунд, за которое должен затухать объект холста. По умолчанию ноль.
Возвращаемое значение
  • Нет
Примечания
  • Этот метод автоматически вызывается при сборе мусора, особенно во время завершения или перезагрузки Hammerspoon, со временем затухания 0.
Источник extensions/canvas/libcanvas.m строка 3170
draggingCallback
Подпись hs.canvas:draggingCallback(fn) -> canvasObject
Тип Метод
Описание

Устанавливает или удаляет обратный вызов для принятия перетаскивания и выгрузки элементов на холст.

Параметры
  • fn - функция, которая может быть nil, и будет вызываться при перетаскивании элемента на холст. Явное значение nil, по умолчанию, отключает перетаскивание и выгрузку для этого холста.
Возвращаемое значение
  • объект холста
Примечания
  • Функция обратного вызова должна ожидать 3 аргумента и необязательно возвращать 1: сам объект холста, сообщение, определяющее тип события перетаскивания, и таблицу, содержащую подробности о перетаскиваемом элементе(ах). Параметры таблицы подробностей будут следующими:

    • pasteboard - имя буфера обмена, содержащего перетаскиваемые элементы
    • sequence - целое число, уникально идентифицирующее сеанс перетаскивания.
    • mouse - таблица координат, содержащая местоположение указателя мыши внутри холста, соответствующее моменту возникновения обратного вызова.
    • operation - таблица, содержащая строковые описания типов перетаскивания, поддерживаемых исходным приложением. Возможно, полезно для определения, должна ли ваша функция обратного вызова принимать перетаскиваемый элемент или нет.
  • Возможные сообщения, которые функция обратного вызова может получать, следующие:

    • "enter" - пользователь перетащил элемент на холст. При получении этого сообщения функция обратного вызова может необязательно вернуть false, чтобы указать, что вы не хотите принимать перетаскиваемый элемент.
    • "exit" - пользователь вывел элемент за пределы холста; если предыдущий обратный вызов "enter" вернул false, это сообщение также произойдёт, когда пользователь, наконец, отпустит перетаскиваемые элементы.
    • "receive" - указывает, что пользователь отпустил перетаскиваемый объект, находясь ещё в пределах рамки холста. При получении этого сообщения функция обратного вызова может необязательно вернуть false, чтобы указать отправляющему приложению, что вы не хотите принимать перетаскиваемый элемент - это может повлиять на анимации, предоставляемые отправляющим приложением.
  • Вы можете использовать порядковый номер в таблице подробностей для сопоставления "enter" с сообщениями "exit" или "receive".

  • Вы должны получить необходимые данные о операции перетаскивания и выгрузки во время обратного вызова для "receive", используя поле буфера обмена в таблице подробностей и модуль hs.pasteboard. Из-за характера "обещанных элементов", нет гарантии, что элементы всё ещё будут в буфере обмена после завершения обработки этого сообщения вашей функцией обратного вызова.

  • Объект холста может принимать перетаскиваемые элементы только тогда, когда его уровень окна находится на уровне hs.canvas.windowLevels.dragging или ниже.

  • Объект холста может принимать перетаскиваемые элементы только если он принимает события мыши. Вы должны определить функцию hs.canvas:mouseCallback, даже если она является только заполнителем, например, hs.canvas:mouseCallback(function() end)

Источник extensions/canvas/libcanvas.m строка 2428
elementAttribute
Подпись hs.canvas:elementAttribute(index, key, [value]) -> canvasObject | current value
Тип Метод
Описание

Получить или установить атрибут key для элемента холста по указанному индексу.

Параметры
  • index - индекс элемента холста, для которого необходимо получить или установить атрибут.
  • key - имя ключа атрибута для получения или установки.
  • value - необязательное значение для присвоения атрибуту элемента холста.
Возвращаемое значение
  • если для атрибута задано значение, возвращается объект холста; в противном случае возвращается текущее значение указанного атрибута.
Источник extensions/canvas/libcanvas.m строка 3411
elementBounds
Подпись hs.canvas:elementBounds(index) -> rectTable
Тип Метод
Описание

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

Параметры
  • index - индекс элемента холста, для которого нужно получить границы
Возвращаемое значение
  • таблица rect, содержащая наименьший прямоугольник, который может полностью содержать элемент холста.
Примечания
  • Для многих элементов это будет то же, что и рамка элемента. Для элементов без рамки (например, segments, circle и т.д.) это будет наименьший прямоугольник, который может полностью содержать элемент холста, как определено его атрибутами.
Источник extensions/canvas/libcanvas.m строка 3612
END_OF_DOCUMENT_MARKER
elementCount
Signature hs.canvas:elementCount() -> integer
Type Method
Description

Возвращает количество элементов, в настоящее время определенных для объекта холста.

Parameters
  • None
Returns
  • количество элементов, в настоящее время определенных для объекта холста.
Source extensions/canvas/libcanvas.m строка 3516
elementKeys
Signature hs.canvas:elementKeys(index, [optional]) -> table
Type Method
Description

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

Parameters
  • index - индекс элемента, для которого нужно получить список назначенных ключей.
  • optional - необязательный булевый параметр, по умолчанию false, указывающий, следует ли также включать в возвращаемый список необязательные, но не установленные ключи, относящиеся к этому объекту холста.
Returns
  • таблица, содержащая ключи, установленные для данного элемента холста. Также может (по умолчанию) включать ключи, которые не были явно установлены для этого элемента, но используют унаследованные значения по умолчанию для холста или модуля.
Notes
  • Любой атрибут, который был явно задан для элемента, будет включён в список ключей (даже если он игнорируется для типа элемента). Если флаг optional установлен в true, то дополнительные имена атрибутов в списке будут содержать только те, которые актуальны для типа элемента.
Source extensions/canvas/libcanvas.m строка 3475
frame
Signature hs.canvas:frame([rect]) -> canvasObject | currentValue
Type Method
Description

Получить или установить рамку объекта холста.

Parameters
  • rect - Необязательная таблица rect, содержащая координаты и размеры, на которые должен быть перемещен и настроен объект холста
Returns
  • Если аргумент предоставлен, объект холста; в противном случае текущее значение.
Notes
  • Таблица rect — это таблица с парами ключ-значение, определяющими новые координаты верхнего левого угла холста на экране (ключи x и y) и новые размеры (ключи h и w). Таблица может быть создана любым способом, включающим эти ключи, включая использование объекта hs.geometry.

  • Элементы на холсте, у которых атрибут absolutePosition установлен в false, будут перемещены так, чтобы их относительное положение внутри холста оставалось неизменным по отношению к новым размерам.

  • Элементы на холсте, у которых атрибут absoluteSize установлен в false, будут изменены в размерах так, чтобы их относительный размер по отношению к холсту оставался неизменным по отношению к новым размерам.

Source extensions/canvas/canvas.lua строка 247
hide
Signature hs.canvas:hide([fadeOutTime]) -> canvasObject
Type Method
Description

Скрывает объект холста

Parameters
  • fadeOutTime - Необязательное количество секунд, в течение которого должен происходить плавный уход объекта холста в невидимость. По умолчанию ноль.
Returns
  • Объект холста
Source extensions/canvas/libcanvas.m строка 2655
imageFromCanvas
Signature hs.canvas:imageFromCanvas() -> hs.image object
Type Method
Description

Возвращает изображение содержимого холста в виде объекта hs.image.

Parameters
  • None
Returns
  • объект hs.image
Notes
  • Холст не обязательно должен быть видимым для того, чтобы из него было сгенерировано изображение.
Source extensions/canvas/libcanvas.m строка 2867
insertElement
Signature hs.canvas:insertElement(elementTable, [index]) -> canvasObject
Type Method
Description

Вставляет новый элемент на холст по указанному индексу.

Parameters
  • elementTable - таблица, содержащая пары ключ-значение, которые определяют добавляемый на холст элемент.
  • index - необязательное целое число от 1 до количества элементов на холсте + 1, определяющее позицию индекса для размещения нового элемента. Любой элемент, который в данный момент находится на этом индексе и последующие, будут смещены вверх на одну позицию в массиве элементов. По умолчанию количество элементов на холсте + 1 (т.е. после конца текущих определённых элементов).
Returns
  • объект canvasObject
Notes
  • см. также hs.canvas:assignElement.
Source extensions/canvas/libcanvas.m строка 3329
isOccluded
Signature hs.canvas:isOccluded() -> boolean
Type Method
Description

Возвращает, является ли холст в данный момент скрытым (скрыт другими окнами, за пределами экрана и т. д.).

Parameters
  • None
Returns
  • булево значение, указывающее, скрыт ли в данный момент холст.
Notes
  • Если любая часть холста видна (даже если эта часть не содержит элементов холста), то холст не считается скрытым.
  • холст, полностью покрытый одним или несколькими непрозрачными окнами, считается скрытым; однако, если окна, закрывающие холст, не являются непрозрачными, то холст не считается скрытым.
  • холст, который в данный момент скрыт или имеет высоту 0 или ширину 0, считается скрытым.
  • См. также hs.canvas:isShowing.
Source extensions/canvas/libcanvas.m строка 3242
isShowing
Signature hs.canvas:isShowing() -> boolean
Type Method
Description

Возвращает, отображается ли холст в данный момент.

Parameters
  • None
Returns
  • булево значение, указывающее, отображается ли холст в данный момент (true) или скрыт (false).
Notes
  • Этот метод определяет только отображается ли холст или скрыт — он не указывает, находится ли холст в данный момент за пределами экрана или скрыт другими объектами.
  • См. также hs.canvas:isOccluded.
Source extensions/canvas/libcanvas.m строка 3214
isVisible
Signature hs.canvas:isVisible() -> boolean
Type Method
Description

Возвращает, отображается ли холст в данный момент и (по крайней мере частично) виден на экране.

Parameters
  • None
Returns
  • булево значение, указывающее, виден ли холст в данный момент.
Notes
  • Это синтаксический сахар для not hs.canvas:isOccluded().
  • См. hs.canvas:isOccluded для получения дополнительной информации.
Source extensions/canvas/canvas.lua строка 333
level
Signature hs.canvas:level([level]) -> canvasObject | currentValue
Type Method
Description

Устанавливает уровень окна более точно, чем sendToBack и bringToFront.

Parameters
  • level - необязательный уровень, указанный как число или строка, определяющая новый уровень окна для canvasObject. Если это строка, она должна соответствовать одному из ключей в hs.canvas.windowLevels.
Returns
  • Если аргумент предоставлен, объект холста; в противном случае текущее значение.
Source extensions/canvas/libcanvas.m строка 3055
END_OF_DOCUMENT_MARKER
minimumTextSize
Подпись hs.canvas:minimumTextSize([index], text) -> table
Тип Метод
Описание

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

Параметры
  • index - необязательный индекс, определяющий элемент в холсте, содержащий атрибуты текста, которые должны использоваться при определении размера текста. Если не указано, будут использоваться значения по умолчанию холста. Игнорируется, если text является объектом hs.styledtext.
  • text - строка или объект hs.styledtext, определяющий текст.
Возвращает
  • таблица размеров, определяющая высоту и ширину прямоугольника, который может полностью содержать текст при отображении на холсте
Примечания
  • Поддерживается многострочный текст (разделенный новой строкой или символом возврата каретки). Высота будет для нескольких строк, а возвращаемая ширина — для самой длинной строки.
Источник extensions/canvas/libcanvas.m строка 2510
mouseCallback
Подпись hs.canvas:mouseCallback(mouseCallbackFn) -> canvasObject
Тип Метод
Описание

Устанавливает обработчик событий мыши относительно холста

Параметры
  • mouseCallbackFn - функция, которая может быть nil, которая будет вызываться при возникновении события мыши внутри холста, и элемент под текущей позицией мыши имеет один из атрибутов trackMouse..., установленный в true.
Возвращает
  • объект холста
Примечания
  • Функция обратного вызова должна ожидать 5 аргументов: сам объект холста, сообщение, определяющее тип события мыши, элемент холста id (или позиция индекса в холсте, если атрибут id не установлен для элемента), позиция x мыши при срабатывании события в рендерной области элемента холста, и позиция y мыши при срабатывании события в рендерной области элемента холста.

  • См. также hs.canvas:canvasMouseEvents для отслеживания событий мыши в областях холста, не покрытых элементом с включенным отслеживанием мыши.

  • Следующие атрибуты мыши могут быть установлены в true для элемента холста и вызовут обратный вызов с указанным сообщением:

    • trackMouseDown - указывает, что обратный вызов должен быть вызван при нажатии кнопки мыши на элемент холста. Сообщение будет "mouseDown".
    • trackMouseUp - указывает, что обратный вызов должен быть вызван при отпускании кнопки мыши над элементом холста. Сообщение будет "mouseUp".
    • trackMouseEnterExit - указывает, что обратный вызов должен быть вызван при входе или выходе указателя мыши в элемент холста. Сообщение будет "mouseEnter" или "mouseExit".
    • trackMouseMove - указывает, что обратный вызов должен быть вызван при перемещении указателя мыши внутри элемента холста. Сообщение будет "mouseMove".
  • Механизм обратного вызова использует обратный порядок индексирования z для определения, какой элемент получит обратный вызов — вызывается самый верхний элемент холста, у которого включены обратные вызовы для указанного сообщения.

  • Не делается различий между левой, правой или другими кнопками мыши. Если вам нужно определить, какая именно кнопка была нажата, используйте hs.eventtap.checkMouseButtons() в своём обратном вызове для проверки.

  • Обнаружение точки попадания происходит путем сравнения местоположения указателя мыши с рендерным содержимым каждого отдельного объекта холста... если объект, который перекрывает нижний объект, не имеет включенного отслеживания мыши, нижний объект всё равно получит событие, если у него отслеживание включено.

  • Области обрезки, удаляющие содержимое из видимой области рендерного объекта, игнорируются для целей обнаружения элементов.

Источник extensions/canvas/libcanvas.m строка 2691
orderAbove
Подпись hs.canvas:orderAbove([canvas2]) -> canvasObject
Тип Метод
Описание

Перемещает объект холста над canvas2 или все объекты холста на том же уровне представления, если canvas2 не задан.

Параметры
  • canvas2 - необязательный объект холста, над которым нужно расположить объект холста.
Возвращает
  • объект холста
Примечания
  • Если объект холста и canvas2 не находятся на одном уровне представления, этот метод переместит объект холста как можно ближе к желаемому отношению, не изменяя уровень представления объекта холста. См. hs.canvas.level.
Источник extensions/canvas/libcanvas.m строка 3023
orderBelow
Подпись hs.canvas:orderBelow([canvas2]) -> canvasObject
Тип Метод
Описание

Перемещает объект холста под canvas2 или все объекты холста на том же уровне представления, если canvas2 не задан.

Параметры
  • canvas2 - необязательный объект холста, под которым нужно расположить объект холста.
Возвращает
  • объект холста
Примечания
  • Если объект холста и canvas2 не находятся на одном уровне представления, этот метод переместит объект холста как можно ближе к желаемому отношению, не изменяя уровень представления объекта холста. См. hs.canvas.level.
Источник extensions/canvas/libcanvas.m строка 3039
removeElement
Подпись hs.canvas:removeElement([index]) -> canvasObject
Тип Метод
Описание

Вставляет новый элемент в холст в указанный индекс.

Параметры
  • index - необязательное целое число от 1 до количества элементов холста, определяющее индекс элемента холста, который нужно удалить. Любые последующие элементы будут смещены на одну позицию вниз в массиве элементов. По умолчанию равно количеству элементов холста (т.е. последнему элементу из текущих определенных элементов).
Возвращает
  • объект canvasObject
Источник extensions/canvas/libcanvas.m строка 3378
replaceElements
Подпись hs.canvas:replaceElements(element...) -> canvasObject
Тип Метод
Описание

Заменяет все элементы в холсте указанными элементами. Укорачивает или удлиняет количество элементов холста, если это необходимо, чтобы вместить новые элементы холста.

Параметры
  • element - таблица, содержащая пары ключ-значение, определяющие элемент, который нужно назначить холсту. Вы можете указать один или несколько элементов, и они будут добавлены в порядке их перечисления.
Возвращает
  • объект холста
Примечания
  • Вы также можете указать несколько элементов в таблице как массив, где каждый индекс в таблице содержит таблицу элементов, и использовать массив в качестве единственного аргумента для этого метода, если этот стиль лучше подходит для вашего кода.
Источник extensions/canvas/canvas.lua строка 367
rotateElement
Подпись hs.canvas:rotateElement(index, angle, [point], [append]) -> canvasObject
Тип Метод
Описание

Поворачивает элемент вокруг заданной точки или центра элемента, если точка не указана.

Параметры
  • index - индекс элемента, который нужно повернуть
  • angle - угол поворота объекта по часовой стрелке
  • point - необязательная таблица точек, по умолчанию задающая центр элемента, определяющая точку, вокруг которой должен вращаться объект
  • append - необязательный логический параметр, по умолчанию false, определяющий, следует ли добавить матрицу преобразования поворота к существующей матрице преобразования, назначенной элементу (true), или заменить её (false).
Возвращает
  • объект холста
Примечания
  • Таблица точек — это таблица с парами ключ-значение, определяющими координату на холсте (ключи x и y). Таблица может быть создана любым методом, который включает эти ключи, включая использование объекта hs.geometry.

  • Центр объекта определяется с помощью получения границ элемента с помощью hs.canvas:elementBounds.

  • Если третий аргумент — логическое значение, то аргумент point предполагается, что это центр элемента, а логическое значение используется как аргумент append.

  • Этот метод использует hs.canvas.matrix для генерации матрицы преобразования поворота и предоставляет обёртку для hs.canvas.matrix.translate(x, y):rotate(angle):translate(-x, -y), которая затем назначается или добавляется к существующему атрибуту transformation элемента.

Источник extensions/canvas/canvas.lua строка 387
sendToBack
Подпись hs.canvas:sendToBack() -> canvasObject
Тип Метод
Описание

Размещает объект холста позади обычных окон, между обоями рабочего стола и значками на рабочем столе

Параметры
  • Ничего
Возвращаемое значение
  • Объект холста
Источник extensions/canvas/canvas.lua строка 314
show
Подпись hs.canvas:show([fadeInTime]) -> canvasObject
Тип Метод
Описание

Отображает объект холста

Параметры
  • fadeInTime — необязательное число секунд, в течение которого объект холста должен плавно появляться. По умолчанию равно нулю.
Возвращаемое значение
  • Объект холста
Примечания
  • Если холст используется в качестве элемента в другом холсте, этот метод приведет к ошибке.
Источник extensions/canvas/libcanvas.m строка 2617
size
Подпись hs.canvas:size([size]) -> canvasObject | currentValue
Тип Метод
Описание

Получение или установка размера объекта холста

Параметры
  • size — необязательная таблица размеров, задающая ширину и высоту, до которых должен быть изменен размер объекта холста
Возвращаемое значение
  • Если аргумент предоставлен, возвращается объект холста; в противном случае текущее значение.
Примечания
  • Таблица размеров — это таблица с парами ключ-значение, определяющими размер (ключи h и w), до которого должен быть изменен размер холста. Таблица может быть создана любым методом, который включает эти ключи, включая использование объекта hs.geometry.

  • Элементы на холсте, у которых атрибут absolutePosition установлен в значение false, будут перемещены таким образом, чтобы их относительное положение на холсте оставалось неизменным по отношению к новому размеру.

  • Элементы на холсте, у которых атрибут absoluteSize установлен в значение false, будут изменены в размерах таким образом, чтобы их относительный размер по отношению к холсту оставался неизменным по отношению к новому размеру.

Источник extensions/canvas/libcanvas.m строка 2892
topLeft
Подпись hs.canvas:topLeft([point]) -> canvasObject | currentValue
Тип Метод
Описание

Получение или установка координаты верхнего левого угла объекта холста

Параметры
  • point — необязательная таблица точек, определяющая новые координаты, в которые должен быть перемещен верхний левый угол объекта холста
Возвращаемое значение
  • Если аргумент предоставлен, возвращается объект холста; в противном случае текущее значение.
Примечания
  • Таблица точек — это таблица с парами ключ-значение, определяющими новые координаты верхнего левого угла на экране холста (ключи x и y). Таблица может быть создана любым методом, который включает эти ключи, включая использование объекта hs.geometry.
Источник extensions/canvas/libcanvas.m строка 2830
transformation
Подпись hs.canvas:transformation([matrix]) -> canvasObject | current value
Тип Метод
Описание

Получение или установка матричной трансформации, которая применяется ко всем элементам на холсте перед их индивидуальной обработкой и добавлением на холст.

Параметры
  • matrix — необязательная таблица, определяющая матричную таблицу, как определено модулем hs.canvas.matrix, которая должна быть применена к каждому элементу холста, или явное значение nil для сброса трансформации до единичной матрицы.
Возвращаемое значение
  • если аргумент предоставлен, возвращается canvasObject, в противном случае возвращается текущее значение
Примечания
  • Пример использования этого метода — изменение точки начала отсчета холста { x = 0, y = 0 } с левого нижнего угла холста до другой точки, например, середины холста.
Источник extensions/canvas/libcanvas.m строка 2588
wantsLayer
Подпись hs.canvas:wantsLayer([flag]) -> canvasObject | currentValue
Тип Метод
Описание

Получение или установка значения, определяющего, должен ли объект холста отрисовываться представлением или с помощью Core Animation.

Параметры
  • flag — необязательный булевый параметр (по умолчанию false), указывающий, должен ли объект холста отрисовываться содержащим представлением (false) или с помощью Core Animation (true).
Возвращаемое значение
  • Если аргумент предоставлен, возвращается объект холста; в противном случае текущее значение.
Примечания
  • Этот метод может помочь улучшить отображение небольших текстовых объектов на мониторах без Retina.
Источник extensions/canvas/libcanvas.m строка 3105

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

Spec-Zone.ru

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