duit_go

Форк
0
/
list_view_attributes.go 
61 строка · 3.1 Кб
1
package duit_attributes
2

3
import (
4
	"github.com/lesleysin/duit_go/pkg/duit_attributes/duit_clip"
5
	"github.com/lesleysin/duit_go/pkg/duit_attributes/duit_edge_insets"
6
	"github.com/lesleysin/duit_go/pkg/duit_attributes/duit_flex"
7
	"github.com/lesleysin/duit_go/pkg/duit_attributes/duit_gestures"
8
	"github.com/lesleysin/duit_go/pkg/duit_core"
9
)
10

11
type ListKind uint8
12
type MergeStrategy uint8
13

14
const (
15
	Common ListKind = iota
16
	Builder
17
	Separated
18
)
19

20
const (
21
	AddToEnd MergeStrategy = iota
22
	AddToStart
23
	Replace
24
)
25

26
type ListView[TInsets duit_edge_insets.EdgeInsets] struct {
27
	Type                    ListKind                                        `json:"type"`
28
	ScrollPhysics           duit_gestures.ScrollPhysics                     `json:"scrollPhysics,omitempty"`
29
	Reverse                 bool                                            `json:"reverse,omitempty"`
30
	Primary                 bool                                            `json:"primary,omitempty"`
31
	ShrinkWrap              bool                                            `json:"shrinkWrap,omitempty"`
32
	AddAutomaticKeepAlives  bool                                            `json:"addAutomaticKeepAlives,omitempty"`
33
	AddRepaintBoundaries    bool                                            `json:"addRepaintBoundaries,omitempty"`
34
	AddSemanticIndexes      bool                                            `json:"addSemanticIndexes,omitempty"`
35
	ScrollDirection         duit_flex.Axis                                  `json:"scrollDirection,omitempty"`
36
	CacheExtent             float32                                         `json:"cacheExtent,omitempty"`
37
	Anchor                  float32                                         `json:"anchors,omitempty"`
38
	SemantickChildCount     int                                             `json:"semanticChildCount,omitempty"`
39
	Padding                 *TInsets                                        `json:"padding,omitempty"`
40
	ItemExtent              float32                                         `json:"itemExtent,omitempty"`
41
	ClipBehavior            duit_clip.Clip                                  `json:"clipBehavior,omitempty"`
42
	RestorationId           string                                          `json:"restorationId,omitempty"`
43
	DragStarnBehavior       duit_gestures.DragStartBehavior                 `json:"dragStartBehavior,omitempty"`
44
	KeyboardDismissBehavior duit_gestures.ScrollViewKeyboardDismissBehavior `json:"keyboardDismissBehavior,omitempty"`
45
}
46

47
type ListViewBuilderAttributes[TInsets duit_edge_insets.EdgeInsets] struct {
48
	ListView[TInsets]
49
	ChildObjects              []*duit_core.DuitElementModel `json:"children,omitempty"`
50
	ScrollEndReachedThreshold float32                       `json:"scrollEndReachedThreshold,omitempty"`
51
	MergeStrategy             MergeStrategy                 `json:"mergeStrategy,omitempty"`
52
}
53

54
type ListViewSeparatedAttributes[TInsets duit_edge_insets.EdgeInsets] struct {
55
	ListViewBuilderAttributes[TInsets]
56
	Separator *duit_core.DuitElementModel `json:"separator"`
57
}
58

59
type ListViewAttributes[TInsets duit_edge_insets.EdgeInsets] interface {
60
	ListView[TInsets] | ListViewBuilderAttributes[TInsets] | ListViewSeparatedAttributes[TInsets]
61
}
62

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.