Добавление и исправление комментариев, начало добавление валидации, сообщение прокрути viewport на форме
This commit is contained in:
parent
c7ff7662ba
commit
e37cabadcc
14 changed files with 371 additions and 297 deletions
31
setup/utils/utils.go
Normal file
31
setup/utils/utils.go
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
package utils
|
||||
|
||||
// CalculateSelectOptionsIndex рассчитывает индекс первой и последней опции для отображения в поле выбора
|
||||
func CalculateSelectOptionsIndex(focus, visibleCount, optionsCount int) (int, int) {
|
||||
//Если количество отображаемых больше, чем есть количество опций на самом деле,
|
||||
//то меняем количество опций для отображения на количество опций.
|
||||
if visibleCount > optionsCount {
|
||||
visibleCount = optionsCount
|
||||
}
|
||||
//Количество объектов сверху и снизу
|
||||
half := visibleCount / 2
|
||||
//Индекс первой опции для показа в списке
|
||||
start := focus - half
|
||||
//Если индекс меньше 0, то фиксируем его на первой
|
||||
if start < 0 {
|
||||
start = 0
|
||||
}
|
||||
//Индекс последней опции для показа в списке
|
||||
end := start + visibleCount
|
||||
//Если индекс больше, чем количество опций для вывода,
|
||||
//то фиксируем его на последней опции.
|
||||
//Производим перерасчет индекса первой опции
|
||||
if end > optionsCount {
|
||||
end = optionsCount
|
||||
start = end - visibleCount
|
||||
if start < 0 {
|
||||
start = 0
|
||||
}
|
||||
}
|
||||
return start, end
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue