forked from mbk-lab/rui_orig
Changed the type of the second argument of all Get functions to "subviewID ...string" (previously "subviewID string")
This commit is contained in:
parent
6dad96c2a7
commit
5926a7649f
|
@ -9,6 +9,7 @@
|
||||||
* Added GetListRowGap, GetListColumnGap, GetAccentColor, GetTabSize, GetOverflow, IsTimingFunctionValid, and GetTransitions functions
|
* Added GetListRowGap, GetListColumnGap, GetAccentColor, GetTabSize, GetOverflow, IsTimingFunctionValid, and GetTransitions functions
|
||||||
* Changed GetTransition functions
|
* Changed GetTransition functions
|
||||||
* Added the OpenURL function to the Session interface
|
* Added the OpenURL function to the Session interface
|
||||||
|
* Changed the type of the second argument of all Get functions to "subviewID ...string" (previously "subviewID string")
|
||||||
|
|
||||||
# v0.8.0
|
# v0.8.0
|
||||||
|
|
||||||
|
|
306
README-ru.md
306
README-ru.md
|
@ -538,17 +538,17 @@ SizeUnit или имя константы (о константах ниже):
|
||||||
|
|
||||||
Это довольно громоздко поэтому для каждого свойства существует одноимённая глобальная функция с префиксом Get,
|
Это довольно громоздко поэтому для каждого свойства существует одноимённая глобальная функция с префиксом Get,
|
||||||
которая выполняет данное приведение типа, получает значение константы, если необходимо, и
|
которая выполняет данное приведение типа, получает значение константы, если необходимо, и
|
||||||
возвращает его. Все функции данного типа имеют два аргумента: View и subviewID string.
|
возвращает его. Все функции данного типа имеют два аргумента: View и subviewID ...string.
|
||||||
Первый аргумент это корневой View, второй - ID дочернего View. Если ID дочернего View передать как "",
|
Первый аргумент это корневой View, второй - ID дочернего View. Если ID дочернего View не задать или передать как "",
|
||||||
то возвращается значение корневого View.
|
то возвращается значение корневого View.
|
||||||
Для свойств "width", "height", "min-width", "min-height", "max-width", "max-height" это функции:
|
Для свойств "width", "height", "min-width", "min-height", "max-width", "max-height" это функции:
|
||||||
|
|
||||||
func GetWidth(view View, subviewID string) SizeUnit
|
func GetWidth(view View, subviewID ...string) SizeUnit
|
||||||
func GetHeight(view View, subviewID string) SizeUnit
|
func GetHeight(view View, subviewID ...string) SizeUnit
|
||||||
func GetMinWidth(view View, subviewID string) SizeUnit
|
func GetMinWidth(view View, subviewID ...string) SizeUnit
|
||||||
func GetMinHeight(view View, subviewID string) SizeUnit
|
func GetMinHeight(view View, subviewID ...string) SizeUnit
|
||||||
func GetMaxWidth(view View, subviewID string) SizeUnit
|
func GetMaxWidth(view View, subviewID ...string) SizeUnit
|
||||||
func GetMaxHeight(view View, subviewID string) SizeUnit
|
func GetMaxHeight(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
### Свойство "resize"
|
### Свойство "resize"
|
||||||
|
|
||||||
|
@ -567,7 +567,7 @@ SizeUnit или имя константы (о константах ниже):
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetResize(view View, subviewID string) int
|
func GetResize(view View, subviewID ...string) int
|
||||||
|
|
||||||
### Свойства "margin" и "padding"
|
### Свойства "margin" и "padding"
|
||||||
|
|
||||||
|
@ -608,8 +608,8 @@ BoundsProperty с помощью функции "Bounds(session Session) Bounds"
|
||||||
|
|
||||||
Для этого используется также могут использоваться глобальные функции:
|
Для этого используется также могут использоваться глобальные функции:
|
||||||
|
|
||||||
func GetMargin(view View, subviewID string) Bounds
|
func GetMargin(view View, subviewID ...string) Bounds
|
||||||
func GetPadding(view View, subviewID string) Bounds
|
func GetPadding(view View, subviewID ...string) Bounds
|
||||||
|
|
||||||
Текстовое представление BoundsProperty имеет следующий вид:
|
Текстовое представление BoundsProperty имеет следующий вид:
|
||||||
|
|
||||||
|
@ -743,7 +743,7 @@ BoundsProperty с помощью функции "Bounds(session Session) Bounds"
|
||||||
BorderProperty, а не структура ViewBorders. Получить структуру ViewBorders без дополнительных преобразований можно
|
BorderProperty, а не структура ViewBorders. Получить структуру ViewBorders без дополнительных преобразований можно
|
||||||
с помощью глобальной функции
|
с помощью глобальной функции
|
||||||
|
|
||||||
func GetBorder(view View, subviewID string) ViewBorders
|
func GetBorder(view View, subviewID ...string) ViewBorders
|
||||||
|
|
||||||
Кроме вспомогательных свойств "style", "width" и "color" есть еще 4: "left", "right", "top" и "bottom".
|
Кроме вспомогательных свойств "style", "width" и "color" есть еще 4: "left", "right", "top" и "bottom".
|
||||||
В качестве значения эти свойства могут принимать только структуру ViewBorder и позволяю установить все
|
В качестве значения эти свойства могут принимать только структуру ViewBorder и позволяю установить все
|
||||||
|
@ -897,7 +897,7 @@ RadiusProperty имеет текстовое представление след
|
||||||
RadiusProperty, а не структура BoxRadius. Получить структуру BoxRadius без дополнительных преобразований можно
|
RadiusProperty, а не структура BoxRadius. Получить структуру BoxRadius без дополнительных преобразований можно
|
||||||
с помощью глобальной функции
|
с помощью глобальной функции
|
||||||
|
|
||||||
func GetRadius(view View, subviewID string) BoxRadius
|
func GetRadius(view View, subviewID ...string) BoxRadius
|
||||||
|
|
||||||
Вы также можете устанавливать отдельные радиусы использую функцию Set интерфейса View.
|
Вы также можете устанавливать отдельные радиусы использую функцию Set интерфейса View.
|
||||||
Для этого используются следующие свойства
|
Для этого используются следующие свойства
|
||||||
|
@ -973,7 +973,7 @@ RadiusProperty, а не структура BoxRadius. Получить стру
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetViewShadows(view View, subviewID string) []ViewShadow
|
func GetViewShadows(view View, subviewID ...string) []ViewShadow
|
||||||
|
|
||||||
Если тень не задана, то данная функция вернет пустой массив
|
Если тень не задана, то данная функция вернет пустой массив
|
||||||
|
|
||||||
|
@ -1234,7 +1234,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetOpacity(view View, subviewID string) float64
|
func GetOpacity(view View, subviewID ...string) float64
|
||||||
|
|
||||||
### Свойство "z-index"
|
### Свойство "z-index"
|
||||||
|
|
||||||
|
@ -1244,7 +1244,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetZIndex(view View, subviewID string) int
|
func GetZIndex(view View, subviewID ...string) int
|
||||||
|
|
||||||
### Свойство "visibility"
|
### Свойство "visibility"
|
||||||
|
|
||||||
|
@ -1258,7 +1258,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetVisibility(view View, subviewID string) int
|
func GetVisibility(view View, subviewID ...string) int
|
||||||
|
|
||||||
### Свойства "filter" и "backdrop-filter"
|
### Свойства "filter" и "backdrop-filter"
|
||||||
|
|
||||||
|
@ -1287,8 +1287,8 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение текущего фильтра можно с помощью функций
|
Получить значение текущего фильтра можно с помощью функций
|
||||||
|
|
||||||
func GetFilter(view View, subviewID string) ViewFilter
|
func GetFilter(view View, subviewID ...string) ViewFilter
|
||||||
func GetBackdropFilter(view View, subviewID string) ViewFilter
|
func GetBackdropFilter(view View, subviewID ...string) ViewFilter
|
||||||
|
|
||||||
### Свойство "semantics"
|
### Свойство "semantics"
|
||||||
|
|
||||||
|
@ -1335,7 +1335,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetFontName(view View, subviewID string) string
|
func GetFontName(view View, subviewID ...string) string
|
||||||
|
|
||||||
#### Свойство "text-color"
|
#### Свойство "text-color"
|
||||||
|
|
||||||
|
@ -1343,7 +1343,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetTextColor(view View, subviewID string) Color
|
func GetTextColor(view View, subviewID ...string) Color
|
||||||
|
|
||||||
#### Свойство "text-size"
|
#### Свойство "text-size"
|
||||||
|
|
||||||
|
@ -1351,7 +1351,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetTextSize(view View, subviewID string) SizeUnit
|
func GetTextSize(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
#### Свойство "italic"
|
#### Свойство "italic"
|
||||||
|
|
||||||
|
@ -1359,7 +1359,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func IsItalic(view View, subviewID string) bool
|
func IsItalic(view View, subviewID ...string) bool
|
||||||
|
|
||||||
#### Свойство "small-caps"
|
#### Свойство "small-caps"
|
||||||
|
|
||||||
|
@ -1367,7 +1367,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func IsSmallCaps(view View, subviewID string) bool
|
func IsSmallCaps(view View, subviewID ...string) bool
|
||||||
|
|
||||||
#### Свойство "white-space"
|
#### Свойство "white-space"
|
||||||
|
|
||||||
|
@ -1442,9 +1442,9 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данных свойств можно с помощью функций
|
Получить значение данных свойств можно с помощью функций
|
||||||
|
|
||||||
func IsStrikethrough(view View, subviewID string) bool
|
func IsStrikethrough(view View, subviewID ...string) bool
|
||||||
func IsOverline(view View, subviewID string) bool
|
func IsOverline(view View, subviewID ...string) bool
|
||||||
func IsUnderline(view View, subviewID string) bool
|
func IsUnderline(view View, subviewID ...string) bool
|
||||||
|
|
||||||
#### Свойство "text-line-thickness"
|
#### Свойство "text-line-thickness"
|
||||||
|
|
||||||
|
@ -1453,7 +1453,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
GetTextLineThickness(view View, subviewID string) SizeUnit
|
GetTextLineThickness(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
#### Свойство "text-line-style"
|
#### Свойство "text-line-style"
|
||||||
|
|
||||||
|
@ -1473,7 +1473,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetTextLineStyle(view View, subviewID string) int
|
func GetTextLineStyle(view View, subviewID ...string) int
|
||||||
|
|
||||||
#### Свойство "text-line-color"
|
#### Свойство "text-line-color"
|
||||||
|
|
||||||
|
@ -1483,7 +1483,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetTextLineColor(view View, subviewID string) Color
|
func GetTextLineColor(view View, subviewID ...string) Color
|
||||||
|
|
||||||
#### Свойство "text-weight"
|
#### Свойство "text-weight"
|
||||||
|
|
||||||
|
@ -1505,7 +1505,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetTextWeight(view View, subviewID string) int
|
func GetTextWeight(view View, subviewID ...string) int
|
||||||
|
|
||||||
#### Свойство "text-shadow"
|
#### Свойство "text-shadow"
|
||||||
|
|
||||||
|
@ -1532,7 +1532,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetTextShadows(view View, subviewID string) []ViewShadow
|
func GetTextShadows(view View, subviewID ...string) []ViewShadow
|
||||||
|
|
||||||
Если тень не задана, то данная функция вернет пустой массив
|
Если тень не задана, то данная функция вернет пустой массив
|
||||||
|
|
||||||
|
@ -1549,7 +1549,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetTextAlign(view View, subviewID string) int
|
func GetTextAlign(view View, subviewID ...string) int
|
||||||
|
|
||||||
#### Свойство "text-indent"
|
#### Свойство "text-indent"
|
||||||
|
|
||||||
|
@ -1557,7 +1557,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetTextIndent(view View, subviewID string) SizeUnit
|
func GetTextIndent(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
#### Свойство "letter-spacing"
|
#### Свойство "letter-spacing"
|
||||||
|
|
||||||
|
@ -1567,7 +1567,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetLetterSpacing(view View, subviewID string) SizeUnit
|
func GetLetterSpacing(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
#### Свойство "word-spacing"
|
#### Свойство "word-spacing"
|
||||||
|
|
||||||
|
@ -1577,7 +1577,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetWordSpacing(view View, subviewID string) SizeUnit
|
func GetWordSpacing(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
#### Свойство "line-height"
|
#### Свойство "line-height"
|
||||||
|
|
||||||
|
@ -1585,7 +1585,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetLineHeight(view View, subviewID string) SizeUnit
|
func GetLineHeight(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
#### Свойство "text-transform"
|
#### Свойство "text-transform"
|
||||||
|
|
||||||
|
@ -1600,7 +1600,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetTextTransform(view View, subviewID string) int
|
func GetTextTransform(view View, subviewID ...string) int
|
||||||
|
|
||||||
#### Свойство "text-direction"
|
#### Свойство "text-direction"
|
||||||
|
|
||||||
|
@ -1614,7 +1614,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetTextDirection(view View, subviewID string) int
|
func GetTextDirection(view View, subviewID ...string) int
|
||||||
|
|
||||||
#### Свойство "writing-mode"
|
#### Свойство "writing-mode"
|
||||||
|
|
||||||
|
@ -1631,7 +1631,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetWritingMode(view View, subviewID string) int
|
func GetWritingMode(view View, subviewID ...string) int
|
||||||
|
|
||||||
#### Свойство "vertical-text-orientation"
|
#### Свойство "vertical-text-orientation"
|
||||||
|
|
||||||
|
@ -1646,7 +1646,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetVerticalTextOrientation(view View, subviewID string) int
|
func GetVerticalTextOrientation(view View, subviewID ...string) int
|
||||||
|
|
||||||
#### Свойство "user-select"
|
#### Свойство "user-select"
|
||||||
|
|
||||||
|
@ -1662,7 +1662,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func IsUserSelect(view View, subviewID string) bool
|
func IsUserSelect(view View, subviewID ...string) bool
|
||||||
|
|
||||||
### Свойства трансформации
|
### Свойства трансформации
|
||||||
|
|
||||||
|
@ -1681,7 +1681,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetPerspective(view View, subviewID string) SizeUnit
|
func GetPerspective(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
#### Свойства "perspective-origin-x" и "perspective-origin-y"
|
#### Свойства "perspective-origin-x" и "perspective-origin-y"
|
||||||
|
|
||||||
|
@ -1692,7 +1692,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данных свойств можно с помощью функции
|
Получить значение данных свойств можно с помощью функции
|
||||||
|
|
||||||
func GetPerspectiveOrigin(view View, subviewID string) (SizeUnit, SizeUnit)
|
func GetPerspectiveOrigin(view View, subviewID ...string) (SizeUnit, SizeUnit)
|
||||||
|
|
||||||
#### Свойство "backface-visibility"
|
#### Свойство "backface-visibility"
|
||||||
|
|
||||||
|
@ -1705,7 +1705,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetBackfaceVisible(view View, subviewID string) bool
|
func GetBackfaceVisible(view View, subviewID ...string) bool
|
||||||
|
|
||||||
#### Свойства "origin-x", "origin-y" и "origin-z"
|
#### Свойства "origin-x", "origin-y" и "origin-z"
|
||||||
|
|
||||||
|
@ -1718,7 +1718,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данных свойств можно с помощью функции
|
Получить значение данных свойств можно с помощью функции
|
||||||
|
|
||||||
func GetOrigin(view View, subviewID string) (SizeUnit, SizeUnit, SizeUnit)
|
func GetOrigin(view View, subviewID ...string) (SizeUnit, SizeUnit, SizeUnit)
|
||||||
|
|
||||||
#### Свойства "translate-x", "translate-y" и "translate-z"
|
#### Свойства "translate-x", "translate-y" и "translate-z"
|
||||||
|
|
||||||
|
@ -1729,7 +1729,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данных свойств можно с помощью функции
|
Получить значение данных свойств можно с помощью функции
|
||||||
|
|
||||||
func GetTranslate(view View, subviewID string) (SizeUnit, SizeUnit, SizeUnit)
|
func GetTranslate(view View, subviewID ...string) (SizeUnit, SizeUnit, SizeUnit)
|
||||||
|
|
||||||
#### Свойства "scale-x", "scale-y" и "scale-z"
|
#### Свойства "scale-x", "scale-y" и "scale-z"
|
||||||
|
|
||||||
|
@ -1742,7 +1742,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данных свойств можно с помощью функции
|
Получить значение данных свойств можно с помощью функции
|
||||||
|
|
||||||
func GetScale(view View, subviewID string) (float64, float64, float64)
|
func GetScale(view View, subviewID ...string) (float64, float64, float64)
|
||||||
|
|
||||||
#### Свойства "rotate"
|
#### Свойства "rotate"
|
||||||
|
|
||||||
|
@ -1759,7 +1759,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данных свойств, а также свойства "rotate" можно с помощью функции
|
Получить значение данных свойств, а также свойства "rotate" можно с помощью функции
|
||||||
|
|
||||||
func GetRotate(view View, subviewID string) (float64, float64, float64, AngleUnit)
|
func GetRotate(view View, subviewID ...string) (float64, float64, float64, AngleUnit)
|
||||||
|
|
||||||
#### Свойства "skew-x" и "skew-y"
|
#### Свойства "skew-x" и "skew-y"
|
||||||
|
|
||||||
|
@ -1769,7 +1769,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить значение данных свойств можно с помощью функции
|
Получить значение данных свойств можно с помощью функции
|
||||||
|
|
||||||
func GetSkew(view View, subviewID string) (AngleUnit, AngleUnit)
|
func GetSkew(view View, subviewID ...string) (AngleUnit, AngleUnit)
|
||||||
|
|
||||||
### Пользовательские данные
|
### Пользовательские данные
|
||||||
|
|
||||||
|
@ -1809,8 +1809,8 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить списки слушателей событий клавиатуры можно с помощью функций:
|
Получить списки слушателей событий клавиатуры можно с помощью функций:
|
||||||
|
|
||||||
func GetKeyDownListeners(view View, subviewID string) []func(View, KeyEvent)
|
func GetKeyDownListeners(view View, subviewID ...string) []func(View, KeyEvent)
|
||||||
func GetKeyUpListeners(view View, subviewID string) []func(View, KeyEvent)
|
func GetKeyUpListeners(view View, subviewID ...string) []func(View, KeyEvent)
|
||||||
|
|
||||||
### События фокуса
|
### События фокуса
|
||||||
|
|
||||||
|
@ -1831,8 +1831,8 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить списки слушателей событий фокуса можно с помощью функций:
|
Получить списки слушателей событий фокуса можно с помощью функций:
|
||||||
|
|
||||||
func GetFocusListeners(view View, subviewID string) []func(View)
|
func GetFocusListeners(view View, subviewID ...string) []func(View)
|
||||||
func GetLostFocusListeners(view View, subviewID string) []func(View)
|
func GetLostFocusListeners(view View, subviewID ...string) []func(View)
|
||||||
|
|
||||||
### События мыши
|
### События мыши
|
||||||
|
|
||||||
|
@ -1900,14 +1900,14 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить списки слушателей событий мыши можно с помощью функций:
|
Получить списки слушателей событий мыши можно с помощью функций:
|
||||||
|
|
||||||
func GetMouseDownListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetMouseDownListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
func GetMouseUpListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetMouseUpListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
func GetMouseMoveListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetMouseMoveListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
func GetMouseOverListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetMouseOverListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
func GetMouseOutListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetMouseOutListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
func GetClickListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetClickListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
func GetDoubleClickListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetDoubleClickListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
func GetContextMenuListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetContextMenuListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
|
|
||||||
### События указателя
|
### События указателя
|
||||||
|
|
||||||
|
@ -1954,12 +1954,12 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить списки слушателей событий указателя можно с помощью функций:
|
Получить списки слушателей событий указателя можно с помощью функций:
|
||||||
|
|
||||||
func GetPointerDownListeners(view View, subviewID string) []func(View, PointerEvent)
|
func GetPointerDownListeners(view View, subviewID ...string) []func(View, PointerEvent)
|
||||||
func GetPointerUpListeners(view View, subviewID string) []func(View, PointerEvent)
|
func GetPointerUpListeners(view View, subviewID ...string) []func(View, PointerEvent)
|
||||||
func GetPointerMoveListeners(view View, subviewID string) []func(View, PointerEvent)
|
func GetPointerMoveListeners(view View, subviewID ...string) []func(View, PointerEvent)
|
||||||
func GetPointerCancelListeners(view View, subviewID string) []func(View, PointerEvent)
|
func GetPointerCancelListeners(view View, subviewID ...string) []func(View, PointerEvent)
|
||||||
func GetPointerOverListeners(view View, subviewID string) []func(View, PointerEvent)
|
func GetPointerOverListeners(view View, subviewID ...string) []func(View, PointerEvent)
|
||||||
func GetPointerOutListeners(view View, subviewID string) []func(View, PointerEvent)
|
func GetPointerOutListeners(view View, subviewID ...string) []func(View, PointerEvent)
|
||||||
|
|
||||||
### Touch события
|
### Touch события
|
||||||
|
|
||||||
|
@ -2012,10 +2012,10 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить списки слушателей событий касания можно с помощью функций:
|
Получить списки слушателей событий касания можно с помощью функций:
|
||||||
|
|
||||||
func GetTouchStartListeners(view View, subviewID string) []func(View, TouchEvent)
|
func GetTouchStartListeners(view View, subviewID ...string) []func(View, TouchEvent)
|
||||||
func GetTouchEndListeners(view View, subviewID string) []func(View, TouchEvent)
|
func GetTouchEndListeners(view View, subviewID ...string) []func(View, TouchEvent)
|
||||||
func GetTouchMoveListeners(view View, subviewID string) []func(View, TouchEvent)
|
func GetTouchMoveListeners(view View, subviewID ...string) []func(View, TouchEvent)
|
||||||
func GetTouchCancelListeners(view View, subviewID string) []func(View, TouchEvent)
|
func GetTouchCancelListeners(view View, subviewID ...string) []func(View, TouchEvent)
|
||||||
|
|
||||||
### Событие "resize-event"
|
### Событие "resize-event"
|
||||||
|
|
||||||
|
@ -2044,7 +2044,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
Получить список слушателей данного события можно с помощью функции:
|
Получить список слушателей данного события можно с помощью функции:
|
||||||
|
|
||||||
func GetResizeListeners(view View, subviewID string) []func(View, Frame)
|
func GetResizeListeners(view View, subviewID ...string) []func(View, Frame)
|
||||||
|
|
||||||
Текущие положение и размеры видимой части View можно получить с помощью функции интерфейса View:
|
Текущие положение и размеры видимой части View можно получить с помощью функции интерфейса View:
|
||||||
|
|
||||||
|
@ -2052,7 +2052,7 @@ radius необходимо передать nil
|
||||||
|
|
||||||
или глобальной функции
|
или глобальной функции
|
||||||
|
|
||||||
func GetViewFrame(view View, subviewID string) Frame
|
func GetViewFrame(view View, subviewID ...string) Frame
|
||||||
|
|
||||||
### Событие прокрутки
|
### Событие прокрутки
|
||||||
|
|
||||||
|
@ -2083,13 +2083,13 @@ radius необходимо передать nil
|
||||||
|
|
||||||
или глобальной функции
|
или глобальной функции
|
||||||
|
|
||||||
func GetViewScroll(view View, subviewID string) Frame
|
func GetViewScroll(view View, subviewID ...string) Frame
|
||||||
|
|
||||||
Для программной прокрутки могут использоваться следующие глобальные функции
|
Для программной прокрутки могут использоваться следующие глобальные функции
|
||||||
|
|
||||||
func ScrollViewTo(view View, subviewID string, x, y float64)
|
func ScrollViewTo(view View, subviewID string, x, y float64)
|
||||||
func ScrollViewToStart(view View, subviewID string)
|
func ScrollViewToStart(view View, subviewID ...string)
|
||||||
func ScrollViewToEnd(view View, subviewID string)
|
func ScrollViewToEnd(view View, subviewID ...string)
|
||||||
|
|
||||||
которые прокручивают view, соответственно, в заданную позицию, начало и конец
|
которые прокручивают view, соответственно, в заданную позицию, начало и конец
|
||||||
|
|
||||||
|
@ -2363,7 +2363,7 @@ ColumnLayout является контейнером, реализующим и
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetColumnCount(view View, subviewID string) int
|
func GetColumnCount(view View, subviewID ...string) int
|
||||||
|
|
||||||
### Свойство "column-width"
|
### Свойство "column-width"
|
||||||
|
|
||||||
|
@ -2375,7 +2375,7 @@ ColumnLayout является контейнером, реализующим и
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetColumnWidth(view View, subviewID string) SizeUnit
|
func GetColumnWidth(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
### Свойство "column-gap"
|
### Свойство "column-gap"
|
||||||
|
|
||||||
|
@ -2383,7 +2383,7 @@ ColumnLayout является контейнером, реализующим и
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetColumnGap(view View, subviewID string) SizeUnit
|
func GetColumnGap(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
### Свойство "column-separator"
|
### Свойство "column-separator"
|
||||||
|
|
||||||
|
@ -2431,7 +2431,7 @@ ViewBorder описана как
|
||||||
а не структура ViewBorder. Получить структуру ViewBorders без дополнительных преобразований можно
|
а не структура ViewBorder. Получить структуру ViewBorders без дополнительных преобразований можно
|
||||||
с помощью глобальной функции
|
с помощью глобальной функции
|
||||||
|
|
||||||
func GetColumnSeparator(view View, subviewID string) ViewBorder
|
func GetColumnSeparator(view View, subviewID ...string) ViewBorder
|
||||||
|
|
||||||
Вы также можете устанавливать отдельные атрибуты линии использую функцию Set интерфейса View.
|
Вы также можете устанавливать отдельные атрибуты линии использую функцию Set интерфейса View.
|
||||||
Для этого используются следующие свойства
|
Для этого используются следующие свойства
|
||||||
|
@ -2469,7 +2469,7 @@ ViewBorder описана как
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetAvoidBreak(view View, subviewID string) bool
|
func GetAvoidBreak(view View, subviewID ...string) bool
|
||||||
|
|
||||||
## StackLayout
|
## StackLayout
|
||||||
|
|
||||||
|
@ -2515,7 +2515,7 @@ StackLayout является контейнером, реализующим ин
|
||||||
|
|
||||||
func peek(layout rui.StackLayout) {
|
func peek(layout rui.StackLayout) {
|
||||||
views := layout.Views()
|
views := layout.Views()
|
||||||
if index := rui.GetCurrent(layout, ""); index >= 0 && index < len(views) {
|
if index := rui.GetCurrent(layout); index >= 0 && index < len(views) {
|
||||||
return views[index]
|
return views[index]
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -2584,7 +2584,7 @@ Cвойства "tab-close-button" может быть задано как дл
|
||||||
Для программного переключания вкладок присвойте данному свойству значение индекса новой текущего View.
|
Для программного переключания вкладок присвойте данному свойству значение индекса новой текущего View.
|
||||||
Прочитать значение свойства "current" можно с помощью функции
|
Прочитать значение свойства "current" можно с помощью функции
|
||||||
|
|
||||||
func GetCurrent(view View, subviewID string) int
|
func GetCurrent(view View, subviewID ...string) int
|
||||||
|
|
||||||
Также свойство "current" может быть использовано для отслеживания изменения текущего View:
|
Также свойство "current" может быть использовано для отслеживания изменения текущего View:
|
||||||
|
|
||||||
|
@ -2660,11 +2660,11 @@ View, "false" - скрывает.
|
||||||
|
|
||||||
Получить значение свойства "expanded" можно с помощью функции
|
Получить значение свойства "expanded" можно с помощью функции
|
||||||
|
|
||||||
func IsDetailsExpanded(view View, subviewID string) bool
|
func IsDetailsExpanded(view View, subviewID ...string) bool
|
||||||
|
|
||||||
а значение свойства "summary" можно получить с помощью функции
|
а значение свойства "summary" можно получить с помощью функции
|
||||||
|
|
||||||
func GetDetailsSummary(view View, subviewID string) View
|
func GetDetailsSummary(view View, subviewID ...string) View
|
||||||
|
|
||||||
## Resizable
|
## Resizable
|
||||||
|
|
||||||
|
@ -2708,7 +2708,7 @@ AllSides определено как
|
||||||
Выводимый текст задается string свойством "text" (константа Text).
|
Выводимый текст задается string свойством "text" (константа Text).
|
||||||
Помимо метода Get значение свойства "text" может быть получено с помощью функции
|
Помимо метода Get значение свойства "text" может быть получено с помощью функции
|
||||||
|
|
||||||
func GetText(view View, subviewID string) string
|
func GetText(view View, subviewID ...string) string
|
||||||
|
|
||||||
TextView наследует от View все свойства параметров текста ("font-name", "text-size", "text-color" и т.д.).
|
TextView наследует от View все свойства параметров текста ("font-name", "text-size", "text-color" и т.д.).
|
||||||
Кроме них добавляется еще один "text-overflow" (константа TextOverflow). Он определяет как обрезается
|
Кроме них добавляется еще один "text-overflow" (константа TextOverflow). Он определяет как обрезается
|
||||||
|
@ -2791,11 +2791,11 @@ NaturalSize() возвращает исходную ширину и высоту
|
||||||
|
|
||||||
Для получения значений свойств ImageView могут использоваться следующие функции:
|
Для получения значений свойств ImageView могут использоваться следующие функции:
|
||||||
|
|
||||||
func GetImageViewSource(view View, subviewID string) string
|
func GetImageViewSource(view View, subviewID ...string) string
|
||||||
func GetImageViewAltText(view View, subviewID string) string
|
func GetImageViewAltText(view View, subviewID ...string) string
|
||||||
func GetImageViewFit(view View, subviewID string) int
|
func GetImageViewFit(view View, subviewID ...string) int
|
||||||
func GetImageViewVerticalAlign(view View, subviewID string) int
|
func GetImageViewVerticalAlign(view View, subviewID ...string) int
|
||||||
func GetImageViewHorizontalAlign(view View, subviewID string) int
|
func GetImageViewHorizontalAlign(view View, subviewID ...string) int
|
||||||
|
|
||||||
## EditView
|
## EditView
|
||||||
|
|
||||||
|
@ -2851,15 +2851,15 @@ Cвойство "caret-color" может быть задано не только
|
||||||
|
|
||||||
Для получения значений свойств EditView могут использоваться следующие функции:
|
Для получения значений свойств EditView могут использоваться следующие функции:
|
||||||
|
|
||||||
func GetText(view View, subviewID string) string
|
func GetText(view View, subviewID ...string) string
|
||||||
func GetHint(view View, subviewID string) string
|
func GetHint(view View, subviewID ...string) string
|
||||||
func GetMaxLength(view View, subviewID string) int
|
func GetMaxLength(view View, subviewID ...string) int
|
||||||
func GetEditViewType(view View, subviewID string) int
|
func GetEditViewType(view View, subviewID ...string) int
|
||||||
func GetEditViewPattern(view View, subviewID string) string
|
func GetEditViewPattern(view View, subviewID ...string) string
|
||||||
func IsReadOnly(view View, subviewID string) bool
|
func IsReadOnly(view View, subviewID ...string) bool
|
||||||
func IsEditViewWrap(view View, subviewID string) bool
|
func IsEditViewWrap(view View, subviewID ...string) bool
|
||||||
func IsSpellcheck(view View, subviewID string) bool
|
func IsSpellcheck(view View, subviewID ...string) bool
|
||||||
func GetCaretColor(view View, subviewID string) Color
|
func GetCaretColor(view View, subviewID ...string) Color
|
||||||
|
|
||||||
Для отслеживания изменения текста используется событие "edit-text-changed" (константа
|
Для отслеживания изменения текста используется событие "edit-text-changed" (константа
|
||||||
EditTextChangedEvent). Основной слушатель события имеет следующий формат:
|
EditTextChangedEvent). Основной слушатель события имеет следующий формат:
|
||||||
|
@ -2870,7 +2870,7 @@ EditTextChangedEvent). Основной слушатель события име
|
||||||
|
|
||||||
Получить текущий список слушателей изменения текста можно с помощью функции
|
Получить текущий список слушателей изменения текста можно с помощью функции
|
||||||
|
|
||||||
func GetTextChangedListeners(view View, subviewID string) []func(EditView, string)
|
func GetTextChangedListeners(view View, subviewID ...string) []func(EditView, string)
|
||||||
|
|
||||||
## NumberPicker
|
## NumberPicker
|
||||||
|
|
||||||
|
@ -2903,7 +2903,7 @@ NumberPicker может работать в двух режимах: редак
|
||||||
Все эти типы приводятся к float64. Соответственно функция Get всегда возвращает float64 значение.
|
Все эти типы приводятся к float64. Соответственно функция Get всегда возвращает float64 значение.
|
||||||
Прочитано значение свойства "number-picker-value" может быть также с помощью функции:
|
Прочитано значение свойства "number-picker-value" может быть также с помощью функции:
|
||||||
|
|
||||||
func GetNumberPickerValue(view View, subviewID string) float64
|
func GetNumberPickerValue(view View, subviewID ...string) float64
|
||||||
|
|
||||||
На вводимые значения могут быть наложены ограничения. Для этого используются следующие свойства:
|
На вводимые значения могут быть наложены ограничения. Для этого используются следующие свойства:
|
||||||
|
|
||||||
|
@ -2921,8 +2921,8 @@ NumberPicker может работать в двух режимах: редак
|
||||||
|
|
||||||
Прочитать значения данных свойств можно с помощью функций:
|
Прочитать значения данных свойств можно с помощью функций:
|
||||||
|
|
||||||
func GetNumberPickerMinMax(view View, subviewID string) (float64, float64)
|
func GetNumberPickerMinMax(view View, subviewID ...string) (float64, float64)
|
||||||
func GetNumberPickerStep(view View, subviewID string) float64
|
func GetNumberPickerStep(view View, subviewID ...string) float64
|
||||||
|
|
||||||
Для отслеживания изменения вводимого значения используется событие "number-changed" (константа
|
Для отслеживания изменения вводимого значения используется событие "number-changed" (константа
|
||||||
NumberChangedEvent). Основной слушатель события имеет следующий формат:
|
NumberChangedEvent). Основной слушатель события имеет следующий формат:
|
||||||
|
@ -2933,7 +2933,7 @@ NumberChangedEvent). Основной слушатель события име
|
||||||
|
|
||||||
Получить текущий список слушателей изменения значения можно с помощью функции
|
Получить текущий список слушателей изменения значения можно с помощью функции
|
||||||
|
|
||||||
func GetNumberChangedListeners(view View, subviewID string) []func(NumberPicker, float64)
|
func GetNumberChangedListeners(view View, subviewID ...string) []func(NumberPicker, float64)
|
||||||
|
|
||||||
## DatePicker
|
## DatePicker
|
||||||
|
|
||||||
|
@ -2954,7 +2954,7 @@ NumberChangedEvent). Основной слушатель события име
|
||||||
Текст преобразуется в time.Time. Соответственно функция Get всегда возвращает time.Time значение.
|
Текст преобразуется в time.Time. Соответственно функция Get всегда возвращает time.Time значение.
|
||||||
Прочитано значение свойства "date-picker-value" может быть также с помощью функции:
|
Прочитано значение свойства "date-picker-value" может быть также с помощью функции:
|
||||||
|
|
||||||
func GetDatePickerValue(view View, subviewID string) time.Time
|
func GetDatePickerValue(view View, subviewID ...string) time.Time
|
||||||
|
|
||||||
На вводимые даты могут быть наложены ограничения. Для этого используются следующие свойства:
|
На вводимые даты могут быть наложены ограничения. Для этого используются следующие свойства:
|
||||||
|
|
||||||
|
@ -2966,9 +2966,9 @@ NumberChangedEvent). Основной слушатель события име
|
||||||
|
|
||||||
Прочитать значения данных свойств можно с помощью функций:
|
Прочитать значения данных свойств можно с помощью функций:
|
||||||
|
|
||||||
func GetDatePickerMin(view View, subviewID string) (time.Time, bool)
|
func GetDatePickerMin(view View, subviewID ...string) (time.Time, bool)
|
||||||
func GetDatePickerMax(view View, subviewID string) (time.Time, bool)
|
func GetDatePickerMax(view View, subviewID ...string) (time.Time, bool)
|
||||||
func GetDatePickerStep(view View, subviewID string) int
|
func GetDatePickerStep(view View, subviewID ...string) int
|
||||||
|
|
||||||
Для отслеживания изменения вводимого значения используется событие "date-changed" (константа
|
Для отслеживания изменения вводимого значения используется событие "date-changed" (константа
|
||||||
DateChangedEvent). Основной слушатель события имеет следующий формат:
|
DateChangedEvent). Основной слушатель события имеет следующий формат:
|
||||||
|
@ -2979,7 +2979,7 @@ DateChangedEvent). Основной слушатель события имее
|
||||||
|
|
||||||
Получить текущий список слушателей изменения даты можно с помощью функции
|
Получить текущий список слушателей изменения даты можно с помощью функции
|
||||||
|
|
||||||
func GetDateChangedListeners(view View, subviewID string) []func(DatePicker, time.Time)
|
func GetDateChangedListeners(view View, subviewID ...string) []func(DatePicker, time.Time)
|
||||||
|
|
||||||
## TimePicker
|
## TimePicker
|
||||||
|
|
||||||
|
@ -3000,7 +3000,7 @@ DateChangedEvent). Основной слушатель события имее
|
||||||
Текст преобразуется в time.Time. Соответственно функция Get всегда возвращает time.Time значение.
|
Текст преобразуется в time.Time. Соответственно функция Get всегда возвращает time.Time значение.
|
||||||
Прочитано значение свойства "time-picker-value" может быть также с помощью функции:
|
Прочитано значение свойства "time-picker-value" может быть также с помощью функции:
|
||||||
|
|
||||||
func GetTimePickerValue(view View, subviewID string) time.Time
|
func GetTimePickerValue(view View, subviewID ...string) time.Time
|
||||||
|
|
||||||
На вводимое время могут быть наложены ограничения. Для этого используются следующие свойства:
|
На вводимое время могут быть наложены ограничения. Для этого используются следующие свойства:
|
||||||
|
|
||||||
|
@ -3012,9 +3012,9 @@ DateChangedEvent). Основной слушатель события имее
|
||||||
|
|
||||||
Прочитать значения данных свойств можно с помощью функций:
|
Прочитать значения данных свойств можно с помощью функций:
|
||||||
|
|
||||||
func GetTimePickerMin(view View, subviewID string) (time.Time, bool)
|
func GetTimePickerMin(view View, subviewID ...string) (time.Time, bool)
|
||||||
func GetTimePickerMax(view View, subviewID string) (time.Time, bool)
|
func GetTimePickerMax(view View, subviewID ...string) (time.Time, bool)
|
||||||
func GetTimePickerStep(view View, subviewID string) int
|
func GetTimePickerStep(view View, subviewID ...string) int
|
||||||
|
|
||||||
Для отслеживания изменения вводимого значения используется событие "time-changed" (константа
|
Для отслеживания изменения вводимого значения используется событие "time-changed" (константа
|
||||||
TimeChangedEvent). Основной слушатель события имеет следующий формат:
|
TimeChangedEvent). Основной слушатель события имеет следующий формат:
|
||||||
|
@ -3025,7 +3025,7 @@ TimeChangedEvent). Основной слушатель события имее
|
||||||
|
|
||||||
Получить текущий список слушателей изменения даты можно с помощью функции
|
Получить текущий список слушателей изменения даты можно с помощью функции
|
||||||
|
|
||||||
func GetTimeChangedListeners(view View, subviewID string) []func(TimePicker, time.Time)
|
func GetTimeChangedListeners(view View, subviewID ...string) []func(TimePicker, time.Time)
|
||||||
|
|
||||||
## ColorPicker
|
## ColorPicker
|
||||||
|
|
||||||
|
@ -3044,7 +3044,7 @@ TimeChangedEvent). Основной слушатель события имее
|
||||||
|
|
||||||
Прочитано значение свойства "color-picker-value" может быть также с помощью функции:
|
Прочитано значение свойства "color-picker-value" может быть также с помощью функции:
|
||||||
|
|
||||||
func GetColorPickerValue(view View, subviewID string) Color
|
func GetColorPickerValue(view View, subviewID ...string) Color
|
||||||
|
|
||||||
Для отслеживания изменения выбранного цвета используется событие "color-changed" (константа
|
Для отслеживания изменения выбранного цвета используется событие "color-changed" (константа
|
||||||
ColorChangedEvent). Основной слушатель события имеет следующий формат:
|
ColorChangedEvent). Основной слушатель события имеет следующий формат:
|
||||||
|
@ -3055,7 +3055,7 @@ ColorChangedEvent). Основной слушатель события имее
|
||||||
|
|
||||||
Получить текущий список слушателей изменения даты можно с помощью функции
|
Получить текущий список слушателей изменения даты можно с помощью функции
|
||||||
|
|
||||||
func GetColorChangedListeners(view View, subviewID string) []func(ColorPicker, Color)
|
func GetColorChangedListeners(view View, subviewID ...string) []func(ColorPicker, Color)
|
||||||
|
|
||||||
## FilePicker
|
## FilePicker
|
||||||
|
|
||||||
|
@ -3084,7 +3084,7 @@ ColorChangedEvent). Основной слушатель события имее
|
||||||
|
|
||||||
а также соответствующие им глобальные функции
|
а также соответствующие им глобальные функции
|
||||||
|
|
||||||
func GetFilePickerFiles(view View, subviewID string) []FileInfo
|
func GetFilePickerFiles(view View, subviewID ...string) []FileInfo
|
||||||
func LoadFilePickerFile(view View, subviewID string, file FileInfo, result func(FileInfo, []byte))
|
func LoadFilePickerFile(view View, subviewID string, file FileInfo, result func(FileInfo, []byte))
|
||||||
|
|
||||||
Функции Files/GetFilePickerFiles возвращают список выбранных файлов в виде среза структур FileInfo. Структура FileInfo объявлена как
|
Функции Files/GetFilePickerFiles возвращают список выбранных файлов в виде среза структур FileInfo. Структура FileInfo объявлена как
|
||||||
|
@ -3136,7 +3136,7 @@ FileInfo содержит только информацию о файле, но
|
||||||
|
|
||||||
Получить текущий список слушателей изменения списка файлов можно с помощью функции
|
Получить текущий список слушателей изменения списка файлов можно с помощью функции
|
||||||
|
|
||||||
func GetFileSelectedListeners(view View, subviewID string) []func(FilePicker, []FileInfo)
|
func GetFileSelectedListeners(view View, subviewID ...string) []func(FilePicker, []FileInfo)
|
||||||
|
|
||||||
## DropDownList
|
## DropDownList
|
||||||
|
|
||||||
|
@ -3157,7 +3157,7 @@ float32, float64, int, int8…int64, uint, uint8…uint64.
|
||||||
Все эти типы данных преопразуются в []string и присваиваются свойству "items".
|
Все эти типы данных преопразуются в []string и присваиваются свойству "items".
|
||||||
Прочитать значение свойства "items" можно с помощью функции
|
Прочитать значение свойства "items" можно с помощью функции
|
||||||
|
|
||||||
func GetDropDownItems(view View, subviewID string) []string
|
func GetDropDownItems(view View, subviewID ...string) []string
|
||||||
|
|
||||||
Можно запретить выбор отдельных пунктов. Для этого используется свойство "disabled-items" (константа DisabledItems).
|
Можно запретить выбор отдельных пунктов. Для этого используется свойство "disabled-items" (константа DisabledItems).
|
||||||
Данному свойству присваивается массив индексов запрещенных пунктов. Индекс может задаваться или числом или в виде текста
|
Данному свойству присваивается массив индексов запрещенных пунктов. Индекс может задаваться или числом или в виде текста
|
||||||
|
@ -3172,12 +3172,12 @@ float32, float64, int, int8…int64, uint, uint8…uint64.
|
||||||
Все эти типы данных преопразуются в []any и присваиваются свойству "disabled-items".
|
Все эти типы данных преопразуются в []any и присваиваются свойству "disabled-items".
|
||||||
Прочитать значение свойства "disabled-items" можно с помощью функции
|
Прочитать значение свойства "disabled-items" можно с помощью функции
|
||||||
|
|
||||||
func GetDropDownDisabledItems(view View, subviewID string) []int
|
func GetDropDownDisabledItems(view View, subviewID ...string) []int
|
||||||
|
|
||||||
Выбранное значение определяется int свойством "current" (константа Current). Значение по умолчанию 0.
|
Выбранное значение определяется int свойством "current" (константа Current). Значение по умолчанию 0.
|
||||||
Прочитать значение данного свойства можно с помощью функции
|
Прочитать значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetCurrent(view View, subviewID string) int
|
func GetCurrent(view View, subviewID ...string) int
|
||||||
|
|
||||||
Для отслеживания изменения свойства "current" используется событие "drop-down-event" (константа
|
Для отслеживания изменения свойства "current" используется событие "drop-down-event" (константа
|
||||||
DropDownEvent). Основной слушатель события имеет следующий формат:
|
DropDownEvent). Основной слушатель события имеет следующий формат:
|
||||||
|
@ -3188,7 +3188,7 @@ DropDownEvent). Основной слушатель события имеет с
|
||||||
|
|
||||||
Получить текущий список слушателей изменения даты можно с помощью функции
|
Получить текущий список слушателей изменения даты можно с помощью функции
|
||||||
|
|
||||||
func GetDropDownListeners(view View, subviewID string) []func(DropDownList, int)
|
func GetDropDownListeners(view View, subviewID ...string) []func(DropDownList, int)
|
||||||
|
|
||||||
## ProgressBar
|
## ProgressBar
|
||||||
|
|
||||||
|
@ -3209,8 +3209,8 @@ int8…int64, uint, uint8…uint64
|
||||||
|
|
||||||
Прочитать значение данных свойств можно с помощью функций
|
Прочитать значение данных свойств можно с помощью функций
|
||||||
|
|
||||||
func GetProgressBarMax(view View, subviewID string) float64
|
func GetProgressBarMax(view View, subviewID ...string) float64
|
||||||
func GetProgressBarValue(view View, subviewID string) float64
|
func GetProgressBarValue(view View, subviewID ...string) float64
|
||||||
|
|
||||||
## Button
|
## Button
|
||||||
|
|
||||||
|
@ -3269,7 +3269,7 @@ View и string преобразуется в string, далее все string в
|
||||||
с помощью функции NewViewListAdapter получается ListAdapter.
|
с помощью функции NewViewListAdapter получается ListAdapter.
|
||||||
|
|
||||||
Если элементы списка меняются в ходе работы, то после изменения необходимо вызывать или функцию
|
Если элементы списка меняются в ходе работы, то после изменения необходимо вызывать или функцию
|
||||||
ReloadListViewData() интерфейса ListView или глобальную функцию ReloadListViewData(view View, subviewID string).
|
ReloadListViewData() интерфейса ListView или глобальную функцию ReloadListViewData(view View, subviewID ...string).
|
||||||
Данные функции обновляют отображаемые элементы списка.
|
Данные функции обновляют отображаемые элементы списка.
|
||||||
|
|
||||||
### Свойство "orientation"
|
### Свойство "orientation"
|
||||||
|
@ -3291,7 +3291,7 @@ ReloadListViewData() интерфейса ListView или глобальную
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetListOrientation(view View, subviewID string) int
|
func GetListOrientation(view View, subviewID ...string) int
|
||||||
|
|
||||||
### Свойство "wrap"
|
### Свойство "wrap"
|
||||||
|
|
||||||
|
@ -3308,7 +3308,7 @@ ReloadListViewData() интерфейса ListView или глобальную
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetListWrap(view View, subviewID string) int
|
func GetListWrap(view View, subviewID ...string) int
|
||||||
|
|
||||||
### Свойства "item-width" и "item-height"
|
### Свойства "item-width" и "item-height"
|
||||||
|
|
||||||
|
@ -3321,8 +3321,8 @@ ReloadListViewData() интерфейса ListView или глобальную
|
||||||
|
|
||||||
Получить значения данных свойств можно с помощью функций
|
Получить значения данных свойств можно с помощью функций
|
||||||
|
|
||||||
func GetListItemWidth(view View, subviewID string) SizeUnit
|
func GetListItemWidth(view View, subviewID ...string) SizeUnit
|
||||||
func GetListItemHeight(view View, subviewID string) SizeUnit
|
func GetListItemHeight(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
### Свойство "item-vertical-align"
|
### Свойство "item-vertical-align"
|
||||||
|
|
||||||
|
@ -3338,7 +3338,7 @@ ReloadListViewData() интерфейса ListView или глобальную
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetListItemVerticalAlign(view View, subviewID string) int
|
func GetListItemVerticalAlign(view View, subviewID ...string) int
|
||||||
|
|
||||||
### Свойство "item-horizontal-align"
|
### Свойство "item-horizontal-align"
|
||||||
|
|
||||||
|
@ -3354,7 +3354,7 @@ ReloadListViewData() интерфейса ListView или глобальную
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
GetListItemHorizontalAlign(view View, subviewID string) int
|
GetListItemHorizontalAlign(view View, subviewID ...string) int
|
||||||
|
|
||||||
### Свойство "current"
|
### Свойство "current"
|
||||||
|
|
||||||
|
@ -3365,7 +3365,7 @@ int свойство "current" (константа Current). Значение "c
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetCurrent(view View, subviewID string) int
|
func GetCurrent(view View, subviewID ...string) int
|
||||||
|
|
||||||
### Свойства "list-item-style", "current-style" и "current-inactive-style"
|
### Свойства "list-item-style", "current-style" и "current-inactive-style"
|
||||||
|
|
||||||
|
@ -3393,13 +3393,13 @@ int свойство "current" (константа Current). Значение "c
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetListViewCheckbox(view View, subviewID string) int
|
func GetListViewCheckbox(view View, subviewID ...string) int
|
||||||
|
|
||||||
Получить/установить список помеченных пунктов можно с помощью свойства "checked" (константа Checked).
|
Получить/установить список помеченных пунктов можно с помощью свойства "checked" (константа Checked).
|
||||||
Данное свойство имеет тип []int и хранит индексы помеченных элементов.
|
Данное свойство имеет тип []int и хранит индексы помеченных элементов.
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetListViewCheckedItems(view View, subviewID string) []int
|
func GetListViewCheckedItems(view View, subviewID ...string) []int
|
||||||
|
|
||||||
Проверить помечен ли конкретный элемент можно с помощью функции
|
Проверить помечен ли конкретный элемент можно с помощью функции
|
||||||
|
|
||||||
|
@ -3430,8 +3430,8 @@ CheckboxHorizontalAlign и CheckboxVerticalAlign)
|
||||||
|
|
||||||
Получить значения свойств можно "checkbox-horizontal-align" и "checkbox-vertical-align" с помощью функций
|
Получить значения свойств можно "checkbox-horizontal-align" и "checkbox-vertical-align" с помощью функций
|
||||||
|
|
||||||
func GetListViewCheckboxHorizontalAlign(view View, subviewID string) int
|
func GetListViewCheckboxHorizontalAlign(view View, subviewID ...string) int
|
||||||
func GetListViewCheckboxVerticalAlign(view View, subviewID string) int
|
func GetListViewCheckboxVerticalAlign(view View, subviewID ...string) int
|
||||||
|
|
||||||
### События ListView
|
### События ListView
|
||||||
|
|
||||||
|
@ -3451,9 +3451,9 @@ CheckboxHorizontalAlign и CheckboxVerticalAlign)
|
||||||
|
|
||||||
Получить списки слушателей данных событий можно с помощью функций:
|
Получить списки слушателей данных событий можно с помощью функций:
|
||||||
|
|
||||||
func GetListItemClickedListeners(view View, subviewID string) []func(ListView, int)
|
func GetListItemClickedListeners(view View, subviewID ...string) []func(ListView, int)
|
||||||
func GetListItemSelectedListeners(view View, subviewID string) []func(ListView, int)
|
func GetListItemSelectedListeners(view View, subviewID ...string) []func(ListView, int)
|
||||||
func GetListItemCheckedListeners(view View, subviewID string) []func(ListView, []int)
|
func GetListItemCheckedListeners(view View, subviewID ...string) []func(ListView, []int)
|
||||||
|
|
||||||
## TableView
|
## TableView
|
||||||
|
|
||||||
|
@ -3650,7 +3650,7 @@ TableColumnStyle объявлена как
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetTableVerticalAlign(view View, subviewID string) int
|
func GetTableVerticalAlign(view View, subviewID ...string) int
|
||||||
|
|
||||||
### Свойство "selection-mode"
|
### Свойство "selection-mode"
|
||||||
|
|
||||||
|
@ -3672,7 +3672,7 @@ TableColumnStyle объявлена как
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetSelectionMode(view View, subviewID string) int
|
func GetSelectionMode(view View, subviewID ...string) int
|
||||||
|
|
||||||
### Свойство "current"
|
### Свойство "current"
|
||||||
|
|
||||||
|
@ -3690,7 +3690,7 @@ TableColumnStyle объявлена как
|
||||||
|
|
||||||
Получить значение данного свойства можно с помощью функции
|
Получить значение данного свойства можно с помощью функции
|
||||||
|
|
||||||
func GetTableCurrent(view View, subviewID string) CellIndex
|
func GetTableCurrent(view View, subviewID ...string) CellIndex
|
||||||
|
|
||||||
### Свойство "allow-selection"
|
### Свойство "allow-selection"
|
||||||
|
|
||||||
|
@ -4638,7 +4638,7 @@ x1 и x2 должны быть в диапазоне [0, 1]. Вы можете
|
||||||
|
|
||||||
Для получения текущего списка постоянных анимаций перехода используется функция
|
Для получения текущего списка постоянных анимаций перехода используется функция
|
||||||
|
|
||||||
func GetTransition(view View, subviewID string) Params
|
func GetTransition(view View, subviewID ...string) Params
|
||||||
|
|
||||||
Добавлять новые анимации перехода рекомендуется с помощью функции
|
Добавлять новые анимации перехода рекомендуется с помощью функции
|
||||||
|
|
||||||
|
@ -4675,10 +4675,10 @@ x1 и x2 должны быть в диапазоне [0, 1]. Вы можете
|
||||||
|
|
||||||
Получить списки слушателей событий анимации перехода с помощью функций:
|
Получить списки слушателей событий анимации перехода с помощью функций:
|
||||||
|
|
||||||
func GetTransitionRunListeners(view View, subviewID string) []func(View, string)
|
func GetTransitionRunListeners(view View, subviewID ...string) []func(View, string)
|
||||||
func GetTransitionStartListeners(view View, subviewID string) []func(View, string)
|
func GetTransitionStartListeners(view View, subviewID ...string) []func(View, string)
|
||||||
func GetTransitionEndListeners(view View, subviewID string) []func(View, string)
|
func GetTransitionEndListeners(view View, subviewID ...string) []func(View, string)
|
||||||
func GetTransitionCancelListeners(view View, subviewID string) []func(View, string)
|
func GetTransitionCancelListeners(view View, subviewID ...string) []func(View, string)
|
||||||
|
|
||||||
### Cценарий анимации
|
### Cценарий анимации
|
||||||
|
|
||||||
|
@ -4807,10 +4807,10 @@ Safari и Firefox.
|
||||||
|
|
||||||
Получить списки слушателей событий анимации с помощью функций:
|
Получить списки слушателей событий анимации с помощью функций:
|
||||||
|
|
||||||
func GetAnimationStartListeners(view View, subviewID string) []func(View, string)
|
func GetAnimationStartListeners(view View, subviewID ...string) []func(View, string)
|
||||||
func GetAnimationEndListeners(view View, subviewID string) []func(View, string)
|
func GetAnimationEndListeners(view View, subviewID ...string) []func(View, string)
|
||||||
func GetAnimationCancelListeners(view View, subviewID string) []func(View, string)
|
func GetAnimationCancelListeners(view View, subviewID ...string) []func(View, string)
|
||||||
func GetAnimationIterationListeners(view View, subviewID string) []func(View, string)
|
func GetAnimationIterationListeners(view View, subviewID ...string) []func(View, string)
|
||||||
|
|
||||||
## Сессия
|
## Сессия
|
||||||
|
|
||||||
|
|
306
README.md
306
README.md
|
@ -540,17 +540,17 @@ After getting the value with the Get function, you must typecast:
|
||||||
|
|
||||||
This is quite cumbersome, therefore for each property there is a global function of the same name with the Get prefix,
|
This is quite cumbersome, therefore for each property there is a global function of the same name with the Get prefix,
|
||||||
which performs the given cast, gets the value of the constant, if necessary, and returns it.
|
which performs the given cast, gets the value of the constant, if necessary, and returns it.
|
||||||
All functions of this type have two arguments: View and subviewID string.
|
All functions of this type have two arguments: View and subviewID ...string.
|
||||||
The first argument is the root View, the second is the ID of the child View.
|
The first argument is the root View, the second is the ID of the child View.
|
||||||
If the ID of the child View is passed as "", then the value of the root View is returned.
|
If the ID of the child View is not specified or is passed as "", then the value of the root View is returned.
|
||||||
For the properties "width", "height", "min-width", "min-height", "max-width", "max-height" these are functions:
|
For the properties "width", "height", "min-width", "min-height", "max-width", "max-height" these are functions:
|
||||||
|
|
||||||
func GetWidth(view View, subviewID string) SizeUnit
|
func GetWidth(view View, subviewID ...string) SizeUnit
|
||||||
func GetHeight(view View, subviewID string) SizeUnit
|
func GetHeight(view View, subviewID ...string) SizeUnit
|
||||||
func GetMinWidth(view View, subviewID string) SizeUnit
|
func GetMinWidth(view View, subviewID ...string) SizeUnit
|
||||||
func GetMinHeight(view View, subviewID string) SizeUnit
|
func GetMinHeight(view View, subviewID ...string) SizeUnit
|
||||||
func GetMaxWidth(view View, subviewID string) SizeUnit
|
func GetMaxWidth(view View, subviewID ...string) SizeUnit
|
||||||
func GetMaxHeight(view View, subviewID string) SizeUnit
|
func GetMaxHeight(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
### "resize" property
|
### "resize" property
|
||||||
|
|
||||||
|
@ -569,7 +569,7 @@ The default value for a multiline text editor is BothResize(1).
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetResize(view View, subviewID string) int
|
func GetResize(view View, subviewID ...string) int
|
||||||
|
|
||||||
### "margin" and "padding" properties
|
### "margin" and "padding" properties
|
||||||
|
|
||||||
|
@ -609,8 +609,8 @@ can be converted to a more convenient Bounds structure:
|
||||||
|
|
||||||
Global functions can also be used for this:
|
Global functions can also be used for this:
|
||||||
|
|
||||||
func GetMargin(view View, subviewID string) Bounds
|
func GetMargin(view View, subviewID ...string) Bounds
|
||||||
func GetPadding(view View, subviewID string) Bounds
|
func GetPadding(view View, subviewID ...string) Bounds
|
||||||
|
|
||||||
The textual representation of the BoundsProperty is as follows:
|
The textual representation of the BoundsProperty is as follows:
|
||||||
|
|
||||||
|
@ -744,7 +744,7 @@ This converts the ViewBorders to BorderProperty. Therefore, when the property is
|
||||||
the Get function will return the BorderProperty interface, not the ViewBorders structure.
|
the Get function will return the BorderProperty interface, not the ViewBorders structure.
|
||||||
You can get the ViewBorders structure without additional transformations using the global function
|
You can get the ViewBorders structure without additional transformations using the global function
|
||||||
|
|
||||||
func GetBorder(view View, subviewID string) ViewBorders
|
func GetBorder(view View, subviewID ...string) ViewBorders
|
||||||
|
|
||||||
Besides the auxiliary properties "style", "width" and "color" there are 4 more: "left", "right", "top" and "bottom".
|
Besides the auxiliary properties "style", "width" and "color" there are 4 more: "left", "right", "top" and "bottom".
|
||||||
As a value, these properties can only take the ViewBorder structure and allow you to set all the attributes of the line of the side of the same name.
|
As a value, these properties can only take the ViewBorder structure and allow you to set all the attributes of the line of the side of the same name.
|
||||||
|
@ -880,7 +880,7 @@ This converts BoxRadius to RadiusProperty. Therefore, when the property is read,
|
||||||
the Get function will return the RadiusProperty interface, not the BoxRadius structure.
|
the Get function will return the RadiusProperty interface, not the BoxRadius structure.
|
||||||
You can get the BoxRadius structure without additional transformations using the global function
|
You can get the BoxRadius structure without additional transformations using the global function
|
||||||
|
|
||||||
func GetRadius(view View, subviewID string) BoxRadius
|
func GetRadius(view View, subviewID ...string) BoxRadius
|
||||||
|
|
||||||
You can also set individual radii using the Set function of the View interface.
|
You can also set individual radii using the Set function of the View interface.
|
||||||
For this, the following properties are used
|
For this, the following properties are used
|
||||||
|
@ -955,7 +955,7 @@ The ViewShadow text representation has the following format:
|
||||||
|
|
||||||
You can get the value of "shadow" property using the function
|
You can get the value of "shadow" property using the function
|
||||||
|
|
||||||
func GetViewShadows(view View, subviewID string) []ViewShadow
|
func GetViewShadows(view View, subviewID ...string) []ViewShadow
|
||||||
|
|
||||||
If no shadow is specified, then this function will return an empty array
|
If no shadow is specified, then this function will return an empty array
|
||||||
|
|
||||||
|
@ -1214,7 +1214,7 @@ Where 1 - View is fully opaque, 0 - fully transparent.
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetOpacity(view View, subviewID string) float64
|
func GetOpacity(view View, subviewID ...string) float64
|
||||||
|
|
||||||
### "z-index" property
|
### "z-index" property
|
||||||
|
|
||||||
|
@ -1224,7 +1224,7 @@ higher z-indexes overlap elements with lower.
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetZIndex(view View, subviewID string) int
|
func GetZIndex(view View, subviewID ...string) int
|
||||||
|
|
||||||
### "visibility" property
|
### "visibility" property
|
||||||
|
|
||||||
|
@ -1238,7 +1238,7 @@ The "visibility" int property (constant Visibility) specifies the visibility of
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetVisibility(view View, subviewID string) int
|
func GetVisibility(view View, subviewID ...string) int
|
||||||
|
|
||||||
### "filter" and "backdrop-filter" properties
|
### "filter" and "backdrop-filter" properties
|
||||||
|
|
||||||
|
@ -1274,8 +1274,8 @@ Example
|
||||||
|
|
||||||
You can get the value of the current filter using functions
|
You can get the value of the current filter using functions
|
||||||
|
|
||||||
func GetFilter(view View, subviewID string) ViewFilter
|
func GetFilter(view View, subviewID ...string) ViewFilter
|
||||||
func GetBackdropFilter(view View, subviewID string) ViewFilter
|
func GetBackdropFilter(view View, subviewID ...string) ViewFilter
|
||||||
|
|
||||||
### "semantics" property
|
### "semantics" property
|
||||||
|
|
||||||
|
@ -1322,7 +1322,7 @@ if it is not available, then the second, third, etc.
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetFontName(view View, subviewID string) string
|
func GetFontName(view View, subviewID ...string) string
|
||||||
|
|
||||||
#### "text-color" property
|
#### "text-color" property
|
||||||
|
|
||||||
|
@ -1330,7 +1330,7 @@ Property "text-color" (constant TextColor) - the Color property determines the c
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetTextColor(view View, subviewID string) Color
|
func GetTextColor(view View, subviewID ...string) Color
|
||||||
|
|
||||||
#### "text-size" property
|
#### "text-size" property
|
||||||
|
|
||||||
|
@ -1338,7 +1338,7 @@ Property "text-size" (constant TextSize) - the SizeUnit property determines the
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetTextSize(view View, subviewID string) SizeUnit
|
func GetTextSize(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
#### "italic" property
|
#### "italic" property
|
||||||
|
|
||||||
|
@ -1346,7 +1346,7 @@ The "italic" property (constant Italic) is the bool property. If the value is tr
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func IsItalic(view View, subviewID string) bool
|
func IsItalic(view View, subviewID ...string) bool
|
||||||
|
|
||||||
#### "small-caps" property
|
#### "small-caps" property
|
||||||
|
|
||||||
|
@ -1354,7 +1354,7 @@ The "small-caps" property (SmallCaps constant) is the bool property. If the valu
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func IsSmallCaps(view View, subviewID string) bool
|
func IsSmallCaps(view View, subviewID ...string) bool
|
||||||
|
|
||||||
#### "white-space" property
|
#### "white-space" property
|
||||||
|
|
||||||
|
@ -1426,9 +1426,9 @@ These bool properties set decorative lines on the text:
|
||||||
|
|
||||||
You can get the value of these properties using the functions
|
You can get the value of these properties using the functions
|
||||||
|
|
||||||
func IsStrikethrough(view View, subviewID string) bool
|
func IsStrikethrough(view View, subviewID ...string) bool
|
||||||
func IsOverline(view View, subviewID string) bool
|
func IsOverline(view View, subviewID ...string) bool
|
||||||
func IsUnderline(view View, subviewID string) bool
|
func IsUnderline(view View, subviewID ...string) bool
|
||||||
|
|
||||||
#### "text-line-thickness" property
|
#### "text-line-thickness" property
|
||||||
|
|
||||||
|
@ -1437,7 +1437,7 @@ of decorative lines on the text set using the "strikethrough", "overline" and "u
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
GetTextLineThickness(view View, subviewID string) SizeUnit
|
GetTextLineThickness(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
#### "text-line-style" property
|
#### "text-line-style" property
|
||||||
|
|
||||||
|
@ -1456,7 +1456,7 @@ Possible values are:
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetTextLineStyle(view View, subviewID string) int
|
func GetTextLineStyle(view View, subviewID ...string) int
|
||||||
|
|
||||||
#### "text-line-color" property
|
#### "text-line-color" property
|
||||||
|
|
||||||
|
@ -1466,7 +1466,7 @@ If the property is not defined, then the text color specified by the "text-color
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetTextLineColor(view View, subviewID string) Color
|
func GetTextLineColor(view View, subviewID ...string) Color
|
||||||
|
|
||||||
#### "text-weight" property
|
#### "text-weight" property
|
||||||
|
|
||||||
|
@ -1488,7 +1488,7 @@ Some fonts are only available in normal or bold style. In this case, the value o
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetTextWeight(view View, subviewID string) int
|
func GetTextWeight(view View, subviewID ...string) int
|
||||||
|
|
||||||
#### "text-shadow" property
|
#### "text-shadow" property
|
||||||
|
|
||||||
|
@ -1513,7 +1513,7 @@ ViewShadow, ViewShadow array, ViewShadow textual representation can be assigned
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetTextShadows(view View, subviewID string) []ViewShadow
|
func GetTextShadows(view View, subviewID ...string) []ViewShadow
|
||||||
|
|
||||||
If no shadow is specified, then this function will return an empty array
|
If no shadow is specified, then this function will return an empty array
|
||||||
|
|
||||||
|
@ -1530,7 +1530,7 @@ The "text-align" int property (constant TextAlign) sets the alignment of the tex
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetTextAlign(view View, subviewID string) int
|
func GetTextAlign(view View, subviewID ...string) int
|
||||||
|
|
||||||
#### "text-indent" property
|
#### "text-indent" property
|
||||||
|
|
||||||
|
@ -1539,7 +1539,7 @@ before the first line of text.
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetTextIndent(view View, subviewID string) SizeUnit
|
func GetTextIndent(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
#### "letter-spacing" property
|
#### "letter-spacing" property
|
||||||
|
|
||||||
|
@ -1549,7 +1549,7 @@ The user agent can choose not to increase or decrease the letter spacing to alig
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetLetterSpacing(view View, subviewID string) SizeUnit
|
func GetLetterSpacing(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
#### "word-spacing" property
|
#### "word-spacing" property
|
||||||
|
|
||||||
|
@ -1559,7 +1559,7 @@ Otherwise, it specifies additional spacing in addition to the inner word spacing
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetWordSpacing(view View, subviewID string) SizeUnit
|
func GetWordSpacing(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
#### "line-height" property
|
#### "line-height" property
|
||||||
|
|
||||||
|
@ -1567,7 +1567,7 @@ The "line-height" (LineHeight constant) SizeUnit property sets the amount of spa
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetLineHeight(view View, subviewID string) SizeUnit
|
func GetLineHeight(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
#### "text-transform" property
|
#### "text-transform" property
|
||||||
|
|
||||||
|
@ -1582,7 +1582,7 @@ The "text-transform" (TextTransform constant) int property defines the case of c
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetTextTransform(view View, subviewID string) int
|
func GetTextTransform(view View, subviewID ...string) int
|
||||||
|
|
||||||
#### "text-direction" property
|
#### "text-direction" property
|
||||||
|
|
||||||
|
@ -1596,7 +1596,7 @@ The "text-direction" (TextDirection constant) int property determines the direct
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetTextDirection(view View, subviewID string) int
|
func GetTextDirection(view View, subviewID ...string) int
|
||||||
|
|
||||||
#### "writing-mode" property
|
#### "writing-mode" property
|
||||||
The "writing-mode" (WritingMode constant) int property defines how the lines of text are arranged
|
The "writing-mode" (WritingMode constant) int property defines how the lines of text are arranged
|
||||||
|
@ -1612,7 +1612,7 @@ Possible values are:
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetWritingMode(view View, subviewID string) int
|
func GetWritingMode(view View, subviewID ...string) int
|
||||||
|
|
||||||
#### "vertical-text-orientation" property
|
#### "vertical-text-orientation" property
|
||||||
|
|
||||||
|
@ -1627,7 +1627,7 @@ Possible values are:
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetVerticalTextOrientation(view View, subviewID string) int
|
func GetVerticalTextOrientation(view View, subviewID ...string) int
|
||||||
|
|
||||||
#### "user-select" property
|
#### "user-select" property
|
||||||
|
|
||||||
|
@ -1643,7 +1643,7 @@ it will also apply to all child elements
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func IsUserSelect(view View, subviewID string) bool
|
func IsUserSelect(view View, subviewID ...string) bool
|
||||||
|
|
||||||
### Transformation properties
|
### Transformation properties
|
||||||
|
|
||||||
|
@ -1661,7 +1661,7 @@ The vanishing point is by default located in the center of the element, but it c
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetPerspective(view View, subviewID string) SizeUnit
|
func GetPerspective(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
#### "perspective-origin-x" and "perspective-origin-y" properties
|
#### "perspective-origin-x" and "perspective-origin-y" properties
|
||||||
|
|
||||||
|
@ -1672,7 +1672,7 @@ By default, the "perspective-origin-x" and "perspective-origin-y" properties are
|
||||||
|
|
||||||
You can get the value of these properties using the function
|
You can get the value of these properties using the function
|
||||||
|
|
||||||
func GetPerspectiveOrigin(view View, subviewID string) (SizeUnit, SizeUnit)
|
func GetPerspectiveOrigin(view View, subviewID ...string) (SizeUnit, SizeUnit)
|
||||||
|
|
||||||
#### "backface-visibility" property
|
#### "backface-visibility" property
|
||||||
|
|
||||||
|
@ -1685,7 +1685,7 @@ the back face can be visible when the transformation causes the element to rotat
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetBackfaceVisible(view View, subviewID string) bool
|
func GetBackfaceVisible(view View, subviewID ...string) bool
|
||||||
|
|
||||||
#### "origin-x", "origin-y", and "origin-z" properties
|
#### "origin-x", "origin-y", and "origin-z" properties
|
||||||
|
|
||||||
|
@ -1697,7 +1697,7 @@ The "origin-z" property is ignored if the perspective property is not set.
|
||||||
|
|
||||||
You can get the value of these properties using the function
|
You can get the value of these properties using the function
|
||||||
|
|
||||||
func GetOrigin(view View, subviewID string) (SizeUnit, SizeUnit, SizeUnit)
|
func GetOrigin(view View, subviewID ...string) (SizeUnit, SizeUnit, SizeUnit)
|
||||||
|
|
||||||
#### "translate-x", "translate-y", and "translate-z" properties
|
#### "translate-x", "translate-y", and "translate-z" properties
|
||||||
|
|
||||||
|
@ -1708,7 +1708,7 @@ The translate-z property is ignored if the perspective property is not set.
|
||||||
|
|
||||||
You can get the value of these properties using the function
|
You can get the value of these properties using the function
|
||||||
|
|
||||||
func GetTranslate(view View, subviewID string) (SizeUnit, SizeUnit, SizeUnit)
|
func GetTranslate(view View, subviewID ...string) (SizeUnit, SizeUnit, SizeUnit)
|
||||||
|
|
||||||
#### "scale-x", "scale-y" and "scale-z" properties
|
#### "scale-x", "scale-y" and "scale-z" properties
|
||||||
|
|
||||||
|
@ -1721,7 +1721,7 @@ The "scale-z" property is ignored if the "perspective" property is not set.
|
||||||
|
|
||||||
You can get the value of these properties using the function
|
You can get the value of these properties using the function
|
||||||
|
|
||||||
func GetScale(view View, subviewID string) (float64, float64, float64)
|
func GetScale(view View, subviewID ...string) (float64, float64, float64)
|
||||||
|
|
||||||
#### "rotate" property
|
#### "rotate" property
|
||||||
|
|
||||||
|
@ -1738,7 +1738,7 @@ The "rotate-z" property is ignored if the "perspective" property is not set.
|
||||||
|
|
||||||
You can get the value of these properties, as well as the "rotate" property, using the function
|
You can get the value of these properties, as well as the "rotate" property, using the function
|
||||||
|
|
||||||
func GetRotate(view View, subviewID string) (float64, float64, float64, AngleUnit)
|
func GetRotate(view View, subviewID ...string) (float64, float64, float64, AngleUnit)
|
||||||
|
|
||||||
#### "skew-x" and "skew-y" properties
|
#### "skew-x" and "skew-y" properties
|
||||||
|
|
||||||
|
@ -1748,7 +1748,7 @@ specified by the transform-origin-x and transform-origin-y properties.
|
||||||
|
|
||||||
You can get the value of these properties using the function
|
You can get the value of these properties using the function
|
||||||
|
|
||||||
func GetSkew(view View, subviewID string) (AngleUnit, AngleUnit)
|
func GetSkew(view View, subviewID ...string) (AngleUnit, AngleUnit)
|
||||||
|
|
||||||
### User data
|
### User data
|
||||||
|
|
||||||
|
@ -1788,8 +1788,8 @@ You can also use listeners in the following formats:
|
||||||
|
|
||||||
You can get lists of listeners for keyboard events using the functions:
|
You can get lists of listeners for keyboard events using the functions:
|
||||||
|
|
||||||
func GetKeyDownListeners(view View, subviewID string) []func(View, KeyEvent)
|
func GetKeyDownListeners(view View, subviewID ...string) []func(View, KeyEvent)
|
||||||
func GetKeyUpListeners(view View, subviewID string) []func(View, KeyEvent)
|
func GetKeyUpListeners(view View, subviewID ...string) []func(View, KeyEvent)
|
||||||
|
|
||||||
### Focus events
|
### Focus events
|
||||||
|
|
||||||
|
@ -1810,8 +1810,8 @@ You can also use a listener in the following format:
|
||||||
|
|
||||||
You can get lists of listeners for focus events using the functions:
|
You can get lists of listeners for focus events using the functions:
|
||||||
|
|
||||||
func GetFocusListeners(view View, subviewID string) []func(View)
|
func GetFocusListeners(view View, subviewID ...string) []func(View)
|
||||||
func GetLostFocusListeners(view View, subviewID string) []func(View)
|
func GetLostFocusListeners(view View, subviewID ...string) []func(View)
|
||||||
|
|
||||||
### Mouse events
|
### Mouse events
|
||||||
|
|
||||||
|
@ -1879,14 +1879,14 @@ You can also use listeners in the following formats:
|
||||||
|
|
||||||
You can get lists of listeners for mouse events using the functions:
|
You can get lists of listeners for mouse events using the functions:
|
||||||
|
|
||||||
func GetMouseDownListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetMouseDownListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
func GetMouseUpListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetMouseUpListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
func GetMouseMoveListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetMouseMoveListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
func GetMouseOverListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetMouseOverListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
func GetMouseOutListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetMouseOutListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
func GetClickListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetClickListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
func GetDoubleClickListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetDoubleClickListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
func GetContextMenuListeners(view View, subviewID string) []func(View, MouseEvent)
|
func GetContextMenuListeners(view View, subviewID ...string) []func(View, MouseEvent)
|
||||||
|
|
||||||
### Pointer Events
|
### Pointer Events
|
||||||
|
|
||||||
|
@ -1933,12 +1933,12 @@ You can also use listeners in the following formats:
|
||||||
|
|
||||||
You can get lists of pointer event listeners using the functions:
|
You can get lists of pointer event listeners using the functions:
|
||||||
|
|
||||||
func GetPointerDownListeners(view View, subviewID string) []func(View, PointerEvent)
|
func GetPointerDownListeners(view View, subviewID ...string) []func(View, PointerEvent)
|
||||||
func GetPointerUpListeners(view View, subviewID string) []func(View, PointerEvent)
|
func GetPointerUpListeners(view View, subviewID ...string) []func(View, PointerEvent)
|
||||||
func GetPointerMoveListeners(view View, subviewID string) []func(View, PointerEvent)
|
func GetPointerMoveListeners(view View, subviewID ...string) []func(View, PointerEvent)
|
||||||
func GetPointerCancelListeners(view View, subviewID string) []func(View, PointerEvent)
|
func GetPointerCancelListeners(view View, subviewID ...string) []func(View, PointerEvent)
|
||||||
func GetPointerOverListeners(view View, subviewID string) []func(View, PointerEvent)
|
func GetPointerOverListeners(view View, subviewID ...string) []func(View, PointerEvent)
|
||||||
func GetPointerOutListeners(view View, subviewID string) []func(View, PointerEvent)
|
func GetPointerOutListeners(view View, subviewID ...string) []func(View, PointerEvent)
|
||||||
|
|
||||||
### Touch events
|
### Touch events
|
||||||
|
|
||||||
|
@ -1991,10 +1991,10 @@ You can also use listeners in the following formats:
|
||||||
|
|
||||||
You can get lists of listeners for touch events using the functions:
|
You can get lists of listeners for touch events using the functions:
|
||||||
|
|
||||||
func GetTouchStartListeners(view View, subviewID string) []func(View, TouchEvent)
|
func GetTouchStartListeners(view View, subviewID ...string) []func(View, TouchEvent)
|
||||||
func GetTouchEndListeners(view View, subviewID string) []func(View, TouchEvent)
|
func GetTouchEndListeners(view View, subviewID ...string) []func(View, TouchEvent)
|
||||||
func GetTouchMoveListeners(view View, subviewID string) []func(View, TouchEvent)
|
func GetTouchMoveListeners(view View, subviewID ...string) []func(View, TouchEvent)
|
||||||
func GetTouchCancelListeners(view View, subviewID string) []func(View, TouchEvent)
|
func GetTouchCancelListeners(view View, subviewID ...string) []func(View, TouchEvent)
|
||||||
|
|
||||||
### Resize-event
|
### Resize-event
|
||||||
|
|
||||||
|
@ -2023,7 +2023,7 @@ You can also use listeners in the following formats:
|
||||||
|
|
||||||
You can get a list of listeners for this event using the function:
|
You can get a list of listeners for this event using the function:
|
||||||
|
|
||||||
func GetResizeListeners(view View, subviewID string) []func(View, Frame)
|
func GetResizeListeners(view View, subviewID ...string) []func(View, Frame)
|
||||||
|
|
||||||
The current position and dimensions of the visible part of the View can be obtained using the View interface function:
|
The current position and dimensions of the visible part of the View can be obtained using the View interface function:
|
||||||
|
|
||||||
|
@ -2031,7 +2031,7 @@ The current position and dimensions of the visible part of the View can be obtai
|
||||||
|
|
||||||
or global function
|
or global function
|
||||||
|
|
||||||
func GetViewFrame(view View, subviewID string) Frame
|
func GetViewFrame(view View, subviewID ...string) Frame
|
||||||
|
|
||||||
### Scroll event
|
### Scroll event
|
||||||
|
|
||||||
|
@ -2062,13 +2062,13 @@ The current position of the viewable area and the overall dimensions of the View
|
||||||
|
|
||||||
or global function
|
or global function
|
||||||
|
|
||||||
func GetViewScroll(view View, subviewID string) Frame
|
func GetViewScroll(view View, subviewID ...string) Frame
|
||||||
|
|
||||||
The following global functions can be used for manual scrolling
|
The following global functions can be used for manual scrolling
|
||||||
|
|
||||||
func ScrollViewTo(view View, subviewID string, x, y float64)
|
func ScrollViewTo(view View, subviewID string, x, y float64)
|
||||||
func ScrollViewToStart(view View, subviewID string)
|
func ScrollViewToStart(view View, subviewID ...string)
|
||||||
func ScrollViewToEnd(view View, subviewID string)
|
func ScrollViewToEnd(view View, subviewID ...string)
|
||||||
|
|
||||||
which scroll the view, respectively, to the given position, start and end
|
which scroll the view, respectively, to the given position, start and end
|
||||||
|
|
||||||
|
@ -2342,7 +2342,7 @@ on the "text-direction" property to the right or left of the previous one, and t
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetColumnCount(view View, subviewID string) int
|
func GetColumnCount(view View, subviewID ...string) int
|
||||||
|
|
||||||
### "column-width" property
|
### "column-width" property
|
||||||
|
|
||||||
|
@ -2353,7 +2353,7 @@ IMPORTANT! Percentages cannot be used as the "column-width" value (i.e. if you s
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetColumnWidth(view View, subviewID string) SizeUnit
|
func GetColumnWidth(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
### "column-gap" property
|
### "column-gap" property
|
||||||
|
|
||||||
|
@ -2361,7 +2361,7 @@ The "column-gap" SizeUnit property (ColumnGap constant) sets the width of the ga
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetColumnGap(view View, subviewID string) SizeUnit
|
func GetColumnGap(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
### "column-separator" property
|
### "column-separator" property
|
||||||
|
|
||||||
|
@ -2409,7 +2409,7 @@ not the ViewBorder structure.
|
||||||
|
|
||||||
You can get the ViewBorders structure without additional transformations using the global function
|
You can get the ViewBorders structure without additional transformations using the global function
|
||||||
|
|
||||||
func GetColumnSeparator(view View, subviewID string) ViewBorder
|
func GetColumnSeparator(view View, subviewID ...string) ViewBorder
|
||||||
|
|
||||||
You can also set individual line attributes using the Set function of the View interface.
|
You can also set individual line attributes using the Set function of the View interface.
|
||||||
For this, the following properties are used
|
For this, the following properties are used
|
||||||
|
@ -2447,7 +2447,7 @@ The default is "false".
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetAvoidBreak(view View, subviewID string) bool
|
func GetAvoidBreak(view View, subviewID ...string) bool
|
||||||
|
|
||||||
## StackLayout
|
## StackLayout
|
||||||
|
|
||||||
|
@ -2493,7 +2493,7 @@ Example
|
||||||
|
|
||||||
func peek(layout rui.StackLayout) {
|
func peek(layout rui.StackLayout) {
|
||||||
views := layout.Views()
|
views := layout.Views()
|
||||||
if index := rui.GetCurrent(layout, ""); index >= 0 && index < len(views) {
|
if index := rui.GetCurrent(layout); index >= 0 && index < len(views) {
|
||||||
return views[index]
|
return views[index]
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -2561,7 +2561,7 @@ You can control the current View using the "current" integer property (constant
|
||||||
To programmatically switch tabs, set this property to the index of the new current View.
|
To programmatically switch tabs, set this property to the index of the new current View.
|
||||||
You can read the value of the "current" property using the function
|
You can read the value of the "current" property using the function
|
||||||
|
|
||||||
func GetCurrent(view View, subviewID string) int
|
func GetCurrent(view View, subviewID ...string) int
|
||||||
|
|
||||||
Also, the "current" property can be used to track changes to the current View:
|
Also, the "current" property can be used to track changes to the current View:
|
||||||
|
|
||||||
|
@ -2634,11 +2634,11 @@ Accordingly, the value "true" shows child Views, "false" - hides.
|
||||||
|
|
||||||
You can get the value of the "expanded" property using the function
|
You can get the value of the "expanded" property using the function
|
||||||
|
|
||||||
func IsDetailsExpanded(view View, subviewID string) bool
|
func IsDetailsExpanded(view View, subviewID ...string) bool
|
||||||
|
|
||||||
and the value of the "summary" property can be obtained using the function
|
and the value of the "summary" property can be obtained using the function
|
||||||
|
|
||||||
func GetDetailsSummary(view View, subviewID string) View
|
func GetDetailsSummary(view View, subviewID ...string) View
|
||||||
|
|
||||||
## Resizable
|
## Resizable
|
||||||
|
|
||||||
|
@ -2683,7 +2683,7 @@ To create a TextView, the function is used:
|
||||||
The displayed text is set by the string property "text" (Text constant).
|
The displayed text is set by the string property "text" (Text constant).
|
||||||
In addition to the Get method, the value of the "text" property can be obtained using the function
|
In addition to the Get method, the value of the "text" property can be obtained using the function
|
||||||
|
|
||||||
func GetText (view View, subviewID string) string
|
func GetText (view View, subviewID ...string) string
|
||||||
|
|
||||||
TextView inherits from View all properties of text parameters ("font-name", "text-size", "text-color", etc.).
|
TextView inherits from View all properties of text parameters ("font-name", "text-size", "text-color", etc.).
|
||||||
In addition to them, the "text-overflow" int property (TextOverflow constant) is added.
|
In addition to them, the "text-overflow" int property (TextOverflow constant) is added.
|
||||||
|
@ -2764,11 +2764,11 @@ relative to the bounds of the ImageView. Valid values:
|
||||||
|
|
||||||
The following functions can be used to retrieve ImageView property values:
|
The following functions can be used to retrieve ImageView property values:
|
||||||
|
|
||||||
func GetImageViewSource(view View, subviewID string) string
|
func GetImageViewSource(view View, subviewID ...string) string
|
||||||
func GetImageViewAltText(view View, subviewID string) string
|
func GetImageViewAltText(view View, subviewID ...string) string
|
||||||
func GetImageViewFit(view View, subviewID string) int
|
func GetImageViewFit(view View, subviewID ...string) int
|
||||||
func GetImageViewVerticalAlign(view View, subviewID string) int
|
func GetImageViewVerticalAlign(view View, subviewID ...string) int
|
||||||
func GetImageViewHorizontalAlign(view View, subviewID string) int
|
func GetImageViewHorizontalAlign(view View, subviewID ...string) int
|
||||||
|
|
||||||
## EditView
|
## EditView
|
||||||
|
|
||||||
|
@ -2821,15 +2821,15 @@ In this case, the color of the caret changes for all child EditViews placed in t
|
||||||
|
|
||||||
The following functions can be used to get the values of the properties of an EditView:
|
The following functions can be used to get the values of the properties of an EditView:
|
||||||
|
|
||||||
func GetText(view View, subviewID string) string
|
func GetText(view View, subviewID ...string) string
|
||||||
func GetHint(view View, subviewID string) string
|
func GetHint(view View, subviewID ...string) string
|
||||||
func GetMaxLength(view View, subviewID string) int
|
func GetMaxLength(view View, subviewID ...string) int
|
||||||
func GetEditViewType(view View, subviewID string) int
|
func GetEditViewType(view View, subviewID ...string) int
|
||||||
func GetEditViewPattern(view View, subviewID string) string
|
func GetEditViewPattern(view View, subviewID ...string) string
|
||||||
func IsReadOnly(view View, subviewID string) bool
|
func IsReadOnly(view View, subviewID ...string) bool
|
||||||
func IsEditViewWrap(view View, subviewID string) bool
|
func IsEditViewWrap(view View, subviewID ...string) bool
|
||||||
func IsSpellcheck(view View, subviewID string) bool
|
func IsSpellcheck(view View, subviewID ...string) bool
|
||||||
func GetCaretColor(view View, subviewID string) Color
|
func GetCaretColor(view View, subviewID ...string) Color
|
||||||
|
|
||||||
The "edit-text-changed" event (EditTextChangedEvent constant) is used to track changes to the text.
|
The "edit-text-changed" event (EditTextChangedEvent constant) is used to track changes to the text.
|
||||||
The main event listener has the following format:
|
The main event listener has the following format:
|
||||||
|
@ -2840,7 +2840,7 @@ where the second argument is the new text value
|
||||||
|
|
||||||
You can get the current list of text change listeners using the function
|
You can get the current list of text change listeners using the function
|
||||||
|
|
||||||
func GetTextChangedListeners(view View, subviewID string) []func(EditView, string)
|
func GetTextChangedListeners(view View, subviewID ...string) []func(EditView, string)
|
||||||
|
|
||||||
## NumberPicker
|
## NumberPicker
|
||||||
|
|
||||||
|
@ -2873,7 +2873,7 @@ The following can be passed as a value to the "number-picker-value" property:
|
||||||
All of these types are cast to float64. Accordingly, the Get function always returns a float64 value.
|
All of these types are cast to float64. Accordingly, the Get function always returns a float64 value.
|
||||||
The value of the "number-picker-value" property can also be read using the function:
|
The value of the "number-picker-value" property can also be read using the function:
|
||||||
|
|
||||||
func GetNumberPickerValue(view View, subviewID string) float64
|
func GetNumberPickerValue(view View, subviewID ...string) float64
|
||||||
|
|
||||||
The entered values may be subject to restrictions. For this, the following properties are used:
|
The entered values may be subject to restrictions. For this, the following properties are used:
|
||||||
|
|
||||||
|
@ -2890,8 +2890,8 @@ If "number-picker-type" is equal to NumberEditor, then the entered numbers, by d
|
||||||
|
|
||||||
You can read the values of these properties using the functions:
|
You can read the values of these properties using the functions:
|
||||||
|
|
||||||
func GetNumberPickerMinMax(view View, subviewID string) (float64, float64)
|
func GetNumberPickerMinMax(view View, subviewID ...string) (float64, float64)
|
||||||
func GetNumberPickerStep(view View, subviewID string) float64
|
func GetNumberPickerStep(view View, subviewID ...string) float64
|
||||||
|
|
||||||
The "number-changed" event (NumberChangedEvent constant) is used to track the change in the entered value.
|
The "number-changed" event (NumberChangedEvent constant) is used to track the change in the entered value.
|
||||||
The main event listener has the following format:
|
The main event listener has the following format:
|
||||||
|
@ -2902,7 +2902,7 @@ where the second argument is the new value
|
||||||
|
|
||||||
You can get the current list of value change listeners using the function
|
You can get the current list of value change listeners using the function
|
||||||
|
|
||||||
func GetNumberChangedListeners(view View, subviewID string) []func(NumberPicker, float64)
|
func GetNumberChangedListeners(view View, subviewID ...string) []func(NumberPicker, float64)
|
||||||
|
|
||||||
## DatePicker
|
## DatePicker
|
||||||
|
|
||||||
|
@ -2924,7 +2924,7 @@ The following can be passed as a value to the "date-picker-value" property:
|
||||||
The text is converted to time.Time. Accordingly, the Get function always returns a time.Time value.
|
The text is converted to time.Time. Accordingly, the Get function always returns a time.Time value.
|
||||||
The value of the "date-picker-value" property can also be read using the function:
|
The value of the "date-picker-value" property can also be read using the function:
|
||||||
|
|
||||||
func GetDatePickerValue(view View, subviewID string) time.Time
|
func GetDatePickerValue(view View, subviewID ...string) time.Time
|
||||||
|
|
||||||
The dates you enter may be subject to restrictions. For this, the following properties are used:
|
The dates you enter may be subject to restrictions. For this, the following properties are used:
|
||||||
|
|
||||||
|
@ -2936,9 +2936,9 @@ The dates you enter may be subject to restrictions. For this, the following prop
|
||||||
|
|
||||||
You can read the values of these properties using the functions:
|
You can read the values of these properties using the functions:
|
||||||
|
|
||||||
func GetDatePickerMin(view View, subviewID string) (time.Time, bool)
|
func GetDatePickerMin(view View, subviewID ...string) (time.Time, bool)
|
||||||
func GetDatePickerMax(view View, subviewID string) (time.Time, bool)
|
func GetDatePickerMax(view View, subviewID ...string) (time.Time, bool)
|
||||||
func GetDatePickerStep(view View, subviewID string) int
|
func GetDatePickerStep(view View, subviewID ...string) int
|
||||||
|
|
||||||
The "date-changed" event (DateChangedEvent constant) is used to track the change in the entered value.
|
The "date-changed" event (DateChangedEvent constant) is used to track the change in the entered value.
|
||||||
The main event listener has the following format:
|
The main event listener has the following format:
|
||||||
|
@ -2949,7 +2949,7 @@ where the second argument is the new date value
|
||||||
|
|
||||||
You can get the current list of date change listeners using the function
|
You can get the current list of date change listeners using the function
|
||||||
|
|
||||||
func GetDateChangedListeners(view View, subviewID string) []func(DatePicker, time.Time)
|
func GetDateChangedListeners(view View, subviewID ...string) []func(DatePicker, time.Time)
|
||||||
|
|
||||||
## TimePicker
|
## TimePicker
|
||||||
|
|
||||||
|
@ -2971,7 +2971,7 @@ The following can be passed as a value to the "time-picker-value" property:
|
||||||
The text is converted to time.Time. Accordingly, the Get function always returns a time.Time value.
|
The text is converted to time.Time. Accordingly, the Get function always returns a time.Time value.
|
||||||
The value of the "time-picker-value" property can also be read using the function:
|
The value of the "time-picker-value" property can also be read using the function:
|
||||||
|
|
||||||
func GetTimePickerValue(view View, subviewID string) time.Time
|
func GetTimePickerValue(view View, subviewID ...string) time.Time
|
||||||
|
|
||||||
The time entered may be subject to restrictions. For this, the following properties are used:
|
The time entered may be subject to restrictions. For this, the following properties are used:
|
||||||
|
|
||||||
|
@ -2983,9 +2983,9 @@ The time entered may be subject to restrictions. For this, the following propert
|
||||||
|
|
||||||
You can read the values of these properties using the functions:
|
You can read the values of these properties using the functions:
|
||||||
|
|
||||||
func GetTimePickerMin(view View, subviewID string) (time.Time, bool)
|
func GetTimePickerMin(view View, subviewID ...string) (time.Time, bool)
|
||||||
func GetTimePickerMax(view View, subviewID string) (time.Time, bool)
|
func GetTimePickerMax(view View, subviewID ...string) (time.Time, bool)
|
||||||
func GetTimePickerStep(view View, subviewID string) int
|
func GetTimePickerStep(view View, subviewID ...string) int
|
||||||
|
|
||||||
The "time-changed" event (TimeChangedEvent constant) is used to track the change in the entered value.
|
The "time-changed" event (TimeChangedEvent constant) is used to track the change in the entered value.
|
||||||
The main event listener has the following format:
|
The main event listener has the following format:
|
||||||
|
@ -2996,7 +2996,7 @@ where the second argument is the new time value
|
||||||
|
|
||||||
You can get the current list of date change listeners using the function
|
You can get the current list of date change listeners using the function
|
||||||
|
|
||||||
func GetTimeChangedListeners(view View, subviewID string) []func(TimePicker, time.Time)
|
func GetTimeChangedListeners(view View, subviewID ...string) []func(TimePicker, time.Time)
|
||||||
|
|
||||||
## ColorPicker
|
## ColorPicker
|
||||||
|
|
||||||
|
@ -3015,7 +3015,7 @@ The following can be passed as a value to the "color-picker-value" property:
|
||||||
|
|
||||||
The value of the property "color-picker-value" can also be read using the function:
|
The value of the property "color-picker-value" can also be read using the function:
|
||||||
|
|
||||||
func GetColorPickerValue(view View, subviewID string) Color
|
func GetColorPickerValue(view View, subviewID ...string) Color
|
||||||
|
|
||||||
The "color-changed" event (ColorChangedEvent constant) is used to track the change in the selected color.
|
The "color-changed" event (ColorChangedEvent constant) is used to track the change in the selected color.
|
||||||
The main event listener has the following format:
|
The main event listener has the following format:
|
||||||
|
@ -3026,7 +3026,7 @@ where the second argument is the new color value
|
||||||
|
|
||||||
You can get the current list of date change listeners using the function
|
You can get the current list of date change listeners using the function
|
||||||
|
|
||||||
func GetColorChangedListeners(view View, subviewID string) []func(ColorPicker, Color)
|
func GetColorChangedListeners(view View, subviewID ...string) []func(ColorPicker, Color)
|
||||||
|
|
||||||
## FilePicker
|
## FilePicker
|
||||||
|
|
||||||
|
@ -3055,7 +3055,7 @@ Two functions of the FilePicker interface are used to access the selected files:
|
||||||
|
|
||||||
as well as the corresponding global functions
|
as well as the corresponding global functions
|
||||||
|
|
||||||
func GetFilePickerFiles(view View, subviewID string) []FileInfo
|
func GetFilePickerFiles(view View, subviewID ...string) []FileInfo
|
||||||
func LoadFilePickerFile(view View, subviewID string, file FileInfo, result func(FileInfo, []byte))
|
func LoadFilePickerFile(view View, subviewID string, file FileInfo, result func(FileInfo, []byte))
|
||||||
|
|
||||||
The Files/GetFilePickerFiles functions return a list of the selected files as a slice of FileInfo structures.
|
The Files/GetFilePickerFiles functions return a list of the selected files as a slice of FileInfo structures.
|
||||||
|
@ -3109,7 +3109,7 @@ where the second argument is the new value of the list of selected files.
|
||||||
|
|
||||||
You can get the current list of listeners of the list of files changing using the function
|
You can get the current list of listeners of the list of files changing using the function
|
||||||
|
|
||||||
func GetFileSelectedListeners(view View, subviewID string) []func(FilePicker, []FileInfo)
|
func GetFileSelectedListeners(view View, subviewID ...string) []func(FilePicker, []FileInfo)
|
||||||
|
|
||||||
## DropDownList
|
## DropDownList
|
||||||
|
|
||||||
|
@ -3130,7 +3130,7 @@ float32, float64, int, int8 … int64, uint, uint8 … uint64.
|
||||||
All of these data types are converted to []string and assigned to the "items" property.
|
All of these data types are converted to []string and assigned to the "items" property.
|
||||||
You can read the value of the "items" property using the function
|
You can read the value of the "items" property using the function
|
||||||
|
|
||||||
func GetDropDownItems(view View, subviewID string) []string
|
func GetDropDownItems(view View, subviewID ...string) []string
|
||||||
|
|
||||||
You can disable the selection of individual items. For this, the "disabled-items" property (constant DisabledItems) is used.
|
You can disable the selection of individual items. For this, the "disabled-items" property (constant DisabledItems) is used.
|
||||||
This property is assigned an array of disabled item indices. The index can be specified either as a number, as text, or as a constant. Therefore, the following data types can be assigned to the "disabled-items" property:
|
This property is assigned an array of disabled item indices. The index can be specified either as a number, as text, or as a constant. Therefore, the following data types can be assigned to the "disabled-items" property:
|
||||||
|
@ -3144,12 +3144,12 @@ This property is assigned an array of disabled item indices. The index can be sp
|
||||||
All of these data types are converted to []any and assigned to the "disabled-items" property.
|
All of these data types are converted to []any and assigned to the "disabled-items" property.
|
||||||
You can read the value of the "disabled-items" property using the function
|
You can read the value of the "disabled-items" property using the function
|
||||||
|
|
||||||
func GetDropDownDisabledItems(view View, subviewID string) []int
|
func GetDropDownDisabledItems(view View, subviewID ...string) []int
|
||||||
|
|
||||||
The selected value is determined by the int property "current" (Current constant). The default is 0.
|
The selected value is determined by the int property "current" (Current constant). The default is 0.
|
||||||
You can read the value of this property using the function
|
You can read the value of this property using the function
|
||||||
|
|
||||||
func GetCurrent(view View, subviewID string) int
|
func GetCurrent(view View, subviewID ...string) int
|
||||||
|
|
||||||
To track the change of the "current" property, the "drop-down-event" event (DropDownEvent constant) is used.
|
To track the change of the "current" property, the "drop-down-event" event (DropDownEvent constant) is used.
|
||||||
The main event listener has the following format:
|
The main event listener has the following format:
|
||||||
|
@ -3160,7 +3160,7 @@ where the second argument is the index of the selected item
|
||||||
|
|
||||||
You can get the current list of date change listeners using the function
|
You can get the current list of date change listeners using the function
|
||||||
|
|
||||||
func GetDropDownListeners(view View, subviewID string) []func(DropDownList, int)
|
func GetDropDownListeners(view View, subviewID ...string) []func(DropDownList, int)
|
||||||
|
|
||||||
## ProgressBar
|
## ProgressBar
|
||||||
|
|
||||||
|
@ -3179,8 +3179,8 @@ In addition to float64, float32, int, int8 … int64, uint, uint8 … uint64
|
||||||
|
|
||||||
You can read the value of these properties using the functions
|
You can read the value of these properties using the functions
|
||||||
|
|
||||||
func GetProgressBarMax(view View, subviewID string) float64
|
func GetProgressBarMax(view View, subviewID ...string) float64
|
||||||
func GetProgressBarValue(view View, subviewID string) float64
|
func GetProgressBarValue(view View, subviewID ...string) float64
|
||||||
|
|
||||||
## Button
|
## Button
|
||||||
|
|
||||||
|
@ -3239,7 +3239,7 @@ When assigning, all types except View and string are converted to string, then a
|
||||||
and from the resulting View array using the NewViewListAdapter function, a ListAdapter is obtained.
|
and from the resulting View array using the NewViewListAdapter function, a ListAdapter is obtained.
|
||||||
|
|
||||||
If the list items change during operation, then after the change, either the ReloadListViewData()
|
If the list items change during operation, then after the change, either the ReloadListViewData()
|
||||||
function of the ListView interface or the global ReloadListViewData(view View, subviewID string) function must be called.
|
function of the ListView interface or the global ReloadListViewData(view View, subviewID ...string) function must be called.
|
||||||
These functions update the displayed list items.
|
These functions update the displayed list items.
|
||||||
|
|
||||||
### "Orientation" property
|
### "Orientation" property
|
||||||
|
@ -3261,7 +3261,7 @@ on the value of the "text-direction" property. For languages written from right
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetListOrientation(view View, subviewID string) int
|
func GetListOrientation(view View, subviewID ...string) int
|
||||||
|
|
||||||
### "wrap" property
|
### "wrap" property
|
||||||
|
|
||||||
|
@ -3278,7 +3278,7 @@ the beginning (for the position of the beginning and end, see above), the new li
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetListWrap(view View, subviewID string) int
|
func GetListWrap(view View, subviewID ...string) int
|
||||||
|
|
||||||
### "item-width" and "item-height" properties
|
### "item-width" and "item-height" properties
|
||||||
|
|
||||||
|
@ -3291,8 +3291,8 @@ properties "item-width" and "item-height"
|
||||||
|
|
||||||
You can get the values of these properties using the functions
|
You can get the values of these properties using the functions
|
||||||
|
|
||||||
func GetListItemWidth(view View, subviewID string) SizeUnit
|
func GetListItemWidth(view View, subviewID ...string) SizeUnit
|
||||||
func GetListItemHeight(view View, subviewID string) SizeUnit
|
func GetListItemHeight(view View, subviewID ...string) SizeUnit
|
||||||
|
|
||||||
### "item-vertical-align" property
|
### "item-vertical-align" property
|
||||||
|
|
||||||
|
@ -3308,7 +3308,7 @@ of the contents of the list items. Valid values:
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetListItemVerticalAlign(view View, subviewID string) int
|
func GetListItemVerticalAlign(view View, subviewID ...string) int
|
||||||
|
|
||||||
### "item-horizontal-align" property
|
### "item-horizontal-align" property
|
||||||
|
|
||||||
|
@ -3324,7 +3324,7 @@ horizontal alignment of the contents of the list items. Valid values:
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
GetListItemHorizontalAlign(view View, subviewID string) int
|
GetListItemHorizontalAlign(view View, subviewID ...string) int
|
||||||
|
|
||||||
### "current" property
|
### "current" property
|
||||||
|
|
||||||
|
@ -3335,7 +3335,7 @@ The value "current" is less than 0 means that no item is selected
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetCurrent(view View, subviewID string) int
|
func GetCurrent(view View, subviewID ...string) int
|
||||||
|
|
||||||
### "list-item-style", "current-style", and "current-inactive-style" properties
|
### "list-item-style", "current-style", and "current-inactive-style" properties
|
||||||
|
|
||||||
|
@ -3363,13 +3363,13 @@ can take the following values
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetListViewCheckbox(view View, subviewID string) int
|
func GetListViewCheckbox(view View, subviewID ...string) int
|
||||||
|
|
||||||
You can get/set the list of checked items using the "checked" property (Checked constant).
|
You can get/set the list of checked items using the "checked" property (Checked constant).
|
||||||
This property is of type []int and stores the indexes of the marked elements.
|
This property is of type []int and stores the indexes of the marked elements.
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetListViewCheckedItems(view View, subviewID string) []int
|
func GetListViewCheckedItems(view View, subviewID ...string) []int
|
||||||
|
|
||||||
You can check if a specific element is marked using the function
|
You can check if a specific element is marked using the function
|
||||||
|
|
||||||
|
@ -3400,8 +3400,8 @@ In this case, the checkbox is centered horizontally, the content is below
|
||||||
|
|
||||||
You can get property values for "checkbox-horizontal-align" and "checkbox-vertical-align" using the functions
|
You can get property values for "checkbox-horizontal-align" and "checkbox-vertical-align" using the functions
|
||||||
|
|
||||||
func GetListViewCheckboxHorizontalAlign(view View, subviewID string) int
|
func GetListViewCheckboxHorizontalAlign(view View, subviewID ...string) int
|
||||||
func GetListViewCheckboxVerticalAlign(view View, subviewID string) int
|
func GetListViewCheckboxVerticalAlign(view View, subviewID ...string) int
|
||||||
|
|
||||||
### ListView events
|
### ListView events
|
||||||
|
|
||||||
|
@ -3421,9 +3421,9 @@ Where the second argument is an array of indexes of the tagged items.
|
||||||
|
|
||||||
You can get lists of listeners for these events using the functions:
|
You can get lists of listeners for these events using the functions:
|
||||||
|
|
||||||
func GetListItemClickedListeners(view View, subviewID string) []func(ListView, int)
|
func GetListItemClickedListeners(view View, subviewID ...string) []func(ListView, int)
|
||||||
func GetListItemSelectedListeners(view View, subviewID string) []func(ListView, int)
|
func GetListItemSelectedListeners(view View, subviewID ...string) []func(ListView, int)
|
||||||
func GetListItemCheckedListeners(view View, subviewID string) []func(ListView, []int)
|
func GetListItemCheckedListeners(view View, subviewID ...string) []func(ListView, []int)
|
||||||
|
|
||||||
## TableView
|
## TableView
|
||||||
|
|
||||||
|
@ -3617,7 +3617,7 @@ For horizontal alignment, use the "text-align" property
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetTableVerticalAlign(view View, subviewID string) int
|
func GetTableVerticalAlign(view View, subviewID ...string) int
|
||||||
|
|
||||||
### "selection-mode" property
|
### "selection-mode" property
|
||||||
|
|
||||||
|
@ -3636,7 +3636,7 @@ In this mode, the table generates two types of events: "table-row-selected" and
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetSelectionMode(view View, subviewID string) int
|
func GetSelectionMode(view View, subviewID ...string) int
|
||||||
|
|
||||||
### "current" property
|
### "current" property
|
||||||
|
|
||||||
|
@ -3653,7 +3653,7 @@ the "current" property can be assigned a value of type int (row index).
|
||||||
|
|
||||||
You can get the value of this property using the function
|
You can get the value of this property using the function
|
||||||
|
|
||||||
func GetTableCurrent(view View, subviewID string) CellIndex
|
func GetTableCurrent(view View, subviewID ...string) CellIndex
|
||||||
|
|
||||||
### "allow-selection" property
|
### "allow-selection" property
|
||||||
|
|
||||||
|
@ -4603,7 +4603,7 @@ Calling the SetAnimated function does not change the value of the "transition" p
|
||||||
|
|
||||||
To get the current list of permanent transition animations, use the function
|
To get the current list of permanent transition animations, use the function
|
||||||
|
|
||||||
func GetTransition(view View, subviewID string) Params
|
func GetTransition(view View, subviewID ...string) Params
|
||||||
|
|
||||||
It is recommended to add new transition animations using the function
|
It is recommended to add new transition animations using the function
|
||||||
|
|
||||||
|
@ -4640,10 +4640,10 @@ You can also use a listener in the following format:
|
||||||
|
|
||||||
Get lists of listeners for transition animation events using functions:
|
Get lists of listeners for transition animation events using functions:
|
||||||
|
|
||||||
func GetTransitionRunListeners(view View, subviewID string) []func(View, string)
|
func GetTransitionRunListeners(view View, subviewID ...string) []func(View, string)
|
||||||
func GetTransitionStartListeners(view View, subviewID string) []func(View, string)
|
func GetTransitionStartListeners(view View, subviewID ...string) []func(View, string)
|
||||||
func GetTransitionEndListeners(view View, subviewID string) []func(View, string)
|
func GetTransitionEndListeners(view View, subviewID ...string) []func(View, string)
|
||||||
func GetTransitionCancelListeners(view View, subviewID string) []func(View, string)
|
func GetTransitionCancelListeners(view View, subviewID ...string) []func(View, string)
|
||||||
|
|
||||||
### Animation script
|
### Animation script
|
||||||
|
|
||||||
|
@ -4772,10 +4772,10 @@ You can also use a listener in the following format:
|
||||||
|
|
||||||
Get lists of animation event listeners using functions:
|
Get lists of animation event listeners using functions:
|
||||||
|
|
||||||
func GetAnimationStartListeners(view View, subviewID string) []func(View, string)
|
func GetAnimationStartListeners(view View, subviewID ...string) []func(View, string)
|
||||||
func GetAnimationEndListeners(view View, subviewID string) []func(View, string)
|
func GetAnimationEndListeners(view View, subviewID ...string) []func(View, string)
|
||||||
func GetAnimationCancelListeners(view View, subviewID string) []func(View, string)
|
func GetAnimationCancelListeners(view View, subviewID ...string) []func(View, string)
|
||||||
func GetAnimationIterationListeners(view View, subviewID string) []func(View, string)
|
func GetAnimationIterationListeners(view View, subviewID ...string) []func(View, string)
|
||||||
|
|
||||||
## Session
|
## Session
|
||||||
|
|
||||||
|
|
24
animation.go
24
animation.go
|
@ -747,16 +747,16 @@ func SetAnimated(rootView View, viewID, tag string, value any, animation Animati
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsAnimationPaused returns "true" if an animation of the subview is paused, "false" otherwise.
|
// IsAnimationPaused returns "true" if an animation of the subview is paused, "false" otherwise.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func IsAnimationPaused(view View, subviewID string) bool {
|
func IsAnimationPaused(view View, subviewID ...string) bool {
|
||||||
return boolStyledProperty(view, subviewID, AnimationPaused, false)
|
return boolStyledProperty(view, subviewID, AnimationPaused, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTransitions returns the subview transitions. The result is always non-nil.
|
// GetTransitions returns the subview transitions. The result is always non-nil.
|
||||||
// If the second argument (subviewID) is "" then transitions of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then transitions of the first argument (view) is returned
|
||||||
func GetTransitions(view View, subviewID string) map[string]Animation {
|
func GetTransitions(view View, subviewID ...string) map[string]Animation {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
|
@ -767,7 +767,7 @@ func GetTransitions(view View, subviewID string) map[string]Animation {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTransition returns the subview property transition. If there is no transition for the given property then nil is returned.
|
// GetTransition returns the subview property transition. If there is no transition for the given property then nil is returned.
|
||||||
// If the second argument (subviewID) is "" then transitions of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then transitions of the first argument (view) is returned
|
||||||
func GetTransition(view View, subviewID, tag string) Animation {
|
func GetTransition(view View, subviewID, tag string) Animation {
|
||||||
if subviewID != "" {
|
if subviewID != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID)
|
||||||
|
@ -781,7 +781,7 @@ func GetTransition(view View, subviewID, tag string) Animation {
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddTransition adds the transition for the subview property.
|
// AddTransition adds the transition for the subview property.
|
||||||
// If the second argument (subviewID) is "" then the transition is added to the first argument (view)
|
// If the second argument (subviewID) is not specified or it is "" then the transition is added to the first argument (view)
|
||||||
func AddTransition(view View, subviewID, tag string, animation Animation) bool {
|
func AddTransition(view View, subviewID, tag string, animation Animation) bool {
|
||||||
if tag != "" {
|
if tag != "" {
|
||||||
if subviewID != "" {
|
if subviewID != "" {
|
||||||
|
@ -797,10 +797,10 @@ func AddTransition(view View, subviewID, tag string, animation Animation) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAnimation returns the subview animations. The result is always non-nil.
|
// GetAnimation returns the subview animations. The result is always non-nil.
|
||||||
// If the second argument (subviewID) is "" then transitions of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then transitions of the first argument (view) is returned
|
||||||
func GetAnimation(view View, subviewID string) []Animation {
|
func GetAnimation(view View, subviewID ...string) []Animation {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
|
|
|
@ -111,7 +111,7 @@ func (view *viewData) handleTransitionEvents(tag string, data DataObject) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, listener := range getEventListeners[View, string](view, "", tag) {
|
for _, listener := range getEventListeners[View, string](view, nil, tag) {
|
||||||
listener(view, property)
|
listener(view, property)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -164,10 +164,10 @@ func animationEventsHtml(view View, buffer *strings.Builder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (view *viewData) handleAnimationEvents(tag string, data DataObject) {
|
func (view *viewData) handleAnimationEvents(tag string, data DataObject) {
|
||||||
if listeners := getEventListeners[View, string](view, "", tag); len(listeners) > 0 {
|
if listeners := getEventListeners[View, string](view, nil, tag); len(listeners) > 0 {
|
||||||
id := ""
|
id := ""
|
||||||
if name, ok := data.PropertyValue("name"); ok {
|
if name, ok := data.PropertyValue("name"); ok {
|
||||||
for _, animation := range GetAnimation(view, "") {
|
for _, animation := range GetAnimation(view) {
|
||||||
if name == animation.animationName() {
|
if name == animation.animationName() {
|
||||||
id, _ = stringProperty(animation, ID, view.Session())
|
id, _ = stringProperty(animation, ID, view.Session())
|
||||||
}
|
}
|
||||||
|
@ -181,56 +181,56 @@ func (view *viewData) handleAnimationEvents(tag string, data DataObject) {
|
||||||
|
|
||||||
// GetTransitionRunListeners returns the "transition-run-event" listener list.
|
// GetTransitionRunListeners returns the "transition-run-event" listener list.
|
||||||
// If there are no listeners then the empty list is returned.
|
// If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTransitionRunListeners(view View, subviewID string) []func(View, string) {
|
func GetTransitionRunListeners(view View, subviewID ...string) []func(View, string) {
|
||||||
return getEventListeners[View, string](view, subviewID, TransitionRunEvent)
|
return getEventListeners[View, string](view, subviewID, TransitionRunEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTransitionStartListeners returns the "transition-start-event" listener list.
|
// GetTransitionStartListeners returns the "transition-start-event" listener list.
|
||||||
// If there are no listeners then the empty list is returned.
|
// If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTransitionStartListeners(view View, subviewID string) []func(View, string) {
|
func GetTransitionStartListeners(view View, subviewID ...string) []func(View, string) {
|
||||||
return getEventListeners[View, string](view, subviewID, TransitionStartEvent)
|
return getEventListeners[View, string](view, subviewID, TransitionStartEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTransitionEndListeners returns the "transition-end-event" listener list.
|
// GetTransitionEndListeners returns the "transition-end-event" listener list.
|
||||||
// If there are no listeners then the empty list is returned.
|
// If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTransitionEndListeners(view View, subviewID string) []func(View, string) {
|
func GetTransitionEndListeners(view View, subviewID ...string) []func(View, string) {
|
||||||
return getEventListeners[View, string](view, subviewID, TransitionEndEvent)
|
return getEventListeners[View, string](view, subviewID, TransitionEndEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTransitionCancelListeners returns the "transition-cancel-event" listener list.
|
// GetTransitionCancelListeners returns the "transition-cancel-event" listener list.
|
||||||
// If there are no listeners then the empty list is returned.
|
// If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTransitionCancelListeners(view View, subviewID string) []func(View, string) {
|
func GetTransitionCancelListeners(view View, subviewID ...string) []func(View, string) {
|
||||||
return getEventListeners[View, string](view, subviewID, TransitionCancelEvent)
|
return getEventListeners[View, string](view, subviewID, TransitionCancelEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAnimationStartListeners returns the "animation-start-event" listener list.
|
// GetAnimationStartListeners returns the "animation-start-event" listener list.
|
||||||
// If there are no listeners then the empty list is returned.
|
// If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetAnimationStartListeners(view View, subviewID string) []func(View, string) {
|
func GetAnimationStartListeners(view View, subviewID ...string) []func(View, string) {
|
||||||
return getEventListeners[View, string](view, subviewID, AnimationStartEvent)
|
return getEventListeners[View, string](view, subviewID, AnimationStartEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAnimationEndListeners returns the "animation-end-event" listener list.
|
// GetAnimationEndListeners returns the "animation-end-event" listener list.
|
||||||
// If there are no listeners then the empty list is returned.
|
// If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetAnimationEndListeners(view View, subviewID string) []func(View, string) {
|
func GetAnimationEndListeners(view View, subviewID ...string) []func(View, string) {
|
||||||
return getEventListeners[View, string](view, subviewID, AnimationEndEvent)
|
return getEventListeners[View, string](view, subviewID, AnimationEndEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAnimationCancelListeners returns the "animation-cancel-event" listener list.
|
// GetAnimationCancelListeners returns the "animation-cancel-event" listener list.
|
||||||
// If there are no listeners then the empty list is returned.
|
// If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetAnimationCancelListeners(view View, subviewID string) []func(View, string) {
|
func GetAnimationCancelListeners(view View, subviewID ...string) []func(View, string) {
|
||||||
return getEventListeners[View, string](view, subviewID, AnimationCancelEvent)
|
return getEventListeners[View, string](view, subviewID, AnimationCancelEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAnimationIterationListeners returns the "animation-iteration-event" listener list.
|
// GetAnimationIterationListeners returns the "animation-iteration-event" listener list.
|
||||||
// If there are no listeners then the empty list is returned.
|
// If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetAnimationIterationListeners(view View, subviewID string) []func(View, string) {
|
func GetAnimationIterationListeners(view View, subviewID ...string) []func(View, string) {
|
||||||
return getEventListeners[View, string](view, subviewID, AnimationIterationEvent)
|
return getEventListeners[View, string](view, subviewID, AnimationIterationEvent)
|
||||||
}
|
}
|
||||||
|
|
42
checkbox.go
42
checkbox.go
|
@ -194,14 +194,14 @@ func (button *checkboxData) changedCheckboxState(state bool) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkboxClickListener(view View) {
|
func checkboxClickListener(view View) {
|
||||||
view.Set(Checked, !IsCheckboxChecked(view, ""))
|
view.Set(Checked, !IsCheckboxChecked(view))
|
||||||
BlurView(view)
|
BlurView(view)
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkboxKeyListener(view View, event KeyEvent) {
|
func checkboxKeyListener(view View, event KeyEvent) {
|
||||||
switch event.Code {
|
switch event.Code {
|
||||||
case "Enter", "Space":
|
case "Enter", "Space":
|
||||||
view.Set(Checked, !IsCheckboxChecked(view, ""))
|
view.Set(Checked, !IsCheckboxChecked(view))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -218,8 +218,8 @@ func (button *checkboxData) setChangedListener(value any) bool {
|
||||||
|
|
||||||
func (button *checkboxData) cssStyle(self View, builder cssBuilder) {
|
func (button *checkboxData) cssStyle(self View, builder cssBuilder) {
|
||||||
session := button.Session()
|
session := button.Session()
|
||||||
vAlign := GetCheckboxVerticalAlign(button, "")
|
vAlign := GetCheckboxVerticalAlign(button)
|
||||||
hAlign := GetCheckboxHorizontalAlign(button, "")
|
hAlign := GetCheckboxHorizontalAlign(button)
|
||||||
switch hAlign {
|
switch hAlign {
|
||||||
case CenterAlign:
|
case CenterAlign:
|
||||||
if vAlign == BottomAlign {
|
if vAlign == BottomAlign {
|
||||||
|
@ -246,8 +246,8 @@ func (button *checkboxData) cssStyle(self View, builder cssBuilder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (button *checkboxData) htmlCheckbox(buffer *strings.Builder, checked bool) (int, int) {
|
func (button *checkboxData) htmlCheckbox(buffer *strings.Builder, checked bool) (int, int) {
|
||||||
vAlign := GetCheckboxVerticalAlign(button, "")
|
vAlign := GetCheckboxVerticalAlign(button)
|
||||||
hAlign := GetCheckboxHorizontalAlign(button, "")
|
hAlign := GetCheckboxHorizontalAlign(button)
|
||||||
|
|
||||||
buffer.WriteString(`<div id="`)
|
buffer.WriteString(`<div id="`)
|
||||||
buffer.WriteString(button.htmlID())
|
buffer.WriteString(button.htmlID())
|
||||||
|
@ -291,7 +291,7 @@ func (button *checkboxData) htmlCheckbox(buffer *strings.Builder, checked bool)
|
||||||
|
|
||||||
func (button *checkboxData) htmlSubviews(self View, buffer *strings.Builder) {
|
func (button *checkboxData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||||
|
|
||||||
vCheckboxAlign, hCheckboxAlign := button.htmlCheckbox(buffer, IsCheckboxChecked(button, ""))
|
vCheckboxAlign, hCheckboxAlign := button.htmlCheckbox(buffer, IsCheckboxChecked(button))
|
||||||
|
|
||||||
buffer.WriteString(`<div id="`)
|
buffer.WriteString(`<div id="`)
|
||||||
buffer.WriteString(button.htmlID())
|
buffer.WriteString(button.htmlID())
|
||||||
|
@ -322,7 +322,7 @@ func (button *checkboxData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (button *checkboxData) cssHorizontalAlign() string {
|
func (button *checkboxData) cssHorizontalAlign() string {
|
||||||
align := GetHorizontalAlign(button, "")
|
align := GetHorizontalAlign(button)
|
||||||
values := enumProperties[CellHorizontalAlign].cssValues
|
values := enumProperties[CellHorizontalAlign].cssValues
|
||||||
if align >= 0 && align < len(values) {
|
if align >= 0 && align < len(values) {
|
||||||
return values[align]
|
return values[align]
|
||||||
|
@ -331,7 +331,7 @@ func (button *checkboxData) cssHorizontalAlign() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (button *checkboxData) cssVerticalAlign() string {
|
func (button *checkboxData) cssVerticalAlign() string {
|
||||||
align := GetVerticalAlign(button, "")
|
align := GetVerticalAlign(button)
|
||||||
values := enumProperties[CellVerticalAlign].cssValues
|
values := enumProperties[CellVerticalAlign].cssValues
|
||||||
if align >= 0 && align < len(values) {
|
if align >= 0 && align < len(values) {
|
||||||
return values[align]
|
return values[align]
|
||||||
|
@ -340,29 +340,19 @@ func (button *checkboxData) cssVerticalAlign() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsCheckboxChecked returns true if the Checkbox is checked, false otherwise.
|
// IsCheckboxChecked returns true if the Checkbox is checked, false otherwise.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func IsCheckboxChecked(view View, subviewID string) bool {
|
func IsCheckboxChecked(view View, subviewID ...string) bool {
|
||||||
if subviewID != "" {
|
return boolStyledProperty(view, subviewID, Checked, false)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view != nil {
|
|
||||||
if checked := view.Get(Checked); checked != nil {
|
|
||||||
if b, ok := checked.(bool); ok {
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetCheckboxVerticalAlign return the vertical align of a Checkbox subview: TopAlign (0), BottomAlign (1), CenterAlign (2)
|
// GetCheckboxVerticalAlign return the vertical align of a Checkbox subview: TopAlign (0), BottomAlign (1), CenterAlign (2)
|
||||||
// If the second argument (subviewID) is "" then a left position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a left position of the first argument (view) is returned
|
||||||
func GetCheckboxVerticalAlign(view View, subviewID string) int {
|
func GetCheckboxVerticalAlign(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, CheckboxVerticalAlign, LeftAlign, false)
|
return enumStyledProperty(view, subviewID, CheckboxVerticalAlign, LeftAlign, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetCheckboxHorizontalAlign return the vertical align of a Checkbox subview: LeftAlign (0), RightAlign (1), CenterAlign (2)
|
// GetCheckboxHorizontalAlign return the vertical align of a Checkbox subview: LeftAlign (0), RightAlign (1), CenterAlign (2)
|
||||||
// If the second argument (subviewID) is "" then a left position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a left position of the first argument (view) is returned
|
||||||
func GetCheckboxHorizontalAlign(view View, subviewID string) int {
|
func GetCheckboxHorizontalAlign(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, CheckboxHorizontalAlign, TopAlign, false)
|
return enumStyledProperty(view, subviewID, CheckboxHorizontalAlign, TopAlign, false)
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ func (picker *colorPickerData) remove(tag string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
case ColorPickerValue:
|
case ColorPickerValue:
|
||||||
oldColor := GetColorPickerValue(picker, "")
|
oldColor := GetColorPickerValue(picker)
|
||||||
delete(picker.properties, ColorPickerValue)
|
delete(picker.properties, ColorPickerValue)
|
||||||
picker.colorChanged(oldColor)
|
picker.colorChanged(oldColor)
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ func (picker *colorPickerData) set(tag string, value any) bool {
|
||||||
return true
|
return true
|
||||||
|
|
||||||
case ColorPickerValue:
|
case ColorPickerValue:
|
||||||
oldColor := GetColorPickerValue(picker, "")
|
oldColor := GetColorPickerValue(picker)
|
||||||
if picker.setColorProperty(ColorPickerValue, value) {
|
if picker.setColorProperty(ColorPickerValue, value) {
|
||||||
picker.colorChanged(oldColor)
|
picker.colorChanged(oldColor)
|
||||||
return true
|
return true
|
||||||
|
@ -112,7 +112,7 @@ func (picker *colorPickerData) set(tag string, value any) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (picker *colorPickerData) colorChanged(oldColor Color) {
|
func (picker *colorPickerData) colorChanged(oldColor Color) {
|
||||||
if newColor := GetColorPickerValue(picker, ""); oldColor != newColor {
|
if newColor := GetColorPickerValue(picker); oldColor != newColor {
|
||||||
if picker.created {
|
if picker.created {
|
||||||
picker.session.runScript(fmt.Sprintf(`setInputValue('%s', '%s')`, picker.htmlID(), newColor.rgbString()))
|
picker.session.runScript(fmt.Sprintf(`setInputValue('%s', '%s')`, picker.htmlID(), newColor.rgbString()))
|
||||||
}
|
}
|
||||||
|
@ -145,7 +145,7 @@ func (picker *colorPickerData) htmlProperties(self View, buffer *strings.Builder
|
||||||
picker.viewData.htmlProperties(self, buffer)
|
picker.viewData.htmlProperties(self, buffer)
|
||||||
|
|
||||||
buffer.WriteString(` type="color" value="`)
|
buffer.WriteString(` type="color" value="`)
|
||||||
buffer.WriteString(GetColorPickerValue(picker, "").rgbString())
|
buffer.WriteString(GetColorPickerValue(picker).rgbString())
|
||||||
buffer.WriteByte('"')
|
buffer.WriteByte('"')
|
||||||
|
|
||||||
buffer.WriteString(` oninput="editViewInputEvent(this)"`)
|
buffer.WriteString(` oninput="editViewInputEvent(this)"`)
|
||||||
|
@ -155,7 +155,7 @@ func (picker *colorPickerData) htmlProperties(self View, buffer *strings.Builder
|
||||||
}
|
}
|
||||||
|
|
||||||
func (picker *colorPickerData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
func (picker *colorPickerData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
||||||
if IsDisabled(self, "") {
|
if IsDisabled(self) {
|
||||||
buffer.WriteString(` disabled`)
|
buffer.WriteString(` disabled`)
|
||||||
}
|
}
|
||||||
picker.viewData.htmlDisabledProperties(self, buffer)
|
picker.viewData.htmlDisabledProperties(self, buffer)
|
||||||
|
@ -165,7 +165,7 @@ func (picker *colorPickerData) handleCommand(self View, command string, data Dat
|
||||||
switch command {
|
switch command {
|
||||||
case "textChanged":
|
case "textChanged":
|
||||||
if text, ok := data.PropertyValue("text"); ok {
|
if text, ok := data.PropertyValue("text"); ok {
|
||||||
oldColor := GetColorPickerValue(picker, "")
|
oldColor := GetColorPickerValue(picker)
|
||||||
if color, ok := StringToColor(text); ok {
|
if color, ok := StringToColor(text); ok {
|
||||||
picker.properties[ColorPickerValue] = color
|
picker.properties[ColorPickerValue] = color
|
||||||
if color != oldColor {
|
if color != oldColor {
|
||||||
|
@ -182,10 +182,10 @@ func (picker *colorPickerData) handleCommand(self View, command string, data Dat
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetColorPickerValue returns the value of ColorPicker subview.
|
// GetColorPickerValue returns the value of ColorPicker subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetColorPickerValue(view View, subviewID string) Color {
|
func GetColorPickerValue(view View, subviewID ...string) Color {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value, ok := colorProperty(view, ColorPickerValue, view.Session()); ok {
|
if value, ok := colorProperty(view, ColorPickerValue, view.Session()); ok {
|
||||||
|
@ -204,7 +204,7 @@ func GetColorPickerValue(view View, subviewID string) Color {
|
||||||
|
|
||||||
// GetColorChangedListeners returns the ColorChangedListener list of an ColorPicker subview.
|
// GetColorChangedListeners returns the ColorChangedListener list of an ColorPicker subview.
|
||||||
// If there are no listeners then the empty list is returned
|
// If there are no listeners then the empty list is returned
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetColorChangedListeners(view View, subviewID string) []func(ColorPicker, Color) {
|
func GetColorChangedListeners(view View, subviewID ...string) []func(ColorPicker, Color) {
|
||||||
return getEventListeners[ColorPicker, Color](view, subviewID, ColorChangedEvent)
|
return getEventListeners[ColorPicker, Color](view, subviewID, ColorChangedEvent)
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,29 +137,26 @@ func (columnLayout *columnLayoutData) set(tag string, value any) bool {
|
||||||
// GetColumnCount returns int value which specifies number of columns into which the content of
|
// GetColumnCount returns int value which specifies number of columns into which the content of
|
||||||
// ColumnLayout is break. If the return value is 0 then the number of columns is calculated
|
// ColumnLayout is break. If the return value is 0 then the number of columns is calculated
|
||||||
// based on the "column-width" property.
|
// based on the "column-width" property.
|
||||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a top position of the first argument (view) is returned
|
||||||
func GetColumnCount(view View, subviewID string) int {
|
func GetColumnCount(view View, subviewID ...string) int {
|
||||||
return intStyledProperty(view, subviewID, ColumnCount, 0)
|
return intStyledProperty(view, subviewID, ColumnCount, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetColumnWidth returns SizeUnit value which specifies the width of each column of ColumnLayout.
|
// GetColumnWidth returns SizeUnit value which specifies the width of each column of ColumnLayout.
|
||||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a top position of the first argument (view) is returned
|
||||||
func GetColumnWidth(view View, subviewID string) SizeUnit {
|
func GetColumnWidth(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, ColumnWidth, false)
|
return sizeStyledProperty(view, subviewID, ColumnWidth, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetColumnGap returns SizeUnit property which specifies the size of the gap (gutter) between columns of ColumnLayout.
|
// GetColumnGap returns SizeUnit property which specifies the size of the gap (gutter) between columns of ColumnLayout.
|
||||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a top position of the first argument (view) is returned
|
||||||
func GetColumnGap(view View, subviewID string) SizeUnit {
|
func GetColumnGap(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, ColumnGap, false)
|
return sizeStyledProperty(view, subviewID, ColumnGap, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetColumnSeparator returns ViewBorder struct which specifies the line drawn between
|
func getColumnSeparator(view View, subviewID []string) ViewBorder {
|
||||||
// columns in a multi-column ColumnLayout.
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
view = ViewByID(view, subviewID[0])
|
||||||
func GetColumnSeparator(view View, subviewID string) ViewBorder {
|
|
||||||
if subviewID != "" {
|
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
|
@ -178,27 +175,34 @@ func GetColumnSeparator(view View, subviewID string) ViewBorder {
|
||||||
return ViewBorder{}
|
return ViewBorder{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetColumnSeparator returns ViewBorder struct which specifies the line drawn between
|
||||||
|
// columns in a multi-column ColumnLayout.
|
||||||
|
// If the second argument (subviewID) is not specified or it is "" then a top position of the first argument (view) is returned
|
||||||
|
func GetColumnSeparator(view View, subviewID ...string) ViewBorder {
|
||||||
|
return getColumnSeparator(view, subviewID)
|
||||||
|
}
|
||||||
|
|
||||||
// ColumnSeparatorStyle returns int value which specifies the style of the line drawn between
|
// ColumnSeparatorStyle returns int value which specifies the style of the line drawn between
|
||||||
// columns in a multi-column layout.
|
// columns in a multi-column layout.
|
||||||
// Valid values are NoneLine (0), SolidLine (1), DashedLine (2), DottedLine (3), and DoubleLine (4).
|
// Valid values are NoneLine (0), SolidLine (1), DashedLine (2), DottedLine (3), and DoubleLine (4).
|
||||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a top position of the first argument (view) is returned
|
||||||
func GetColumnSeparatorStyle(view View, subviewID string) int {
|
func GetColumnSeparatorStyle(view View, subviewID ...string) int {
|
||||||
border := GetColumnSeparator(view, subviewID)
|
border := getColumnSeparator(view, subviewID)
|
||||||
return border.Style
|
return border.Style
|
||||||
}
|
}
|
||||||
|
|
||||||
// ColumnSeparatorWidth returns SizeUnit value which specifies the width of the line drawn between
|
// ColumnSeparatorWidth returns SizeUnit value which specifies the width of the line drawn between
|
||||||
// columns in a multi-column layout.
|
// columns in a multi-column layout.
|
||||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a top position of the first argument (view) is returned
|
||||||
func GetColumnSeparatorWidth(view View, subviewID string) SizeUnit {
|
func GetColumnSeparatorWidth(view View, subviewID ...string) SizeUnit {
|
||||||
border := GetColumnSeparator(view, subviewID)
|
border := getColumnSeparator(view, subviewID)
|
||||||
return border.Width
|
return border.Width
|
||||||
}
|
}
|
||||||
|
|
||||||
// ColumnSeparatorColor returns Color value which specifies the color of the line drawn between
|
// ColumnSeparatorColor returns Color value which specifies the color of the line drawn between
|
||||||
// columns in a multi-column layout.
|
// columns in a multi-column layout.
|
||||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a top position of the first argument (view) is returned
|
||||||
func GetColumnSeparatorColor(view View, subviewID string) Color {
|
func GetColumnSeparatorColor(view View, subviewID ...string) Color {
|
||||||
border := GetColumnSeparator(view, subviewID)
|
border := getColumnSeparator(view, subviewID)
|
||||||
return border.Color
|
return border.Color
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,7 +96,7 @@ func (picker *datePickerData) remove(tag string) {
|
||||||
case DatePickerValue:
|
case DatePickerValue:
|
||||||
if _, ok := picker.properties[DatePickerValue]; ok {
|
if _, ok := picker.properties[DatePickerValue]; ok {
|
||||||
delete(picker.properties, DatePickerValue)
|
delete(picker.properties, DatePickerValue)
|
||||||
date := GetDatePickerValue(picker, "")
|
date := GetDatePickerValue(picker)
|
||||||
if picker.created {
|
if picker.created {
|
||||||
picker.session.runScript(fmt.Sprintf(`setInputValue('%s', '%s')`, picker.htmlID(), date.Format(dateFormat)))
|
picker.session.runScript(fmt.Sprintf(`setInputValue('%s', '%s')`, picker.htmlID(), date.Format(dateFormat)))
|
||||||
}
|
}
|
||||||
|
@ -204,9 +204,9 @@ func (picker *datePickerData) set(tag string, value any) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
case DatePickerStep:
|
case DatePickerStep:
|
||||||
oldStep := GetDatePickerStep(picker, "")
|
oldStep := GetDatePickerStep(picker)
|
||||||
if picker.setIntProperty(DatePickerStep, value) {
|
if picker.setIntProperty(DatePickerStep, value) {
|
||||||
if step := GetDatePickerStep(picker, ""); oldStep != step {
|
if step := GetDatePickerStep(picker); oldStep != step {
|
||||||
if picker.created {
|
if picker.created {
|
||||||
if step > 0 {
|
if step > 0 {
|
||||||
updateProperty(picker.htmlID(), Step, strconv.Itoa(step), picker.session)
|
updateProperty(picker.htmlID(), Step, strconv.Itoa(step), picker.session)
|
||||||
|
@ -220,7 +220,7 @@ func (picker *datePickerData) set(tag string, value any) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
case DatePickerValue:
|
case DatePickerValue:
|
||||||
oldDate := GetDatePickerValue(picker, "")
|
oldDate := GetDatePickerValue(picker)
|
||||||
if date, ok := setTimeValue(DatePickerValue); ok {
|
if date, ok := setTimeValue(DatePickerValue); ok {
|
||||||
if date != oldDate {
|
if date != oldDate {
|
||||||
if picker.created {
|
if picker.created {
|
||||||
|
@ -294,7 +294,7 @@ func (picker *datePickerData) htmlProperties(self View, buffer *strings.Builder)
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer.WriteString(` value="`)
|
buffer.WriteString(` value="`)
|
||||||
buffer.WriteString(GetDatePickerValue(picker, "").Format(dateFormat))
|
buffer.WriteString(GetDatePickerValue(picker).Format(dateFormat))
|
||||||
buffer.WriteByte('"')
|
buffer.WriteByte('"')
|
||||||
|
|
||||||
buffer.WriteString(` oninput="editViewInputEvent(this)"`)
|
buffer.WriteString(` oninput="editViewInputEvent(this)"`)
|
||||||
|
@ -304,7 +304,7 @@ func (picker *datePickerData) htmlProperties(self View, buffer *strings.Builder)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (picker *datePickerData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
func (picker *datePickerData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
||||||
if IsDisabled(self, "") {
|
if IsDisabled(self) {
|
||||||
buffer.WriteString(` disabled`)
|
buffer.WriteString(` disabled`)
|
||||||
}
|
}
|
||||||
picker.viewData.htmlDisabledProperties(self, buffer)
|
picker.viewData.htmlDisabledProperties(self, buffer)
|
||||||
|
@ -315,7 +315,7 @@ func (picker *datePickerData) handleCommand(self View, command string, data Data
|
||||||
case "textChanged":
|
case "textChanged":
|
||||||
if text, ok := data.PropertyValue("text"); ok {
|
if text, ok := data.PropertyValue("text"); ok {
|
||||||
if value, err := time.Parse(dateFormat, text); err == nil {
|
if value, err := time.Parse(dateFormat, text); err == nil {
|
||||||
oldValue := GetDatePickerValue(picker, "")
|
oldValue := GetDatePickerValue(picker)
|
||||||
picker.properties[DatePickerValue] = value
|
picker.properties[DatePickerValue] = value
|
||||||
if value != oldValue {
|
if value != oldValue {
|
||||||
for _, listener := range picker.dateChangedListeners {
|
for _, listener := range picker.dateChangedListeners {
|
||||||
|
@ -365,10 +365,10 @@ func getDateProperty(view View, mainTag, shortTag string) (time.Time, bool) {
|
||||||
|
|
||||||
// GetDatePickerMin returns the min date of DatePicker subview and "true" as the second value if the min date is set,
|
// GetDatePickerMin returns the min date of DatePicker subview and "true" as the second value if the min date is set,
|
||||||
// "false" as the second value otherwise.
|
// "false" as the second value otherwise.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetDatePickerMin(view View, subviewID string) (time.Time, bool) {
|
func GetDatePickerMin(view View, subviewID ...string) (time.Time, bool) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
return getDateProperty(view, DatePickerMin, Min)
|
return getDateProperty(view, DatePickerMin, Min)
|
||||||
|
@ -378,10 +378,10 @@ func GetDatePickerMin(view View, subviewID string) (time.Time, bool) {
|
||||||
|
|
||||||
// GetDatePickerMax returns the max date of DatePicker subview and "true" as the second value if the min date is set,
|
// GetDatePickerMax returns the max date of DatePicker subview and "true" as the second value if the min date is set,
|
||||||
// "false" as the second value otherwise.
|
// "false" as the second value otherwise.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetDatePickerMax(view View, subviewID string) (time.Time, bool) {
|
func GetDatePickerMax(view View, subviewID ...string) (time.Time, bool) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
return getDateProperty(view, DatePickerMax, Max)
|
return getDateProperty(view, DatePickerMax, Max)
|
||||||
|
@ -390,16 +390,16 @@ func GetDatePickerMax(view View, subviewID string) (time.Time, bool) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetDatePickerStep returns the date changing step in days of DatePicker subview.
|
// GetDatePickerStep returns the date changing step in days of DatePicker subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetDatePickerStep(view View, subviewID string) int {
|
func GetDatePickerStep(view View, subviewID ...string) int {
|
||||||
return intStyledProperty(view, subviewID, DatePickerStep, 0)
|
return intStyledProperty(view, subviewID, DatePickerStep, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetDatePickerValue returns the date of DatePicker subview.
|
// GetDatePickerValue returns the date of DatePicker subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetDatePickerValue(view View, subviewID string) time.Time {
|
func GetDatePickerValue(view View, subviewID ...string) time.Time {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view == nil {
|
if view == nil {
|
||||||
return time.Now()
|
return time.Now()
|
||||||
|
@ -410,7 +410,7 @@ func GetDatePickerValue(view View, subviewID string) time.Time {
|
||||||
|
|
||||||
// GetDateChangedListeners returns the DateChangedListener list of an DatePicker subview.
|
// GetDateChangedListeners returns the DateChangedListener list of an DatePicker subview.
|
||||||
// If there are no listeners then the empty list is returned
|
// If there are no listeners then the empty list is returned
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetDateChangedListeners(view View, subviewID string) []func(DatePicker, time.Time) {
|
func GetDateChangedListeners(view View, subviewID ...string) []func(DatePicker, time.Time) {
|
||||||
return getEventListeners[DatePicker, time.Time](view, subviewID, DateChangedEvent)
|
return getEventListeners[DatePicker, time.Time](view, subviewID, DateChangedEvent)
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,7 +110,7 @@ func (detailsView *detailsViewData) set(tag string, value any) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if detailsView.created {
|
if detailsView.created {
|
||||||
if IsDetailsExpanded(detailsView, "") {
|
if IsDetailsExpanded(detailsView) {
|
||||||
updateProperty(detailsView.htmlID(), "open", "", detailsView.Session())
|
updateProperty(detailsView.htmlID(), "open", "", detailsView.Session())
|
||||||
} else {
|
} else {
|
||||||
removeProperty(detailsView.htmlID(), "open", detailsView.Session())
|
removeProperty(detailsView.htmlID(), "open", detailsView.Session())
|
||||||
|
@ -148,7 +148,7 @@ func (detailsView *detailsViewData) htmlTag() string {
|
||||||
func (detailsView *detailsViewData) htmlProperties(self View, buffer *strings.Builder) {
|
func (detailsView *detailsViewData) htmlProperties(self View, buffer *strings.Builder) {
|
||||||
detailsView.viewsContainerData.htmlProperties(self, buffer)
|
detailsView.viewsContainerData.htmlProperties(self, buffer)
|
||||||
buffer.WriteString(` ontoggle="detailsEvent(this)"`)
|
buffer.WriteString(` ontoggle="detailsEvent(this)"`)
|
||||||
if IsDetailsExpanded(detailsView, "") {
|
if IsDetailsExpanded(detailsView) {
|
||||||
buffer.WriteString(` open`)
|
buffer.WriteString(` open`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -157,7 +157,7 @@ func (detailsView *detailsViewData) htmlSubviews(self View, buffer *strings.Buil
|
||||||
if value, ok := detailsView.properties[Summary]; ok {
|
if value, ok := detailsView.properties[Summary]; ok {
|
||||||
switch value := value.(type) {
|
switch value := value.(type) {
|
||||||
case string:
|
case string:
|
||||||
if !GetNotTranslate(detailsView, "") {
|
if !GetNotTranslate(detailsView) {
|
||||||
value, _ = detailsView.session.GetString(value)
|
value, _ = detailsView.session.GetString(value)
|
||||||
}
|
}
|
||||||
buffer.WriteString("<summary>")
|
buffer.WriteString("<summary>")
|
||||||
|
@ -186,10 +186,10 @@ func (detailsView *detailsViewData) handleCommand(self View, command string, dat
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetDetailsSummary returns a value of the Summary property of DetailsView.
|
// GetDetailsSummary returns a value of the Summary property of DetailsView.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetDetailsSummary(view View, subviewID string) View {
|
func GetDetailsSummary(view View, subviewID ...string) View {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value := view.Get(Summary); value != nil {
|
if value := view.Get(Summary); value != nil {
|
||||||
|
@ -206,7 +206,7 @@ func GetDetailsSummary(view View, subviewID string) View {
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsDetailsExpanded returns a value of the Expanded property of DetailsView.
|
// IsDetailsExpanded returns a value of the Expanded property of DetailsView.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func IsDetailsExpanded(view View, subviewID string) bool {
|
func IsDetailsExpanded(view View, subviewID ...string) bool {
|
||||||
return boolStyledProperty(view, subviewID, Expanded, false)
|
return boolStyledProperty(view, subviewID, Expanded, false)
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,7 @@ func (list *dropDownListData) remove(tag string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
case Current:
|
case Current:
|
||||||
oldCurrent := GetCurrent(list, "")
|
oldCurrent := GetCurrent(list)
|
||||||
delete(list.properties, Current)
|
delete(list.properties, Current)
|
||||||
if oldCurrent != 0 {
|
if oldCurrent != 0 {
|
||||||
if list.created {
|
if list.created {
|
||||||
|
@ -125,12 +125,12 @@ func (list *dropDownListData) set(tag string, value any) bool {
|
||||||
return true
|
return true
|
||||||
|
|
||||||
case Current:
|
case Current:
|
||||||
oldCurrent := GetCurrent(list, "")
|
oldCurrent := GetCurrent(list)
|
||||||
if !list.setIntProperty(Current, value) {
|
if !list.setIntProperty(Current, value) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if current := GetCurrent(list, ""); oldCurrent != current {
|
if current := GetCurrent(list); oldCurrent != current {
|
||||||
if list.created {
|
if list.created {
|
||||||
list.session.runScript(fmt.Sprintf(`selectDropDownListItem('%s', %d)`, list.htmlID(), current))
|
list.session.runScript(fmt.Sprintf(`selectDropDownListItem('%s', %d)`, list.htmlID(), current))
|
||||||
}
|
}
|
||||||
|
@ -333,9 +333,9 @@ func (list *dropDownListData) htmlTag() string {
|
||||||
|
|
||||||
func (list *dropDownListData) htmlSubviews(self View, buffer *strings.Builder) {
|
func (list *dropDownListData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||||
if list.items != nil {
|
if list.items != nil {
|
||||||
current := GetCurrent(list, "")
|
current := GetCurrent(list)
|
||||||
notTranslate := GetNotTranslate(list, "")
|
notTranslate := GetNotTranslate(list)
|
||||||
disabledItems := GetDropDownDisabledItems(list, "")
|
disabledItems := GetDropDownDisabledItems(list)
|
||||||
for i, item := range list.items {
|
for i, item := range list.items {
|
||||||
disabled := false
|
disabled := false
|
||||||
for _, index := range disabledItems {
|
for _, index := range disabledItems {
|
||||||
|
@ -369,7 +369,7 @@ func (list *dropDownListData) htmlProperties(self View, buffer *strings.Builder)
|
||||||
|
|
||||||
func (list *dropDownListData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
func (list *dropDownListData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
||||||
list.viewData.htmlDisabledProperties(self, buffer)
|
list.viewData.htmlDisabledProperties(self, buffer)
|
||||||
if IsDisabled(list, "") {
|
if IsDisabled(list) {
|
||||||
buffer.WriteString(`disabled`)
|
buffer.WriteString(`disabled`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -386,7 +386,7 @@ func (list *dropDownListData) handleCommand(self View, command string, data Data
|
||||||
case "itemSelected":
|
case "itemSelected":
|
||||||
if text, ok := data.PropertyValue("number"); ok {
|
if text, ok := data.PropertyValue("number"); ok {
|
||||||
if number, err := strconv.Atoi(text); err == nil {
|
if number, err := strconv.Atoi(text); err == nil {
|
||||||
if GetCurrent(list, "") != number && number >= 0 && number < len(list.items) {
|
if GetCurrent(list) != number && number >= 0 && number < len(list.items) {
|
||||||
list.properties[Current] = number
|
list.properties[Current] = number
|
||||||
list.onSelectedItemChanged(number)
|
list.onSelectedItemChanged(number)
|
||||||
}
|
}
|
||||||
|
@ -401,19 +401,17 @@ func (list *dropDownListData) handleCommand(self View, command string, data Data
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDropDownListeners(view View) []func(DropDownList, int) {
|
// GetDropDownListeners returns the "drop-down-event" listener list. If there are no listeners then the empty list is returned.
|
||||||
if value := view.Get(DropDownEvent); value != nil {
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
if listeners, ok := value.([]func(DropDownList, int)); ok {
|
func GetDropDownListeners(view View, subviewID ...string) []func(DropDownList, int) {
|
||||||
return listeners
|
return getEventListeners[DropDownList, int](view, subviewID, DropDownEvent)
|
||||||
}
|
|
||||||
}
|
|
||||||
return []func(DropDownList, int){}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// func GetDropDownItems return the view items list
|
// GetDropDownItems return the DropDownList items list.
|
||||||
func GetDropDownItems(view View, subviewID string) []string {
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
if subviewID != "" {
|
func GetDropDownItems(view View, subviewID ...string) []string {
|
||||||
view = ViewByID(view, subviewID)
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if list, ok := view.(DropDownList); ok {
|
if list, ok := view.(DropDownList); ok {
|
||||||
|
@ -423,11 +421,13 @@ func GetDropDownItems(view View, subviewID string) []string {
|
||||||
return []string{}
|
return []string{}
|
||||||
}
|
}
|
||||||
|
|
||||||
// func GetDropDownDisabledItems return the list of disabled item indexes
|
// GetDropDownDisabledItems return the list of DropDownList disabled item indexes.
|
||||||
func GetDropDownDisabledItems(view View, subviewID string) []int {
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
if subviewID != "" {
|
func GetDropDownDisabledItems(view View, subviewID ...string) []int {
|
||||||
view = ViewByID(view, subviewID)
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value := view.Get(DisabledItems); value != nil {
|
if value := view.Get(DisabledItems); value != nil {
|
||||||
if values, ok := value.([]any); ok {
|
if values, ok := value.([]any); ok {
|
||||||
|
|
132
editView.go
132
editView.go
|
@ -132,19 +132,19 @@ func (edit *editViewData) remove(tag string) {
|
||||||
|
|
||||||
case Text:
|
case Text:
|
||||||
if exists {
|
if exists {
|
||||||
oldText := GetText(edit, "")
|
oldText := GetText(edit)
|
||||||
delete(edit.properties, tag)
|
delete(edit.properties, tag)
|
||||||
if oldText != "" {
|
if oldText != "" {
|
||||||
edit.textChanged("")
|
edit.textChanged("")
|
||||||
if edit.created {
|
if edit.created {
|
||||||
edit.session.runScript(fmt.Sprintf(`setInputValue('%s', '%s')`, edit.htmlID(), ""))
|
edit.session.runScript(fmt.Sprintf(`setInputValue('%s', '%s')`, edit.htmlID()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
case EditViewPattern:
|
case EditViewPattern:
|
||||||
if exists {
|
if exists {
|
||||||
oldText := GetEditViewPattern(edit, "")
|
oldText := GetEditViewPattern(edit)
|
||||||
delete(edit.properties, tag)
|
delete(edit.properties, tag)
|
||||||
if oldText != "" {
|
if oldText != "" {
|
||||||
if edit.created {
|
if edit.created {
|
||||||
|
@ -156,7 +156,7 @@ func (edit *editViewData) remove(tag string) {
|
||||||
|
|
||||||
case EditViewType:
|
case EditViewType:
|
||||||
if exists {
|
if exists {
|
||||||
oldType := GetEditViewType(edit, "")
|
oldType := GetEditViewType(edit)
|
||||||
delete(edit.properties, tag)
|
delete(edit.properties, tag)
|
||||||
if oldType != 0 {
|
if oldType != 0 {
|
||||||
if edit.created {
|
if edit.created {
|
||||||
|
@ -168,10 +168,10 @@ func (edit *editViewData) remove(tag string) {
|
||||||
|
|
||||||
case EditWrap:
|
case EditWrap:
|
||||||
if exists {
|
if exists {
|
||||||
oldWrap := IsEditViewWrap(edit, "")
|
oldWrap := IsEditViewWrap(edit)
|
||||||
delete(edit.properties, tag)
|
delete(edit.properties, tag)
|
||||||
if GetEditViewType(edit, "") == MultiLineText {
|
if GetEditViewType(edit) == MultiLineText {
|
||||||
if wrap := IsEditViewWrap(edit, ""); wrap != oldWrap {
|
if wrap := IsEditViewWrap(edit); wrap != oldWrap {
|
||||||
if edit.created {
|
if edit.created {
|
||||||
if wrap {
|
if wrap {
|
||||||
updateProperty(edit.htmlID(), "wrap", "soft", edit.session)
|
updateProperty(edit.htmlID(), "wrap", "soft", edit.session)
|
||||||
|
@ -202,13 +202,13 @@ func (edit *editViewData) set(tag string, value any) bool {
|
||||||
|
|
||||||
switch tag {
|
switch tag {
|
||||||
case Text:
|
case Text:
|
||||||
oldText := GetText(edit, "")
|
oldText := GetText(edit)
|
||||||
if text, ok := value.(string); ok {
|
if text, ok := value.(string); ok {
|
||||||
edit.properties[Text] = text
|
edit.properties[Text] = text
|
||||||
if text = GetText(edit, ""); oldText != text {
|
if text = GetText(edit); oldText != text {
|
||||||
edit.textChanged(text)
|
edit.textChanged(text)
|
||||||
if edit.created {
|
if edit.created {
|
||||||
if GetEditViewType(edit, "") == MultiLineText {
|
if GetEditViewType(edit) == MultiLineText {
|
||||||
updateInnerHTML(edit.htmlID(), edit.Session())
|
updateInnerHTML(edit.htmlID(), edit.Session())
|
||||||
} else {
|
} else {
|
||||||
text = strings.ReplaceAll(text, `"`, `\"`)
|
text = strings.ReplaceAll(text, `"`, `\"`)
|
||||||
|
@ -224,10 +224,10 @@ func (edit *editViewData) set(tag string, value any) bool {
|
||||||
return false
|
return false
|
||||||
|
|
||||||
case Hint:
|
case Hint:
|
||||||
oldText := GetHint(edit, "")
|
oldText := GetHint(edit)
|
||||||
if text, ok := value.(string); ok {
|
if text, ok := value.(string); ok {
|
||||||
edit.properties[Hint] = text
|
edit.properties[Hint] = text
|
||||||
if text = GetHint(edit, ""); oldText != text {
|
if text = GetHint(edit); oldText != text {
|
||||||
if edit.created {
|
if edit.created {
|
||||||
if text != "" {
|
if text != "" {
|
||||||
updateProperty(edit.htmlID(), "placeholder", text, edit.session)
|
updateProperty(edit.htmlID(), "placeholder", text, edit.session)
|
||||||
|
@ -242,9 +242,9 @@ func (edit *editViewData) set(tag string, value any) bool {
|
||||||
return false
|
return false
|
||||||
|
|
||||||
case MaxLength:
|
case MaxLength:
|
||||||
oldMaxLength := GetMaxLength(edit, "")
|
oldMaxLength := GetMaxLength(edit)
|
||||||
if edit.setIntProperty(MaxLength, value) {
|
if edit.setIntProperty(MaxLength, value) {
|
||||||
if maxLength := GetMaxLength(edit, ""); maxLength != oldMaxLength {
|
if maxLength := GetMaxLength(edit); maxLength != oldMaxLength {
|
||||||
if edit.created {
|
if edit.created {
|
||||||
if maxLength > 0 {
|
if maxLength > 0 {
|
||||||
updateProperty(edit.htmlID(), "maxlength", strconv.Itoa(maxLength), edit.session)
|
updateProperty(edit.htmlID(), "maxlength", strconv.Itoa(maxLength), edit.session)
|
||||||
|
@ -261,7 +261,7 @@ func (edit *editViewData) set(tag string, value any) bool {
|
||||||
case ReadOnly:
|
case ReadOnly:
|
||||||
if edit.setBoolProperty(ReadOnly, value) {
|
if edit.setBoolProperty(ReadOnly, value) {
|
||||||
if edit.created {
|
if edit.created {
|
||||||
if IsReadOnly(edit, "") {
|
if IsReadOnly(edit) {
|
||||||
updateProperty(edit.htmlID(), ReadOnly, "", edit.session)
|
updateProperty(edit.htmlID(), ReadOnly, "", edit.session)
|
||||||
} else {
|
} else {
|
||||||
removeProperty(edit.htmlID(), ReadOnly, edit.session)
|
removeProperty(edit.htmlID(), ReadOnly, edit.session)
|
||||||
|
@ -275,7 +275,7 @@ func (edit *editViewData) set(tag string, value any) bool {
|
||||||
case Spellcheck:
|
case Spellcheck:
|
||||||
if edit.setBoolProperty(Spellcheck, value) {
|
if edit.setBoolProperty(Spellcheck, value) {
|
||||||
if edit.created {
|
if edit.created {
|
||||||
updateBoolProperty(edit.htmlID(), Spellcheck, IsSpellcheck(edit, ""), edit.session)
|
updateBoolProperty(edit.htmlID(), Spellcheck, IsSpellcheck(edit), edit.session)
|
||||||
}
|
}
|
||||||
edit.propertyChangedEvent(tag)
|
edit.propertyChangedEvent(tag)
|
||||||
return true
|
return true
|
||||||
|
@ -283,10 +283,10 @@ func (edit *editViewData) set(tag string, value any) bool {
|
||||||
return false
|
return false
|
||||||
|
|
||||||
case EditViewPattern:
|
case EditViewPattern:
|
||||||
oldText := GetEditViewPattern(edit, "")
|
oldText := GetEditViewPattern(edit)
|
||||||
if text, ok := value.(string); ok {
|
if text, ok := value.(string); ok {
|
||||||
edit.properties[EditViewPattern] = text
|
edit.properties[EditViewPattern] = text
|
||||||
if text = GetEditViewPattern(edit, ""); oldText != text {
|
if text = GetEditViewPattern(edit); oldText != text {
|
||||||
if edit.created {
|
if edit.created {
|
||||||
if text != "" {
|
if text != "" {
|
||||||
updateProperty(edit.htmlID(), Pattern, text, edit.session)
|
updateProperty(edit.htmlID(), Pattern, text, edit.session)
|
||||||
|
@ -301,9 +301,9 @@ func (edit *editViewData) set(tag string, value any) bool {
|
||||||
return false
|
return false
|
||||||
|
|
||||||
case EditViewType:
|
case EditViewType:
|
||||||
oldType := GetEditViewType(edit, "")
|
oldType := GetEditViewType(edit)
|
||||||
if edit.setEnumProperty(EditViewType, value, enumProperties[EditViewType].values) {
|
if edit.setEnumProperty(EditViewType, value, enumProperties[EditViewType].values) {
|
||||||
if GetEditViewType(edit, "") != oldType {
|
if GetEditViewType(edit) != oldType {
|
||||||
if edit.created {
|
if edit.created {
|
||||||
updateInnerHTML(edit.parentHTMLID(), edit.session)
|
updateInnerHTML(edit.parentHTMLID(), edit.session)
|
||||||
}
|
}
|
||||||
|
@ -314,10 +314,10 @@ func (edit *editViewData) set(tag string, value any) bool {
|
||||||
return false
|
return false
|
||||||
|
|
||||||
case EditWrap:
|
case EditWrap:
|
||||||
oldWrap := IsEditViewWrap(edit, "")
|
oldWrap := IsEditViewWrap(edit)
|
||||||
if edit.setBoolProperty(EditWrap, value) {
|
if edit.setBoolProperty(EditWrap, value) {
|
||||||
if GetEditViewType(edit, "") == MultiLineText {
|
if GetEditViewType(edit) == MultiLineText {
|
||||||
if wrap := IsEditViewWrap(edit, ""); wrap != oldWrap {
|
if wrap := IsEditViewWrap(edit); wrap != oldWrap {
|
||||||
if edit.created {
|
if edit.created {
|
||||||
if wrap {
|
if wrap {
|
||||||
updateProperty(edit.htmlID(), "wrap", "soft", edit.session)
|
updateProperty(edit.htmlID(), "wrap", "soft", edit.session)
|
||||||
|
@ -360,7 +360,7 @@ func (edit *editViewData) get(tag string) any {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (edit *editViewData) AppendText(text string) {
|
func (edit *editViewData) AppendText(text string) {
|
||||||
if GetEditViewType(edit, "") == MultiLineText {
|
if GetEditViewType(edit) == MultiLineText {
|
||||||
if value := edit.getRaw(Text); value != nil {
|
if value := edit.getRaw(Text); value != nil {
|
||||||
if textValue, ok := value.(string); ok {
|
if textValue, ok := value.(string); ok {
|
||||||
textValue += text
|
textValue += text
|
||||||
|
@ -379,7 +379,7 @@ func (edit *editViewData) AppendText(text string) {
|
||||||
}
|
}
|
||||||
edit.set(Text, text)
|
edit.set(Text, text)
|
||||||
} else {
|
} else {
|
||||||
edit.set(Text, GetText(edit, "")+text)
|
edit.set(Text, GetText(edit)+text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -391,7 +391,7 @@ func (edit *editViewData) textChanged(newText string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (edit *editViewData) htmlTag() string {
|
func (edit *editViewData) htmlTag() string {
|
||||||
if GetEditViewType(edit, "") == MultiLineText {
|
if GetEditViewType(edit) == MultiLineText {
|
||||||
return "textarea"
|
return "textarea"
|
||||||
}
|
}
|
||||||
return "input"
|
return "input"
|
||||||
|
@ -401,14 +401,14 @@ func (edit *editViewData) htmlProperties(self View, buffer *strings.Builder) {
|
||||||
edit.viewData.htmlProperties(self, buffer)
|
edit.viewData.htmlProperties(self, buffer)
|
||||||
|
|
||||||
writeSpellcheck := func() {
|
writeSpellcheck := func() {
|
||||||
if spellcheck := IsSpellcheck(edit, ""); spellcheck {
|
if spellcheck := IsSpellcheck(edit); spellcheck {
|
||||||
buffer.WriteString(` spellcheck="true"`)
|
buffer.WriteString(` spellcheck="true"`)
|
||||||
} else {
|
} else {
|
||||||
buffer.WriteString(` spellcheck="false"`)
|
buffer.WriteString(` spellcheck="false"`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
editType := GetEditViewType(edit, "")
|
editType := GetEditViewType(edit)
|
||||||
switch editType {
|
switch editType {
|
||||||
case SingleLineText:
|
case SingleLineText:
|
||||||
buffer.WriteString(` type="text" inputmode="text"`)
|
buffer.WriteString(` type="text" inputmode="text"`)
|
||||||
|
@ -430,7 +430,7 @@ func (edit *editViewData) htmlProperties(self View, buffer *strings.Builder) {
|
||||||
buffer.WriteString(` type="tel" inputmode="tel"`)
|
buffer.WriteString(` type="tel" inputmode="tel"`)
|
||||||
|
|
||||||
case MultiLineText:
|
case MultiLineText:
|
||||||
if IsEditViewWrap(edit, "") {
|
if IsEditViewWrap(edit) {
|
||||||
buffer.WriteString(` wrap="soft"`)
|
buffer.WriteString(` wrap="soft"`)
|
||||||
} else {
|
} else {
|
||||||
buffer.WriteString(` wrap="off"`)
|
buffer.WriteString(` wrap="off"`)
|
||||||
|
@ -438,11 +438,11 @@ func (edit *editViewData) htmlProperties(self View, buffer *strings.Builder) {
|
||||||
writeSpellcheck()
|
writeSpellcheck()
|
||||||
}
|
}
|
||||||
|
|
||||||
if IsReadOnly(edit, "") {
|
if IsReadOnly(edit) {
|
||||||
buffer.WriteString(` readonly`)
|
buffer.WriteString(` readonly`)
|
||||||
}
|
}
|
||||||
|
|
||||||
if maxLength := GetMaxLength(edit, ""); maxLength > 0 {
|
if maxLength := GetMaxLength(edit); maxLength > 0 {
|
||||||
buffer.WriteString(` maxlength="`)
|
buffer.WriteString(` maxlength="`)
|
||||||
buffer.WriteString(strconv.Itoa(maxLength))
|
buffer.WriteString(strconv.Itoa(maxLength))
|
||||||
buffer.WriteByte('"')
|
buffer.WriteByte('"')
|
||||||
|
@ -455,21 +455,21 @@ func (edit *editViewData) htmlProperties(self View, buffer *strings.Builder) {
|
||||||
return textToJS(text)
|
return textToJS(text)
|
||||||
}
|
}
|
||||||
|
|
||||||
if hint := GetHint(edit, ""); hint != "" {
|
if hint := GetHint(edit); hint != "" {
|
||||||
buffer.WriteString(` placeholder="`)
|
buffer.WriteString(` placeholder="`)
|
||||||
buffer.WriteString(convertText(hint))
|
buffer.WriteString(convertText(hint))
|
||||||
buffer.WriteByte('"')
|
buffer.WriteByte('"')
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer.WriteString(` oninput="editViewInputEvent(this)"`)
|
buffer.WriteString(` oninput="editViewInputEvent(this)"`)
|
||||||
if pattern := GetEditViewPattern(edit, ""); pattern != "" {
|
if pattern := GetEditViewPattern(edit); pattern != "" {
|
||||||
buffer.WriteString(` pattern="`)
|
buffer.WriteString(` pattern="`)
|
||||||
buffer.WriteString(convertText(pattern))
|
buffer.WriteString(convertText(pattern))
|
||||||
buffer.WriteByte('"')
|
buffer.WriteByte('"')
|
||||||
}
|
}
|
||||||
|
|
||||||
if editType != MultiLineText {
|
if editType != MultiLineText {
|
||||||
if text := GetText(edit, ""); text != "" {
|
if text := GetText(edit); text != "" {
|
||||||
buffer.WriteString(` value="`)
|
buffer.WriteString(` value="`)
|
||||||
buffer.WriteString(convertText(text))
|
buffer.WriteString(convertText(text))
|
||||||
buffer.WriteByte('"')
|
buffer.WriteByte('"')
|
||||||
|
@ -478,25 +478,25 @@ func (edit *editViewData) htmlProperties(self View, buffer *strings.Builder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (edit *editViewData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
func (edit *editViewData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
||||||
if IsDisabled(self, "") {
|
if IsDisabled(self) {
|
||||||
buffer.WriteString(` disabled`)
|
buffer.WriteString(` disabled`)
|
||||||
}
|
}
|
||||||
edit.viewData.htmlDisabledProperties(self, buffer)
|
edit.viewData.htmlDisabledProperties(self, buffer)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (edit *editViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
func (edit *editViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||||
if GetEditViewType(edit, "") == MultiLineText {
|
if GetEditViewType(edit) == MultiLineText {
|
||||||
buffer.WriteString(textToJS(GetText(edit, "")))
|
buffer.WriteString(textToJS(GetText(edit)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (edit *editViewData) handleCommand(self View, command string, data DataObject) bool {
|
func (edit *editViewData) handleCommand(self View, command string, data DataObject) bool {
|
||||||
switch command {
|
switch command {
|
||||||
case "textChanged":
|
case "textChanged":
|
||||||
oldText := GetText(edit, "")
|
oldText := GetText(edit)
|
||||||
if text, ok := data.PropertyValue("text"); ok {
|
if text, ok := data.PropertyValue("text"); ok {
|
||||||
edit.properties[Text] = text
|
edit.properties[Text] = text
|
||||||
if text := GetText(edit, ""); text != oldText {
|
if text := GetText(edit); text != oldText {
|
||||||
edit.textChanged(text)
|
edit.textChanged(text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -507,10 +507,10 @@ func (edit *editViewData) handleCommand(self View, command string, data DataObje
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetText returns a text of the EditView subview.
|
// GetText returns a text of the EditView subview.
|
||||||
// If the second argument (subviewID) is "" then a text of the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a text of the first argument (view) is returned.
|
||||||
func GetText(view View, subviewID string) string {
|
func GetText(view View, subviewID ...string) string {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value := view.getRaw(Text); value != nil {
|
if value := view.getRaw(Text); value != nil {
|
||||||
|
@ -523,10 +523,10 @@ func GetText(view View, subviewID string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetHint returns a hint text of the subview.
|
// GetHint returns a hint text of the subview.
|
||||||
// If the second argument (subviewID) is "" then a text of the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a text of the first argument (view) is returned.
|
||||||
func GetHint(view View, subviewID string) string {
|
func GetHint(view View, subviewID ...string) string {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if text, ok := stringProperty(view, Hint, view.Session()); ok {
|
if text, ok := stringProperty(view, Hint, view.Session()); ok {
|
||||||
|
@ -544,41 +544,41 @@ func GetHint(view View, subviewID string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMaxLength returns a maximal lenght of EditView. If a maximal lenght is not limited then 0 is returned
|
// GetMaxLength returns a maximal lenght of EditView. If a maximal lenght is not limited then 0 is returned
|
||||||
// If the second argument (subviewID) is "" then a value of the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value of the first argument (view) is returned.
|
||||||
func GetMaxLength(view View, subviewID string) int {
|
func GetMaxLength(view View, subviewID ...string) int {
|
||||||
return intStyledProperty(view, subviewID, MaxLength, 0)
|
return intStyledProperty(view, subviewID, MaxLength, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsReadOnly returns the true if a EditView works in read only mode.
|
// IsReadOnly returns the true if a EditView works in read only mode.
|
||||||
// If the second argument (subviewID) is "" then a value of the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value of the first argument (view) is returned.
|
||||||
func IsReadOnly(view View, subviewID string) bool {
|
func IsReadOnly(view View, subviewID ...string) bool {
|
||||||
return boolStyledProperty(view, subviewID, ReadOnly, false)
|
return boolStyledProperty(view, subviewID, ReadOnly, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsSpellcheck returns a value of the Spellcheck property of EditView.
|
// IsSpellcheck returns a value of the Spellcheck property of EditView.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func IsSpellcheck(view View, subviewID string) bool {
|
func IsSpellcheck(view View, subviewID ...string) bool {
|
||||||
return boolStyledProperty(view, subviewID, Spellcheck, false)
|
return boolStyledProperty(view, subviewID, Spellcheck, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTextChangedListeners returns the TextChangedListener list of an EditView or MultiLineEditView subview.
|
// GetTextChangedListeners returns the TextChangedListener list of an EditView or MultiLineEditView subview.
|
||||||
// If there are no listeners then the empty list is returned
|
// If there are no listeners then the empty list is returned
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTextChangedListeners(view View, subviewID string) []func(EditView, string) {
|
func GetTextChangedListeners(view View, subviewID ...string) []func(EditView, string) {
|
||||||
return getEventListeners[EditView, string](view, subviewID, EditTextChangedEvent)
|
return getEventListeners[EditView, string](view, subviewID, EditTextChangedEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetEditViewType returns a value of the Type property of EditView.
|
// GetEditViewType returns a value of the Type property of EditView.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetEditViewType(view View, subviewID string) int {
|
func GetEditViewType(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, EditViewType, SingleLineText, false)
|
return enumStyledProperty(view, subviewID, EditViewType, SingleLineText, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetEditViewPattern returns a value of the Pattern property of EditView.
|
// GetEditViewPattern returns a value of the Pattern property of EditView.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetEditViewPattern(view View, subviewID string) string {
|
func GetEditViewPattern(view View, subviewID ...string) string {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if pattern, ok := stringProperty(view, EditViewPattern, view.Session()); ok {
|
if pattern, ok := stringProperty(view, EditViewPattern, view.Session()); ok {
|
||||||
|
@ -596,13 +596,13 @@ func GetEditViewPattern(view View, subviewID string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsEditViewWrap returns a value of the EditWrap property of MultiLineEditView.
|
// IsEditViewWrap returns a value of the EditWrap property of MultiLineEditView.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func IsEditViewWrap(view View, subviewID string) bool {
|
func IsEditViewWrap(view View, subviewID ...string) bool {
|
||||||
return boolStyledProperty(view, subviewID, EditWrap, false)
|
return boolStyledProperty(view, subviewID, EditWrap, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// AppendEditText appends the text to the EditView content.
|
// AppendEditText appends the text to the EditView content.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func AppendEditText(view View, subviewID string, text string) {
|
func AppendEditText(view View, subviewID string, text string) {
|
||||||
if subviewID != "" {
|
if subviewID != "" {
|
||||||
if edit := EditViewByID(view, subviewID); edit != nil {
|
if edit := EditViewByID(view, subviewID); edit != nil {
|
||||||
|
@ -617,7 +617,7 @@ func AppendEditText(view View, subviewID string, text string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetCaretColor returns the color of the text input carret.
|
// GetCaretColor returns the color of the text input carret.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetCaretColor(view View, subviewID string) Color {
|
func GetCaretColor(view View, subviewID ...string) Color {
|
||||||
return colorStyledProperty(view, subviewID, CaretColor, false)
|
return colorStyledProperty(view, subviewID, CaretColor, false)
|
||||||
}
|
}
|
||||||
|
|
|
@ -251,7 +251,7 @@ func (picker *filePickerData) htmlProperties(self View, buffer *strings.Builder)
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer.WriteString(` type="file"`)
|
buffer.WriteString(` type="file"`)
|
||||||
if IsMultipleFilePicker(picker, "") {
|
if IsMultipleFilePicker(picker) {
|
||||||
buffer.WriteString(` multiple`)
|
buffer.WriteString(` multiple`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -262,7 +262,7 @@ func (picker *filePickerData) htmlProperties(self View, buffer *strings.Builder)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (picker *filePickerData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
func (picker *filePickerData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
||||||
if IsDisabled(self, "") {
|
if IsDisabled(self) {
|
||||||
buffer.WriteString(` disabled`)
|
buffer.WriteString(` disabled`)
|
||||||
}
|
}
|
||||||
picker.viewData.htmlDisabledProperties(self, buffer)
|
picker.viewData.htmlDisabledProperties(self, buffer)
|
||||||
|
@ -334,9 +334,14 @@ func (picker *filePickerData) handleCommand(self View, command string, data Data
|
||||||
|
|
||||||
// GetFilePickerFiles returns the list of FilePicker selected files
|
// GetFilePickerFiles returns the list of FilePicker selected files
|
||||||
// If there are no files selected then an empty slice is returned (the result is always not nil)
|
// If there are no files selected then an empty slice is returned (the result is always not nil)
|
||||||
// If the second argument (subviewID) is "" then selected files of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then selected files of the first argument (view) is returned
|
||||||
func GetFilePickerFiles(view View, subviewID string) []FileInfo {
|
func GetFilePickerFiles(view View, subviewID ...string) []FileInfo {
|
||||||
if picker := FilePickerByID(view, subviewID); picker != nil {
|
subview := ""
|
||||||
|
if len(subviewID) > 0 {
|
||||||
|
subview = subviewID[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
if picker := FilePickerByID(view, subview); picker != nil {
|
||||||
return picker.Files()
|
return picker.Files()
|
||||||
}
|
}
|
||||||
return []FileInfo{}
|
return []FileInfo{}
|
||||||
|
@ -352,16 +357,16 @@ func LoadFilePickerFile(view View, subviewID string, file FileInfo, result func(
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsMultipleFilePicker returns "true" if multiple files can be selected in the FilePicker, "false" otherwise.
|
// IsMultipleFilePicker returns "true" if multiple files can be selected in the FilePicker, "false" otherwise.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func IsMultipleFilePicker(view View, subviewID string) bool {
|
func IsMultipleFilePicker(view View, subviewID ...string) bool {
|
||||||
return boolStyledProperty(view, subviewID, Multiple, false)
|
return boolStyledProperty(view, subviewID, Multiple, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetFilePickerAccept returns sets the list of allowed file extensions or MIME types.
|
// GetFilePickerAccept returns sets the list of allowed file extensions or MIME types.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetFilePickerAccept(view View, subviewID string) []string {
|
func GetFilePickerAccept(view View, subviewID ...string) []string {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
accept, ok := stringProperty(view, Accept, view.Session())
|
accept, ok := stringProperty(view, Accept, view.Session())
|
||||||
|
@ -383,7 +388,7 @@ func GetFilePickerAccept(view View, subviewID string) []string {
|
||||||
|
|
||||||
// GetFileSelectedListeners returns the "file-selected-event" listener list.
|
// GetFileSelectedListeners returns the "file-selected-event" listener list.
|
||||||
// If there are no listeners then the empty list is returned.
|
// If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetFileSelectedListeners(view View, subviewID string) []func(FilePicker, []FileInfo) {
|
func GetFileSelectedListeners(view View, subviewID ...string) []func(FilePicker, []FileInfo) {
|
||||||
return getEventListeners[FilePicker, []FileInfo](view, subviewID, FileSelectedEvent)
|
return getEventListeners[FilePicker, []FileInfo](view, subviewID, FileSelectedEvent)
|
||||||
}
|
}
|
||||||
|
|
|
@ -125,10 +125,11 @@ func (view *viewData) removeFocusListener(tag string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getFocusListeners(view View, subviewID string, tag string) []func(View) {
|
func getFocusListeners(view View, subviewID []string, tag string) []func(View) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value := view.Get(tag); value != nil {
|
if value := view.Get(tag); value != nil {
|
||||||
if result, ok := value.([]func(View)); ok {
|
if result, ok := value.([]func(View)); ok {
|
||||||
|
@ -148,13 +149,13 @@ func focusEventsHtml(view View, buffer *strings.Builder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetFocusListeners returns a FocusListener list. If there are no listeners then the empty list is returned
|
// GetFocusListeners returns a FocusListener list. If there are no listeners then the empty list is returned
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetFocusListeners(view View, subviewID string) []func(View) {
|
func GetFocusListeners(view View, subviewID ...string) []func(View) {
|
||||||
return getFocusListeners(view, subviewID, FocusEvent)
|
return getFocusListeners(view, subviewID, FocusEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetLostFocusListeners returns a LostFocusListener list. If there are no listeners then the empty list is returned
|
// GetLostFocusListeners returns a LostFocusListener list. If there are no listeners then the empty list is returned
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetLostFocusListeners(view View, subviewID string) []func(View) {
|
func GetLostFocusListeners(view View, subviewID ...string) []func(View) {
|
||||||
return getFocusListeners(view, subviewID, LostFocusEvent)
|
return getFocusListeners(view, subviewID, LostFocusEvent)
|
||||||
}
|
}
|
||||||
|
|
|
@ -201,8 +201,8 @@ func (gridLayout *gridLayoutData) Get(tag string) any {
|
||||||
|
|
||||||
func (gridLayout *gridLayoutData) get(tag string) any {
|
func (gridLayout *gridLayoutData) get(tag string) any {
|
||||||
if tag == Gap {
|
if tag == Gap {
|
||||||
rowGap := GetGridRowGap(gridLayout, "")
|
rowGap := GetGridRowGap(gridLayout)
|
||||||
columnGap := GetGridColumnGap(gridLayout, "")
|
columnGap := GetGridColumnGap(gridLayout)
|
||||||
if rowGap.Equal(columnGap) {
|
if rowGap.Equal(columnGap) {
|
||||||
return rowGap
|
return rowGap
|
||||||
}
|
}
|
||||||
|
@ -319,29 +319,29 @@ func (gridLayout *gridLayoutData) cssStyle(self View, builder cssBuilder) {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// GetCellVerticalAlign returns the vertical align of a GridLayout cell content: TopAlign (0), BottomAlign (1), CenterAlign (2), StretchAlign (3)
|
// GetCellVerticalAlign returns the vertical align of a GridLayout cell content: TopAlign (0), BottomAlign (1), CenterAlign (2), StretchAlign (3)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetCellVerticalAlign(view View, subviewID string) int {
|
func GetCellVerticalAlign(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, CellVerticalAlign, StretchAlign, false)
|
return enumStyledProperty(view, subviewID, CellVerticalAlign, StretchAlign, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetCellHorizontalAlign returns the vertical align of a GridLayout cell content: LeftAlign (0), RightAlign (1), CenterAlign (2), StretchAlign (3)
|
// GetCellHorizontalAlign returns the vertical align of a GridLayout cell content: LeftAlign (0), RightAlign (1), CenterAlign (2), StretchAlign (3)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetCellHorizontalAlign(view View, subviewID string) int {
|
func GetCellHorizontalAlign(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, CellHorizontalAlign, StretchAlign, false)
|
return enumStyledProperty(view, subviewID, CellHorizontalAlign, StretchAlign, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetGridAutoFlow returns the value of the "grid-auto-flow" property
|
// GetGridAutoFlow returns the value of the "grid-auto-flow" property
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetGridAutoFlow(view View, subviewID string) int {
|
func GetGridAutoFlow(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, GridAutoFlow, 0, false)
|
return enumStyledProperty(view, subviewID, GridAutoFlow, 0, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetCellWidth returns the width of a GridLayout cell. If the result is an empty array, then the width is not set.
|
// GetCellWidth returns the width of a GridLayout cell. If the result is an empty array, then the width is not set.
|
||||||
// If the result is a single value array, then the width of all cell is equal.
|
// If the result is a single value array, then the width of all cell is equal.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetCellWidth(view View, subviewID string) []SizeUnit {
|
func GetCellWidth(view View, subviewID ...string) []SizeUnit {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
return gridCellSizes(view, CellWidth, view.Session())
|
return gridCellSizes(view, CellWidth, view.Session())
|
||||||
|
@ -351,10 +351,10 @@ func GetCellWidth(view View, subviewID string) []SizeUnit {
|
||||||
|
|
||||||
// GetCellHeight returns the height of a GridLayout cell. If the result is an empty array, then the height is not set.
|
// GetCellHeight returns the height of a GridLayout cell. If the result is an empty array, then the height is not set.
|
||||||
// If the result is a single value array, then the height of all cell is equal.
|
// If the result is a single value array, then the height of all cell is equal.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetCellHeight(view View, subviewID string) []SizeUnit {
|
func GetCellHeight(view View, subviewID ...string) []SizeUnit {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
return gridCellSizes(view, CellHeight, view.Session())
|
return gridCellSizes(view, CellHeight, view.Session())
|
||||||
|
@ -363,13 +363,13 @@ func GetCellHeight(view View, subviewID string) []SizeUnit {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetGridRowGap returns the gap between GridLayout rows.
|
// GetGridRowGap returns the gap between GridLayout rows.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetGridRowGap(view View, subviewID string) SizeUnit {
|
func GetGridRowGap(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, GridRowGap, false)
|
return sizeStyledProperty(view, subviewID, GridRowGap, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetGridColumnGap returns the gap between GridLayout columns.
|
// GetGridColumnGap returns the gap between GridLayout columns.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetGridColumnGap(view View, subviewID string) SizeUnit {
|
func GetGridColumnGap(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, GridColumnGap, false)
|
return sizeStyledProperty(view, subviewID, GridColumnGap, false)
|
||||||
}
|
}
|
||||||
|
|
34
imageView.go
34
imageView.go
|
@ -244,7 +244,7 @@ func (imageView *imageViewData) htmlProperties(self View, buffer *strings.Builde
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if text := GetImageViewAltText(imageView, ""); text != "" {
|
if text := GetImageViewAltText(imageView); text != "" {
|
||||||
buffer.WriteString(` alt="`)
|
buffer.WriteString(` alt="`)
|
||||||
buffer.WriteString(textToJS(text))
|
buffer.WriteString(textToJS(text))
|
||||||
buffer.WriteString(`"`)
|
buffer.WriteString(`"`)
|
||||||
|
@ -266,8 +266,8 @@ func (imageView *imageViewData) cssStyle(self View, builder cssBuilder) {
|
||||||
builder.add("object-fit", "none")
|
builder.add("object-fit", "none")
|
||||||
}
|
}
|
||||||
|
|
||||||
vAlign := GetImageViewVerticalAlign(imageView, "")
|
vAlign := GetImageViewVerticalAlign(imageView)
|
||||||
hAlign := GetImageViewHorizontalAlign(imageView, "")
|
hAlign := GetImageViewHorizontalAlign(imageView)
|
||||||
if vAlign != CenterAlign || hAlign != CenterAlign {
|
if vAlign != CenterAlign || hAlign != CenterAlign {
|
||||||
var position string
|
var position string
|
||||||
switch hAlign {
|
switch hAlign {
|
||||||
|
@ -323,10 +323,10 @@ func (imageView *imageViewData) CurrentSource() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetImageViewSource returns the image URL of an ImageView subview.
|
// GetImageViewSource returns the image URL of an ImageView subview.
|
||||||
// If the second argument (subviewID) is "" then a left position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a left position of the first argument (view) is returned
|
||||||
func GetImageViewSource(view View, subviewID string) string {
|
func GetImageViewSource(view View, subviewID ...string) string {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
|
@ -339,10 +339,10 @@ func GetImageViewSource(view View, subviewID string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetImageViewAltText returns an alternative text description of an ImageView subview.
|
// GetImageViewAltText returns an alternative text description of an ImageView subview.
|
||||||
// If the second argument (subviewID) is "" then a left position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a left position of the first argument (view) is returned
|
||||||
func GetImageViewAltText(view View, subviewID string) string {
|
func GetImageViewAltText(view View, subviewID ...string) string {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
|
@ -358,19 +358,19 @@ func GetImageViewAltText(view View, subviewID string) string {
|
||||||
|
|
||||||
// GetImageViewFit returns how the content of a replaced ImageView subview:
|
// GetImageViewFit returns how the content of a replaced ImageView subview:
|
||||||
// NoneFit (0), ContainFit (1), CoverFit (2), FillFit (3), or ScaleDownFit (4).
|
// NoneFit (0), ContainFit (1), CoverFit (2), FillFit (3), or ScaleDownFit (4).
|
||||||
// If the second argument (subviewID) is "" then a left position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a left position of the first argument (view) is returned
|
||||||
func GetImageViewFit(view View, subviewID string) int {
|
func GetImageViewFit(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, Fit, NoneFit, false)
|
return enumStyledProperty(view, subviewID, Fit, NoneFit, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetImageViewVerticalAlign return the vertical align of an ImageView subview: TopAlign (0), BottomAlign (1), CenterAlign (2)
|
// GetImageViewVerticalAlign return the vertical align of an ImageView subview: TopAlign (0), BottomAlign (1), CenterAlign (2)
|
||||||
// If the second argument (subviewID) is "" then a left position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a left position of the first argument (view) is returned
|
||||||
func GetImageViewVerticalAlign(view View, subviewID string) int {
|
func GetImageViewVerticalAlign(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, ImageVerticalAlign, LeftAlign, false)
|
return enumStyledProperty(view, subviewID, ImageVerticalAlign, LeftAlign, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetImageViewHorizontalAlign return the vertical align of an ImageView subview: LeftAlign (0), RightAlign (1), CenterAlign (2)
|
// GetImageViewHorizontalAlign return the vertical align of an ImageView subview: LeftAlign (0), RightAlign (1), CenterAlign (2)
|
||||||
// If the second argument (subviewID) is "" then a left position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a left position of the first argument (view) is returned
|
||||||
func GetImageViewHorizontalAlign(view View, subviewID string) int {
|
func GetImageViewHorizontalAlign(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, ImageHorizontalAlign, LeftAlign, false)
|
return enumStyledProperty(view, subviewID, ImageHorizontalAlign, LeftAlign, false)
|
||||||
}
|
}
|
||||||
|
|
18
keyEvents.go
18
keyEvents.go
|
@ -227,9 +227,9 @@ func (view *viewData) removeKeyListener(tag string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getEventListeners[V View, E any](view View, subviewID string, tag string) []func(V, E) {
|
func getEventListeners[V View, E any](view View, subviewID []string, tag string) []func(V, E) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value := view.Get(tag); value != nil {
|
if value := view.Get(tag); value != nil {
|
||||||
|
@ -243,14 +243,14 @@ func getEventListeners[V View, E any](view View, subviewID string, tag string) [
|
||||||
|
|
||||||
func keyEventsHtml(view View, buffer *strings.Builder) {
|
func keyEventsHtml(view View, buffer *strings.Builder) {
|
||||||
for tag, js := range keyEvents {
|
for tag, js := range keyEvents {
|
||||||
if listeners := getEventListeners[View, KeyEvent](view, "", tag); len(listeners) > 0 {
|
if listeners := getEventListeners[View, KeyEvent](view, nil, tag); len(listeners) > 0 {
|
||||||
buffer.WriteString(js.jsEvent + `="` + js.jsFunc + `(this, event)" `)
|
buffer.WriteString(js.jsEvent + `="` + js.jsFunc + `(this, event)" `)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleKeyEvents(view View, tag string, data DataObject) {
|
func handleKeyEvents(view View, tag string, data DataObject) {
|
||||||
listeners := getEventListeners[View, KeyEvent](view, "", tag)
|
listeners := getEventListeners[View, KeyEvent](view, nil, tag)
|
||||||
if len(listeners) > 0 {
|
if len(listeners) > 0 {
|
||||||
var event KeyEvent
|
var event KeyEvent
|
||||||
event.init(data)
|
event.init(data)
|
||||||
|
@ -262,13 +262,13 @@ func handleKeyEvents(view View, tag string, data DataObject) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetKeyDownListeners returns the "key-down-event" listener list. If there are no listeners then the empty list is returned.
|
// GetKeyDownListeners returns the "key-down-event" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetKeyDownListeners(view View, subviewID string) []func(View, KeyEvent) {
|
func GetKeyDownListeners(view View, subviewID ...string) []func(View, KeyEvent) {
|
||||||
return getEventListeners[View, KeyEvent](view, subviewID, KeyDownEvent)
|
return getEventListeners[View, KeyEvent](view, subviewID, KeyDownEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetKeyUpListeners returns the "key-up-event" listener list. If there are no listeners then the empty list is returned.
|
// GetKeyUpListeners returns the "key-up-event" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetKeyUpListeners(view View, subviewID string) []func(View, KeyEvent) {
|
func GetKeyUpListeners(view View, subviewID ...string) []func(View, KeyEvent) {
|
||||||
return getEventListeners[View, KeyEvent](view, subviewID, KeyUpEvent)
|
return getEventListeners[View, KeyEvent](view, subviewID, KeyUpEvent)
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,7 +77,7 @@ func (adapter *viewListAdapter) ListItem(index int, session Session) View {
|
||||||
|
|
||||||
func (adapter *viewListAdapter) IsListItemEnabled(index int) bool {
|
func (adapter *viewListAdapter) IsListItemEnabled(index int) bool {
|
||||||
if index >= 0 && index < len(adapter.items) {
|
if index >= 0 && index < len(adapter.items) {
|
||||||
return !IsDisabled(adapter.items[index], "")
|
return !IsDisabled(adapter.items[index])
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,7 +74,7 @@ func (listLayout *listLayoutData) Get(tag string) any {
|
||||||
|
|
||||||
func (listLayout *listLayoutData) get(tag string) any {
|
func (listLayout *listLayoutData) get(tag string) any {
|
||||||
if tag == Gap {
|
if tag == Gap {
|
||||||
if rowGap := GetListRowGap(listLayout, ""); rowGap.Equal(GetListColumnGap(listLayout, "")) {
|
if rowGap := GetListRowGap(listLayout); rowGap.Equal(GetListColumnGap(listLayout)) {
|
||||||
return rowGap
|
return rowGap
|
||||||
}
|
}
|
||||||
return AutoSize()
|
return AutoSize()
|
||||||
|
@ -139,38 +139,24 @@ func (listLayout *listLayoutData) htmlSubviews(self View, buffer *strings.Builde
|
||||||
|
|
||||||
// GetListVerticalAlign returns the vertical align of a ListLayout or ListView sibview:
|
// GetListVerticalAlign returns the vertical align of a ListLayout or ListView sibview:
|
||||||
// TopAlign (0), BottomAlign (1), CenterAlign (2), or StretchAlign (3)
|
// TopAlign (0), BottomAlign (1), CenterAlign (2), or StretchAlign (3)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListVerticalAlign(view View, subviewID string) int {
|
func GetListVerticalAlign(view View, subviewID ...string) int {
|
||||||
if subviewID != "" {
|
return enumStyledProperty(view, subviewID, VerticalAlign, TopAlign, false)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view == nil {
|
|
||||||
return LeftAlign
|
|
||||||
}
|
|
||||||
result, _ := enumProperty(view, VerticalAlign, view.Session(), 0)
|
|
||||||
return result
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListHorizontalAlign returns the vertical align of a ListLayout or ListView subview:
|
// GetListHorizontalAlign returns the vertical align of a ListLayout or ListView subview:
|
||||||
// LeftAlign (0), RightAlign (1), CenterAlign (2), or StretchAlign (3)
|
// LeftAlign (0), RightAlign (1), CenterAlign (2), or StretchAlign (3)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListHorizontalAlign(view View, subviewID string) int {
|
func GetListHorizontalAlign(view View, subviewID ...string) int {
|
||||||
if subviewID != "" {
|
return enumStyledProperty(view, subviewID, HorizontalAlign, LeftAlign, false)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view == nil {
|
|
||||||
return TopAlign
|
|
||||||
}
|
|
||||||
result, _ := enumProperty(view, HorizontalAlign, view.Session(), 0)
|
|
||||||
return result
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListOrientation returns the orientation of a ListLayout or ListView subview:
|
// GetListOrientation returns the orientation of a ListLayout or ListView subview:
|
||||||
// TopDownOrientation (0), StartToEndOrientation (1), BottomUpOrientation (2), or EndToStartOrientation (3)
|
// TopDownOrientation (0), StartToEndOrientation (1), BottomUpOrientation (2), or EndToStartOrientation (3)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListOrientation(view View, subviewID string) int {
|
func GetListOrientation(view View, subviewID ...string) int {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
|
@ -190,19 +176,19 @@ func GetListOrientation(view View, subviewID string) int {
|
||||||
|
|
||||||
// GetListWrap returns the wrap type of a ListLayout or ListView subview:
|
// GetListWrap returns the wrap type of a ListLayout or ListView subview:
|
||||||
// ListWrapOff (0), ListWrapOn (1), or ListWrapReverse (2)
|
// ListWrapOff (0), ListWrapOn (1), or ListWrapReverse (2)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListWrap(view View, subviewID string) int {
|
func GetListWrap(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, ListWrap, ListWrapOff, false)
|
return enumStyledProperty(view, subviewID, ListWrap, ListWrapOff, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListRowGap returns the gap between ListLayout or ListView rows.
|
// GetListRowGap returns the gap between ListLayout or ListView rows.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListRowGap(view View, subviewID string) SizeUnit {
|
func GetListRowGap(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, ListRowGap, false)
|
return sizeStyledProperty(view, subviewID, ListRowGap, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListColumnGap returns the gap between ListLayout or ListView columns.
|
// GetListColumnGap returns the gap between ListLayout or ListView columns.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListColumnGap(view View, subviewID string) SizeUnit {
|
func GetListColumnGap(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, ListColumnGap, false)
|
return sizeStyledProperty(view, subviewID, ListColumnGap, false)
|
||||||
}
|
}
|
||||||
|
|
241
listView.go
241
listView.go
|
@ -158,7 +158,7 @@ func (listView *listViewData) remove(tag string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
case Current:
|
case Current:
|
||||||
current := GetCurrent(listView, "")
|
current := GetCurrent(listView)
|
||||||
delete(listView.properties, tag)
|
delete(listView.properties, tag)
|
||||||
if listView.created {
|
if listView.created {
|
||||||
updateInnerHTML(listView.htmlID(), listView.session)
|
updateInnerHTML(listView.htmlID(), listView.session)
|
||||||
|
@ -264,11 +264,11 @@ func (listView *listViewData) set(tag string, value any) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
case Current:
|
case Current:
|
||||||
oldCurrent := GetCurrent(listView, "")
|
oldCurrent := GetCurrent(listView)
|
||||||
if !listView.setIntProperty(Current, value) {
|
if !listView.setIntProperty(Current, value) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
current := GetCurrent(listView, "")
|
current := GetCurrent(listView)
|
||||||
if oldCurrent == current {
|
if oldCurrent == current {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
@ -317,7 +317,7 @@ func (listView *listViewData) Get(tag string) any {
|
||||||
func (listView *listViewData) get(tag string) any {
|
func (listView *listViewData) get(tag string) any {
|
||||||
switch tag {
|
switch tag {
|
||||||
case Gap:
|
case Gap:
|
||||||
if rowGap := GetListRowGap(listView, ""); rowGap.Equal(GetListColumnGap(listView, "")) {
|
if rowGap := GetListRowGap(listView); rowGap.Equal(GetListColumnGap(listView)) {
|
||||||
return rowGap
|
return rowGap
|
||||||
}
|
}
|
||||||
return AutoSize()
|
return AutoSize()
|
||||||
|
@ -462,7 +462,7 @@ func (listView *listViewData) setChecked(value any) bool {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch GetListViewCheckbox(listView, "") {
|
switch GetListViewCheckbox(listView) {
|
||||||
case SingleCheckbox:
|
case SingleCheckbox:
|
||||||
count := len(checked)
|
count := len(checked)
|
||||||
if count > 1 {
|
if count > 1 {
|
||||||
|
@ -546,14 +546,14 @@ func (listView *listViewData) getItemFrames() []Frame {
|
||||||
|
|
||||||
func (listView *listViewData) itemAlign(self View, buffer *strings.Builder) {
|
func (listView *listViewData) itemAlign(self View, buffer *strings.Builder) {
|
||||||
values := enumProperties[ItemHorizontalAlign].cssValues
|
values := enumProperties[ItemHorizontalAlign].cssValues
|
||||||
if hAlign := GetListItemHorizontalAlign(listView, ""); hAlign >= 0 && hAlign < len(values) {
|
if hAlign := GetListItemHorizontalAlign(listView); hAlign >= 0 && hAlign < len(values) {
|
||||||
buffer.WriteString(" justify-items: ")
|
buffer.WriteString(" justify-items: ")
|
||||||
buffer.WriteString(values[hAlign])
|
buffer.WriteString(values[hAlign])
|
||||||
buffer.WriteRune(';')
|
buffer.WriteRune(';')
|
||||||
}
|
}
|
||||||
|
|
||||||
values = enumProperties[ItemVerticalAlign].cssValues
|
values = enumProperties[ItemVerticalAlign].cssValues
|
||||||
if vAlign := GetListItemVerticalAlign(listView, ""); vAlign >= 0 && vAlign < len(values) {
|
if vAlign := GetListItemVerticalAlign(listView); vAlign >= 0 && vAlign < len(values) {
|
||||||
buffer.WriteString(" align-items: ")
|
buffer.WriteString(" align-items: ")
|
||||||
buffer.WriteString(values[vAlign])
|
buffer.WriteString(values[vAlign])
|
||||||
buffer.WriteRune(';')
|
buffer.WriteRune(';')
|
||||||
|
@ -561,13 +561,13 @@ func (listView *listViewData) itemAlign(self View, buffer *strings.Builder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (listView *listViewData) itemSize(self View, buffer *strings.Builder) {
|
func (listView *listViewData) itemSize(self View, buffer *strings.Builder) {
|
||||||
if itemWidth := GetListItemWidth(listView, ""); itemWidth.Type != Auto {
|
if itemWidth := GetListItemWidth(listView); itemWidth.Type != Auto {
|
||||||
buffer.WriteString(` min-width: `)
|
buffer.WriteString(` min-width: `)
|
||||||
buffer.WriteString(itemWidth.cssString(""))
|
buffer.WriteString(itemWidth.cssString(""))
|
||||||
buffer.WriteRune(';')
|
buffer.WriteRune(';')
|
||||||
}
|
}
|
||||||
|
|
||||||
if itemHeight := GetListItemHeight(listView, ""); itemHeight.Type != Auto {
|
if itemHeight := GetListItemHeight(listView); itemHeight.Type != Auto {
|
||||||
buffer.WriteString(` min-height: `)
|
buffer.WriteString(` min-height: `)
|
||||||
buffer.WriteString(itemHeight.cssString(""))
|
buffer.WriteString(itemHeight.cssString(""))
|
||||||
buffer.WriteRune(';')
|
buffer.WriteRune(';')
|
||||||
|
@ -719,14 +719,14 @@ func (listView *listViewData) checkboxSubviews(self View, buffer *strings.Builde
|
||||||
count := listView.adapter.ListSize()
|
count := listView.adapter.ListSize()
|
||||||
listViewID := listView.htmlID()
|
listViewID := listView.htmlID()
|
||||||
|
|
||||||
hCheckboxAlign := GetListViewCheckboxHorizontalAlign(listView, "")
|
hCheckboxAlign := GetListViewCheckboxHorizontalAlign(listView)
|
||||||
vCheckboxAlign := GetListViewCheckboxVerticalAlign(listView, "")
|
vCheckboxAlign := GetListViewCheckboxVerticalAlign(listView)
|
||||||
|
|
||||||
itemDiv := listView.checkboxItemDiv(self, checkbox, hCheckboxAlign, vCheckboxAlign)
|
itemDiv := listView.checkboxItemDiv(self, checkbox, hCheckboxAlign, vCheckboxAlign)
|
||||||
onDiv, offDiv, contentDiv := listView.getDivs(self, checkbox, hCheckboxAlign, vCheckboxAlign)
|
onDiv, offDiv, contentDiv := listView.getDivs(self, checkbox, hCheckboxAlign, vCheckboxAlign)
|
||||||
|
|
||||||
current := GetCurrent(listView, "")
|
current := GetCurrent(listView)
|
||||||
checkedItems := GetListViewCheckedItems(listView, "")
|
checkedItems := GetListViewCheckedItems(listView)
|
||||||
for i := 0; i < count; i++ {
|
for i := 0; i < count; i++ {
|
||||||
buffer.WriteString(`<div id="`)
|
buffer.WriteString(`<div id="`)
|
||||||
buffer.WriteString(listViewID)
|
buffer.WriteString(listViewID)
|
||||||
|
@ -782,7 +782,7 @@ func (listView *listViewData) noneCheckboxSubviews(self View, buffer *strings.Bu
|
||||||
itemStyleBuilder.WriteString(`" onclick="listItemClickEvent(this, event)"`)
|
itemStyleBuilder.WriteString(`" onclick="listItemClickEvent(this, event)"`)
|
||||||
itemStyle := itemStyleBuilder.String()
|
itemStyle := itemStyleBuilder.String()
|
||||||
|
|
||||||
current := GetCurrent(listView, "")
|
current := GetCurrent(listView)
|
||||||
for i := 0; i < count; i++ {
|
for i := 0; i < count; i++ {
|
||||||
buffer.WriteString(`<div id="`)
|
buffer.WriteString(`<div id="`)
|
||||||
buffer.WriteString(listViewID)
|
buffer.WriteString(listViewID)
|
||||||
|
@ -811,9 +811,9 @@ func (listView *listViewData) noneCheckboxSubviews(self View, buffer *strings.Bu
|
||||||
|
|
||||||
func (listView *listViewData) updateCheckboxItem(index int, checked bool) {
|
func (listView *listViewData) updateCheckboxItem(index int, checked bool) {
|
||||||
|
|
||||||
checkbox := GetListViewCheckbox(listView, "")
|
checkbox := GetListViewCheckbox(listView)
|
||||||
hCheckboxAlign := GetListViewCheckboxHorizontalAlign(listView, "")
|
hCheckboxAlign := GetListViewCheckboxHorizontalAlign(listView)
|
||||||
vCheckboxAlign := GetListViewCheckboxVerticalAlign(listView, "")
|
vCheckboxAlign := GetListViewCheckboxVerticalAlign(listView)
|
||||||
onDiv, offDiv, contentDiv := listView.getDivs(listView, checkbox, hCheckboxAlign, vCheckboxAlign)
|
onDiv, offDiv, contentDiv := listView.getDivs(listView, checkbox, hCheckboxAlign, vCheckboxAlign)
|
||||||
|
|
||||||
buffer := allocStringBuilder()
|
buffer := allocStringBuilder()
|
||||||
|
@ -855,7 +855,7 @@ func (listView *listViewData) htmlProperties(self View, buffer *strings.Builder)
|
||||||
buffer.WriteString(`" data-bluritemstyle="`)
|
buffer.WriteString(`" data-bluritemstyle="`)
|
||||||
buffer.WriteString(listView.currentInactiveStyle())
|
buffer.WriteString(listView.currentInactiveStyle())
|
||||||
buffer.WriteString(`"`)
|
buffer.WriteString(`"`)
|
||||||
current := GetCurrent(listView, "")
|
current := GetCurrent(listView)
|
||||||
if listView.adapter != nil && current >= 0 && current < listView.adapter.ListSize() {
|
if listView.adapter != nil && current >= 0 && current < listView.adapter.ListSize() {
|
||||||
buffer.WriteString(` data-current="`)
|
buffer.WriteString(` data-current="`)
|
||||||
buffer.WriteString(listView.htmlID())
|
buffer.WriteString(listView.htmlID())
|
||||||
|
@ -871,8 +871,8 @@ func (listView *listViewData) htmlProperties(self View, buffer *strings.Builder)
|
||||||
func (listView *listViewData) cssStyle(self View, builder cssBuilder) {
|
func (listView *listViewData) cssStyle(self View, builder cssBuilder) {
|
||||||
listView.viewData.cssStyle(self, builder)
|
listView.viewData.cssStyle(self, builder)
|
||||||
|
|
||||||
if GetListWrap(listView, "") != WrapOff {
|
if GetListWrap(listView) != WrapOff {
|
||||||
switch GetListOrientation(listView, "") {
|
switch GetListOrientation(listView) {
|
||||||
case TopDownOrientation, BottomUpOrientation:
|
case TopDownOrientation, BottomUpOrientation:
|
||||||
builder.add(`max-height`, `100%`)
|
builder.add(`max-height`, `100%`)
|
||||||
default:
|
default:
|
||||||
|
@ -894,20 +894,20 @@ func (listView *listViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||||
|
|
||||||
buffer.WriteString(`<div style="display: flex; align-content: stretch;`)
|
buffer.WriteString(`<div style="display: flex; align-content: stretch;`)
|
||||||
|
|
||||||
if gap := GetListRowGap(listView, ""); gap.Type != Auto {
|
if gap := GetListRowGap(listView); gap.Type != Auto {
|
||||||
buffer.WriteString(` row-gap: `)
|
buffer.WriteString(` row-gap: `)
|
||||||
buffer.WriteString(gap.cssString("0"))
|
buffer.WriteString(gap.cssString("0"))
|
||||||
buffer.WriteRune(';')
|
buffer.WriteRune(';')
|
||||||
}
|
}
|
||||||
|
|
||||||
if gap := GetListColumnGap(listView, ""); gap.Type != Auto {
|
if gap := GetListColumnGap(listView); gap.Type != Auto {
|
||||||
buffer.WriteString(` column-gap: `)
|
buffer.WriteString(` column-gap: `)
|
||||||
buffer.WriteString(gap.cssString("0"))
|
buffer.WriteString(gap.cssString("0"))
|
||||||
buffer.WriteRune(';')
|
buffer.WriteRune(';')
|
||||||
}
|
}
|
||||||
|
|
||||||
wrap := GetListWrap(listView, "")
|
wrap := GetListWrap(listView)
|
||||||
orientation := GetListOrientation(listView, "")
|
orientation := GetListOrientation(listView)
|
||||||
rows := (orientation == StartToEndOrientation || orientation == EndToStartOrientation)
|
rows := (orientation == StartToEndOrientation || orientation == EndToStartOrientation)
|
||||||
|
|
||||||
if rows {
|
if rows {
|
||||||
|
@ -948,7 +948,7 @@ func (listView *listViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
value := ""
|
value := ""
|
||||||
switch enumStyledProperty(listView, "", HorizontalAlign, LeftAlign, false) {
|
switch GetListHorizontalAlign(listView) {
|
||||||
case LeftAlign:
|
case LeftAlign:
|
||||||
if (!rows && wrap == ListWrapReverse) || orientation == EndToStartOrientation {
|
if (!rows && wrap == ListWrapReverse) || orientation == EndToStartOrientation {
|
||||||
value = `flex-end`
|
value = `flex-end`
|
||||||
|
@ -981,7 +981,7 @@ func (listView *listViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
value = ""
|
value = ""
|
||||||
switch enumStyledProperty(listView, "", VerticalAlign, TopAlign, false) {
|
switch GetListVerticalAlign(listView) {
|
||||||
case TopAlign:
|
case TopAlign:
|
||||||
if (rows && wrap == ListWrapReverse) || orientation == BottomUpOrientation {
|
if (rows && wrap == ListWrapReverse) || orientation == BottomUpOrientation {
|
||||||
value = `flex-end`
|
value = `flex-end`
|
||||||
|
@ -1015,7 +1015,7 @@ func (listView *listViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||||
|
|
||||||
buffer.WriteString(`">`)
|
buffer.WriteString(`">`)
|
||||||
|
|
||||||
checkbox := GetListViewCheckbox(listView, "")
|
checkbox := GetListViewCheckbox(listView)
|
||||||
if checkbox == NoneCheckbox {
|
if checkbox == NoneCheckbox {
|
||||||
listView.noneCheckboxSubviews(self, buffer)
|
listView.noneCheckboxSubviews(self, buffer)
|
||||||
} else {
|
} else {
|
||||||
|
@ -1056,9 +1056,9 @@ func (listView *listViewData) handleCommand(self View, command string, data Data
|
||||||
}
|
}
|
||||||
|
|
||||||
func (listView *listViewData) onItemClick() {
|
func (listView *listViewData) onItemClick() {
|
||||||
current := GetCurrent(listView, "")
|
current := GetCurrent(listView)
|
||||||
if current >= 0 && !IsDisabled(listView, "") {
|
if current >= 0 && !IsDisabled(listView) {
|
||||||
checkbox := GetListViewCheckbox(listView, "")
|
checkbox := GetListViewCheckbox(listView)
|
||||||
m:
|
m:
|
||||||
switch checkbox {
|
switch checkbox {
|
||||||
case SingleCheckbox:
|
case SingleCheckbox:
|
||||||
|
@ -1117,117 +1117,67 @@ func (listView *listViewData) onItemResize(self View, index string, x, y, width,
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetVerticalAlign return the vertical align of a list: TopAlign (0), BottomAlign (1), CenterAlign (2), StretchAlign (3)
|
// GetVerticalAlign return the vertical align of a list: TopAlign (0), BottomAlign (1), CenterAlign (2), StretchAlign (3)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetVerticalAlign(view View, subviewID string) int {
|
func GetVerticalAlign(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, VerticalAlign, TopAlign, false)
|
return enumStyledProperty(view, subviewID, VerticalAlign, TopAlign, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetHorizontalAlign return the vertical align of a list/checkbox: LeftAlign (0), RightAlign (1), CenterAlign (2), StretchAlign (3)
|
// GetHorizontalAlign return the vertical align of a list/checkbox: LeftAlign (0), RightAlign (1), CenterAlign (2), StretchAlign (3)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetHorizontalAlign(view View, subviewID string) int {
|
func GetHorizontalAlign(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, HorizontalAlign, LeftAlign, false)
|
return enumStyledProperty(view, subviewID, HorizontalAlign, LeftAlign, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListItemClickedListeners returns a ListItemClickedListener of the ListView.
|
// GetListItemClickedListeners returns a ListItemClickedListener of the ListView.
|
||||||
// If there are no listeners then the empty list is returned
|
// If there are no listeners then the empty list is returned
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListItemClickedListeners(view View, subviewID string) []func(ListView, int) {
|
func GetListItemClickedListeners(view View, subviewID ...string) []func(ListView, int) {
|
||||||
if subviewID != "" {
|
return getEventListeners[ListView, int](view, subviewID, ListItemClickedEvent)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view != nil {
|
|
||||||
if value := view.Get(ListItemClickedEvent); value != nil {
|
|
||||||
if result, ok := value.([]func(ListView, int)); ok {
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return []func(ListView, int){}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListItemSelectedListeners returns a ListItemSelectedListener of the ListView.
|
// GetListItemSelectedListeners returns a ListItemSelectedListener of the ListView.
|
||||||
// If there are no listeners then the empty list is returned
|
// If there are no listeners then the empty list is returned
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListItemSelectedListeners(view View, subviewID string) []func(ListView, int) {
|
func GetListItemSelectedListeners(view View, subviewID ...string) []func(ListView, int) {
|
||||||
if subviewID != "" {
|
return getEventListeners[ListView, int](view, subviewID, ListItemSelectedEvent)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view != nil {
|
|
||||||
if value := view.Get(ListItemSelectedEvent); value != nil {
|
|
||||||
if result, ok := value.([]func(ListView, int)); ok {
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return []func(ListView, int){}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListItemCheckedListeners returns a ListItemCheckedListener of the ListView.
|
// GetListItemCheckedListeners returns a ListItemCheckedListener of the ListView.
|
||||||
// If there are no listeners then the empty list is returned
|
// If there are no listeners then the empty list is returned
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListItemCheckedListeners(view View, subviewID string) []func(ListView, []int) {
|
func GetListItemCheckedListeners(view View, subviewID ...string) []func(ListView, []int) {
|
||||||
if subviewID != "" {
|
return getEventListeners[ListView, []int](view, subviewID, ListItemCheckedEvent)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view != nil {
|
|
||||||
if value := view.Get(ListItemCheckedEvent); value != nil {
|
|
||||||
if result, ok := value.([]func(ListView, []int)); ok {
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return []func(ListView, []int){}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListItemWidth returns the width of a ListView item.
|
// GetListItemWidth returns the width of a ListView item.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListItemWidth(view View, subviewID string) SizeUnit {
|
func GetListItemWidth(view View, subviewID ...string) SizeUnit {
|
||||||
if subviewID != "" {
|
return sizeStyledProperty(view, subviewID, ItemWidth, false)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view != nil {
|
|
||||||
result, _ := sizeProperty(view, ItemWidth, view.Session())
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
return AutoSize()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListItemHeight returns the height of a ListView item.
|
// GetListItemHeight returns the height of a ListView item.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListItemHeight(view View, subviewID string) SizeUnit {
|
func GetListItemHeight(view View, subviewID ...string) SizeUnit {
|
||||||
if subviewID != "" {
|
return sizeStyledProperty(view, subviewID, ItemHeight, false)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view != nil {
|
|
||||||
result, _ := sizeProperty(view, ItemHeight, view.Session())
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
return AutoSize()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListViewCheckbox returns the ListView checkbox type: NoneCheckbox (0), SingleCheckbox (1), or MultipleCheckbox (2).
|
// GetListViewCheckbox returns the ListView checkbox type: NoneCheckbox (0), SingleCheckbox (1), or MultipleCheckbox (2).
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListViewCheckbox(view View, subviewID string) int {
|
func GetListViewCheckbox(view View, subviewID ...string) int {
|
||||||
if subviewID != "" {
|
return enumStyledProperty(view, subviewID, ItemCheckbox, 0, false)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view != nil {
|
|
||||||
result, _ := enumProperty(view, ItemCheckbox, view.Session(), 0)
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListViewCheckedItems returns the array of ListView checked items.
|
// GetListViewCheckedItems returns the array of ListView checked items.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListViewCheckedItems(view View, subviewID string) []int {
|
func GetListViewCheckedItems(view View, subviewID ...string) []int {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if listView, ok := view.(ListView); ok {
|
if listView, ok := view.(ListView); ok {
|
||||||
checkedItems := listView.getCheckedItems()
|
checkedItems := listView.getCheckedItems()
|
||||||
switch GetListViewCheckbox(view, "") {
|
switch GetListViewCheckbox(view) {
|
||||||
case NoneCheckbox:
|
case NoneCheckbox:
|
||||||
return []int{}
|
return []int{}
|
||||||
|
|
||||||
|
@ -1256,66 +1206,34 @@ func IsListViewCheckedItem(view View, subviewID string, index int) bool {
|
||||||
|
|
||||||
// GetListViewCheckboxVerticalAlign returns the vertical align of the ListView checkbox:
|
// GetListViewCheckboxVerticalAlign returns the vertical align of the ListView checkbox:
|
||||||
// TopAlign (0), BottomAlign (1), CenterAlign (2)
|
// TopAlign (0), BottomAlign (1), CenterAlign (2)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListViewCheckboxVerticalAlign(view View, subviewID string) int {
|
func GetListViewCheckboxVerticalAlign(view View, subviewID ...string) int {
|
||||||
if subviewID != "" {
|
return enumStyledProperty(view, subviewID, CheckboxVerticalAlign, TopAlign, false)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view != nil {
|
|
||||||
if align, ok := enumProperty(view, CheckboxVerticalAlign, view.Session(), TopAlign); ok {
|
|
||||||
return align
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return TopAlign
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListViewCheckboxHorizontalAlign returns the horizontal align of the ListView checkbox:
|
// GetListViewCheckboxHorizontalAlign returns the horizontal align of the ListView checkbox:
|
||||||
// LeftAlign (0), RightAlign (1), CenterAlign (2)
|
// LeftAlign (0), RightAlign (1), CenterAlign (2)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListViewCheckboxHorizontalAlign(view View, subviewID string) int {
|
func GetListViewCheckboxHorizontalAlign(view View, subviewID ...string) int {
|
||||||
if subviewID != "" {
|
return enumStyledProperty(view, subviewID, CheckboxHorizontalAlign, LeftAlign, false)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view != nil {
|
|
||||||
if align, ok := enumProperty(view, CheckboxHorizontalAlign, view.Session(), LeftAlign); ok {
|
|
||||||
return align
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return LeftAlign
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListItemVerticalAlign returns the vertical align of the ListView item content:
|
// GetListItemVerticalAlign returns the vertical align of the ListView item content:
|
||||||
// TopAlign (0), BottomAlign (1), CenterAlign (2)
|
// TopAlign (0), BottomAlign (1), CenterAlign (2)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListItemVerticalAlign(view View, subviewID string) int {
|
func GetListItemVerticalAlign(view View, subviewID ...string) int {
|
||||||
if subviewID != "" {
|
return enumStyledProperty(view, subviewID, ItemVerticalAlign, TopAlign, false)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view != nil {
|
|
||||||
if align, ok := enumProperty(view, ItemVerticalAlign, view.Session(), TopAlign); ok {
|
|
||||||
return align
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return TopAlign
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ItemHorizontalAlign returns the horizontal align of the ListView item content:
|
// ItemHorizontalAlign returns the horizontal align of the ListView item content:
|
||||||
// LeftAlign (0), RightAlign (1), CenterAlign (2), StretchAlign (3)
|
// LeftAlign (0), RightAlign (1), CenterAlign (2), StretchAlign (3)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListItemHorizontalAlign(view View, subviewID string) int {
|
func GetListItemHorizontalAlign(view View, subviewID ...string) int {
|
||||||
if subviewID != "" {
|
return enumStyledProperty(view, subviewID, ItemHorizontalAlign, LeftAlign, false)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view != nil {
|
|
||||||
if align, ok := enumProperty(view, ItemHorizontalAlign, view.Session(), LeftAlign); ok {
|
|
||||||
return align
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return LeftAlign
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListItemFrame - returns the location and size of the ListView item in pixels.
|
// GetListItemFrame - returns the location and size of the ListView item in pixels.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListItemFrame(view View, subviewID string, index int) Frame {
|
func GetListItemFrame(view View, subviewID string, index int) Frame {
|
||||||
if subviewID != "" {
|
if subviewID != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID)
|
||||||
|
@ -1332,10 +1250,10 @@ func GetListItemFrame(view View, subviewID string, index int) Frame {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetListViewAdapter - returns the ListView adapter.
|
// GetListViewAdapter - returns the ListView adapter.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetListViewAdapter(view View, subviewID string) ListAdapter {
|
func GetListViewAdapter(view View, subviewID ...string) ListAdapter {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value := view.Get(Items); value != nil {
|
if value := view.Get(Items); value != nil {
|
||||||
|
@ -1348,11 +1266,12 @@ func GetListViewAdapter(view View, subviewID string) ListAdapter {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReloadListViewData updates ListView content
|
// ReloadListViewData updates ListView content
|
||||||
// If the second argument (subviewID) is "" then content the first argument (view) is updated.
|
// If the second argument (subviewID) is not specified or it is "" then content the first argument (view) is updated.
|
||||||
func ReloadListViewData(view View, subviewID string) {
|
func ReloadListViewData(view View, subviewID ...string) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if listView, ok := view.(ListView); ok {
|
if listView, ok := view.(ListView); ok {
|
||||||
listView.ReloadListViewData()
|
listView.ReloadListViewData()
|
||||||
|
|
|
@ -224,7 +224,7 @@ func (event *MouseEvent) init(data DataObject) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleMouseEvents(view View, tag string, data DataObject) {
|
func handleMouseEvents(view View, tag string, data DataObject) {
|
||||||
listeners := getEventListeners[View, MouseEvent](view, "", tag)
|
listeners := getEventListeners[View, MouseEvent](view, nil, tag)
|
||||||
if len(listeners) > 0 {
|
if len(listeners) > 0 {
|
||||||
var event MouseEvent
|
var event MouseEvent
|
||||||
event.init(data)
|
event.init(data)
|
||||||
|
@ -236,50 +236,50 @@ func handleMouseEvents(view View, tag string, data DataObject) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetClickListeners returns the "click-event" listener list. If there are no listeners then the empty list is returned.
|
// GetClickListeners returns the "click-event" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetClickListeners(view View, subviewID string) []func(View, MouseEvent) {
|
func GetClickListeners(view View, subviewID ...string) []func(View, MouseEvent) {
|
||||||
return getEventListeners[View, MouseEvent](view, subviewID, ClickEvent)
|
return getEventListeners[View, MouseEvent](view, subviewID, ClickEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetDoubleClickListeners returns the "double-click-event" listener list. If there are no listeners then the empty list is returned.
|
// GetDoubleClickListeners returns the "double-click-event" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetDoubleClickListeners(view View, subviewID string) []func(View, MouseEvent) {
|
func GetDoubleClickListeners(view View, subviewID ...string) []func(View, MouseEvent) {
|
||||||
return getEventListeners[View, MouseEvent](view, subviewID, DoubleClickEvent)
|
return getEventListeners[View, MouseEvent](view, subviewID, DoubleClickEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetContextMenuListeners returns the "context-menu" listener list.
|
// GetContextMenuListeners returns the "context-menu" listener list.
|
||||||
// If there are no listeners then the empty list is returned.
|
// If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetContextMenuListeners(view View, subviewID string) []func(View, MouseEvent) {
|
func GetContextMenuListeners(view View, subviewID ...string) []func(View, MouseEvent) {
|
||||||
return getEventListeners[View, MouseEvent](view, subviewID, ContextMenuEvent)
|
return getEventListeners[View, MouseEvent](view, subviewID, ContextMenuEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMouseDownListeners returns the "mouse-down" listener list. If there are no listeners then the empty list is returned.
|
// GetMouseDownListeners returns the "mouse-down" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetMouseDownListeners(view View, subviewID string) []func(View, MouseEvent) {
|
func GetMouseDownListeners(view View, subviewID ...string) []func(View, MouseEvent) {
|
||||||
return getEventListeners[View, MouseEvent](view, subviewID, MouseDown)
|
return getEventListeners[View, MouseEvent](view, subviewID, MouseDown)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMouseUpListeners returns the "mouse-up" listener list. If there are no listeners then the empty list is returned.
|
// GetMouseUpListeners returns the "mouse-up" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetMouseUpListeners(view View, subviewID string) []func(View, MouseEvent) {
|
func GetMouseUpListeners(view View, subviewID ...string) []func(View, MouseEvent) {
|
||||||
return getEventListeners[View, MouseEvent](view, subviewID, MouseUp)
|
return getEventListeners[View, MouseEvent](view, subviewID, MouseUp)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMouseMoveListeners returns the "mouse-move" listener list. If there are no listeners then the empty list is returned.
|
// GetMouseMoveListeners returns the "mouse-move" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetMouseMoveListeners(view View, subviewID string) []func(View, MouseEvent) {
|
func GetMouseMoveListeners(view View, subviewID ...string) []func(View, MouseEvent) {
|
||||||
return getEventListeners[View, MouseEvent](view, subviewID, MouseMove)
|
return getEventListeners[View, MouseEvent](view, subviewID, MouseMove)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMouseOverListeners returns the "mouse-over" listener list. If there are no listeners then the empty list is returned.
|
// GetMouseOverListeners returns the "mouse-over" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetMouseOverListeners(view View, subviewID string) []func(View, MouseEvent) {
|
func GetMouseOverListeners(view View, subviewID ...string) []func(View, MouseEvent) {
|
||||||
return getEventListeners[View, MouseEvent](view, subviewID, MouseOver)
|
return getEventListeners[View, MouseEvent](view, subviewID, MouseOver)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMouseOutListeners returns the "mouse-out" listener list. If there are no listeners then the empty list is returned.
|
// GetMouseOutListeners returns the "mouse-out" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetMouseOutListeners(view View, subviewID string) []func(View, MouseEvent) {
|
func GetMouseOutListeners(view View, subviewID ...string) []func(View, MouseEvent) {
|
||||||
return getEventListeners[View, MouseEvent](view, subviewID, MouseOut)
|
return getEventListeners[View, MouseEvent](view, subviewID, MouseOut)
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,8 +111,8 @@ func (picker *numberPickerData) set(tag string, value any) bool {
|
||||||
return true
|
return true
|
||||||
|
|
||||||
case NumberPickerValue:
|
case NumberPickerValue:
|
||||||
oldValue := GetNumberPickerValue(picker, "")
|
oldValue := GetNumberPickerValue(picker)
|
||||||
min, max := GetNumberPickerMinMax(picker, "")
|
min, max := GetNumberPickerMinMax(picker)
|
||||||
if picker.setFloatProperty(NumberPickerValue, value, min, max) {
|
if picker.setFloatProperty(NumberPickerValue, value, min, max) {
|
||||||
if f, ok := floatProperty(picker, NumberPickerValue, picker.Session(), min); ok && f != oldValue {
|
if f, ok := floatProperty(picker, NumberPickerValue, picker.Session(), min); ok && f != oldValue {
|
||||||
newValue, _ := floatTextProperty(picker, NumberPickerValue, picker.Session(), min)
|
newValue, _ := floatTextProperty(picker, NumberPickerValue, picker.Session(), min)
|
||||||
|
@ -140,29 +140,29 @@ func (picker *numberPickerData) propertyChanged(tag string) {
|
||||||
if picker.created {
|
if picker.created {
|
||||||
switch tag {
|
switch tag {
|
||||||
case NumberPickerType:
|
case NumberPickerType:
|
||||||
if GetNumberPickerType(picker, "") == NumberSlider {
|
if GetNumberPickerType(picker) == NumberSlider {
|
||||||
updateProperty(picker.htmlID(), "type", "range", picker.session)
|
updateProperty(picker.htmlID(), "type", "range", picker.session)
|
||||||
} else {
|
} else {
|
||||||
updateProperty(picker.htmlID(), "type", "number", picker.session)
|
updateProperty(picker.htmlID(), "type", "number", picker.session)
|
||||||
}
|
}
|
||||||
|
|
||||||
case NumberPickerMin:
|
case NumberPickerMin:
|
||||||
min, _ := GetNumberPickerMinMax(picker, "")
|
min, _ := GetNumberPickerMinMax(picker)
|
||||||
updateProperty(picker.htmlID(), Min, strconv.FormatFloat(min, 'f', -1, 32), picker.session)
|
updateProperty(picker.htmlID(), Min, strconv.FormatFloat(min, 'f', -1, 32), picker.session)
|
||||||
|
|
||||||
case NumberPickerMax:
|
case NumberPickerMax:
|
||||||
_, max := GetNumberPickerMinMax(picker, "")
|
_, max := GetNumberPickerMinMax(picker)
|
||||||
updateProperty(picker.htmlID(), Max, strconv.FormatFloat(max, 'f', -1, 32), picker.session)
|
updateProperty(picker.htmlID(), Max, strconv.FormatFloat(max, 'f', -1, 32), picker.session)
|
||||||
|
|
||||||
case NumberPickerStep:
|
case NumberPickerStep:
|
||||||
if step := GetNumberPickerStep(picker, ""); step > 0 {
|
if step := GetNumberPickerStep(picker); step > 0 {
|
||||||
updateProperty(picker.htmlID(), Step, strconv.FormatFloat(step, 'f', -1, 32), picker.session)
|
updateProperty(picker.htmlID(), Step, strconv.FormatFloat(step, 'f', -1, 32), picker.session)
|
||||||
} else {
|
} else {
|
||||||
updateProperty(picker.htmlID(), Step, "any", picker.session)
|
updateProperty(picker.htmlID(), Step, "any", picker.session)
|
||||||
}
|
}
|
||||||
|
|
||||||
case NumberPickerValue:
|
case NumberPickerValue:
|
||||||
value := GetNumberPickerValue(picker, "")
|
value := GetNumberPickerValue(picker)
|
||||||
picker.session.runScript(fmt.Sprintf(`setInputValue('%s', '%f')`, picker.htmlID(), value))
|
picker.session.runScript(fmt.Sprintf(`setInputValue('%s', '%f')`, picker.htmlID(), value))
|
||||||
for _, listener := range picker.numberChangedListeners {
|
for _, listener := range picker.numberChangedListeners {
|
||||||
listener(picker, value)
|
listener(picker, value)
|
||||||
|
@ -192,13 +192,13 @@ func (picker *numberPickerData) htmlTag() string {
|
||||||
func (picker *numberPickerData) htmlProperties(self View, buffer *strings.Builder) {
|
func (picker *numberPickerData) htmlProperties(self View, buffer *strings.Builder) {
|
||||||
picker.viewData.htmlProperties(self, buffer)
|
picker.viewData.htmlProperties(self, buffer)
|
||||||
|
|
||||||
if GetNumberPickerType(picker, "") == NumberSlider {
|
if GetNumberPickerType(picker) == NumberSlider {
|
||||||
buffer.WriteString(` type="range"`)
|
buffer.WriteString(` type="range"`)
|
||||||
} else {
|
} else {
|
||||||
buffer.WriteString(` type="number"`)
|
buffer.WriteString(` type="number"`)
|
||||||
}
|
}
|
||||||
|
|
||||||
min, max := GetNumberPickerMinMax(picker, "")
|
min, max := GetNumberPickerMinMax(picker)
|
||||||
if min != math.Inf(-1) {
|
if min != math.Inf(-1) {
|
||||||
buffer.WriteString(` min="`)
|
buffer.WriteString(` min="`)
|
||||||
buffer.WriteString(strconv.FormatFloat(min, 'f', -1, 64))
|
buffer.WriteString(strconv.FormatFloat(min, 'f', -1, 64))
|
||||||
|
@ -211,7 +211,7 @@ func (picker *numberPickerData) htmlProperties(self View, buffer *strings.Builde
|
||||||
buffer.WriteByte('"')
|
buffer.WriteByte('"')
|
||||||
}
|
}
|
||||||
|
|
||||||
step := GetNumberPickerStep(picker, "")
|
step := GetNumberPickerStep(picker)
|
||||||
if step != 0 {
|
if step != 0 {
|
||||||
buffer.WriteString(` step="`)
|
buffer.WriteString(` step="`)
|
||||||
buffer.WriteString(strconv.FormatFloat(step, 'f', -1, 64))
|
buffer.WriteString(strconv.FormatFloat(step, 'f', -1, 64))
|
||||||
|
@ -221,14 +221,14 @@ func (picker *numberPickerData) htmlProperties(self View, buffer *strings.Builde
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer.WriteString(` value="`)
|
buffer.WriteString(` value="`)
|
||||||
buffer.WriteString(strconv.FormatFloat(GetNumberPickerValue(picker, ""), 'f', -1, 64))
|
buffer.WriteString(strconv.FormatFloat(GetNumberPickerValue(picker), 'f', -1, 64))
|
||||||
buffer.WriteByte('"')
|
buffer.WriteByte('"')
|
||||||
|
|
||||||
buffer.WriteString(` oninput="editViewInputEvent(this)"`)
|
buffer.WriteString(` oninput="editViewInputEvent(this)"`)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (picker *numberPickerData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
func (picker *numberPickerData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
||||||
if IsDisabled(self, "") {
|
if IsDisabled(self) {
|
||||||
buffer.WriteString(` disabled`)
|
buffer.WriteString(` disabled`)
|
||||||
}
|
}
|
||||||
picker.viewData.htmlDisabledProperties(self, buffer)
|
picker.viewData.htmlDisabledProperties(self, buffer)
|
||||||
|
@ -239,7 +239,7 @@ func (picker *numberPickerData) handleCommand(self View, command string, data Da
|
||||||
case "textChanged":
|
case "textChanged":
|
||||||
if text, ok := data.PropertyValue("text"); ok {
|
if text, ok := data.PropertyValue("text"); ok {
|
||||||
if value, err := strconv.ParseFloat(text, 32); err == nil {
|
if value, err := strconv.ParseFloat(text, 32); err == nil {
|
||||||
oldValue := GetNumberPickerValue(picker, "")
|
oldValue := GetNumberPickerValue(picker)
|
||||||
picker.properties[NumberPickerValue] = text
|
picker.properties[NumberPickerValue] = text
|
||||||
if value != oldValue {
|
if value != oldValue {
|
||||||
for _, listener := range picker.numberChangedListeners {
|
for _, listener := range picker.numberChangedListeners {
|
||||||
|
@ -257,16 +257,23 @@ func (picker *numberPickerData) handleCommand(self View, command string, data Da
|
||||||
// GetNumberPickerType returns the type of NumberPicker subview. Valid values:
|
// GetNumberPickerType returns the type of NumberPicker subview. Valid values:
|
||||||
// NumberEditor (0) - NumberPicker is presented by editor (default type);
|
// NumberEditor (0) - NumberPicker is presented by editor (default type);
|
||||||
// NumberSlider (1) - NumberPicker is presented by slider.
|
// NumberSlider (1) - NumberPicker is presented by slider.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetNumberPickerType(view View, subviewID string) int {
|
func GetNumberPickerType(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, NumberPickerType, NumberEditor, false)
|
return enumStyledProperty(view, subviewID, NumberPickerType, NumberEditor, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetNumberPickerMinMax returns the min and max value of NumberPicker subview.
|
// GetNumberPickerMinMax returns the min and max value of NumberPicker subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetNumberPickerMinMax(view View, subviewID string) (float64, float64) {
|
func GetNumberPickerMinMax(view View, subviewID ...string) (float64, float64) {
|
||||||
|
var pickerType int
|
||||||
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
|
pickerType = GetNumberPickerType(view, subviewID[0])
|
||||||
|
} else {
|
||||||
|
pickerType = GetNumberPickerType(view)
|
||||||
|
}
|
||||||
|
|
||||||
var defMin, defMax float64
|
var defMin, defMax float64
|
||||||
if GetNumberPickerType(view, subviewID) == NumberSlider {
|
if pickerType == NumberSlider {
|
||||||
defMin = 0
|
defMin = 0
|
||||||
defMax = 1
|
defMax = 1
|
||||||
} else {
|
} else {
|
||||||
|
@ -284,9 +291,15 @@ func GetNumberPickerMinMax(view View, subviewID string) (float64, float64) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetNumberPickerStep returns the value changing step of NumberPicker subview.
|
// GetNumberPickerStep returns the value changing step of NumberPicker subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetNumberPickerStep(view View, subviewID string) float64 {
|
func GetNumberPickerStep(view View, subviewID ...string) float64 {
|
||||||
_, max := GetNumberPickerMinMax(view, subviewID)
|
var max float64
|
||||||
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
|
_, max = GetNumberPickerMinMax(view, subviewID[0])
|
||||||
|
} else {
|
||||||
|
_, max = GetNumberPickerMinMax(view)
|
||||||
|
}
|
||||||
|
|
||||||
result := floatStyledProperty(view, subviewID, NumberPickerStep, 0)
|
result := floatStyledProperty(view, subviewID, NumberPickerStep, 0)
|
||||||
if result > max {
|
if result > max {
|
||||||
return max
|
return max
|
||||||
|
@ -295,16 +308,22 @@ func GetNumberPickerStep(view View, subviewID string) float64 {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetNumberPickerValue returns the value of NumberPicker subview.
|
// GetNumberPickerValue returns the value of NumberPicker subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetNumberPickerValue(view View, subviewID string) float64 {
|
func GetNumberPickerValue(view View, subviewID ...string) float64 {
|
||||||
min, _ := GetNumberPickerMinMax(view, subviewID)
|
var min float64
|
||||||
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
|
min, _ = GetNumberPickerMinMax(view, subviewID[0])
|
||||||
|
} else {
|
||||||
|
min, _ = GetNumberPickerMinMax(view)
|
||||||
|
}
|
||||||
|
|
||||||
result := floatStyledProperty(view, subviewID, NumberPickerValue, min)
|
result := floatStyledProperty(view, subviewID, NumberPickerValue, min)
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetNumberChangedListeners returns the NumberChangedListener list of an NumberPicker subview.
|
// GetNumberChangedListeners returns the NumberChangedListener list of an NumberPicker subview.
|
||||||
// If there are no listeners then the empty list is returned
|
// If there are no listeners then the empty list is returned
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetNumberChangedListeners(view View, subviewID string) []func(NumberPicker, float64) {
|
func GetNumberChangedListeners(view View, subviewID ...string) []func(NumberPicker, float64) {
|
||||||
return getEventListeners[NumberPicker, float64](view, subviewID, NumberChangedEvent)
|
return getEventListeners[NumberPicker, float64](view, subviewID, NumberChangedEvent)
|
||||||
}
|
}
|
||||||
|
|
|
@ -152,7 +152,7 @@ func (event *PointerEvent) init(data DataObject) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func handlePointerEvents(view View, tag string, data DataObject) {
|
func handlePointerEvents(view View, tag string, data DataObject) {
|
||||||
listeners := getEventListeners[View, PointerEvent](view, "", tag)
|
listeners := getEventListeners[View, PointerEvent](view, nil, tag)
|
||||||
if len(listeners) == 0 {
|
if len(listeners) == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -166,37 +166,37 @@ func handlePointerEvents(view View, tag string, data DataObject) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPointerDownListeners returns the "pointer-down" listener list. If there are no listeners then the empty list is returned.
|
// GetPointerDownListeners returns the "pointer-down" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetPointerDownListeners(view View, subviewID string) []func(View, PointerEvent) {
|
func GetPointerDownListeners(view View, subviewID ...string) []func(View, PointerEvent) {
|
||||||
return getEventListeners[View, PointerEvent](view, subviewID, PointerDown)
|
return getEventListeners[View, PointerEvent](view, subviewID, PointerDown)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPointerUpListeners returns the "pointer-up" listener list. If there are no listeners then the empty list is returned.
|
// GetPointerUpListeners returns the "pointer-up" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetPointerUpListeners(view View, subviewID string) []func(View, PointerEvent) {
|
func GetPointerUpListeners(view View, subviewID ...string) []func(View, PointerEvent) {
|
||||||
return getEventListeners[View, PointerEvent](view, subviewID, PointerUp)
|
return getEventListeners[View, PointerEvent](view, subviewID, PointerUp)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPointerMoveListeners returns the "pointer-move" listener list. If there are no listeners then the empty list is returned.
|
// GetPointerMoveListeners returns the "pointer-move" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetPointerMoveListeners(view View, subviewID string) []func(View, PointerEvent) {
|
func GetPointerMoveListeners(view View, subviewID ...string) []func(View, PointerEvent) {
|
||||||
return getEventListeners[View, PointerEvent](view, subviewID, PointerMove)
|
return getEventListeners[View, PointerEvent](view, subviewID, PointerMove)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPointerCancelListeners returns the "pointer-cancel" listener list. If there are no listeners then the empty list is returned.
|
// GetPointerCancelListeners returns the "pointer-cancel" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetPointerCancelListeners(view View, subviewID string) []func(View, PointerEvent) {
|
func GetPointerCancelListeners(view View, subviewID ...string) []func(View, PointerEvent) {
|
||||||
return getEventListeners[View, PointerEvent](view, subviewID, PointerCancel)
|
return getEventListeners[View, PointerEvent](view, subviewID, PointerCancel)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPointerOverListeners returns the "pointer-over" listener list. If there are no listeners then the empty list is returned.
|
// GetPointerOverListeners returns the "pointer-over" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetPointerOverListeners(view View, subviewID string) []func(View, PointerEvent) {
|
func GetPointerOverListeners(view View, subviewID ...string) []func(View, PointerEvent) {
|
||||||
return getEventListeners[View, PointerEvent](view, subviewID, PointerOver)
|
return getEventListeners[View, PointerEvent](view, subviewID, PointerOver)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPointerOutListeners returns the "pointer-out" listener list. If there are no listeners then the empty list is returned.
|
// GetPointerOutListeners returns the "pointer-out" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetPointerOutListeners(view View, subviewID string) []func(View, PointerEvent) {
|
func GetPointerOutListeners(view View, subviewID ...string) []func(View, PointerEvent) {
|
||||||
return getEventListeners[View, PointerEvent](view, subviewID, PointerOut)
|
return getEventListeners[View, PointerEvent](view, subviewID, PointerOut)
|
||||||
}
|
}
|
||||||
|
|
8
popup.go
8
popup.go
|
@ -115,7 +115,7 @@ type popupArrow struct {
|
||||||
|
|
||||||
func (arrow *popupArrow) fixOff(popupView View) {
|
func (arrow *popupArrow) fixOff(popupView View) {
|
||||||
if arrow.align == CenterAlign && arrow.off.Type == Auto {
|
if arrow.align == CenterAlign && arrow.off.Type == Auto {
|
||||||
r := GetRadius(popupView, "")
|
r := GetRadius(popupView)
|
||||||
switch arrow.location {
|
switch arrow.location {
|
||||||
case TopArrow:
|
case TopArrow:
|
||||||
switch arrow.align {
|
switch arrow.align {
|
||||||
|
@ -176,13 +176,13 @@ func (arrow *popupArrow) createView(popupView View) View {
|
||||||
arrow.width = defaultSize("ruiArrowWidth", Px(16))
|
arrow.width = defaultSize("ruiArrowWidth", Px(16))
|
||||||
}
|
}
|
||||||
|
|
||||||
params := Params{BackgroundColor: GetBackgroundColor(popupView, "")}
|
params := Params{BackgroundColor: GetBackgroundColor(popupView)}
|
||||||
|
|
||||||
if shadow := GetViewShadows(popupView, ""); shadow != nil {
|
if shadow := GetViewShadows(popupView); shadow != nil {
|
||||||
params[Shadow] = shadow
|
params[Shadow] = shadow
|
||||||
}
|
}
|
||||||
|
|
||||||
if filter := GetBackdropFilter(popupView, ""); filter != nil {
|
if filter := GetBackdropFilter(popupView); filter != nil {
|
||||||
params[BackdropFilter] = filter
|
params[BackdropFilter] = filter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,10 +65,10 @@ func (progress *progressBarData) propertyChanged(tag string) {
|
||||||
if progress.created {
|
if progress.created {
|
||||||
switch tag {
|
switch tag {
|
||||||
case ProgressBarMax:
|
case ProgressBarMax:
|
||||||
updateProperty(progress.htmlID(), Max, strconv.FormatFloat(GetProgressBarMax(progress, ""), 'f', -1, 32), progress.session)
|
updateProperty(progress.htmlID(), Max, strconv.FormatFloat(GetProgressBarMax(progress), 'f', -1, 32), progress.session)
|
||||||
|
|
||||||
case ProgressBarValue:
|
case ProgressBarValue:
|
||||||
updateProperty(progress.htmlID(), Value, strconv.FormatFloat(GetProgressBarValue(progress, ""), 'f', -1, 32), progress.session)
|
updateProperty(progress.htmlID(), Value, strconv.FormatFloat(GetProgressBarValue(progress), 'f', -1, 32), progress.session)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -97,22 +97,22 @@ func (progress *progressBarData) htmlProperties(self View, buffer *strings.Build
|
||||||
progress.viewData.htmlProperties(self, buffer)
|
progress.viewData.htmlProperties(self, buffer)
|
||||||
|
|
||||||
buffer.WriteString(` max="`)
|
buffer.WriteString(` max="`)
|
||||||
buffer.WriteString(strconv.FormatFloat(GetProgressBarMax(progress, ""), 'f', -1, 64))
|
buffer.WriteString(strconv.FormatFloat(GetProgressBarMax(progress), 'f', -1, 64))
|
||||||
buffer.WriteByte('"')
|
buffer.WriteByte('"')
|
||||||
|
|
||||||
buffer.WriteString(` value="`)
|
buffer.WriteString(` value="`)
|
||||||
buffer.WriteString(strconv.FormatFloat(GetProgressBarValue(progress, ""), 'f', -1, 64))
|
buffer.WriteString(strconv.FormatFloat(GetProgressBarValue(progress), 'f', -1, 64))
|
||||||
buffer.WriteByte('"')
|
buffer.WriteByte('"')
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetProgressBarMax returns the max value of ProgressBar subview.
|
// GetProgressBarMax returns the max value of ProgressBar subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetProgressBarMax(view View, subviewID string) float64 {
|
func GetProgressBarMax(view View, subviewID ...string) float64 {
|
||||||
return floatStyledProperty(view, subviewID, ProgressBarMax, 1)
|
return floatStyledProperty(view, subviewID, ProgressBarMax, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetProgressBarValue returns the value of ProgressBar subview.
|
// GetProgressBarValue returns the value of ProgressBar subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetProgressBarValue(view View, subviewID string) float64 {
|
func GetProgressBarValue(view View, subviewID ...string) float64 {
|
||||||
return floatStyledProperty(view, subviewID, ProgressBarValue, 0)
|
return floatStyledProperty(view, subviewID, ProgressBarValue, 0)
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,11 @@ package rui
|
||||||
// ResizeEvent is the constant for "resize-event" property tag.
|
// ResizeEvent is the constant for "resize-event" property tag.
|
||||||
// The "resize-event" is fired when the view changes its size.
|
// The "resize-event" is fired when the view changes its size.
|
||||||
// The main listener format:
|
// The main listener format:
|
||||||
|
//
|
||||||
// func(View, Frame).
|
// func(View, Frame).
|
||||||
|
//
|
||||||
// The additional listener formats:
|
// The additional listener formats:
|
||||||
|
//
|
||||||
// func(Frame), func(View), and func().
|
// func(Frame), func(View), and func().
|
||||||
const ResizeEvent = "resize-event"
|
const ResizeEvent = "resize-event"
|
||||||
|
|
||||||
|
@ -13,7 +16,7 @@ func (view *viewData) onResize(self View, x, y, width, height float64) {
|
||||||
view.frame.Top = y
|
view.frame.Top = y
|
||||||
view.frame.Width = width
|
view.frame.Width = width
|
||||||
view.frame.Height = height
|
view.frame.Height = height
|
||||||
for _, listener := range GetResizeListeners(view, "") {
|
for _, listener := range GetResizeListeners(view) {
|
||||||
listener(self, view.frame)
|
listener(self, view.frame)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,10 +65,10 @@ func (view *viewData) Frame() Frame {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetViewFrame returns the size and location of view's viewport.
|
// GetViewFrame returns the size and location of view's viewport.
|
||||||
// If the second argument (subviewID) is "" then the value of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then the value of the first argument (view) is returned
|
||||||
func GetViewFrame(view View, subviewID string) Frame {
|
func GetViewFrame(view View, subviewID ...string) Frame {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view == nil {
|
if view == nil {
|
||||||
return Frame{}
|
return Frame{}
|
||||||
|
@ -74,7 +77,7 @@ func GetViewFrame(view View, subviewID string) Frame {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetResizeListeners returns the list of "resize-event" listeners. If there are no listeners then the empty list is returned
|
// GetResizeListeners returns the list of "resize-event" listeners. If there are no listeners then the empty list is returned
|
||||||
// If the second argument (subviewID) is "" then the listeners list of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then the listeners list of the first argument (view) is returned
|
||||||
func GetResizeListeners(view View, subviewID string) []func(View, Frame) {
|
func GetResizeListeners(view View, subviewID ...string) []func(View, Frame) {
|
||||||
return getEventListeners[View, Frame](view, subviewID, ResizeEvent)
|
return getEventListeners[View, Frame](view, subviewID, ResizeEvent)
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,11 @@ import "fmt"
|
||||||
// ScrollEvent is the constant for "scroll-event" property tag.
|
// ScrollEvent is the constant for "scroll-event" property tag.
|
||||||
// The "scroll-event" is fired when the content of the view is scrolled.
|
// The "scroll-event" is fired when the content of the view is scrolled.
|
||||||
// The main listener format:
|
// The main listener format:
|
||||||
|
//
|
||||||
// func(View, Frame).
|
// func(View, Frame).
|
||||||
|
//
|
||||||
// The additional listener formats:
|
// The additional listener formats:
|
||||||
|
//
|
||||||
// func(Frame), func(View), and func().
|
// func(Frame), func(View), and func().
|
||||||
const ScrollEvent = "scroll-event"
|
const ScrollEvent = "scroll-event"
|
||||||
|
|
||||||
|
@ -15,7 +18,7 @@ func (view *viewData) onScroll(self View, x, y, width, height float64) {
|
||||||
view.scroll.Top = y
|
view.scroll.Top = y
|
||||||
view.scroll.Width = width
|
view.scroll.Width = width
|
||||||
view.scroll.Height = height
|
view.scroll.Height = height
|
||||||
for _, listener := range GetScrollListeners(view, "") {
|
for _, listener := range GetScrollListeners(view) {
|
||||||
listener(self, view.scroll)
|
listener(self, view.scroll)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,10 +35,10 @@ func (view *viewData) setScroll(x, y, width, height float64) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetViewScroll returns ...
|
// GetViewScroll returns ...
|
||||||
// If the second argument (subviewID) is "" then a value of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a value of the first argument (view) is returned
|
||||||
func GetViewScroll(view View, subviewID string) Frame {
|
func GetViewScroll(view View, subviewID ...string) Frame {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view == nil {
|
if view == nil {
|
||||||
return Frame{}
|
return Frame{}
|
||||||
|
@ -44,8 +47,8 @@ func GetViewScroll(view View, subviewID string) Frame {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetScrollListeners returns the list of "scroll-event" listeners. If there are no listeners then the empty list is returned
|
// GetScrollListeners returns the list of "scroll-event" listeners. If there are no listeners then the empty list is returned
|
||||||
// If the second argument (subviewID) is "" then the listeners list of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then the listeners list of the first argument (view) is returned
|
||||||
func GetScrollListeners(view View, subviewID string) []func(View, Frame) {
|
func GetScrollListeners(view View, subviewID ...string) []func(View, Frame) {
|
||||||
return getEventListeners[View, Frame](view, subviewID, ResizeEvent)
|
return getEventListeners[View, Frame](view, subviewID, ResizeEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,10 +64,10 @@ func ScrollViewTo(view View, subviewID string, x, y float64) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ScrollViewToEnd scrolls the view's content to the start of view.
|
// ScrollViewToEnd scrolls the view's content to the start of view.
|
||||||
// If the second argument (subviewID) is "" then the first argument (view) is used
|
// If the second argument (subviewID) is not specified or it is "" then the first argument (view) is used
|
||||||
func ScrollViewToStart(view View, subviewID string) {
|
func ScrollViewToStart(view View, subviewID ...string) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
view.Session().runScript(`scrollToStart("` + view.htmlID() + `")`)
|
view.Session().runScript(`scrollToStart("` + view.htmlID() + `")`)
|
||||||
|
@ -72,10 +75,10 @@ func ScrollViewToStart(view View, subviewID string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ScrollViewToEnd scrolls the view's content to the end of view.
|
// ScrollViewToEnd scrolls the view's content to the end of view.
|
||||||
// If the second argument (subviewID) is "" then the first argument (view) is used
|
// If the second argument (subviewID) is not specified or it is "" then the first argument (view) is used
|
||||||
func ScrollViewToEnd(view View, subviewID string) {
|
func ScrollViewToEnd(view View, subviewID ...string) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
view.Session().runScript(`scrollToEnd("` + view.htmlID() + `")`)
|
view.Session().runScript(`scrollToEnd("` + view.htmlID() + `")`)
|
||||||
|
|
14
tableView.go
14
tableView.go
|
@ -290,7 +290,7 @@ func (table *tableViewData) normalizeTag(tag string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (table *tableViewData) Focusable() bool {
|
func (table *tableViewData) Focusable() bool {
|
||||||
return GetTableSelectionMode(table, "") != NoneSelection
|
return GetTableSelectionMode(table) != NoneSelection
|
||||||
}
|
}
|
||||||
|
|
||||||
func (table *tableViewData) Get(tag string) any {
|
func (table *tableViewData) Get(tag string) any {
|
||||||
|
@ -602,7 +602,7 @@ func (table *tableViewData) propertyChanged(tag string) {
|
||||||
htmlID := table.htmlID()
|
htmlID := table.htmlID()
|
||||||
session := table.Session()
|
session := table.Session()
|
||||||
|
|
||||||
switch GetTableSelectionMode(table, "") {
|
switch GetTableSelectionMode(table) {
|
||||||
case CellSelection:
|
case CellSelection:
|
||||||
updateProperty(htmlID, "tabindex", "0", session)
|
updateProperty(htmlID, "tabindex", "0", session)
|
||||||
updateProperty(htmlID, "onfocus", "tableViewFocusEvent(this, event)", session)
|
updateProperty(htmlID, "onfocus", "tableViewFocusEvent(this, event)", session)
|
||||||
|
@ -757,7 +757,7 @@ func (table *tableViewData) htmlProperties(self View, buffer *strings.Builder) {
|
||||||
buffer.WriteRune('"')
|
buffer.WriteRune('"')
|
||||||
}
|
}
|
||||||
|
|
||||||
if selectionMode := GetTableSelectionMode(table, ""); selectionMode != NoneSelection {
|
if selectionMode := GetTableSelectionMode(table); selectionMode != NoneSelection {
|
||||||
buffer.WriteString(` onfocus="tableViewFocusEvent(this, event)" onblur="tableViewBlurEvent(this, event)" data-focusitemstyle="`)
|
buffer.WriteString(` onfocus="tableViewFocusEvent(this, event)" onblur="tableViewBlurEvent(this, event)" data-focusitemstyle="`)
|
||||||
buffer.WriteString(table.currentStyle())
|
buffer.WriteString(table.currentStyle())
|
||||||
buffer.WriteString(`" data-bluritemstyle="`)
|
buffer.WriteString(`" data-bluritemstyle="`)
|
||||||
|
@ -831,7 +831,7 @@ func (table *tableViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||||
view.Init(session)
|
view.Init(session)
|
||||||
|
|
||||||
ignorCells := []struct{ row, column int }{}
|
ignorCells := []struct{ row, column int }{}
|
||||||
selectionMode := GetTableSelectionMode(table, "")
|
selectionMode := GetTableSelectionMode(table)
|
||||||
|
|
||||||
var allowCellSelection TableAllowCellSelection = nil
|
var allowCellSelection TableAllowCellSelection = nil
|
||||||
if allow, ok := adapter.(TableAllowCellSelection); ok {
|
if allow, ok := adapter.(TableAllowCellSelection); ok {
|
||||||
|
@ -854,7 +854,7 @@ func (table *tableViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
vAlignCss := enumProperties[TableVerticalAlign].cssValues
|
vAlignCss := enumProperties[TableVerticalAlign].cssValues
|
||||||
vAlignValue := GetTableVerticalAlign(table, "")
|
vAlignValue := GetTableVerticalAlign(table)
|
||||||
if vAlignValue < 0 || vAlignValue >= len(vAlignCss) {
|
if vAlignValue < 0 || vAlignValue >= len(vAlignCss) {
|
||||||
vAlignValue = 0
|
vAlignValue = 0
|
||||||
}
|
}
|
||||||
|
@ -1109,8 +1109,8 @@ func (table *tableViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||||
buffer.WriteString("</colgroup>")
|
buffer.WriteString("</colgroup>")
|
||||||
}
|
}
|
||||||
|
|
||||||
headHeight := GetTableHeadHeight(table, "")
|
headHeight := GetTableHeadHeight(table)
|
||||||
footHeight := GetTableFootHeight(table, "")
|
footHeight := GetTableFootHeight(table)
|
||||||
cellBorder := table.getCellBorder()
|
cellBorder := table.getCellBorder()
|
||||||
cellPadding := table.boundsProperty(CellPadding)
|
cellPadding := table.boundsProperty(CellPadding)
|
||||||
if cellPadding == nil {
|
if cellPadding == nil {
|
||||||
|
|
|
@ -24,10 +24,10 @@ func (cell *tableCellView) cssStyle(self View, builder cssBuilder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTableContent returns a TableAdapter which defines the TableView content.
|
// GetTableContent returns a TableAdapter which defines the TableView content.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTableContent(view View, subviewID string) TableAdapter {
|
func GetTableContent(view View, subviewID ...string) TableAdapter {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
|
@ -40,10 +40,10 @@ func GetTableContent(view View, subviewID string) TableAdapter {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTableRowStyle returns a TableRowStyle which defines styles of TableView rows.
|
// GetTableRowStyle returns a TableRowStyle which defines styles of TableView rows.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTableRowStyle(view View, subviewID string) TableRowStyle {
|
func GetTableRowStyle(view View, subviewID ...string) TableRowStyle {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
|
@ -56,10 +56,10 @@ func GetTableRowStyle(view View, subviewID string) TableRowStyle {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTableColumnStyle returns a TableColumnStyle which defines styles of TableView columns.
|
// GetTableColumnStyle returns a TableColumnStyle which defines styles of TableView columns.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTableColumnStyle(view View, subviewID string) TableColumnStyle {
|
func GetTableColumnStyle(view View, subviewID ...string) TableColumnStyle {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
|
@ -72,10 +72,10 @@ func GetTableColumnStyle(view View, subviewID string) TableColumnStyle {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTableCellStyle returns a TableCellStyle which defines styles of TableView cells.
|
// GetTableCellStyle returns a TableCellStyle which defines styles of TableView cells.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTableCellStyle(view View, subviewID string) TableCellStyle {
|
func GetTableCellStyle(view View, subviewID ...string) TableCellStyle {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
|
@ -89,27 +89,27 @@ func GetTableCellStyle(view View, subviewID string) TableCellStyle {
|
||||||
|
|
||||||
// GetTableSelectionMode returns the mode of the TableView elements selection.
|
// GetTableSelectionMode returns the mode of the TableView elements selection.
|
||||||
// Valid values are NoneSelection (0), CellSelection (1), and RowSelection (2).
|
// Valid values are NoneSelection (0), CellSelection (1), and RowSelection (2).
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTableSelectionMode(view View, subviewID string) int {
|
func GetTableSelectionMode(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, SelectionMode, NoneSelection, false)
|
return enumStyledProperty(view, subviewID, SelectionMode, NoneSelection, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTableVerticalAlign returns a vertical align in a TavleView cell. Returns one of next values:
|
// GetTableVerticalAlign returns a vertical align in a TavleView cell. Returns one of next values:
|
||||||
// TopAlign (0), BottomAlign (1), CenterAlign (2), and BaselineAlign (3)
|
// TopAlign (0), BottomAlign (1), CenterAlign (2), and BaselineAlign (3)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTableVerticalAlign(view View, subviewID string) int {
|
func GetTableVerticalAlign(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, TableVerticalAlign, TopAlign, false)
|
return enumStyledProperty(view, subviewID, TableVerticalAlign, TopAlign, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTableHeadHeight returns the number of rows in the table header.
|
// GetTableHeadHeight returns the number of rows in the table header.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTableHeadHeight(view View, subviewID string) int {
|
func GetTableHeadHeight(view View, subviewID ...string) int {
|
||||||
return intStyledProperty(view, subviewID, HeadHeight, 0)
|
return intStyledProperty(view, subviewID, HeadHeight, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTableFootHeight returns the number of rows in the table footer.
|
// GetTableFootHeight returns the number of rows in the table footer.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTableFootHeight(view View, subviewID string) int {
|
func GetTableFootHeight(view View, subviewID ...string) int {
|
||||||
return intStyledProperty(view, subviewID, FootHeight, 0)
|
return intStyledProperty(view, subviewID, FootHeight, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,14 +117,14 @@ func GetTableFootHeight(view View, subviewID string) int {
|
||||||
// If there is no selected cell/row or the selection mode is NoneSelection (0),
|
// If there is no selected cell/row or the selection mode is NoneSelection (0),
|
||||||
// then a value of the row and column index less than 0 is returned.
|
// then a value of the row and column index less than 0 is returned.
|
||||||
// If the selection mode is RowSelection (2) then the returned column index is less than 0.
|
// If the selection mode is RowSelection (2) then the returned column index is less than 0.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTableCurrent(view View, subviewID string) CellIndex {
|
func GetTableCurrent(view View, subviewID ...string) CellIndex {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if selectionMode := GetTableSelectionMode(view, ""); selectionMode != NoneSelection {
|
if selectionMode := GetTableSelectionMode(view); selectionMode != NoneSelection {
|
||||||
if tableView, ok := view.(TableView); ok {
|
if tableView, ok := view.(TableView); ok {
|
||||||
return tableView.getCurrent()
|
return tableView.getCurrent()
|
||||||
}
|
}
|
||||||
|
@ -135,10 +135,10 @@ func GetTableCurrent(view View, subviewID string) CellIndex {
|
||||||
|
|
||||||
// GetTableCellClickedListeners returns listeners of event which occurs when the user clicks on a table cell.
|
// GetTableCellClickedListeners returns listeners of event which occurs when the user clicks on a table cell.
|
||||||
// If there are no listeners then the empty list is returned.
|
// If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTableCellClickedListeners(view View, subviewID string) []func(TableView, int, int) {
|
func GetTableCellClickedListeners(view View, subviewID ...string) []func(TableView, int, int) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value := view.Get(TableCellClickedEvent); value != nil {
|
if value := view.Get(TableCellClickedEvent); value != nil {
|
||||||
|
@ -152,10 +152,10 @@ func GetTableCellClickedListeners(view View, subviewID string) []func(TableView,
|
||||||
|
|
||||||
// GetTableCellSelectedListeners returns listeners of event which occurs when a table cell becomes selected.
|
// GetTableCellSelectedListeners returns listeners of event which occurs when a table cell becomes selected.
|
||||||
// If there are no listeners then the empty list is returned.
|
// If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTableCellSelectedListeners(view View, subviewID string) []func(TableView, int, int) {
|
func GetTableCellSelectedListeners(view View, subviewID ...string) []func(TableView, int, int) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value := view.Get(TableCellSelectedEvent); value != nil {
|
if value := view.Get(TableCellSelectedEvent); value != nil {
|
||||||
|
@ -169,43 +169,23 @@ func GetTableCellSelectedListeners(view View, subviewID string) []func(TableView
|
||||||
|
|
||||||
// GetTableRowClickedListeners returns listeners of event which occurs when the user clicks on a table row.
|
// GetTableRowClickedListeners returns listeners of event which occurs when the user clicks on a table row.
|
||||||
// If there are no listeners then the empty list is returned.
|
// If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTableRowClickedListeners(view View, subviewID string) []func(TableView, int) {
|
func GetTableRowClickedListeners(view View, subviewID ...string) []func(TableView, int) {
|
||||||
if subviewID != "" {
|
return getEventListeners[TableView, int](view, subviewID, TableRowClickedEvent)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view != nil {
|
|
||||||
if value := view.Get(TableRowClickedEvent); value != nil {
|
|
||||||
if result, ok := value.([]func(TableView, int)); ok {
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return []func(TableView, int){}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTableRowSelectedListeners returns listeners of event which occurs when a table row becomes selected.
|
// GetTableRowSelectedListeners returns listeners of event which occurs when a table row becomes selected.
|
||||||
// If there are no listeners then the empty list is returned.
|
// If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTableRowSelectedListeners(view View, subviewID string) []func(TableView, int) {
|
func GetTableRowSelectedListeners(view View, subviewID ...string) []func(TableView, int) {
|
||||||
if subviewID != "" {
|
return getEventListeners[TableView, int](view, subviewID, TableRowSelectedEvent)
|
||||||
view = ViewByID(view, subviewID)
|
|
||||||
}
|
|
||||||
if view != nil {
|
|
||||||
if value := view.Get(TableRowSelectedEvent); value != nil {
|
|
||||||
if result, ok := value.([]func(TableView, int)); ok {
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return []func(TableView, int){}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReloadTableViewData updates TableView
|
// ReloadTableViewData updates TableView
|
||||||
func ReloadTableViewData(view View, subviewID string) bool {
|
func ReloadTableViewData(view View, subviewID ...string) bool {
|
||||||
var tableView TableView
|
var tableView TableView
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
if tableView = TableViewByID(view, subviewID); tableView == nil {
|
if tableView = TableViewByID(view, subviewID[0]); tableView == nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -523,7 +523,7 @@ func (tabsLayout *tabsLayoutData) ListItem(index int, session Session) View {
|
||||||
if !ok || title == "" {
|
if !ok || title == "" {
|
||||||
title = "No title"
|
title = "No title"
|
||||||
}
|
}
|
||||||
if !GetNotTranslate(tabsLayout, "") {
|
if !GetNotTranslate(tabsLayout) {
|
||||||
title, _ = tabsLayout.Session().GetString(title)
|
title, _ = tabsLayout.Session().GetString(title)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -723,7 +723,7 @@ func (tabsLayout *tabsLayoutData) htmlSubviews(self View, buffer *strings.Builde
|
||||||
inactiveStyle := tabsLayout.inactiveTabStyle()
|
inactiveStyle := tabsLayout.inactiveTabStyle()
|
||||||
activeStyle := tabsLayout.activeTabStyle()
|
activeStyle := tabsLayout.activeTabStyle()
|
||||||
|
|
||||||
notTranslate := GetNotTranslate(tabsLayout, "")
|
notTranslate := GetNotTranslate(tabsLayout)
|
||||||
closeButton, _ := boolProperty(tabsLayout, TabCloseButton, tabsLayout.session)
|
closeButton, _ := boolProperty(tabsLayout, TabCloseButton, tabsLayout.session)
|
||||||
|
|
||||||
var tabStyle, titleDiv string
|
var tabStyle, titleDiv string
|
||||||
|
|
|
@ -155,7 +155,7 @@ func textToJS(text string) string {
|
||||||
func (textView *textViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
func (textView *textViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||||
if value := textView.getRaw(Text); value != nil {
|
if value := textView.getRaw(Text); value != nil {
|
||||||
if text, ok := value.(string); ok {
|
if text, ok := value.(string); ok {
|
||||||
if !GetNotTranslate(textView, "") {
|
if !GetNotTranslate(textView) {
|
||||||
text, _ = textView.session.GetString(text)
|
text, _ = textView.session.GetString(text)
|
||||||
}
|
}
|
||||||
buffer.WriteString(textToJS(text))
|
buffer.WriteString(textToJS(text))
|
||||||
|
@ -165,7 +165,7 @@ func (textView *textViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||||
|
|
||||||
// GetTextOverflow returns a value of the "text-overflow" property:
|
// GetTextOverflow returns a value of the "text-overflow" property:
|
||||||
// TextOverflowClip (0) or TextOverflowEllipsis (1).
|
// TextOverflowClip (0) or TextOverflowEllipsis (1).
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTextOverflow(view View, subviewID string) int {
|
func GetTextOverflow(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, TextOverflow, SingleLineText, false)
|
return enumStyledProperty(view, subviewID, TextOverflow, SingleLineText, false)
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,7 +96,7 @@ func (picker *timePickerData) remove(tag string) {
|
||||||
case TimePickerValue:
|
case TimePickerValue:
|
||||||
if _, ok := picker.properties[TimePickerValue]; ok {
|
if _, ok := picker.properties[TimePickerValue]; ok {
|
||||||
delete(picker.properties, TimePickerValue)
|
delete(picker.properties, TimePickerValue)
|
||||||
time := GetTimePickerValue(picker, "")
|
time := GetTimePickerValue(picker)
|
||||||
if picker.created {
|
if picker.created {
|
||||||
picker.session.runScript(fmt.Sprintf(`setInputValue('%s', '%s')`, picker.htmlID(), time.Format(timeFormat)))
|
picker.session.runScript(fmt.Sprintf(`setInputValue('%s', '%s')`, picker.htmlID(), time.Format(timeFormat)))
|
||||||
}
|
}
|
||||||
|
@ -192,9 +192,9 @@ func (picker *timePickerData) set(tag string, value any) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
case TimePickerStep:
|
case TimePickerStep:
|
||||||
oldStep := GetTimePickerStep(picker, "")
|
oldStep := GetTimePickerStep(picker)
|
||||||
if picker.setIntProperty(TimePickerStep, value) {
|
if picker.setIntProperty(TimePickerStep, value) {
|
||||||
if step := GetTimePickerStep(picker, ""); oldStep != step {
|
if step := GetTimePickerStep(picker); oldStep != step {
|
||||||
if picker.created {
|
if picker.created {
|
||||||
if step > 0 {
|
if step > 0 {
|
||||||
updateProperty(picker.htmlID(), Step, strconv.Itoa(step), picker.session)
|
updateProperty(picker.htmlID(), Step, strconv.Itoa(step), picker.session)
|
||||||
|
@ -208,7 +208,7 @@ func (picker *timePickerData) set(tag string, value any) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
case TimePickerValue:
|
case TimePickerValue:
|
||||||
oldTime := GetTimePickerValue(picker, "")
|
oldTime := GetTimePickerValue(picker)
|
||||||
if time, ok := setTimeValue(TimePickerValue); ok {
|
if time, ok := setTimeValue(TimePickerValue); ok {
|
||||||
if time != oldTime {
|
if time != oldTime {
|
||||||
if picker.created {
|
if picker.created {
|
||||||
|
@ -282,7 +282,7 @@ func (picker *timePickerData) htmlProperties(self View, buffer *strings.Builder)
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer.WriteString(` value="`)
|
buffer.WriteString(` value="`)
|
||||||
buffer.WriteString(GetTimePickerValue(picker, "").Format(timeFormat))
|
buffer.WriteString(GetTimePickerValue(picker).Format(timeFormat))
|
||||||
buffer.WriteByte('"')
|
buffer.WriteByte('"')
|
||||||
|
|
||||||
buffer.WriteString(` oninput="editViewInputEvent(this)"`)
|
buffer.WriteString(` oninput="editViewInputEvent(this)"`)
|
||||||
|
@ -292,7 +292,7 @@ func (picker *timePickerData) htmlProperties(self View, buffer *strings.Builder)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (picker *timePickerData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
func (picker *timePickerData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
||||||
if IsDisabled(self, "") {
|
if IsDisabled(self) {
|
||||||
buffer.WriteString(` disabled`)
|
buffer.WriteString(` disabled`)
|
||||||
}
|
}
|
||||||
picker.viewData.htmlDisabledProperties(self, buffer)
|
picker.viewData.htmlDisabledProperties(self, buffer)
|
||||||
|
@ -303,7 +303,7 @@ func (picker *timePickerData) handleCommand(self View, command string, data Data
|
||||||
case "textChanged":
|
case "textChanged":
|
||||||
if text, ok := data.PropertyValue("text"); ok {
|
if text, ok := data.PropertyValue("text"); ok {
|
||||||
if value, err := time.Parse(timeFormat, text); err == nil {
|
if value, err := time.Parse(timeFormat, text); err == nil {
|
||||||
oldValue := GetTimePickerValue(picker, "")
|
oldValue := GetTimePickerValue(picker)
|
||||||
picker.properties[TimePickerValue] = value
|
picker.properties[TimePickerValue] = value
|
||||||
if value != oldValue {
|
if value != oldValue {
|
||||||
for _, listener := range picker.timeChangedListeners {
|
for _, listener := range picker.timeChangedListeners {
|
||||||
|
@ -353,10 +353,10 @@ func getTimeProperty(view View, mainTag, shortTag string) (time.Time, bool) {
|
||||||
|
|
||||||
// GetTimePickerMin returns the min time of TimePicker subview and "true" as the second value if the min time is set,
|
// GetTimePickerMin returns the min time of TimePicker subview and "true" as the second value if the min time is set,
|
||||||
// "false" as the second value otherwise.
|
// "false" as the second value otherwise.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTimePickerMin(view View, subviewID string) (time.Time, bool) {
|
func GetTimePickerMin(view View, subviewID ...string) (time.Time, bool) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
return getTimeProperty(view, TimePickerMin, Min)
|
return getTimeProperty(view, TimePickerMin, Min)
|
||||||
|
@ -366,10 +366,10 @@ func GetTimePickerMin(view View, subviewID string) (time.Time, bool) {
|
||||||
|
|
||||||
// GetTimePickerMax returns the max time of TimePicker subview and "true" as the second value if the min time is set,
|
// GetTimePickerMax returns the max time of TimePicker subview and "true" as the second value if the min time is set,
|
||||||
// "false" as the second value otherwise.
|
// "false" as the second value otherwise.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTimePickerMax(view View, subviewID string) (time.Time, bool) {
|
func GetTimePickerMax(view View, subviewID ...string) (time.Time, bool) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
return getTimeProperty(view, TimePickerMax, Max)
|
return getTimeProperty(view, TimePickerMax, Max)
|
||||||
|
@ -378,16 +378,16 @@ func GetTimePickerMax(view View, subviewID string) (time.Time, bool) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTimePickerStep returns the time changing step in seconds of TimePicker subview.
|
// GetTimePickerStep returns the time changing step in seconds of TimePicker subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTimePickerStep(view View, subviewID string) int {
|
func GetTimePickerStep(view View, subviewID ...string) int {
|
||||||
return intStyledProperty(view, subviewID, TimePickerStep, 60)
|
return intStyledProperty(view, subviewID, TimePickerStep, 60)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTimePickerValue returns the time of TimePicker subview.
|
// GetTimePickerValue returns the time of TimePicker subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTimePickerValue(view View, subviewID string) time.Time {
|
func GetTimePickerValue(view View, subviewID ...string) time.Time {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view == nil {
|
if view == nil {
|
||||||
return time.Now()
|
return time.Now()
|
||||||
|
@ -398,7 +398,7 @@ func GetTimePickerValue(view View, subviewID string) time.Time {
|
||||||
|
|
||||||
// GetTimeChangedListeners returns the TimeChangedListener list of an TimePicker subview.
|
// GetTimeChangedListeners returns the TimeChangedListener list of an TimePicker subview.
|
||||||
// If there are no listeners then the empty list is returned
|
// If there are no listeners then the empty list is returned
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTimeChangedListeners(view View, subviewID string) []func(TimePicker, time.Time) {
|
func GetTimeChangedListeners(view View, subviewID ...string) []func(TimePicker, time.Time) {
|
||||||
return getEventListeners[TimePicker, time.Time](view, subviewID, TimeChangedEvent)
|
return getEventListeners[TimePicker, time.Time](view, subviewID, TimeChangedEvent)
|
||||||
}
|
}
|
||||||
|
|
|
@ -170,7 +170,7 @@ func (event *TouchEvent) init(data DataObject) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleTouchEvents(view View, tag string, data DataObject) {
|
func handleTouchEvents(view View, tag string, data DataObject) {
|
||||||
listeners := getEventListeners[View, TouchEvent](view, "", tag)
|
listeners := getEventListeners[View, TouchEvent](view, nil, tag)
|
||||||
if len(listeners) == 0 {
|
if len(listeners) == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -184,25 +184,25 @@ func handleTouchEvents(view View, tag string, data DataObject) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTouchStartListeners returns the "touch-start" listener list. If there are no listeners then the empty list is returned.
|
// GetTouchStartListeners returns the "touch-start" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTouchStartListeners(view View, subviewID string) []func(View, TouchEvent) {
|
func GetTouchStartListeners(view View, subviewID ...string) []func(View, TouchEvent) {
|
||||||
return getEventListeners[View, TouchEvent](view, subviewID, TouchStart)
|
return getEventListeners[View, TouchEvent](view, subviewID, TouchStart)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTouchEndListeners returns the "touch-end" listener list. If there are no listeners then the empty list is returned.
|
// GetTouchEndListeners returns the "touch-end" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTouchEndListeners(view View, subviewID string) []func(View, TouchEvent) {
|
func GetTouchEndListeners(view View, subviewID ...string) []func(View, TouchEvent) {
|
||||||
return getEventListeners[View, TouchEvent](view, subviewID, TouchEnd)
|
return getEventListeners[View, TouchEvent](view, subviewID, TouchEnd)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTouchMoveListeners returns the "touch-move" listener list. If there are no listeners then the empty list is returned.
|
// GetTouchMoveListeners returns the "touch-move" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTouchMoveListeners(view View, subviewID string) []func(View, TouchEvent) {
|
func GetTouchMoveListeners(view View, subviewID ...string) []func(View, TouchEvent) {
|
||||||
return getEventListeners[View, TouchEvent](view, subviewID, TouchMove)
|
return getEventListeners[View, TouchEvent](view, subviewID, TouchMove)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTouchCancelListeners returns the "touch-cancel" listener list. If there are no listeners then the empty list is returned.
|
// GetTouchCancelListeners returns the "touch-cancel" listener list. If there are no listeners then the empty list is returned.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTouchCancelListeners(view View, subviewID string) []func(View, TouchEvent) {
|
func GetTouchCancelListeners(view View, subviewID ...string) []func(View, TouchEvent) {
|
||||||
return getEventListeners[View, TouchEvent](view, subviewID, TouchCancel)
|
return getEventListeners[View, TouchEvent](view, subviewID, TouchCancel)
|
||||||
}
|
}
|
||||||
|
|
28
view.go
28
view.go
|
@ -195,7 +195,7 @@ func (view *viewData) remove(tag string) {
|
||||||
case Style, StyleDisabled:
|
case Style, StyleDisabled:
|
||||||
if _, ok := view.properties[tag]; ok {
|
if _, ok := view.properties[tag]; ok {
|
||||||
delete(view.properties, tag)
|
delete(view.properties, tag)
|
||||||
updateProperty(view.htmlID(), "class", view.htmlClass(IsDisabled(view, "")), view.session)
|
updateProperty(view.htmlID(), "class", view.htmlClass(IsDisabled(view)), view.session)
|
||||||
}
|
}
|
||||||
|
|
||||||
case FocusEvent, LostFocusEvent:
|
case FocusEvent, LostFocusEvent:
|
||||||
|
@ -325,7 +325,7 @@ func (view *viewData) set(tag string, value any) bool {
|
||||||
}
|
}
|
||||||
view.properties[tag] = text
|
view.properties[tag] = text
|
||||||
if view.created {
|
if view.created {
|
||||||
updateProperty(view.htmlID(), "class", view.htmlClass(IsDisabled(view, "")), view.session)
|
updateProperty(view.htmlID(), "class", view.htmlClass(IsDisabled(view)), view.session)
|
||||||
}
|
}
|
||||||
|
|
||||||
case FocusEvent, LostFocusEvent:
|
case FocusEvent, LostFocusEvent:
|
||||||
|
@ -379,7 +379,7 @@ func viewPropertyChanged(view *viewData, tag string) {
|
||||||
return
|
return
|
||||||
|
|
||||||
case Visibility:
|
case Visibility:
|
||||||
switch GetVisibility(view, "") {
|
switch GetVisibility(view) {
|
||||||
case Invisible:
|
case Invisible:
|
||||||
updateCSSProperty(htmlID, Visibility, "hidden", session)
|
updateCSSProperty(htmlID, Visibility, "hidden", session)
|
||||||
updateCSSProperty(htmlID, "display", "", session)
|
updateCSSProperty(htmlID, "display", "", session)
|
||||||
|
@ -448,7 +448,7 @@ func viewPropertyChanged(view *viewData, tag string) {
|
||||||
return
|
return
|
||||||
|
|
||||||
case Outline, OutlineColor, OutlineStyle, OutlineWidth:
|
case Outline, OutlineColor, OutlineStyle, OutlineWidth:
|
||||||
updateCSSProperty(htmlID, Outline, GetOutline(view, "").cssString(), session)
|
updateCSSProperty(htmlID, Outline, GetOutline(view).cssString(), session)
|
||||||
return
|
return
|
||||||
|
|
||||||
case Shadow:
|
case Shadow:
|
||||||
|
@ -463,19 +463,19 @@ func viewPropertyChanged(view *viewData, tag string) {
|
||||||
RadiusTopRight, RadiusTopRightX, RadiusTopRightY,
|
RadiusTopRight, RadiusTopRightX, RadiusTopRightY,
|
||||||
RadiusBottomLeft, RadiusBottomLeftX, RadiusBottomLeftY,
|
RadiusBottomLeft, RadiusBottomLeftX, RadiusBottomLeftY,
|
||||||
RadiusBottomRight, RadiusBottomRightX, RadiusBottomRightY:
|
RadiusBottomRight, RadiusBottomRightX, RadiusBottomRightY:
|
||||||
radius := GetRadius(view, "")
|
radius := GetRadius(view)
|
||||||
updateCSSProperty(htmlID, "border-radius", radius.cssString(), session)
|
updateCSSProperty(htmlID, "border-radius", radius.cssString(), session)
|
||||||
return
|
return
|
||||||
|
|
||||||
case Margin, MarginTop, MarginRight, MarginBottom, MarginLeft,
|
case Margin, MarginTop, MarginRight, MarginBottom, MarginLeft,
|
||||||
"top-margin", "right-margin", "bottom-margin", "left-margin":
|
"top-margin", "right-margin", "bottom-margin", "left-margin":
|
||||||
margin := GetMargin(view, "")
|
margin := GetMargin(view)
|
||||||
updateCSSProperty(htmlID, Margin, margin.cssString(), session)
|
updateCSSProperty(htmlID, Margin, margin.cssString(), session)
|
||||||
return
|
return
|
||||||
|
|
||||||
case Padding, PaddingTop, PaddingRight, PaddingBottom, PaddingLeft,
|
case Padding, PaddingTop, PaddingRight, PaddingBottom, PaddingLeft,
|
||||||
"top-padding", "right-padding", "bottom-padding", "left-padding":
|
"top-padding", "right-padding", "bottom-padding", "left-padding":
|
||||||
padding := GetPadding(view, "")
|
padding := GetPadding(view)
|
||||||
updateCSSProperty(htmlID, Padding, padding.cssString(), session)
|
updateCSSProperty(htmlID, Padding, padding.cssString(), session)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -680,7 +680,7 @@ func (view *viewData) get(tag string) any {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (view *viewData) htmlTag() string {
|
func (view *viewData) htmlTag() string {
|
||||||
if semantics := GetSemantics(view, ""); semantics > DefaultSemantics {
|
if semantics := GetSemantics(view); semantics > DefaultSemantics {
|
||||||
values := enumProperties[Semantics].cssValues
|
values := enumProperties[Semantics].cssValues
|
||||||
if semantics < len(values) {
|
if semantics < len(values) {
|
||||||
return values[semantics]
|
return values[semantics]
|
||||||
|
@ -709,7 +709,7 @@ func (view *viewData) addToCSSStyle(addCSS map[string]string) {
|
||||||
|
|
||||||
func (view *viewData) cssStyle(self View, builder cssBuilder) {
|
func (view *viewData) cssStyle(self View, builder cssBuilder) {
|
||||||
view.viewStyle.cssViewStyle(builder, view.session)
|
view.viewStyle.cssViewStyle(builder, view.session)
|
||||||
switch GetVisibility(view, "") {
|
switch GetVisibility(view) {
|
||||||
case Invisible:
|
case Invisible:
|
||||||
builder.add(`visibility`, `hidden`)
|
builder.add(`visibility`, `hidden`)
|
||||||
|
|
||||||
|
@ -733,7 +733,7 @@ func (view *viewData) htmlProperties(self View, buffer *strings.Builder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (view *viewData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
func (view *viewData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
||||||
if IsDisabled(self, "") {
|
if IsDisabled(self) {
|
||||||
buffer.WriteString(` data-disabled="1"`)
|
buffer.WriteString(` data-disabled="1"`)
|
||||||
} else {
|
} else {
|
||||||
buffer.WriteString(` data-disabled="0"`)
|
buffer.WriteString(` data-disabled="0"`)
|
||||||
|
@ -748,7 +748,7 @@ func viewHTML(view View, buffer *strings.Builder) {
|
||||||
buffer.WriteString(view.htmlID())
|
buffer.WriteString(view.htmlID())
|
||||||
buffer.WriteRune('"')
|
buffer.WriteRune('"')
|
||||||
|
|
||||||
disabled := IsDisabled(view, "")
|
disabled := IsDisabled(view)
|
||||||
|
|
||||||
if cls := view.htmlClass(disabled); cls != "" {
|
if cls := view.htmlClass(disabled); cls != "" {
|
||||||
buffer.WriteString(` class="`)
|
buffer.WriteString(` class="`)
|
||||||
|
@ -825,7 +825,7 @@ func (view *viewData) handleCommand(self View, command string, data DataObject)
|
||||||
switch command {
|
switch command {
|
||||||
|
|
||||||
case KeyDownEvent, KeyUpEvent:
|
case KeyDownEvent, KeyUpEvent:
|
||||||
if !IsDisabled(self, "") {
|
if !IsDisabled(self) {
|
||||||
handleKeyEvents(self, command, data)
|
handleKeyEvents(self, command, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -840,13 +840,13 @@ func (view *viewData) handleCommand(self View, command string, data DataObject)
|
||||||
|
|
||||||
case FocusEvent:
|
case FocusEvent:
|
||||||
view.hasFocus = true
|
view.hasFocus = true
|
||||||
for _, listener := range getFocusListeners(view, "", command) {
|
for _, listener := range getFocusListeners(view, nil, command) {
|
||||||
listener(self)
|
listener(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
case LostFocusEvent:
|
case LostFocusEvent:
|
||||||
view.hasFocus = false
|
view.hasFocus = false
|
||||||
for _, listener := range getFocusListeners(view, "", command) {
|
for _, listener := range getFocusListeners(view, nil, command) {
|
||||||
listener(self)
|
listener(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
16
viewClip.go
16
viewClip.go
|
@ -558,10 +558,10 @@ func getClipShape(prop Properties, tag string, session Session) ClipShape {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetClip returns a View clipping area.
|
// GetClip returns a View clipping area.
|
||||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a top position of the first argument (view) is returned
|
||||||
func GetClip(view View, subviewID string) ClipShape {
|
func GetClip(view View, subviewID ...string) ClipShape {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
return getClipShape(view, Clip, view.Session())
|
return getClipShape(view, Clip, view.Session())
|
||||||
|
@ -571,10 +571,10 @@ func GetClip(view View, subviewID string) ClipShape {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetShapeOutside returns a shape around which adjacent inline content.
|
// GetShapeOutside returns a shape around which adjacent inline content.
|
||||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a top position of the first argument (view) is returned
|
||||||
func GetShapeOutside(view View, subviewID string) ClipShape {
|
func GetShapeOutside(view View, subviewID ...string) ClipShape {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
return getClipShape(view, ShapeOutside, view.Session())
|
return getClipShape(view, ShapeOutside, view.Session())
|
||||||
|
|
|
@ -259,34 +259,46 @@ func (style *viewStyle) setFilter(tag string, value any) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetFilter returns a View graphical effects like blur or color shift.
|
// GetFilter returns a View graphical effects like blur or color shift.
|
||||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a top position of the first argument (view) is returned
|
||||||
func GetFilter(view View, subviewID string) ViewFilter {
|
func GetFilter(view View, subviewID ...string) ViewFilter {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value := view.getRaw(Filter); value != nil {
|
if value := view.getRaw(Filter); value != nil {
|
||||||
if filter, ok := value.(ViewFilter); ok {
|
if filter, ok := value.(ViewFilter); ok {
|
||||||
return filter
|
return filter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if value := valueFromStyle(view, Filter); value != nil {
|
||||||
|
if filter, ok := value.(ViewFilter); ok {
|
||||||
|
return filter
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetBackdropFilter returns the area behind a View graphical effects like blur or color shift.
|
// GetBackdropFilter returns the area behind a View graphical effects like blur or color shift.
|
||||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a top position of the first argument (view) is returned
|
||||||
func GetBackdropFilter(view View, subviewID string) ViewFilter {
|
func GetBackdropFilter(view View, subviewID ...string) ViewFilter {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value := view.getRaw(BackdropFilter); value != nil {
|
if value := view.getRaw(BackdropFilter); value != nil {
|
||||||
if filter, ok := value.(ViewFilter); ok {
|
if filter, ok := value.(ViewFilter); ok {
|
||||||
return filter
|
return filter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if value := valueFromStyle(view, BackdropFilter); value != nil {
|
||||||
|
if filter, ok := value.(ViewFilter); ok {
|
||||||
|
return filter
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -245,7 +245,7 @@ func (view *viewData) updateTransformProperty(tag string) bool {
|
||||||
|
|
||||||
case PerspectiveOriginX, PerspectiveOriginY:
|
case PerspectiveOriginX, PerspectiveOriginY:
|
||||||
if getTransform3D(view, session) {
|
if getTransform3D(view, session) {
|
||||||
x, y := GetPerspectiveOrigin(view, "")
|
x, y := GetPerspectiveOrigin(view)
|
||||||
value := ""
|
value := ""
|
||||||
if x.Type != Auto || y.Type != Auto {
|
if x.Type != Auto || y.Type != Auto {
|
||||||
value = x.cssString("50%") + " " + y.cssString("50%")
|
value = x.cssString("50%") + " " + y.cssString("50%")
|
||||||
|
@ -255,7 +255,7 @@ func (view *viewData) updateTransformProperty(tag string) bool {
|
||||||
|
|
||||||
case BackfaceVisible:
|
case BackfaceVisible:
|
||||||
if getTransform3D(view, session) {
|
if getTransform3D(view, session) {
|
||||||
if GetBackfaceVisible(view, "") {
|
if GetBackfaceVisible(view) {
|
||||||
updateCSSProperty(htmlID, BackfaceVisible, "visible", session)
|
updateCSSProperty(htmlID, BackfaceVisible, "visible", session)
|
||||||
} else {
|
} else {
|
||||||
updateCSSProperty(htmlID, BackfaceVisible, "hidden", session)
|
updateCSSProperty(htmlID, BackfaceVisible, "hidden", session)
|
||||||
|
|
399
viewUtils.go
399
viewUtils.go
|
@ -33,7 +33,7 @@ func Set(rootView View, viewID, tag string, value any) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetChangeListener sets a listener for changing a subview property value.
|
// SetChangeListener sets a listener for changing a subview property value.
|
||||||
// If the second argument (subviewID) is "" then a listener for the first argument (view) is set
|
// If the second argument (subviewID) is not specified or it is "" then a listener for the first argument (view) is set
|
||||||
func SetChangeListener(view View, viewID, tag string, listener func(View, string)) {
|
func SetChangeListener(view View, viewID, tag string, listener func(View, string)) {
|
||||||
if viewID != "" {
|
if viewID != "" {
|
||||||
view = ViewByID(view, viewID)
|
view = ViewByID(view, viewID)
|
||||||
|
@ -65,17 +65,17 @@ func SetParams(rootView View, viewID string, params Params) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsDisabled returns "true" if the subview is disabled
|
// IsDisabled returns "true" if the subview is disabled
|
||||||
// If the second argument (subviewID) is "" then a state of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a state of the first argument (view) is returned
|
||||||
func IsDisabled(view View, subviewID string) bool {
|
func IsDisabled(view View, subviewID ...string) bool {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if disabled, _ := boolProperty(view, Disabled, view.Session()); disabled {
|
if disabled, _ := boolProperty(view, Disabled, view.Session()); disabled {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if parent := view.Parent(); parent != nil {
|
if parent := view.Parent(); parent != nil {
|
||||||
return IsDisabled(parent, "")
|
return IsDisabled(parent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
@ -86,22 +86,22 @@ func IsDisabled(view View, subviewID string) bool {
|
||||||
// HeaderSemantics (4), MainSemantics (5), FooterSemantics (6), NavigationSemantics (7),
|
// HeaderSemantics (4), MainSemantics (5), FooterSemantics (6), NavigationSemantics (7),
|
||||||
// FigureSemantics (8), FigureCaptionSemantics (9), ButtonSemantics (10), ParagraphSemantics (11),
|
// FigureSemantics (8), FigureCaptionSemantics (9), ButtonSemantics (10), ParagraphSemantics (11),
|
||||||
// H1Semantics (12) - H6Semantics (17), BlockquoteSemantics (18), and CodeSemantics (19).
|
// H1Semantics (12) - H6Semantics (17), BlockquoteSemantics (18), and CodeSemantics (19).
|
||||||
// If the second argument (subviewID) is "" then a semantics of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a semantics of the first argument (view) is returned
|
||||||
func GetSemantics(view View, subviewID string) int {
|
func GetSemantics(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, Semantics, DefaultSemantics, false)
|
return enumStyledProperty(view, subviewID, Semantics, DefaultSemantics, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetOpacity returns the subview opacity.
|
// GetOpacity returns the subview opacity.
|
||||||
// If the second argument (subviewID) is "" then an opacity of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then an opacity of the first argument (view) is returned
|
||||||
func GetOpacity(view View, subviewID string) float64 {
|
func GetOpacity(view View, subviewID ...string) float64 {
|
||||||
return floatStyledProperty(view, subviewID, Opacity, 1)
|
return floatStyledProperty(view, subviewID, Opacity, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetStyle returns the subview style id.
|
// GetStyle returns the subview style id.
|
||||||
// If the second argument (subviewID) is "" then a style of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a style of the first argument (view) is returned
|
||||||
func GetStyle(view View, subviewID string) string {
|
func GetStyle(view View, subviewID ...string) string {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if style, ok := stringProperty(view, Style, view.Session()); ok {
|
if style, ok := stringProperty(view, Style, view.Session()); ok {
|
||||||
|
@ -112,10 +112,10 @@ func GetStyle(view View, subviewID string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetDisabledStyle returns the disabled subview style id.
|
// GetDisabledStyle returns the disabled subview style id.
|
||||||
// If the second argument (subviewID) is "" then a style of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a style of the first argument (view) is returned
|
||||||
func GetDisabledStyle(view View, subviewID string) string {
|
func GetDisabledStyle(view View, subviewID ...string) string {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if style, ok := stringProperty(view, StyleDisabled, view.Session()); ok {
|
if style, ok := stringProperty(view, StyleDisabled, view.Session()); ok {
|
||||||
|
@ -127,19 +127,19 @@ func GetDisabledStyle(view View, subviewID string) string {
|
||||||
|
|
||||||
// GetVisibility returns the subview visibility. One of the following values is returned:
|
// GetVisibility returns the subview visibility. One of the following values is returned:
|
||||||
// Visible (0), Invisible (1), or Gone (2)
|
// Visible (0), Invisible (1), or Gone (2)
|
||||||
// If the second argument (subviewID) is "" then a visibility of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a visibility of the first argument (view) is returned
|
||||||
func GetVisibility(view View, subviewID string) int {
|
func GetVisibility(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, Visibility, Visible, false)
|
return enumStyledProperty(view, subviewID, Visibility, Visible, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetOverflow returns a value of the subview "overflow" property. Returns one of next values:
|
// GetOverflow returns a value of the subview "overflow" property. Returns one of next values:
|
||||||
// OverflowHidden (0), OverflowVisible (1), OverflowScroll (2), OverflowAuto (3)
|
// OverflowHidden (0), OverflowVisible (1), OverflowScroll (2), OverflowAuto (3)
|
||||||
// If the second argument (subviewID) is "" then a value of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a value of the first argument (view) is returned
|
||||||
func GetOverflow(view View, subviewID string) int {
|
func GetOverflow(view View, subviewID ...string) int {
|
||||||
defaultOverflow := OverflowHidden
|
defaultOverflow := OverflowHidden
|
||||||
view2 := view
|
view2 := view
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view2 = ViewByID(view, subviewID)
|
view2 = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view2 != nil {
|
if view2 != nil {
|
||||||
switch view.(type) {
|
switch view.(type) {
|
||||||
|
@ -154,87 +154,87 @@ func GetOverflow(view View, subviewID string) int {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetZIndex returns the subview z-order.
|
// GetZIndex returns the subview z-order.
|
||||||
// If the second argument (subviewID) is "" then a z-order of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a z-order of the first argument (view) is returned
|
||||||
func GetZIndex(view View, subviewID string) int {
|
func GetZIndex(view View, subviewID ...string) int {
|
||||||
return intStyledProperty(view, subviewID, ZIndex, 0)
|
return intStyledProperty(view, subviewID, ZIndex, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetWidth returns the subview width.
|
// GetWidth returns the subview width.
|
||||||
// If the second argument (subviewID) is "" then a width of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a width of the first argument (view) is returned
|
||||||
func GetWidth(view View, subviewID string) SizeUnit {
|
func GetWidth(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, Width, false)
|
return sizeStyledProperty(view, subviewID, Width, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetHeight returns the subview height.
|
// GetHeight returns the subview height.
|
||||||
// If the second argument (subviewID) is "" then a height of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a height of the first argument (view) is returned
|
||||||
func GetHeight(view View, subviewID string) SizeUnit {
|
func GetHeight(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, Height, false)
|
return sizeStyledProperty(view, subviewID, Height, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMinWidth returns a minimal subview width.
|
// GetMinWidth returns a minimal subview width.
|
||||||
// If the second argument (subviewID) is "" then a minimal width of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a minimal width of the first argument (view) is returned
|
||||||
func GetMinWidth(view View, subviewID string) SizeUnit {
|
func GetMinWidth(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, MinWidth, false)
|
return sizeStyledProperty(view, subviewID, MinWidth, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMinHeight returns a minimal subview height.
|
// GetMinHeight returns a minimal subview height.
|
||||||
// If the second argument (subviewID) is "" then a minimal height of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a minimal height of the first argument (view) is returned
|
||||||
func GetMinHeight(view View, subviewID string) SizeUnit {
|
func GetMinHeight(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, MinHeight, false)
|
return sizeStyledProperty(view, subviewID, MinHeight, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMaxWidth returns a maximal subview width.
|
// GetMaxWidth returns a maximal subview width.
|
||||||
// If the second argument (subviewID) is "" then a maximal width of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a maximal width of the first argument (view) is returned
|
||||||
func GetMaxWidth(view View, subviewID string) SizeUnit {
|
func GetMaxWidth(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, MaxWidth, false)
|
return sizeStyledProperty(view, subviewID, MaxWidth, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMaxHeight returns a maximal subview height.
|
// GetMaxHeight returns a maximal subview height.
|
||||||
// If the second argument (subviewID) is "" then a maximal height of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a maximal height of the first argument (view) is returned
|
||||||
func GetMaxHeight(view View, subviewID string) SizeUnit {
|
func GetMaxHeight(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, MaxHeight, false)
|
return sizeStyledProperty(view, subviewID, MaxHeight, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetResize returns the "resize" property value if the subview. One of the following values is returned:
|
// GetResize returns the "resize" property value if the subview. One of the following values is returned:
|
||||||
// NoneResize (0), BothResize (1), HorizontalResize (2), or VerticalResize (3)
|
// NoneResize (0), BothResize (1), HorizontalResize (2), or VerticalResize (3)
|
||||||
// If the second argument (subviewID) is "" then a value of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a value of the first argument (view) is returned
|
||||||
func GetResize(view View, subviewID string) int {
|
func GetResize(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, Resize, NoneResize, false)
|
return enumStyledProperty(view, subviewID, Resize, NoneResize, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetLeft returns a left position of the subview in an AbsoluteLayout container.
|
// GetLeft returns a left position of the subview in an AbsoluteLayout container.
|
||||||
// If a parent view is not an AbsoluteLayout container then this value is ignored.
|
// If a parent view is not an AbsoluteLayout container then this value is ignored.
|
||||||
// If the second argument (subviewID) is "" then a left position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a left position of the first argument (view) is returned
|
||||||
func GetLeft(view View, subviewID string) SizeUnit {
|
func GetLeft(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, Left, false)
|
return sizeStyledProperty(view, subviewID, Left, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetRight returns a right position of the subview in an AbsoluteLayout container.
|
// GetRight returns a right position of the subview in an AbsoluteLayout container.
|
||||||
// If a parent view is not an AbsoluteLayout container then this value is ignored.
|
// If a parent view is not an AbsoluteLayout container then this value is ignored.
|
||||||
// If the second argument (subviewID) is "" then a right position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a right position of the first argument (view) is returned
|
||||||
func GetRight(view View, subviewID string) SizeUnit {
|
func GetRight(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, Right, false)
|
return sizeStyledProperty(view, subviewID, Right, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTop returns a top position of the subview in an AbsoluteLayout container.
|
// GetTop returns a top position of the subview in an AbsoluteLayout container.
|
||||||
// If a parent view is not an AbsoluteLayout container then this value is ignored.
|
// If a parent view is not an AbsoluteLayout container then this value is ignored.
|
||||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a top position of the first argument (view) is returned
|
||||||
func GetTop(view View, subviewID string) SizeUnit {
|
func GetTop(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, Top, false)
|
return sizeStyledProperty(view, subviewID, Top, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetBottom returns a top position of the subview in an AbsoluteLayout container.
|
// GetBottom returns a top position of the subview in an AbsoluteLayout container.
|
||||||
// If a parent view is not an AbsoluteLayout container then this value is ignored.
|
// If a parent view is not an AbsoluteLayout container then this value is ignored.
|
||||||
// If the second argument (subviewID) is "" then a bottom position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a bottom position of the first argument (view) is returned
|
||||||
func GetBottom(view View, subviewID string) SizeUnit {
|
func GetBottom(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, Bottom, false)
|
return sizeStyledProperty(view, subviewID, Bottom, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Margin returns the subview margin.
|
// Margin returns the subview margin.
|
||||||
// If the second argument (subviewID) is "" then a margin of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a margin of the first argument (view) is returned
|
||||||
func GetMargin(view View, subviewID string) Bounds {
|
func GetMargin(view View, subviewID ...string) Bounds {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
var bounds Bounds
|
var bounds Bounds
|
||||||
if view != nil {
|
if view != nil {
|
||||||
|
@ -244,10 +244,10 @@ func GetMargin(view View, subviewID string) Bounds {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPadding returns the subview padding.
|
// GetPadding returns the subview padding.
|
||||||
// If the second argument (subviewID) is "" then a padding of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a padding of the first argument (view) is returned
|
||||||
func GetPadding(view View, subviewID string) Bounds {
|
func GetPadding(view View, subviewID ...string) Bounds {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
var bounds Bounds
|
var bounds Bounds
|
||||||
if view != nil {
|
if view != nil {
|
||||||
|
@ -257,10 +257,10 @@ func GetPadding(view View, subviewID string) Bounds {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetBorder returns ViewBorders of the subview.
|
// GetBorder returns ViewBorders of the subview.
|
||||||
// If the second argument (subviewID) is "" then a ViewBorders of the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a ViewBorders of the first argument (view) is returned.
|
||||||
func GetBorder(view View, subviewID string) ViewBorders {
|
func GetBorder(view View, subviewID ...string) ViewBorders {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if border := getBorder(view, Border); border != nil {
|
if border := getBorder(view, Border); border != nil {
|
||||||
|
@ -271,10 +271,10 @@ func GetBorder(view View, subviewID string) ViewBorders {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Radius returns the BoxRadius structure of the subview.
|
// Radius returns the BoxRadius structure of the subview.
|
||||||
// If the second argument (subviewID) is "" then a BoxRadius of the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a BoxRadius of the first argument (view) is returned.
|
||||||
func GetRadius(view View, subviewID string) BoxRadius {
|
func GetRadius(view View, subviewID ...string) BoxRadius {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view == nil {
|
if view == nil {
|
||||||
return BoxRadius{}
|
return BoxRadius{}
|
||||||
|
@ -283,10 +283,10 @@ func GetRadius(view View, subviewID string) BoxRadius {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetOutline returns ViewOutline of the subview.
|
// GetOutline returns ViewOutline of the subview.
|
||||||
// If the second argument (subviewID) is "" then a ViewOutline of the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a ViewOutline of the first argument (view) is returned.
|
||||||
func GetOutline(view View, subviewID string) ViewOutline {
|
func GetOutline(view View, subviewID ...string) ViewOutline {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if outline := getOutline(view); outline != nil {
|
if outline := getOutline(view); outline != nil {
|
||||||
|
@ -297,10 +297,10 @@ func GetOutline(view View, subviewID string) ViewOutline {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetViewShadows returns shadows of the subview.
|
// GetViewShadows returns shadows of the subview.
|
||||||
// If the second argument (subviewID) is "" then shadows of the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then shadows of the first argument (view) is returned.
|
||||||
func GetViewShadows(view View, subviewID string) []ViewShadow {
|
func GetViewShadows(view View, subviewID ...string) []ViewShadow {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view == nil {
|
if view == nil {
|
||||||
return []ViewShadow{}
|
return []ViewShadow{}
|
||||||
|
@ -309,10 +309,10 @@ func GetViewShadows(view View, subviewID string) []ViewShadow {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTextShadows returns text shadows of the subview.
|
// GetTextShadows returns text shadows of the subview.
|
||||||
// If the second argument (subviewID) is "" then shadows of the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then shadows of the first argument (view) is returned.
|
||||||
func GetTextShadows(view View, subviewID string) []ViewShadow {
|
func GetTextShadows(view View, subviewID ...string) []ViewShadow {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view == nil {
|
if view == nil {
|
||||||
return []ViewShadow{}
|
return []ViewShadow{}
|
||||||
|
@ -321,22 +321,22 @@ func GetTextShadows(view View, subviewID string) []ViewShadow {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetBackgroundColor returns a background color of the subview.
|
// GetBackgroundColor returns a background color of the subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetBackgroundColor(view View, subviewID string) Color {
|
func GetBackgroundColor(view View, subviewID ...string) Color {
|
||||||
return colorStyledProperty(view, subviewID, BackgroundColor, false)
|
return colorStyledProperty(view, subviewID, BackgroundColor, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAccentColor returns the accent color for UI controls generated by some elements.
|
// GetAccentColor returns the accent color for UI controls generated by some elements.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetAccentColor(view View, subviewID string) Color {
|
func GetAccentColor(view View, subviewID ...string) Color {
|
||||||
return colorStyledProperty(view, subviewID, AccentColor, false)
|
return colorStyledProperty(view, subviewID, AccentColor, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetFontName returns the subview font.
|
// GetFontName returns the subview font.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetFontName(view View, subviewID string) string {
|
func GetFontName(view View, subviewID ...string) string {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if font, ok := stringProperty(view, FontName, view.Session()); ok {
|
if font, ok := stringProperty(view, FontName, view.Session()); ok {
|
||||||
|
@ -348,34 +348,34 @@ func GetFontName(view View, subviewID string) string {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if parent := view.Parent(); parent != nil {
|
if parent := view.Parent(); parent != nil {
|
||||||
return GetFontName(parent, "")
|
return GetFontName(parent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTextColor returns a text color of the subview.
|
// GetTextColor returns a text color of the subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTextColor(view View, subviewID string) Color {
|
func GetTextColor(view View, subviewID ...string) Color {
|
||||||
return colorStyledProperty(view, subviewID, TextColor, true)
|
return colorStyledProperty(view, subviewID, TextColor, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTextSize returns a text size of the subview.
|
// GetTextSize returns a text size of the subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTextSize(view View, subviewID string) SizeUnit {
|
func GetTextSize(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, TextSize, true)
|
return sizeStyledProperty(view, subviewID, TextSize, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTabSize returns the subview width of tab characters (U+0009) in spaces.
|
// GetTabSize returns the subview width of tab characters (U+0009) in spaces.
|
||||||
// If the second argument (subviewID) is "" then a width of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a width of the first argument (view) is returned
|
||||||
func GetTabSize(view View, subviewID string) int {
|
func GetTabSize(view View, subviewID ...string) int {
|
||||||
return intStyledProperty(view, subviewID, TabSize, 8)
|
return intStyledProperty(view, subviewID, TabSize, 8)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTextWeight returns a text weight of the subview. Returns one of next values:
|
// GetTextWeight returns a text weight of the subview. Returns one of next values:
|
||||||
// 1, 2, 3, 4 (normal text), 5, 6, 7 (bold text), 8 and 9
|
// 1, 2, 3, 4 (normal text), 5, 6, 7 (bold text), 8 and 9
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTextWeight(view View, subviewID string) int {
|
func GetTextWeight(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, TextWeight, NormalFont, true)
|
return enumStyledProperty(view, subviewID, TextWeight, NormalFont, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -383,105 +383,105 @@ func GetTextWeight(view View, subviewID string) int {
|
||||||
//
|
//
|
||||||
// LeftAlign = 0, RightAlign = 1, CenterAlign = 2, JustifyAlign = 3
|
// LeftAlign = 0, RightAlign = 1, CenterAlign = 2, JustifyAlign = 3
|
||||||
//
|
//
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTextAlign(view View, subviewID string) int {
|
func GetTextAlign(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, TextAlign, LeftAlign, true)
|
return enumStyledProperty(view, subviewID, TextAlign, LeftAlign, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTextIndent returns a text indent of the subview.
|
// GetTextIndent returns a text indent of the subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTextIndent(view View, subviewID string) SizeUnit {
|
func GetTextIndent(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, TextIndent, true)
|
return sizeStyledProperty(view, subviewID, TextIndent, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetLetterSpacing returns a letter spacing of the subview.
|
// GetLetterSpacing returns a letter spacing of the subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetLetterSpacing(view View, subviewID string) SizeUnit {
|
func GetLetterSpacing(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, LetterSpacing, true)
|
return sizeStyledProperty(view, subviewID, LetterSpacing, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetWordSpacing returns a word spacing of the subview.
|
// GetWordSpacing returns a word spacing of the subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetWordSpacing(view View, subviewID string) SizeUnit {
|
func GetWordSpacing(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, WordSpacing, true)
|
return sizeStyledProperty(view, subviewID, WordSpacing, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetLineHeight returns a height of a text line of the subview.
|
// GetLineHeight returns a height of a text line of the subview.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetLineHeight(view View, subviewID string) SizeUnit {
|
func GetLineHeight(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, LineHeight, true)
|
return sizeStyledProperty(view, subviewID, LineHeight, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsItalic returns "true" if a text font of the subview is displayed in italics, "false" otherwise.
|
// IsItalic returns "true" if a text font of the subview is displayed in italics, "false" otherwise.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func IsItalic(view View, subviewID string) bool {
|
func IsItalic(view View, subviewID ...string) bool {
|
||||||
return boolStyledProperty(view, subviewID, Italic, true)
|
return boolStyledProperty(view, subviewID, Italic, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsSmallCaps returns "true" if a text font of the subview is displayed in small caps, "false" otherwise.
|
// IsSmallCaps returns "true" if a text font of the subview is displayed in small caps, "false" otherwise.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func IsSmallCaps(view View, subviewID string) bool {
|
func IsSmallCaps(view View, subviewID ...string) bool {
|
||||||
return boolStyledProperty(view, subviewID, SmallCaps, true)
|
return boolStyledProperty(view, subviewID, SmallCaps, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsStrikethrough returns "true" if a text font of the subview is displayed strikethrough, "false" otherwise.
|
// IsStrikethrough returns "true" if a text font of the subview is displayed strikethrough, "false" otherwise.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func IsStrikethrough(view View, subviewID string) bool {
|
func IsStrikethrough(view View, subviewID ...string) bool {
|
||||||
return boolStyledProperty(view, subviewID, Strikethrough, true)
|
return boolStyledProperty(view, subviewID, Strikethrough, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsOverline returns "true" if a text font of the subview is displayed overlined, "false" otherwise.
|
// IsOverline returns "true" if a text font of the subview is displayed overlined, "false" otherwise.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func IsOverline(view View, subviewID string) bool {
|
func IsOverline(view View, subviewID ...string) bool {
|
||||||
return boolStyledProperty(view, subviewID, Overline, true)
|
return boolStyledProperty(view, subviewID, Overline, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsUnderline returns "true" if a text font of the subview is displayed underlined, "false" otherwise.
|
// IsUnderline returns "true" if a text font of the subview is displayed underlined, "false" otherwise.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func IsUnderline(view View, subviewID string) bool {
|
func IsUnderline(view View, subviewID ...string) bool {
|
||||||
return boolStyledProperty(view, subviewID, Underline, true)
|
return boolStyledProperty(view, subviewID, Underline, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTextLineThickness returns the stroke thickness of the decoration line that
|
// GetTextLineThickness returns the stroke thickness of the decoration line that
|
||||||
// is used on text in an element, such as a line-through, underline, or overline.
|
// is used on text in an element, such as a line-through, underline, or overline.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTextLineThickness(view View, subviewID string) SizeUnit {
|
func GetTextLineThickness(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, TextLineThickness, true)
|
return sizeStyledProperty(view, subviewID, TextLineThickness, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTextLineStyle returns the stroke style of the decoration line that
|
// GetTextLineStyle returns the stroke style of the decoration line that
|
||||||
// is used on text in an element, such as a line-through, underline, or overline.
|
// is used on text in an element, such as a line-through, underline, or overline.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTextLineStyle(view View, subviewID string) int {
|
func GetTextLineStyle(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, TextLineStyle, SolidLine, true)
|
return enumStyledProperty(view, subviewID, TextLineStyle, SolidLine, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTextLineColor returns the stroke color of the decoration line that
|
// GetTextLineColor returns the stroke color of the decoration line that
|
||||||
// is used on text in an element, such as a line-through, underline, or overline.
|
// is used on text in an element, such as a line-through, underline, or overline.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTextLineColor(view View, subviewID string) Color {
|
func GetTextLineColor(view View, subviewID ...string) Color {
|
||||||
return colorStyledProperty(view, subviewID, TextLineColor, true)
|
return colorStyledProperty(view, subviewID, TextLineColor, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTextTransform returns a text transform of the subview. Return one of next values:
|
// GetTextTransform returns a text transform of the subview. Return one of next values:
|
||||||
// NoneTextTransform (0), CapitalizeTextTransform (1), LowerCaseTextTransform (2) or UpperCaseTextTransform (3)
|
// NoneTextTransform (0), CapitalizeTextTransform (1), LowerCaseTextTransform (2) or UpperCaseTextTransform (3)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTextTransform(view View, subviewID string) int {
|
func GetTextTransform(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, TextTransform, NoneTextTransform, true)
|
return enumStyledProperty(view, subviewID, TextTransform, NoneTextTransform, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetWritingMode returns whether lines of text are laid out horizontally or vertically, as well as
|
// GetWritingMode returns whether lines of text are laid out horizontally or vertically, as well as
|
||||||
// the direction in which blocks progress. Valid values are HorizontalTopToBottom (0),
|
// the direction in which blocks progress. Valid values are HorizontalTopToBottom (0),
|
||||||
// HorizontalBottomToTop (1), VerticalRightToLeft (2) and VerticalLeftToRight (3)
|
// HorizontalBottomToTop (1), VerticalRightToLeft (2) and VerticalLeftToRight (3)
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetWritingMode(view View, subviewID string) int {
|
func GetWritingMode(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, WritingMode, HorizontalTopToBottom, true)
|
return enumStyledProperty(view, subviewID, WritingMode, HorizontalTopToBottom, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTextDirection - returns a direction of text, table columns, and horizontal overflow.
|
// GetTextDirection - returns a direction of text, table columns, and horizontal overflow.
|
||||||
// Valid values are SystemTextDirection (0), LeftToRightDirection (1), and RightToLeftDirection (2).
|
// Valid values are SystemTextDirection (0), LeftToRightDirection (1), and RightToLeftDirection (2).
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTextDirection(view View, subviewID string) int {
|
func GetTextDirection(view View, subviewID ...string) int {
|
||||||
if view == nil {
|
if view == nil {
|
||||||
return SystemTextDirection
|
return SystemTextDirection
|
||||||
}
|
}
|
||||||
|
@ -492,16 +492,16 @@ func GetTextDirection(view View, subviewID string) int {
|
||||||
// GetVerticalTextOrientation returns a orientation of the text characters in a line. It only affects text
|
// GetVerticalTextOrientation returns a orientation of the text characters in a line. It only affects text
|
||||||
// in vertical mode (when "writing-mode" is "vertical-right-to-left" or "vertical-left-to-right").
|
// in vertical mode (when "writing-mode" is "vertical-right-to-left" or "vertical-left-to-right").
|
||||||
// Valid values are MixedTextOrientation (0), UprightTextOrientation (1), and SidewaysTextOrientation (2).
|
// Valid values are MixedTextOrientation (0), UprightTextOrientation (1), and SidewaysTextOrientation (2).
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetVerticalTextOrientation(view View, subviewID string) int {
|
func GetVerticalTextOrientation(view View, subviewID ...string) int {
|
||||||
return enumStyledProperty(view, subviewID, VerticalTextOrientation, MixedTextOrientation, true)
|
return enumStyledProperty(view, subviewID, VerticalTextOrientation, MixedTextOrientation, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetRow returns the range of row numbers of a GridLayout in which the subview is placed.
|
// GetRow returns the range of row numbers of a GridLayout in which the subview is placed.
|
||||||
// If the second argument (subviewID) is "" then a values from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a values from the first argument (view) is returned.
|
||||||
func GetRow(view View, subviewID string) Range {
|
func GetRow(view View, subviewID ...string) Range {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
session := view.Session()
|
session := view.Session()
|
||||||
|
@ -518,10 +518,10 @@ func GetRow(view View, subviewID string) Range {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetColumn returns the range of column numbers of a GridLayout in which the subview is placed.
|
// GetColumn returns the range of column numbers of a GridLayout in which the subview is placed.
|
||||||
// If the second argument (subviewID) is "" then a values from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a values from the first argument (view) is returned.
|
||||||
func GetColumn(view View, subviewID string) Range {
|
func GetColumn(view View, subviewID ...string) Range {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
session := view.Session()
|
session := view.Session()
|
||||||
|
@ -540,17 +540,17 @@ func GetColumn(view View, subviewID string) Range {
|
||||||
// GetPerspective returns a distance between the z = 0 plane and the user in order to give a 3D-positioned
|
// GetPerspective returns a distance between the z = 0 plane and the user in order to give a 3D-positioned
|
||||||
// element some perspective. Each 3D element with z > 0 becomes larger; each 3D-element with z < 0 becomes smaller.
|
// element some perspective. Each 3D element with z > 0 becomes larger; each 3D-element with z < 0 becomes smaller.
|
||||||
// The default value is 0 (no 3D effects).
|
// The default value is 0 (no 3D effects).
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetPerspective(view View, subviewID string) SizeUnit {
|
func GetPerspective(view View, subviewID ...string) SizeUnit {
|
||||||
return sizeStyledProperty(view, subviewID, Perspective, false)
|
return sizeStyledProperty(view, subviewID, Perspective, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPerspectiveOrigin returns a x- and y-coordinate of the position at which the viewer is looking.
|
// GetPerspectiveOrigin returns a x- and y-coordinate of the position at which the viewer is looking.
|
||||||
// It is used as the vanishing point by the Perspective property. The default value is (50%, 50%).
|
// It is used as the vanishing point by the Perspective property. The default value is (50%, 50%).
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetPerspectiveOrigin(view View, subviewID string) (SizeUnit, SizeUnit) {
|
func GetPerspectiveOrigin(view View, subviewID ...string) (SizeUnit, SizeUnit) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view == nil {
|
if view == nil {
|
||||||
return AutoSize(), AutoSize()
|
return AutoSize(), AutoSize()
|
||||||
|
@ -562,17 +562,17 @@ func GetPerspectiveOrigin(view View, subviewID string) (SizeUnit, SizeUnit) {
|
||||||
// visible when turned towards the user. Values:
|
// visible when turned towards the user. Values:
|
||||||
// true - the back face is visible when turned towards the user (default value).
|
// true - the back face is visible when turned towards the user (default value).
|
||||||
// false - the back face is hidden, effectively making the element invisible when turned away from the user.
|
// false - the back face is hidden, effectively making the element invisible when turned away from the user.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetBackfaceVisible(view View, subviewID string) bool {
|
func GetBackfaceVisible(view View, subviewID ...string) bool {
|
||||||
return boolStyledProperty(view, subviewID, BackfaceVisible, false)
|
return boolStyledProperty(view, subviewID, BackfaceVisible, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetOrigin returns a x-, y-, and z-coordinate of the point around which a view transformation is applied.
|
// GetOrigin returns a x-, y-, and z-coordinate of the point around which a view transformation is applied.
|
||||||
// The default value is (50%, 50%, 50%).
|
// The default value is (50%, 50%, 50%).
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetOrigin(view View, subviewID string) (SizeUnit, SizeUnit, SizeUnit) {
|
func GetOrigin(view View, subviewID ...string) (SizeUnit, SizeUnit, SizeUnit) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view == nil {
|
if view == nil {
|
||||||
return AutoSize(), AutoSize(), AutoSize()
|
return AutoSize(), AutoSize(), AutoSize()
|
||||||
|
@ -581,10 +581,10 @@ func GetOrigin(view View, subviewID string) (SizeUnit, SizeUnit, SizeUnit) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTranslate returns a x-, y-, and z-axis translation value of a 2D/3D translation
|
// GetTranslate returns a x-, y-, and z-axis translation value of a 2D/3D translation
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetTranslate(view View, subviewID string) (SizeUnit, SizeUnit, SizeUnit) {
|
func GetTranslate(view View, subviewID ...string) (SizeUnit, SizeUnit, SizeUnit) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view == nil {
|
if view == nil {
|
||||||
return AutoSize(), AutoSize(), AutoSize()
|
return AutoSize(), AutoSize(), AutoSize()
|
||||||
|
@ -594,10 +594,10 @@ func GetTranslate(view View, subviewID string) (SizeUnit, SizeUnit, SizeUnit) {
|
||||||
|
|
||||||
// GetSkew returns a angles to use to distort the element along the abscissa (x-axis)
|
// GetSkew returns a angles to use to distort the element along the abscissa (x-axis)
|
||||||
// and the ordinate (y-axis). The default value is 0.
|
// and the ordinate (y-axis). The default value is 0.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetSkew(view View, subviewID string) (AngleUnit, AngleUnit) {
|
func GetSkew(view View, subviewID ...string) (AngleUnit, AngleUnit) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view == nil {
|
if view == nil {
|
||||||
return AngleUnit{Value: 0, Type: Radian}, AngleUnit{Value: 0, Type: Radian}
|
return AngleUnit{Value: 0, Type: Radian}, AngleUnit{Value: 0, Type: Radian}
|
||||||
|
@ -607,10 +607,10 @@ func GetSkew(view View, subviewID string) (AngleUnit, AngleUnit) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetScale returns a x-, y-, and z-axis scaling value of a 2D/3D scale. The default value is 1.
|
// GetScale returns a x-, y-, and z-axis scaling value of a 2D/3D scale. The default value is 1.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetScale(view View, subviewID string) (float64, float64, float64) {
|
func GetScale(view View, subviewID ...string) (float64, float64, float64) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view == nil {
|
if view == nil {
|
||||||
return 1, 1, 1
|
return 1, 1, 1
|
||||||
|
@ -624,10 +624,10 @@ func GetScale(view View, subviewID string) (float64, float64, float64) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetRotate returns a x-, y, z-coordinate of the vector denoting the axis of rotation, and the angle of the view rotation
|
// GetRotate returns a x-, y, z-coordinate of the vector denoting the axis of rotation, and the angle of the view rotation
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetRotate(view View, subviewID string) (float64, float64, float64, AngleUnit) {
|
func GetRotate(view View, subviewID ...string) (float64, float64, float64, AngleUnit) {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view == nil {
|
if view == nil {
|
||||||
return 0, 0, 0, AngleUnit{Value: 0, Type: Radian}
|
return 0, 0, 0, AngleUnit{Value: 0, Type: Radian}
|
||||||
|
@ -643,12 +643,12 @@ func GetRotate(view View, subviewID string) (float64, float64, float64, AngleUni
|
||||||
|
|
||||||
// GetAvoidBreak returns "true" if avoids any break from being inserted within the principal box,
|
// GetAvoidBreak returns "true" if avoids any break from being inserted within the principal box,
|
||||||
// and "false" if allows, but does not force, any break to be inserted within the principal box.
|
// and "false" if allows, but does not force, any break to be inserted within the principal box.
|
||||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
// If the second argument (subviewID) is not specified or it is "" then a top position of the first argument (view) is returned
|
||||||
func GetAvoidBreak(view View, subviewID string) bool {
|
func GetAvoidBreak(view View, subviewID ...string) bool {
|
||||||
return boolStyledProperty(view, subviewID, AvoidBreak, true)
|
return boolStyledProperty(view, subviewID, AvoidBreak, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetNotTranslate(view View, subviewID string) bool {
|
func GetNotTranslate(view View, subviewID ...string) bool {
|
||||||
return boolStyledProperty(view, subviewID, NotTranslate, true)
|
return boolStyledProperty(view, subviewID, NotTranslate, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -663,7 +663,7 @@ func valueFromStyle(view View, tag string) any {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if IsDisabled(view, "") {
|
if IsDisabled(view) {
|
||||||
if value := getValue(StyleDisabled); value != nil {
|
if value := getValue(StyleDisabled); value != nil {
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
@ -671,10 +671,11 @@ func valueFromStyle(view View, tag string) any {
|
||||||
return getValue(Style)
|
return getValue(Style)
|
||||||
}
|
}
|
||||||
|
|
||||||
func sizeStyledProperty(view View, subviewID string, tag string, inherit bool) SizeUnit {
|
func sizeStyledProperty(view View, subviewID []string, tag string, inherit bool) SizeUnit {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value, ok := sizeProperty(view, tag, view.Session()); ok {
|
if value, ok := sizeProperty(view, tag, view.Session()); ok {
|
||||||
return value
|
return value
|
||||||
|
@ -687,17 +688,18 @@ func sizeStyledProperty(view View, subviewID string, tag string, inherit bool) S
|
||||||
|
|
||||||
if inherit {
|
if inherit {
|
||||||
if parent := view.Parent(); parent != nil {
|
if parent := view.Parent(); parent != nil {
|
||||||
return sizeStyledProperty(parent, "", tag, true)
|
return sizeStyledProperty(parent, []string{}, tag, true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return AutoSize()
|
return AutoSize()
|
||||||
}
|
}
|
||||||
|
|
||||||
func enumStyledProperty(view View, subviewID string, tag string, defaultValue int, inherit bool) int {
|
func enumStyledProperty(view View, subviewID []string, tag string, defaultValue int, inherit bool) int {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value, ok := enumProperty(view, tag, view.Session(), defaultValue); ok {
|
if value, ok := enumProperty(view, tag, view.Session(), defaultValue); ok {
|
||||||
return value
|
return value
|
||||||
|
@ -710,16 +712,16 @@ func enumStyledProperty(view View, subviewID string, tag string, defaultValue in
|
||||||
|
|
||||||
if inherit {
|
if inherit {
|
||||||
if parent := view.Parent(); parent != nil {
|
if parent := view.Parent(); parent != nil {
|
||||||
return enumStyledProperty(parent, "", tag, defaultValue, true)
|
return enumStyledProperty(parent, []string{}, tag, defaultValue, true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return defaultValue
|
return defaultValue
|
||||||
}
|
}
|
||||||
|
|
||||||
func boolStyledProperty(view View, subviewID string, tag string, inherit bool) bool {
|
func boolStyledProperty(view View, subviewID []string, tag string, inherit bool) bool {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
|
@ -734,7 +736,7 @@ func boolStyledProperty(view View, subviewID string, tag string, inherit bool) b
|
||||||
|
|
||||||
if inherit {
|
if inherit {
|
||||||
if parent := view.Parent(); parent != nil {
|
if parent := view.Parent(); parent != nil {
|
||||||
return boolStyledProperty(parent, "", tag, inherit)
|
return boolStyledProperty(parent, []string{}, tag, inherit)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -742,10 +744,11 @@ func boolStyledProperty(view View, subviewID string, tag string, inherit bool) b
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func intStyledProperty(view View, subviewID string, tag string, defaultValue int) int {
|
func intStyledProperty(view View, subviewID []string, tag string, defaultValue int) int {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value, ok := intProperty(view, tag, view.Session(), defaultValue); ok {
|
if value, ok := intProperty(view, tag, view.Session(), defaultValue); ok {
|
||||||
return value
|
return value
|
||||||
|
@ -758,9 +761,9 @@ func intStyledProperty(view View, subviewID string, tag string, defaultValue int
|
||||||
return defaultValue
|
return defaultValue
|
||||||
}
|
}
|
||||||
|
|
||||||
func floatStyledProperty(view View, subviewID string, tag string, defaultValue float64) float64 {
|
func floatStyledProperty(view View, subviewID []string, tag string, defaultValue float64) float64 {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value, ok := floatProperty(view, tag, view.Session(), defaultValue); ok {
|
if value, ok := floatProperty(view, tag, view.Session(), defaultValue); ok {
|
||||||
|
@ -774,9 +777,9 @@ func floatStyledProperty(view View, subviewID string, tag string, defaultValue f
|
||||||
return defaultValue
|
return defaultValue
|
||||||
}
|
}
|
||||||
|
|
||||||
func colorStyledProperty(view View, subviewID, tag string, inherit bool) Color {
|
func colorStyledProperty(view View, subviewID []string, tag string, inherit bool) Color {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
if view != nil {
|
if view != nil {
|
||||||
if value, ok := colorProperty(view, tag, view.Session()); ok {
|
if value, ok := colorProperty(view, tag, view.Session()); ok {
|
||||||
|
@ -789,7 +792,7 @@ func colorStyledProperty(view View, subviewID, tag string, inherit bool) Color {
|
||||||
}
|
}
|
||||||
if inherit {
|
if inherit {
|
||||||
if parent := view.Parent(); parent != nil {
|
if parent := view.Parent(); parent != nil {
|
||||||
return colorStyledProperty(parent, "", tag, true)
|
return colorStyledProperty(parent, []string{}, tag, true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -827,10 +830,10 @@ func BlurViewByID(viewID string, session Session) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetCurrent returns the index of the selected item (<0 if there is no a selected item) or the current view index (StackLayout, TabsLayout).
|
// GetCurrent returns the index of the selected item (<0 if there is no a selected item) or the current view index (StackLayout, TabsLayout).
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func GetCurrent(view View, subviewID string) int {
|
func GetCurrent(view View, subviewID ...string) int {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultValue := -1
|
defaultValue := -1
|
||||||
|
@ -845,10 +848,10 @@ func GetCurrent(view View, subviewID string) int {
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsUserSelect returns "true" if the user can select text, "false" otherwise.
|
// IsUserSelect returns "true" if the user can select text, "false" otherwise.
|
||||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||||
func IsUserSelect(view View, subviewID string) bool {
|
func IsUserSelect(view View, subviewID ...string) bool {
|
||||||
if subviewID != "" {
|
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||||
view = ViewByID(view, subviewID)
|
view = ViewByID(view, subviewID[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if view != nil {
|
if view != nil {
|
||||||
|
@ -875,7 +878,7 @@ func isUserSelect(view View) (bool, bool) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch GetSemantics(view, "") {
|
switch GetSemantics(view) {
|
||||||
case ParagraphSemantics, H1Semantics, H2Semantics, H3Semantics, H4Semantics, H5Semantics,
|
case ParagraphSemantics, H1Semantics, H2Semantics, H3Semantics, H4Semantics, H5Semantics,
|
||||||
H6Semantics, BlockquoteSemantics, CodeSemantics:
|
H6Semantics, BlockquoteSemantics, CodeSemantics:
|
||||||
return true, false
|
return true, false
|
||||||
|
|
|
@ -186,9 +186,9 @@ func (container *viewsContainerData) set(tag string, value any) bool {
|
||||||
// do nothing
|
// do nothing
|
||||||
|
|
||||||
case Disabled:
|
case Disabled:
|
||||||
oldDisabled := IsDisabled(container, "")
|
oldDisabled := IsDisabled(container)
|
||||||
if container.viewData.Set(Disabled, value) {
|
if container.viewData.Set(Disabled, value) {
|
||||||
disabled := IsDisabled(container, "")
|
disabled := IsDisabled(container)
|
||||||
if oldDisabled != disabled {
|
if oldDisabled != disabled {
|
||||||
if container.views != nil {
|
if container.views != nil {
|
||||||
for _, view := range container.views {
|
for _, view := range container.views {
|
||||||
|
|
Loading…
Reference in New Issue