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 |