Improvements for building minimal builds and new ports: wxUSE_* usage and minor cleaning.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39633 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -100,8 +100,10 @@ END_EVENT_TABLE()
|
||||
|
||||
void wxWindow::Init()
|
||||
{
|
||||
#if wxUSE_SCROLLBAR
|
||||
m_scrollbarVert =
|
||||
m_scrollbarHorz = (wxScrollBar *)NULL;
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
|
||||
m_isCurrent = false;
|
||||
|
||||
@@ -145,9 +147,11 @@ bool wxWindow::Create(wxWindow *parent,
|
||||
#if wxUSE_TWO_WINDOWS
|
||||
SetInsertIntoMain( true );
|
||||
#endif
|
||||
#if wxUSE_SCROLLBAR
|
||||
m_scrollbarVert = new wxScrollBar(this, wxID_ANY,
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
wxSB_VERTICAL);
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
#if wxUSE_TWO_WINDOWS
|
||||
SetInsertIntoMain( false );
|
||||
#endif
|
||||
@@ -159,19 +163,23 @@ bool wxWindow::Create(wxWindow *parent,
|
||||
#if wxUSE_TWO_WINDOWS
|
||||
SetInsertIntoMain( true );
|
||||
#endif
|
||||
#if wxUSE_SCROLLBAR
|
||||
m_scrollbarHorz = new wxScrollBar(this, wxID_ANY,
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
wxSB_HORIZONTAL);
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
#if wxUSE_TWO_WINDOWS
|
||||
SetInsertIntoMain( false );
|
||||
#endif
|
||||
}
|
||||
|
||||
#if wxUSE_SCROLLBAR
|
||||
if (m_scrollbarHorz || m_scrollbarVert)
|
||||
{
|
||||
// position it/them
|
||||
PositionScrollbars();
|
||||
}
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -225,13 +233,9 @@ void wxWindow::OnNcPaint(wxNcPaintEvent& WXUNUSED(event))
|
||||
if ( m_renderer )
|
||||
{
|
||||
// get the window rect
|
||||
wxRect rect;
|
||||
wxSize size = GetSize();
|
||||
rect.x =
|
||||
rect.y = 0;
|
||||
rect.width = size.x;
|
||||
rect.height = size.y;
|
||||
wxRect rect(GetSize());
|
||||
|
||||
#if wxUSE_SCROLLBAR
|
||||
// if the scrollbars are outside the border, we must adjust the rect to
|
||||
// exclude them
|
||||
if ( !m_renderer->AreScrollbarsInsideBorder() )
|
||||
@@ -244,6 +248,7 @@ void wxWindow::OnNcPaint(wxNcPaintEvent& WXUNUSED(event))
|
||||
if ( scrollbar )
|
||||
rect.height -= scrollbar->GetSize().y;
|
||||
}
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
|
||||
// get the DC and draw the border on it
|
||||
wxWindowDC dc(this);
|
||||
@@ -281,6 +286,7 @@ void wxWindow::OnErase(wxEraseEvent& event)
|
||||
|
||||
DoDrawBackground(*event.GetDC());
|
||||
|
||||
#if wxUSE_SCROLLBAR
|
||||
// if we have both scrollbars, we also have a square in the corner between
|
||||
// them which we must paint
|
||||
if ( m_scrollbarVert && m_scrollbarHorz )
|
||||
@@ -300,6 +306,7 @@ void wxWindow::OnErase(wxEraseEvent& event)
|
||||
m_renderer->DrawScrollCorner(*event.GetDC(), rectCorner);
|
||||
}
|
||||
}
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
}
|
||||
|
||||
bool wxWindow::DoDrawBackground(wxDC& dc)
|
||||
@@ -533,10 +540,12 @@ void wxWindow::OnSize(wxSizeEvent& event)
|
||||
{
|
||||
event.Skip();
|
||||
|
||||
#if wxUSE_SCROLLBAR
|
||||
if ( m_scrollbarVert || m_scrollbarHorz )
|
||||
{
|
||||
PositionScrollbars();
|
||||
}
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
|
||||
#if 0 // ndef __WXMSW__
|
||||
// Refresh the area (strip) previously occupied by the border
|
||||
@@ -697,13 +706,19 @@ void wxWindow::DoGetClientSize(int *width, int *height) const
|
||||
|
||||
if ( width )
|
||||
{
|
||||
#if wxUSE_SCROLLBAR
|
||||
// in any case, take account of the scrollbar
|
||||
if ( m_scrollbarVert )
|
||||
w -= m_scrollbarVert->GetSize().x;
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
|
||||
// if we don't have scrollbar or if it is outside the border (and not
|
||||
// blended into it), take account of the right border as well
|
||||
if ( !m_scrollbarVert || inside )
|
||||
if (
|
||||
#if wxUSE_SCROLLBAR
|
||||
!m_scrollbarVert ||
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
inside )
|
||||
w -= rectBorder.width;
|
||||
|
||||
// and always account for the left border
|
||||
@@ -716,10 +731,16 @@ void wxWindow::DoGetClientSize(int *width, int *height) const
|
||||
|
||||
if ( height )
|
||||
{
|
||||
#if wxUSE_SCROLLBAR
|
||||
if ( m_scrollbarHorz )
|
||||
h -= m_scrollbarHorz->GetSize().y;
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
|
||||
if ( !m_scrollbarHorz || inside )
|
||||
if (
|
||||
#if wxUSE_SCROLLBAR
|
||||
!m_scrollbarHorz ||
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
inside )
|
||||
h -= rectBorder.height;
|
||||
|
||||
*height = h - rectBorder.y;
|
||||
@@ -742,14 +763,26 @@ void wxWindow::DoSetClientSize(int width, int height)
|
||||
// had been called before)
|
||||
bool inside = m_renderer->AreScrollbarsInsideBorder();
|
||||
wxSize size = GetSize();
|
||||
#if wxUSE_SCROLLBAR
|
||||
if ( m_scrollbarVert )
|
||||
width += size.x - m_scrollbarVert->GetPosition().x;
|
||||
if ( !m_scrollbarVert || inside )
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
if (
|
||||
#if wxUSE_SCROLLBAR
|
||||
!m_scrollbarVert ||
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
inside )
|
||||
width += rectBorder.width;
|
||||
|
||||
#if wxUSE_SCROLLBAR
|
||||
if ( m_scrollbarHorz )
|
||||
height += size.y - m_scrollbarHorz->GetPosition().y;
|
||||
if ( !m_scrollbarHorz || inside )
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
if (
|
||||
#if wxUSE_SCROLLBAR
|
||||
!m_scrollbarHorz ||
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
inside )
|
||||
height += rectBorder.height;
|
||||
|
||||
wxWindowNative::DoSetClientSize(width, height);
|
||||
@@ -758,6 +791,8 @@ void wxWindow::DoSetClientSize(int width, int height)
|
||||
wxHitTest wxWindow::DoHitTest(wxCoord x, wxCoord y) const
|
||||
{
|
||||
wxHitTest ht = wxWindowNative::DoHitTest(x, y);
|
||||
|
||||
#if wxUSE_SCROLLBAR
|
||||
if ( ht == wxHT_WINDOW_INSIDE )
|
||||
{
|
||||
if ( m_scrollbarVert && x >= m_scrollbarVert->GetPosition().x )
|
||||
@@ -772,6 +807,7 @@ wxHitTest wxWindow::DoHitTest(wxCoord x, wxCoord y) const
|
||||
: wxHT_WINDOW_HORZ_SCROLLBAR;
|
||||
}
|
||||
}
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
|
||||
return ht;
|
||||
}
|
||||
@@ -784,15 +820,18 @@ wxHitTest wxWindow::DoHitTest(wxCoord x, wxCoord y) const
|
||||
|
||||
void wxWindow::RefreshScrollbars()
|
||||
{
|
||||
#if wxUSE_SCROLLBAR
|
||||
if ( m_scrollbarHorz )
|
||||
m_scrollbarHorz->Refresh();
|
||||
|
||||
if ( m_scrollbarVert )
|
||||
m_scrollbarVert->Refresh();
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
}
|
||||
|
||||
void wxWindow::PositionScrollbars()
|
||||
{
|
||||
#if wxUSE_SCROLLBAR
|
||||
// do not use GetClientSize/Rect as it relies on the scrollbars being
|
||||
// correctly positioned
|
||||
|
||||
@@ -838,6 +877,7 @@ void wxWindow::PositionScrollbars()
|
||||
}
|
||||
|
||||
RefreshScrollbars();
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
}
|
||||
|
||||
void wxWindow::SetScrollbar(int orient,
|
||||
@@ -846,6 +886,7 @@ void wxWindow::SetScrollbar(int orient,
|
||||
int range,
|
||||
bool refresh)
|
||||
{
|
||||
#if wxUSE_SCROLLBAR
|
||||
wxASSERT_MSG( pageSize <= range,
|
||||
_T("page size can't be greater than range") );
|
||||
|
||||
@@ -926,10 +967,18 @@ void wxWindow::SetScrollbar(int orient,
|
||||
(void)GetEventHandler()->ProcessEvent(event);
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
wxUnusedVar(orient);
|
||||
wxUnusedVar(pos);
|
||||
wxUnusedVar(pageSize);
|
||||
wxUnusedVar(range);
|
||||
wxUnusedVar(refresh);
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
}
|
||||
|
||||
void wxWindow::SetScrollPos(int orient, int pos, bool WXUNUSED(refresh))
|
||||
{
|
||||
#if wxUSE_SCROLLBAR
|
||||
wxScrollBar *scrollbar = GetScrollbar(orient);
|
||||
|
||||
if (scrollbar)
|
||||
@@ -941,24 +990,43 @@ void wxWindow::SetScrollPos(int orient, int pos, bool WXUNUSED(refresh))
|
||||
if ( refresh )
|
||||
Refresh();
|
||||
#endif
|
||||
#else
|
||||
wxUnusedVar(orient);
|
||||
wxUnusedVar(pos);
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
}
|
||||
|
||||
int wxWindow::GetScrollPos(int orient) const
|
||||
{
|
||||
#if wxUSE_SCROLLBAR
|
||||
wxScrollBar *scrollbar = GetScrollbar(orient);
|
||||
return scrollbar ? scrollbar->GetThumbPosition() : 0;
|
||||
#else
|
||||
wxUnusedVar(orient);
|
||||
return 0;
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
}
|
||||
|
||||
int wxWindow::GetScrollThumb(int orient) const
|
||||
{
|
||||
#if wxUSE_SCROLLBAR
|
||||
wxScrollBar *scrollbar = GetScrollbar(orient);
|
||||
return scrollbar ? scrollbar->GetThumbSize() : 0;
|
||||
#else
|
||||
wxUnusedVar(orient);
|
||||
return 0;
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
}
|
||||
|
||||
int wxWindow::GetScrollRange(int orient) const
|
||||
{
|
||||
#if wxUSE_SCROLLBAR
|
||||
wxScrollBar *scrollbar = GetScrollbar(orient);
|
||||
return scrollbar ? scrollbar->GetRange() : 0;
|
||||
#else
|
||||
wxUnusedVar(orient);
|
||||
return 0;
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
}
|
||||
|
||||
void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect)
|
||||
@@ -995,8 +1063,10 @@ void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect)
|
||||
node; node = node->GetNext())
|
||||
{
|
||||
wxWindow *child = node->GetData();
|
||||
#if wxUSE_SCROLLBAR
|
||||
if ( child == m_scrollbarVert || child == m_scrollbarHorz )
|
||||
continue;
|
||||
#endif // wxUSE_SCROLLBAR
|
||||
|
||||
// VS: Scrolling children has non-trivial semantics. If rect=NULL then
|
||||
// it is easy: we scroll all children. Otherwise it gets
|
||||
|
Reference in New Issue
Block a user