void inventory_column::draw( WINDOW *win, size_t x, size_t y ) const
{
    for( size_t i = page_offset, line = 0; i < entries.size() && line < entries_per_page; ++i, ++line ) {
        const auto &entry = entries[i];
        if( entry.is_null() ) {
            continue;
        }

        trim_and_print( win, y + line, x + get_entry_indent( entry ), getmaxx( win ) - x,
                        get_entry_color( entry ), "%s", get_entry_text( entry ).c_str() );

        if( entry.is_item() && entry.it->invlet != '\0' ) {
            const nc_color invlet_color = g->u.assigned_invlet.count( entry.it->invlet ) ? c_yellow : c_white;
            mvwputch( win, y + line, x, invlet_color, entry.it->invlet );
        }
    }
}
Ejemplo n.º 2
0
size_t inventory_column::get_entry_width( const inventory_entry &entry ) const {
    return get_entry_indent( entry ) + utf8_width( get_entry_text( entry ), true );
}