diff --git a/include/wx/htmllbox.h b/include/wx/htmllbox.h
index 5098935c17..49405b94b9 100644
--- a/include/wx/htmllbox.h
+++ b/include/wx/htmllbox.h
@@ -120,6 +120,7 @@ private:
DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxHtmlListBox)
};
#endif // _WX_HTMLLBOX_H_
diff --git a/include/wx/vlbox.h b/include/wx/vlbox.h
index 276076ece7..6b30ac122e 100644
--- a/include/wx/vlbox.h
+++ b/include/wx/vlbox.h
@@ -202,6 +202,14 @@ protected:
// the base class version doesn't do anything
virtual void OnDrawSeparator(wxDC& dc, wxRect& rect, size_t n) const;
+ // this method is used to draw the items background and, maybe, a border
+ // around it
+ //
+ // the base class version implements a reasonable default behaviour which
+ // consists in drawing the selected item with the standard background
+ // colour and drawing a border around the item if it is either selected or
+ // current
+ virtual void OnDrawBackground(wxDC& dc, const wxRect& rect, size_t n) const;
// we implement OnGetLineHeight() in terms of OnMeasureItem() because this
// allows us to add borders to the items easily
@@ -269,6 +277,7 @@ private:
DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxVListBox)
};
#endif // _WX_VLBOX_H_
diff --git a/include/wx/vscroll.h b/include/wx/vscroll.h
index 1cdc9d1e48..eb2185bb1c 100644
--- a/include/wx/vscroll.h
+++ b/include/wx/vscroll.h
@@ -146,7 +146,8 @@ protected:
//
// finally note that lineMin is inclusive, while lineMax is exclusive, as
// usual
- virtual void OnGetLinesHint(size_t lineMin, size_t lineMax) const { }
+ virtual void OnGetLinesHint(size_t WXUNUSED(lineMin),
+ size_t WXUNUSED(lineMax)) const { }
// when the number of lines changes, we try to estimate the total height
// of all lines which is a rather expensive operation in terms of lines
@@ -194,6 +195,7 @@ private:
DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxVScrolledWindow)
};
#endif // _WX_VSCROLL_H_
diff --git a/samples/htlbox/htlbox.cpp b/samples/htlbox/htlbox.cpp
index 1a87b03df6..dfb89455fb 100644
--- a/samples/htlbox/htlbox.cpp
+++ b/samples/htlbox/htlbox.cpp
@@ -45,7 +45,7 @@
// you can also have a file containing HTML strings for testing, enable this if
// you want to use it
-//#define USE_HTML_FILE
+#define USE_HTML_FILE
#ifdef USE_HTML_FILE
#include "wx/textfile.h"
#endif
@@ -84,6 +84,8 @@ protected:
#ifdef USE_HTML_FILE
wxTextFile m_file;
#endif
+
+ DECLARE_NO_COPY_CLASS(MyHtmlListBox)
};
class MyFrame : public wxFrame
diff --git a/src/generic/htmllbox.cpp b/src/generic/htmllbox.cpp
index dff147a45c..0c5578c11a 100644
--- a/src/generic/htmllbox.cpp
+++ b/src/generic/htmllbox.cpp
@@ -144,6 +144,8 @@ public:
private:
const wxHtmlListBox& m_hlbox;
+
+ DECLARE_NO_COPY_CLASS(wxHtmlListBoxStyle)
};
diff --git a/src/generic/vlbox.cpp b/src/generic/vlbox.cpp
index 938b9d331c..fedb4496a4 100644
--- a/src/generic/vlbox.cpp
+++ b/src/generic/vlbox.cpp
@@ -319,7 +319,30 @@ void wxVListBox::OnDrawSeparator(wxDC& WXUNUSED(dc),
{
}
-void wxVListBox::OnPaint(wxPaintEvent& event)
+void wxVListBox::OnDrawBackground(wxDC& dc, const wxRect& rect, size_t n) const
+{
+ // we need to render selected and current items differently
+ const bool isSelected = IsSelected(n),
+ isCurrent = IsCurrent(n);
+ if ( isSelected || isCurrent )
+ {
+ if ( isSelected )
+ {
+ dc.SetBrush(wxBrush(m_colBgSel, wxSOLID));
+ }
+ else // !selected
+ {
+ dc.SetBrush(*wxTRANSPARENT_BRUSH);
+ }
+
+ dc.SetPen(*(isCurrent ? wxBLACK_PEN : wxTRANSPARENT_PEN));
+
+ dc.DrawRectangle(rect);
+ }
+ //else: do nothing for the normal items
+}
+
+void wxVListBox::OnPaint(wxPaintEvent& WXUNUSED(event))
{
wxPaintDC dc(this);
@@ -344,25 +367,9 @@ void wxVListBox::OnPaint(wxPaintEvent& event)
// don't allow drawing outside of the lines rectangle
wxDCClipper clip(dc, rectLine);
- // we need to render selected and current items differently
- const bool isSelected = IsSelected(line);
- if ( isSelected || IsCurrent(line) )
- {
- if ( isSelected )
- {
- dc.SetBrush(wxBrush(m_colBgSel, wxSOLID));
- }
- else // !selected
- {
- dc.SetBrush(*wxTRANSPARENT_BRUSH);
- }
-
- dc.SetPen(*(IsCurrent(line) ? wxBLACK_PEN : wxTRANSPARENT_PEN));
-
- dc.DrawRectangle(rectLine);
- }
-
wxRect rect = rectLine;
+ OnDrawBackground(dc, rect, line);
+
OnDrawSeparator(dc, rect, line);
rect.Deflate(m_ptMargins.x, m_ptMargins.y);