/*------------------------------------------------ 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; } } }
/*------------------------------------------------ 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 }
/*------------------------------------------------ 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)); }
/*------------------------------------------------ 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; } }
/*------------------------------------------------ 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); }
/*------------------------------------------------ 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 }
/*------------------------------------------------ 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); }
/*------------------------------------------------ When changed "Locale" combobox --------------------------------------------------*/ void OnLocale(HWND hDlg) { int ilang; ilang = CBGetItemData(hDlg, IDC_LOCALE, CBGetCurSel(hDlg, IDC_LOCALE)); InitAutoFormat(ilang); OnCustom(hDlg, FALSE); }
/*------------------------------------------------ "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); }
/*------------------------------------------------ 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); } }
/*------------------------------------------------ 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); }
/*------------------------------------------------ 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; } }
/*------------------------------------------------ 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); }
/*------------------------------------------------ "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); } }