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
|
||||
* Changed GetTransition functions
|
||||
* 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
|
||||
|
||||
|
|
306
README-ru.md
306
README-ru.md
|
@ -538,17 +538,17 @@ SizeUnit или имя константы (о константах ниже):
|
|||
|
||||
Это довольно громоздко поэтому для каждого свойства существует одноимённая глобальная функция с префиксом Get,
|
||||
которая выполняет данное приведение типа, получает значение константы, если необходимо, и
|
||||
возвращает его. Все функции данного типа имеют два аргумента: View и subviewID string.
|
||||
Первый аргумент это корневой View, второй - ID дочернего View. Если ID дочернего View передать как "",
|
||||
возвращает его. Все функции данного типа имеют два аргумента: View и subviewID ...string.
|
||||
Первый аргумент это корневой View, второй - ID дочернего View. Если ID дочернего View не задать или передать как "",
|
||||
то возвращается значение корневого View.
|
||||
Для свойств "width", "height", "min-width", "min-height", "max-width", "max-height" это функции:
|
||||
|
||||
func GetWidth(view View, subviewID string) SizeUnit
|
||||
func GetHeight(view View, subviewID string) SizeUnit
|
||||
func GetMinWidth(view View, subviewID string) SizeUnit
|
||||
func GetMinHeight(view View, subviewID string) SizeUnit
|
||||
func GetMaxWidth(view View, subviewID string) SizeUnit
|
||||
func GetMaxHeight(view View, subviewID string) SizeUnit
|
||||
func GetWidth(view View, subviewID ...string) SizeUnit
|
||||
func GetHeight(view View, subviewID ...string) SizeUnit
|
||||
func GetMinWidth(view View, subviewID ...string) SizeUnit
|
||||
func GetMinHeight(view View, subviewID ...string) SizeUnit
|
||||
func GetMaxWidth(view View, subviewID ...string) SizeUnit
|
||||
func GetMaxHeight(view View, subviewID ...string) SizeUnit
|
||||
|
||||
### Свойство "resize"
|
||||
|
||||
|
@ -567,7 +567,7 @@ SizeUnit или имя константы (о константах ниже):
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetResize(view View, subviewID string) int
|
||||
func GetResize(view View, subviewID ...string) int
|
||||
|
||||
### Свойства "margin" и "padding"
|
||||
|
||||
|
@ -608,8 +608,8 @@ BoundsProperty с помощью функции "Bounds(session Session) Bounds"
|
|||
|
||||
Для этого используется также могут использоваться глобальные функции:
|
||||
|
||||
func GetMargin(view View, subviewID string) Bounds
|
||||
func GetPadding(view View, subviewID string) Bounds
|
||||
func GetMargin(view View, subviewID ...string) Bounds
|
||||
func GetPadding(view View, subviewID ...string) Bounds
|
||||
|
||||
Текстовое представление BoundsProperty имеет следующий вид:
|
||||
|
||||
|
@ -743,7 +743,7 @@ BoundsProperty с помощью функции "Bounds(session Session) Bounds"
|
|||
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".
|
||||
В качестве значения эти свойства могут принимать только структуру ViewBorder и позволяю установить все
|
||||
|
@ -897,7 +897,7 @@ RadiusProperty имеет текстовое представление след
|
|||
RadiusProperty, а не структура BoxRadius. Получить структуру BoxRadius без дополнительных преобразований можно
|
||||
с помощью глобальной функции
|
||||
|
||||
func GetRadius(view View, subviewID string) BoxRadius
|
||||
func GetRadius(view View, subviewID ...string) BoxRadius
|
||||
|
||||
Вы также можете устанавливать отдельные радиусы использую функцию 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"
|
||||
|
||||
|
@ -1244,7 +1244,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetZIndex(view View, subviewID string) int
|
||||
func GetZIndex(view View, subviewID ...string) int
|
||||
|
||||
### Свойство "visibility"
|
||||
|
||||
|
@ -1258,7 +1258,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetVisibility(view View, subviewID string) int
|
||||
func GetVisibility(view View, subviewID ...string) int
|
||||
|
||||
### Свойства "filter" и "backdrop-filter"
|
||||
|
||||
|
@ -1287,8 +1287,8 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение текущего фильтра можно с помощью функций
|
||||
|
||||
func GetFilter(view View, subviewID string) ViewFilter
|
||||
func GetBackdropFilter(view View, subviewID string) ViewFilter
|
||||
func GetFilter(view View, subviewID ...string) ViewFilter
|
||||
func GetBackdropFilter(view View, subviewID ...string) ViewFilter
|
||||
|
||||
### Свойство "semantics"
|
||||
|
||||
|
@ -1335,7 +1335,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetFontName(view View, subviewID string) string
|
||||
func GetFontName(view View, subviewID ...string) string
|
||||
|
||||
#### Свойство "text-color"
|
||||
|
||||
|
@ -1343,7 +1343,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetTextColor(view View, subviewID string) Color
|
||||
func GetTextColor(view View, subviewID ...string) Color
|
||||
|
||||
#### Свойство "text-size"
|
||||
|
||||
|
@ -1351,7 +1351,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetTextSize(view View, subviewID string) SizeUnit
|
||||
func GetTextSize(view View, subviewID ...string) SizeUnit
|
||||
|
||||
#### Свойство "italic"
|
||||
|
||||
|
@ -1359,7 +1359,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func IsItalic(view View, subviewID string) bool
|
||||
func IsItalic(view View, subviewID ...string) bool
|
||||
|
||||
#### Свойство "small-caps"
|
||||
|
||||
|
@ -1367,7 +1367,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func IsSmallCaps(view View, subviewID string) bool
|
||||
func IsSmallCaps(view View, subviewID ...string) bool
|
||||
|
||||
#### Свойство "white-space"
|
||||
|
||||
|
@ -1442,9 +1442,9 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данных свойств можно с помощью функций
|
||||
|
||||
func IsStrikethrough(view View, subviewID string) bool
|
||||
func IsOverline(view View, subviewID string) bool
|
||||
func IsUnderline(view View, subviewID string) bool
|
||||
func IsStrikethrough(view View, subviewID ...string) bool
|
||||
func IsOverline(view View, subviewID ...string) bool
|
||||
func IsUnderline(view View, subviewID ...string) bool
|
||||
|
||||
#### Свойство "text-line-thickness"
|
||||
|
||||
|
@ -1453,7 +1453,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
GetTextLineThickness(view View, subviewID string) SizeUnit
|
||||
GetTextLineThickness(view View, subviewID ...string) SizeUnit
|
||||
|
||||
#### Свойство "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"
|
||||
|
||||
|
@ -1483,7 +1483,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetTextLineColor(view View, subviewID string) Color
|
||||
func GetTextLineColor(view View, subviewID ...string) Color
|
||||
|
||||
#### Свойство "text-weight"
|
||||
|
||||
|
@ -1505,7 +1505,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetTextWeight(view View, subviewID string) int
|
||||
func GetTextWeight(view View, subviewID ...string) int
|
||||
|
||||
#### Свойство "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"
|
||||
|
||||
|
@ -1557,7 +1557,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetTextIndent(view View, subviewID string) SizeUnit
|
||||
func GetTextIndent(view View, subviewID ...string) SizeUnit
|
||||
|
||||
#### Свойство "letter-spacing"
|
||||
|
||||
|
@ -1567,7 +1567,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetLetterSpacing(view View, subviewID string) SizeUnit
|
||||
func GetLetterSpacing(view View, subviewID ...string) SizeUnit
|
||||
|
||||
#### Свойство "word-spacing"
|
||||
|
||||
|
@ -1577,7 +1577,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetWordSpacing(view View, subviewID string) SizeUnit
|
||||
func GetWordSpacing(view View, subviewID ...string) SizeUnit
|
||||
|
||||
#### Свойство "line-height"
|
||||
|
||||
|
@ -1585,7 +1585,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetLineHeight(view View, subviewID string) SizeUnit
|
||||
func GetLineHeight(view View, subviewID ...string) SizeUnit
|
||||
|
||||
#### Свойство "text-transform"
|
||||
|
||||
|
@ -1600,7 +1600,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetTextTransform(view View, subviewID string) int
|
||||
func GetTextTransform(view View, subviewID ...string) int
|
||||
|
||||
#### Свойство "text-direction"
|
||||
|
||||
|
@ -1614,7 +1614,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetTextDirection(view View, subviewID string) int
|
||||
func GetTextDirection(view View, subviewID ...string) int
|
||||
|
||||
#### Свойство "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"
|
||||
|
||||
|
@ -1646,7 +1646,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetVerticalTextOrientation(view View, subviewID string) int
|
||||
func GetVerticalTextOrientation(view View, subviewID ...string) int
|
||||
|
||||
#### Свойство "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"
|
||||
|
||||
|
@ -1692,7 +1692,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данных свойств можно с помощью функции
|
||||
|
||||
func GetPerspectiveOrigin(view View, subviewID string) (SizeUnit, SizeUnit)
|
||||
func GetPerspectiveOrigin(view View, subviewID ...string) (SizeUnit, SizeUnit)
|
||||
|
||||
#### Свойство "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"
|
||||
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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"
|
||||
|
||||
|
@ -1759,7 +1759,7 @@ radius необходимо передать nil
|
|||
|
||||
Получить значение данных свойств, а также свойства "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"
|
||||
|
||||
|
@ -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 GetKeyUpListeners(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)
|
||||
|
||||
### События фокуса
|
||||
|
||||
|
@ -1831,8 +1831,8 @@ radius необходимо передать nil
|
|||
|
||||
Получить списки слушателей событий фокуса можно с помощью функций:
|
||||
|
||||
func GetFocusListeners(view View, subviewID string) []func(View)
|
||||
func GetLostFocusListeners(view View, subviewID string) []func(View)
|
||||
func GetFocusListeners(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 GetMouseUpListeners(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 GetMouseOutListeners(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 GetContextMenuListeners(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 GetMouseMoveListeners(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 GetClickListeners(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)
|
||||
|
||||
### События указателя
|
||||
|
||||
|
@ -1954,12 +1954,12 @@ radius необходимо передать nil
|
|||
|
||||
Получить списки слушателей событий указателя можно с помощью функций:
|
||||
|
||||
func GetPointerDownListeners(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 GetPointerCancelListeners(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 GetPointerDownListeners(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 GetPointerCancelListeners(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)
|
||||
|
||||
### Touch события
|
||||
|
||||
|
@ -2012,10 +2012,10 @@ radius необходимо передать nil
|
|||
|
||||
Получить списки слушателей событий касания можно с помощью функций:
|
||||
|
||||
func GetTouchStartListeners(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 GetTouchCancelListeners(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 GetTouchMoveListeners(view View, subviewID ...string) []func(View, TouchEvent)
|
||||
func GetTouchCancelListeners(view View, subviewID ...string) []func(View, TouchEvent)
|
||||
|
||||
### Событие "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:
|
||||
|
||||
|
@ -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 ScrollViewToStart(view View, subviewID string)
|
||||
func ScrollViewToEnd(view View, subviewID string)
|
||||
func ScrollViewToStart(view View, subviewID ...string)
|
||||
func ScrollViewToEnd(view View, subviewID ...string)
|
||||
|
||||
которые прокручивают view, соответственно, в заданную позицию, начало и конец
|
||||
|
||||
|
@ -2363,7 +2363,7 @@ ColumnLayout является контейнером, реализующим и
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetColumnCount(view View, subviewID string) int
|
||||
func GetColumnCount(view View, subviewID ...string) int
|
||||
|
||||
### Свойство "column-width"
|
||||
|
||||
|
@ -2375,7 +2375,7 @@ ColumnLayout является контейнером, реализующим и
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetColumnWidth(view View, subviewID string) SizeUnit
|
||||
func GetColumnWidth(view View, subviewID ...string) SizeUnit
|
||||
|
||||
### Свойство "column-gap"
|
||||
|
||||
|
@ -2383,7 +2383,7 @@ ColumnLayout является контейнером, реализующим и
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetColumnGap(view View, subviewID string) SizeUnit
|
||||
func GetColumnGap(view View, subviewID ...string) SizeUnit
|
||||
|
||||
### Свойство "column-separator"
|
||||
|
||||
|
@ -2431,7 +2431,7 @@ ViewBorder описана как
|
|||
а не структура ViewBorder. Получить структуру ViewBorders без дополнительных преобразований можно
|
||||
с помощью глобальной функции
|
||||
|
||||
func GetColumnSeparator(view View, subviewID string) ViewBorder
|
||||
func GetColumnSeparator(view View, subviewID ...string) ViewBorder
|
||||
|
||||
Вы также можете устанавливать отдельные атрибуты линии использую функцию Set интерфейса View.
|
||||
Для этого используются следующие свойства
|
||||
|
@ -2469,7 +2469,7 @@ ViewBorder описана как
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetAvoidBreak(view View, subviewID string) bool
|
||||
func GetAvoidBreak(view View, subviewID ...string) bool
|
||||
|
||||
## StackLayout
|
||||
|
||||
|
@ -2515,7 +2515,7 @@ StackLayout является контейнером, реализующим ин
|
|||
|
||||
func peek(layout rui.StackLayout) {
|
||||
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 nil
|
||||
|
@ -2584,7 +2584,7 @@ Cвойства "tab-close-button" может быть задано как дл
|
|||
Для программного переключания вкладок присвойте данному свойству значение индекса новой текущего View.
|
||||
Прочитать значение свойства "current" можно с помощью функции
|
||||
|
||||
func GetCurrent(view View, subviewID string) int
|
||||
func GetCurrent(view View, subviewID ...string) int
|
||||
|
||||
Также свойство "current" может быть использовано для отслеживания изменения текущего View:
|
||||
|
||||
|
@ -2660,11 +2660,11 @@ View, "false" - скрывает.
|
|||
|
||||
Получить значение свойства "expanded" можно с помощью функции
|
||||
|
||||
func IsDetailsExpanded(view View, subviewID string) bool
|
||||
func IsDetailsExpanded(view View, subviewID ...string) bool
|
||||
|
||||
а значение свойства "summary" можно получить с помощью функции
|
||||
|
||||
func GetDetailsSummary(view View, subviewID string) View
|
||||
func GetDetailsSummary(view View, subviewID ...string) View
|
||||
|
||||
## Resizable
|
||||
|
||||
|
@ -2708,7 +2708,7 @@ AllSides определено как
|
|||
Выводимый текст задается string свойством "text" (константа 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" и т.д.).
|
||||
Кроме них добавляется еще один "text-overflow" (константа TextOverflow). Он определяет как обрезается
|
||||
|
@ -2791,11 +2791,11 @@ NaturalSize() возвращает исходную ширину и высоту
|
|||
|
||||
Для получения значений свойств ImageView могут использоваться следующие функции:
|
||||
|
||||
func GetImageViewSource(view View, subviewID string) string
|
||||
func GetImageViewAltText(view View, subviewID string) string
|
||||
func GetImageViewFit(view View, subviewID string) int
|
||||
func GetImageViewVerticalAlign(view View, subviewID string) int
|
||||
func GetImageViewHorizontalAlign(view View, subviewID string) int
|
||||
func GetImageViewSource(view View, subviewID ...string) string
|
||||
func GetImageViewAltText(view View, subviewID ...string) string
|
||||
func GetImageViewFit(view View, subviewID ...string) int
|
||||
func GetImageViewVerticalAlign(view View, subviewID ...string) int
|
||||
func GetImageViewHorizontalAlign(view View, subviewID ...string) int
|
||||
|
||||
## EditView
|
||||
|
||||
|
@ -2851,15 +2851,15 @@ Cвойство "caret-color" может быть задано не только
|
|||
|
||||
Для получения значений свойств EditView могут использоваться следующие функции:
|
||||
|
||||
func GetText(view View, subviewID string) string
|
||||
func GetHint(view View, subviewID string) string
|
||||
func GetMaxLength(view View, subviewID string) int
|
||||
func GetEditViewType(view View, subviewID string) int
|
||||
func GetEditViewPattern(view View, subviewID string) string
|
||||
func IsReadOnly(view View, subviewID string) bool
|
||||
func IsEditViewWrap(view View, subviewID string) bool
|
||||
func IsSpellcheck(view View, subviewID string) bool
|
||||
func GetCaretColor(view View, subviewID string) Color
|
||||
func GetText(view View, subviewID ...string) string
|
||||
func GetHint(view View, subviewID ...string) string
|
||||
func GetMaxLength(view View, subviewID ...string) int
|
||||
func GetEditViewType(view View, subviewID ...string) int
|
||||
func GetEditViewPattern(view View, subviewID ...string) string
|
||||
func IsReadOnly(view View, subviewID ...string) bool
|
||||
func IsEditViewWrap(view View, subviewID ...string) bool
|
||||
func IsSpellcheck(view View, subviewID ...string) bool
|
||||
func GetCaretColor(view View, subviewID ...string) Color
|
||||
|
||||
Для отслеживания изменения текста используется событие "edit-text-changed" (константа
|
||||
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
|
||||
|
||||
|
@ -2903,7 +2903,7 @@ NumberPicker может работать в двух режимах: редак
|
|||
Все эти типы приводятся к float64. Соответственно функция Get всегда возвращает float64 значение.
|
||||
Прочитано значение свойства "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 GetNumberPickerStep(view View, subviewID string) float64
|
||||
func GetNumberPickerMinMax(view View, subviewID ...string) (float64, float64)
|
||||
func GetNumberPickerStep(view View, subviewID ...string) float64
|
||||
|
||||
Для отслеживания изменения вводимого значения используется событие "number-changed" (константа
|
||||
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
|
||||
|
||||
|
@ -2954,7 +2954,7 @@ NumberChangedEvent). Основной слушатель события име
|
|||
Текст преобразуется в time.Time. Соответственно функция Get всегда возвращает time.Time значение.
|
||||
Прочитано значение свойства "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 GetDatePickerMax(view View, subviewID string) (time.Time, bool)
|
||||
func GetDatePickerStep(view View, subviewID string) int
|
||||
func GetDatePickerMin(view View, subviewID ...string) (time.Time, bool)
|
||||
func GetDatePickerMax(view View, subviewID ...string) (time.Time, bool)
|
||||
func GetDatePickerStep(view View, subviewID ...string) int
|
||||
|
||||
Для отслеживания изменения вводимого значения используется событие "date-changed" (константа
|
||||
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
|
||||
|
||||
|
@ -3000,7 +3000,7 @@ DateChangedEvent). Основной слушатель события имее
|
|||
Текст преобразуется в time.Time. Соответственно функция Get всегда возвращает time.Time значение.
|
||||
Прочитано значение свойства "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 GetTimePickerMax(view View, subviewID string) (time.Time, bool)
|
||||
func GetTimePickerStep(view View, subviewID string) int
|
||||
func GetTimePickerMin(view View, subviewID ...string) (time.Time, bool)
|
||||
func GetTimePickerMax(view View, subviewID ...string) (time.Time, bool)
|
||||
func GetTimePickerStep(view View, subviewID ...string) int
|
||||
|
||||
Для отслеживания изменения вводимого значения используется событие "time-changed" (константа
|
||||
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
|
||||
|
||||
|
@ -3044,7 +3044,7 @@ TimeChangedEvent). Основной слушатель события имее
|
|||
|
||||
Прочитано значение свойства "color-picker-value" может быть также с помощью функции:
|
||||
|
||||
func GetColorPickerValue(view View, subviewID string) Color
|
||||
func GetColorPickerValue(view View, subviewID ...string) Color
|
||||
|
||||
Для отслеживания изменения выбранного цвета используется событие "color-changed" (константа
|
||||
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
|
||||
|
||||
|
@ -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))
|
||||
|
||||
Функции 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
|
||||
|
||||
|
@ -3157,7 +3157,7 @@ float32, float64, int, int8…int64, uint, uint8…uint64.
|
|||
Все эти типы данных преопразуются в []string и присваиваются свойству "items".
|
||||
Прочитать значение свойства "items" можно с помощью функции
|
||||
|
||||
func GetDropDownItems(view View, subviewID string) []string
|
||||
func GetDropDownItems(view View, subviewID ...string) []string
|
||||
|
||||
Можно запретить выбор отдельных пунктов. Для этого используется свойство "disabled-items" (константа DisabledItems).
|
||||
Данному свойству присваивается массив индексов запрещенных пунктов. Индекс может задаваться или числом или в виде текста
|
||||
|
@ -3172,12 +3172,12 @@ float32, float64, int, int8…int64, uint, uint8…uint64.
|
|||
Все эти типы данных преопразуются в []any и присваиваются свойству "disabled-items".
|
||||
Прочитать значение свойства "disabled-items" можно с помощью функции
|
||||
|
||||
func GetDropDownDisabledItems(view View, subviewID string) []int
|
||||
func GetDropDownDisabledItems(view View, subviewID ...string) []int
|
||||
|
||||
Выбранное значение определяется int свойством "current" (константа Current). Значение по умолчанию 0.
|
||||
Прочитать значение данного свойства можно с помощью функции
|
||||
|
||||
func GetCurrent(view View, subviewID string) int
|
||||
func GetCurrent(view View, subviewID ...string) int
|
||||
|
||||
Для отслеживания изменения свойства "current" используется событие "drop-down-event" (константа
|
||||
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
|
||||
|
||||
|
@ -3209,8 +3209,8 @@ int8…int64, uint, uint8…uint64
|
|||
|
||||
Прочитать значение данных свойств можно с помощью функций
|
||||
|
||||
func GetProgressBarMax(view View, subviewID string) float64
|
||||
func GetProgressBarValue(view View, subviewID string) float64
|
||||
func GetProgressBarMax(view View, subviewID ...string) float64
|
||||
func GetProgressBarValue(view View, subviewID ...string) float64
|
||||
|
||||
## Button
|
||||
|
||||
|
@ -3269,7 +3269,7 @@ View и string преобразуется в string, далее все string в
|
|||
с помощью функции NewViewListAdapter получается ListAdapter.
|
||||
|
||||
Если элементы списка меняются в ходе работы, то после изменения необходимо вызывать или функцию
|
||||
ReloadListViewData() интерфейса ListView или глобальную функцию ReloadListViewData(view View, subviewID string).
|
||||
ReloadListViewData() интерфейса ListView или глобальную функцию ReloadListViewData(view View, subviewID ...string).
|
||||
Данные функции обновляют отображаемые элементы списка.
|
||||
|
||||
### Свойство "orientation"
|
||||
|
@ -3291,7 +3291,7 @@ ReloadListViewData() интерфейса ListView или глобальную
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetListOrientation(view View, subviewID string) int
|
||||
func GetListOrientation(view View, subviewID ...string) int
|
||||
|
||||
### Свойство "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"
|
||||
|
||||
|
@ -3321,8 +3321,8 @@ ReloadListViewData() интерфейса ListView или глобальную
|
|||
|
||||
Получить значения данных свойств можно с помощью функций
|
||||
|
||||
func GetListItemWidth(view View, subviewID string) SizeUnit
|
||||
func GetListItemHeight(view View, subviewID string) SizeUnit
|
||||
func GetListItemWidth(view View, subviewID ...string) SizeUnit
|
||||
func GetListItemHeight(view View, subviewID ...string) SizeUnit
|
||||
|
||||
### Свойство "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"
|
||||
|
||||
|
@ -3354,7 +3354,7 @@ ReloadListViewData() интерфейса ListView или глобальную
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
GetListItemHorizontalAlign(view View, subviewID string) int
|
||||
GetListItemHorizontalAlign(view View, subviewID ...string) int
|
||||
|
||||
### Свойство "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"
|
||||
|
||||
|
@ -3393,13 +3393,13 @@ int свойство "current" (константа Current). Значение "c
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetListViewCheckbox(view View, subviewID string) int
|
||||
func GetListViewCheckbox(view View, subviewID ...string) int
|
||||
|
||||
Получить/установить список помеченных пунктов можно с помощью свойства "checked" (константа Checked).
|
||||
Данное свойство имеет тип []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" с помощью функций
|
||||
|
||||
func GetListViewCheckboxHorizontalAlign(view View, subviewID string) int
|
||||
func GetListViewCheckboxVerticalAlign(view View, subviewID string) int
|
||||
func GetListViewCheckboxHorizontalAlign(view View, subviewID ...string) int
|
||||
func GetListViewCheckboxVerticalAlign(view View, subviewID ...string) int
|
||||
|
||||
### События ListView
|
||||
|
||||
|
@ -3451,9 +3451,9 @@ CheckboxHorizontalAlign и CheckboxVerticalAlign)
|
|||
|
||||
Получить списки слушателей данных событий можно с помощью функций:
|
||||
|
||||
func GetListItemClickedListeners(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 GetListItemClickedListeners(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)
|
||||
|
||||
## TableView
|
||||
|
||||
|
@ -3650,7 +3650,7 @@ TableColumnStyle объявлена как
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetTableVerticalAlign(view View, subviewID string) int
|
||||
func GetTableVerticalAlign(view View, subviewID ...string) int
|
||||
|
||||
### Свойство "selection-mode"
|
||||
|
||||
|
@ -3672,7 +3672,7 @@ TableColumnStyle объявлена как
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetSelectionMode(view View, subviewID string) int
|
||||
func GetSelectionMode(view View, subviewID ...string) int
|
||||
|
||||
### Свойство "current"
|
||||
|
||||
|
@ -3690,7 +3690,7 @@ TableColumnStyle объявлена как
|
|||
|
||||
Получить значение данного свойства можно с помощью функции
|
||||
|
||||
func GetTableCurrent(view View, subviewID string) CellIndex
|
||||
func GetTableCurrent(view View, subviewID ...string) CellIndex
|
||||
|
||||
### Свойство "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 GetTransitionStartListeners(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 GetTransitionRunListeners(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 GetTransitionCancelListeners(view View, subviewID ...string) []func(View, string)
|
||||
|
||||
### Cценарий анимации
|
||||
|
||||
|
@ -4807,10 +4807,10 @@ Safari и Firefox.
|
|||
|
||||
Получить списки слушателей событий анимации с помощью функций:
|
||||
|
||||
func GetAnimationStartListeners(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 GetAnimationIterationListeners(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 GetAnimationCancelListeners(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,
|
||||
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.
|
||||
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:
|
||||
|
||||
func GetWidth(view View, subviewID string) SizeUnit
|
||||
func GetHeight(view View, subviewID string) SizeUnit
|
||||
func GetMinWidth(view View, subviewID string) SizeUnit
|
||||
func GetMinHeight(view View, subviewID string) SizeUnit
|
||||
func GetMaxWidth(view View, subviewID string) SizeUnit
|
||||
func GetMaxHeight(view View, subviewID string) SizeUnit
|
||||
func GetWidth(view View, subviewID ...string) SizeUnit
|
||||
func GetHeight(view View, subviewID ...string) SizeUnit
|
||||
func GetMinWidth(view View, subviewID ...string) SizeUnit
|
||||
func GetMinHeight(view View, subviewID ...string) SizeUnit
|
||||
func GetMaxWidth(view View, subviewID ...string) SizeUnit
|
||||
func GetMaxHeight(view View, subviewID ...string) SizeUnit
|
||||
|
||||
### "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
|
||||
|
||||
func GetResize(view View, subviewID string) int
|
||||
func GetResize(view View, subviewID ...string) int
|
||||
|
||||
### "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:
|
||||
|
||||
func GetMargin(view View, subviewID string) Bounds
|
||||
func GetPadding(view View, subviewID string) Bounds
|
||||
func GetMargin(view View, subviewID ...string) Bounds
|
||||
func GetPadding(view View, subviewID ...string) Bounds
|
||||
|
||||
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.
|
||||
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".
|
||||
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.
|
||||
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.
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
|
@ -1214,7 +1214,7 @@ Where 1 - View is fully opaque, 0 - fully transparent.
|
|||
|
||||
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
|
||||
|
||||
|
@ -1224,7 +1224,7 @@ higher z-indexes overlap elements with lower.
|
|||
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
|
||||
func GetVisibility(view View, subviewID string) int
|
||||
func GetVisibility(view View, subviewID ...string) int
|
||||
|
||||
### "filter" and "backdrop-filter" properties
|
||||
|
||||
|
@ -1274,8 +1274,8 @@ Example
|
|||
|
||||
You can get the value of the current filter using functions
|
||||
|
||||
func GetFilter(view View, subviewID string) ViewFilter
|
||||
func GetBackdropFilter(view View, subviewID string) ViewFilter
|
||||
func GetFilter(view View, subviewID ...string) ViewFilter
|
||||
func GetBackdropFilter(view View, subviewID ...string) ViewFilter
|
||||
|
||||
### "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
|
||||
|
||||
func GetFontName(view View, subviewID string) string
|
||||
func GetFontName(view View, subviewID ...string) string
|
||||
|
||||
#### "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
|
||||
|
||||
func GetTextColor(view View, subviewID string) Color
|
||||
func GetTextColor(view View, subviewID ...string) Color
|
||||
|
||||
#### "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
|
||||
|
||||
func GetTextSize(view View, subviewID string) SizeUnit
|
||||
func GetTextSize(view View, subviewID ...string) SizeUnit
|
||||
|
||||
#### "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
|
||||
|
||||
func IsItalic(view View, subviewID string) bool
|
||||
func IsItalic(view View, subviewID ...string) bool
|
||||
|
||||
#### "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
|
||||
|
||||
func IsSmallCaps(view View, subviewID string) bool
|
||||
func IsSmallCaps(view View, subviewID ...string) bool
|
||||
|
||||
#### "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
|
||||
|
||||
func IsStrikethrough(view View, subviewID string) bool
|
||||
func IsOverline(view View, subviewID string) bool
|
||||
func IsUnderline(view View, subviewID string) bool
|
||||
func IsStrikethrough(view View, subviewID ...string) bool
|
||||
func IsOverline(view View, subviewID ...string) bool
|
||||
func IsUnderline(view View, subviewID ...string) bool
|
||||
|
||||
#### "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
|
||||
|
||||
GetTextLineThickness(view View, subviewID string) SizeUnit
|
||||
GetTextLineThickness(view View, subviewID ...string) SizeUnit
|
||||
|
||||
#### "text-line-style" property
|
||||
|
||||
|
@ -1456,7 +1456,7 @@ Possible values are:
|
|||
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
|
||||
func GetTextLineColor(view View, subviewID string) Color
|
||||
func GetTextLineColor(view View, subviewID ...string) Color
|
||||
|
||||
#### "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
|
||||
|
||||
func GetTextWeight(view View, subviewID string) int
|
||||
func GetTextWeight(view View, subviewID ...string) int
|
||||
|
||||
#### "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
|
||||
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
|
||||
func GetTextAlign(view View, subviewID string) int
|
||||
func GetTextAlign(view View, subviewID ...string) int
|
||||
|
||||
#### "text-indent" property
|
||||
|
||||
|
@ -1539,7 +1539,7 @@ before the first line of text.
|
|||
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
|
||||
func GetLetterSpacing(view View, subviewID string) SizeUnit
|
||||
func GetLetterSpacing(view View, subviewID ...string) SizeUnit
|
||||
|
||||
#### "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
|
||||
|
||||
func GetWordSpacing(view View, subviewID string) SizeUnit
|
||||
func GetWordSpacing(view View, subviewID ...string) SizeUnit
|
||||
|
||||
#### "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
|
||||
|
||||
func GetLineHeight(view View, subviewID string) SizeUnit
|
||||
func GetLineHeight(view View, subviewID ...string) SizeUnit
|
||||
|
||||
#### "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
|
||||
|
||||
func GetTextTransform(view View, subviewID string) int
|
||||
func GetTextTransform(view View, subviewID ...string) int
|
||||
|
||||
#### "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
|
||||
|
||||
func GetTextDirection(view View, subviewID string) int
|
||||
func GetTextDirection(view View, subviewID ...string) int
|
||||
|
||||
#### "writing-mode" property
|
||||
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
|
||||
|
||||
func GetWritingMode(view View, subviewID string) int
|
||||
func GetWritingMode(view View, subviewID ...string) int
|
||||
|
||||
#### "vertical-text-orientation" property
|
||||
|
||||
|
@ -1627,7 +1627,7 @@ Possible values are:
|
|||
|
||||
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
|
||||
|
||||
|
@ -1643,7 +1643,7 @@ it will also apply to all child elements
|
|||
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
|
||||
func GetPerspective(view View, subviewID string) SizeUnit
|
||||
func GetPerspective(view View, subviewID ...string) SizeUnit
|
||||
|
||||
#### "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
|
||||
|
||||
func GetPerspectiveOrigin(view View, subviewID string) (SizeUnit, SizeUnit)
|
||||
func GetPerspectiveOrigin(view View, subviewID ...string) (SizeUnit, SizeUnit)
|
||||
|
||||
#### "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
|
||||
|
||||
func GetBackfaceVisible(view View, subviewID string) bool
|
||||
func GetBackfaceVisible(view View, subviewID ...string) bool
|
||||
|
||||
#### "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
|
||||
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
|
||||
func GetScale(view View, subviewID string) (float64, float64, float64)
|
||||
func GetScale(view View, subviewID ...string) (float64, float64, float64)
|
||||
|
||||
#### "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
|
||||
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
|
||||
func GetSkew(view View, subviewID string) (AngleUnit, AngleUnit)
|
||||
func GetSkew(view View, subviewID ...string) (AngleUnit, AngleUnit)
|
||||
|
||||
### 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:
|
||||
|
||||
func GetKeyDownListeners(view View, subviewID string) []func(View, KeyEvent)
|
||||
func GetKeyUpListeners(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)
|
||||
|
||||
### 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:
|
||||
|
||||
func GetFocusListeners(view View, subviewID string) []func(View)
|
||||
func GetLostFocusListeners(view View, subviewID string) []func(View)
|
||||
func GetFocusListeners(view View, subviewID ...string) []func(View)
|
||||
func GetLostFocusListeners(view View, subviewID ...string) []func(View)
|
||||
|
||||
### 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:
|
||||
|
||||
func GetMouseDownListeners(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 GetMouseOverListeners(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 GetDoubleClickListeners(view View, subviewID string) []func(View, MouseEvent)
|
||||
func GetContextMenuListeners(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 GetMouseMoveListeners(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 GetClickListeners(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)
|
||||
|
||||
### 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:
|
||||
|
||||
func GetPointerDownListeners(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 GetPointerCancelListeners(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 GetPointerDownListeners(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 GetPointerCancelListeners(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)
|
||||
|
||||
### 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:
|
||||
|
||||
func GetTouchStartListeners(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 GetTouchCancelListeners(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 GetTouchMoveListeners(view View, subviewID ...string) []func(View, TouchEvent)
|
||||
func GetTouchCancelListeners(view View, subviewID ...string) []func(View, TouchEvent)
|
||||
|
||||
### 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:
|
||||
|
||||
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:
|
||||
|
||||
|
@ -2031,7 +2031,7 @@ The current position and dimensions of the visible part of the View can be obtai
|
|||
|
||||
or global function
|
||||
|
||||
func GetViewFrame(view View, subviewID string) Frame
|
||||
func GetViewFrame(view View, subviewID ...string) Frame
|
||||
|
||||
### Scroll event
|
||||
|
||||
|
@ -2062,13 +2062,13 @@ The current position of the viewable area and the overall dimensions of the View
|
|||
|
||||
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
|
||||
|
||||
func ScrollViewTo(view View, subviewID string, x, y float64)
|
||||
func ScrollViewToStart(view View, subviewID string)
|
||||
func ScrollViewToEnd(view View, subviewID string)
|
||||
func ScrollViewToStart(view View, subviewID ...string)
|
||||
func ScrollViewToEnd(view View, subviewID ...string)
|
||||
|
||||
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
|
||||
|
||||
func GetColumnCount(view View, subviewID string) int
|
||||
func GetColumnCount(view View, subviewID ...string) int
|
||||
|
||||
### "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
|
||||
|
||||
func GetColumnWidth(view View, subviewID string) SizeUnit
|
||||
func GetColumnWidth(view View, subviewID ...string) SizeUnit
|
||||
|
||||
### "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
|
||||
|
||||
func GetColumnGap(view View, subviewID string) SizeUnit
|
||||
func GetColumnGap(view View, subviewID ...string) SizeUnit
|
||||
|
||||
### "column-separator" property
|
||||
|
||||
|
@ -2409,7 +2409,7 @@ not the ViewBorder structure.
|
|||
|
||||
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.
|
||||
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
|
||||
|
||||
func GetAvoidBreak(view View, subviewID string) bool
|
||||
func GetAvoidBreak(view View, subviewID ...string) bool
|
||||
|
||||
## StackLayout
|
||||
|
||||
|
@ -2493,7 +2493,7 @@ Example
|
|||
|
||||
func peek(layout rui.StackLayout) {
|
||||
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 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.
|
||||
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:
|
||||
|
||||
|
@ -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
|
||||
|
||||
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
|
||||
|
||||
func GetDetailsSummary(view View, subviewID string) View
|
||||
func GetDetailsSummary(view View, subviewID ...string) View
|
||||
|
||||
## 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).
|
||||
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.).
|
||||
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:
|
||||
|
||||
func GetImageViewSource(view View, subviewID string) string
|
||||
func GetImageViewAltText(view View, subviewID string) string
|
||||
func GetImageViewFit(view View, subviewID string) int
|
||||
func GetImageViewVerticalAlign(view View, subviewID string) int
|
||||
func GetImageViewHorizontalAlign(view View, subviewID string) int
|
||||
func GetImageViewSource(view View, subviewID ...string) string
|
||||
func GetImageViewAltText(view View, subviewID ...string) string
|
||||
func GetImageViewFit(view View, subviewID ...string) int
|
||||
func GetImageViewVerticalAlign(view View, subviewID ...string) int
|
||||
func GetImageViewHorizontalAlign(view View, subviewID ...string) int
|
||||
|
||||
## 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:
|
||||
|
||||
func GetText(view View, subviewID string) string
|
||||
func GetHint(view View, subviewID string) string
|
||||
func GetMaxLength(view View, subviewID string) int
|
||||
func GetEditViewType(view View, subviewID string) int
|
||||
func GetEditViewPattern(view View, subviewID string) string
|
||||
func IsReadOnly(view View, subviewID string) bool
|
||||
func IsEditViewWrap(view View, subviewID string) bool
|
||||
func IsSpellcheck(view View, subviewID string) bool
|
||||
func GetCaretColor(view View, subviewID string) Color
|
||||
func GetText(view View, subviewID ...string) string
|
||||
func GetHint(view View, subviewID ...string) string
|
||||
func GetMaxLength(view View, subviewID ...string) int
|
||||
func GetEditViewType(view View, subviewID ...string) int
|
||||
func GetEditViewPattern(view View, subviewID ...string) string
|
||||
func IsReadOnly(view View, subviewID ...string) bool
|
||||
func IsEditViewWrap(view View, subviewID ...string) bool
|
||||
func IsSpellcheck(view View, subviewID ...string) bool
|
||||
func GetCaretColor(view View, subviewID ...string) Color
|
||||
|
||||
The "edit-text-changed" event (EditTextChangedEvent constant) is used to track changes to the text.
|
||||
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
|
||||
|
||||
func GetTextChangedListeners(view View, subviewID string) []func(EditView, string)
|
||||
func GetTextChangedListeners(view View, subviewID ...string) []func(EditView, string)
|
||||
|
||||
## 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.
|
||||
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:
|
||||
|
||||
|
@ -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:
|
||||
|
||||
func GetNumberPickerMinMax(view View, subviewID string) (float64, float64)
|
||||
func GetNumberPickerStep(view View, subviewID string) float64
|
||||
func GetNumberPickerMinMax(view View, subviewID ...string) (float64, 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 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
|
||||
|
||||
func GetNumberChangedListeners(view View, subviewID string) []func(NumberPicker, float64)
|
||||
func GetNumberChangedListeners(view View, subviewID ...string) []func(NumberPicker, float64)
|
||||
|
||||
## 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 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:
|
||||
|
||||
|
@ -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:
|
||||
|
||||
func GetDatePickerMin(view View, subviewID string) (time.Time, bool)
|
||||
func GetDatePickerMax(view View, subviewID string) (time.Time, bool)
|
||||
func GetDatePickerStep(view View, subviewID string) int
|
||||
func GetDatePickerMin(view View, subviewID ...string) (time.Time, bool)
|
||||
func GetDatePickerMax(view View, subviewID ...string) (time.Time, bool)
|
||||
func GetDatePickerStep(view View, subviewID ...string) int
|
||||
|
||||
The "date-changed" event (DateChangedEvent constant) is used to track the change in the entered value.
|
||||
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
|
||||
|
||||
func GetDateChangedListeners(view View, subviewID string) []func(DatePicker, time.Time)
|
||||
func GetDateChangedListeners(view View, subviewID ...string) []func(DatePicker, time.Time)
|
||||
|
||||
## 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 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:
|
||||
|
||||
|
@ -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:
|
||||
|
||||
func GetTimePickerMin(view View, subviewID string) (time.Time, bool)
|
||||
func GetTimePickerMax(view View, subviewID string) (time.Time, bool)
|
||||
func GetTimePickerStep(view View, subviewID string) int
|
||||
func GetTimePickerMin(view View, subviewID ...string) (time.Time, bool)
|
||||
func GetTimePickerMax(view View, subviewID ...string) (time.Time, bool)
|
||||
func GetTimePickerStep(view View, subviewID ...string) int
|
||||
|
||||
The "time-changed" event (TimeChangedEvent constant) is used to track the change in the entered value.
|
||||
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
|
||||
|
||||
func GetTimeChangedListeners(view View, subviewID string) []func(TimePicker, time.Time)
|
||||
func GetTimeChangedListeners(view View, subviewID ...string) []func(TimePicker, time.Time)
|
||||
|
||||
## 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:
|
||||
|
||||
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 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
|
||||
|
||||
func GetColorChangedListeners(view View, subviewID string) []func(ColorPicker, Color)
|
||||
func GetColorChangedListeners(view View, subviewID ...string) []func(ColorPicker, Color)
|
||||
|
||||
## 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
|
||||
|
||||
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))
|
||||
|
||||
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
|
||||
|
||||
func GetFileSelectedListeners(view View, subviewID string) []func(FilePicker, []FileInfo)
|
||||
func GetFileSelectedListeners(view View, subviewID ...string) []func(FilePicker, []FileInfo)
|
||||
|
||||
## 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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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
|
||||
|
||||
func GetDropDownListeners(view View, subviewID string) []func(DropDownList, int)
|
||||
func GetDropDownListeners(view View, subviewID ...string) []func(DropDownList, int)
|
||||
|
||||
## 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
|
||||
|
||||
func GetProgressBarMax(view View, subviewID string) float64
|
||||
func GetProgressBarValue(view View, subviewID string) float64
|
||||
func GetProgressBarMax(view View, subviewID ...string) float64
|
||||
func GetProgressBarValue(view View, subviewID ...string) float64
|
||||
|
||||
## 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.
|
||||
|
||||
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.
|
||||
|
||||
### "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
|
||||
|
||||
func GetListOrientation(view View, subviewID string) int
|
||||
func GetListOrientation(view View, subviewID ...string) int
|
||||
|
||||
### "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
|
||||
|
||||
func GetListWrap(view View, subviewID string) int
|
||||
func GetListWrap(view View, subviewID ...string) int
|
||||
|
||||
### "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
|
||||
|
||||
func GetListItemWidth(view View, subviewID string) SizeUnit
|
||||
func GetListItemHeight(view View, subviewID string) SizeUnit
|
||||
func GetListItemWidth(view View, subviewID ...string) SizeUnit
|
||||
func GetListItemHeight(view View, subviewID ...string) SizeUnit
|
||||
|
||||
### "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
|
||||
|
||||
func GetListItemVerticalAlign(view View, subviewID string) int
|
||||
func GetListItemVerticalAlign(view View, subviewID ...string) int
|
||||
|
||||
### "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
|
||||
|
||||
GetListItemHorizontalAlign(view View, subviewID string) int
|
||||
GetListItemHorizontalAlign(view View, subviewID ...string) int
|
||||
|
||||
### "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
|
||||
|
||||
func GetCurrent(view View, subviewID string) int
|
||||
func GetCurrent(view View, subviewID ...string) int
|
||||
|
||||
### "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
|
||||
|
||||
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).
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
|
||||
func GetListViewCheckboxHorizontalAlign(view View, subviewID string) int
|
||||
func GetListViewCheckboxVerticalAlign(view View, subviewID string) int
|
||||
func GetListViewCheckboxHorizontalAlign(view View, subviewID ...string) int
|
||||
func GetListViewCheckboxVerticalAlign(view View, subviewID ...string) int
|
||||
|
||||
### 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:
|
||||
|
||||
func GetListItemClickedListeners(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 GetListItemClickedListeners(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)
|
||||
|
||||
## TableView
|
||||
|
||||
|
@ -3617,7 +3617,7 @@ For horizontal alignment, use the "text-align" property
|
|||
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
|
||||
func GetSelectionMode(view View, subviewID string) int
|
||||
func GetSelectionMode(view View, subviewID ...string) int
|
||||
|
||||
### "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
|
||||
|
||||
func GetTableCurrent(view View, subviewID string) CellIndex
|
||||
func GetTableCurrent(view View, subviewID ...string) CellIndex
|
||||
|
||||
### "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
|
||||
|
||||
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
|
||||
|
||||
|
@ -4640,10 +4640,10 @@ You can also use a listener in the following format:
|
|||
|
||||
Get lists of listeners for transition animation events using functions:
|
||||
|
||||
func GetTransitionRunListeners(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 GetTransitionCancelListeners(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 GetTransitionEndListeners(view View, subviewID ...string) []func(View, string)
|
||||
func GetTransitionCancelListeners(view View, subviewID ...string) []func(View, string)
|
||||
|
||||
### Animation script
|
||||
|
||||
|
@ -4772,10 +4772,10 @@ You can also use a listener in the following format:
|
|||
|
||||
Get lists of animation event listeners using functions:
|
||||
|
||||
func GetAnimationStartListeners(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 GetAnimationIterationListeners(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 GetAnimationCancelListeners(view View, subviewID ...string) []func(View, string)
|
||||
func GetAnimationIterationListeners(view View, subviewID ...string) []func(View, string)
|
||||
|
||||
## 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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func IsAnimationPaused(view View, subviewID string) bool {
|
||||
// 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 {
|
||||
return boolStyledProperty(view, subviewID, AnimationPaused, false)
|
||||
}
|
||||
|
||||
// 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
|
||||
func GetTransitions(view View, subviewID string) map[string]Animation {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
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.
|
||||
// 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 {
|
||||
if 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.
|
||||
// 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 {
|
||||
if tag != "" {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then transitions of the first argument (view) is returned
|
||||
func GetAnimation(view View, subviewID string) []Animation {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
@ -164,10 +164,10 @@ func animationEventsHtml(view View, buffer *strings.Builder) {
|
|||
}
|
||||
|
||||
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 := ""
|
||||
if name, ok := data.PropertyValue("name"); ok {
|
||||
for _, animation := range GetAnimation(view, "") {
|
||||
for _, animation := range GetAnimation(view) {
|
||||
if name == animation.animationName() {
|
||||
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.
|
||||
// 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.
|
||||
func GetTransitionRunListeners(view View, subviewID string) []func(View, string) {
|
||||
// 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) {
|
||||
return getEventListeners[View, string](view, subviewID, TransitionRunEvent)
|
||||
}
|
||||
|
||||
// GetTransitionStartListeners returns the "transition-start-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.
|
||||
func GetTransitionStartListeners(view View, subviewID string) []func(View, string) {
|
||||
// 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) {
|
||||
return getEventListeners[View, string](view, subviewID, TransitionStartEvent)
|
||||
}
|
||||
|
||||
// GetTransitionEndListeners returns the "transition-end-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.
|
||||
func GetTransitionEndListeners(view View, subviewID string) []func(View, string) {
|
||||
// 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) {
|
||||
return getEventListeners[View, string](view, subviewID, TransitionEndEvent)
|
||||
}
|
||||
|
||||
// GetTransitionCancelListeners returns the "transition-cancel-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.
|
||||
func GetTransitionCancelListeners(view View, subviewID string) []func(View, string) {
|
||||
// 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) {
|
||||
return getEventListeners[View, string](view, subviewID, TransitionCancelEvent)
|
||||
}
|
||||
|
||||
// GetAnimationStartListeners returns the "animation-start-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.
|
||||
func GetAnimationStartListeners(view View, subviewID string) []func(View, string) {
|
||||
// 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) {
|
||||
return getEventListeners[View, string](view, subviewID, AnimationStartEvent)
|
||||
}
|
||||
|
||||
// GetAnimationEndListeners returns the "animation-end-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.
|
||||
func GetAnimationEndListeners(view View, subviewID string) []func(View, string) {
|
||||
// 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) {
|
||||
return getEventListeners[View, string](view, subviewID, AnimationEndEvent)
|
||||
}
|
||||
|
||||
// GetAnimationCancelListeners returns the "animation-cancel-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.
|
||||
func GetAnimationCancelListeners(view View, subviewID string) []func(View, string) {
|
||||
// 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) {
|
||||
return getEventListeners[View, string](view, subviewID, AnimationCancelEvent)
|
||||
}
|
||||
|
||||
// GetAnimationIterationListeners returns the "animation-iteration-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.
|
||||
func GetAnimationIterationListeners(view View, subviewID string) []func(View, string) {
|
||||
// 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) {
|
||||
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) {
|
||||
view.Set(Checked, !IsCheckboxChecked(view, ""))
|
||||
view.Set(Checked, !IsCheckboxChecked(view))
|
||||
BlurView(view)
|
||||
}
|
||||
|
||||
func checkboxKeyListener(view View, event KeyEvent) {
|
||||
switch event.Code {
|
||||
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) {
|
||||
session := button.Session()
|
||||
vAlign := GetCheckboxVerticalAlign(button, "")
|
||||
hAlign := GetCheckboxHorizontalAlign(button, "")
|
||||
vAlign := GetCheckboxVerticalAlign(button)
|
||||
hAlign := GetCheckboxHorizontalAlign(button)
|
||||
switch hAlign {
|
||||
case CenterAlign:
|
||||
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) {
|
||||
vAlign := GetCheckboxVerticalAlign(button, "")
|
||||
hAlign := GetCheckboxHorizontalAlign(button, "")
|
||||
vAlign := GetCheckboxVerticalAlign(button)
|
||||
hAlign := GetCheckboxHorizontalAlign(button)
|
||||
|
||||
buffer.WriteString(`<div id="`)
|
||||
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) {
|
||||
|
||||
vCheckboxAlign, hCheckboxAlign := button.htmlCheckbox(buffer, IsCheckboxChecked(button, ""))
|
||||
vCheckboxAlign, hCheckboxAlign := button.htmlCheckbox(buffer, IsCheckboxChecked(button))
|
||||
|
||||
buffer.WriteString(`<div id="`)
|
||||
buffer.WriteString(button.htmlID())
|
||||
|
@ -322,7 +322,7 @@ func (button *checkboxData) htmlSubviews(self View, buffer *strings.Builder) {
|
|||
}
|
||||
|
||||
func (button *checkboxData) cssHorizontalAlign() string {
|
||||
align := GetHorizontalAlign(button, "")
|
||||
align := GetHorizontalAlign(button)
|
||||
values := enumProperties[CellHorizontalAlign].cssValues
|
||||
if align >= 0 && align < len(values) {
|
||||
return values[align]
|
||||
|
@ -331,7 +331,7 @@ func (button *checkboxData) cssHorizontalAlign() string {
|
|||
}
|
||||
|
||||
func (button *checkboxData) cssVerticalAlign() string {
|
||||
align := GetVerticalAlign(button, "")
|
||||
align := GetVerticalAlign(button)
|
||||
values := enumProperties[CellVerticalAlign].cssValues
|
||||
if align >= 0 && align < len(values) {
|
||||
return values[align]
|
||||
|
@ -340,29 +340,19 @@ func (button *checkboxData) cssVerticalAlign() string {
|
|||
}
|
||||
|
||||
// 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.
|
||||
func IsCheckboxChecked(view View, subviewID string) bool {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
}
|
||||
if view != nil {
|
||||
if checked := view.Get(Checked); checked != nil {
|
||||
if b, ok := checked.(bool); ok {
|
||||
return b
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
// 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 {
|
||||
return boolStyledProperty(view, subviewID, Checked, false)
|
||||
}
|
||||
|
||||
// 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
|
||||
func GetCheckboxVerticalAlign(view View, subviewID string) int {
|
||||
// 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 {
|
||||
return enumStyledProperty(view, subviewID, CheckboxVerticalAlign, LeftAlign, false)
|
||||
}
|
||||
|
||||
// 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
|
||||
func GetCheckboxHorizontalAlign(view View, subviewID string) int {
|
||||
// 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 {
|
||||
return enumStyledProperty(view, subviewID, CheckboxHorizontalAlign, TopAlign, false)
|
||||
}
|
||||
|
|
|
@ -66,7 +66,7 @@ func (picker *colorPickerData) remove(tag string) {
|
|||
}
|
||||
|
||||
case ColorPickerValue:
|
||||
oldColor := GetColorPickerValue(picker, "")
|
||||
oldColor := GetColorPickerValue(picker)
|
||||
delete(picker.properties, ColorPickerValue)
|
||||
picker.colorChanged(oldColor)
|
||||
|
||||
|
@ -99,7 +99,7 @@ func (picker *colorPickerData) set(tag string, value any) bool {
|
|||
return true
|
||||
|
||||
case ColorPickerValue:
|
||||
oldColor := GetColorPickerValue(picker, "")
|
||||
oldColor := GetColorPickerValue(picker)
|
||||
if picker.setColorProperty(ColorPickerValue, value) {
|
||||
picker.colorChanged(oldColor)
|
||||
return true
|
||||
|
@ -112,7 +112,7 @@ func (picker *colorPickerData) set(tag string, value any) bool {
|
|||
}
|
||||
|
||||
func (picker *colorPickerData) colorChanged(oldColor Color) {
|
||||
if newColor := GetColorPickerValue(picker, ""); oldColor != newColor {
|
||||
if newColor := GetColorPickerValue(picker); oldColor != newColor {
|
||||
if picker.created {
|
||||
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)
|
||||
|
||||
buffer.WriteString(` type="color" value="`)
|
||||
buffer.WriteString(GetColorPickerValue(picker, "").rgbString())
|
||||
buffer.WriteString(GetColorPickerValue(picker).rgbString())
|
||||
buffer.WriteByte('"')
|
||||
|
||||
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) {
|
||||
if IsDisabled(self, "") {
|
||||
if IsDisabled(self) {
|
||||
buffer.WriteString(` disabled`)
|
||||
}
|
||||
picker.viewData.htmlDisabledProperties(self, buffer)
|
||||
|
@ -165,7 +165,7 @@ func (picker *colorPickerData) handleCommand(self View, command string, data Dat
|
|||
switch command {
|
||||
case "textChanged":
|
||||
if text, ok := data.PropertyValue("text"); ok {
|
||||
oldColor := GetColorPickerValue(picker, "")
|
||||
oldColor := GetColorPickerValue(picker)
|
||||
if color, ok := StringToColor(text); ok {
|
||||
picker.properties[ColorPickerValue] = color
|
||||
if color != oldColor {
|
||||
|
@ -182,10 +182,10 @@ func (picker *colorPickerData) handleCommand(self View, command string, data Dat
|
|||
}
|
||||
|
||||
// GetColorPickerValue returns the value of ColorPicker subview.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetColorPickerValue(view View, subviewID string) Color {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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.
|
||||
// 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.
|
||||
func GetColorChangedListeners(view View, subviewID string) []func(ColorPicker, Color) {
|
||||
// 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) {
|
||||
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
|
||||
// ColumnLayout is break. If the return value is 0 then the number of columns is calculated
|
||||
// based on the "column-width" property.
|
||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
||||
func GetColumnCount(view View, subviewID string) int {
|
||||
// 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 {
|
||||
return intStyledProperty(view, subviewID, ColumnCount, 0)
|
||||
}
|
||||
|
||||
// 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
|
||||
func GetColumnWidth(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, ColumnWidth, false)
|
||||
}
|
||||
|
||||
// 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
|
||||
func GetColumnGap(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, ColumnGap, false)
|
||||
}
|
||||
|
||||
// GetColumnSeparator returns ViewBorder struct which specifies the line drawn between
|
||||
// columns in a multi-column ColumnLayout.
|
||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
||||
func GetColumnSeparator(view View, subviewID string) ViewBorder {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
func getColumnSeparator(view View, subviewID []string) ViewBorder {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
|
@ -178,27 +175,34 @@ func GetColumnSeparator(view View, subviewID string) 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
|
||||
// columns in a multi-column layout.
|
||||
// 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
|
||||
func GetColumnSeparatorStyle(view View, subviewID string) int {
|
||||
border := GetColumnSeparator(view, subviewID)
|
||||
// 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 {
|
||||
border := getColumnSeparator(view, subviewID)
|
||||
return border.Style
|
||||
}
|
||||
|
||||
// ColumnSeparatorWidth returns SizeUnit value which specifies the width of the line drawn between
|
||||
// columns in a multi-column layout.
|
||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
||||
func GetColumnSeparatorWidth(view View, subviewID string) SizeUnit {
|
||||
border := GetColumnSeparator(view, subviewID)
|
||||
// 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 {
|
||||
border := getColumnSeparator(view, subviewID)
|
||||
return border.Width
|
||||
}
|
||||
|
||||
// ColumnSeparatorColor returns Color value which specifies the color of the line drawn between
|
||||
// columns in a multi-column layout.
|
||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
||||
func GetColumnSeparatorColor(view View, subviewID string) Color {
|
||||
border := GetColumnSeparator(view, subviewID)
|
||||
// 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 {
|
||||
border := getColumnSeparator(view, subviewID)
|
||||
return border.Color
|
||||
}
|
||||
|
|
|
@ -96,7 +96,7 @@ func (picker *datePickerData) remove(tag string) {
|
|||
case DatePickerValue:
|
||||
if _, ok := picker.properties[DatePickerValue]; ok {
|
||||
delete(picker.properties, DatePickerValue)
|
||||
date := GetDatePickerValue(picker, "")
|
||||
date := GetDatePickerValue(picker)
|
||||
if picker.created {
|
||||
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:
|
||||
oldStep := GetDatePickerStep(picker, "")
|
||||
oldStep := GetDatePickerStep(picker)
|
||||
if picker.setIntProperty(DatePickerStep, value) {
|
||||
if step := GetDatePickerStep(picker, ""); oldStep != step {
|
||||
if step := GetDatePickerStep(picker); oldStep != step {
|
||||
if picker.created {
|
||||
if step > 0 {
|
||||
updateProperty(picker.htmlID(), Step, strconv.Itoa(step), picker.session)
|
||||
|
@ -220,7 +220,7 @@ func (picker *datePickerData) set(tag string, value any) bool {
|
|||
}
|
||||
|
||||
case DatePickerValue:
|
||||
oldDate := GetDatePickerValue(picker, "")
|
||||
oldDate := GetDatePickerValue(picker)
|
||||
if date, ok := setTimeValue(DatePickerValue); ok {
|
||||
if date != oldDate {
|
||||
if picker.created {
|
||||
|
@ -294,7 +294,7 @@ func (picker *datePickerData) htmlProperties(self View, buffer *strings.Builder)
|
|||
}
|
||||
|
||||
buffer.WriteString(` value="`)
|
||||
buffer.WriteString(GetDatePickerValue(picker, "").Format(dateFormat))
|
||||
buffer.WriteString(GetDatePickerValue(picker).Format(dateFormat))
|
||||
buffer.WriteByte('"')
|
||||
|
||||
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) {
|
||||
if IsDisabled(self, "") {
|
||||
if IsDisabled(self) {
|
||||
buffer.WriteString(` disabled`)
|
||||
}
|
||||
picker.viewData.htmlDisabledProperties(self, buffer)
|
||||
|
@ -315,7 +315,7 @@ func (picker *datePickerData) handleCommand(self View, command string, data Data
|
|||
case "textChanged":
|
||||
if text, ok := data.PropertyValue("text"); ok {
|
||||
if value, err := time.Parse(dateFormat, text); err == nil {
|
||||
oldValue := GetDatePickerValue(picker, "")
|
||||
oldValue := GetDatePickerValue(picker)
|
||||
picker.properties[DatePickerValue] = value
|
||||
if value != oldValue {
|
||||
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,
|
||||
// "false" as the second value otherwise.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetDatePickerMin(view View, subviewID string) (time.Time, bool) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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,
|
||||
// "false" as the second value otherwise.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetDatePickerMax(view View, subviewID string) (time.Time, bool) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetDatePickerStep(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.
|
||||
func GetDatePickerStep(view View, subviewID ...string) int {
|
||||
return intStyledProperty(view, subviewID, DatePickerStep, 0)
|
||||
}
|
||||
|
||||
// GetDatePickerValue returns the date of DatePicker subview.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetDatePickerValue(view View, subviewID string) time.Time {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view == nil {
|
||||
return time.Now()
|
||||
|
@ -410,7 +410,7 @@ func GetDatePickerValue(view View, subviewID string) time.Time {
|
|||
|
||||
// GetDateChangedListeners returns the DateChangedListener list of an DatePicker subview.
|
||||
// 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.
|
||||
func GetDateChangedListeners(view View, subviewID string) []func(DatePicker, time.Time) {
|
||||
// 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) {
|
||||
return getEventListeners[DatePicker, time.Time](view, subviewID, DateChangedEvent)
|
||||
}
|
||||
|
|
|
@ -110,7 +110,7 @@ func (detailsView *detailsViewData) set(tag string, value any) bool {
|
|||
return false
|
||||
}
|
||||
if detailsView.created {
|
||||
if IsDetailsExpanded(detailsView, "") {
|
||||
if IsDetailsExpanded(detailsView) {
|
||||
updateProperty(detailsView.htmlID(), "open", "", detailsView.Session())
|
||||
} else {
|
||||
removeProperty(detailsView.htmlID(), "open", detailsView.Session())
|
||||
|
@ -148,7 +148,7 @@ func (detailsView *detailsViewData) htmlTag() string {
|
|||
func (detailsView *detailsViewData) htmlProperties(self View, buffer *strings.Builder) {
|
||||
detailsView.viewsContainerData.htmlProperties(self, buffer)
|
||||
buffer.WriteString(` ontoggle="detailsEvent(this)"`)
|
||||
if IsDetailsExpanded(detailsView, "") {
|
||||
if IsDetailsExpanded(detailsView) {
|
||||
buffer.WriteString(` open`)
|
||||
}
|
||||
}
|
||||
|
@ -157,7 +157,7 @@ func (detailsView *detailsViewData) htmlSubviews(self View, buffer *strings.Buil
|
|||
if value, ok := detailsView.properties[Summary]; ok {
|
||||
switch value := value.(type) {
|
||||
case string:
|
||||
if !GetNotTranslate(detailsView, "") {
|
||||
if !GetNotTranslate(detailsView) {
|
||||
value, _ = detailsView.session.GetString(value)
|
||||
}
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetDetailsSummary(view View, subviewID string) View {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != 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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func IsDetailsExpanded(view View, subviewID string) bool {
|
||||
// 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 {
|
||||
return boolStyledProperty(view, subviewID, Expanded, false)
|
||||
}
|
||||
|
|
|
@ -80,7 +80,7 @@ func (list *dropDownListData) remove(tag string) {
|
|||
}
|
||||
|
||||
case Current:
|
||||
oldCurrent := GetCurrent(list, "")
|
||||
oldCurrent := GetCurrent(list)
|
||||
delete(list.properties, Current)
|
||||
if oldCurrent != 0 {
|
||||
if list.created {
|
||||
|
@ -125,12 +125,12 @@ func (list *dropDownListData) set(tag string, value any) bool {
|
|||
return true
|
||||
|
||||
case Current:
|
||||
oldCurrent := GetCurrent(list, "")
|
||||
oldCurrent := GetCurrent(list)
|
||||
if !list.setIntProperty(Current, value) {
|
||||
return false
|
||||
}
|
||||
|
||||
if current := GetCurrent(list, ""); oldCurrent != current {
|
||||
if current := GetCurrent(list); oldCurrent != current {
|
||||
if list.created {
|
||||
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) {
|
||||
if list.items != nil {
|
||||
current := GetCurrent(list, "")
|
||||
notTranslate := GetNotTranslate(list, "")
|
||||
disabledItems := GetDropDownDisabledItems(list, "")
|
||||
current := GetCurrent(list)
|
||||
notTranslate := GetNotTranslate(list)
|
||||
disabledItems := GetDropDownDisabledItems(list)
|
||||
for i, item := range list.items {
|
||||
disabled := false
|
||||
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) {
|
||||
list.viewData.htmlDisabledProperties(self, buffer)
|
||||
if IsDisabled(list, "") {
|
||||
if IsDisabled(list) {
|
||||
buffer.WriteString(`disabled`)
|
||||
}
|
||||
}
|
||||
|
@ -386,7 +386,7 @@ func (list *dropDownListData) handleCommand(self View, command string, data Data
|
|||
case "itemSelected":
|
||||
if text, ok := data.PropertyValue("number"); ok {
|
||||
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.onSelectedItemChanged(number)
|
||||
}
|
||||
|
@ -401,19 +401,17 @@ func (list *dropDownListData) handleCommand(self View, command string, data Data
|
|||
return true
|
||||
}
|
||||
|
||||
func GetDropDownListeners(view View) []func(DropDownList, int) {
|
||||
if value := view.Get(DropDownEvent); value != nil {
|
||||
if listeners, ok := value.([]func(DropDownList, int)); ok {
|
||||
return listeners
|
||||
}
|
||||
}
|
||||
return []func(DropDownList, int){}
|
||||
// GetDropDownListeners returns the "drop-down-event" listener list. If there are no listeners then the empty list is returned.
|
||||
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||
func GetDropDownListeners(view View, subviewID ...string) []func(DropDownList, int) {
|
||||
return getEventListeners[DropDownList, int](view, subviewID, DropDownEvent)
|
||||
}
|
||||
|
||||
// func GetDropDownItems return the view items list
|
||||
func GetDropDownItems(view View, subviewID string) []string {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// GetDropDownItems return the DropDownList items list.
|
||||
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||
func GetDropDownItems(view View, subviewID ...string) []string {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
if list, ok := view.(DropDownList); ok {
|
||||
|
@ -423,11 +421,13 @@ func GetDropDownItems(view View, subviewID string) []string {
|
|||
return []string{}
|
||||
}
|
||||
|
||||
// func GetDropDownDisabledItems return the list of disabled item indexes
|
||||
func GetDropDownDisabledItems(view View, subviewID string) []int {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// GetDropDownDisabledItems return the list of DropDownList disabled item indexes.
|
||||
// If the second argument (subviewID) is not specified or it is "" then a value from the first argument (view) is returned.
|
||||
func GetDropDownDisabledItems(view View, subviewID ...string) []int {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
if value := view.Get(DisabledItems); value != nil {
|
||||
if values, ok := value.([]any); ok {
|
||||
|
|
132
editView.go
132
editView.go
|
@ -132,19 +132,19 @@ func (edit *editViewData) remove(tag string) {
|
|||
|
||||
case Text:
|
||||
if exists {
|
||||
oldText := GetText(edit, "")
|
||||
oldText := GetText(edit)
|
||||
delete(edit.properties, tag)
|
||||
if oldText != "" {
|
||||
edit.textChanged("")
|
||||
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:
|
||||
if exists {
|
||||
oldText := GetEditViewPattern(edit, "")
|
||||
oldText := GetEditViewPattern(edit)
|
||||
delete(edit.properties, tag)
|
||||
if oldText != "" {
|
||||
if edit.created {
|
||||
|
@ -156,7 +156,7 @@ func (edit *editViewData) remove(tag string) {
|
|||
|
||||
case EditViewType:
|
||||
if exists {
|
||||
oldType := GetEditViewType(edit, "")
|
||||
oldType := GetEditViewType(edit)
|
||||
delete(edit.properties, tag)
|
||||
if oldType != 0 {
|
||||
if edit.created {
|
||||
|
@ -168,10 +168,10 @@ func (edit *editViewData) remove(tag string) {
|
|||
|
||||
case EditWrap:
|
||||
if exists {
|
||||
oldWrap := IsEditViewWrap(edit, "")
|
||||
oldWrap := IsEditViewWrap(edit)
|
||||
delete(edit.properties, tag)
|
||||
if GetEditViewType(edit, "") == MultiLineText {
|
||||
if wrap := IsEditViewWrap(edit, ""); wrap != oldWrap {
|
||||
if GetEditViewType(edit) == MultiLineText {
|
||||
if wrap := IsEditViewWrap(edit); wrap != oldWrap {
|
||||
if edit.created {
|
||||
if wrap {
|
||||
updateProperty(edit.htmlID(), "wrap", "soft", edit.session)
|
||||
|
@ -202,13 +202,13 @@ func (edit *editViewData) set(tag string, value any) bool {
|
|||
|
||||
switch tag {
|
||||
case Text:
|
||||
oldText := GetText(edit, "")
|
||||
oldText := GetText(edit)
|
||||
if text, ok := value.(string); ok {
|
||||
edit.properties[Text] = text
|
||||
if text = GetText(edit, ""); oldText != text {
|
||||
if text = GetText(edit); oldText != text {
|
||||
edit.textChanged(text)
|
||||
if edit.created {
|
||||
if GetEditViewType(edit, "") == MultiLineText {
|
||||
if GetEditViewType(edit) == MultiLineText {
|
||||
updateInnerHTML(edit.htmlID(), edit.Session())
|
||||
} else {
|
||||
text = strings.ReplaceAll(text, `"`, `\"`)
|
||||
|
@ -224,10 +224,10 @@ func (edit *editViewData) set(tag string, value any) bool {
|
|||
return false
|
||||
|
||||
case Hint:
|
||||
oldText := GetHint(edit, "")
|
||||
oldText := GetHint(edit)
|
||||
if text, ok := value.(string); ok {
|
||||
edit.properties[Hint] = text
|
||||
if text = GetHint(edit, ""); oldText != text {
|
||||
if text = GetHint(edit); oldText != text {
|
||||
if edit.created {
|
||||
if text != "" {
|
||||
updateProperty(edit.htmlID(), "placeholder", text, edit.session)
|
||||
|
@ -242,9 +242,9 @@ func (edit *editViewData) set(tag string, value any) bool {
|
|||
return false
|
||||
|
||||
case MaxLength:
|
||||
oldMaxLength := GetMaxLength(edit, "")
|
||||
oldMaxLength := GetMaxLength(edit)
|
||||
if edit.setIntProperty(MaxLength, value) {
|
||||
if maxLength := GetMaxLength(edit, ""); maxLength != oldMaxLength {
|
||||
if maxLength := GetMaxLength(edit); maxLength != oldMaxLength {
|
||||
if edit.created {
|
||||
if maxLength > 0 {
|
||||
updateProperty(edit.htmlID(), "maxlength", strconv.Itoa(maxLength), edit.session)
|
||||
|
@ -261,7 +261,7 @@ func (edit *editViewData) set(tag string, value any) bool {
|
|||
case ReadOnly:
|
||||
if edit.setBoolProperty(ReadOnly, value) {
|
||||
if edit.created {
|
||||
if IsReadOnly(edit, "") {
|
||||
if IsReadOnly(edit) {
|
||||
updateProperty(edit.htmlID(), ReadOnly, "", edit.session)
|
||||
} else {
|
||||
removeProperty(edit.htmlID(), ReadOnly, edit.session)
|
||||
|
@ -275,7 +275,7 @@ func (edit *editViewData) set(tag string, value any) bool {
|
|||
case Spellcheck:
|
||||
if edit.setBoolProperty(Spellcheck, value) {
|
||||
if edit.created {
|
||||
updateBoolProperty(edit.htmlID(), Spellcheck, IsSpellcheck(edit, ""), edit.session)
|
||||
updateBoolProperty(edit.htmlID(), Spellcheck, IsSpellcheck(edit), edit.session)
|
||||
}
|
||||
edit.propertyChangedEvent(tag)
|
||||
return true
|
||||
|
@ -283,10 +283,10 @@ func (edit *editViewData) set(tag string, value any) bool {
|
|||
return false
|
||||
|
||||
case EditViewPattern:
|
||||
oldText := GetEditViewPattern(edit, "")
|
||||
oldText := GetEditViewPattern(edit)
|
||||
if text, ok := value.(string); ok {
|
||||
edit.properties[EditViewPattern] = text
|
||||
if text = GetEditViewPattern(edit, ""); oldText != text {
|
||||
if text = GetEditViewPattern(edit); oldText != text {
|
||||
if edit.created {
|
||||
if text != "" {
|
||||
updateProperty(edit.htmlID(), Pattern, text, edit.session)
|
||||
|
@ -301,9 +301,9 @@ func (edit *editViewData) set(tag string, value any) bool {
|
|||
return false
|
||||
|
||||
case EditViewType:
|
||||
oldType := GetEditViewType(edit, "")
|
||||
oldType := GetEditViewType(edit)
|
||||
if edit.setEnumProperty(EditViewType, value, enumProperties[EditViewType].values) {
|
||||
if GetEditViewType(edit, "") != oldType {
|
||||
if GetEditViewType(edit) != oldType {
|
||||
if edit.created {
|
||||
updateInnerHTML(edit.parentHTMLID(), edit.session)
|
||||
}
|
||||
|
@ -314,10 +314,10 @@ func (edit *editViewData) set(tag string, value any) bool {
|
|||
return false
|
||||
|
||||
case EditWrap:
|
||||
oldWrap := IsEditViewWrap(edit, "")
|
||||
oldWrap := IsEditViewWrap(edit)
|
||||
if edit.setBoolProperty(EditWrap, value) {
|
||||
if GetEditViewType(edit, "") == MultiLineText {
|
||||
if wrap := IsEditViewWrap(edit, ""); wrap != oldWrap {
|
||||
if GetEditViewType(edit) == MultiLineText {
|
||||
if wrap := IsEditViewWrap(edit); wrap != oldWrap {
|
||||
if edit.created {
|
||||
if wrap {
|
||||
updateProperty(edit.htmlID(), "wrap", "soft", edit.session)
|
||||
|
@ -360,7 +360,7 @@ func (edit *editViewData) get(tag string) any {
|
|||
}
|
||||
|
||||
func (edit *editViewData) AppendText(text string) {
|
||||
if GetEditViewType(edit, "") == MultiLineText {
|
||||
if GetEditViewType(edit) == MultiLineText {
|
||||
if value := edit.getRaw(Text); value != nil {
|
||||
if textValue, ok := value.(string); ok {
|
||||
textValue += text
|
||||
|
@ -379,7 +379,7 @@ func (edit *editViewData) AppendText(text string) {
|
|||
}
|
||||
edit.set(Text, text)
|
||||
} 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 {
|
||||
if GetEditViewType(edit, "") == MultiLineText {
|
||||
if GetEditViewType(edit) == MultiLineText {
|
||||
return "textarea"
|
||||
}
|
||||
return "input"
|
||||
|
@ -401,14 +401,14 @@ func (edit *editViewData) htmlProperties(self View, buffer *strings.Builder) {
|
|||
edit.viewData.htmlProperties(self, buffer)
|
||||
|
||||
writeSpellcheck := func() {
|
||||
if spellcheck := IsSpellcheck(edit, ""); spellcheck {
|
||||
if spellcheck := IsSpellcheck(edit); spellcheck {
|
||||
buffer.WriteString(` spellcheck="true"`)
|
||||
} else {
|
||||
buffer.WriteString(` spellcheck="false"`)
|
||||
}
|
||||
}
|
||||
|
||||
editType := GetEditViewType(edit, "")
|
||||
editType := GetEditViewType(edit)
|
||||
switch editType {
|
||||
case SingleLineText:
|
||||
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"`)
|
||||
|
||||
case MultiLineText:
|
||||
if IsEditViewWrap(edit, "") {
|
||||
if IsEditViewWrap(edit) {
|
||||
buffer.WriteString(` wrap="soft"`)
|
||||
} else {
|
||||
buffer.WriteString(` wrap="off"`)
|
||||
|
@ -438,11 +438,11 @@ func (edit *editViewData) htmlProperties(self View, buffer *strings.Builder) {
|
|||
writeSpellcheck()
|
||||
}
|
||||
|
||||
if IsReadOnly(edit, "") {
|
||||
if IsReadOnly(edit) {
|
||||
buffer.WriteString(` readonly`)
|
||||
}
|
||||
|
||||
if maxLength := GetMaxLength(edit, ""); maxLength > 0 {
|
||||
if maxLength := GetMaxLength(edit); maxLength > 0 {
|
||||
buffer.WriteString(` maxlength="`)
|
||||
buffer.WriteString(strconv.Itoa(maxLength))
|
||||
buffer.WriteByte('"')
|
||||
|
@ -455,21 +455,21 @@ func (edit *editViewData) htmlProperties(self View, buffer *strings.Builder) {
|
|||
return textToJS(text)
|
||||
}
|
||||
|
||||
if hint := GetHint(edit, ""); hint != "" {
|
||||
if hint := GetHint(edit); hint != "" {
|
||||
buffer.WriteString(` placeholder="`)
|
||||
buffer.WriteString(convertText(hint))
|
||||
buffer.WriteByte('"')
|
||||
}
|
||||
|
||||
buffer.WriteString(` oninput="editViewInputEvent(this)"`)
|
||||
if pattern := GetEditViewPattern(edit, ""); pattern != "" {
|
||||
if pattern := GetEditViewPattern(edit); pattern != "" {
|
||||
buffer.WriteString(` pattern="`)
|
||||
buffer.WriteString(convertText(pattern))
|
||||
buffer.WriteByte('"')
|
||||
}
|
||||
|
||||
if editType != MultiLineText {
|
||||
if text := GetText(edit, ""); text != "" {
|
||||
if text := GetText(edit); text != "" {
|
||||
buffer.WriteString(` value="`)
|
||||
buffer.WriteString(convertText(text))
|
||||
buffer.WriteByte('"')
|
||||
|
@ -478,25 +478,25 @@ func (edit *editViewData) htmlProperties(self View, buffer *strings.Builder) {
|
|||
}
|
||||
|
||||
func (edit *editViewData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
||||
if IsDisabled(self, "") {
|
||||
if IsDisabled(self) {
|
||||
buffer.WriteString(` disabled`)
|
||||
}
|
||||
edit.viewData.htmlDisabledProperties(self, buffer)
|
||||
}
|
||||
|
||||
func (edit *editViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||
if GetEditViewType(edit, "") == MultiLineText {
|
||||
buffer.WriteString(textToJS(GetText(edit, "")))
|
||||
if GetEditViewType(edit) == MultiLineText {
|
||||
buffer.WriteString(textToJS(GetText(edit)))
|
||||
}
|
||||
}
|
||||
|
||||
func (edit *editViewData) handleCommand(self View, command string, data DataObject) bool {
|
||||
switch command {
|
||||
case "textChanged":
|
||||
oldText := GetText(edit, "")
|
||||
oldText := GetText(edit)
|
||||
if text, ok := data.PropertyValue("text"); ok {
|
||||
edit.properties[Text] = text
|
||||
if text := GetText(edit, ""); text != oldText {
|
||||
if text := GetText(edit); text != oldText {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a text of the first argument (view) is returned.
|
||||
func GetText(view View, subviewID string) string {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != 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.
|
||||
// If the second argument (subviewID) is "" then a text of the first argument (view) is returned.
|
||||
func GetHint(view View, subviewID string) string {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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
|
||||
// If the second argument (subviewID) is "" then a value of the first argument (view) is returned.
|
||||
func GetMaxLength(view View, subviewID string) int {
|
||||
// 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 {
|
||||
return intStyledProperty(view, subviewID, MaxLength, 0)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func IsReadOnly(view View, subviewID string) bool {
|
||||
// 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 {
|
||||
return boolStyledProperty(view, subviewID, ReadOnly, false)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func IsSpellcheck(view View, subviewID string) bool {
|
||||
// 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 {
|
||||
return boolStyledProperty(view, subviewID, Spellcheck, false)
|
||||
}
|
||||
|
||||
// GetTextChangedListeners returns the TextChangedListener list of an EditView or MultiLineEditView subview.
|
||||
// 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.
|
||||
func GetTextChangedListeners(view View, subviewID string) []func(EditView, string) {
|
||||
// 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) {
|
||||
return getEventListeners[EditView, string](view, subviewID, EditTextChangedEvent)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetEditViewType(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.
|
||||
func GetEditViewType(view View, subviewID ...string) int {
|
||||
return enumStyledProperty(view, subviewID, EditViewType, SingleLineText, false)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetEditViewPattern(view View, subviewID string) string {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func IsEditViewWrap(view View, subviewID string) bool {
|
||||
// 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 {
|
||||
return boolStyledProperty(view, subviewID, EditWrap, false)
|
||||
}
|
||||
|
||||
// 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) {
|
||||
if subviewID != "" {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetCaretColor(view View, subviewID string) Color {
|
||||
// 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 {
|
||||
return colorStyledProperty(view, subviewID, CaretColor, false)
|
||||
}
|
||||
|
|
|
@ -251,7 +251,7 @@ func (picker *filePickerData) htmlProperties(self View, buffer *strings.Builder)
|
|||
}
|
||||
|
||||
buffer.WriteString(` type="file"`)
|
||||
if IsMultipleFilePicker(picker, "") {
|
||||
if IsMultipleFilePicker(picker) {
|
||||
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) {
|
||||
if IsDisabled(self, "") {
|
||||
if IsDisabled(self) {
|
||||
buffer.WriteString(` disabled`)
|
||||
}
|
||||
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
|
||||
// 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
|
||||
func GetFilePickerFiles(view View, subviewID string) []FileInfo {
|
||||
if picker := FilePickerByID(view, subviewID); picker != nil {
|
||||
// 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 {
|
||||
subview := ""
|
||||
if len(subviewID) > 0 {
|
||||
subview = subviewID[0]
|
||||
}
|
||||
|
||||
if picker := FilePickerByID(view, subview); picker != nil {
|
||||
return picker.Files()
|
||||
}
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func IsMultipleFilePicker(view View, subviewID string) bool {
|
||||
// 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 {
|
||||
return boolStyledProperty(view, subviewID, Multiple, false)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetFilePickerAccept(view View, subviewID string) []string {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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.
|
||||
// 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.
|
||||
func GetFileSelectedListeners(view View, subviewID string) []func(FilePicker, []FileInfo) {
|
||||
// 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) {
|
||||
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) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
func getFocusListeners(view View, subviewID []string, tag string) []func(View) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
if value := view.Get(tag); value != nil {
|
||||
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
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetFocusListeners(view View, subviewID string) []func(View) {
|
||||
// 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) {
|
||||
return getFocusListeners(view, subviewID, FocusEvent)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetLostFocusListeners(view View, subviewID string) []func(View) {
|
||||
// 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) {
|
||||
return getFocusListeners(view, subviewID, LostFocusEvent)
|
||||
}
|
||||
|
|
|
@ -201,8 +201,8 @@ func (gridLayout *gridLayoutData) Get(tag string) any {
|
|||
|
||||
func (gridLayout *gridLayoutData) get(tag string) any {
|
||||
if tag == Gap {
|
||||
rowGap := GetGridRowGap(gridLayout, "")
|
||||
columnGap := GetGridColumnGap(gridLayout, "")
|
||||
rowGap := GetGridRowGap(gridLayout)
|
||||
columnGap := GetGridColumnGap(gridLayout)
|
||||
if rowGap.Equal(columnGap) {
|
||||
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)
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetCellVerticalAlign(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.
|
||||
func GetCellVerticalAlign(view View, subviewID ...string) int {
|
||||
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)
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetCellHorizontalAlign(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.
|
||||
func GetCellHorizontalAlign(view View, subviewID ...string) int {
|
||||
return enumStyledProperty(view, subviewID, CellHorizontalAlign, StretchAlign, false)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetGridAutoFlow(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.
|
||||
func GetGridAutoFlow(view View, subviewID ...string) int {
|
||||
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.
|
||||
// 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.
|
||||
func GetCellWidth(view View, subviewID string) []SizeUnit {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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.
|
||||
// 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.
|
||||
func GetCellHeight(view View, subviewID string) []SizeUnit {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
return gridCellSizes(view, CellHeight, view.Session())
|
||||
|
@ -363,13 +363,13 @@ func GetCellHeight(view View, subviewID string) []SizeUnit {
|
|||
}
|
||||
|
||||
// GetGridRowGap returns the gap between GridLayout rows.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetGridRowGap(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, GridRowGap, false)
|
||||
}
|
||||
|
||||
// GetGridColumnGap returns the gap between GridLayout columns.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetGridColumnGap(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
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(textToJS(text))
|
||||
buffer.WriteString(`"`)
|
||||
|
@ -266,8 +266,8 @@ func (imageView *imageViewData) cssStyle(self View, builder cssBuilder) {
|
|||
builder.add("object-fit", "none")
|
||||
}
|
||||
|
||||
vAlign := GetImageViewVerticalAlign(imageView, "")
|
||||
hAlign := GetImageViewHorizontalAlign(imageView, "")
|
||||
vAlign := GetImageViewVerticalAlign(imageView)
|
||||
hAlign := GetImageViewHorizontalAlign(imageView)
|
||||
if vAlign != CenterAlign || hAlign != CenterAlign {
|
||||
var position string
|
||||
switch hAlign {
|
||||
|
@ -323,10 +323,10 @@ func (imageView *imageViewData) CurrentSource() string {
|
|||
}
|
||||
|
||||
// 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
|
||||
func GetImageViewSource(view View, subviewID string) string {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
|
@ -339,10 +339,10 @@ func GetImageViewSource(view View, subviewID string) string {
|
|||
}
|
||||
|
||||
// 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
|
||||
func GetImageViewAltText(view View, subviewID string) string {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
|
@ -358,19 +358,19 @@ func GetImageViewAltText(view View, subviewID string) string {
|
|||
|
||||
// GetImageViewFit returns how the content of a replaced ImageView subview:
|
||||
// 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
|
||||
func GetImageViewFit(view View, subviewID string) int {
|
||||
// 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 {
|
||||
return enumStyledProperty(view, subviewID, Fit, NoneFit, false)
|
||||
}
|
||||
|
||||
// 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
|
||||
func GetImageViewVerticalAlign(view View, subviewID string) int {
|
||||
// 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 {
|
||||
return enumStyledProperty(view, subviewID, ImageVerticalAlign, LeftAlign, false)
|
||||
}
|
||||
|
||||
// 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
|
||||
func GetImageViewHorizontalAlign(view View, subviewID string) int {
|
||||
// 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 {
|
||||
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) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
func getEventListeners[V View, E any](view View, subviewID []string, tag string) []func(V, E) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != 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) {
|
||||
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)" `)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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 {
|
||||
var event KeyEvent
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetKeyDownListeners(view View, subviewID string) []func(View, KeyEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetKeyUpListeners(view View, subviewID string) []func(View, KeyEvent) {
|
||||
// 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) {
|
||||
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 {
|
||||
if index >= 0 && index < len(adapter.items) {
|
||||
return !IsDisabled(adapter.items[index], "")
|
||||
return !IsDisabled(adapter.items[index])
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@ func (listLayout *listLayoutData) Get(tag string) any {
|
|||
|
||||
func (listLayout *listLayoutData) get(tag string) any {
|
||||
if tag == Gap {
|
||||
if rowGap := GetListRowGap(listLayout, ""); rowGap.Equal(GetListColumnGap(listLayout, "")) {
|
||||
if rowGap := GetListRowGap(listLayout); rowGap.Equal(GetListColumnGap(listLayout)) {
|
||||
return rowGap
|
||||
}
|
||||
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:
|
||||
// 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.
|
||||
func GetListVerticalAlign(view View, subviewID string) int {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
}
|
||||
if view == nil {
|
||||
return LeftAlign
|
||||
}
|
||||
result, _ := enumProperty(view, VerticalAlign, view.Session(), 0)
|
||||
return result
|
||||
// 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 {
|
||||
return enumStyledProperty(view, subviewID, VerticalAlign, TopAlign, false)
|
||||
}
|
||||
|
||||
// GetListHorizontalAlign returns the vertical align of a ListLayout or ListView subview:
|
||||
// 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.
|
||||
func GetListHorizontalAlign(view View, subviewID string) int {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
}
|
||||
if view == nil {
|
||||
return TopAlign
|
||||
}
|
||||
result, _ := enumProperty(view, HorizontalAlign, view.Session(), 0)
|
||||
return result
|
||||
// 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 {
|
||||
return enumStyledProperty(view, subviewID, HorizontalAlign, LeftAlign, false)
|
||||
}
|
||||
|
||||
// GetListOrientation returns the orientation of a ListLayout or ListView subview:
|
||||
// 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.
|
||||
func GetListOrientation(view View, subviewID string) int {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
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:
|
||||
// ListWrapOff (0), ListWrapOn (1), or ListWrapReverse (2)
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetListWrap(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.
|
||||
func GetListWrap(view View, subviewID ...string) int {
|
||||
return enumStyledProperty(view, subviewID, ListWrap, ListWrapOff, false)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetListRowGap(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, ListRowGap, false)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetListColumnGap(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, ListColumnGap, false)
|
||||
}
|
||||
|
|
241
listView.go
241
listView.go
|
@ -158,7 +158,7 @@ func (listView *listViewData) remove(tag string) {
|
|||
}
|
||||
|
||||
case Current:
|
||||
current := GetCurrent(listView, "")
|
||||
current := GetCurrent(listView)
|
||||
delete(listView.properties, tag)
|
||||
if listView.created {
|
||||
updateInnerHTML(listView.htmlID(), listView.session)
|
||||
|
@ -264,11 +264,11 @@ func (listView *listViewData) set(tag string, value any) bool {
|
|||
}
|
||||
|
||||
case Current:
|
||||
oldCurrent := GetCurrent(listView, "")
|
||||
oldCurrent := GetCurrent(listView)
|
||||
if !listView.setIntProperty(Current, value) {
|
||||
return false
|
||||
}
|
||||
current := GetCurrent(listView, "")
|
||||
current := GetCurrent(listView)
|
||||
if oldCurrent == current {
|
||||
return true
|
||||
}
|
||||
|
@ -317,7 +317,7 @@ func (listView *listViewData) Get(tag string) any {
|
|||
func (listView *listViewData) get(tag string) any {
|
||||
switch tag {
|
||||
case Gap:
|
||||
if rowGap := GetListRowGap(listView, ""); rowGap.Equal(GetListColumnGap(listView, "")) {
|
||||
if rowGap := GetListRowGap(listView); rowGap.Equal(GetListColumnGap(listView)) {
|
||||
return rowGap
|
||||
}
|
||||
return AutoSize()
|
||||
|
@ -462,7 +462,7 @@ func (listView *listViewData) setChecked(value any) bool {
|
|||
}
|
||||
}
|
||||
|
||||
switch GetListViewCheckbox(listView, "") {
|
||||
switch GetListViewCheckbox(listView) {
|
||||
case SingleCheckbox:
|
||||
count := len(checked)
|
||||
if count > 1 {
|
||||
|
@ -546,14 +546,14 @@ func (listView *listViewData) getItemFrames() []Frame {
|
|||
|
||||
func (listView *listViewData) itemAlign(self View, buffer *strings.Builder) {
|
||||
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(values[hAlign])
|
||||
buffer.WriteRune(';')
|
||||
}
|
||||
|
||||
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(values[vAlign])
|
||||
buffer.WriteRune(';')
|
||||
|
@ -561,13 +561,13 @@ func (listView *listViewData) itemAlign(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(itemWidth.cssString(""))
|
||||
buffer.WriteRune(';')
|
||||
}
|
||||
|
||||
if itemHeight := GetListItemHeight(listView, ""); itemHeight.Type != Auto {
|
||||
if itemHeight := GetListItemHeight(listView); itemHeight.Type != Auto {
|
||||
buffer.WriteString(` min-height: `)
|
||||
buffer.WriteString(itemHeight.cssString(""))
|
||||
buffer.WriteRune(';')
|
||||
|
@ -719,14 +719,14 @@ func (listView *listViewData) checkboxSubviews(self View, buffer *strings.Builde
|
|||
count := listView.adapter.ListSize()
|
||||
listViewID := listView.htmlID()
|
||||
|
||||
hCheckboxAlign := GetListViewCheckboxHorizontalAlign(listView, "")
|
||||
vCheckboxAlign := GetListViewCheckboxVerticalAlign(listView, "")
|
||||
hCheckboxAlign := GetListViewCheckboxHorizontalAlign(listView)
|
||||
vCheckboxAlign := GetListViewCheckboxVerticalAlign(listView)
|
||||
|
||||
itemDiv := listView.checkboxItemDiv(self, checkbox, hCheckboxAlign, vCheckboxAlign)
|
||||
onDiv, offDiv, contentDiv := listView.getDivs(self, checkbox, hCheckboxAlign, vCheckboxAlign)
|
||||
|
||||
current := GetCurrent(listView, "")
|
||||
checkedItems := GetListViewCheckedItems(listView, "")
|
||||
current := GetCurrent(listView)
|
||||
checkedItems := GetListViewCheckedItems(listView)
|
||||
for i := 0; i < count; i++ {
|
||||
buffer.WriteString(`<div id="`)
|
||||
buffer.WriteString(listViewID)
|
||||
|
@ -782,7 +782,7 @@ func (listView *listViewData) noneCheckboxSubviews(self View, buffer *strings.Bu
|
|||
itemStyleBuilder.WriteString(`" onclick="listItemClickEvent(this, event)"`)
|
||||
itemStyle := itemStyleBuilder.String()
|
||||
|
||||
current := GetCurrent(listView, "")
|
||||
current := GetCurrent(listView)
|
||||
for i := 0; i < count; i++ {
|
||||
buffer.WriteString(`<div id="`)
|
||||
buffer.WriteString(listViewID)
|
||||
|
@ -811,9 +811,9 @@ func (listView *listViewData) noneCheckboxSubviews(self View, buffer *strings.Bu
|
|||
|
||||
func (listView *listViewData) updateCheckboxItem(index int, checked bool) {
|
||||
|
||||
checkbox := GetListViewCheckbox(listView, "")
|
||||
hCheckboxAlign := GetListViewCheckboxHorizontalAlign(listView, "")
|
||||
vCheckboxAlign := GetListViewCheckboxVerticalAlign(listView, "")
|
||||
checkbox := GetListViewCheckbox(listView)
|
||||
hCheckboxAlign := GetListViewCheckboxHorizontalAlign(listView)
|
||||
vCheckboxAlign := GetListViewCheckboxVerticalAlign(listView)
|
||||
onDiv, offDiv, contentDiv := listView.getDivs(listView, checkbox, hCheckboxAlign, vCheckboxAlign)
|
||||
|
||||
buffer := allocStringBuilder()
|
||||
|
@ -855,7 +855,7 @@ func (listView *listViewData) htmlProperties(self View, buffer *strings.Builder)
|
|||
buffer.WriteString(`" data-bluritemstyle="`)
|
||||
buffer.WriteString(listView.currentInactiveStyle())
|
||||
buffer.WriteString(`"`)
|
||||
current := GetCurrent(listView, "")
|
||||
current := GetCurrent(listView)
|
||||
if listView.adapter != nil && current >= 0 && current < listView.adapter.ListSize() {
|
||||
buffer.WriteString(` data-current="`)
|
||||
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) {
|
||||
listView.viewData.cssStyle(self, builder)
|
||||
|
||||
if GetListWrap(listView, "") != WrapOff {
|
||||
switch GetListOrientation(listView, "") {
|
||||
if GetListWrap(listView) != WrapOff {
|
||||
switch GetListOrientation(listView) {
|
||||
case TopDownOrientation, BottomUpOrientation:
|
||||
builder.add(`max-height`, `100%`)
|
||||
default:
|
||||
|
@ -894,20 +894,20 @@ func (listView *listViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
|||
|
||||
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(gap.cssString("0"))
|
||||
buffer.WriteRune(';')
|
||||
}
|
||||
|
||||
if gap := GetListColumnGap(listView, ""); gap.Type != Auto {
|
||||
if gap := GetListColumnGap(listView); gap.Type != Auto {
|
||||
buffer.WriteString(` column-gap: `)
|
||||
buffer.WriteString(gap.cssString("0"))
|
||||
buffer.WriteRune(';')
|
||||
}
|
||||
|
||||
wrap := GetListWrap(listView, "")
|
||||
orientation := GetListOrientation(listView, "")
|
||||
wrap := GetListWrap(listView)
|
||||
orientation := GetListOrientation(listView)
|
||||
rows := (orientation == StartToEndOrientation || orientation == EndToStartOrientation)
|
||||
|
||||
if rows {
|
||||
|
@ -948,7 +948,7 @@ func (listView *listViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
|||
}
|
||||
|
||||
value := ""
|
||||
switch enumStyledProperty(listView, "", HorizontalAlign, LeftAlign, false) {
|
||||
switch GetListHorizontalAlign(listView) {
|
||||
case LeftAlign:
|
||||
if (!rows && wrap == ListWrapReverse) || orientation == EndToStartOrientation {
|
||||
value = `flex-end`
|
||||
|
@ -981,7 +981,7 @@ func (listView *listViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
|||
}
|
||||
|
||||
value = ""
|
||||
switch enumStyledProperty(listView, "", VerticalAlign, TopAlign, false) {
|
||||
switch GetListVerticalAlign(listView) {
|
||||
case TopAlign:
|
||||
if (rows && wrap == ListWrapReverse) || orientation == BottomUpOrientation {
|
||||
value = `flex-end`
|
||||
|
@ -1015,7 +1015,7 @@ func (listView *listViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
|||
|
||||
buffer.WriteString(`">`)
|
||||
|
||||
checkbox := GetListViewCheckbox(listView, "")
|
||||
checkbox := GetListViewCheckbox(listView)
|
||||
if checkbox == NoneCheckbox {
|
||||
listView.noneCheckboxSubviews(self, buffer)
|
||||
} else {
|
||||
|
@ -1056,9 +1056,9 @@ func (listView *listViewData) handleCommand(self View, command string, data Data
|
|||
}
|
||||
|
||||
func (listView *listViewData) onItemClick() {
|
||||
current := GetCurrent(listView, "")
|
||||
if current >= 0 && !IsDisabled(listView, "") {
|
||||
checkbox := GetListViewCheckbox(listView, "")
|
||||
current := GetCurrent(listView)
|
||||
if current >= 0 && !IsDisabled(listView) {
|
||||
checkbox := GetListViewCheckbox(listView)
|
||||
m:
|
||||
switch checkbox {
|
||||
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)
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetVerticalAlign(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.
|
||||
func GetVerticalAlign(view View, subviewID ...string) int {
|
||||
return enumStyledProperty(view, subviewID, VerticalAlign, TopAlign, false)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetHorizontalAlign(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.
|
||||
func GetHorizontalAlign(view View, subviewID ...string) int {
|
||||
return enumStyledProperty(view, subviewID, HorizontalAlign, LeftAlign, false)
|
||||
}
|
||||
|
||||
// GetListItemClickedListeners returns a ListItemClickedListener of the ListView.
|
||||
// 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.
|
||||
func GetListItemClickedListeners(view View, subviewID string) []func(ListView, int) {
|
||||
if subviewID != "" {
|
||||
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){}
|
||||
// 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) {
|
||||
return getEventListeners[ListView, int](view, subviewID, ListItemClickedEvent)
|
||||
}
|
||||
|
||||
// GetListItemSelectedListeners returns a ListItemSelectedListener of the ListView.
|
||||
// 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.
|
||||
func GetListItemSelectedListeners(view View, subviewID string) []func(ListView, int) {
|
||||
if subviewID != "" {
|
||||
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){}
|
||||
// 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) {
|
||||
return getEventListeners[ListView, int](view, subviewID, ListItemSelectedEvent)
|
||||
}
|
||||
|
||||
// GetListItemCheckedListeners returns a ListItemCheckedListener of the ListView.
|
||||
// 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.
|
||||
func GetListItemCheckedListeners(view View, subviewID string) []func(ListView, []int) {
|
||||
if subviewID != "" {
|
||||
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){}
|
||||
// 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) {
|
||||
return getEventListeners[ListView, []int](view, subviewID, ListItemCheckedEvent)
|
||||
}
|
||||
|
||||
// GetListItemWidth returns the width of a ListView item.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetListItemWidth(view View, subviewID string) SizeUnit {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
}
|
||||
if view != nil {
|
||||
result, _ := sizeProperty(view, ItemWidth, view.Session())
|
||||
return result
|
||||
}
|
||||
return AutoSize()
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, ItemWidth, false)
|
||||
}
|
||||
|
||||
// GetListItemHeight returns the height of a ListView item.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetListItemHeight(view View, subviewID string) SizeUnit {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
}
|
||||
if view != nil {
|
||||
result, _ := sizeProperty(view, ItemHeight, view.Session())
|
||||
return result
|
||||
}
|
||||
return AutoSize()
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, ItemHeight, false)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetListViewCheckbox(view View, subviewID string) int {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
}
|
||||
if view != nil {
|
||||
result, _ := enumProperty(view, ItemCheckbox, view.Session(), 0)
|
||||
return result
|
||||
}
|
||||
return 0
|
||||
// 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 {
|
||||
return enumStyledProperty(view, subviewID, ItemCheckbox, 0, false)
|
||||
}
|
||||
|
||||
// GetListViewCheckedItems returns the array of ListView checked items.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetListViewCheckedItems(view View, subviewID string) []int {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
if listView, ok := view.(ListView); ok {
|
||||
checkedItems := listView.getCheckedItems()
|
||||
switch GetListViewCheckbox(view, "") {
|
||||
switch GetListViewCheckbox(view) {
|
||||
case NoneCheckbox:
|
||||
return []int{}
|
||||
|
||||
|
@ -1256,66 +1206,34 @@ func IsListViewCheckedItem(view View, subviewID string, index int) bool {
|
|||
|
||||
// GetListViewCheckboxVerticalAlign returns the vertical align of the ListView checkbox:
|
||||
// TopAlign (0), BottomAlign (1), CenterAlign (2)
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetListViewCheckboxVerticalAlign(view View, subviewID string) int {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
}
|
||||
if view != nil {
|
||||
if align, ok := enumProperty(view, CheckboxVerticalAlign, view.Session(), TopAlign); ok {
|
||||
return align
|
||||
}
|
||||
}
|
||||
return TopAlign
|
||||
// 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 {
|
||||
return enumStyledProperty(view, subviewID, CheckboxVerticalAlign, TopAlign, false)
|
||||
}
|
||||
|
||||
// GetListViewCheckboxHorizontalAlign returns the horizontal align of the ListView checkbox:
|
||||
// LeftAlign (0), RightAlign (1), CenterAlign (2)
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetListViewCheckboxHorizontalAlign(view View, subviewID string) int {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
}
|
||||
if view != nil {
|
||||
if align, ok := enumProperty(view, CheckboxHorizontalAlign, view.Session(), LeftAlign); ok {
|
||||
return align
|
||||
}
|
||||
}
|
||||
return LeftAlign
|
||||
// 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 {
|
||||
return enumStyledProperty(view, subviewID, CheckboxHorizontalAlign, LeftAlign, false)
|
||||
}
|
||||
|
||||
// GetListItemVerticalAlign returns the vertical align of the ListView item content:
|
||||
// TopAlign (0), BottomAlign (1), CenterAlign (2)
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetListItemVerticalAlign(view View, subviewID string) int {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
}
|
||||
if view != nil {
|
||||
if align, ok := enumProperty(view, ItemVerticalAlign, view.Session(), TopAlign); ok {
|
||||
return align
|
||||
}
|
||||
}
|
||||
return TopAlign
|
||||
// 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 {
|
||||
return enumStyledProperty(view, subviewID, ItemVerticalAlign, TopAlign, false)
|
||||
}
|
||||
|
||||
// ItemHorizontalAlign returns the horizontal align of the ListView item 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.
|
||||
func GetListItemHorizontalAlign(view View, subviewID string) int {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
}
|
||||
if view != nil {
|
||||
if align, ok := enumProperty(view, ItemHorizontalAlign, view.Session(), LeftAlign); ok {
|
||||
return align
|
||||
}
|
||||
}
|
||||
return LeftAlign
|
||||
// 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 {
|
||||
return enumStyledProperty(view, subviewID, ItemHorizontalAlign, LeftAlign, false)
|
||||
}
|
||||
|
||||
// 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 {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
|
@ -1332,10 +1250,10 @@ func GetListItemFrame(view View, subviewID string, index int) Frame {
|
|||
}
|
||||
|
||||
// GetListViewAdapter - returns the ListView adapter.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetListViewAdapter(view View, subviewID string) ListAdapter {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
if value := view.Get(Items); value != nil {
|
||||
|
@ -1348,11 +1266,12 @@ func GetListViewAdapter(view View, subviewID string) ListAdapter {
|
|||
}
|
||||
|
||||
// ReloadListViewData updates ListView content
|
||||
// If the second argument (subviewID) is "" then content the first argument (view) is updated.
|
||||
func ReloadListViewData(view View, subviewID string) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
if listView, ok := view.(ListView); ok {
|
||||
listView.ReloadListViewData()
|
||||
|
|
|
@ -224,7 +224,7 @@ func (event *MouseEvent) init(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 {
|
||||
var event MouseEvent
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetClickListeners(view View, subviewID string) []func(View, MouseEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetDoubleClickListeners(view View, subviewID string) []func(View, MouseEvent) {
|
||||
// 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) {
|
||||
return getEventListeners[View, MouseEvent](view, subviewID, DoubleClickEvent)
|
||||
}
|
||||
|
||||
// GetContextMenuListeners returns the "context-menu" 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.
|
||||
func GetContextMenuListeners(view View, subviewID string) []func(View, MouseEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetMouseDownListeners(view View, subviewID string) []func(View, MouseEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetMouseUpListeners(view View, subviewID string) []func(View, MouseEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetMouseMoveListeners(view View, subviewID string) []func(View, MouseEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetMouseOverListeners(view View, subviewID string) []func(View, MouseEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetMouseOutListeners(view View, subviewID string) []func(View, MouseEvent) {
|
||||
// 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) {
|
||||
return getEventListeners[View, MouseEvent](view, subviewID, MouseOut)
|
||||
}
|
||||
|
|
|
@ -111,8 +111,8 @@ func (picker *numberPickerData) set(tag string, value any) bool {
|
|||
return true
|
||||
|
||||
case NumberPickerValue:
|
||||
oldValue := GetNumberPickerValue(picker, "")
|
||||
min, max := GetNumberPickerMinMax(picker, "")
|
||||
oldValue := GetNumberPickerValue(picker)
|
||||
min, max := GetNumberPickerMinMax(picker)
|
||||
if picker.setFloatProperty(NumberPickerValue, value, min, max) {
|
||||
if f, ok := floatProperty(picker, NumberPickerValue, picker.Session(), min); ok && f != oldValue {
|
||||
newValue, _ := floatTextProperty(picker, NumberPickerValue, picker.Session(), min)
|
||||
|
@ -140,29 +140,29 @@ func (picker *numberPickerData) propertyChanged(tag string) {
|
|||
if picker.created {
|
||||
switch tag {
|
||||
case NumberPickerType:
|
||||
if GetNumberPickerType(picker, "") == NumberSlider {
|
||||
if GetNumberPickerType(picker) == NumberSlider {
|
||||
updateProperty(picker.htmlID(), "type", "range", picker.session)
|
||||
} else {
|
||||
updateProperty(picker.htmlID(), "type", "number", picker.session)
|
||||
}
|
||||
|
||||
case NumberPickerMin:
|
||||
min, _ := GetNumberPickerMinMax(picker, "")
|
||||
min, _ := GetNumberPickerMinMax(picker)
|
||||
updateProperty(picker.htmlID(), Min, strconv.FormatFloat(min, 'f', -1, 32), picker.session)
|
||||
|
||||
case NumberPickerMax:
|
||||
_, max := GetNumberPickerMinMax(picker, "")
|
||||
_, max := GetNumberPickerMinMax(picker)
|
||||
updateProperty(picker.htmlID(), Max, strconv.FormatFloat(max, 'f', -1, 32), picker.session)
|
||||
|
||||
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)
|
||||
} else {
|
||||
updateProperty(picker.htmlID(), Step, "any", picker.session)
|
||||
}
|
||||
|
||||
case NumberPickerValue:
|
||||
value := GetNumberPickerValue(picker, "")
|
||||
value := GetNumberPickerValue(picker)
|
||||
picker.session.runScript(fmt.Sprintf(`setInputValue('%s', '%f')`, picker.htmlID(), value))
|
||||
for _, listener := range picker.numberChangedListeners {
|
||||
listener(picker, value)
|
||||
|
@ -192,13 +192,13 @@ func (picker *numberPickerData) htmlTag() string {
|
|||
func (picker *numberPickerData) htmlProperties(self View, buffer *strings.Builder) {
|
||||
picker.viewData.htmlProperties(self, buffer)
|
||||
|
||||
if GetNumberPickerType(picker, "") == NumberSlider {
|
||||
if GetNumberPickerType(picker) == NumberSlider {
|
||||
buffer.WriteString(` type="range"`)
|
||||
} else {
|
||||
buffer.WriteString(` type="number"`)
|
||||
}
|
||||
|
||||
min, max := GetNumberPickerMinMax(picker, "")
|
||||
min, max := GetNumberPickerMinMax(picker)
|
||||
if min != math.Inf(-1) {
|
||||
buffer.WriteString(` min="`)
|
||||
buffer.WriteString(strconv.FormatFloat(min, 'f', -1, 64))
|
||||
|
@ -211,7 +211,7 @@ func (picker *numberPickerData) htmlProperties(self View, buffer *strings.Builde
|
|||
buffer.WriteByte('"')
|
||||
}
|
||||
|
||||
step := GetNumberPickerStep(picker, "")
|
||||
step := GetNumberPickerStep(picker)
|
||||
if step != 0 {
|
||||
buffer.WriteString(` step="`)
|
||||
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(strconv.FormatFloat(GetNumberPickerValue(picker, ""), 'f', -1, 64))
|
||||
buffer.WriteString(strconv.FormatFloat(GetNumberPickerValue(picker), 'f', -1, 64))
|
||||
buffer.WriteByte('"')
|
||||
|
||||
buffer.WriteString(` oninput="editViewInputEvent(this)"`)
|
||||
}
|
||||
|
||||
func (picker *numberPickerData) htmlDisabledProperties(self View, buffer *strings.Builder) {
|
||||
if IsDisabled(self, "") {
|
||||
if IsDisabled(self) {
|
||||
buffer.WriteString(` disabled`)
|
||||
}
|
||||
picker.viewData.htmlDisabledProperties(self, buffer)
|
||||
|
@ -239,7 +239,7 @@ func (picker *numberPickerData) handleCommand(self View, command string, data Da
|
|||
case "textChanged":
|
||||
if text, ok := data.PropertyValue("text"); ok {
|
||||
if value, err := strconv.ParseFloat(text, 32); err == nil {
|
||||
oldValue := GetNumberPickerValue(picker, "")
|
||||
oldValue := GetNumberPickerValue(picker)
|
||||
picker.properties[NumberPickerValue] = text
|
||||
if value != oldValue {
|
||||
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:
|
||||
// NumberEditor (0) - NumberPicker is presented by editor (default type);
|
||||
// NumberSlider (1) - NumberPicker is presented by slider.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetNumberPickerType(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.
|
||||
func GetNumberPickerType(view View, subviewID ...string) int {
|
||||
return enumStyledProperty(view, subviewID, NumberPickerType, NumberEditor, false)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetNumberPickerMinMax(view View, subviewID string) (float64, float64) {
|
||||
// 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) {
|
||||
var pickerType int
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
pickerType = GetNumberPickerType(view, subviewID[0])
|
||||
} else {
|
||||
pickerType = GetNumberPickerType(view)
|
||||
}
|
||||
|
||||
var defMin, defMax float64
|
||||
if GetNumberPickerType(view, subviewID) == NumberSlider {
|
||||
if pickerType == NumberSlider {
|
||||
defMin = 0
|
||||
defMax = 1
|
||||
} else {
|
||||
|
@ -284,9 +291,15 @@ func GetNumberPickerMinMax(view View, subviewID string) (float64, float64) {
|
|||
}
|
||||
|
||||
// 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.
|
||||
func GetNumberPickerStep(view View, subviewID string) float64 {
|
||||
_, max := GetNumberPickerMinMax(view, subviewID)
|
||||
// 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 {
|
||||
var max float64
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
_, max = GetNumberPickerMinMax(view, subviewID[0])
|
||||
} else {
|
||||
_, max = GetNumberPickerMinMax(view)
|
||||
}
|
||||
|
||||
result := floatStyledProperty(view, subviewID, NumberPickerStep, 0)
|
||||
if result > max {
|
||||
return max
|
||||
|
@ -295,16 +308,22 @@ func GetNumberPickerStep(view View, subviewID string) float64 {
|
|||
}
|
||||
|
||||
// GetNumberPickerValue returns the value of NumberPicker subview.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetNumberPickerValue(view View, subviewID string) float64 {
|
||||
min, _ := GetNumberPickerMinMax(view, subviewID)
|
||||
// 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 {
|
||||
var min float64
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
min, _ = GetNumberPickerMinMax(view, subviewID[0])
|
||||
} else {
|
||||
min, _ = GetNumberPickerMinMax(view)
|
||||
}
|
||||
|
||||
result := floatStyledProperty(view, subviewID, NumberPickerValue, min)
|
||||
return result
|
||||
}
|
||||
|
||||
// GetNumberChangedListeners returns the NumberChangedListener list of an NumberPicker subview.
|
||||
// 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.
|
||||
func GetNumberChangedListeners(view View, subviewID string) []func(NumberPicker, float64) {
|
||||
// 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) {
|
||||
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) {
|
||||
listeners := getEventListeners[View, PointerEvent](view, "", tag)
|
||||
listeners := getEventListeners[View, PointerEvent](view, nil, tag)
|
||||
if len(listeners) == 0 {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetPointerDownListeners(view View, subviewID string) []func(View, PointerEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetPointerUpListeners(view View, subviewID string) []func(View, PointerEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetPointerMoveListeners(view View, subviewID string) []func(View, PointerEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetPointerCancelListeners(view View, subviewID string) []func(View, PointerEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetPointerOverListeners(view View, subviewID string) []func(View, PointerEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetPointerOutListeners(view View, subviewID string) []func(View, PointerEvent) {
|
||||
// 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) {
|
||||
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) {
|
||||
if arrow.align == CenterAlign && arrow.off.Type == Auto {
|
||||
r := GetRadius(popupView, "")
|
||||
r := GetRadius(popupView)
|
||||
switch arrow.location {
|
||||
case TopArrow:
|
||||
switch arrow.align {
|
||||
|
@ -176,13 +176,13 @@ func (arrow *popupArrow) createView(popupView View) View {
|
|||
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
|
||||
}
|
||||
|
||||
if filter := GetBackdropFilter(popupView, ""); filter != nil {
|
||||
if filter := GetBackdropFilter(popupView); filter != nil {
|
||||
params[BackdropFilter] = filter
|
||||
}
|
||||
|
||||
|
|
|
@ -65,10 +65,10 @@ func (progress *progressBarData) propertyChanged(tag string) {
|
|||
if progress.created {
|
||||
switch tag {
|
||||
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:
|
||||
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)
|
||||
|
||||
buffer.WriteString(` max="`)
|
||||
buffer.WriteString(strconv.FormatFloat(GetProgressBarMax(progress, ""), 'f', -1, 64))
|
||||
buffer.WriteString(strconv.FormatFloat(GetProgressBarMax(progress), 'f', -1, 64))
|
||||
buffer.WriteByte('"')
|
||||
|
||||
buffer.WriteString(` value="`)
|
||||
buffer.WriteString(strconv.FormatFloat(GetProgressBarValue(progress, ""), 'f', -1, 64))
|
||||
buffer.WriteString(strconv.FormatFloat(GetProgressBarValue(progress), 'f', -1, 64))
|
||||
buffer.WriteByte('"')
|
||||
}
|
||||
|
||||
// GetProgressBarMax returns the max value of ProgressBar subview.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetProgressBarMax(view View, subviewID string) float64 {
|
||||
// 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 {
|
||||
return floatStyledProperty(view, subviewID, ProgressBarMax, 1)
|
||||
}
|
||||
|
||||
// GetProgressBarValue returns the value of ProgressBar subview.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetProgressBarValue(view View, subviewID string) float64 {
|
||||
// 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 {
|
||||
return floatStyledProperty(view, subviewID, ProgressBarValue, 0)
|
||||
}
|
||||
|
|
|
@ -3,8 +3,11 @@ package rui
|
|||
// ResizeEvent is the constant for "resize-event" property tag.
|
||||
// The "resize-event" is fired when the view changes its size.
|
||||
// The main listener format:
|
||||
//
|
||||
// func(View, Frame).
|
||||
//
|
||||
// The additional listener formats:
|
||||
//
|
||||
// func(Frame), func(View), and func().
|
||||
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.Width = width
|
||||
view.frame.Height = height
|
||||
for _, listener := range GetResizeListeners(view, "") {
|
||||
for _, listener := range GetResizeListeners(view) {
|
||||
listener(self, view.frame)
|
||||
}
|
||||
}
|
||||
|
@ -62,10 +65,10 @@ func (view *viewData) Frame() Frame {
|
|||
}
|
||||
|
||||
// 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
|
||||
func GetViewFrame(view View, subviewID string) Frame {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view == nil {
|
||||
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
|
||||
// If the second argument (subviewID) is "" then the listeners list of the first argument (view) is returned
|
||||
func GetResizeListeners(view View, subviewID string) []func(View, Frame) {
|
||||
// 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) {
|
||||
return getEventListeners[View, Frame](view, subviewID, ResizeEvent)
|
||||
}
|
||||
|
|
|
@ -5,8 +5,11 @@ import "fmt"
|
|||
// ScrollEvent is the constant for "scroll-event" property tag.
|
||||
// The "scroll-event" is fired when the content of the view is scrolled.
|
||||
// The main listener format:
|
||||
//
|
||||
// func(View, Frame).
|
||||
//
|
||||
// The additional listener formats:
|
||||
//
|
||||
// func(Frame), func(View), and func().
|
||||
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.Width = width
|
||||
view.scroll.Height = height
|
||||
for _, listener := range GetScrollListeners(view, "") {
|
||||
for _, listener := range GetScrollListeners(view) {
|
||||
listener(self, view.scroll)
|
||||
}
|
||||
}
|
||||
|
@ -32,10 +35,10 @@ func (view *viewData) setScroll(x, y, width, height float64) {
|
|||
}
|
||||
|
||||
// GetViewScroll returns ...
|
||||
// If the second argument (subviewID) is "" then a value of the first argument (view) is returned
|
||||
func GetViewScroll(view View, subviewID string) Frame {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view == nil {
|
||||
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
|
||||
// If the second argument (subviewID) is "" then the listeners list of the first argument (view) is returned
|
||||
func GetScrollListeners(view View, subviewID string) []func(View, Frame) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then the first argument (view) is used
|
||||
func ScrollViewToStart(view View, subviewID string) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// If the second argument (subviewID) is not specified or it is "" then the first argument (view) is used
|
||||
func ScrollViewToStart(view View, subviewID ...string) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then the first argument (view) is used
|
||||
func ScrollViewToEnd(view View, subviewID string) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// If the second argument (subviewID) is not specified or it is "" then the first argument (view) is used
|
||||
func ScrollViewToEnd(view View, subviewID ...string) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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 {
|
||||
return GetTableSelectionMode(table, "") != NoneSelection
|
||||
return GetTableSelectionMode(table) != NoneSelection
|
||||
}
|
||||
|
||||
func (table *tableViewData) Get(tag string) any {
|
||||
|
@ -602,7 +602,7 @@ func (table *tableViewData) propertyChanged(tag string) {
|
|||
htmlID := table.htmlID()
|
||||
session := table.Session()
|
||||
|
||||
switch GetTableSelectionMode(table, "") {
|
||||
switch GetTableSelectionMode(table) {
|
||||
case CellSelection:
|
||||
updateProperty(htmlID, "tabindex", "0", session)
|
||||
updateProperty(htmlID, "onfocus", "tableViewFocusEvent(this, event)", session)
|
||||
|
@ -757,7 +757,7 @@ func (table *tableViewData) htmlProperties(self View, buffer *strings.Builder) {
|
|||
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(table.currentStyle())
|
||||
buffer.WriteString(`" data-bluritemstyle="`)
|
||||
|
@ -831,7 +831,7 @@ func (table *tableViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
|||
view.Init(session)
|
||||
|
||||
ignorCells := []struct{ row, column int }{}
|
||||
selectionMode := GetTableSelectionMode(table, "")
|
||||
selectionMode := GetTableSelectionMode(table)
|
||||
|
||||
var allowCellSelection TableAllowCellSelection = nil
|
||||
if allow, ok := adapter.(TableAllowCellSelection); ok {
|
||||
|
@ -854,7 +854,7 @@ func (table *tableViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
|||
}
|
||||
|
||||
vAlignCss := enumProperties[TableVerticalAlign].cssValues
|
||||
vAlignValue := GetTableVerticalAlign(table, "")
|
||||
vAlignValue := GetTableVerticalAlign(table)
|
||||
if vAlignValue < 0 || vAlignValue >= len(vAlignCss) {
|
||||
vAlignValue = 0
|
||||
}
|
||||
|
@ -1109,8 +1109,8 @@ func (table *tableViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
|||
buffer.WriteString("</colgroup>")
|
||||
}
|
||||
|
||||
headHeight := GetTableHeadHeight(table, "")
|
||||
footHeight := GetTableFootHeight(table, "")
|
||||
headHeight := GetTableHeadHeight(table)
|
||||
footHeight := GetTableFootHeight(table)
|
||||
cellBorder := table.getCellBorder()
|
||||
cellPadding := table.boundsProperty(CellPadding)
|
||||
if cellPadding == nil {
|
||||
|
|
|
@ -24,10 +24,10 @@ func (cell *tableCellView) cssStyle(self View, builder cssBuilder) {
|
|||
}
|
||||
|
||||
// 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.
|
||||
func GetTableContent(view View, subviewID string) TableAdapter {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
|
@ -40,10 +40,10 @@ func GetTableContent(view View, subviewID string) TableAdapter {
|
|||
}
|
||||
|
||||
// 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.
|
||||
func GetTableRowStyle(view View, subviewID string) TableRowStyle {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
|
@ -56,10 +56,10 @@ func GetTableRowStyle(view View, subviewID string) TableRowStyle {
|
|||
}
|
||||
|
||||
// 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.
|
||||
func GetTableColumnStyle(view View, subviewID string) TableColumnStyle {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
|
@ -72,10 +72,10 @@ func GetTableColumnStyle(view View, subviewID string) TableColumnStyle {
|
|||
}
|
||||
|
||||
// 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.
|
||||
func GetTableCellStyle(view View, subviewID string) TableCellStyle {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
|
@ -89,27 +89,27 @@ func GetTableCellStyle(view View, subviewID string) TableCellStyle {
|
|||
|
||||
// GetTableSelectionMode returns the mode of the TableView elements selection.
|
||||
// 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.
|
||||
func GetTableSelectionMode(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.
|
||||
func GetTableSelectionMode(view View, subviewID ...string) int {
|
||||
return enumStyledProperty(view, subviewID, SelectionMode, NoneSelection, false)
|
||||
}
|
||||
|
||||
// GetTableVerticalAlign returns a vertical align in a TavleView cell. Returns one of next values:
|
||||
// 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.
|
||||
func GetTableVerticalAlign(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.
|
||||
func GetTableVerticalAlign(view View, subviewID ...string) int {
|
||||
return enumStyledProperty(view, subviewID, TableVerticalAlign, TopAlign, false)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetTableHeadHeight(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.
|
||||
func GetTableHeadHeight(view View, subviewID ...string) int {
|
||||
return intStyledProperty(view, subviewID, HeadHeight, 0)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetTableFootHeight(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.
|
||||
func GetTableFootHeight(view View, subviewID ...string) int {
|
||||
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),
|
||||
// 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 second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTableCurrent(view View, subviewID string) CellIndex {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
if selectionMode := GetTableSelectionMode(view, ""); selectionMode != NoneSelection {
|
||||
if selectionMode := GetTableSelectionMode(view); selectionMode != NoneSelection {
|
||||
if tableView, ok := view.(TableView); ok {
|
||||
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.
|
||||
// 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.
|
||||
func GetTableCellClickedListeners(view View, subviewID string) []func(TableView, int, int) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != 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.
|
||||
// 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.
|
||||
func GetTableCellSelectedListeners(view View, subviewID string) []func(TableView, int, int) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != 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.
|
||||
// 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.
|
||||
func GetTableRowClickedListeners(view View, subviewID string) []func(TableView, int) {
|
||||
if subviewID != "" {
|
||||
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){}
|
||||
// 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) {
|
||||
return getEventListeners[TableView, int](view, subviewID, TableRowClickedEvent)
|
||||
}
|
||||
|
||||
// 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 the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTableRowSelectedListeners(view View, subviewID string) []func(TableView, int) {
|
||||
if subviewID != "" {
|
||||
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){}
|
||||
// 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) {
|
||||
return getEventListeners[TableView, int](view, subviewID, TableRowSelectedEvent)
|
||||
}
|
||||
|
||||
// ReloadTableViewData updates TableView
|
||||
func ReloadTableViewData(view View, subviewID string) bool {
|
||||
func ReloadTableViewData(view View, subviewID ...string) bool {
|
||||
var tableView TableView
|
||||
if subviewID != "" {
|
||||
if tableView = TableViewByID(view, subviewID); tableView == nil {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
if tableView = TableViewByID(view, subviewID[0]); tableView == nil {
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -523,7 +523,7 @@ func (tabsLayout *tabsLayoutData) ListItem(index int, session Session) View {
|
|||
if !ok || title == "" {
|
||||
title = "No title"
|
||||
}
|
||||
if !GetNotTranslate(tabsLayout, "") {
|
||||
if !GetNotTranslate(tabsLayout) {
|
||||
title, _ = tabsLayout.Session().GetString(title)
|
||||
}
|
||||
|
||||
|
@ -723,7 +723,7 @@ func (tabsLayout *tabsLayoutData) htmlSubviews(self View, buffer *strings.Builde
|
|||
inactiveStyle := tabsLayout.inactiveTabStyle()
|
||||
activeStyle := tabsLayout.activeTabStyle()
|
||||
|
||||
notTranslate := GetNotTranslate(tabsLayout, "")
|
||||
notTranslate := GetNotTranslate(tabsLayout)
|
||||
closeButton, _ := boolProperty(tabsLayout, TabCloseButton, tabsLayout.session)
|
||||
|
||||
var tabStyle, titleDiv string
|
||||
|
|
|
@ -155,7 +155,7 @@ func textToJS(text string) string {
|
|||
func (textView *textViewData) htmlSubviews(self View, buffer *strings.Builder) {
|
||||
if value := textView.getRaw(Text); value != nil {
|
||||
if text, ok := value.(string); ok {
|
||||
if !GetNotTranslate(textView, "") {
|
||||
if !GetNotTranslate(textView) {
|
||||
text, _ = textView.session.GetString(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:
|
||||
// TextOverflowClip (0) or TextOverflowEllipsis (1).
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTextOverflow(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.
|
||||
func GetTextOverflow(view View, subviewID ...string) int {
|
||||
return enumStyledProperty(view, subviewID, TextOverflow, SingleLineText, false)
|
||||
}
|
||||
|
|
|
@ -96,7 +96,7 @@ func (picker *timePickerData) remove(tag string) {
|
|||
case TimePickerValue:
|
||||
if _, ok := picker.properties[TimePickerValue]; ok {
|
||||
delete(picker.properties, TimePickerValue)
|
||||
time := GetTimePickerValue(picker, "")
|
||||
time := GetTimePickerValue(picker)
|
||||
if picker.created {
|
||||
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:
|
||||
oldStep := GetTimePickerStep(picker, "")
|
||||
oldStep := GetTimePickerStep(picker)
|
||||
if picker.setIntProperty(TimePickerStep, value) {
|
||||
if step := GetTimePickerStep(picker, ""); oldStep != step {
|
||||
if step := GetTimePickerStep(picker); oldStep != step {
|
||||
if picker.created {
|
||||
if step > 0 {
|
||||
updateProperty(picker.htmlID(), Step, strconv.Itoa(step), picker.session)
|
||||
|
@ -208,7 +208,7 @@ func (picker *timePickerData) set(tag string, value any) bool {
|
|||
}
|
||||
|
||||
case TimePickerValue:
|
||||
oldTime := GetTimePickerValue(picker, "")
|
||||
oldTime := GetTimePickerValue(picker)
|
||||
if time, ok := setTimeValue(TimePickerValue); ok {
|
||||
if time != oldTime {
|
||||
if picker.created {
|
||||
|
@ -282,7 +282,7 @@ func (picker *timePickerData) htmlProperties(self View, buffer *strings.Builder)
|
|||
}
|
||||
|
||||
buffer.WriteString(` value="`)
|
||||
buffer.WriteString(GetTimePickerValue(picker, "").Format(timeFormat))
|
||||
buffer.WriteString(GetTimePickerValue(picker).Format(timeFormat))
|
||||
buffer.WriteByte('"')
|
||||
|
||||
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) {
|
||||
if IsDisabled(self, "") {
|
||||
if IsDisabled(self) {
|
||||
buffer.WriteString(` disabled`)
|
||||
}
|
||||
picker.viewData.htmlDisabledProperties(self, buffer)
|
||||
|
@ -303,7 +303,7 @@ func (picker *timePickerData) handleCommand(self View, command string, data Data
|
|||
case "textChanged":
|
||||
if text, ok := data.PropertyValue("text"); ok {
|
||||
if value, err := time.Parse(timeFormat, text); err == nil {
|
||||
oldValue := GetTimePickerValue(picker, "")
|
||||
oldValue := GetTimePickerValue(picker)
|
||||
picker.properties[TimePickerValue] = value
|
||||
if value != oldValue {
|
||||
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,
|
||||
// "false" as the second value otherwise.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTimePickerMin(view View, subviewID string) (time.Time, bool) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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,
|
||||
// "false" as the second value otherwise.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTimePickerMax(view View, subviewID string) (time.Time, bool) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTimePickerStep(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.
|
||||
func GetTimePickerStep(view View, subviewID ...string) int {
|
||||
return intStyledProperty(view, subviewID, TimePickerStep, 60)
|
||||
}
|
||||
|
||||
// GetTimePickerValue returns the time of TimePicker subview.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTimePickerValue(view View, subviewID string) time.Time {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view == nil {
|
||||
return time.Now()
|
||||
|
@ -398,7 +398,7 @@ func GetTimePickerValue(view View, subviewID string) time.Time {
|
|||
|
||||
// GetTimeChangedListeners returns the TimeChangedListener list of an TimePicker subview.
|
||||
// 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.
|
||||
func GetTimeChangedListeners(view View, subviewID string) []func(TimePicker, time.Time) {
|
||||
// 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) {
|
||||
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) {
|
||||
listeners := getEventListeners[View, TouchEvent](view, "", tag)
|
||||
listeners := getEventListeners[View, TouchEvent](view, nil, tag)
|
||||
if len(listeners) == 0 {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTouchStartListeners(view View, subviewID string) []func(View, TouchEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTouchEndListeners(view View, subviewID string) []func(View, TouchEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTouchMoveListeners(view View, subviewID string) []func(View, TouchEvent) {
|
||||
// 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) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTouchCancelListeners(view View, subviewID string) []func(View, TouchEvent) {
|
||||
// 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) {
|
||||
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:
|
||||
if _, ok := view.properties[tag]; ok {
|
||||
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:
|
||||
|
@ -325,7 +325,7 @@ func (view *viewData) set(tag string, value any) bool {
|
|||
}
|
||||
view.properties[tag] = text
|
||||
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:
|
||||
|
@ -379,7 +379,7 @@ func viewPropertyChanged(view *viewData, tag string) {
|
|||
return
|
||||
|
||||
case Visibility:
|
||||
switch GetVisibility(view, "") {
|
||||
switch GetVisibility(view) {
|
||||
case Invisible:
|
||||
updateCSSProperty(htmlID, Visibility, "hidden", session)
|
||||
updateCSSProperty(htmlID, "display", "", session)
|
||||
|
@ -448,7 +448,7 @@ func viewPropertyChanged(view *viewData, tag string) {
|
|||
return
|
||||
|
||||
case Outline, OutlineColor, OutlineStyle, OutlineWidth:
|
||||
updateCSSProperty(htmlID, Outline, GetOutline(view, "").cssString(), session)
|
||||
updateCSSProperty(htmlID, Outline, GetOutline(view).cssString(), session)
|
||||
return
|
||||
|
||||
case Shadow:
|
||||
|
@ -463,19 +463,19 @@ func viewPropertyChanged(view *viewData, tag string) {
|
|||
RadiusTopRight, RadiusTopRightX, RadiusTopRightY,
|
||||
RadiusBottomLeft, RadiusBottomLeftX, RadiusBottomLeftY,
|
||||
RadiusBottomRight, RadiusBottomRightX, RadiusBottomRightY:
|
||||
radius := GetRadius(view, "")
|
||||
radius := GetRadius(view)
|
||||
updateCSSProperty(htmlID, "border-radius", radius.cssString(), session)
|
||||
return
|
||||
|
||||
case Margin, MarginTop, MarginRight, MarginBottom, MarginLeft,
|
||||
"top-margin", "right-margin", "bottom-margin", "left-margin":
|
||||
margin := GetMargin(view, "")
|
||||
margin := GetMargin(view)
|
||||
updateCSSProperty(htmlID, Margin, margin.cssString(), session)
|
||||
return
|
||||
|
||||
case Padding, PaddingTop, PaddingRight, PaddingBottom, PaddingLeft,
|
||||
"top-padding", "right-padding", "bottom-padding", "left-padding":
|
||||
padding := GetPadding(view, "")
|
||||
padding := GetPadding(view)
|
||||
updateCSSProperty(htmlID, Padding, padding.cssString(), session)
|
||||
return
|
||||
|
||||
|
@ -680,7 +680,7 @@ func (view *viewData) get(tag string) any {
|
|||
}
|
||||
|
||||
func (view *viewData) htmlTag() string {
|
||||
if semantics := GetSemantics(view, ""); semantics > DefaultSemantics {
|
||||
if semantics := GetSemantics(view); semantics > DefaultSemantics {
|
||||
values := enumProperties[Semantics].cssValues
|
||||
if semantics < len(values) {
|
||||
return values[semantics]
|
||||
|
@ -709,7 +709,7 @@ func (view *viewData) addToCSSStyle(addCSS map[string]string) {
|
|||
|
||||
func (view *viewData) cssStyle(self View, builder cssBuilder) {
|
||||
view.viewStyle.cssViewStyle(builder, view.session)
|
||||
switch GetVisibility(view, "") {
|
||||
switch GetVisibility(view) {
|
||||
case Invisible:
|
||||
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) {
|
||||
if IsDisabled(self, "") {
|
||||
if IsDisabled(self) {
|
||||
buffer.WriteString(` data-disabled="1"`)
|
||||
} else {
|
||||
buffer.WriteString(` data-disabled="0"`)
|
||||
|
@ -748,7 +748,7 @@ func viewHTML(view View, buffer *strings.Builder) {
|
|||
buffer.WriteString(view.htmlID())
|
||||
buffer.WriteRune('"')
|
||||
|
||||
disabled := IsDisabled(view, "")
|
||||
disabled := IsDisabled(view)
|
||||
|
||||
if cls := view.htmlClass(disabled); cls != "" {
|
||||
buffer.WriteString(` class="`)
|
||||
|
@ -825,7 +825,7 @@ func (view *viewData) handleCommand(self View, command string, data DataObject)
|
|||
switch command {
|
||||
|
||||
case KeyDownEvent, KeyUpEvent:
|
||||
if !IsDisabled(self, "") {
|
||||
if !IsDisabled(self) {
|
||||
handleKeyEvents(self, command, data)
|
||||
}
|
||||
|
||||
|
@ -840,13 +840,13 @@ func (view *viewData) handleCommand(self View, command string, data DataObject)
|
|||
|
||||
case FocusEvent:
|
||||
view.hasFocus = true
|
||||
for _, listener := range getFocusListeners(view, "", command) {
|
||||
for _, listener := range getFocusListeners(view, nil, command) {
|
||||
listener(self)
|
||||
}
|
||||
|
||||
case LostFocusEvent:
|
||||
view.hasFocus = false
|
||||
for _, listener := range getFocusListeners(view, "", command) {
|
||||
for _, listener := range getFocusListeners(view, nil, command) {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
||||
func GetClip(view View, subviewID string) ClipShape {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
||||
func GetShapeOutside(view View, subviewID string) ClipShape {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
||||
func GetFilter(view View, subviewID string) ViewFilter {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
if value := view.getRaw(Filter); value != nil {
|
||||
if filter, ok := value.(ViewFilter); ok {
|
||||
return filter
|
||||
}
|
||||
}
|
||||
if value := valueFromStyle(view, Filter); value != nil {
|
||||
if filter, ok := value.(ViewFilter); ok {
|
||||
return filter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// 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
|
||||
func GetBackdropFilter(view View, subviewID string) ViewFilter {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
if value := view.getRaw(BackdropFilter); value != nil {
|
||||
if filter, ok := value.(ViewFilter); ok {
|
||||
return filter
|
||||
}
|
||||
}
|
||||
if value := valueFromStyle(view, BackdropFilter); value != nil {
|
||||
if filter, ok := value.(ViewFilter); ok {
|
||||
return filter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
@ -245,7 +245,7 @@ func (view *viewData) updateTransformProperty(tag string) bool {
|
|||
|
||||
case PerspectiveOriginX, PerspectiveOriginY:
|
||||
if getTransform3D(view, session) {
|
||||
x, y := GetPerspectiveOrigin(view, "")
|
||||
x, y := GetPerspectiveOrigin(view)
|
||||
value := ""
|
||||
if x.Type != Auto || y.Type != Auto {
|
||||
value = x.cssString("50%") + " " + y.cssString("50%")
|
||||
|
@ -255,7 +255,7 @@ func (view *viewData) updateTransformProperty(tag string) bool {
|
|||
|
||||
case BackfaceVisible:
|
||||
if getTransform3D(view, session) {
|
||||
if GetBackfaceVisible(view, "") {
|
||||
if GetBackfaceVisible(view) {
|
||||
updateCSSProperty(htmlID, BackfaceVisible, "visible", session)
|
||||
} else {
|
||||
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.
|
||||
// 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)) {
|
||||
if 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
|
||||
// If the second argument (subviewID) is "" then a state of the first argument (view) is returned
|
||||
func IsDisabled(view View, subviewID string) bool {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
if disabled, _ := boolProperty(view, Disabled, view.Session()); disabled {
|
||||
return true
|
||||
}
|
||||
if parent := view.Parent(); parent != nil {
|
||||
return IsDisabled(parent, "")
|
||||
return IsDisabled(parent)
|
||||
}
|
||||
}
|
||||
return false
|
||||
|
@ -86,22 +86,22 @@ func IsDisabled(view View, subviewID string) bool {
|
|||
// HeaderSemantics (4), MainSemantics (5), FooterSemantics (6), NavigationSemantics (7),
|
||||
// FigureSemantics (8), FigureCaptionSemantics (9), ButtonSemantics (10), ParagraphSemantics (11),
|
||||
// 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
|
||||
func GetSemantics(view View, subviewID string) int {
|
||||
// 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 {
|
||||
return enumStyledProperty(view, subviewID, Semantics, DefaultSemantics, false)
|
||||
}
|
||||
|
||||
// GetOpacity returns the subview opacity.
|
||||
// If the second argument (subviewID) is "" then an opacity of the first argument (view) is returned
|
||||
func GetOpacity(view View, subviewID string) float64 {
|
||||
// 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 {
|
||||
return floatStyledProperty(view, subviewID, Opacity, 1)
|
||||
}
|
||||
|
||||
// GetStyle returns the subview style id.
|
||||
// If the second argument (subviewID) is "" then a style of the first argument (view) is returned
|
||||
func GetStyle(view View, subviewID string) string {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a style of the first argument (view) is returned
|
||||
func GetDisabledStyle(view View, subviewID string) string {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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:
|
||||
// Visible (0), Invisible (1), or Gone (2)
|
||||
// If the second argument (subviewID) is "" then a visibility of the first argument (view) is returned
|
||||
func GetVisibility(view View, subviewID string) int {
|
||||
// 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 {
|
||||
return enumStyledProperty(view, subviewID, Visibility, Visible, false)
|
||||
}
|
||||
|
||||
// GetOverflow returns a value of the subview "overflow" property. Returns one of next values:
|
||||
// OverflowHidden (0), OverflowVisible (1), OverflowScroll (2), OverflowAuto (3)
|
||||
// If the second argument (subviewID) is "" then a value of the first argument (view) is returned
|
||||
func GetOverflow(view View, subviewID string) int {
|
||||
// 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 {
|
||||
defaultOverflow := OverflowHidden
|
||||
view2 := view
|
||||
if subviewID != "" {
|
||||
view2 = ViewByID(view, subviewID)
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view2 = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view2 != nil {
|
||||
switch view.(type) {
|
||||
|
@ -154,87 +154,87 @@ func GetOverflow(view View, subviewID string) int {
|
|||
}
|
||||
|
||||
// GetZIndex returns the subview z-order.
|
||||
// If the second argument (subviewID) is "" then a z-order of the first argument (view) is returned
|
||||
func GetZIndex(view View, subviewID string) int {
|
||||
// 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 {
|
||||
return intStyledProperty(view, subviewID, ZIndex, 0)
|
||||
}
|
||||
|
||||
// GetWidth returns the subview width.
|
||||
// If the second argument (subviewID) is "" then a width of the first argument (view) is returned
|
||||
func GetWidth(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, Width, false)
|
||||
}
|
||||
|
||||
// GetHeight returns the subview height.
|
||||
// If the second argument (subviewID) is "" then a height of the first argument (view) is returned
|
||||
func GetHeight(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, Height, false)
|
||||
}
|
||||
|
||||
// GetMinWidth returns a minimal subview width.
|
||||
// If the second argument (subviewID) is "" then a minimal width of the first argument (view) is returned
|
||||
func GetMinWidth(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, MinWidth, false)
|
||||
}
|
||||
|
||||
// GetMinHeight returns a minimal subview height.
|
||||
// If the second argument (subviewID) is "" then a minimal height of the first argument (view) is returned
|
||||
func GetMinHeight(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, MinHeight, false)
|
||||
}
|
||||
|
||||
// GetMaxWidth returns a maximal subview width.
|
||||
// If the second argument (subviewID) is "" then a maximal width of the first argument (view) is returned
|
||||
func GetMaxWidth(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, MaxWidth, false)
|
||||
}
|
||||
|
||||
// GetMaxHeight returns a maximal subview height.
|
||||
// If the second argument (subviewID) is "" then a maximal height of the first argument (view) is returned
|
||||
func GetMaxHeight(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, MaxHeight, false)
|
||||
}
|
||||
|
||||
// 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)
|
||||
// If the second argument (subviewID) is "" then a value of the first argument (view) is returned
|
||||
func GetResize(view View, subviewID string) int {
|
||||
// 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 {
|
||||
return enumStyledProperty(view, subviewID, Resize, NoneResize, false)
|
||||
}
|
||||
|
||||
// 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 the second argument (subviewID) is "" then a left position of the first argument (view) is returned
|
||||
func GetLeft(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, Left, false)
|
||||
}
|
||||
|
||||
// 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 the second argument (subviewID) is "" then a right position of the first argument (view) is returned
|
||||
func GetRight(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, Right, false)
|
||||
}
|
||||
|
||||
// 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 the second argument (subviewID) is "" then a top position of the first argument (view) is returned
|
||||
func GetTop(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, Top, false)
|
||||
}
|
||||
|
||||
// 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 the second argument (subviewID) is "" then a bottom position of the first argument (view) is returned
|
||||
func GetBottom(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, Bottom, false)
|
||||
}
|
||||
|
||||
// Margin returns the subview margin.
|
||||
// If the second argument (subviewID) is "" then a margin of the first argument (view) is returned
|
||||
func GetMargin(view View, subviewID string) Bounds {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
var bounds Bounds
|
||||
if view != nil {
|
||||
|
@ -244,10 +244,10 @@ func GetMargin(view View, subviewID string) Bounds {
|
|||
}
|
||||
|
||||
// GetPadding returns the subview padding.
|
||||
// If the second argument (subviewID) is "" then a padding of the first argument (view) is returned
|
||||
func GetPadding(view View, subviewID string) Bounds {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
var bounds Bounds
|
||||
if view != nil {
|
||||
|
@ -257,10 +257,10 @@ func GetPadding(view View, subviewID string) Bounds {
|
|||
}
|
||||
|
||||
// GetBorder returns ViewBorders of the subview.
|
||||
// If the second argument (subviewID) is "" then a ViewBorders of the first argument (view) is returned.
|
||||
func GetBorder(view View, subviewID string) ViewBorders {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != 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.
|
||||
// If the second argument (subviewID) is "" then a BoxRadius of the first argument (view) is returned.
|
||||
func GetRadius(view View, subviewID string) BoxRadius {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view == nil {
|
||||
return BoxRadius{}
|
||||
|
@ -283,10 +283,10 @@ func GetRadius(view View, subviewID string) BoxRadius {
|
|||
}
|
||||
|
||||
// GetOutline returns ViewOutline of the subview.
|
||||
// If the second argument (subviewID) is "" then a ViewOutline of the first argument (view) is returned.
|
||||
func GetOutline(view View, subviewID string) ViewOutline {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
if outline := getOutline(view); outline != nil {
|
||||
|
@ -297,10 +297,10 @@ func GetOutline(view View, subviewID string) ViewOutline {
|
|||
}
|
||||
|
||||
// GetViewShadows returns shadows of the subview.
|
||||
// If the second argument (subviewID) is "" then shadows of the first argument (view) is returned.
|
||||
func GetViewShadows(view View, subviewID string) []ViewShadow {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view == nil {
|
||||
return []ViewShadow{}
|
||||
|
@ -309,10 +309,10 @@ func GetViewShadows(view View, subviewID string) []ViewShadow {
|
|||
}
|
||||
|
||||
// GetTextShadows returns text shadows of the subview.
|
||||
// If the second argument (subviewID) is "" then shadows of the first argument (view) is returned.
|
||||
func GetTextShadows(view View, subviewID string) []ViewShadow {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view == nil {
|
||||
return []ViewShadow{}
|
||||
|
@ -321,22 +321,22 @@ func GetTextShadows(view View, subviewID string) []ViewShadow {
|
|||
}
|
||||
|
||||
// GetBackgroundColor returns a background color of the subview.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetBackgroundColor(view View, subviewID string) Color {
|
||||
// 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 {
|
||||
return colorStyledProperty(view, subviewID, BackgroundColor, false)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetAccentColor(view View, subviewID string) Color {
|
||||
// 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 {
|
||||
return colorStyledProperty(view, subviewID, AccentColor, false)
|
||||
}
|
||||
|
||||
// GetFontName returns the subview font.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetFontName(view View, subviewID string) string {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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 {
|
||||
return GetFontName(parent, "")
|
||||
return GetFontName(parent)
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// GetTextColor returns a text color of the subview.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTextColor(view View, subviewID string) Color {
|
||||
// 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 {
|
||||
return colorStyledProperty(view, subviewID, TextColor, true)
|
||||
}
|
||||
|
||||
// GetTextSize returns a text size of the subview.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTextSize(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, TextSize, true)
|
||||
}
|
||||
|
||||
// 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
|
||||
func GetTabSize(view View, subviewID string) int {
|
||||
// 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 {
|
||||
return intStyledProperty(view, subviewID, TabSize, 8)
|
||||
}
|
||||
|
||||
// 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
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTextWeight(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.
|
||||
func GetTextWeight(view View, subviewID ...string) int {
|
||||
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
|
||||
//
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTextAlign(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.
|
||||
func GetTextAlign(view View, subviewID ...string) int {
|
||||
return enumStyledProperty(view, subviewID, TextAlign, LeftAlign, true)
|
||||
}
|
||||
|
||||
// GetTextIndent returns a text indent of the subview.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTextIndent(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, TextIndent, true)
|
||||
}
|
||||
|
||||
// GetLetterSpacing returns a letter spacing of the subview.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetLetterSpacing(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, LetterSpacing, true)
|
||||
}
|
||||
|
||||
// GetWordSpacing returns a word spacing of the subview.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetWordSpacing(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, WordSpacing, true)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetLineHeight(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, LineHeight, true)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func IsItalic(view View, subviewID string) bool {
|
||||
// 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 {
|
||||
return boolStyledProperty(view, subviewID, Italic, true)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func IsSmallCaps(view View, subviewID string) bool {
|
||||
// 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 {
|
||||
return boolStyledProperty(view, subviewID, SmallCaps, true)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func IsStrikethrough(view View, subviewID string) bool {
|
||||
// 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 {
|
||||
return boolStyledProperty(view, subviewID, Strikethrough, true)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func IsOverline(view View, subviewID string) bool {
|
||||
// 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 {
|
||||
return boolStyledProperty(view, subviewID, Overline, true)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func IsUnderline(view View, subviewID string) bool {
|
||||
// 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 {
|
||||
return boolStyledProperty(view, subviewID, Underline, true)
|
||||
}
|
||||
|
||||
// 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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTextLineThickness(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, TextLineThickness, true)
|
||||
}
|
||||
|
||||
// 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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTextLineStyle(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.
|
||||
func GetTextLineStyle(view View, subviewID ...string) int {
|
||||
return enumStyledProperty(view, subviewID, TextLineStyle, SolidLine, true)
|
||||
}
|
||||
|
||||
// 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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTextLineColor(view View, subviewID string) Color {
|
||||
// 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 {
|
||||
return colorStyledProperty(view, subviewID, TextLineColor, true)
|
||||
}
|
||||
|
||||
// GetTextTransform returns a text transform of the subview. Return one of next values:
|
||||
// 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.
|
||||
func GetTextTransform(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.
|
||||
func GetTextTransform(view View, subviewID ...string) int {
|
||||
return enumStyledProperty(view, subviewID, TextTransform, NoneTextTransform, true)
|
||||
}
|
||||
|
||||
// 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),
|
||||
// HorizontalBottomToTop (1), VerticalRightToLeft (2) and VerticalLeftToRight (3)
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetWritingMode(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.
|
||||
func GetWritingMode(view View, subviewID ...string) int {
|
||||
return enumStyledProperty(view, subviewID, WritingMode, HorizontalTopToBottom, true)
|
||||
}
|
||||
|
||||
// GetTextDirection - returns a direction of text, table columns, and horizontal overflow.
|
||||
// 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.
|
||||
func GetTextDirection(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.
|
||||
func GetTextDirection(view View, subviewID ...string) int {
|
||||
if view == nil {
|
||||
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
|
||||
// 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).
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetVerticalTextOrientation(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.
|
||||
func GetVerticalTextOrientation(view View, subviewID ...string) int {
|
||||
return enumStyledProperty(view, subviewID, VerticalTextOrientation, MixedTextOrientation, true)
|
||||
}
|
||||
|
||||
// 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.
|
||||
func GetRow(view View, subviewID string) Range {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a values from the first argument (view) is returned.
|
||||
func GetColumn(view View, subviewID string) Range {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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
|
||||
// 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).
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetPerspective(view View, subviewID string) SizeUnit {
|
||||
// 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 {
|
||||
return sizeStyledProperty(view, subviewID, Perspective, false)
|
||||
}
|
||||
|
||||
// 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%).
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetPerspectiveOrigin(view View, subviewID string) (SizeUnit, SizeUnit) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view == nil {
|
||||
return AutoSize(), AutoSize()
|
||||
|
@ -562,17 +562,17 @@ func GetPerspectiveOrigin(view View, subviewID string) (SizeUnit, SizeUnit) {
|
|||
// visible when turned towards the user. Values:
|
||||
// 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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetBackfaceVisible(view View, subviewID string) bool {
|
||||
// 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 {
|
||||
return boolStyledProperty(view, subviewID, BackfaceVisible, false)
|
||||
}
|
||||
|
||||
// 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%).
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetOrigin(view View, subviewID string) (SizeUnit, SizeUnit, SizeUnit) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view == nil {
|
||||
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
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetTranslate(view View, subviewID string) (SizeUnit, SizeUnit, SizeUnit) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view == nil {
|
||||
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)
|
||||
// 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.
|
||||
func GetSkew(view View, subviewID string) (AngleUnit, AngleUnit) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view == nil {
|
||||
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.
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetScale(view View, subviewID string) (float64, float64, float64) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view == nil {
|
||||
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
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetRotate(view View, subviewID string) (float64, float64, float64, AngleUnit) {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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) {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view == nil {
|
||||
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,
|
||||
// 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
|
||||
func GetAvoidBreak(view View, subviewID string) bool {
|
||||
// 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 {
|
||||
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)
|
||||
}
|
||||
|
||||
|
@ -663,7 +663,7 @@ func valueFromStyle(view View, tag string) any {
|
|||
return nil
|
||||
}
|
||||
|
||||
if IsDisabled(view, "") {
|
||||
if IsDisabled(view) {
|
||||
if value := getValue(StyleDisabled); value != nil {
|
||||
return value
|
||||
}
|
||||
|
@ -671,10 +671,11 @@ func valueFromStyle(view View, tag string) any {
|
|||
return getValue(Style)
|
||||
}
|
||||
|
||||
func sizeStyledProperty(view View, subviewID string, tag string, inherit bool) SizeUnit {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
func sizeStyledProperty(view View, subviewID []string, tag string, inherit bool) SizeUnit {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
if value, ok := sizeProperty(view, tag, view.Session()); ok {
|
||||
return value
|
||||
|
@ -687,17 +688,18 @@ func sizeStyledProperty(view View, subviewID string, tag string, inherit bool) S
|
|||
|
||||
if inherit {
|
||||
if parent := view.Parent(); parent != nil {
|
||||
return sizeStyledProperty(parent, "", tag, true)
|
||||
return sizeStyledProperty(parent, []string{}, tag, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
return AutoSize()
|
||||
}
|
||||
|
||||
func enumStyledProperty(view View, subviewID string, tag string, defaultValue int, inherit bool) int {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
func enumStyledProperty(view View, subviewID []string, tag string, defaultValue int, inherit bool) int {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
if value, ok := enumProperty(view, tag, view.Session(), defaultValue); ok {
|
||||
return value
|
||||
|
@ -710,16 +712,16 @@ func enumStyledProperty(view View, subviewID string, tag string, defaultValue in
|
|||
|
||||
if inherit {
|
||||
if parent := view.Parent(); parent != nil {
|
||||
return enumStyledProperty(parent, "", tag, defaultValue, true)
|
||||
return enumStyledProperty(parent, []string{}, tag, defaultValue, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
return defaultValue
|
||||
}
|
||||
|
||||
func boolStyledProperty(view View, subviewID string, tag string, inherit bool) bool {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
func boolStyledProperty(view View, subviewID []string, tag string, inherit bool) bool {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
|
@ -734,7 +736,7 @@ func boolStyledProperty(view View, subviewID string, tag string, inherit bool) b
|
|||
|
||||
if inherit {
|
||||
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
|
||||
}
|
||||
|
||||
func intStyledProperty(view View, subviewID string, tag string, defaultValue int) int {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
func intStyledProperty(view View, subviewID []string, tag string, defaultValue int) int {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
if view != nil {
|
||||
if value, ok := intProperty(view, tag, view.Session(), defaultValue); ok {
|
||||
return value
|
||||
|
@ -758,9 +761,9 @@ func intStyledProperty(view View, subviewID string, tag string, defaultValue int
|
|||
return defaultValue
|
||||
}
|
||||
|
||||
func floatStyledProperty(view View, subviewID string, tag string, defaultValue float64) float64 {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
func floatStyledProperty(view View, subviewID []string, tag string, defaultValue float64) float64 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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
|
||||
}
|
||||
|
||||
func colorStyledProperty(view View, subviewID, tag string, inherit bool) Color {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
func colorStyledProperty(view View, subviewID []string, tag string, inherit bool) Color {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
if view != nil {
|
||||
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 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).
|
||||
// If the second argument (subviewID) is "" then a value from the first argument (view) is returned.
|
||||
func GetCurrent(view View, subviewID string) int {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
defaultValue := -1
|
||||
|
@ -845,10 +848,10 @@ func GetCurrent(view View, subviewID string) int {
|
|||
}
|
||||
|
||||
// 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.
|
||||
func IsUserSelect(view View, subviewID string) bool {
|
||||
if subviewID != "" {
|
||||
view = ViewByID(view, subviewID)
|
||||
// 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 {
|
||||
if len(subviewID) > 0 && subviewID[0] != "" {
|
||||
view = ViewByID(view, subviewID[0])
|
||||
}
|
||||
|
||||
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,
|
||||
H6Semantics, BlockquoteSemantics, CodeSemantics:
|
||||
return true, false
|
||||
|
|
|
@ -186,9 +186,9 @@ func (container *viewsContainerData) set(tag string, value any) bool {
|
|||
// do nothing
|
||||
|
||||
case Disabled:
|
||||
oldDisabled := IsDisabled(container, "")
|
||||
oldDisabled := IsDisabled(container)
|
||||
if container.viewData.Set(Disabled, value) {
|
||||
disabled := IsDisabled(container, "")
|
||||
disabled := IsDisabled(container)
|
||||
if oldDisabled != disabled {
|
||||
if container.views != nil {
|
||||
for _, view := range container.views {
|
||||
|
|
Loading…
Reference in New Issue