X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=list.c;h=cd7fa14c0656bf45dc8e5aee8073e041113469e3;hb=56245080062a7f3d46b47bf7def240115e34fb38;hp=6cb8ed791b8bd71065d62cd63657e7387cd50210;hpb=b6053007306a73fefe0ed952862ae71da9483d0e;p=pkg%2Fabook.git diff --git a/list.c b/list.c index 6cb8ed7..cd7fa14 100644 --- a/list.c +++ b/list.c @@ -9,8 +9,8 @@ #include #include -#include #include "abook.h" +#include #include "ui.h" #include "database.h" #include "edit.h" @@ -35,14 +35,12 @@ extern struct abook_field abook_fields[]; WINDOW *list = NULL; static int -init_extra_field(char *option_name) +init_extra_field(enum str_opts option) { int i, ret = -1; char *option_str; - assert(option_name != NULL); - - option_str = options_get_str(option_name); + option_str = opt_get_str(option); if(option_str && *option_str) { for(i = 0; i < ITEM_FIELDS; i++) { @@ -69,8 +67,8 @@ init_list() * init extra_column and extra alternative */ - extra_column = init_extra_field("extra_column"); - extra_alternative = init_extra_field("extra_alternative"); + extra_column = init_extra_field(STR_EXTRA_COLUMN); + extra_alternative = init_extra_field(STR_EXTRA_ALTERNATIVE); } void @@ -109,19 +107,14 @@ refresh_list() for( line = 0, i = first_list_item ; i <= LAST_LIST_ITEM && i < items; line++, i++ ) { - if(i == curitem) - highlight_line(list, line); - - print_list_line(i, line); - - wstandend(list); + print_list_line(i, line, i == curitem); } wrefresh(list); } void -print_list_line(int i, int line) +print_list_line(int i, int line, int highlight) { int extra = extra_column; char tmp[MAX_EMAILSTR_LEN]; @@ -129,12 +122,14 @@ print_list_line(int i, int line) EMAILLEN : COLS - EMAILPOS; scrollok(list, FALSE); + if(highlight) + highlight_line(list, line); if( selected[i] ) mvwaddch(list, line, 0, '*' ); mvwaddnstr(list, line, NAMEPOS, database[i][NAME], NAMELEN); - if( options_get_int( "show_all_emails" ) ) + if( opt_get_bool(BOOL_SHOW_ALL_EMAILS) ) mvwaddnstr(list, line, EMAILPOS, database[i][EMAIL], real_emaillen); else { @@ -150,19 +145,27 @@ print_list_line(int i, int line) EXTRALEN); scrollok(list, TRUE); + if(highlight) + wstandend(list); } void list_headerline() { +#ifdef A_BOLD attrset(A_BOLD); +#else + /* hmm, maybe something here */ +#endif mvaddstr(2, NAMEPOS, abook_fields[NAME].name); mvaddstr(2, EMAILPOS, abook_fields[EMAIL].name); if(extra_column > 0) mvaddnstr(2, EXTRAPOS, abook_fields[extra_column].name, COLS-EXTRAPOS); +#ifdef A_BOLD attrset(A_NORMAL); +#endif } void @@ -278,8 +281,12 @@ void highlight_line(WINDOW *win, int line) { wstandout(win); - -#ifdef mvwchgat + + /* + * this is a tricky one + */ +#if 0 +/*#ifdef mvwchgat*/ mvwchgat(win, line, 0, -1, A_STANDOUT, 0, NULL); #else /*