()
| 100 | func (tx *Text) WidgetValue() any { return &tx.Text } |
| 101 | |
| 102 | func (tx *Text) Init() { |
| 103 | tx.WidgetBase.Init() |
| 104 | tx.SetType(TextBodyLarge) |
| 105 | tx.Styler(func(s *styles.Style) { |
| 106 | s.SetAbilities(true, abilities.Selectable, abilities.DoubleClickable) |
| 107 | if len(tx.paintText.Links) > 0 { |
| 108 | s.SetAbilities(true, abilities.Clickable, abilities.LongHoverable, abilities.LongPressable) |
| 109 | } |
| 110 | if !tx.IsReadOnly() { |
| 111 | s.Cursor = cursors.Text |
| 112 | } |
| 113 | s.GrowWrap = true |
| 114 | |
| 115 | // Text styles based on https://m3.material.io/styles/typography/type-scale-tokens |
| 116 | switch tx.Type { |
| 117 | case TextLabelLarge: |
| 118 | s.Text.LineHeight.Dp(20) |
| 119 | s.Font.Size.Dp(14) |
| 120 | s.Text.LetterSpacing.Dp(0.1) |
| 121 | s.Font.Weight = styles.WeightMedium // note: excludes all fonts except Go! |
| 122 | case TextLabelMedium: |
| 123 | s.Text.LineHeight.Dp(16) |
| 124 | s.Font.Size.Dp(12) |
| 125 | s.Text.LetterSpacing.Dp(0.5) |
| 126 | s.Font.Weight = styles.WeightMedium |
| 127 | case TextLabelSmall: |
| 128 | s.Text.LineHeight.Dp(16) |
| 129 | s.Font.Size.Dp(11) |
| 130 | s.Text.LetterSpacing.Dp(0.5) |
| 131 | s.Font.Weight = styles.WeightMedium |
| 132 | case TextBodyLarge: |
| 133 | s.Text.LineHeight.Dp(24) |
| 134 | s.Font.Size.Dp(16) |
| 135 | s.Text.LetterSpacing.Dp(0.5) |
| 136 | s.Font.Weight = styles.WeightNormal |
| 137 | case TextBodyMedium: |
| 138 | s.Text.LineHeight.Dp(20) |
| 139 | s.Font.Size.Dp(14) |
| 140 | s.Text.LetterSpacing.Dp(0.25) |
| 141 | s.Font.Weight = styles.WeightNormal |
| 142 | case TextBodySmall: |
| 143 | s.Text.LineHeight.Dp(16) |
| 144 | s.Font.Size.Dp(12) |
| 145 | s.Text.LetterSpacing.Dp(0.4) |
| 146 | s.Font.Weight = styles.WeightNormal |
| 147 | case TextTitleLarge: |
| 148 | s.Text.LineHeight.Dp(28) |
| 149 | s.Font.Size.Dp(22) |
| 150 | s.Text.LetterSpacing.Zero() |
| 151 | s.Font.Weight = styles.WeightNormal |
| 152 | case TextTitleMedium: |
| 153 | s.Text.LineHeight.Dp(24) |
| 154 | s.Font.Size.Dp(16) |
| 155 | s.Text.LetterSpacing.Dp(0.15) |
| 156 | s.Font.Weight = styles.WeightMedium |
| 157 | case TextTitleSmall: |
| 158 | s.Text.LineHeight.Dp(20) |
| 159 | s.Font.Size.Dp(14) |
nothing calls this directly
no test coverage detected