on develop help sign in
Add changelog notes for new layout
commitfe6a26e78ea56191ee4f69c59c3a5d67bef8ca62 authorAli Abrar <aliabrar@gmail.com> dateMon 22 Mar 2021, 21:05 (6 years ago) parent96f3d82
2 files changed+47−2
ChangeLog.md+46−1 reflex-vty.cabal+1−1
ChangeLog.md+46−1
@@ -1,8 +1,53 @@
11# Revision history for reflex-vty
22
3−## Unreleased
3+## 0.2.0.0
44* Remove text-icu dependency and switch to `wcwidth` from vty package to compute character width in `Data.Text.Zipper`.
55* `goToDisplayLinePosition` in `Data.Text.Zipper` correctly accounts for character width now.
6+* [#37](https://github.com/reflex-frp/reflex-vty/issues/37) `Layout` should support focus changes through nested layouts (thanks @pdlla for getting this started).
7+* _Breaking Change_: Layout and focus have been substantially refactored:
8+ * Added `MonadFocus` to produce focusable elements, and manage focus state. See the "Focus" section of the Reflex.Vty.Widget.Layout module documentation.
9+ * `Layout` no longer has any focus-tracking responsibility. See the "Layout" section of the Reflex.Vty.Widget.Layout module documentation.
10+ * `tile` no longer takes a configuration record and no longer requires that its child widget return a focus request event. Focus requests are instead handled using calls to `requestFocus` in the child widget.
11+ * Calls to `fixed` and `stretch` must now be replaced with `tile . fixed` and `tile . stretch`
12+ * `stretch` now takes a minimum size argument
13+ * Added `flex` which is equivalent to `stretch 0`
14+ * `tabNavigation` no longer returns an `Event`. Instead it calls `requestFocus` directly with the appropriate `Refocus_Shift` value.
15+ * Added `axis` (in `MonadLayout`), a lower-level primitive which is used to implement `row` and `col`.
16+ * Added `region` (in `MonadLayout`), which is used to claim screen real estate and used to implement `tile` and `grout`
17+ * Added `grout`, a container element that is not itself focusable (though its children can be)
18+* Add `HasVtyWidgetCtx` for `pane`-like sub-widget container behavior
19+* Add default instances for `HasVtyInput`, `HasFocus`, and `ImageWriter`
20+* _Breaking Change_: Remove `DynRegion` and `currentRegion`. Use `Dynamic t Region` and `current` instead. This also changes the type of `pane`'s argument.
21+* _Breaking Change_: The following functions are no longer specialized to `VtyWidget`:
22+ * `pane`: Now requires `HasVtyWidgetCtx` instead
23+ * `drag`: Now requires `HasVtyInput` instead
24+ * `mouseDown`: Now requires `HasVtyInput` instead
25+ * `mouseUp`: Now requires `HasVtyInput` instead
26+ * `mouseScroll`: Now requires `HasVtyInput` instead
27+ * `key`: Now requires `HasVtyInput` instead
28+ * `keys`: Now requires `HasVtyInput` instead
29+ * `keyCombo`: Now requires `HasVtyInput` instead
30+ * `keyCombos`: Now requires `HasVtyInput` instead
31+ * `splitV`: Now requires `HasVtyWidgetCtx` and `HasDisplaySize` instead
32+ * `splitH`: Now requires `HasVtyWidgetCtx` and `HasDisplaySize` instead
33+ * `splitVDrag`: Now requires `HasVtyWidgetCtx`, `HasVtyInput`, and `HasDisplaySize` instead
34+ * `fill`: Now requires `ImageWriter` and `HasDisplaySize` instead
35+ * `boxTitle`: Now requires `HasVtyWidgetCtx`, `ImageWriter`, and `HasDisplaySize` instead
36+ * `box`: Now requires `HasVtyWidgetCtx`, `ImageWriter`, and `HasDisplaySize` instead
37+ * `boxStatic`: Now requires `HasVtyWidgetCtx`, `ImageWriter`, and `HasDisplaySize` instead
38+ * `richText`: Now requires `ImageWriter`, and `HasDisplaySize` instead
39+ * `scrollableText`: Now requires `HasVtyInput`, `ImageWriter`, and `HasDisplaySize` instead
40+ * `blank`: Now required `Monad` instead
41+ * `button`: Now requires `HasFocus`, `HasVtyWidgetCtx`, `HasVtyInput`, `ImageWriter`, and `HasDisplaySize` instead
42+ * `textButton`: Now requires `HasFocus`, `HasVtyWidgetCtx`, `HasVtyInput`, `ImageWriter`, and `HasDisplaySize` instead
43+ * `textButtonStatic`: Now requires `HasFocus`, `HasVtyWidgetCtx`, `HasVtyInput`, `ImageWriter`, and `HasDisplaySize` instead
44+ * `link`: Now requires `HasVtyInput`, `ImageWriter`, and `HasDisplaySize` instead
45+ * `checkbox`: Now requires `HasFocus`, `HasVtyInput`, `ImageWriter`, and `HasDisplaySize` instead
46+ * `textInput`: Now requires `HasFocus`, `HasVtyInput`, `ImageWriter`, and `HasDisplaySize` instead
47+ * `multilineTextInput`: Now requires `HasFocus`, `HasVtyInput`, `ImageWriter`, and `HasDisplaySize` instead
48+ * `textInputTile`: Now requires `HasVtyWidgetCtx`, `HasVtyInput`, `MonadLayout`, and `MonadFocus` instead
49+* _Breaking Change_: `CheckboxConfig` now has a field taking an `Event` to set the value of the checkbox.
50+* _Breaking Change_: `checkbox` now accepts keyboard input (spacebar to check and uncheck) and is displayed in bold when focused.
651
752## 0.1.4.1
853* Migrate to new dependent-sum / dependent-map (after the "some" package split)
reflex-vty.cabal+1−1
@@ -1,5 +1,5 @@
11name: reflex-vty
2−version: 0.1.4.1
2+version: 0.2.0.0
33synopsis: Reflex FRP host and widgets for VTY applications
44description:
55 Build terminal applications using functional reactive programming (FRP) with Reflex FRP (<https://reflex-frp.org>).