- wxGetCharSize(GetHWND(), &cx, &cy, this->GetFont());
-
- if ((m_windowStyle & wxSL_VERTICAL) != wxSL_VERTICAL)
- {
- if ( m_windowStyle & wxSL_LABELS )
- {
- int min_len = 0;
-
- ::GetWindowText((HWND) m_staticMin, buf, 300);
- GetTextExtent(buf, &min_len, &cyf,NULL,NULL, & this->GetFont());
-
- int max_len = 0;
-
- ::GetWindowText((HWND) m_staticMax, buf, 300);
- GetTextExtent(buf, &max_len, &cyf,NULL,NULL, & this->GetFont());
- if (m_staticValue)
- {
- int new_width = (int)(wxMax(min_len, max_len));
- int valueHeight = (int)cyf;
-#ifdef __WIN32__
- // For some reason, under Win95, the text edit control has
- // a lot of space before the first character
- new_width += 3*cx;
-#endif
- // The height needs to be a bit bigger under Win95 if
- // using native 3D effects.
- valueHeight = (int) (valueHeight * 1.5) ;
- ::MoveWindow((HWND) m_staticValue, x_offset, y_offset,
- new_width, valueHeight, TRUE);
- x_offset += new_width + cx;
- }
-
- MoveWindow((HWND) m_staticMin, x_offset, y_offset,
- (int) min_len, cy, TRUE);
- x_offset += (int)(min_len + cx);
-
- // slider_length = (total width available) - (width used so far)
- // - (width of max label) - (border)
- int slider_length = (int)(w1 - (x_offset-x) - max_len - cx);
-
- int slider_height = h1;
- if (slider_height < 0 )
- slider_height = 20;
-
- // Slider must have a minimum/default length/height
- if (slider_length < 100)
- slider_length = 100;
-
- ::MoveWindow(GetHwnd(), x_offset, y_offset,
- slider_length, slider_height, TRUE);
- x_offset += slider_length + cx;
-
- MoveWindow((HWND) m_staticMax, x_offset, y_offset,
- (int) max_len, cy, TRUE);
- }
- else
- {
- // No labels
- // If we're prepared to use the existing size, then...
- if
- (
- width == -1
- && height == -1
- && ((sizeFlags & wxSIZE_AUTO) != wxSIZE_AUTO)
- )
- {
- GetSize(&w1, &h1);
- }
-
- if ( w1 < 0 )
- w1 = 100;
- if ( h1 < 0 )
- h1 = 20;
-
- ::MoveWindow(GetHwnd(), x1, y1, w1, h1, TRUE);
- }