+// This is a helper for all wxControls made with UPDOWN native control.
+// In wxMSW it was only wxSpinCtrl derived from wxSpinButton but in
+// WinCE of Smartphones this happens also for native wxTextCtrl,
+// wxChoice and others.
+wxSize wxControl::GetBestSpinerSize(const bool is_vertical) const
+{
+ // take size according to layout
+ wxSize bestSize(
+#if defined(__SMARTPHONE__) && defined(__WXWINCE__)
+ 0,GetCharHeight()
+#else
+ ::GetSystemMetrics(is_vertical ? SM_CXVSCROLL : SM_CXHSCROLL),
+ ::GetSystemMetrics(is_vertical ? SM_CYVSCROLL : SM_CYHSCROLL)
+#endif
+ );
+
+ // correct size as for undocumented MSW variants cases (WinCE and perhaps others)
+ if (bestSize.x==0)
+ bestSize.x = bestSize.y;
+ if (bestSize.y==0)
+ bestSize.y = bestSize.x;
+
+ // double size according to layout
+ if (is_vertical)
+ bestSize.y *= 2;
+ else
+ bestSize.x *= 2;
+
+ return bestSize;
+}
+
+/* static */ wxVisualAttributes
+wxControl::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
+{
+ wxVisualAttributes attrs;
+
+ // old school (i.e. not "common") controls use the standard dialog font
+ // by default
+ attrs.font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
+
+ // most, or at least many, of the controls use the same colours as the
+ // buttons -- others will have to override this (and possibly simply call
+ // GetCompositeControlsDefaultAttributes() from their versions)
+ attrs.colFg = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNTEXT);
+ attrs.colBg = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE);
+
+ return attrs;
+}
+
+// another version for the "composite", i.e. non simple controls
+/* static */ wxVisualAttributes
+wxControl::GetCompositeControlsDefaultAttributes(wxWindowVariant WXUNUSED(variant))
+{
+ wxVisualAttributes attrs;
+ attrs.font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
+ attrs.colFg = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT);
+ attrs.colBg = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW);
+
+ return attrs;
+}
+
+// ----------------------------------------------------------------------------
+// message handling
+// ----------------------------------------------------------------------------
+