@@ -16,6 +16,7 @@ type config struct {
16
16
windowInitializerDeprecated func (* glfw.Window ) error
17
17
windowIconProvider func () ([]image.Image , error )
18
18
windowInitialDimensions windowDimensions
19
+ windowDimensionLimits windowDimensionLimits
19
20
windowMode windowMode
20
21
21
22
forcePixelRatio float64
@@ -25,16 +26,23 @@ type config struct {
25
26
}
26
27
27
28
type windowDimensions struct {
28
- x int
29
- y int
29
+ width int
30
+ height int
31
+ }
32
+
33
+ type windowDimensionLimits struct {
34
+ minWidth int
35
+ minHeight int
36
+ maxWidth int
37
+ maxHeight int
30
38
}
31
39
32
40
// defaultApplicationConfig define the default configuration values for a new
33
41
// Application. These values may be changed at any time.
34
42
var defaultApplicationConfig = config {
35
43
windowInitialDimensions : windowDimensions {
36
- x : 800 ,
37
- y : 600 ,
44
+ width : 800 ,
45
+ height : 600 ,
38
46
},
39
47
keyboardLayout : KeyboardQwertyLayout ,
40
48
windowMode : WindowModeDefault ,
@@ -94,19 +102,47 @@ func ApplicationWindowDimension(x, y int) Option {
94
102
}
95
103
96
104
// WindowInitialDimensions specify the startup's dimension of the window.
97
- func WindowInitialDimensions (x , y int ) Option {
98
- if x < 1 {
105
+ func WindowInitialDimensions (width , height int ) Option {
106
+ if width < 1 {
99
107
fmt .Println ("go-flutter: invalid initial value for width, must be 1 or greater." )
100
108
os .Exit (1 )
101
109
}
102
- if y < 1 {
110
+ if height < 1 {
103
111
fmt .Println ("go-flutter: invalid initial value for height, must be 1 or greater." )
104
112
os .Exit (1 )
105
113
}
106
114
107
115
return func (c * config ) {
108
- c .windowInitialDimensions .x = x
109
- c .windowInitialDimensions .y = y
116
+ c .windowInitialDimensions .width = width
117
+ c .windowInitialDimensions .height = height
118
+ }
119
+ }
120
+
121
+ // WindowDimensionLimits specify the dimension limits of the window.
122
+ // Does not work when the window is fullscreen or not resizable.
123
+ func WindowDimensionLimits (minWidth , minHeight , maxWidth , maxHeight int ) Option {
124
+ if minWidth < 1 {
125
+ fmt .Println ("go-flutter: invalid initial value for minWidth, must be 1 or greater." )
126
+ os .Exit (1 )
127
+ }
128
+ if minHeight < 1 {
129
+ fmt .Println ("go-flutter: invalid initial value for minHeight, must be 1 or greater." )
130
+ os .Exit (1 )
131
+ }
132
+ if maxWidth < minWidth {
133
+ fmt .Println ("go-flutter: invalid initial value for maxWidth, must be greater or equal to minWidth." )
134
+ os .Exit (1 )
135
+ }
136
+ if maxHeight < minHeight {
137
+ fmt .Println ("go-flutter: invalid initial value for maxHeight, must be greater or equal to minHeight." )
138
+ os .Exit (1 )
139
+ }
140
+
141
+ return func (c * config ) {
142
+ c .windowDimensionLimits .minWidth = minWidth
143
+ c .windowDimensionLimits .minHeight = minHeight
144
+ c .windowDimensionLimits .maxWidth = maxWidth
145
+ c .windowDimensionLimits .maxHeight = maxHeight
110
146
}
111
147
}
112
148
0 commit comments