test19.nim 779 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. # --- Test 19. Use RichEditText node. --- #
  2. import
  3. strutils,
  4. nodesnim
  5. Window("hello world")
  6. var
  7. main = Scene("Main")
  8. label = RichEditText()
  9. main.addChild(label)
  10. label.setSizeAnchor(1, 1)
  11. label.process =
  12. proc() =
  13. label.text.setColor(Color(1f, 1f, 1f))
  14. label.text.setUnderline(false)
  15. # Nim highlight
  16. var start_position = ($label.text).find("Nim")
  17. while start_position > -1:
  18. label.text.setColor(start_position, start_position+2, Color(0xaa99ffff'u32))
  19. start_position = ($label.text).find("Nim", start_position+2)
  20. # word underline
  21. if label.text.len() > 0:
  22. let (s, e) = label.getWordPositionUnderMouse()
  23. if s != -1:
  24. label.text.setUnderline(s, e, true)
  25. addScene(main)
  26. setMainScene("Main")
  27. windowLaunch()