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, CLabel
Several 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).