inline void TabMenuDisplay::PaintSubMenuItems(Canvas &canvas) const { const MainMenuButton &main_button = GetMainMenuButton(GetPageMainIndex(cursor)); PaintSubMenuBorder(canvas, main_button); assert(main_button.first_page_index < buttons.size()); assert(main_button.last_page_index < buttons.size()); const bool is_focused = !HasCursorKeys() || HasFocus(); for (unsigned first_page_index = main_button.first_page_index, last_page_index = main_button.last_page_index, page_index = first_page_index; page_index <= last_page_index; ++page_index) { const unsigned sub_index = page_index - first_page_index; const bool is_pressed = sub_index == down_index.sub_index && !drag_off_button; const bool is_cursor = page_index == cursor; const bool is_selected = is_pressed || is_cursor; buttons[page_index].Draw(canvas, look, is_focused, is_pressed, is_selected); } }
inline void TabMenuDisplay::PaintSubMenuItems(Canvas &canvas, const unsigned CaptionStyle) const { const MainMenuButton &main_button = GetMainMenuButton(GetPageMainIndex(cursor)); PaintSubMenuBorder(canvas, main_button); assert(main_button.first_page_index < buttons.size()); assert(main_button.last_page_index < buttons.size()); const bool is_focused = !HasCursorKeys() || HasFocus(); for (unsigned first_page_index = main_button.first_page_index, last_page_index = main_button.last_page_index, page_index = first_page_index; page_index <= last_page_index; ++page_index) { const unsigned sub_index = page_index - first_page_index; const bool is_pressed = sub_index == down_index.sub_index && !drag_off_button; const bool is_cursor = page_index == cursor; const bool is_selected = is_pressed || is_cursor; canvas.SetTextColor(look.list.GetTextColor(is_selected, is_focused, is_pressed)); canvas.SetBackgroundColor(look.list.GetBackgroundColor(is_selected, is_focused, is_pressed)); const PixelRect &rc = GetSubMenuButtonSize(page_index); TabDisplay::PaintButton(canvas, CaptionStyle, gettext(pages[page_index].menu_caption), rc, nullptr, is_cursor, false); } }