static INT_PTR CALLBACK PopupsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: SendDlgItemMessage(hwndDlg, IDC_RIGHT_ACTION, CB_ADDSTRING, 0, (LPARAM)TranslateT("Do nothing")); SendDlgItemMessage(hwndDlg, IDC_RIGHT_ACTION, CB_ADDSTRING, 0, (LPARAM)TranslateT("Close popup")); SendDlgItemMessage(hwndDlg, IDC_RIGHT_ACTION, CB_ADDSTRING, 0, (LPARAM)TranslateT("Show avatar history")); SendDlgItemMessage(hwndDlg, IDC_RIGHT_ACTION, CB_ADDSTRING, 0, (LPARAM)TranslateT("Show contact history")); SendDlgItemMessage(hwndDlg, IDC_LEFT_ACTION, CB_ADDSTRING, 0, (LPARAM)TranslateT("Do nothing")); SendDlgItemMessage(hwndDlg, IDC_LEFT_ACTION, CB_ADDSTRING, 0, (LPARAM)TranslateT("Close popup")); SendDlgItemMessage(hwndDlg, IDC_LEFT_ACTION, CB_ADDSTRING, 0, (LPARAM)TranslateT("Show avatar history")); SendDlgItemMessage(hwndDlg, IDC_LEFT_ACTION, CB_ADDSTRING, 0, (LPARAM)TranslateT("Show contact history")); // Needs to be called here in this case SaveOptsDlgProc(popupsControls, _countof(popupsControls), MODULE_NAME, hwndDlg, msg, wParam, lParam); PopupsEnableDisableCtrls(hwndDlg); return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_POPUPS: case IDC_WINCOLORS: case IDC_DEFAULTCOLORS: case IDC_DELAYFROMPU: case IDC_DELAYPERMANENT: case IDC_DELAYCUSTOM: case IDC_CHANGED_L: case IDC_REMOVED_L: if (HIWORD(wParam) == BN_CLICKED) PopupsEnableDisableCtrls(hwndDlg); break; case IDC_PREV: Options op = opts; if (IsDlgButtonChecked(hwndDlg, IDC_DELAYFROMPU)) op.popup_delay_type = POPUP_DELAY_DEFAULT; else if (IsDlgButtonChecked(hwndDlg, IDC_DELAYCUSTOM)) op.popup_delay_type = POPUP_DELAY_CUSTOM; else if (IsDlgButtonChecked(hwndDlg, IDC_DELAYPERMANENT)) op.popup_delay_type = POPUP_DELAY_PERMANENT; op.popup_timeout = GetDlgItemInt(hwndDlg,IDC_DELAY, NULL, FALSE); op.popup_bkg_color = SendDlgItemMessage(hwndDlg,IDC_BGCOLOR,CPM_GETCOLOUR,0,0); op.popup_text_color = SendDlgItemMessage(hwndDlg,IDC_TEXTCOLOR,CPM_GETCOLOUR,0,0); op.popup_use_win_colors = IsDlgButtonChecked(hwndDlg, IDC_WINCOLORS) != 0; op.popup_use_default_colors = IsDlgButtonChecked(hwndDlg, IDC_DEFAULTCOLORS) != 0; MCONTACT hContact = db_find_first(); ShowTestPopup(hContact,TranslateT("Test Contact"), TranslateT("Test description"), &op); break; } } return SaveOptsDlgProc(popupsControls, _countof(popupsControls), MODULE_NAME, hwndDlg, msg, wParam, lParam); }
static INT_PTR CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { BOOL ret; if (msg != WM_INITDIALOG) ret = SaveOptsDlgProc(optionsControls, _countof(optionsControls), MODULE_NAME, hwndDlg, msg, wParam, lParam); switch (msg) { case WM_INITDIALOG: if (hExtraIcon != NULL) { ShowWindow(GetDlgItem(hwndDlg, IDC_SHOW_ADV_ICON), SW_HIDE); ShowWindow(GetDlgItem(hwndDlg, IDC_ADV_ICON), SW_HIDE); } else { // Init combo int total = EXTRA_ICON_COUNT, first = 0; SendDlgItemMessage(hwndDlg, IDC_ADV_ICON, CB_ADDSTRING, 0, (LPARAM) _T("1")); SendDlgItemMessage(hwndDlg, IDC_ADV_ICON, CB_ADDSTRING, 0, (LPARAM) _T("2")); if (total > 0) { TCHAR tmp[10]; for (int i = first; i <= total; i++) SendDlgItemMessage(hwndDlg, IDC_ADV_ICON, CB_ADDSTRING, 0, (LPARAM) _itot(i - first + 3, tmp, 10)); } } ret = SaveOptsDlgProc(optionsControls, _countof(optionsControls), MODULE_NAME, hwndDlg, msg, wParam, lParam); OptionsEnableDisableCtrls(hwndDlg); break; case WM_NOTIFY: { LPNMHDR lpnmhdr = (LPNMHDR)lParam; if (lpnmhdr->idFrom == 0 && lpnmhdr->code == PSN_APPLY) { RebuildMenu(); StartTimer(); } } break; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_ENABLE_SEND: if (HIWORD(wParam) == BN_CLICKED) OptionsEnableDisableCtrls(hwndDlg); break; } break; } return ret; }
static INT_PTR CALLBACK PlayersDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { BOOL ret = SaveOptsDlgProc(playersControls, _countof(playersControls), MODULE_NAME, hwndDlg, msg, wParam, lParam); switch (msg) { case WM_INITDIALOG: PlayersEnableDisableCtrls(hwndDlg); break; case WM_COMMAND: if (HIWORD(wParam) == BN_CLICKED) PlayersEnableDisableCtrls(hwndDlg); break; case WM_NOTIFY: { LPNMHDR lpnmhdr = (LPNMHDR)lParam; if (lpnmhdr->idFrom == 0 && lpnmhdr->code == PSN_APPLY) { EnableDisablePlayers(); StartTimer(); } } break; } return ret; }
static INT_PTR CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { int ret = SaveOptsDlgProc(controls, _countof(controls), MODULE_NAME, hwndDlg, msg, wParam, lParam); switch (msg) { case WM_INITDIALOG: { BOOL enabled = IsDlgButtonChecked(hwndDlg, IDC_LASTSENTTO); EnableWindow(GetDlgItem(hwndDlg, IDC_GLOBAL), enabled); EnableWindow(GetDlgItem(hwndDlg, IDC_LOCAL), enabled); enabled = IsDlgButtonChecked(hwndDlg, IDC_SUBCONTACTS); EnableWindow(GetDlgItem(hwndDlg, IDC_KEEP_OFFLINE), enabled); return TRUE; } case WM_COMMAND: if (LOWORD(wParam) == IDC_LASTSENTTO) { BOOL enabled = IsDlgButtonChecked(hwndDlg, IDC_LASTSENTTO); EnableWindow(GetDlgItem(hwndDlg, IDC_GLOBAL), enabled); EnableWindow(GetDlgItem(hwndDlg, IDC_LOCAL), enabled); } if (LOWORD(wParam) == IDC_SUBCONTACTS) { BOOL enabled = IsDlgButtonChecked(hwndDlg, IDC_SUBCONTACTS); EnableWindow(GetDlgItem(hwndDlg, IDC_KEEP_OFFLINE), enabled); } break; case WM_NOTIFY: switch (((LPNMHDR)lParam)->idFrom) { case 0: switch (((LPNMHDR)lParam)->code) { case PSN_APPLY: LoadOptions(); return TRUE; } break; } break; } return ret; }
static INT_PTR CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { BOOL ret = SaveOptsDlgProc(pageControls, SIZEOF(pageControls), MODULE_NAME, hwndDlg, msg, wParam, lParam); switch (msg) { case WM_INITDIALOG: if (!IsDlgButtonChecked(hwndDlg, IDC_AVATAR_ROUND_CORNERS)) { EnableWindow(GetDlgItem(hwndDlg, IDC_AVATAR_CUSTOM_CORNER_SIZE_CHECK), FALSE); } if (!IsDlgButtonChecked(hwndDlg, IDC_AVATAR_ROUND_CORNERS) || !IsDlgButtonChecked(hwndDlg, IDC_AVATAR_CUSTOM_CORNER_SIZE_CHECK)) { EnableWindow(GetDlgItem(hwndDlg, IDC_AVATAR_CUSTOM_CORNER_SIZE), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_AVATAR_CUSTOM_CORNER_SIZE_SPIN), FALSE); } if (!IsDlgButtonChecked(hwndDlg, IDC_SHOW_PROTO_NAME)) EnableWindow(GetDlgItem(hwndDlg, IDC_SHOW_CYCLE_PROTO_BUTTON), FALSE); if (!IsDlgButtonChecked(hwndDlg, IDC_AVATAR_CUSTOM_SIZE_CHK)) { EnableWindow(GetDlgItem(hwndDlg, IDC_AVATAR_CUSTOM_SIZE), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_AVATAR_CUSTOM_SIZE_SPIN), FALSE); } if (!IsDlgButtonChecked(hwndDlg, IDC_CYCLE_THROUGH_PROTOS)) { EnableWindow(GetDlgItem(hwndDlg, IDC_CYCLE_TIME), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_CYCLE_TIME_SPIN), FALSE); } if (!IsDlgButtonChecked(hwndDlg, IDC_REPLACE_SMILEYS)) { EnableWindow(GetDlgItem(hwndDlg, IDC_USE_CONTACT_LIST_SMILEYS), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_RESIZE_SMILEYS), FALSE); } if (!ServiceExists(MS_SMILEYADD_BATCHPARSE)) { EnableWindow(GetDlgItem(hwndDlg, IDC_REPLACE_SMILEYS), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_USE_CONTACT_LIST_SMILEYS), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_RESIZE_SMILEYS), FALSE); } if (!ServiceExists(MS_CLIST_FRAMES_SETFRAMEOPTIONS)) EnableWindow(GetDlgItem(hwndDlg, IDC_RESIZE_FRAME), FALSE); break; case WM_COMMAND: if (LOWORD(wParam) == IDC_AVATAR_ROUND_CORNERS || LOWORD(wParam) == IDC_AVATAR_CUSTOM_CORNER_SIZE_CHECK) { BOOL enabled = IsDlgButtonChecked(hwndDlg, IDC_AVATAR_ROUND_CORNERS); EnableWindow(GetDlgItem(hwndDlg, IDC_AVATAR_CUSTOM_CORNER_SIZE_CHECK), enabled); enabled = enabled && IsDlgButtonChecked(hwndDlg, IDC_AVATAR_CUSTOM_CORNER_SIZE_CHECK); EnableWindow(GetDlgItem(hwndDlg, IDC_AVATAR_CUSTOM_CORNER_SIZE), enabled); EnableWindow(GetDlgItem(hwndDlg, IDC_AVATAR_CUSTOM_CORNER_SIZE_SPIN), enabled); } else if (LOWORD(wParam) == IDC_SHOW_PROTO_NAME) { BOOL enabled = IsDlgButtonChecked(hwndDlg, IDC_SHOW_PROTO_NAME); EnableWindow(GetDlgItem(hwndDlg, IDC_SHOW_CYCLE_PROTO_BUTTON), enabled); } else if (LOWORD(wParam) == IDC_AVATAR_CUSTOM_SIZE_CHK) { BOOL enabled = IsDlgButtonChecked(hwndDlg, IDC_AVATAR_CUSTOM_SIZE_CHK); EnableWindow(GetDlgItem(hwndDlg, IDC_AVATAR_CUSTOM_SIZE), enabled); EnableWindow(GetDlgItem(hwndDlg, IDC_AVATAR_CUSTOM_SIZE_SPIN), enabled); } else if (LOWORD(wParam) == IDC_CYCLE_THROUGH_PROTOS) { BOOL enabled = IsDlgButtonChecked(hwndDlg, IDC_CYCLE_THROUGH_PROTOS); EnableWindow(GetDlgItem(hwndDlg, IDC_CYCLE_TIME), enabled); EnableWindow(GetDlgItem(hwndDlg, IDC_CYCLE_TIME_SPIN), enabled); } else if (LOWORD(wParam) == IDC_REPLACE_SMILEYS) { BOOL enabled = IsDlgButtonChecked(hwndDlg, IDC_REPLACE_SMILEYS); EnableWindow(GetDlgItem(hwndDlg, IDC_USE_CONTACT_LIST_SMILEYS), enabled); EnableWindow(GetDlgItem(hwndDlg, IDC_RESIZE_SMILEYS), enabled); } break; case WM_NOTIFY: switch (((LPNMHDR)lParam)->idFrom) { case 0: switch (((LPNMHDR)lParam)->code) { case PSN_APPLY: LoadOptions(); return TRUE; } break; } break; } return ret; }
static INT_PTR CALLBACK AutoreplaceDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: { BOOL ret = SaveOptsDlgProc(autoReplaceControls, SIZEOF(autoReplaceControls), MODULE_NAME, hwndDlg, msg, wParam, lParam); int sel = -1; for(int i = 0; i < languages.getCount(); i++) { Dictionary *p = languages[i]; SendDlgItemMessage(hwndDlg, IDC_LANGUAGE, CB_ADDSTRING, 0, (LPARAM)p->full_name); SendDlgItemMessage(hwndDlg, IDC_LANGUAGE, CB_SETITEMDATA, i, (LPARAM)new AutoreplaceData(p)); if ( !lstrcmp(opts.default_language, p->language)) sel = i; } SendDlgItemMessage(hwndDlg, IDC_LANGUAGE, CB_SETCURSEL, sel, 0); HWND hList = GetDlgItem(hwndDlg, IDC_REPLACEMENTS); ListView_SetExtendedListViewStyle(hList, ListView_GetExtendedListViewStyle(hList) | LVS_EX_FULLROWSELECT); LVCOLUMN col = {0}; col.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT ; col.fmt = LVCFMT_LEFT; col.cx = 175; col.pszText = TranslateT("Wrong word"); col.cchTextMax = lstrlen(col.pszText); ListView_InsertColumn(hList, 0, &col); col.pszText = TranslateT("Correction"); col.cchTextMax = lstrlen(col.pszText); ListView_InsertColumn(hList, 1, &col); LoadReplacements(hwndDlg); return ret; } case WM_COMMAND: if (LOWORD(wParam) == IDC_LANGUAGE && HIWORD(wParam) == CBN_SELCHANGE) LoadReplacements(hwndDlg); else if (LOWORD(wParam) == IDC_ADD) ShowAddReplacement(hwndDlg); else if (LOWORD(wParam) == IDC_EDIT) { HWND hList = GetDlgItem(hwndDlg, IDC_REPLACEMENTS); if (ListView_GetSelectedCount(hList) != 1) break; int sel = SendMessage(hList, LVM_GETNEXTITEM, -1, LVNI_SELECTED); if (sel < 0) break; ShowAddReplacement(hwndDlg, sel); } else if (LOWORD(wParam) == IDC_REMOVE) { HWND hList = GetDlgItem(hwndDlg, IDC_REPLACEMENTS); int sel = SendDlgItemMessage(hwndDlg, IDC_LANGUAGE, CB_GETCURSEL, 0, 0); if (sel < 0) break; AutoreplaceData *data = (AutoreplaceData *) SendDlgItemMessage(hwndDlg, IDC_LANGUAGE, CB_GETITEMDATA, sel, 0); BOOL changed = FALSE; sel = SendMessage(hList, LVM_GETNEXTITEM, -1, LVNI_SELECTED); while(sel >= 0) { TCHAR tmp[256]; ListView_GetItemText(hList, sel, 0, tmp, SIZEOF(tmp)); data->RemoveWord(tmp); changed = TRUE; sel = SendMessage(hList, LVM_GETNEXTITEM, sel, LVNI_SELECTED); } if (changed) { LoadReplacements(hwndDlg); SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); } } break; case WM_NOTIFY: { LPNMHDR lpnmhdr = (LPNMHDR)lParam; if (lpnmhdr->idFrom == 0 && lpnmhdr->code == PSN_APPLY && languages.getCount() > 0) { for(int i = 0; i < languages.getCount(); i++) { AutoreplaceData *data = (AutoreplaceData *) SendDlgItemMessage(hwndDlg, IDC_LANGUAGE, CB_GETITEMDATA, i, 0); if (data->changed) { data->dict->autoReplace->setMap(data->autoReplaceMap); data->changed = FALSE; } } } else if (lpnmhdr->idFrom == IDC_REPLACEMENTS) { HWND hList = GetDlgItem(hwndDlg, IDC_REPLACEMENTS); switch(lpnmhdr->code) { case LVN_ITEMCHANGED: case NM_CLICK: EnableDisableCtrls(hwndDlg); break; case NM_DBLCLK: LPNMITEMACTIVATE lpnmitem = (LPNMITEMACTIVATE) lParam; if (lpnmitem->iItem >= 0) ShowAddReplacement(hwndDlg, lpnmitem->iItem); break; } } else if (lpnmhdr->idFrom == IDC_AUTO_USER) EnableDisableCtrls(hwndDlg); } break; case WM_DRAWITEM: { LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT)lParam; if (lpdis->CtlID != IDC_LANGUAGE) break; if (lpdis->itemID == -1) break; AutoreplaceData *data = (AutoreplaceData *) lpdis->itemData; DrawItem(hwndDlg, lpdis, data->dict); } return TRUE; case WM_MEASUREITEM: LPMEASUREITEMSTRUCT lpmis = (LPMEASUREITEMSTRUCT)lParam; if (lpmis->CtlID != IDC_LANGUAGE) break; MeasureItem(hwndDlg, lpmis); return TRUE; } return SaveOptsDlgProc(autoReplaceControls, SIZEOF(autoReplaceControls), MODULE_NAME, hwndDlg, msg, wParam, lParam); }
static INT_PTR CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: { int sel = -1; for(int i = 0; i < languages.getCount(); i++) { SendDlgItemMessage(hwndDlg, IDC_DEF_LANG, CB_ADDSTRING, 0, (LPARAM)languages[i]->full_name); SendDlgItemMessage(hwndDlg, IDC_DEF_LANG, CB_SETITEMDATA, i, (LPARAM)languages[i]); if ( !lstrcmp(opts.default_language, languages[i]->language)) sel = i; } SendDlgItemMessage(hwndDlg, IDC_DEF_LANG, CB_SETCURSEL, sel, 0); SendDlgItemMessage(hwndDlg, IDC_UNDERLINE_TYPE, CB_ADDSTRING, 0, (LPARAM)TranslateT("Line")); SendDlgItemMessage(hwndDlg, IDC_UNDERLINE_TYPE, CB_ADDSTRING, 0, (LPARAM)TranslateT("Dotted")); SendDlgItemMessage(hwndDlg, IDC_UNDERLINE_TYPE, CB_ADDSTRING, 0, (LPARAM)TranslateT("Dash")); SendDlgItemMessage(hwndDlg, IDC_UNDERLINE_TYPE, CB_ADDSTRING, 0, (LPARAM)TranslateT("Dash dot")); SendDlgItemMessage(hwndDlg, IDC_UNDERLINE_TYPE, CB_ADDSTRING, 0, (LPARAM)TranslateT("Dash dot dot")); SendDlgItemMessage(hwndDlg, IDC_UNDERLINE_TYPE, CB_ADDSTRING, 0, (LPARAM)TranslateT("Wave")); SendDlgItemMessage(hwndDlg, IDC_UNDERLINE_TYPE, CB_ADDSTRING, 0, (LPARAM)TranslateT("Thick")); } break; case WM_COMMAND: if (LOWORD(wParam) == IDC_GETMORE) CallService(MS_UTILS_OPENURL, 1, (LPARAM) "http://wiki.services.openoffice.org/wiki/Dictionaries"); if (LOWORD(wParam) == IDC_DEF_LANG && (HIWORD(wParam) == CBN_SELCHANGE && (HWND)lParam == GetFocus())) { SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); return 0; } break; case WM_NOTIFY: { LPNMHDR lpnmhdr = (LPNMHDR)lParam; if (lpnmhdr->idFrom == 0 && lpnmhdr->code == PSN_APPLY && languages.getCount() > 0) { int sel = SendDlgItemMessage(hwndDlg, IDC_DEF_LANG, CB_GETCURSEL, 0, 0); if (sel >= languages.getCount()) sel = 0; db_set_ts(NULL, MODULE_NAME, "DefaultLanguage", (TCHAR *) languages[sel]->language); lstrcpy(opts.default_language, languages[sel]->language); } } break; case WM_DRAWITEM: { LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT)lParam; if (lpdis->CtlID != IDC_DEF_LANG) break; if (lpdis->itemID == -1) break; Dictionary *dict = (Dictionary *) lpdis->itemData; DrawItem(hwndDlg, lpdis, dict); } return TRUE; case WM_MEASUREITEM: LPMEASUREITEMSTRUCT lpmis = (LPMEASUREITEMSTRUCT)lParam; if (lpmis->CtlID != IDC_DEF_LANG) break; MeasureItem(hwndDlg, lpmis); return TRUE; } return SaveOptsDlgProc(optionsControls, SIZEOF(optionsControls), MODULE_NAME, hwndDlg, msg, wParam, lParam); }
static INT_PTR CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { return SaveOptsDlgProc(optionsControls, _countof(optionsControls), MODULE_NAME, hwndDlg, msg, wParam, lParam); }