Example #1
0
//=============================================================================================
//----------------------------------------------+++--> 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);
}
Example #2
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);
	}
}
Example #3
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);
}