/*------------------------------------------------ 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); }
/*------------------------------------------------ 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)); }
/*------------------------------------------------ delete a timer --------------------------------------------------*/ void OnDelete(HWND hDlg) { int count, index; PTIMERSTRUCT pitem; count = CBGetCount(hDlg, IDC_TIMERNAME); if(count < 1) return; index = CBGetCurSel(hDlg, IDC_TIMERNAME); if(index < 0) return; pitem = get_listitem(m_pTimer, index); if(pitem == NULL) return; // common/list.c m_pTimer = del_listitem(m_pTimer, pitem); CBDeleteString(hDlg, IDC_TIMERNAME, index); if(count > 1) { if(index == count - 1) index--; CBSetCurSel(hDlg, IDC_TIMERNAME, index); } else { index = -1; EnableTimerDlgItems(hDlg); } SetTimerToDlg(hDlg, get_listitem(m_pTimer, index)); m_nCurrent = index; PostMessage(hDlg, WM_NEXTDLGCTL, 1, FALSE); }
/*------------------------------------------------ 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 }
/*------------------------------------------------ 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); }
/*------------------------------------------------ "Name" is selected --------------------------------------------------*/ void OnName(HWND hDlg) { int index; if(!m_pTimer) return; GetTimerFromDlg(hDlg, get_listitem(m_pTimer, m_nCurrent)); index = CBGetCurSel(hDlg, IDC_TIMERNAME); SetTimerToDlg(hDlg, get_listitem(m_pTimer, index)); m_nCurrent = 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); }
/*------------------------------------------------ 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; } }
/*------------------------------------------------ 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); }
/*------------------------------------------------ "Name" is selected --------------------------------------------------*/ void OnName(HWND hDlg) { int index; index = CBGetCurSel(hDlg, IDC_NAMECLICK); if(index < 0) return ; GetMouseCommandFromDlg(hDlg, get_listitem(m_pMouseCommand, m_nCurrent)); SetMouseCommandToDlg(hDlg, get_listitem(m_pMouseCommand, index)); OnFunction(hDlg, TRUE); #if TC_ENABLE_WHEEL OnMouseButton(hDlg); #endif m_nCurrent = index; }
/*------------------------------------------------ "Delete" --------------------------------------------------*/ void OnDelete(HWND hDlg) { int count, index; PMOUSESTRUCT pitem; count = CBGetCount(hDlg, IDC_NAMECLICK); if(count < 1) return; index = CBGetCurSel(hDlg, IDC_NAMECLICK); if(index < 0) return; pitem = get_listitem(m_pMouseCommand, index); if(pitem == NULL) return; // common/list.c m_pMouseCommand = del_listitem(m_pMouseCommand, pitem); CBDeleteString(hDlg, IDC_NAMECLICK, index); if(count > 0) { if(index == count - 1) index--; CBSetCurSel(hDlg, IDC_NAMECLICK, index); SetMouseCommandToDlg(hDlg, get_listitem(m_pMouseCommand, index)); OnFunction(hDlg, TRUE); } else { index = -1; EnableMousePageItems(hDlg); SetMouseCommandToDlg(hDlg, NULL); OnFunction(hDlg, FALSE); #if TC_ENABLE_WHEEL OnMouseButton(hDlg); #endif } m_nCurrent = index; PostMessage(hDlg, WM_NEXTDLGCTL, 1, FALSE); }
/*------------------------------------------------ "MouseButton" is selected --------------------------------------------------*/ void OnMouseButton(HWND hDlg) { int button = CBGetCurSel(hDlg, IDC_MOUSEBUTTON); int i; if(button > 4) { CheckRadioButton(hDlg, IDC_RADSINGLE, IDC_RADQUADRUPLE, IDC_RADSINGLE); for(i = 0; i < 4; i++) { ShowDlgItem(hDlg, IDC_RADSINGLE + i, FALSE); } } else { for(i = 0; i < 4; i++) { ShowDlgItem(hDlg, IDC_RADSINGLE + i, TRUE); } } }
/*------------------------------------------------ "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); } }