aboutsummaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'TODO')
-rw-r--r--TODO125
1 files changed, 4 insertions, 121 deletions
diff --git a/TODO b/TODO
index 54311a6f..ac90869c 100644
--- a/TODO
+++ b/TODO
@@ -41,127 +41,10 @@
-- For 0.5 --------------------------------------------------------------------
-XXX
-screen contains grid
-
-screen_write <-- write to TTY and to screen using close-to-ANSI functions
-screen_redraw <-- write areas of screen to TTY
-grid_view <-- write to viewable area of grid
-grid <-- manipulate grid and history
-
-XXX
-grid_view has ox,oy
-XXX
-
-- FINISH UTF8: fix copy and paste
-- SPLIT u_short attr into attr,flags?
-- maybe rethink backend data structure?
- - utf8 can be 1-4 bytes
- - most common is 1 bytes
- - there can be double-width characters which take n bytes but 2 columns on screen
- - they are not only drawn as two characters, they also require two backspaces to remove
-- three operations:
- - simultaneously update screen and ttys
- - redraw screen or section of screen to ttys
- - write to ttys without updating screen
-
----
-NEED to be able to:
- resize screen
- apply ops to both screen and tty simultaneously
- both when parsing input and when eg scrolling history
- draw on the top of the screen without modifying it
- display arbitrary parts of the history
- redraw arbitrary parts of the visible screen
----
-NEVER need to draw into the history
-
-split off grid manip:
- 16-bit characters
- 8-bit flags
- 8-bit attributes
- 8-bit fg colour
- 8-bit bg colour
-
-struct grid_data {
- struct grid_cell **data;
- int *sizes;
-
- int sx;
- int sy;
-
- int hsize;
- int hlimit;
-};
-struct grid_cell {
- u_short data;
- u_char attr;
- u_char flags;
- u_char fg;
- u_char bg;
-};
-const struct grid_default_cell = { 0x20, 0, 0, 8, 8 };
-
-; grid logically split from
-; -hlimit to 0 and 0 to sy
-
-; ALWAYS fill with default
-
-const struct grid_cell *grid_get(int x, int y);
-void grid_set(int x, int y, const struct grid_cell *cell);
-
-void grid_resize()
-void grid_shift() /* shift lines into history */
-
-struct grid_view {
- int ox;
- int oy;
-
- int sx;
- int sy;
-
- struct grid_data *gdata;
- struct grid_view *parent;
-};
-
-struct grid_cell *grid_view_get_cell(int x, int y)
-void grid_view_set_cell(int x, int y, const struct grid_cell *cell);
-
-int grid_view_absolute_x(int x);
-int grid_view_absolute_y(int y);
-
-int grid_view_relative_x(int x);
-int grid_view_relative_y(int y);
-
-void grid_view_delete_lines(int y, int ny)
-void grid_view_insert_lines(int y, int ny)
-void grid_view_clear_lines(int y, int ny)
-void grid_view_fill_lines(int y, int ny, const struct grid_cell *cell)
-
-void grid_view_delete_cells(int x, int y, int nx)
-void grid_view_insert_cells(int x, int y, int nx)
-void grid_view_clear_cells(int x, int y, int nx)
-void grid_view_fill_cells(int x, int nx, const struct grid_cell *cell)
-
-void grid_view_clear_area(int x, int y, int nx, int ny)
-void grid_view_fill_area(int x, int y, int nx, int ny, const struct grid_cell *cell)
-
----
-
-screen has two (both grid_view):
- base and overlay
-
----
-screen_write writes into overlay if it exists and then base, also optionally to tty
-screen_draw draws overlay + base to display
----
-
----
-
-Would it be better to just expand char to 16-bits and use it as an index only
-for >2-byte characters? or - better - don't support entire UTF range? only the BMP?
-this would get rid of UTF table and limits, but still leave double-width character annoyances
-also would double memory usage
+TODO -- 2 fix window-*.c
+ 3 resizing
+ 4 audit for leftover/unused code
+ 5 next phase of tidying
----
21:09 < merdely> NicM: if I run 'tmux attach -t main' and there is no tmux session named main, start a new one.