SizeClass returns the size class of the scene in which the widget is contained.
()
| 23 | |
| 24 | // SizeClass returns the size class of the scene in which the widget is contained. |
| 25 | func (wb *WidgetBase) SizeClass() SizeClasses { |
| 26 | dots := float32(wb.Scene.sceneGeom.Size.X) |
| 27 | if wb.Scene.prefSizing { |
| 28 | if currentRenderWindow != nil { |
| 29 | rg := currentRenderWindow.SystemWindow.RenderGeom() |
| 30 | dots = float32(rg.Size.X) |
| 31 | } |
| 32 | } |
| 33 | dpd := wb.Scene.Styles.UnitContext.Dp(1) // dots per dp |
| 34 | dp := dots / dpd // dots / (dots / dp) = dots * (dp / dots) = dp |
| 35 | switch { |
| 36 | case dp < 600: |
| 37 | return SizeCompact |
| 38 | case dp > 840: |
| 39 | return SizeExpanded |
| 40 | default: |
| 41 | return SizeMedium |
| 42 | } |
| 43 | } |