Commit Graph

756 Commits

Author SHA1 Message Date
Jakub Sobon 126cb00247
Rename newText field to contentChanged. 2018-05-27 16:15:56 +01:00
Jakub Sobon 06097229a9
Merge branch 'text-widget/4/scroll-tracker' into text-widget/5/widget 2018-05-27 16:12:25 +01:00
Jakub Sobon 6ab8088f51
Improving comments to make the scroll.go file more understandable. 2018-05-27 16:11:18 +01:00
Jakub Sobon c2db521710
Merge branch 'text-widget/3/line-scanner' into text-widget/4/scroll-tracker 2018-05-27 15:51:25 +01:00
Jakub Sobon 39c624a84c
Making it more obvious what width in the test cases is.
- renaming it to cvsWidth.
- adding a comment explaining that it is the width of the canvas.
2018-05-27 15:49:13 +01:00
Jakub Sobon 7104472cfa
Adding the text widget to the main README. 2018-05-20 23:27:57 +01:00
Jakub Sobon 929bf2b8fc
The text widget now supports full-width runes.
Refactoring the draw() implementation to make it more readable:
- taking out the line trimming logic.
- taking out the drawing of the scroll up/down markers.
2018-05-20 22:51:38 +01:00
Jakub Sobon c2dab55b50
The draw package now supports full-width runes. 2018-05-20 22:50:57 +01:00
Jakub Sobon ba2cb94100
Full-width rune support in the canvas.
- SetCell now returns the number of occupied cells.
- Apply skips over partial cells.
2018-05-20 22:50:07 +01:00
Jakub Sobon bb0e4b9a58
Move SetCell logic from faketerm to cell buffer. 2018-05-20 22:49:03 +01:00
Jakub Sobon 0049acbd01
Full-width rune support in the cell buffer.
- don't allow partial overwrite of a full-width rune.
- don't allow placement of a full-width rune if it doesn't fit.
- allow callers to also read from the canvas (read-only).
2018-05-20 22:47:37 +01:00
Jakub Sobon ecb27cd1c5
Adding licence. 2018-05-14 22:45:40 +01:00
Jakub Sobon 4f65598b39 Merge branch 'text-widget/4/scroll-tracker' into text-widget/5/widget 2018-05-14 22:45:29 +01:00
Jakub Sobon a386289162
Adding licence. 2018-05-14 22:44:49 +01:00
Jakub Sobon 6bbd64a30d Merge branch 'text-widget/3/line-scanner' into text-widget/4/scroll-tracker 2018-05-14 22:44:41 +01:00
Jakub Sobon 2f210f3ab9
Adding licence. 2018-05-14 22:44:18 +01:00
Jakub Sobon d6cd0106fb Merge branch 'text-widget/2/write-options' into text-widget/3/line-scanner 2018-05-14 22:44:08 +01:00
Jakub Sobon a3dfd1a4a5
Adding licence. 2018-05-14 22:43:48 +01:00
Jakub Sobon d0ca7ec5f5 Merge branch 'text-widget/1/widget-options' into text-widget/2/write-options 2018-05-14 22:43:36 +01:00
Jakub Sobon d3db859678
Adding licence. 2018-05-14 22:42:39 +01:00
Jakub Sobon 8df67c6d04
Merge branch 'text-widget/4/scroll-tracker' into text-widget/5/widget 2018-05-14 22:35:10 +01:00
Jakub Sobon a13c1f6be2
Merge branch 'text-widget/3/line-scanner' into text-widget/4/scroll-tracker 2018-05-14 22:34:48 +01:00
Jakub Sobon 6b39babddf Merge branch 'text-widget/2/write-options' into text-widget/3/line-scanner 2018-05-14 22:34:10 +01:00
Jakub Sobon bb73338abb
Merge branch 'text-widget/1/widget-options' into text-widget/2/write-options 2018-05-14 22:33:46 +01:00
Jakub Sobon 2f384b3b1c
Merge branch 'master' into text-widget/1/widget-options 2018-05-14 22:33:05 +01:00
Jakub Sobon b98013ea45
Removing commit that doesn't belong to this history. 2018-05-14 22:32:07 +01:00
Jakub Sobon cd35405fd7
Merge pull request #28 from mum4k/lint_errors
Fixing lint errors.
2018-05-14 22:20:18 +01:00
Jakub Sobon d6c153fbaf
Implementing the text widget.
And adding a demo.
2018-05-14 22:16:14 +01:00
Jakub Sobon 4c54b8a46e
Adding an object that tracks the scrolling state. 2018-05-14 22:13:16 +01:00
Jakub Sobon 7d14d2219f
Adding line scanner.
The line scanner identifies and counts lines in the input text and
performs wrapping if required.
2018-05-14 22:12:08 +01:00
Jakub Sobon e786777410
Defining options for text written to the widget.
Each set of options applies to a range of characters equal to the length
of the text added.

E.g. on write calls like:
Write("text", opts1)
Write("long text", opts2)

The two passed options will be stored as:
opts1 for byte range low:0, high:4
opts2 for byte range low:4, high:13

The text itself will be stored in a bytes.Buffer.
2018-05-14 22:08:53 +01:00
Jakub Sobon a824210882
Defining options for the text widget. 2018-05-14 22:07:04 +01:00
Jakub Sobon bf751529c4
Adding a disclaimer. 2018-05-14 21:42:25 +01:00
Jakub Sobon ec590d6149
Adding missing keyword. 2018-05-14 01:57:00 +01:00
Jakub Sobon 79218c9233
Fixing lint errors.
- Missing comments.
- Invalid comments.
- Stuttering public name.
2018-05-11 16:32:37 +01:00
Jakub Sobon f62bf80686
Deleting binary file. 2018-05-09 21:37:01 +01:00
Jakub Sobon 1e1c8cab3f Merge branch 'master' of ssh://github.com/mum4k/termdash 2018-05-08 19:01:46 +01:00
Jakub Sobon 1bb3a422fc
Replacing strings.Builder with bytes.Buffer.
For backward compatibility.
2018-05-08 19:01:07 +01:00
Jakub Sobon 2db6184651
Adding links to documentation, build and coverage status. 2018-05-08 18:58:49 +01:00
Jakub Sobon ea375744a7
Adding travis-ci and coveralls configuration. 2018-05-08 18:53:14 +01:00
Jakub Sobon 039a028ff9
Fixing issues reported by go vet. 2018-05-08 01:20:48 +01:00
Jakub Sobon e2a4927612
Adding licences. 2018-05-08 01:14:36 +01:00
Jakub Sobon c28cec560e
Implementing the Gauge widget.
Fixes #6.
2018-05-08 01:12:36 +01:00
Jakub Sobon 72df12349c
Exposing alignment directly instead wrapping in options.
And removing experimental code in favor of individual widget demos.
2018-05-07 21:48:22 +01:00
Jakub Sobon 09464a2db7
Improving error handling. 2018-05-07 21:30:38 +01:00
Jakub Sobon 220f979fa6
Generalizing code that aligns text within a rectangle. 2018-05-07 20:32:14 +01:00
Jakub Sobon 5aed5ecf24
Changing the default alignment of widget canvases to center and middle.
Fixes #25.
2018-05-07 18:53:29 +01:00
Jakub Sobon f128e8508c
Container's border now supports a title.
Fixes #22.
Fixes #19.
2018-05-07 18:48:52 +01:00
Jakub Sobon b4b1d8b2a6
Border now supports a title.
Updates #22.
2018-05-07 18:32:41 +01:00
Jakub Sobon 74bdcd649f
Moving alignment code from container into its own package. 2018-05-07 17:44:32 +01:00