// wxListCtrl
//-----------------------------------------------------------------------------
-class WXDLLIMPEXP_CORE wxGenericListCtrl: public wxControl,
+class WXDLLIMPEXP_CORE wxGenericListCtrl: public wxListCtrlBase,
public wxScrollHelper
{
public:
DECLARE_DYNAMIC_CLASS(wxListItem)
};
+// ----------------------------------------------------------------------------
+// wxListCtrlBase: the base class for the main control itself.
+// ----------------------------------------------------------------------------
+
+// Unlike other base classes, this class doesn't currently define the API of
+// the real control class but is just used for implementation convenience. We
+// should define the public class functions as pure virtual here in the future
+// however.
+class WXDLLIMPEXP_CORE wxListCtrlBase : public wxControl
+{
+public:
+ wxListCtrlBase() { }
+};
+
// ----------------------------------------------------------------------------
// wxListEvent - the event class for the wxListCtrl notifications
// ----------------------------------------------------------------------------
*/
-class WXDLLIMPEXP_CORE wxListCtrl: public wxControl
+class WXDLLIMPEXP_CORE wxListCtrl: public wxListCtrlBase
{
public:
/*
WX_DECLARE_EXPORTED_LIST(wxListItem, wxColumnList);
-class WXDLLIMPEXP_CORE wxListCtrl: public wxControl
+class WXDLLIMPEXP_CORE wxListCtrl: public wxListCtrlBase
{
DECLARE_DYNAMIC_CLASS(wxListCtrl)
public:
IMPLEMENT_DYNAMIC_CLASS(wxGenericListCtrl, wxControl)
-BEGIN_EVENT_TABLE(wxGenericListCtrl,wxControl)
+BEGIN_EVENT_TABLE(wxGenericListCtrl,wxListCtrlBase)
EVT_SIZE(wxGenericListCtrl::OnSize)
EVT_SCROLLWIN(wxGenericListCtrl::OnScroll)
END_EVENT_TABLE()
wxASSERT_MSG( (style & wxLC_MASK_TYPE),
wxT("wxListCtrl style should have exactly one mode bit set") );
- if ( !wxControl::Create( parent, id, pos, size, style|wxVSCROLL|wxHSCROLL, validator, name ) )
+ if ( !wxListCtrlBase::Create( parent, id, pos, size,
+ style | wxVSCROLL | wxHSCROLL,
+ validator, name ) )
return false;
#ifdef __WXGTK__
WXWPARAM wParam,
WXLPARAM lParam)
{
- WXLRESULT rc = wxControl::MSWWindowProc(nMsg, wParam, lParam);
+ WXLRESULT rc = wxListCtrlBase::MSWWindowProc(nMsg, wParam, lParam);
// we need to process arrows ourselves for scrolling
if ( nMsg == WM_GETDLGCODE )
if ( m_mainWin )
m_mainWin->DoClientToScreen(x, y);
else
- wxControl::DoClientToScreen(x, y);
+ wxListCtrlBase::DoClientToScreen(x, y);
}
void wxGenericListCtrl::DoScreenToClient( int *x, int *y ) const
if ( m_mainWin )
m_mainWin->DoScreenToClient(x, y);
else
- wxControl::DoScreenToClient(x, y);
+ wxListCtrlBase::DoScreenToClient(x, y);
}
void wxGenericListCtrl::SetFocus()
wxDECLARE_NO_COPY_CLASS(wxMSWListItemData);
};
-BEGIN_EVENT_TABLE(wxListCtrl, wxControl)
+BEGIN_EVENT_TABLE(wxListCtrl, wxListCtrlBase)
EVT_PAINT(wxListCtrl::OnPaint)
EVT_CHAR_HOOK(wxListCtrl::OnCharHook)
END_EVENT_TABLE()
WXDWORD wxListCtrl::MSWGetStyle(long style, WXDWORD *exstyle) const
{
- WXDWORD wstyle = wxControl::MSWGetStyle(style, exstyle);
+ WXDWORD wstyle = wxListCtrlBase::MSWGetStyle(style, exstyle);
wstyle |= LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS;
{
if ( flag != m_windowStyle )
{
- wxControl::SetWindowStyleFlag(flag);
+ wxListCtrlBase::SetWindowStyleFlag(flag);
UpdateStyle();
return false;
}
}
- return wxControl::MSWShouldPreProcessMessage(msg);
+ return wxListCtrlBase::MSWShouldPreProcessMessage(msg);
}
bool wxListCtrl::MSWCommand(WXUINT cmd, WXWORD id_)
}
if ( ignore )
- return wxControl::MSWOnNotify(idCtrl, lParam, result);
+ return wxListCtrlBase::MSWOnNotify(idCtrl, lParam, result);
}
else
#endif // defined(HDN_BEGINTRACKA)
case NM_DBLCLK:
// if the user processes it in wxEVT_COMMAND_LEFT_CLICK(), don't do
// anything else
- if ( wxControl::MSWOnNotify(idCtrl, lParam, result) )
+ if ( wxListCtrlBase::MSWOnNotify(idCtrl, lParam, result) )
{
return true;
}
case NM_RCLICK:
// if the user processes it in wxEVT_COMMAND_RIGHT_CLICK(),
// don't do anything else
- if ( wxControl::MSWOnNotify(idCtrl, lParam, result) )
+ if ( wxListCtrlBase::MSWOnNotify(idCtrl, lParam, result) )
{
return true;
}
}
if ( !processed )
- return wxControl::MSWOnNotify(idCtrl, lParam, result);
+ return wxListCtrlBase::MSWOnNotify(idCtrl, lParam, result);
}
else
{
wxPaintDC dc(this);
- wxControl::OnPaint(event);
+ wxListCtrlBase::OnPaint(event);
// Reset the device origin since it may have been set
dc.SetDeviceOrigin(0, 0);
//else: break
}
- return wxControl::MSWWindowProc(nMsg, wParam, lParam);
+ return wxListCtrlBase::MSWWindowProc(nMsg, wParam, lParam);
}
// ----------------------------------------------------------------------------
void wxListCtrl::DoSetSize( int x, int y, int width, int height, int sizeFlags )
{
- wxControl::DoSetSize(x, y, width, height, sizeFlags);
+ wxListCtrlBase::DoSetSize(x, y, width, height, sizeFlags);
if (m_genericImpl)
m_genericImpl->SetSize(0, 0, width, height, sizeFlags);
bool wxListCtrl::SetFont(const wxFont& font)
{
bool rv = true;
- rv = wxControl::SetFont(font);
+ rv = wxListCtrlBase::SetFont(font);
if (m_genericImpl)
rv = m_genericImpl->SetFont(font);
return rv;
{
if (m_genericImpl)
m_genericImpl->Freeze();
- wxControl::Freeze();
+ wxListCtrlBase::Freeze();
}
void wxListCtrl::Thaw ()
{
if (m_genericImpl)
m_genericImpl->Thaw();
- wxControl::Thaw();
+ wxListCtrlBase::Thaw();
}
void wxListCtrl::Update ()
{
if (m_genericImpl)
m_genericImpl->Update();
- wxControl::Update();
+ wxListCtrlBase::Update();
}
// ----------------------------------------------------------------------------