1 /* -*- c-basic-offset:2; tab-width:2; indent-tabs-mode:nil -*- */ 2 3 #ifndef __VT_MODEL_H__ 4 #define __VT_MODEL_H__ 5 6 #include <pobl/bl_types.h> 7 8 #include "vt_str.h" 9 #include "vt_line.h" 10 11 typedef struct vt_model { 12 /* private */ 13 vt_line_t *lines; 14 15 /* public(readonly) */ 16 u_int16_t num_cols; /* 0 - 65536 */ 17 u_int16_t num_rows; /* 0 - 65536 */ 18 19 /* private */ 20 int beg_row; /* used for scrolling */ 21 22 } vt_model_t; 23 24 int vt_model_init(vt_model_t *model, u_int num_cols, u_int num_rows); 25 26 void vt_model_final(vt_model_t *model); 27 28 void vt_model_reset(vt_model_t *model); 29 30 int vt_model_resize(vt_model_t *model, u_int num_cols, u_int num_rows, u_int slide); 31 32 u_int vt_model_get_num_filled_rows(vt_model_t *model); 33 34 int vt_model_end_row(vt_model_t *model); 35 36 vt_line_t *vt_model_get_line(vt_model_t *model, int row); 37 38 void vt_model_scroll_upward(vt_model_t *model, u_int size); 39 40 void vt_model_scroll_downward(vt_model_t *model, u_int size); 41 42 #ifdef DEBUG 43 44 void vt_model_dump(vt_model_t *model); 45 46 #endif 47 48 #endif 49