widthTextMax += 2;
#endif // __WXWINCE__
+ // It looks like the static control needs "slightly" more vertical space
+ // than the character height and while the text isn't actually truncated if
+ // we use just the minimal height, it is positioned differently than when
+ // the control has enough space and this result in the text in edit and
+ // static controls not being aligned when the controls themselves are. As
+ // this is something you really should be able to count on, increase the
+ // space allocated for the control so that the base lines do align
+ // correctly. Notice that while the above is true at least for the single
+ // line controls, there doesn't seem to do any harm to allocate two extra
+ // pixels in multi-line case neither so do it always for consistency.
+ //
+ // I still have no idea why exactly is this needed nor why should we use 2
+ // and not something else. This seems to work in all the configurations
+ // though (small/large fonts, different OS versions, ...) so just hard code
+ // it for now. If we need something better later it might be worth looking
+ // at the height of the text control returned by ::GetComboBoxInfo() as it
+ // seems to be the "minimal acceptable" height.
+ heightTextTotal += 2;
+
return wxSize(widthTextMax, heightTextTotal);
}
}
#endif // SS_ENDELLIPSIS
- // this call will save the label in m_labelOrig and set it into this window
- // (through wxWindow::SetLabel)
+ // save the label in m_labelOrig with both the markup (if any) and
+ // the mnemonics characters (if any)
m_labelOrig = label;
#ifdef SS_ENDELLIPSIS
if ( styleReal & SS_ENDELLIPSIS )
- DoSetLabel(RemoveMarkup(label));
+ DoSetLabel(GetLabelWithoutMarkup());
else
#endif // SS_ENDELLIPSIS
DoSetLabel(GetEllipsizedLabelWithoutMarkup());