-
Notifications
You must be signed in to change notification settings - Fork 0
/
Types.fs
136 lines (119 loc) · 3.23 KB
/
Types.fs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
module BlindfoldChessTraining.Types
open BlindfoldChessMechanics
open Fabulous
open Fabulous.Maui
open FSharpx.Collections
open Microsoft.Maui.Media
open type Fabulous.Maui.View
exception UnknownOS
exception WrongCategoryId
exception InvalidBoardRow of int
type OS =
| Android
| IOS
// change it on version updates
type PuzzleObject_V_4_0_0() =
member val CategoryId = 0 with get, set
member val Level = 0 with get, set
member val IndexInLevel = 0 with get, set
member val Game = "" with get, set
type Sponsor =
{ SponsorName: string
SponsorImage: string }
type SelectedPage =
| HomePage
| EndgamePuzzlesPage
| OpeningPuzzlesPage
| DescriptionPage
| OptionsPage
| CreditsPage
type ConfigOptions =
{ AreCoordsEnabled: bool
AreSymbolsEnabled: bool
BoardSizeRatio: float
FontSizeRatio: float
LocaleIndex: int
SpeechPitch: float32 }
type CurrentGame =
{ CategoryId: int
Level: int
IndexInLevel: int
IsWhiteToMove: bool
InitBoard: Logic.Board.Board
MovesWithNumberIndicators: (string * bool) LazyList
Boards: Logic.Board.Board array
WhitePieces: string LazyList
BlackPieces: string LazyList
Announcements: string array }
type Model =
{ SponsorDetails: Sponsor option
IsSponsorTime: bool
SelectedPage: SelectedPage
Locales: Locale LazyList
IsDisplayBoardEnabled: bool
ConfigOptions: ConfigOptions
CurrentGame: CurrentGame
CurrentMoveIndex: int option
IsPuzzleSolved: bool
CurrentAnnouncementIndex: int
DidSpeakInPuzzle: bool
LastVolumePressOrPanGestureMillis: int64 }
type ConfigMsg =
| SwitchAreCoordsEnabled
| SwitchAreSymbolsEnabled
| SetBoardSizeRatio of float
| SetFontSizeRatio of float
| SetSpeechPitch of float32
| SetLocaleIndex of int
| Reset
type ExternalUrl =
| GitHub
| LinkedIn
| AppStore
| PrivacyPolicy
type GoToTarget =
| NextLevel
| PrevLevel
| NextPuzzle
| PrevPuzzle
| NextPos
| PrevPos
| InitPos
| LastPos
type KeyCodeResult =
| VolumeUpCodeResult
| VolumeDownCodeResult
| BackCodeResult
| UnknownCodeResult
type IKeyCodeReceivedService =
[<CLIEvent>]
abstract KeyCodeReceived: IEvent<KeyCodeResult>
type Msg =
| NoOp
| LocalesLoaded of Locale LazyList
| StopSponsorDisplay
| SelectPage of SelectedPage
| GoToMsg of GoToTarget
| Speak of string
| ShowSolution
| BackPressed
| VolumeUpPressed
| PanRightGesture
| VolumeDownPressed
| PanLeftGesture
| SwitchIsDisplayBoardEnabled
| SetConfig of ConfigMsg
| UrlClick of ExternalUrl
| ShareApp
| KeyCodeMessage of KeyCodeResult
type WidgetFabImage = WidgetBuilder<Msg, IFabImage>
type WidgetFabLayout =
| HorizSt of WidgetBuilder<Msg, IFabHorizontalStackLayout>
| VertSt of WidgetBuilder<Msg, IFabVerticalStackLayout>
| Flx of WidgetBuilder<Msg, IFabFlexLayout>
| Grd of WidgetBuilder<Msg, IFabGrid>
| Sld of WidgetBuilder<Msg, IFabSlider>
| Lbl of WidgetBuilder<Msg, IFabLabel>
| Btn of WidgetBuilder<Msg, IFabButton>
| Ind of WidgetBuilder<Msg, IFabActivityIndicator>
| Img of WidgetFabImage