All Versions
14
Latest Version
Avg Release Cycle
-
Latest Release
-
Changelog History
Page 2
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)