definition module htmlButtons
// Prdefined i-Data making html Buttons, forms, and lay-out
// (c) 2005 MJP
import htmlHandler
import GenLexOrd
derive gForm (,), (,,), (,,,), (<->), <|>, HtmlDate, HtmlTime, DisplayMode, Button, CheckBox, RadioButton, PullDownMenu, TextInput, TextArea, HTML, PasswordBox
derive gUpd (,), (,,), (,,,), (<->), <|>, HtmlDate, HtmlTime, DisplayMode, Button, CheckBox, RadioButton, PullDownMenu, TextInput, TextArea, HTML, PasswordBox
derive gPrint (,), (,,), (,,,), (<->), <|>, HtmlDate, HtmlTime, DisplayMode, Button, CheckBox, RadioButton, PullDownMenu, TextInput, TextArea, HTML, PasswordBox
derive gParse (,), (,,), (,,,), (<->), <|>, HtmlDate, HtmlTime, DisplayMode, Button, CheckBox, RadioButton, PullDownMenu, TextInput, TextArea, HTML, PasswordBox
derive gerda (,), (,,), (,,,), (<->), <|>, HtmlDate, HtmlTime, DisplayMode, Button, CheckBox, RadioButton, PullDownMenu, TextInput, TextArea, HTML, PasswordBox
instance toBool CheckBox, Button, RadioButton // True if checkbox checked, button pressed
instance toInt PullDownMenu // Current index in pull down list
instance toString PullDownMenu // Corresponding element in pull down list
derive gEq HtmlDate, HtmlTime, PasswordBox
instance == HtmlDate, HtmlTime, PasswordBox
instance == (DisplayMode a) | == a
derive gLexOrd HtmlDate, HtmlTime
instance < HtmlDate, HtmlTime
instance toString HtmlDate, HtmlTime
instance + HtmlTime
instance - HtmlTime
// lay out
:: <-> a b = (<->) infixl 5 a b // place b to the left of a
:: <|> a b = (<|>) infixl 4 a b // place b below a
:: DisplayMode a
= DisplayMode a // non-editable display of a
| EditMode a // editable
| HideMode a // hiding a
| EmptyMode // nothing to display or hide
:: HTML = HTML [BodyTag] // to print html: NOT Parsed, CANNOT be stored NOR retrieved
// buttons representing classical html buttons
:: Button = Pressed // button pressed
| LButton Int String // label button, size in pixels, label of button
| PButton (Int,Int) String // picture button, (height,width), reference to picture
:: CheckBox = CBChecked String // checkbox checked
| CBNotChecked String // checkbox not checked
:: RadioButton = RBChecked String // radiobutton checked
| RBNotChecked String // radiobutton not checked
:: PullDownMenu = PullDown (Int,Int) (Int,[String]) // pulldownmenu (number visible,width) (item chosen,menulist)
:: TextInput = TI Int Int // Input box of size Size for Integers
| TR Int Real // Input box of size Size for Reals
| TS Int String // Input box of size Size for Strings
:: TextArea = TextArea Int Int String // Input Area Box, row col initial string
// Only works in Submit mode due to Html restrictions!
:: PasswordBox = PasswordBox String
// special's
:: HtmlDate = Date Int Int Int // Day Month Year
:: HtmlTime = Time Int Int Int // Hours Minutes Seconds
getTimeAndDate :: !*HSt -> *(!(!HtmlTime,!HtmlDate),!*HSt)