00001 00008 #ifndef FISH_SCREEN_H 00009 #define FISH_SCREEN_H 00010 00014 typedef struct 00015 { 00016 /* 00017 The internal representation of the desired screen contents. 00018 */ 00019 array_list_t desired; 00023 array_list_t actual; 00027 int desired_cursor[2]; 00031 int actual_cursor[2]; 00036 string_buffer_t actual_prompt; 00037 00038 /* 00039 The actual width of the screen at the time of the last screen 00040 write. 00041 */ 00042 int actual_width; 00043 00050 int need_clear; 00051 00056 struct stat prev_buff_1, prev_buff_2, post_buff_1, post_buff_2; 00057 } 00058 screen_t; 00059 00064 typedef struct 00065 { 00072 array_list_t text; 00076 array_list_t color; 00077 } 00078 line_t; 00079 00083 void s_init( screen_t *s ); 00084 00088 void s_destroy( screen_t *s ); 00089 00097 void s_write( screen_t *s, 00098 wchar_t *prompt, 00099 wchar_t *commandline, 00100 int *colors, 00101 int *indent, 00102 int cursor_pos ); 00103 00119 void s_reset( screen_t *s, int reset_cursor ); 00120 00121 #endif
1.4.4