src/Pure/Thy/html.scala
changeset 66210 a8b936749300
parent 66209 3a4dfe10ab1a
child 66212 f41396c15bb1
equal deleted inserted replaced
66209:3a4dfe10ab1a 66210:a8b936749300
   195 
   195 
   196   def source(body: XML.Body): XML.Elem = pre("source", body)
   196   def source(body: XML.Body): XML.Elem = pre("source", body)
   197   def source(src: String): XML.Elem = source(text(src))
   197   def source(src: String): XML.Elem = source(text(src))
   198 
   198 
   199   def style(s: String): XML.Elem = XML.elem("style", text(s))
   199   def style(s: String): XML.Elem = XML.elem("style", text(s))
   200 
       
   201   def style_file(href: String): XML.Elem =
   200   def style_file(href: String): XML.Elem =
   202     XML.Elem(Markup("link", List("rel" -> "stylesheet", "type" -> "text/css", "href" -> href)), Nil)
   201     XML.Elem(Markup("link", List("rel" -> "stylesheet", "type" -> "text/css", "href" -> href)), Nil)
   203 
   202 
       
   203   def script(s: String): XML.Elem = XML.elem("script", text(s))
       
   204   def script_file(href: String): XML.Elem = XML.Elem(Markup("script", List("src" -> href)), Nil)
   204 
   205 
   205   /* messages */
   206   /* messages */
   206 
   207 
   207   // background
   208   // background
   208   val writeln_message: Attribute = class_("writeln_message")
   209   val writeln_message: Attribute = class_("writeln_message")
   244       if (selected) List("checked" -> "") else Nil
   245       if (selected) List("checked" -> "") else Nil
   245 
   246 
   246     private def optional_action(action: String): XML.Attributes =
   247     private def optional_action(action: String): XML.Attributes =
   247       proper_string(action).map(a => "action" -> a).toList
   248       proper_string(action).map(a => "action" -> a).toList
   248 
   249 
   249     def button(body: XML.Body, name: String = "", tooltip: String = "", submit: Boolean = false)
   250     private def optional_onclick(script: String): XML.Attributes =
   250         : XML.Elem =
   251       proper_string(script).map(a => "onclick" -> a).toList
       
   252 
       
   253     private def optional_onchange(script: String): XML.Attributes =
       
   254       proper_string(script).map(a => "onchange" -> a).toList
       
   255 
       
   256     def button(body: XML.Body, name: String = "", tooltip: String = "", submit: Boolean = false,
       
   257         script: String = ""): XML.Elem =
   251       XML.Elem(
   258       XML.Elem(
   252         Markup("button",
   259         Markup("button",
   253           List("type" -> (if (submit) "submit" else "button"), "value" -> "true") :::
   260           List("type" -> (if (submit) "submit" else "button"), "value" -> "true") :::
   254           optional_name(name) ::: optional_title(tooltip)), body)
   261           optional_name(name) ::: optional_title(tooltip) ::: optional_onclick(script)), body)
   255 
   262 
   256     def checkbox(body: XML.Body, name: String = "", tooltip: String = "", submit: Boolean = false,
   263     def checkbox(body: XML.Body, name: String = "", tooltip: String = "", submit: Boolean = false,
   257         selected: Boolean = false): XML.Elem =
   264         selected: Boolean = false, script: String = ""): XML.Elem =
   258       XML.elem("label",
   265       XML.elem("label",
   259         XML.elem(
   266         XML.elem(
   260           Markup("input",
   267           Markup("input",
   261             List("type" -> "checkbox", "value" -> "true") ::: optional_name(name) :::
   268             List("type" -> "checkbox", "value" -> "true") ::: optional_name(name) :::
   262               optional_title(tooltip) ::: optional_submit(submit) :::
   269               optional_title(tooltip) ::: optional_submit(submit) :::
   263               optional_checked(selected))) :: body)
   270               optional_checked(selected) ::: optional_onchange(script))) :: body)
   264 
   271 
   265     def text_field(columns: Int = 0, text: String = "", name: String = "", tooltip: String = "",
   272     def text_field(columns: Int = 0, text: String = "", name: String = "", tooltip: String = "",
   266         submit: Boolean = false): XML.Elem =
   273         submit: Boolean = false, script: String = ""): XML.Elem =
   267       XML.elem(Markup("input",
   274       XML.elem(Markup("input",
   268         List("type" -> "text") :::
   275         List("type" -> "text") :::
   269           (if (columns > 0) List("size" -> columns.toString) else Nil) :::
   276           (if (columns > 0) List("size" -> columns.toString) else Nil) :::
   270           optional_value(text) ::: optional_name(name) :::
   277           optional_value(text) ::: optional_name(name) ::: optional_title(tooltip) :::
   271           optional_title(tooltip) ::: optional_submit(submit)))
   278           optional_submit(submit) ::: optional_onchange(script)))
   272 
   279 
   273     def parameter(text: String = "", name: String = ""): XML.Elem =
   280     def parameter(text: String = "", name: String = ""): XML.Elem =
   274       XML.elem(
   281       XML.elem(
   275         Markup("input", List("type" -> "hidden") ::: optional_value(text) ::: optional_name(name)))
   282         Markup("input", List("type" -> "hidden") ::: optional_value(text) ::: optional_name(name)))
   276 
   283