module tut7_2_2 import StdEnv, StdIO Start :: *World -> *World Start world = startIO NDI Void initialise [] world where initialise pst # (error,pst) = openDialog Void dialog pst | error <> NoError = closeProcess pst | otherwise = pst dialog = Dialog "ObjectIO" controls [WindowClose (noLS closeProcess)] controls = ListLS [ TextControl label [ControlWidth (ContentWidth maxlabel), ControlPos (Left, zero)] :+: EditControl "" (PixelWidth 100) 1 [] \\ label <- labels] maxlength = maxList (map size labels) maxlabel = hd (dropWhile (\l . size l <> maxlength) labels) labels = [ "Short label" , "Long and too verbose label" , "Medium length label" ]