All Versions
14
Latest Version
1.8
Avg Release Cycle
-
Latest Release
-

Changelog History
Page 2

  • v1.2 Changes

    API changes:

    • Added Graphics.Vty.Widgets.Group module to provide an abstraction for a collection of widgets with the same role in the interface.
    • Added Graphics.Vty.Widgets.Text.setTextFormatter function
    • Added Graphics.Vty.Widgets.Text.getTextFormatter function
    • Added Graphics.Vty.Widgets.Core.appendFocusGroup function
    • Graphics.Vty.Widgets.DirBrowser: name and export the type of the directory browser's internal widget (DirBrowserWidgetType)
    • Added Graphics.Vty.Widgets.Text.setTextAppearFocused function; change the default behavior of text widgets so that by default, they do NOT use the focused attribute when focused. The previous behavior was such that a focused text widget would use the focused attribute in effect when being rendered, but this doesn't make sense in all cases. Now there is a specific API for turning that on, and the default is to supress the behavior. Use cases for turning it on include cases where a text widget is part of a larger widget which has a meaningful focused appearance (e.g., buttons).
    • Added Text.plainTextWithAttrs convenience constructor

    Internal changes:

    • Default render context now has a somewhat more reasonable default focus attribute

    Manual changes:

    • Fixed ordering of sections in Chapter 4
    • Added section on the Group module

    ๐Ÿ› Bug fixes:

    • Default cursor location is hidden for empty widgets, fixes case where an empty widget showed the cursor and resulted in a Data.Word crash
    • Boxes with fixed-size children now refuse to draw without enough space
    • Bordered widgets now refuse to draw without enough space
    • Focus groups can now be empty for interfaces where no widgets need focus (still, if you want to do this, add key event handlers to the focus group itself)
    • Minted LaTeX style wasn't being included in the sdist.

    ๐Ÿ“ฆ Package changes:

    • Allow dependency on Vty 4.7. NOTE: if you are importing Vty unqualified, 4.7 now exports a "pad" function which conflicts with the "pad" function exported by the "All" and "Padding" modules.
    • Extend 'unix' dependency range to 2.5
    • Add source-repository to the package description
    • Depend on Cabal >= 1.6
  • v1.1 Changes

    API changes:

    • 'highlight' now takes any regular expression that is an instance of 'RegexLike' and matches Strings. This means we don't depend on pcre-light any more, but just Text.Regex.Base. One of the demo programs now depends on the 'regex-pcre' package since pcre-light didn't provide any instances of RegexLike.
    • Text.Trans.Tokenize, the module used to tokenize text and operate on token streams for the FormattedText widget, is now part of the public API. This is because anyone wishing to write a Formatter will need access to its types, and it contains other nifty functionality.
    • The 'Text' type has been removed in favor of types from Text.Trans.Tokenize.
    • Formatters (defined in the Text module) now take TextStreams (defined in Text.Trans.Tokenize).
    • The implementation of the wrapping and truncation logic in Text.Trans.Tokenize has been greatly simplified thanks to the type refactoring in that module.
    • The implementation of the 'wrap' Formatter has been greatly simplified thanks to the type refactoring in Text.Trans.Tokenize. It should also be a bit easier to write Formatters now.
    • Text.Trans.Tokenize.truncLine is now called truncateLine.
    • Text.Trans.Tokenize.wrapLine is now called wrapStream.
    • The test suite for Text.Trans.Tokenize has been bulked up a bit.
    • The event loop implementation now uses TChans from STM instead of Chans from Control.Concurrent; we also depend in 'stm' as a result.

    Manual changes:

    • The 'Text' material was updated with information on text widget update functions.
    • The 'Text' material was fixed to document the arguments to 'textWidget' in the correct order.
  • v1.0.1 Changes

    API changes:

    • Interface change: List: newList no longer takes a widget constructor; addToList and friends take the widget instead
    • Interface change: stop using MonadIO, use IO instead. The real issue here was that the library was failing to make good on an attempted promise of sequencing vty-ui actions with an arbitrary IO-based monad transformer stack, in particular because event handlers could not be sequenced in the same MonadIO instance as everything else.

    API additions:

    • Add shutdownUi signal to stop event loop (fixes issue #3)
    • List: add setSelected and getListItem functions
    • List: add insertIntoList for arbitrary insertion

    Internal changes:

    • Box: query child widgets for cursor position info
    • List: use at least a one-row-high item height to support emtpy list items (e.g., empty text widgets)
    • List: removeFromList: when the list is focused, manage focus state of widgets involved
    • List: forward key events to currently-selected item; also focus and unfocus items as selection changes
    • Edit: move {remove,inject} to Util
    • FormattedText: do not provide cursor positioning info.

    Misc:

    • Util.mergeAttr: Vty uses bitwise OR to merge styles, but that means we cannot turn style bits off, so we just replace the style mask entirely
    • cabal file: loosen library dependencies a bit.
    • ListDemo: focus the edit widget initially.
  • v1.0 Changes

    ๐Ÿ› Bug fixes:

    List: * removeFromList now recomputes scrolling window info correctly. * removeFromList fixes new selected index when pos > sel. * clearList now sets the selectedIndex correctly.

    Core: * mergeFocusGroups now correctly preserves existing handlers and establishes new FocusGroup manipulation handlers. * resetFocusGroup now uses the right index range (was resetting the focused element to zero, now -1)