def Key::gui_cat_list
id = NcursesInterface::get_win_id('cat')
if id == -1
cats = $config['feeds'].categories
w = $config['w'] - 40
h = $config['h'] - 5
h = cats.size + 3 if h > cats.size + 3
$wins << win = NcursesInterface::ListWindow::new({
'title' => $config['msg_cat_title'],
'key' => 'cat',
'coords' => [20, 3, w, h],
'colors' => $wins[NcursesInterface::get_win_id('item')].colors,
})
win.items << {
'title' => build_cat_title('all', $config['feeds'].size, w - 3),
'cat' => 'all'
}
cats.each_with_index do |c, i|
win.items << {
'title' => build_cat_title(c.title, c.count, w - 3),
'cat' => c.title
}
win.activate(i + 1) if $category == c.title
end
win.draw_items
NcursesInterface::set_active_win(NcursesInterface::get_win_id('cat'))
else
if id == $a_win
$wins[id].close(true)
else
NcursesInterface::set_active_win(id)
end
end
end