//==================================================================== //----------+++--> Enumerate & display setup alarms incl. hourly chime: void UpdateAlarmMenu(HMENU hMenu) //--------------------------+++--> { wchar_t buf[MAX_PATH]; alarm_t pAS; int count; api.GetStr(L"", L"JihouFile", buf, _countof(buf), L""); if(buf[0]) EnableMenuItem(hMenu,IDM_CHIME,MF_BYCOMMAND|MF_ENABLED); if(TimetableSearchID(SCHEDID_CHIME)) { CheckMenuItem(hMenu,IDM_CHIME,MF_BYCOMMAND|MF_CHECKED); } count = GetAlarmNum(); if(count){ int idx; InsertMenu(hMenu,IDM_PROP_ALARM,MF_BYCOMMAND|MF_SEPARATOR,0,NULL); for(idx=0; idx<count; ++idx) { ReadAlarmFromReg(&pAS,idx); wsprintf(buf, FMT(" %s (%i"), pAS.dlgmsg.name,idx+1); InsertMenu(hMenu, IDM_PROP_ALARM, MF_BYCOMMAND|MF_STRING, IDM_I_ALARM+idx, buf); if(pAS.uFlags&ALRM_ENABLED) CheckMenuItem(hMenu,IDM_I_ALARM+idx,MF_BYCOMMAND|MF_CHECKED); } InsertMenu(hMenu,IDM_PROP_ALARM,MF_BYCOMMAND|MF_SEPARATOR,0,NULL); } }
//============================================================================================= //----------------------------------------------+++--> Load Configured Alarm Data From Registry: void InitAlarm() //--------------------------------------------------------------------+++--> { time_t ts; time_t next_update; TimetableClean(); m_maxAlarm = GetAlarmNum(); if(m_maxAlarm > 0) { int i; for(i=0; i<m_maxAlarm; ++i) { AlarmEnable(i, -2); } } AlarmChimeEnable(-2); // this is for Windows 2000 only - EasterEgg function: # ifdef WIN2K_COMPAT if(api.OS == TOS_2000 && api.GetIntEx("Desktop","Transparent2kIconText",0)) { TimetableAdd(SCHEDID_WIN2K, 30, 30); } # endif // WIN2K_COMPAT // update check (always added, checks "enabled" on trigger) ts = time(NULL) + 300; next_update = api.GetInt64(NULL, UPDATE_TIMESTAMP, 0); if(!next_update) { next_update = time(NULL) + 86400; api.SetInt64(NULL, UPDATE_TIMESTAMP, next_update); } if(ts > next_update) TimetableAdd(SCHEDID_UPDATE, ts, (unsigned)(ts-next_update)); else TimetableAdd(SCHEDID_UPDATE, next_update, 0); }