úÎ _4\™-      !"#$%&'()*+,-Given a position p and string s, find the greatest string  index i such that i <= p and s !! i is whitespace, or zero if $ the string contains no whitespace. .=Given a column and string not containing newlines, break the  string into lines each having length <= cols. /AWraps the specified string (possibly containing newlines) at the B specified column and returns a new string with newlines inserted  where appropriate. ././.A box layout widget capable of containing two s " horizontally or vertically. See  and . Boxes lay out  their children as follows: C If both children are expandable in the same dimension (i.e., both A vertically or both horizontally), the children are each given  half of the parent container's available space C If one of the children is expandable and the other is static, the C static child is rendered first and the remaining space is given  to the expandable child ; Otherwise, both children are rendered in top-to-bottom or E left-to-right order and the resulting container uses only as much " space as its children combined AA fill widget for filling available vertical or horizontal space  in a box layout. See  and  . 7A text widget consisting of a string rendered using an  attribute. See  . AA wrapper for all widget types used in normalizing heterogeneous  lists of widgets. See  . ;The class of user interface widgets. Note that the growth  properties  and  are used to control  rendering order; if a widget can grow to fill available space, ? then neighboring fixed-size widgets will be rendered first so C remaining space can be computed. Then, variable-sized (growable) 6 widgets will be rendered last to consume that space. :Given a widget, render it with the given dimensions. The 9 resulting Image should not be larger than the specified ! dimensions, but may be smaller. 7Will this widget expand to take advantage of available  horizontal space? 7Will this widget expand to take advantage of available  vertical space? :The primary attribute of this widget, used when composing 8 widgets. For example, if you want to compose a widget A with  a space-filling widget B, you probably want B's text ( attributes to be identical to those of A. .Apply the specified attribute to this widget. Given a  and a 0% object, render the widget using the = current size of the terminal controlled by Vty. Returns the  rendered  as an 1 . Wrap a  in the  type for normalization  purposes.  Create a  widget. !Create an horizonal fill widget. BCreate a vertical fill widget. The dimensions of the widget will  depend on available space. BCreate a horizontal box layout widget containing two widgets side E by side. Space consumed by the box will depend on its contents and  the available space.  An alias for $ intended as sugar to chain widgets  horizontally. CCreate a vertical box layout widget containing two widgets. Space C consumed by the box will depend on its contents and the available  space.  An alias for 0 intended as sugar to chain widgets vertically.       8The list widget type. Lists are parameterized over the internal  identifier type a+, the type of internal identifiers used to D refer to the visible representations of the list contents, and the   widget type b1, the type of widgets used to represent the list  visually. #The currently selected list index. .The start index of the window of visible list  items. .The size of the window of visible list items. The items in the list. AA list item. Each item contains an arbitrary internal identifier  a and a widget b representing it. @Create a new list. Emtpy lists and empty scrolling windows are  not allowed. 2A convenience function to create a new list using 2  s as the  internal identifiers and % widgets to represent those strings. &Get the currently selected list item. ASet the window size of the list. This automatically adjusts the 4 window position to keep the selected item visible. BScroll a list up or down by the specified number of positions and ? return the new scrolled list. Scrolling by a positive amount E scrolls downward and scrolling by a negative amount scrolls upward. @ This automatically takes care of managing internal list state: @ Moves the cursor by the specified amount and clamps the cursor : position to the beginning or the end of the list where  appropriate @ Moves the scrolling window position if necessary (i.e., if the 2 cursor moves to an item not currently in view) $Scroll a list down by one position. "Scroll a list up by one position. !AScroll a list down by one page from the current cursor position. "?Scroll a list up by one page from the current cursor position. #Given a ., return the items that are currently visible D according to the state of the list. Returns the visible items and , flags indicating whether each is selected.  !"# "!# !"#$CA text widget which automatically wraps its contents to fit in the  available space. % Create a $) widget from the specified attribute and  text. $%$%$%&AA container widget which draws a border around all four sides of  the widget it contains. See *. 'CA horizontal or vertical border to be placed between widgets. See  ( and ). ('Create a single-row horizontal border. )(Create a single-column vertical border. *@Wrap a widget in a bordering box using the specified attribute. &'()*'&)(*&'()*+*Add expanding bottom padding to a widget. ,'Add expanding top padding to a widget. +,+,+, -  !"#$%&'()*+,3  !"#$%&'()*+,-./0123456789:;<=>? @AB vty-ui-0.2Graphics.Vty.Widgets.BaseGraphics.Vty.Widgets.List Graphics.Vty.Widgets.WrappedTextGraphics.Vty.Widgets.BordersGraphics.Vty.Widgets.ComposedText.Trans.Wrap vty-4.0.0.1 Graphics.VtyGraphics.Vty.Picturebase Data.CharGraphics.Vty.Widgets.AllBoxFillText AnyWidgetWidgetrendergrowHorizontal growVerticalprimaryAttribute withAttributemkImage anyWidgettexthFillvFillhBox<++>vBox<--> SimpleListList selectedIndexscrollTopIndexscrollWindowSize listItemsListItemmkList mkSimpleList getSelectedresizescrollBy scrollDownscrollUppageDownpageUpgetVisibleItems WrappedText wrappedTextBorderedBorderhBordervBorderbordered bottomPadded topPadded findBreakwrapLinewrapVtyGraphics.Vty.ImageImageGHC.BaseString