overriding drawTabButtonText() only have an effect if our lookAndFeel inherits LookAndFeel_V2.
This is because it is only called from within LookAndFeel_V2::drawTabButton(), while I think it should be called from the TabbedButtonBar::paint() function, just after the call to drawTabButton().
If you make that change, you will also have to override drawTabButtonText() in lookAndFeel_V3 (for now V3 draws the text directly in drawTabButton(), without any call to drawTabButtonText()).
Also, when you drawing the TabButton text in v3, it would be nice if you could change this code :
if (button.isFrontTab() && bar->isColourSpecified (TabbedButtonBar::frontTextColourId)) col = bar->findColour (TabbedButtonBar::frontTextColourId); else if (bar->isColourSpecified (TabbedButtonBar::tabTextColourId)) col = bar->findColour (TabbedButtonBar::tabTextColourId);
to
if (button.isFrontTab() && (bar->isColourSpecified (TabbedButtonBar::frontTextColourId) || isColourSpecified (TabbedButtonBar::frontTextColourId))) col = bar->findColour (TabbedButtonBar::frontTextColourId); else if (bar->isColourSpecified (TabbedButtonBar::tabTextColourId) || isColourSpecified (TabbedButtonBar::tabTextColourId)) col = bar->findColour (TabbedButtonBar::tabTextColourId);
to always take the TabbedButtonBar text colourIds into account.
Finally a more general question : LookAndFeel_V2 and LookAndFeel_V3 methods are not marked virtual.
I used to think that it was ok to inherit from them, but for sure if one day you make some big changes in there,
my lookAndFeels will change too..
So did you not marked them as virtual because of that?
Should we really avoid inheriting from them and only inherit from LookAndFeel, or would you say you won't make more lnf changes in them and it is ok if we inherit from them ?