Commit Graph

481 Commits

Author SHA1 Message Date
Garrett D'Amore 8041b8e7ac Refactor event polling code.
This centralizes much of the logic (hopefully reducing duplication)
for polling events and the queue.  This will make it easier to make
further design changes to express a better, simpler, API to consumers.

While here addressed missing logic to handle Fini correctly on Windows.
2023-12-07 22:55:17 -08:00
Garrett D'Amore e3a99dde75 Add shebang 2023-12-05 14:29:12 -08:00
Garrett D'Amore 26f328fb89 simscreen: unbreak the API
The API for NewSimulationScreen() was changed, which turned out to
break 3rd party libraries and applications.  (We didn't forgot that
this is part of the public API for tcell.)
2023-12-05 14:21:05 -08:00
Garrett D'Amore fb3659df9f refactoring: use common LockRegion implementation 2023-12-04 07:48:27 -08:00
Garrett D'Amore 92c4f488a6 mouse demo: fix crash when multiple buttons pressed together
If we cannot decode the buttons in a drag, we might try to use '*',
which would reuslt in a negative index in the theme table.  This
only affected the demo application itself.
2023-12-03 17:42:09 -08:00
Garrett D'Amore d82c270755 More refactoring, common cell buffer 2023-12-03 17:36:26 -08:00
Garrett D'Amore 602a4730ac Update SimScreen with new refactoring 2023-12-03 17:08:48 -08:00
Garrett D'Amore ef4f9ccd96 Start of base screen refactoring.
A lot of functionality is duplicated across screen implementations,
and adding convenience methods is onerous because one needs to touch
each implementation with what is mostly copy-paste coding.

