X-Git-Url: https://git.donarmstrong.com/?p=samtools.git;a=blobdiff_plain;f=bam_tview_curses.c;h=7ccf64b6aa027324d4da3f2577179c98e957031d;hp=0c18ac7834b63b6a97fedb5c21f6ff8cb2e71e88;hb=1bdc0794c25967da86e798ebcfd51c2a5891ebc8;hpb=0e2f13b75ed445204e3ac7d1f67bef8cc62677dd diff --git a/bam_tview_curses.c b/bam_tview_curses.c index 0c18ac7..7ccf64b 100644 --- a/bam_tview_curses.c +++ b/bam_tview_curses.c @@ -1,9 +1,9 @@ #include "bam_tview_curses.h" +#define FROM_TV(ptr) ((curses_tview_t*)ptr) - -static void curses_tv_destroy(tview_t* base) +static void curses_destroy(tview_t* base) { curses_tview_t* tv=(curses_tview_t*)base; @@ -27,22 +27,37 @@ static void curses_tv_destroy(tview_t* base) static void curses_mvprintw(struct AbstractTview* tv,int y ,int x,const char* fmt,...) { + unsigned int size=tv->mcol+2; + char* str=malloc(size); + va_list argptr; + va_start(argptr, fmt); + vsnprintf(str,size, fmt, argptr); + va_end(argptr); + mvprintw(y,x,str); + free(str); } + static void curses_mvaddch(struct AbstractTview* tv,int y,int x,int ch) - { - } + { + mvaddch(y,x,ch); + } + static void curses_attron(struct AbstractTview* tv,int flag) { + attron(flag); } static void curses_attroff(struct AbstractTview* tv,int flag) { + attroff(flag); } static void curses_clear(struct AbstractTview* tv) { + clear(); } static int curses_colorpair(struct AbstractTview* tv,int flag) { + return COLOR_PAIR(flag); } @@ -268,7 +283,7 @@ int bam_tview_main(int argc, char *argv[]) } tv_draw_aln(tv, tv->curr_tid, tv->left_pos); tv_loop(CTV); - tv->destroy(tv); - free(tv); + tv->my_destroy(tv); + return 0; }