What will struct term_t look like?
-Ross

On 01/18/2011 06:44 PM, Aurélien Aptel wrote:
> What the API should look like? Which features?
> I was thinking of something like this:
>
> * term_ function prefix
> * first parameter is the term context
> * non blocking io (ie. returns when there's nothing to process)
> * use a dirty flag on glyph (or even on lines) to speed up drawing
> * scrollback buffer, by popular demand
>
>
> /* usage example */
> term_t* t = term_new(width, height, "/bin/sh");
>
> while(1) {
>     /* non blocking behaviour */
>     flag = term_update(t);
>
>     /* content of the screen changed */
>     if(flag & DIRTY)
>         draw_update(t);
>     /* bell received */
>     if(flag & BELL)
>         beep();
>     /* title changed */
>     if(flag & TITLE)
>         set_title(t->title);
>     /* cursor moved (we have to remove the old one and draw the new one) */
>     if(flag & CURSOR)
>        redraw_cursor();
>     /* shell exited */
>     if(flag & DEAD)
>        die("argh");
>
>
>     if(key_pressed())
>         term_write(t, key);
>     if(window_resize())
>         term_resize(t, new_width, new_height)
>
>     /* ... */
> }
>
>
> Do selection-type actions have their place in the lib? Is the
> selection per terminal? If I select a chunk of text before the screen
> scrolls, do I keep the selected text and scroll the selection with it,
> or do I keep the selection position and update the selection buffer?
>

Reply via email to