I have been recently working on fixing Yab after my changes to use
native BTabView and remove dependency on the unstable BControlLook.
Without going into too much detail:
Yab uses view names to reference them in scripts. BTab doesn't have
storage for labels, instead it uses view's name as display label. That
is a problem, since SetLabel is going to change that name and cause
inconsistencies in Yab's internal view index.
First thing I tried to do was setting the name back after calling
SetLabel, but that obviously doesn't work, because I don't want to
display view's internal name.
Second thing I tried to do was subclassing BTab to have it's own
fLabel property and use that to render. I overloaded Label and
SetLabel, but that doesn't work either because Label is not virtual.
I'd have to overload DrawLabel which defeats the purpose, since it
introduces dependency on BControlLook again.
I see three solutions here:
1) decouple view name and label in default BTab by giving it its own
2) make BTab::Label() virtual;
3) declare BControlLook stable.
Is there another way to solve this? If not, which is preferable and
what problems do you see with any of those approaches (backward