added missing wxListItem copy ctor to wxMSW, moved wxListItem to the header

to avoid duplicating it in wxMSW and the generic versions


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15446 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2002-05-08 22:29:57 +00:00
parent 51fdd3daec
commit 050e7ed73b
3 changed files with 38 additions and 101 deletions

View File

@ -187,16 +187,30 @@ private:
class WXDLLEXPORT wxListItem : public wxObject
{
wxListItem& operator=(const wxListItem& item);
public:
wxListItem();
wxListItem(const wxListItem& item);
~wxListItem() { delete m_attr; }
wxListItem() { Init(); m_attr = NULL; }
wxListItem(const wxListItem& item)
: wxObject(),
m_mask(item.m_mask),
m_itemId(item.m_itemId),
m_col(item.m_col),
m_state(item.m_state),
m_stateMask(item.m_stateMask),
m_text(item.m_text),
m_image(item.m_image),
m_data(item.m_data),
m_format(item.m_format),
m_width(item.m_width),
m_attr(NULL)
{
// copy list item attributes
m_attr = new wxListItemAttr(*item.GetAttributes());
}
virtual ~wxListItem() { delete m_attr; }
// resetting
void Clear();
void ClearAttributes();
void Clear() { Init(); m_text.clear(); ClearAttributes(); }
void ClearAttributes() { if ( m_attr ) { delete m_attr; m_attr = NULL; } }
// setters
void SetMask(long mask) { m_mask = mask; }
@ -271,9 +285,26 @@ protected:
return *m_attr;
}
void Init()
{
m_mask = 0;
m_itemId = 0;
m_col = 0;
m_state = 0;
m_stateMask = 0;
m_image = 0;
m_data = 0;
m_format = wxLIST_FORMAT_CENTRE;
m_width = 0;
}
wxListItemAttr *m_attr; // optional pointer to the items style
private:
// VZ: this is strange, we have a copy ctor but not operator=(), why?
wxListItem& operator=(const wxListItem& item);
DECLARE_DYNAMIC_CLASS(wxListItem)
};

View File

@ -4492,56 +4492,6 @@ void wxListMainWindow::GetVisibleLinesRange(size_t *from, size_t *to)
IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject)
wxListItem::wxListItem()
{
m_attr = NULL;
Clear();
}
wxListItem::wxListItem(const wxListItem& item)
: wxObject()
, m_mask(item.m_mask)
, m_itemId(item.m_itemId)
, m_col(item.m_col)
, m_state(item.m_state)
, m_stateMask(item.m_stateMask)
, m_text(item.m_text)
, m_image(item.m_image)
, m_data(item.m_data)
, m_format(item.m_format)
, m_width(item.m_width)
, m_attr(NULL)
{
// copy list item attributes
m_attr = new wxListItemAttr(*item.GetAttributes());
}
void wxListItem::Clear()
{
m_mask = 0;
m_itemId = 0;
m_col = 0;
m_state = 0;
m_stateMask = 0;
m_image = -1;
m_data = 0;
m_format = wxLIST_FORMAT_CENTRE;
m_width = 0;
m_text.clear();
ClearAttributes();
}
void wxListItem::ClearAttributes()
{
if (m_attr)
{
delete m_attr;
m_attr = NULL;
}
}
// -------------------------------------------------------------------------------------
// wxListCtrl
// -------------------------------------------------------------------------------------

View File

@ -2192,50 +2192,6 @@ void wxListCtrl::RefreshItems(long itemFrom, long itemTo)
RefreshRect(rect);
}
// ----------------------------------------------------------------------------
// wxListItem
// ----------------------------------------------------------------------------
// List item structure
wxListItem::wxListItem()
{
m_mask = 0;
m_itemId = 0;
m_col = 0;
m_state = 0;
m_stateMask = 0;
m_image = 0;
m_data = 0;
m_format = wxLIST_FORMAT_CENTRE;
m_width = 0;
m_attr = NULL;
}
void wxListItem::Clear()
{
m_mask = 0;
m_itemId = 0;
m_col = 0;
m_state = 0;
m_stateMask = 0;
m_image = 0;
m_data = 0;
m_format = wxLIST_FORMAT_CENTRE;
m_width = 0;
m_text = wxEmptyString;
if (m_attr) delete m_attr;
m_attr = NULL;
}
void wxListItem::ClearAttributes()
{
if (m_attr) delete m_attr;
m_attr = NULL;
}
static void wxConvertFromMSWListItem(HWND hwndListCtrl,
wxListItem& info,
LV_ITEM& lvItem)