int32_t FWL_StopTimer(FWL_HTIMER hTimer) { IFWL_AdapterNative* pAdapterNative = FWL_GetAdapterNative(); if (!pAdapterNative) return FWL_ERR_Indefinite; IFWL_AdapterTimerMgr* pAdapterTimerMgr = pAdapterNative->GetTimerMgr(); if (!pAdapterTimerMgr) return FWL_ERR_Indefinite; return pAdapterTimerMgr->Stop(hTimer); }
FWL_HTIMER FWL_StartTimer(IFWL_Timer* pTimer, FX_DWORD dwElapse, FX_BOOL bImmediately) { IFWL_AdapterNative* pAdapterNative = FWL_GetAdapterNative(); if (!pAdapterNative) return NULL; IFWL_AdapterTimerMgr* pAdapterTimerMgr = pAdapterNative->GetTimerMgr(); if (!pAdapterTimerMgr) return NULL; FWL_HTIMER hTimer = NULL; pAdapterTimerMgr->Start(pTimer, dwElapse, hTimer, bImmediately); return hTimer; }
CFWL_TimerInfo* CFWL_Timer::StartTimer(uint32_t dwElapse, bool bImmediately) { const CFWL_App* pApp = m_pWidget->GetOwnerApp(); if (!pApp) return nullptr; CXFA_FFApp* pAdapterNative = pApp->GetAdapterNative(); if (!pAdapterNative) return nullptr; IFWL_AdapterTimerMgr* pAdapterTimerMgr = pAdapterNative->GetTimerMgr(); if (!pAdapterTimerMgr) return nullptr; CFWL_TimerInfo* pTimerInfo = nullptr; pAdapterTimerMgr->Start(this, dwElapse, bImmediately, &pTimerInfo); return pTimerInfo; }