X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8cb03510a15d9b9d2c93ea7411c84a426884aab3..5c3c1372775ad7fd04448fb033ba1224780f6b65:/include/wx/private/window.h diff --git a/include/wx/private/window.h b/include/wx/private/window.h new file mode 100644 index 0000000000..3084665206 --- /dev/null +++ b/include/wx/private/window.h @@ -0,0 +1,39 @@ +///////////////////////////////////////////////////////////////////////////// +// 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_