// timers.h - Timers subroutines header. // // (c) 2012-2015 Xestia Software Development. // // This file is part of Xestia Address Book. // // Xestia Address Book is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by the // Free Software Foundation, version 3 of the license. // // Xestia Address Book is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License along // with Xestia Address Book. If not, see #include #include #include #include #include #include #include #include #include #include #include "../actmgr/frmActivityMgr.h" #include "../contacteditor/frmContactEditor.h" #include "../connobject/ConnectionObject.h" #include "../frmContact.h" #include "../frmMain.h" #include "../bitmaps.h" #include "../enums.h" #include "../common/preferences.h" #include "../common/etag.h" #include "../common/dirs.h" #include "etag.h" #ifndef TIMERS_H #define TIMERS_H struct ETagDB; struct frmContactEditor; class wxActTimer : public wxTimer { private: int intActivityProgress = 0; wxStaticBitmap *bmpActivity; wxBitmap *SleepBitmapPtr; void *frmMainPtr; public: wxActTimer():wxTimer() { } void Notify(); void SetBitmap(wxStaticBitmap *ActMgr); void ResetBitmap(); void StartAnimation(); void StopAnimation(); void SetSleepBitmap(wxBitmap *SleepBitmap); void SetupPointer(void *frmMainPtrIn); }; class wxActProcessTimer : public wxTimer { private: int intActivityProgress = 0; wxStaticBitmap *bmpActivity; void *ActMgrPtr; public: wxActProcessTimer():wxTimer() { } void Notify(); void SetupPointers(void *ActMgr); }; class wxActListProcTimer : public wxTimer { private: std::map *ActListPtr = nullptr; std::map *ActListUIPtr = nullptr; std::map *ActListDetailPtr = nullptr; wxListCtrl *lstActivityPtr = nullptr; wxStaticText *lblDetailsPtr = nullptr; bool *TasksActivePtr = nullptr; wxGauge *GauProgressPtr = nullptr; void *ActMgrPtr = nullptr; int intActivityTotal = 0; int intActivityCompleted = 0; wxActTimer *ActTimerPtr = nullptr; wxActProcessTimer *ActProcessTimerPtr = nullptr; std::map *ActListFinDTPtr = nullptr; std::map *ActListConnObjectsPtr = nullptr; bool ClearupProcessed = FALSE; public: wxActListProcTimer():wxTimer() { } void Notify(); void SetupPointers(std::map *ActList, std::map *ActListUI, std::map *ActListDetail, bool *TasksActive, wxListCtrl *lstActivity, wxStaticText *lblDetails, wxGauge *GauProgress, void *ActMgr, wxActTimer *ActTimer, wxActProcessTimer *ActProcessTimer, std::map *ActListFinDT, std::map *ActListConnObjects); void EnableClearup(); }; class wxETagProcessTimer : public wxTimer { private: int intActivityProgress = 0; std::map ETagDBList; std::mutex ReloadLock; public: wxETagProcessTimer():wxTimer() { ReloadAccounts(); } void Notify(); ETagDB* GetPointer(wxString Filename); void ReloadAccounts(); }; class wxContactFileMonitorTimer : public wxTimer { private: bool FileStatus = FALSE; wxString Filename; frmContactEditor *frmCEPtr; wxDateTime FileDateTime; public: wxContactFileMonitorTimer():wxTimer() { } void Notify(); void SetFilename(wxString FilenameInc); void SetupPointers(frmContactEditor *frmCEPtrInc); void UpdateTimestamp(); }; class wxContactWindowMonitor : public wxTimer { private: std::map *ContactWindowListPtr; public: wxContactWindowMonitor():wxTimer() { } void Notify(); void SetupPointers(std::map *ContactWindowListPtrInc); }; class wxAccountSyncTimer : public wxTimer { private: wxString AccName; wxString AccNameFull; void *frmMainPtr; void *frmActMgrPtr; ETagDB *ETagDBPtr; int intTaskID; public: wxAccountSyncTimer():wxTimer() { } void Notify(); void SetupData(wxString AccNameInc, wxString AccNameFull); void SetupPointers(void *frmMainPtrInc, void *frmACtMgrPtr, ETagDB *ETagDBPtrInc); }; void SleepFor(unsigned long longSleepNanoSecs); #endif