console: add erase-helpers
authorDavid Herrmann <dh.herrmann@googlemail.com>
Sat, 4 Feb 2012 17:31:10 +0000 (18:31 +0100)
committerDavid Herrmann <dh.herrmann@googlemail.com>
Sat, 4 Feb 2012 17:31:10 +0000 (18:31 +0100)
Add functions to erase several parts of the screen.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
src/console.c
src/console.h

index 9b98303..dc07f6f 100644 (file)
@@ -401,3 +401,57 @@ void kmscon_console_move_right(struct kmscon_console *con, unsigned int num)
        else
                con->cursor_x += num;
 }
+
+void kmscon_console_erase_cursor_to_end(struct kmscon_console *con)
+{
+       if (!con)
+               return;
+
+       kmscon_buffer_erase_region(con->cells, con->cursor_x, con->cursor_y,
+                                       con->cells_x - 1, con->cursor_y);
+}
+
+void kmscon_console_erase_home_to_cursor(struct kmscon_console *con)
+{
+       if (!con)
+               return;
+
+       kmscon_buffer_erase_region(con->cells, 0, con->cursor_y,
+                                       con->cursor_x, con->cursor_y);
+}
+
+void kmscon_console_erase_current_line(struct kmscon_console *con)
+{
+       if (!con)
+               return;
+
+       kmscon_buffer_erase_region(con->cells, 0, con->cursor_y,
+                                       con->cells_x - 1, con->cursor_y);
+}
+
+void kmscon_console_erase_screen_to_cursor(struct kmscon_console *con)
+{
+       if (!con)
+               return;
+
+       kmscon_buffer_erase_region(con->cells, 0, 0,
+                                               con->cursor_x, con->cursor_y);
+}
+
+void kmscon_console_erase_cursor_to_screen(struct kmscon_console *con)
+{
+       if (!con)
+               return;
+
+       kmscon_buffer_erase_region(con->cells, con->cursor_x, con->cursor_y,
+                                       con->cells_x - 1, con->cells_y - 1);
+}
+
+void kmscon_console_erase_screen(struct kmscon_console *con)
+{
+       if (!con)
+               return;
+
+       kmscon_buffer_erase_region(con->cells, 0, 0,
+                                       con->cells_x - 1, con->cursor_y);
+}
index 7665d58..1b1c143 100644 (file)
@@ -99,5 +99,11 @@ void kmscon_console_move_down(struct kmscon_console *con, unsigned int num,
                                                                bool scroll);
 void kmscon_console_move_left(struct kmscon_console *con, unsigned int num);
 void kmscon_console_move_right(struct kmscon_console *con, unsigned int num);
+void kmscon_console_erase_cursor_to_end(struct kmscon_console *con);
+void kmscon_console_erase_home_to_cursor(struct kmscon_console *con);
+void kmscon_console_erase_current_line(struct kmscon_console *con);
+void kmscon_console_erase_screen_to_cursor(struct kmscon_console *con);
+void kmscon_console_erase_cursor_to_screen(struct kmscon_console *con);
+void kmscon_console_erase_screen(struct kmscon_console *con);
 
 #endif /* KMSCON_CONSOLE_H */