예제 #1
0
/*------------------------------------------------
  delete an alarm
--------------------------------------------------*/
void OnDelAutoExec(HWND hDlg)
{
	PAUTOEXECSTRUCT pAS;

	if(curAutoExec < 0) return;

	pAS = (PAUTOEXECSTRUCT)CBGetItemData(hDlg, IDC_COMBOAUTOEXEC, curAutoExec);
	if(pAS)
	{
		PostMessage(hDlg, WM_NEXTDLGCTL, 1, FALSE);
		CBDeleteString(hDlg, IDC_COMBOAUTOEXEC, curAutoExec);
		free(pAS);
		if(curAutoExec > 0) curAutoExec--;
		CBSetCurSel(hDlg, IDC_COMBOAUTOEXEC, curAutoExec);
		pAS = (PAUTOEXECSTRUCT)CBGetItemData(hDlg, IDC_COMBOAUTOEXEC, curAutoExec);
		if(pAS) SetAutoExecToDlg(hDlg, pAS);
		else
		{
			AUTOEXECSTRUCT as;
			memset(&as, 0, sizeof(as));
			as.hour = 0xffffff;
			as.days = 0x7f;
			SetAutoExecToDlg(hDlg, &as);
			EnableDlgItem(hDlg, IDC_DELAUTOEXEC, FALSE);
			curAutoExec = -1;
		}
	}
}
예제 #2
0
/*------------------------------------------------
   apply - save settings
--------------------------------------------------*/
void OnApply(HWND hDlg)
{
	int i, count, n_autoexec;
	PAUTOEXECSTRUCT pAS;

	n_autoexec = 0;

	if(curAutoExec < 0)
	{
		char name[40];
		GetDlgItemText(hDlg, IDC_COMBOAUTOEXEC, name, 40);
		if(name[0] && IsDlgButtonChecked(hDlg, IDC_AUTOEXEC))
		{
			pAS = malloc(sizeof(AUTOEXECSTRUCT));
			if(pAS)
			{
				int index;
				GetAutoExecFromDlg(hDlg, pAS);
				index = CBAddString(hDlg, IDC_COMBOAUTOEXEC, (LPARAM)pAS->name);
				CBSetItemData(hDlg, IDC_COMBOAUTOEXEC, index, (LPARAM)pAS);
				curAutoExec = index;
				CBSetCurSel(hDlg, IDC_COMBOAUTOEXEC, index);
				EnableDlgItem(hDlg, IDC_DELAUTOEXEC, TRUE);
			}
		}
	}
	else
	{
		pAS = (PAUTOEXECSTRUCT)CBGetItemData(hDlg, IDC_COMBOAUTOEXEC, curAutoExec);
		if(pAS)
			GetAutoExecFromDlg(hDlg, pAS);
	}

	count = CBGetCount(hDlg, IDC_COMBOAUTOEXEC);
	for(i = 0; i < count; i++)
	{
		PAUTOEXECSTRUCT pAS;
		pAS = (PAUTOEXECSTRUCT)CBGetItemData(hDlg, IDC_COMBOAUTOEXEC, i);
		if(pAS)
		{
			SaveAutoExecToReg(pAS, n_autoexec);
			n_autoexec++;
		}
	}
	for(i = n_autoexec; ; i++)
	{
		char subkey[20];
		wsprintf(subkey, "AutoExec%d", i + 1);
		if(GetMyRegLong(subkey, "Hour", -1) >= 0)
			DelMyRegKey(subkey);
		else break;
	}

	SetMyRegLong("", "AutoExecNum", n_autoexec);

	InitAlarm(); // alarm.c
}
예제 #3
0
/*------------------------------------------------
  Apply
--------------------------------------------------*/
void OnApply(HWND hDlg)
{
	char s[80];
#if TC_ENABLE_CLOCKDECORATION
	int i;
#endif
	
	// settings of "background" and "text"
	
	if(!m_bChanged) return;
	m_bChanged = FALSE;
	
	SetMyRegLong(NULL, "UseBackColor",
		IsDlgButtonChecked(hDlg, IDC_CHKCOLOR));
	SetMyRegLong(NULL, "BackColor",
		CBGetItemData(hDlg, IDC_COLBACK, CBGetCurSel(hDlg, IDC_COLBACK)));
	
	SetMyRegLong(NULL, "UseBackColor2",
		IsDlgButtonChecked(hDlg, IDC_CHKCOLOR2));
	SetMyRegLong(NULL, "BackColor2",
		CBGetItemData(hDlg, IDC_COLBACK2, CBGetCurSel(hDlg, IDC_COLBACK2)));
	
	SetMyRegLong(NULL, "GradDir",
		IsDlgButtonChecked(hDlg, IDC_GRAD1) ? 0 : 1);
	
	SetMyRegLong(NULL, "FillTray",
		IsDlgButtonChecked(hDlg, IDC_FILLTRAY));
	
	SetMyRegLong(NULL, "ForeColor",
		CBGetItemData(hDlg, IDC_COLFORE, CBGetCurSel(hDlg, IDC_COLFORE)));
	
#if TC_ENABLE_CLOCKDECORATION
	// settings of decoration
	if(IsDlgButtonChecked(hDlg, IDC_DECOSHADOW)) i = 1;
	else if(IsDlgButtonChecked(hDlg, IDC_DECOBORDER)) i = 2;
	else i = 0;
	SetMyRegLong(NULL, "ClockDecoration", i);
	SetMyRegLong(NULL, "ShadowColor",
		CBGetItemData(hDlg, IDC_COLSHADOW, CBGetCurSel(hDlg, IDC_COLSHADOW)));
	SetMyRegLong(NULL, "ShadowRange",
		UpDown_GetPos(hDlg,IDC_SHADOWRANGESPIN));
#endif
	
	// settings of "font" and "font size"
	
	CBGetLBText(hDlg, IDC_FONT, CBGetCurSel(hDlg, IDC_FONT), s);
	SetMyRegStr(NULL, "Font", s);
	
	GetDlgItemText(hDlg, IDC_FONTSIZE, s, 10);
	if(s[0]) SetMyRegStr(NULL, "FontSize", s);
	else SetMyRegStr(NULL, "FontSize", "9");
	
	SetMyRegLong(NULL, "Bold", IsDlgButtonChecked(hDlg, IDC_BOLD));
	SetMyRegLong(NULL, "Italic", IsDlgButtonChecked(hDlg, IDC_ITALIC));
}
예제 #4
0
/*------------------------------------------------
   selected an alarm name by combobox
--------------------------------------------------*/
void OnChangeAutoExec(HWND hDlg)
{
	PAUTOEXECSTRUCT pAS;
	int index;

	index = CBGetCurSel(hDlg, IDC_COMBOAUTOEXEC);
	if(curAutoExec >= 0 && index == curAutoExec) return;

	if(curAutoExec < 0)
	{
		char name[40];
		GetDlgItemText(hDlg, IDC_COMBOAUTOEXEC, name, 40);
		if(name[0] && IsDlgButtonChecked(hDlg, IDC_AUTOEXEC))
		{
			pAS = malloc(sizeof(AUTOEXECSTRUCT));
			if(pAS)
			{
				int index;
				GetAutoExecFromDlg(hDlg, pAS);
				index = CBAddString(hDlg, IDC_COMBOAUTOEXEC, (LPARAM)pAS->name);
				CBSetItemData(hDlg, IDC_COMBOAUTOEXEC, index, (LPARAM)pAS);
				curAutoExec = index;
				//リスト項目の表示数を指定
				AdjustDlgConboBoxDropDown(hDlg, IDC_COMBOAUTOEXEC, 7);
			}
		}
	}
	else
	{
		pAS = (PAUTOEXECSTRUCT)CBGetItemData(hDlg, IDC_COMBOAUTOEXEC, curAutoExec);
		if(pAS) GetAutoExecFromDlg(hDlg, pAS);
	}

	pAS = (PAUTOEXECSTRUCT)CBGetItemData(hDlg, IDC_COMBOAUTOEXEC, index);
	if(pAS)
	{
		SetAutoExecToDlg(hDlg, pAS);
		EnableDlgItem(hDlg, IDC_DELAUTOEXEC, TRUE);
		curAutoExec = index;
	}
	else
	{
		AUTOEXECSTRUCT as;
		memset(&as, 0, sizeof(as));
		as.hour = 0xffffff;
		as.days = 0x7f;
		SetAutoExecToDlg(hDlg, &as);
		EnableDlgItem(hDlg, IDC_DELAUTOEXEC, FALSE);
		curAutoExec = -1;
	}
}
예제 #5
0
/*------------------------------------------------
  set MOUSESTRUCT data to dialog
--------------------------------------------------*/
void SetMouseCommandToDlg(HWND hDlg, PMOUSESTRUCT pitem)
{
	MOUSESTRUCT item;
	int i, count;
	
	m_prevcommand = -1;
	
	if(!pitem)
	{
		memset(&item, 0, sizeof(item));
		item.nClick = 1;
		pitem = &item;
	}
	
	CBSetCurSel(hDlg, IDC_MOUSEBUTTON, pitem->nButton);
	
	CheckRadioButton(hDlg, IDC_RADSINGLE, IDC_RADQUADRUPLE,
		IDC_RADSINGLE + pitem->nClick - 1);
	
	CheckDlgButton(hDlg, IDC_MOUSECTRL,  pitem->bCtrl);
	CheckDlgButton(hDlg, IDC_MOUSESHIFT, pitem->bShift);
	CheckDlgButton(hDlg, IDC_MOUSEALT,   pitem->bAlt);
	
	CBSetCurSel(hDlg, IDC_MOUSEFUNC, 0);
	count = CBGetCount(hDlg, IDC_MOUSEFUNC);
	for(i = 0; i < count; i++)
	{
		if(CBGetItemData(hDlg, IDC_MOUSEFUNC, i) == pitem->nCommand)
		{
			CBSetCurSel(hDlg, IDC_MOUSEFUNC, i);
			m_prevcommand = pitem->nCommand;
			break;
		}
	}
	if(i == count && pitem->nCommand > 100)
	{
		wsprintf(pitem->option, "%d", pitem->nCommand);
		pitem->nCommand = IDC_COMMAND;
		for(i = 0; i < count; i++)
		{
			if(CBGetItemData(hDlg, IDC_MOUSEFUNC, i) == IDC_COMMAND)
			{
				CBSetCurSel(hDlg, IDC_MOUSEFUNC, i);
				m_prevcommand = IDC_COMMAND;
				break;
			}
		}
	}
	
	SetDlgItemText(hDlg, IDC_MOUSEOPT, pitem->option);
}
예제 #6
0
/*------------------------------------------------
  Apply changes
--------------------------------------------------*/
void OnApply(HWND hDlg)
{
	char s[BUFSIZE_FORMAT];
	int i;
	
	if(!m_bChanged) return;
	m_bChanged = FALSE;
	
	SetMyRegLong("", "Locale",
		CBGetItemData(hDlg, IDC_LOCALE, CBGetCurSel(hDlg, IDC_LOCALE)));
	
	for(i = IDC_YEAR4; i <= IDC_CUSTOM; i++)
	{
		SetMyRegLong("", ENTRY(i), IsDlgButtonChecked(hDlg, i));
	}
	
	GetDlgItemText(hDlg, IDC_FORMAT, s, BUFSIZE_FORMAT);
	SetMyRegStr("", "Format", s);
	
	if(IsDlgButtonChecked(hDlg, IDC_CUSTOM))
	{
		strcpy(m_CustomFormat, s);
		SetMyRegStr("", "CustomFormat", m_CustomFormat);
	}
	
#if TC_ENABLE_SYSINFO
	SetMyRegLong(NULL, "IntervalSysInfo",
		UpDown_GetPos(hDlg,IDC_SYSIISPIN));
#endif
}
예제 #7
0
/*------------------------------------------------
  get MOUSESTRUCT data from dialog
--------------------------------------------------*/
void GetMouseCommandFromDlg(HWND hDlg, PMOUSESTRUCT pitem)
{
	int i;
	
	if(!pitem) return;
	
	pitem->nButton = CBGetCurSel(hDlg, IDC_MOUSEBUTTON);
	
	for(i = 0; i < 4; i++)
	{
		if(IsDlgButtonChecked(hDlg, IDC_RADSINGLE + i))
		{
			pitem->nClick = i + 1;
			break;
		}
	}
	
	pitem->bCtrl  = IsDlgButtonChecked(hDlg, IDC_MOUSECTRL);
	pitem->bShift = IsDlgButtonChecked(hDlg, IDC_MOUSESHIFT);
	pitem->bAlt   = IsDlgButtonChecked(hDlg, IDC_MOUSEALT);
	
	pitem->nCommand = CBGetItemData(hDlg, IDC_MOUSEFUNC,
			CBGetCurSel(hDlg, IDC_MOUSEFUNC));
	GetDlgItemText(hDlg, IDC_MOUSEOPT, pitem->option, MAX_PATH);
}
예제 #8
0
/*------------------------------------------------
  When changed "Locale" combobox
--------------------------------------------------*/
void OnLocale(HWND hDlg)
{
	int ilang;
	
	ilang = CBGetItemData(hDlg, IDC_LOCALE, CBGetCurSel(hDlg, IDC_LOCALE));
	InitAutoFormat(ilang);
	
	OnCustom(hDlg, FALSE);
}
예제 #9
0
/*------------------------------------------------
   "Detail..."
--------------------------------------------------*/
void OnDetail(HWND hDlg)
{
	int r, ilang;
	
	ilang = CBGetItemData(hDlg, IDC_LOCALE,
		CBGetCurSel(hDlg, IDC_LOCALE));
	r = (int)DialogBoxParam(g_hInst, MAKEINTRESOURCE(IDD_FORMAT2),
		GetParent(hDlg), DlgProcFormat2, (LPARAM)ilang);
	if(r == IDOK) SendPSChanged(hDlg);
}
예제 #10
0
/*------------------------------------------------
  free memories associated with combo box.
--------------------------------------------------*/
void OnDestroy(HWND hDlg)
{
	int i, count;

	count = CBGetCount(hDlg, IDC_COMBOAUTOEXEC);
	for(i = 0; i < count; i++)
	{
		PAUTOEXECSTRUCT pAS;
		pAS = (PAUTOEXECSTRUCT)CBGetItemData(hDlg, IDC_COMBOAUTOEXEC, i);
		if(pAS) free(pAS);
	}
}
예제 #11
0
/*------------------------------------------------
  Apply changes
--------------------------------------------------*/
void OnApply(HWND hDlg)
{
	int i;
	char s[MAX_PATH];

	if(!m_bChanged) return;
	m_bChanged = FALSE;
	
	SetMyRegLong(m_section, "UseAnalogClock",
		IsDlgButtonChecked(hDlg, IDC_ANALOGCLOCK));

	SetMyRegLong(m_section, "HourHandColor",
		CBGetItemData(hDlg, IDC_COLHOUR, CBGetCurSel(hDlg, IDC_COLHOUR)));
	SetMyRegLong(m_section, "MinHandColor",
		CBGetItemData(hDlg, IDC_COLMIN, CBGetCurSel(hDlg, IDC_COLMIN)));

	SetMyRegLong(m_section, "HourHandBold",
		IsDlgButtonChecked(hDlg, IDC_HOURHANDBOLD));
	SetMyRegLong(m_section, "MinHandBold",
		IsDlgButtonChecked(hDlg, IDC_MINHANDBOLD));

	if(IsDlgButtonChecked(hDlg, IDC_ANALOGPOSLEFT)) i = 1;
	else if(IsDlgButtonChecked(hDlg, IDC_ANALOGPOSRIGHT)) i = 2;
	else i = 0;
	SetMyRegLong(m_section, "AnalogClockPos", i);

	SetMyRegLong(m_section, "HorizontalPos",
		UpDown_GetPos(hDlg,IDC_ANALOGHPOSSPIN));
	SetMyRegLong(m_section, "VerticalPos",
		UpDown_GetPos(hDlg,IDC_ANALOGVPOSSPIN));

	SetMyRegLong(m_section, "Size",
		UpDown_GetPos(hDlg,IDC_ANALOGSIZESPIN));

	GetDlgItemText(hDlg, IDC_ANALOGBMP, s, MAX_PATH);
	SetMyRegStr(m_section, "Bitmap", s);
}
예제 #12
0
/*------------------------------------------------
  combo box is about to be made visible
--------------------------------------------------*/
void OnDropDownAutoExec(HWND hDlg)
{
	PAUTOEXECSTRUCT pAS;
	char name[40];
	int index;

	if(curAutoExec < 0) return;
	pAS = (PAUTOEXECSTRUCT)CBGetItemData(hDlg, IDC_COMBOAUTOEXEC, curAutoExec);
	if(pAS == 0) return;
	GetDlgItemText(hDlg, IDC_COMBOAUTOEXEC, name, 40);
	if(strcmp(name, pAS->name) != 0)
	{
		strcpy(pAS->name, name);
		CBDeleteString(hDlg, IDC_COMBOAUTOEXEC, curAutoExec);
		index = CBInsertString(hDlg, IDC_COMBOAUTOEXEC, curAutoExec, name);
		CBSetItemData(hDlg, IDC_COMBOAUTOEXEC, index, (LPARAM)pAS);
		CBSetCurSel(hDlg, IDC_COMBOAUTOEXEC, index);
		curAutoExec = index;
	}
}
예제 #13
0
/*------------------------------------------------
   set sizes to "Font Size" combo box
--------------------------------------------------*/
void OnFont(HWND hDlg, BOOL bInit)
{
	char s[160], size[10];
	int charset;
	int index;
	
	if(bInit) // WM_INITDIALOG
		GetMyRegStr(NULL, "FontSize", size, 10, "9");
	else     // WM_COMMAND
		GetDlgItemText(hDlg, IDC_FONTSIZE, size, 10);
	
	CBGetLBText(hDlg, IDC_FONT, CBGetCurSel(hDlg, IDC_FONT), (LPARAM)s);
	charset = CBGetItemData(hDlg, IDC_FONT, CBGetCurSel(hDlg, IDC_FONT));
	
	// common/combobox.c
	InitFontSizeCombo(hDlg, IDC_FONTSIZE, s, charset);
	
	index = CBFindStringExact(hDlg, IDC_FONTSIZE, size);
	if(index == CB_ERR)
		SetDlgItemText(hDlg, IDC_FONTSIZE, size);
	else CBSetCurSel(hDlg, IDC_FONTSIZE, index);
}
예제 #14
0
/*------------------------------------------------
   "Function" is selected
--------------------------------------------------*/
void OnFunction(HWND hDlg, BOOL bInit)
{
	RECT rc;
	int command = CBGetItemData(hDlg, IDC_MOUSEFUNC,
					CBGetCurSel(hDlg, IDC_MOUSEFUNC));
	
	if(!bInit || command != m_prevcommand)
		SetDlgItemText(hDlg, IDC_MOUSEOPT, "");
	
	m_prevcommand = command;
	
	if(command == IDC_OPENFILE || command == IDC_MOUSECOPY
		|| command == IDC_MONOFF || command == IDC_COMMAND
#if TC_ENABLE_VOLUME
		|| command == IDC_VOLUD || command == IDC_VOLSET
#endif
		)
	{
		if(command == IDC_OPENFILE)
			SetDlgItemText(hDlg, IDC_LABMOUSEOPT,
				MyString(IDS_FILE, "File"));
		else if(command == IDC_MOUSECOPY)
			SetDlgItemText(hDlg, IDC_LABMOUSEOPT,
				MyString(IDS_FORMATCOPY, "FormatCopy"));
		else if(command == IDC_MONOFF)
			SetDlgItemText(hDlg, IDC_LABMOUSEOPT,
				MyString(IDS_MONOFFSEC, "MonOffSec"));
		else if(command == IDC_COMMAND)
			SetDlgItemText(hDlg, IDC_LABMOUSEOPT,
				MyString(IDS_NUMERO, "Numero"));
#if TC_ENABLE_VOLUME
		else if(command == IDC_VOLSET)
			SetDlgItemText(hDlg, IDC_LABMOUSEOPT,
				MyString(IDS_VOLVAL, "Volume"));
		else if(command == IDC_VOLUD)
			SetDlgItemText(hDlg, IDC_LABMOUSEOPT,
				MyString(IDS_VOLDELTA, "Delta"));
#endif
		
		ShowDlgItem(hDlg, IDC_LABMOUSEOPT, TRUE);
		
		GetWindowRect(GetDlgItem(hDlg, IDC_MOUSEOPT), &rc);
		if(command == IDC_OPENFILE || command == IDC_MOUSECOPY)
			SetWindowPos(GetDlgItem(hDlg, IDC_MOUSEOPT), NULL,
				0, 0, m_widthOpt, rc.bottom - rc.top,
				SWP_NOZORDER|SWP_NOMOVE|SWP_SHOWWINDOW);
		else
		{
			SetWindowPos(GetDlgItem(hDlg, IDC_MOUSEOPT), NULL,
				0, 0, (rc.bottom - rc.top)*2, rc.bottom - rc.top,
				SWP_NOZORDER|SWP_NOMOVE|SWP_SHOWWINDOW);
		}
		
		if(command == IDC_OPENFILE)
			ShowDlgItem(hDlg, IDC_MOUSEOPTSANSHO, TRUE);
		else
			ShowDlgItem(hDlg, IDC_MOUSEOPTSANSHO, FALSE);
	}
	else
	{
		ShowDlgItem(hDlg, IDC_LABMOUSEOPT, FALSE);
		ShowDlgItem(hDlg, IDC_MOUSEOPT, FALSE);
		ShowDlgItem(hDlg, IDC_MOUSEOPTSANSHO, FALSE);
	}
}