//**************************************************************************************
void CBCGPToolbarComboBoxButton::CopyFrom (const CBCGPToolbarButton& s)
{
	CBCGPToolbarButton::CopyFrom (s);
	POSITION pos;

	m_lstItems.RemoveAll ();

	const CBCGPToolbarComboBoxButton& src = (const CBCGPToolbarComboBoxButton&) s;
	for (pos = src.m_lstItems.GetHeadPosition (); pos != NULL;)
	{
		m_lstItems.AddTail (src.m_lstItems.GetNext (pos));
	}

	ClearData ();

	m_lstItemData.RemoveAll ();
	for (pos = src.m_lstItemData.GetHeadPosition (); pos != NULL;)
	{
		m_lstItemData.AddTail (src.m_lstItemData.GetNext (pos));
	}

	DuplicateData ();
	ASSERT (m_lstItemData.GetCount () == m_lstItems.GetCount ());

	m_dwStyle = src.m_dwStyle;
	m_iWidth = src.m_iWidth;
	m_iSelIndex = src.m_iSelIndex;
	m_nDropDownHeight = src.m_nDropDownHeight;
	m_uiMenuResID = src.m_uiMenuResID;

	m_bIsRibbon = src.m_bIsRibbon;
	m_bIsRibbonFloaty = src.m_bIsRibbonFloaty;
	m_bIsCtrl = src.m_bIsCtrl;
}
//**************************************************************************************
void CBCGPToolbarDateTimeCtrl::CopyFrom (const CBCGPToolbarButton& s)
{
    CBCGPToolbarButton::CopyFrom (s);

    DuplicateData ();

    const CBCGPToolbarDateTimeCtrl& src = (const CBCGPToolbarDateTimeCtrl&) s;
    m_dwStyle = src.m_dwStyle;
    m_iWidth = src.m_iWidth;
}
//**************************************************************************************
void CBCGPToolbarDateTimeCtrl::Serialize (CArchive& ar)
{
    CBCGPToolbarButton::Serialize (ar);

    if (ar.IsLoading ())
    {
        ar >> m_iWidth;
        m_rect.right = m_rect.left + m_iWidth;
        ar >> m_dwStyle;
        ar >> m_dwTimeStatus;
        ar >> m_time;

        if (m_pWndDateTime)
            m_pWndDateTime->SetTime (m_dwTimeStatus == GDT_VALID? &m_time : NULL);

        DuplicateData ();
    }