added wxVListBox::OnDrawBackground(); fixed warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -120,6 +120,7 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
|
DECLARE_NO_COPY_CLASS(wxHtmlListBox)
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _WX_HTMLLBOX_H_
|
#endif // _WX_HTMLLBOX_H_
|
||||||
|
@@ -202,6 +202,14 @@ protected:
|
|||||||
// the base class version doesn't do anything
|
// the base class version doesn't do anything
|
||||||
virtual void OnDrawSeparator(wxDC& dc, wxRect& rect, size_t n) const;
|
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
|
// we implement OnGetLineHeight() in terms of OnMeasureItem() because this
|
||||||
// allows us to add borders to the items easily
|
// allows us to add borders to the items easily
|
||||||
@@ -269,6 +277,7 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
|
DECLARE_NO_COPY_CLASS(wxVListBox)
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _WX_VLBOX_H_
|
#endif // _WX_VLBOX_H_
|
||||||
|
@@ -146,7 +146,8 @@ protected:
|
|||||||
//
|
//
|
||||||
// finally note that lineMin is inclusive, while lineMax is exclusive, as
|
// finally note that lineMin is inclusive, while lineMax is exclusive, as
|
||||||
// usual
|
// 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
|
// 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
|
// of all lines which is a rather expensive operation in terms of lines
|
||||||
@@ -194,6 +195,7 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
|
DECLARE_NO_COPY_CLASS(wxVScrolledWindow)
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _WX_VSCROLL_H_
|
#endif // _WX_VSCROLL_H_
|
||||||
|
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
// you can also have a file containing HTML strings for testing, enable this if
|
// you can also have a file containing HTML strings for testing, enable this if
|
||||||
// you want to use it
|
// you want to use it
|
||||||
//#define USE_HTML_FILE
|
#define USE_HTML_FILE
|
||||||
#ifdef USE_HTML_FILE
|
#ifdef USE_HTML_FILE
|
||||||
#include "wx/textfile.h"
|
#include "wx/textfile.h"
|
||||||
#endif
|
#endif
|
||||||
@@ -84,6 +84,8 @@ protected:
|
|||||||
#ifdef USE_HTML_FILE
|
#ifdef USE_HTML_FILE
|
||||||
wxTextFile m_file;
|
wxTextFile m_file;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
DECLARE_NO_COPY_CLASS(MyHtmlListBox)
|
||||||
};
|
};
|
||||||
|
|
||||||
class MyFrame : public wxFrame
|
class MyFrame : public wxFrame
|
||||||
|
@@ -144,6 +144,8 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
const wxHtmlListBox& m_hlbox;
|
const wxHtmlListBox& m_hlbox;
|
||||||
|
|
||||||
|
DECLARE_NO_COPY_CLASS(wxHtmlListBoxStyle)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@@ -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);
|
wxPaintDC dc(this);
|
||||||
|
|
||||||
@@ -344,25 +367,9 @@ void wxVListBox::OnPaint(wxPaintEvent& event)
|
|||||||
// don't allow drawing outside of the lines rectangle
|
// don't allow drawing outside of the lines rectangle
|
||||||
wxDCClipper clip(dc, rectLine);
|
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;
|
wxRect rect = rectLine;
|
||||||
|
OnDrawBackground(dc, rect, line);
|
||||||
|
|
||||||
OnDrawSeparator(dc, rect, line);
|
OnDrawSeparator(dc, rect, line);
|
||||||
|
|
||||||
rect.Deflate(m_ptMargins.x, m_ptMargins.y);
|
rect.Deflate(m_ptMargins.x, m_ptMargins.y);
|
||||||
|
Reference in New Issue
Block a user