void CloseRichCallback(HWND hwnd) { int ind = g_RichEditList.getIndex((RichEditData*)&hwnd); if (ind == -1 ) return; RichEditData* rdt = g_RichEditList[ind]; if (rdt->hToolTip) DestroyWindow(rdt->hToolTip); delete rdt; g_RichEditList.remove(ind); mir_unsubclassWindow(hwnd, RichEditSubclass); }
void CloseRichOwnerCallback(HWND hwnd) { int ind = g_RichEditOwnerList.getIndex((RichEditOwnerData*)&hwnd); if (ind == -1) return; RichEditOwnerData* rdto = g_RichEditOwnerList[ind]; CloseRichCallback(rdto->hwndInput); CloseRichCallback(rdto->hwndLog); delete rdto; g_RichEditOwnerList.remove(ind); mir_unsubclassWindow(hwnd, RichEditOwnerSubclass); }
INT_PTR CALLBACK DlgProcSBarOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: opt_sbar_changed = 0; TranslateDialogDefault(hwndDlg); CheckDlgButton(hwndDlg, IDC_SHOWSBAR, cfg::getByte("CLUI", "ShowSBar", 1) ? BST_CHECKED : BST_UNCHECKED); { BYTE showOpts = cfg::getByte("CLUI", "SBarShow", 1); CheckDlgButton(hwndDlg, IDC_SHOWICON, showOpts & 1 ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_SHOWPROTO, showOpts & 2 ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_SHOWSTATUS, showOpts & 4 ? BST_CHECKED : BST_UNCHECKED); } CheckDlgButton(hwndDlg, IDC_RIGHTSTATUS, cfg::getByte("CLUI", "SBarRightClk", 0) ? BST_UNCHECKED : BST_CHECKED); CheckDlgButton(hwndDlg, IDC_RIGHTMIRANDA, BST_UNCHECKED == IsDlgButtonChecked(hwndDlg, IDC_RIGHTSTATUS) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_EQUALSECTIONS, cfg::dat.bEqualSections ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_SBPANELBEVEL, cfg::getByte("CLUI", "SBarBevel", 1) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_SHOWGRIP, cfg::getByte("CLUI", "ShowGrip", 1) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_SKINBACKGROUND, cfg::dat.bSkinnedStatusBar ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_SHOWXSTATUS, cfg::dat.bShowXStatusOnSbar ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_MARKLOCKED, cfg::getByte("CLUI", "sbar_showlocked", 1) ? BST_CHECKED : BST_UNCHECKED); if (BST_UNCHECKED == IsDlgButtonChecked(hwndDlg, IDC_SHOWSBAR)) { Utils::enableDlgControl(hwndDlg, IDC_SHOWICON, FALSE); Utils::enableDlgControl(hwndDlg, IDC_SHOWPROTO, FALSE); Utils::enableDlgControl(hwndDlg, IDC_SHOWSTATUS, FALSE); Utils::enableDlgControl(hwndDlg, IDC_RIGHTSTATUS, FALSE); Utils::enableDlgControl(hwndDlg, IDC_RIGHTMIRANDA, FALSE); Utils::enableDlgControl(hwndDlg, IDC_EQUALSECTIONS, FALSE); Utils::enableDlgControl(hwndDlg, IDC_SBPANELBEVEL, FALSE); Utils::enableDlgControl(hwndDlg, IDC_SHOWGRIP, FALSE); Utils::enableDlgControl(hwndDlg, IDC_SKINBACKGROUND, FALSE); } return TRUE; case WM_COMMAND: if (LOWORD(wParam) == IDC_SHOWSBAR) { Utils::enableDlgControl(hwndDlg, IDC_SHOWICON, IsDlgButtonChecked(hwndDlg, IDC_SHOWSBAR)); Utils::enableDlgControl(hwndDlg, IDC_SHOWPROTO, IsDlgButtonChecked(hwndDlg, IDC_SHOWSBAR)); Utils::enableDlgControl(hwndDlg, IDC_SHOWSTATUS, IsDlgButtonChecked(hwndDlg, IDC_SHOWSBAR)); Utils::enableDlgControl(hwndDlg, IDC_RIGHTSTATUS, IsDlgButtonChecked(hwndDlg, IDC_SHOWSBAR)); Utils::enableDlgControl(hwndDlg, IDC_RIGHTMIRANDA, IsDlgButtonChecked(hwndDlg, IDC_SHOWSBAR)); Utils::enableDlgControl(hwndDlg, IDC_EQUALSECTIONS, IsDlgButtonChecked(hwndDlg, IDC_SHOWSBAR)); Utils::enableDlgControl(hwndDlg, IDC_SBPANELBEVEL, IsDlgButtonChecked(hwndDlg, IDC_SHOWSBAR)); Utils::enableDlgControl(hwndDlg, IDC_SHOWGRIP, IsDlgButtonChecked(hwndDlg, IDC_SHOWSBAR)); Utils::enableDlgControl(hwndDlg, IDC_SKINBACKGROUND, IsDlgButtonChecked(hwndDlg, IDC_SHOWSBAR)); } SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); opt_sbar_changed = 1; break; case WM_NOTIFY: switch (((LPNMHDR)lParam)->code) { case PSN_APPLY: if (!opt_sbar_changed) return TRUE; cfg::writeByte("CLUI", "ShowSBar", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SHOWSBAR)); cfg::writeByte("CLUI", "SBarShow", (BYTE)((IsDlgButtonChecked(hwndDlg, IDC_SHOWICON) ? 1 : 0) | (IsDlgButtonChecked(hwndDlg, IDC_SHOWPROTO) ? 2 : 0) | (IsDlgButtonChecked(hwndDlg, IDC_SHOWSTATUS) ? 4 : 0))); cfg::writeByte("CLUI", "SBarRightClk", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_RIGHTMIRANDA)); cfg::writeByte("CLUI", "EqualSections", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_EQUALSECTIONS)); cfg::writeByte("CLUI", "sb_skinned", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SKINBACKGROUND)); cfg::writeByte("CLUI", "sbar_showlocked", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_MARKLOCKED)); cfg::dat.bEqualSections = IsDlgButtonChecked(hwndDlg, IDC_EQUALSECTIONS) ? 1 : 0; cfg::dat.bSkinnedStatusBar = IsDlgButtonChecked(hwndDlg, IDC_SKINBACKGROUND) ? 1 : 0; cfg::dat.bShowXStatusOnSbar = IsDlgButtonChecked(hwndDlg, IDC_SHOWXSTATUS) ? 1 : 0; cfg::writeByte("CLUI", "xstatus_sbar", (BYTE)cfg::dat.bShowXStatusOnSbar); cfg::writeByte("CLUI", "SBarBevel", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SBPANELBEVEL)); if (cfg::getByte("CLUI", "ShowGrip", 1) != (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SHOWGRIP)) { HWND parent = GetParent(pcli->hwndStatus); int flags = WS_CHILD | CCS_BOTTOM; cfg::writeByte("CLUI", "ShowGrip", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SHOWGRIP)); ShowWindow(pcli->hwndStatus, SW_HIDE); mir_unsubclassWindow(pcli->hwndStatus, NewStatusBarWndProc); DestroyWindow(pcli->hwndStatus); flags |= cfg::getByte("CLUI", "ShowSBar", 1) ? WS_VISIBLE : 0; flags |= cfg::getByte("CLUI", "ShowGrip", 1) ? SBARS_SIZEGRIP : 0; pcli->hwndStatus = CreateWindow(STATUSCLASSNAME, NULL, flags, 0, 0, 0, 0, parent, NULL, g_hInst, NULL); mir_subclassWindow(pcli->hwndStatus, NewStatusBarWndProc); } if (IsDlgButtonChecked(hwndDlg, IDC_SHOWSBAR)) { ShowWindow(pcli->hwndStatus, SW_SHOW); SendMessage(pcli->hwndStatus, WM_SIZE, 0, 0); cfg::dat.dwFlags |= CLUI_FRAME_SBARSHOW; } else { ShowWindow(pcli->hwndStatus, SW_HIDE); cfg::dat.dwFlags &= ~CLUI_FRAME_SBARSHOW; } cfg::writeDword("CLUI", "Frameflags", cfg::dat.dwFlags); ConfigureCLUIGeometry(1); SendMessage(pcli->hwndContactList, WM_SIZE, 0, 0); CluiProtocolStatusChanged(0, 0); PostMessage(pcli->hwndContactList, CLUIINTM_REDRAW, 0, 0); opt_sbar_changed = 0; return TRUE; } break; } return FALSE; }