///////////////////////////////////////////////////////////////////////////// // Name: wx/private/window.h // Purpose: misc wxWindow helpers // Author: Vaclav Slavik // Created: 2010-01-21 // RCS-ID: $Id$ // Copyright: (c) 2010 Vaclav Slavik // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_PRIVATE_WINDOW_H_ #define _WX_PRIVATE_WINDOW_H_ #include "wx/gdicmn.h" namespace wxPrivate { // Windows' computes dialog units using average character width over upper- // and lower-case ASCII alphabet and not using the average character width // metadata stored in the font; see // http://support.microsoft.com/default.aspx/kb/145994 for detailed discussion. // // This helper function computes font dimensions in the same way. It works with // either wxDC or wxWindow argument. template inline wxSize GetAverageASCIILetterSize(const T& of_what) { const wxStringCharType *TEXT_TO_MEASURE = wxS("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"); wxSize s = of_what.GetTextExtent(TEXT_TO_MEASURE); s.x = (s.x / 26 + 1) / 2; return s; } } // namespace wxPrivate #endif // _WX_PRIVATE_WINDOW_H_