//============================================================================================= //----------------------------------------------+++--> 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); }
//================================================================================================ //-------------------------//-----------------------------+++--> Save Current Settings to Registry: void OnApply(HWND hDlg) //----------------------------------------------------------------+++--> { wchar_t str[2]; char bRefresh = ((unsigned)api.GetInt(L"Desktop",L"Multimon",1) != IsDlgButtonChecked(hDlg,IDCB_MULTIMON)); api.SetInt(L"Calendar", L"bCustom", IsDlgButtonChecked(hDlg,IDCB_USECALENDAR)); api.SetInt(L"Calendar", L"CloseCalendar", IsDlgButtonChecked(hDlg,IDCB_CLOSECAL)); api.SetInt(L"Calendar", L"ShowWeekNums", IsDlgButtonChecked(hDlg,IDCB_SHOWWEEKNUMS)); api.SetInt(L"Calendar", L"ShowDayOfYear", IsDlgButtonChecked(hDlg,IDCB_SHOW_DOY)); api.SetInt(L"Calendar", L"CalendarTopMost", IsDlgButtonChecked(hDlg,IDCB_CALTOPMOST)); api.SetInt(L"Calendar", L"ViewMonths", (int)SendDlgItemMessage(hDlg,IDC_CALMONTHSPIN,UDM_GETPOS32,0,0)); api.SetInt(L"Calendar", L"ViewMonthsPast", (int)SendDlgItemMessage(hDlg,IDC_CALMONTHPASTSPIN,UDM_GETPOS32,0,0)); # ifdef WIN2K_COMPAT if(api.OS == TOS_2000) { int value = IsDlgButtonChecked(hDlg,IDCB_TRANS2KICONS); SetDesktopIconTextBk(value); api.SetInt(L"Desktop", L"Transparent2kIconText", value); if(value) TimetableAdd(SCHEDID_WIN2K, 30, 30); else TimetableRemove(SCHEDID_WIN2K); } # endif // WIN2K_COMPAT api.SetInt(L"Desktop", L"MonOffOnLock", IsDlgButtonChecked(hDlg, IDCB_MONOFF_ONLOCK)); api.SetInt(L"Desktop", L"Multimon", IsDlgButtonChecked(hDlg,IDCB_MULTIMON)); str[1] = '\0'; str[0] = '0' + (char)ComboBox_GetCurSel(GetDlgItem(hDlg,IDC_FIRSTWEEK)); SetInternational(L"iFirstWeekOfYear", str); str[0] = '0' + (char)ComboBox_GetCurSel(GetDlgItem(hDlg,IDC_FIRSTDAY)); SetInternational(L"iFirstDayOfWeek", str); if(api.OS >= TOS_XP) { // This feature requires XP+ BOOL enabled=IsDlgButtonChecked(hDlg, IDCB_MONOFF_ONLOCK); if(enabled){ RegisterSession(g_hwndTClockMain); } else { UnregisterSession(g_hwndTClockMain); } } if(api.OS >= TOS_WIN10){ int old_calendar = api.GetSystemInt(HKEY_LOCAL_MACHINE, kSectionImmersiveShell, kKeyWin32Tray, 0); if((int)IsDlgButtonChecked(hDlg, IDC_OLDCALENDAR) != old_calendar){ wchar_t param[5] = L"/Wc0"; wchar_t exe[MAX_PATH]; if(!old_calendar) param[3] = '1'; if(api.ExecElevated(GetClockExe(exe), param, NULL) == 1) CheckDlgButton(hDlg, IDC_OLDCALENDAR, old_calendar); } } if(bRefresh){ SendMessage(g_hwndClock,CLOCKM_REFRESHCLOCK,0,0); } }
void AlarmChimeEnable(int enable) { if(enable < 0) { int status = api.GetInt("", "Jihou", 0); if(enable == -1) { enable = !status; goto update_and_continue; } enable = status; } else { update_and_continue: api.SetInt("", "Jihou", enable); } if(enable) { unsigned data = 0; time_t ts = time(NULL) - 1; ts += 3600 - (ts % 3600); if(api.GetInt("", "JihouRepeat", 0)) data |= ALRM_CHIMEHR; if(api.GetInt("", "JihouBlink", 0)) data |= ALRM_BLINK; TimetableAdd(SCHEDID_CHIME, ts, data); } else TimetableRemove(SCHEDID_CHIME); }