This time with more fixes and tests.
Experimenting with tab control I found this differences between MSDN and actual implementation: - TCS_OWNERDRAWFIXED style has nothing to do with fixed with tabs. It should me named TCS_OWNERDRAW instead. Unless there is some apps that think otherwise, this should work (tested on eMule and test program).
In other words, this quote from MSDN is not true: "Because all tabs in an owner-drawn tab control are the same size..."
- It looks like there is not such thing as not set tab width. According to this:
"To give all tabs the same width, you can specify the TCS_FIXEDWIDTH style. The control sizes all the tabs to fit the widest label, or you can assign a specific width and height by using the TCM_SETITEMSIZE message."
one can assume that if tab width is not explicitly set with TCM_SETITEMSIZE message "The control sizes all the tabs to fit the widest label".
Not true. Native uses default tab size of 96.
- The minimum size of a tab is at least icon width + 4 if icon is present.
- Prior observation that "under Windows, there seems to be a minimum width of 2x the height for button style tabs" is not true.
Vitaliy Margolen
changelog: - Fix tab size for TCS_OWNERDRAWFIXED style - Correct size recalculation after setting tab width - Fix button sizes to match native. - Center both vertically and horizontally tab text & icon - Use correct left/center alignment flags
to-do (currently working on): - Correct text & icon position within each tab/button to match native - Fix hot-track - Correct tab sizes for vertical styles