git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@526 c06c8d41-db1a-0410-9941-cceddc491573
AU3E5FTABBHFZAZHLGA3UUR5TCTRLDOEMAKTGGEWKCQVH77I3SYAC
}
void slider_menu::adjust_pagesizes(int recurse_depth)
{
if (first_entry == 1 && selected == 1)
first_entry = 0;
need_less = !!first_entry;
pagesize = endy - starty + 1 - !!title - need_less;
const int nitems = items.size();
need_more = first_entry + pagesize < nitems;
if (need_more)
pagesize--;
if (selected != -1
&& (selected < first_entry || selected >= first_entry + pagesize)
&& recurse_depth > 0)
fix_entry(recurse_depth - 1);
calc_y_offset();
void slider_menu::show_less()
{
if (!need_less)
return ;
if (first_entry > 0)
less.display();
else
textattr(LIGHTGREY);
fill_line();
}
void slider_menu::show_more()
{
if (!need_more)
return ;
const int end = entry_end();
gotoxy( 1, y_offset + pagesize );
if (end < (int) items.size() || is_set(MF_ALWAYS_SHOW_MORE))
more.display();
else
textattr(LIGHTGREY);
fill_line();
}
void slider_menu::calc_y_offset()
{
y_offset = starty + !!title + need_less;
}
int slider_menu::entry_end() const
{
int end = first_entry + pagesize;
if (end > (int) items.size()) end = items.size();
return (end);
}