inline void TabMenuDisplay::PaintMainMenuBorder(Canvas &canvas) const { PixelRect rc = GetMainMenuButtonSize(0); rc.bottom = GetMainMenuButtonSize(GetNumMainMenuItems() - 1).bottom; rc.Grow(GetTabLineHeight()); canvas.DrawFilledRectangle(rc, COLOR_BLACK); }
TabMenuControl::MenuTabIndex TabMenuControl::IsPointOverButton(RasterPoint Pos, unsigned mainIndex) const { // scan main menu buttons for (unsigned i = 0; i < GetNumMainMenuItems(); i++) if (GetMainMenuButtonSize(i).IsInside(Pos)) return MenuTabIndex(i); // scan visible submenu if (mainIndex < GetNumMainMenuItems()) { const MainMenuButton &main_button = GetMainMenuButton(mainIndex); for (unsigned i = main_button.first_page_index; i <= main_button.last_page_index; ++i) { if (GetSubMenuButtonSize(i).IsInside(Pos)) return MenuTabIndex(mainIndex, i - main_button.first_page_index); } } return MenuTabIndex::None(); }