This represents the start of refactoring to eliminate redundant code
from each implemenation and provide for it in a common layer.
2023-12-03 16:54:28 -08:00
dependabot[bot] fe52739ee8
Bump github.com/mattn/go-runewidth from 0.0.14 to 0.0.15 (#632)
Bumps [github.com/mattn/go-runewidth](https://github.com/mattn/go-runewidth) from 0.0.14 to 0.0.15.
- [Commits](https://github.com/mattn/go-runewidth/compare/v0.0.14...v0.0.15)

---
updated-dependencies:
- dependency-name: github.com/mattn/go-runewidth
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-03 15:53:12 -08:00
dependabot[bot] 776ecfbd6a
Bump actions/checkout from 3 to 4 (#635)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-03 15:52:35 -08:00
dependabot[bot] a94f73f8d9
Bump golang.org/x/term from 0.9.0 to 0.15.0 (#661)
Bumps [golang.org/x/term](https://github.com/golang/term) from 0.9.0 to 0.15.0.
- [Commits](https://github.com/golang/term/compare/v0.9.0...v0.15.0)

---
updated-dependencies:
- dependency-name: golang.org/x/term
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-03 15:51:33 -08:00
dependabot[bot] 5ed7b912b0
Bump golang.org/x/sys from 0.11.0 to 0.15.0 (#660)
Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.11.0 to 0.15.0.
- [Commits](https://github.com/golang/sys/compare/v0.11.0...v0.15.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-03 15:45:16 -08:00
dependabot[bot] 9e2e43bd34
Bump golang.org/x/text from 0.12.0 to 0.14.0 (#648)
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.12.0 to 0.14.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.12.0...v0.14.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-03 15:41:46 -08:00
Tim Culverhouse 20b65d615f
Fix dynamic terminfo when an alias is used (#639)
Co-authored-by: Garrett D'Amore <garrett@damore.org>
2023-12-03 15:40:31 -08:00
Garrett D'Amore 2917c3801e fixes #647 Screen.Clear — Flickering on Windows 2023-12-03 13:50:52 -08:00
Garrett D'Amore 50882fce9f Update console_win.go 2023-12-03 12:10:55 -08:00
Junegunn Choi b4e2d68113 Implement missing methods in cScreen 2023-12-03 12:10:55 -08:00
Garrett D'Amore 168f47f0f7 fixes #623 Cursor style is not reset when closing 2023-12-03 12:04:00 -08:00
Baris Balli 8a50441ee1 project added to the ed 2023-10-31 15:40:54 -07:00
Baris Balli 7d4a088d8c Readme updated, an example project [hero.go] added 2023-10-31 15:40:54 -07:00
Chris 08c7757cd1 Update color.go 2023-08-26 23:04:10 -07:00
Chris 61f49ebde1 Update color.go 2023-08-26 23:04:10 -07:00
Chris e1cc2cb21f add stringable util methods 2023-08-26 23:04:10 -07:00
Tim Culverhouse 83e6762660 demos: add sixel demo
Add a demo of sixel drawing
2023-08-15 06:57:42 -07:00
Tim Culverhouse c5c66b8427 tty: modify WindowSize method to return windowsize object
Modify the WindowSize method of the Tty interface to return a WindowSize
object. This object includes the window size in pixels, for use in
direct drawing of sixels. Terminals that do not support this feature
will have pixel sizes of 0,0.
2023-08-15 06:57:42 -07:00
Tim Culverhouse bfc5242f05 EventResize: use WindowSize struct internally
Introduce a WindowSize type and use it internally for the EventResize
event. Add PixelSize method to EventResize to report the screen size in
pixels, if supported.
2023-08-15 06:57:42 -07:00
Tim Culverhouse fa6cd3ec5b screen: extend interface with Tty method
Extend the Screen interface with a new Tty method, which returns the
underlying tty when the screen is a terminal. This enables direct
drawing to the Tty.

Implement the interface for the three screen implementatinos included in
the library.
2023-08-15 06:57:42 -07:00
Tim Culverhouse ae2c4a8044 screen: extend interface with LockRegion method
Extend the Screen interface with a new LockRegion method. This method
sets or unsets a lock on a region of cells. This will be used in
subsequent commits to enable direct drawing to the underlying TTY. The
locks are necessary in order to prevent cells from being drawn on top of
a directly drawn cell.

Implement this interface for the three screen implementations included
in the library.
2023-08-15 06:57:42 -07:00
Tim Culverhouse 894250edb7 cellbuffer: add ability to lock cells
Add a lock to individual cells. A lock on a cell will prevent it from
being redrawn by reporting it as clean. This will be true until the lock
has been removed. When a lock is removed, the cell is also marked as
dirty in order to force a redraw.
2023-08-15 06:57:42 -07:00
dependabot[bot] c1028277e6 Bump golang.org/x/sys from 0.9.0 to 0.11.0
Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.9.0 to 0.11.0.
- [Commits](https://github.com/golang/sys/compare/v0.9.0...v0.11.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-14 23:05:22 -07:00
dependabot[bot] 0e7e5ff245 Bump golang.org/x/text from 0.7.0 to 0.12.0
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.7.0 to 0.12.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.7.0...v0.12.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-14 18:51:06 -07:00
Garrett D'Amore b09ad8741e wasm: implement focus events for wasm terminal 2023-08-14 18:42:16 -07:00
Garrett D'Amore 8b8ed1d164 go fmt compliance fixes 2023-08-14 18:36:19 -07:00
Remko Tronçon b187e6250e Add LookupTerminfo stub for wasm
Resolves #617
2023-08-14 17:11:51 -07:00
dependabot[bot] b64f3de22e Bump golang.org/x/term from 0.5.0 to 0.9.0
Bumps [golang.org/x/term](https://github.com/golang/term) from 0.5.0 to 0.9.0.
- [Commits](https://github.com/golang/term/compare/v0.5.0...v0.9.0)

---
updated-dependencies:
- dependency-name: golang.org/x/term
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-14 17:09:20 -07:00
stk 42b3beb245 fixup! Make focus reporting an opt-in feature, like mouse reporting 2023-08-14 17:07:05 -07:00
stk f028121cb8 Make focus reporting an opt-in feature, like mouse reporting 2023-08-14 17:07:05 -07:00
stk 622b6c2aa7 Enable focus reporting only for terminals that support it
We assume that any terminal that supports mouse reporting will also support
focus reporting; but we also add an entry to Terminfo to let specific terminals
override it if needed.
2023-08-14 17:07:05 -07:00
stk 85dc29bf8a Implement focus events 2023-08-14 17:07:05 -07:00
Matthew Roseman a92c043b0b simplified bitwise math to determine if mouse scrolling 2023-08-14 17:05:00 -07:00
Matthew Roseman b9a2bbda10 don't record buttondn on scroll events 2023-08-14 17:05:00 -07:00
dependabot[bot] c14349d151 Bump codecov/codecov-action from 3.1.1 to 3.1.4
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3.1.1 to 3.1.4.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3.1.1...v3.1.4)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-14 17:04:44 -07:00
delthas 709868d93d Support Xterm modifier keys for dynamic terminfos
Previously, modified function keys in dyanmic terminals were not
supported (like shift/control/alt + arrow keys).

Even though xterm-compatible terminals were dynamically discovered
and their keys added to the terminfo struct, the Modifiers field
was not supported and therefore the modified Xterm keys were not
added to the keycodes map (prepareXtermModifiers was skipped).

This fixes the issue by setting the Modifiers field when we
discover that the terminal is xterm-compatible.
2023-08-14 17:04:00 -07:00
bjorndm 14bc04d6bb Fix underlines in Windows console mode.
The ENABLE_LVB_GRID_WORLDWIDE is neede to enable them.
2023-08-12 08:39:46 -07:00
dependabot[bot] 47ec3a7775 Bump actions/setup-go from 3 to 4
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3 to 4.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-26 21:31:20 -07:00
Mykola Andriievskyi 90c665ca31 Add a new examples repo based ot tcell to readme 2023-03-26 21:30:51 -07:00
Garrett D'Amore c951371181 minor style fixup 2023-02-20 21:39:19 -08:00
Garrett D'Amore 615b4b1821 fixes #589 unexpected character linux console 2023-02-20 21:30:37 -08:00
Garrett D'Amore 7fe9d5fa9b Webasm terminal fixes.
Reverse video, not reverse text.
Provide an XTERM equivalent default palette.
Reset colors should go to silver on black.
Black color 0 should be rendered properly.
2023-02-20 21:13:27 -08:00
Garrett D'Amore d78960c02d Color fixups. 2023-02-20 20:52:19 -08:00