コード例 #1
0
void CXTPCalendarViewDay::OnPrePopulateDay()
{
	WPARAM wParam = (WPARAM)(CXTPCalendarViewDay*)this;

	XTP_SAFE_CALL2(GetView_(), GetCalendarControl(), SendNotification(
		XTP_NC_CALENDAR_PREPOPULATE_DAY, wParam, 0));
}
コード例 #2
0
void CXTPCalendarWeekView::Draw(CDC* pDC)
{
	XTP_SAFE_CALL2(GetPaintManager(), GetWeekViewPart(), OnDraw(pDC, this));

	// Draw events

	int nDays = m_arDays.GetCount();
	for (int nDay = 0; nDay < nDays; nDay++)
	{
		XTP_SAFE_CALL1(m_arDays.GetAt(nDay), Draw(pDC));
	}
}
コード例 #3
0
void CXTPCalendarWeekView::AdjustLayout2(CDC* pDC, const CRect& rcView, BOOL bCallPostAdjustLayout)
{
	if (!GetTheme())
	{
		ASSERT(FALSE);
		return;
	}
	TBase::AdjustLayout(pDC, rcView, FALSE);
	AdjustFirstDayOfWeek();

	XTP_SAFE_CALL2(GetTheme(), GetWeekViewPart(), AdjustLayout(pDC, rcView, bCallPostAdjustLayout));
}
コード例 #4
0
void CXTPCalendarWeekViewDay::Draw(CDC* pDC)
{
	//-- Draw Events (Group) -----------------
	int nGroups = GetViewGroupsCount();
	ASSERT(nGroups == 1);

	CXTPCalendarViewGroup* pViewGroup = nGroups ? GetViewGroup_(0) : NULL;
	ASSERT(pViewGroup);

	if (pViewGroup)
	{
		pViewGroup->Draw(pDC);
	}

	if (NoAllEventsAreVisible())
	{
		XTP_SAFE_CALL2(GetView(), GetPaintManager(),
			DrawBitmap(XTP_IDB_CALENDAR_EXPANDSIGNDOWN, pDC, GetExpandSignRect()) );
	}
}
コード例 #5
0
void CXTPCalendarController::CXTPDayInfoCache::OnRefreshDays(int nDaysCountToRefresh)
{
    ASSERT(m_pOwner);

    if (!XTP_SAFE_GET1(m_pOwner, m_pResourcesNf, NULL))
    {
        if (!m_dwWaitingDataTime)
        {
            m_dwWaitingDataTime = GetTickCount();
            DBG_TRACE_DP_TIMER(_T("XTPCalendarController::DayInfoCache - OnRefreshDays, Start Wait for data\n"));
        }

        if (abs((long)(GetTickCount() - m_dwWaitingDataTime)) >= 5000)
        {
            m_dwWaitingDataTime = 0;

            if (m_uTimerID)
            {
                DBG_TRACE_DP_TIMER(_T("XTPCalendarController::DayInfoCache - OnRefreshDays, KillTimer (ID = %d) \n"), m_uTimerID);
                DBG_TRACE_DP_TIMER(_T("XTPCalendarController::DayInfoCache - OnRefreshDays, end Wait for data\n"));

                KillTimer();

                OnSelfClearOld();
            }
        }
        return;
    }
    else
    {
        if (m_dwWaitingDataTime)
        {
            DBG_TRACE_DP_TIMER(_T("XTPCalendarController::DayInfoCache - OnRefreshDays, end Wait for data\n"));
        }
        m_dwWaitingDataTime = 0;
    }

    //***************************************************
    for (int i = 0; i < nDaysCountToRefresh; i++)
    {
        long nDay_min = LONG_MAX;
        UINT uPriority_max = 0;

        POSITION pos = m_mapDaysToRefresh.GetStartPosition();
        while (pos)
        {
            long nDay = 0;
            UINT uPriority = 0;
            m_mapDaysToRefresh.GetNextAssoc(pos, nDay, uPriority);

            if (uPriority == uPriority_max && nDay < nDay_min ||
                    uPriority > uPriority_max)
            {
                uPriority_max = uPriority;
                nDay_min = nDay;
            }
        }

        if (nDay_min < LONG_MAX)
        {
            m_mapDaysToRefresh.RemoveKey(nDay_min);

            COleDateTime dtDay((DATE)nDay_min);
            BOOL bHasEvents = XTP_SAFE_GET1(m_pOwner, _HasEvents(dtDay), FALSE);

            UpdateDayInfo(dtDay, bHasEvents);
        }
    }
    //***************************************************

    if (m_mapDaysToRefresh.GetCount() == 0 && m_uTimerID)
    {
        DBG_TRACE_DP_TIMER(_T("XTPCalendarController::DayInfoCache - OnRefreshDays, KillTimer (ID = %d) \n"), m_uTimerID);
        DBG_TRACE_DP_TIMER(_T("XTPCalendarController::DayInfoCache - Days In Cache %d \n"), m_mapDaysInfo.GetCount());

        KillTimer();

        OnSelfClearOld();
    }

    if (abs((long)(GetTickCount() - m_dwLastRedrawTime)) >= 500 || m_uTimerID == 0)
    {
        XTP_SAFE_CALL2(m_pOwner, m_pDatePickerCtrl, RedrawControl());
        m_dwLastRedrawTime = GetTickCount();
    }
}