/lib/Canvas.io

http://github.com/pgregory/blackpool · Unknown · 56 lines · 45 code · 11 blank · 0 comment · 0 complexity · 25c93d2d3a0ec7b1ec53676fb6284b36 MD5 · raw file

  1. Message isSingular := method(self next == nil)
  2. Canvas := Object clone do(
  3. init := method(
  4. result ::= Sequence clone
  5. callbacks ::= nil
  6. )
  7. elements := """h1 h2 h3 h4 h5 h6 a abbr area b blockquote body br canvas caption cite code col dd del div dt dl em embed footer head header i html hr label nav p script sup summery textarea td tbody table tfoot th thead title time tr u ul ol li"""
  8. elements split foreach(tag,
  9. setSlot(tag,
  10. method(
  11. Tag clone setTag(call message name)
  12. )
  13. )
  14. )
  15. text := method(str,
  16. result appendSeq(str)
  17. self
  18. )
  19. space := method(str,
  20. result appendSeq(" ")
  21. self
  22. )
  23. link := method(name, code,
  24. id := callbacks register(list(call sender, code))
  25. result appendSeq("<a href='?_k=",id,"'>",name,"</a>")
  26. self
  27. )
  28. button := method(name, code,
  29. id := callbacks register(list(call sender, code))
  30. result appendSeq("<button type='submit' name='_k' value='",id,"'>",name,"</button>")
  31. self
  32. )
  33. inputText := method(
  34. InputTextTag clone
  35. )
  36. inputTextArea := method(
  37. InputTextAreaTag clone
  38. )
  39. inputDate := method(
  40. InputDateTag clone
  41. )
  42. render := method(component,
  43. component renderOn(self)
  44. )
  45. )