MCPcopy Create free account
hub / github.com/andlabs/ui / attributeFromLibui

Function attributeFromLibui

drawtext.go:264–318  ·  view source on GitHub ↗
(a *C.uiAttribute)

Source from the content-addressed store, hash-verified

262}
263
264func attributeFromLibui(a *C.uiAttribute) Attribute {
265 switch C.uiAttributeGetType(a) {
266 case C.uiAttributeTypeFamily:
267 cf := C.uiAttributeFamily(a)
268 return TextFamily(C.GoString(cf))
269 case C.uiAttributeTypeSize:
270 return TextSize(C.uiAttributeSize(a))
271 case C.uiAttributeTypeWeight:
272 return TextWeight(C.uiAttributeWeight(a))
273 case C.uiAttributeTypeItalic:
274 return TextItalic(C.uiAttributeItalic(a))
275 case C.uiAttributeTypeStretch:
276 return TextStretch(C.uiAttributeStretch(a))
277 case C.uiAttributeTypeColor:
278 cc := C.pkguiAllocColorDoubles()
279 defer C.pkguiFreeColorDoubles(cc)
280 C.uiAttributeColor(a, cc.r, cc.g, cc.b, cc.a)
281 return TextColor{
282 R: float64(*(cc.r)),
283 G: float64(*(cc.g)),
284 B: float64(*(cc.b)),
285 A: float64(*(cc.a)),
286 }
287 case C.uiAttributeTypeBackground:
288 cc := C.pkguiAllocColorDoubles()
289 defer C.pkguiFreeColorDoubles(cc)
290 C.uiAttributeColor(a, cc.r, cc.g, cc.b, cc.a)
291 return TextBackground{
292 R: float64(*(cc.r)),
293 G: float64(*(cc.g)),
294 B: float64(*(cc.b)),
295 A: float64(*(cc.a)),
296 }
297 case C.uiAttributeTypeUnderline:
298 return Underline(C.uiAttributeUnderline(a))
299 case C.uiAttributeTypeUnderlineColor:
300 cu := C.pkguiNewUnderlineColor()
301 defer C.pkguiFreeUnderlineColor(cu)
302 cc := C.pkguiAllocColorDoubles()
303 defer C.pkguiFreeColorDoubles(cc)
304 C.uiAttributeUnderlineColor(a, cu, cc.r, cc.g, cc.b, cc.a)
305 if *cu == C.uiUnderlineColorCustom {
306 return UnderlineColorCustom{
307 R: float64(*(cc.r)),
308 G: float64(*(cc.g)),
309 B: float64(*(cc.b)),
310 A: float64(*(cc.a)),
311 }
312 }
313 return UnderlineColor(*cu)
314 case C.uiAttributeTypeFeatures:
315 // TODO
316 }
317 panic("unreachable")
318}
319
320// AttributedString represents a string of UTF-8 text that can
321// optionally be embellished with formatting attributes. Package ui

Callers

nothing calls this directly

Calls 7

TextFamilyTypeAlias · 0.85
TextSizeTypeAlias · 0.85
TextWeightTypeAlias · 0.85
TextItalicTypeAlias · 0.85
TextStretchTypeAlias · 0.85
UnderlineTypeAlias · 0.85
UnderlineColorTypeAlias · 0.85

Tested by

no test coverage detected