void CtrlrMenuBarLookAndFeel::drawMenuBarItem (Graphics &g, int width, int height, int itemIndex, const String &itemText, bool isMouseOverItem, bool isMenuOpen, bool isMouseOverBar, MenuBarComponent &menuBar) { if (itemText.isEmpty()) return; Colour textColour = getColour (Ids::ctrlrMenuBarTextColour); Font textFont = getMenuBarFont (menuBar, itemIndex, itemText); if (!menuBar.isEnabled()) { textColour = textColour.withMultipliedAlpha (0.5f); } else if (isMouseOverItem && !isMenuOpen) { textColour = getColour (Ids::ctrlrMenuBarHighlightedTextColour); drawSelectionRectangle (g, width, height, getColour (Ids::ctrlrMenuBarHighlightColour).darker(0.3f)); } else if (isMouseOverItem && isMenuOpen) { textColour = getColour (Ids::ctrlrMenuBarHighlightedTextColour); drawSelectionRectangle (g, width, height, getColour (Ids::ctrlrMenuBarHighlightColour)); } else if (isMenuOpen) { textColour = getColour (Ids::ctrlrMenuBarHighlightedTextColour); drawSelectionRectangle (g, width, height, getColour (Ids::ctrlrMenuBarHighlightColour)); } g.setColour (textColour); g.setFont (textFont); g.drawFittedText (itemText, 0, 0, width, height, Justification::centred, 1); }
//======== Menubar item background ====================================================================== void CabbageIDELookAndFeel::drawMenuBarItem (Graphics& g, int width, int height, int itemIndex, const String& itemText, bool isMouseOverItem, bool isMenuOpen, bool isMouseOverBar, MenuBarComponent& menuBar) { const Colour textColour (CabbageSettings::getColourFromValueTree (colourTree, CabbageColourIds::menuBarText, Colours::white)); const Colour itemColour (CabbageSettings::getColourFromValueTree (colourTree, CabbageColourIds::menuBarMouseOverBackground, Colours::grey)); if ((isMouseOverItem == true) || (isMenuOpen == true)) { g.setColour (itemColour); g.fillRect (0, 0, width, height); } g.setColour (textColour); g.setFont (getMenuBarFont (menuBar, itemIndex, itemText)); g.drawFittedText (itemText, 0, 0, width, height, Justification::centred, 1); }
void ProjucerLookAndFeel::drawMenuBarItem (Graphics& g, int width, int height, int itemIndex, const String& itemText, bool isMouseOverItem, bool isMenuOpen, bool /*isMouseOverBar*/, MenuBarComponent& menuBar) { if (! menuBar.isEnabled()) { g.setColour (menuBar.findColour (defaultTextColourId) .withMultipliedAlpha (0.5f)); } else if (isMenuOpen || isMouseOverItem) { g.fillAll (menuBar.findColour (defaultHighlightColourId).withAlpha (0.75f)); g.setColour (menuBar.findColour (defaultHighlightedTextColourId)); } else { g.setColour (menuBar.findColour (defaultTextColourId)); } g.setFont (getMenuBarFont (menuBar, itemIndex, itemText)); g.drawFittedText (itemText, 0, 0, width, height, Justification::centred, 1); }
int CtrlrMenuBarLookAndFeel::getMenuBarItemWidth (MenuBarComponent &menuBar, int itemIndex, const String &itemText) { return getMenuBarFont (menuBar, itemIndex, itemText).getStringWidth (itemText) + menuBar.getHeight(); }