-wxSlider95::Create(wxWindow *parent,
- wxWindowID id,
- int value,
- int minValue,
- int maxValue,
- const wxPoint& pos,
- const wxSize& size,
- long style,
- const wxValidator& validator,
- const wxString& name)
-{
+wxSlider::Create(wxWindow *parent,
+ wxWindowID id,
+ int value,
+ int minValue,
+ int maxValue,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ // our styles are redundant: wxSL_LEFT/RIGHT imply wxSL_VERTICAL and
+ // wxSL_TOP/BOTTOM imply wxSL_HORIZONTAL, but for backwards compatibility
+ // reasons we can't really change it, instead try to infer the orientation
+ // from the flags given to us here
+ switch ( style & (wxSL_LEFT | wxSL_RIGHT | wxSL_TOP | wxSL_BOTTOM) )
+ {
+ case wxSL_LEFT:
+ case wxSL_RIGHT:
+ style |= wxSL_VERTICAL;
+ break;
+
+ case wxSL_TOP:
+ case wxSL_BOTTOM:
+ style |= wxSL_HORIZONTAL;
+ break;
+
+ case 0:
+ // no specific direction, do we have at least the orientation?
+ if ( !(style & (wxSL_HORIZONTAL | wxSL_VERTICAL)) )
+ {
+ // no, choose default
+ style |= wxSL_BOTTOM | wxSL_HORIZONTAL;
+ }
+ };
+
+ wxASSERT_MSG( !(style & wxSL_VERTICAL) | !(style & wxSL_HORIZONTAL),
+ _T("incompatible slider direction and orientation") );
+
+