+int wxStatusBar::MSWGetBorderWidth() const
+{
+ return MSWGetBorders().between;
+}
+
+/* static */
+const wxStatusBar::MSWMetrics& wxStatusBar::MSWGetMetrics()
+{
+ static MSWMetrics s_metrics = { 0 };
+ if ( !s_metrics.textMargin )
+ {
+ // Grip size should be self explanatory (the only problem with it is
+ // that it's hard coded as we don't know how to find its size using
+ // API) but the margin might merit an explanation: Windows offsets the
+ // text drawn in status bar panes so we need to take this extra margin
+ // into account to make sure the text drawn by user fits inside the
+ // pane. Notice that it's not the value returned by SB_GETBORDERS
+ // which, at least on this Windows 2003 system, returns {0, 2, 2}
+ if ( wxUxThemeEngine::GetIfActive() )
+ {
+ s_metrics.gripWidth = 20;
+ s_metrics.textMargin = 8;
+ }
+ else // classic/unthemed look
+ {
+ s_metrics.gripWidth = 18;
+ s_metrics.textMargin = 4;
+ }
+ }
+
+ return s_metrics;