Giter Club home page Giter Club logo

terminalpp's People

Contributors

bitdeli-chef avatar kazdragon avatar matthewchaplain-tomtom avatar mikelankamp-tomtom avatar onurkader avatar ruszkait avatar waffle-iron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

terminalpp's Issues

Document the required Object Model in the Wiki

Before diving in and creating components, it would be worthwhile to begin documenting the object model and the things required from it, including how they could be developed programmatically, and how they could be instantiated from some kind of DSL.

Some work was done on a precursor effort in https://code.google.com/p/paradice9/wiki/MuninComponents and https://code.google.com/p/paradice9/wiki/ComponentThemes and there was some pratical work and write up on the DSL in KazDragon/paradice9#145 .

Cursor assumes it is shown at startup.

Currently, if the cursor was hidden in a previous process, then the cursor can never be shown (because TT++ always thinks it is). It should instead start off in an unknown/optional state.

Complete the escape code reference

In csi.hpp, osc.hpp etc. There are plenty of things not added.

NOTE: This may result in code entries being converted to char[], since there are quite a few multiple-character entries.

Document Terminal++ Usage

For anyone to be able to use Terminal++, it requires at least some simple documentation in the Readme.

Extend Command Sequence

Some command sequences (such as some extended character sets and some DEC Private Set commands) have an extra character before the arguments (e.g. "\x1B[?6n" for Device Status Report).

The characters that are valid for this seem to be ? and >.

Allow terminal to write single element

At the moment, if you want to place a single element on the terminal, it is necessary to write something along the lines of:

terminal.write(""_ets + elem);

It should be possible just to write the element itself.

Create Terminal object to manage displays.

The terminal object should be capable of changing output depending on the known behaviour of the actual terminal, and performing every-day operations such as cursor management and writing strings. This should obsolete the current ANSI-functions API.

Change screen::draw to take additional canvas parameter

At the moment, it is required that a canvas is built outside of the screen, then copied into the screen in order to be drawn.

By allowing screen::draw to take a canvas parameter (and only storing one canvas internally, which represents the last frame drawn), this means that the canvas does not need to be copied an extra time. It also has a side-effect that screen does not have to be re-created whenever the canvas size changes.

Command to enable mouse usage

Currently, we support interpreting mouse inputs, but this will never happen since no command to enable the mouse mode is ever output.

off-by-one error in mouse parsing

Currently, the mouse parses with (x,y) co-ordinates being offset by 32. This is correct as far as the parsing goes. However, Terminal++ works with a 0-based system and ANSI works with 1-based, so it needs another 1 subtracted to convert it to the local co-ordinate system.

Have "meta" control sequence set vk meta modifier

At the moment, it would be necessary to look into the token received for the vk, determine that it's a control sequence, and then look at that sequence's meta property.

That's a little too much work for a simple modifier.

Integrate with Paradice9

To prove that Telnet++ actually works as described in practice as well as theory, actually integrate it into an application.

Fix OOB error in charset encoder

In encoder.cpp:encode_character_set_ext, the char array is not NUL-terminated. This results in an OOB access when using strlen() in lookup_charset.

Enter is received as vk 0

Ctrl-Enter is received (correctly) as vk 138, so the command version is being received correctly. Just the return keystroke itself is incorrectly parsed.

Don't change character set if unnecessary

If a character would be written in a different character, but it's actually the same character (e.g. 'X' is both US_ASCII and UK), then don't bother changing the character sets.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.