struct TixEnv < TkEnv = tixWindow :: [WindowOpt] -> Request TixWindow fileDialog :: [FileDialogOpt] -> Request FileDialog popupMenu :: [PopupMenuOpt] -> Request PopupMenuA TixWindow is an extension of a Tk Window with some new widgets. A FileDialog and a PopupMenu should be self-explanatory, except for the fact that the popup menu is provided here (and not as a method of TixWindow), since it can be bound to different top-level windows.
struct TixWindow < TixBasicWindow WindowOpt, ManagedWindow, Window struct TixBasicWindow a < BasicWindow a = toolTip :: [FrameOpt] -> Request ToolTip comboBox :: Bool -> [ComboOpt] -> Request ComboBox spinBox :: [SpinBoxOpt] -> Request SpinBox hList :: [HListOpt] -> Request HList noteBook :: [NoteBookOpt] -> Request NoteBook panedWindow :: [PanedWindowOpt] -> Request PanedWindow optionMenu :: [String] -> [OptionMenuOpt] -> Request OptionMenu scrolledHList :: [ScrHListOpt] -> Request ScrolledHList scrolledListBox :: [ScrListBoxOpt] -> Request ScrolledListBox scrolledTextEditor :: [ScrTextEditorOpt] -> Request ScrolledTextEditor scrolledTree :: [ScrTreeOpt] -> Request ScrolledTree scrolledBasicWindow:: [ScrWindowOpt] -> Request ScrolledBasicWindowAll the methods produce window widgets.
struct FileDialog < ConfWidget FileDialogOpt, PopupWidget = subOK, subFilter, subCancel, subHelp :: Button struct PopupWidget = popup :: Action popdown :: Action data FileDialogOpt > StdOpt, CmdString data CmdString = CmdString (String -> Cmd ())
type PopupMenuOpt = Title struct PopupMenu < Configurable PopupMenuOpt, HasMenu, HasMenuButton = popupIn :: Widget -> Action struct HasMenu = subMenu :: Menu struct HasMenuButton = subMenuButton :: MenuButton
struct ToolTip < WWidget FrameOpt, HasLabel = attachTo :: Widget -> String -> Action struct ComboBox < WWidget ComboOpt, LineEditable, Cell Int, HasLabel, HasListBox, HasEntry struct SpinBox < WWidget SpinBoxOpt, Cell Int, HasLabel, HasEntry struct OptionMenu < WWidget OptionMenuOpt, Cell Int struct HList < WWidget HListOpt, Cell [String] = addEntry :: [HListEntryOpt] -> Request HListEntry childAt :: HListPath -> Request HListEntry struct PanedWindow < WWidget PanedWindowOpt = pane :: [PaneOpt] -> Request (TixBasicWindow PaneOpt) struct NoteBook < WWidget FrameOpt = page :: [PageOpt] -> Request (TixBasicWindow PageOpt) raised :: Request (Maybe(TixBasicWindow PageOpt)) struct ScrolledTree < WWidget ScrTreeOpt, HasHList = decorate :: Action struct ScrolledListBox < WWidget ScrListBoxOpt, HasListBox struct ScrolledWindow < WWidget ScrWindowOpt, HasBasicWindow struct ScrolledTextEditor < WWidget ScrTextEditorOpt, HasTextEditor struct ScrolledHList < WWidget ScrHListOpt, HasHList type PopupMenuOpt = Title data PanedWindowOpt > StdOpt, Orientation data PaneOpt > Min, Max, ExpandRate data PageOpt > CLabel, Img, Btmp, Enabled, Underline, Justify, RaiseCmd data FileDialogOpt > StdOpt, CmdString data ComboOpt > StdOpt, CmdString, CLabel, Dropdown data SpinBoxOpt > StdOpt, CmdInt, CLabel, Min, Max, Step type NoteBookOpt = StdOpt data HListOpt > StdOpt, Font, Foreground, SelectMode, CmdString, DrawBranch data HListEntryOpt > Btmp, Img, Text data ScrWidgetOpt > StdOpt, ScrollPolicy type ScrTextEditorOpt = ScrWidgetOpt type ScrHListOpt = ScrWidgetOpt type ScrTreeOpt = ScrWidgetOpt type ScrWindowOpt = ScrWidgetOpt data ScrListBoxOpt > ScrWidgetOpt, Command, Anchor data OptionMenuOpt > StdOpt, CmdString, Enabled, CLabelSeveral of these widget types have supertypes with names of the form HasXXX where XXX is a window widget type. All these structures have one single element, namely subXXX :: XXX. Thus these Tix widgets have a Tk window widget as a subwidget, and this subwidget can be accessed and its methods (from Tk) used.
A brief description of these widgets are:
struct HListEntry < Configurable HListEntryOpt, Cell String = addChild :: [HListEntryOpt] -> Request HListEntry hide, unhide :: Action see :: Action delete :: Action depth :: Int getParent :: Request(Maybe HListEntry)Whole (sub)trees, can be hidden from display using hide; when the whole forest is not visible in the window, scrolling can be forced so hat the node is seen.
The widget can work in single or multiple selection mode; in the latter, multiple selections are achieved either by dragging (to select a contiguous sequence) or using Ctrl-Button1. Double-clicking on a node invokes it; the callback procedure specified by the CmdString option is invoked with the path to he node as argument. (A path is a string such as "0.1.2", indicating the third child of the second child of the first tree).