progress on drawing the screen

This commit is contained in:
SuperNovaa41 2025-01-14 21:49:46 -05:00
parent d7dfb7a751
commit c6bdbe1676
2 changed files with 35 additions and 0 deletions

View File

@ -12,8 +12,28 @@ extern screen_buffer_t screen_buffer;
void refresh_screen(void)
{
/**
* TODO: need to move the cursor back at the end
* also need to draw the cusor coords at the bottom
* and need to implement controls
*/
int cur_x, cur_y;
cur_x = editor.cx;
cur_y = editor.cy;
// hide the cursor to prevent flickering
screen_buffer_append(&screen_buffer, HIDE_CURSOR_STR, HIDE_CURSOR_STR_LEN);
screen_buffer_append(&screen_buffer, MOVE_CURSOR_HOME_STR, MOVE_CURSOR_HOME_STR_LEN);
screen_buffer_append(&screen_buffer, CLEAR_SCREEN_STR, CLEAR_SCREEN_STR_LEN);
draw_editor_rows();
screen_buffer_append(&screen_buffer, SHOW_CURSOR_STR, SHOW_CURSOR_STR_LEN);
write(STDOUT_FILENO, screen_buffer.text, screen_buffer.len);
}

View File

@ -1,6 +1,21 @@
#ifndef DRAW_H
#define DRAW_H
/** BEGIN ASCII ESCAPE STRINGS **/
#define CLEAR_SCREEN_STR "\e[2J"
#define CLEAR_SCREEN_STR_LEN 4
#define MOVE_CURSOR_HOME_STR "\e[H"
#define MOVE_CURSOR_HOME_STR_LEN 3
#define HIDE_CURSOR_STR "\e[?25l"
#define HIDE_CURSOR_STR_LEN 6
#define SHOW_CURSOR_STR "\e[?25h"
#define SHOW_CURSOR_STR_LEN 6
/** END ASCII ESCAPE STRINGS SECTION **/
void refresh_screen(void);
void draw_editor_rows(void);