From 9d482ed81c2a6a3361a5a9b2d0efbfc4b6b815c5 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 15 Mar 2013 21:47:10 +0000 Subject: - POPUPDATAT_V2 replaced with POPUPDATAT in all possible cases; - fix: wrong popup initialization code; - code cleaning git-svn-id: http://svn.miranda-ng.org/main/trunk@4057 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/BuddyExpectator/src/BuddyExpectator.cpp | 38 +- plugins/ChangeKeyboardLayout/src/options.cpp | 803 ++++++++---------- .../ChangeKeyboardLayout/src/text_operations.cpp | 24 +- plugins/PackUpdater/Src/Notifications.cpp | 922 +++++++++------------ plugins/PluginUpdater/src/Notifications.cpp | 2 +- plugins/Scriver/src/chat/window.cpp | 20 +- plugins/SendScreenshotPlus/src/dlg_msgbox.cpp | 277 +++---- plugins/TabSRMM/src/chat/tools.cpp | 2 +- plugins/TabSRMM/src/eventpopups.cpp | 32 +- plugins/TabSRMM/src/functions.h | 2 +- plugins/TabSRMM/src/globals.cpp | 3 +- plugins/TabSRMM/src/globals.h | 2 +- plugins/TabSRMM/src/mim.cpp | 67 +- plugins/TabSRMM/src/msgoptions.cpp | 4 +- plugins/TabSRMM/src/nen.h | 34 +- plugins/TabSRMM/src/sendlater.cpp | 7 +- plugins/TabSRMM/src/sendqueue.cpp | 38 +- plugins/TabSRMM/src/typingnotify.cpp | 655 ++++++++------- plugins/TabSRMM/src/typingnotify.h | 42 - plugins/UserInfoEx/src/dlg_msgbox.cpp | 325 +++----- plugins/UserInfoEx/src/psp_options.cpp | 278 +++---- plugins/UserInfoEx/src/svc_refreshci.cpp | 4 +- plugins/UserInfoEx/src/svc_reminder.cpp | 22 +- 23 files changed, 1575 insertions(+), 2028 deletions(-) (limited to 'plugins') diff --git a/plugins/BuddyExpectator/src/BuddyExpectator.cpp b/plugins/BuddyExpectator/src/BuddyExpectator.cpp index 65c2cbbfbd..3af375bfb7 100644 --- a/plugins/BuddyExpectator/src/BuddyExpectator.cpp +++ b/plugins/BuddyExpectator/src/BuddyExpectator.cpp @@ -236,7 +236,7 @@ bool isContactGoneFor(HANDLE hContact, int days) TCHAR szInfo[200]; POPUPDATAT_V2 ppd = {0}; - ppd.cbSize = sizeof(POPUPDATAT_V2); + ppd.cbSize = sizeof(ppd); ppd.lchContact = hContact; ppd.lchIcon = Skin_GetIcon("enabled_icon"); @@ -275,8 +275,7 @@ void ReturnNotify(HANDLE hContact, TCHAR *message) if (options.iShowPopUp > 0) { // Display PopUp - POPUPDATAT_V2 ppd = { 0 }; - ppd.cbSize = sizeof(ppd); + POPUPDATAT ppd = { 0 }; ppd.lchContact = hContact; ppd.lchIcon = hIcon; _tcsncpy(ppd.lptzContactName, (TCHAR*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME,(WPARAM)hContact,GCDNF_TCHAR), MAX_CONTACTNAME); @@ -288,7 +287,6 @@ void ReturnNotify(HANDLE hContact, TCHAR *message) ppd.PluginWindowProc = PopupDlgProc; ppd.PluginData = NULL; ppd.iSeconds = options.iPopUpDelay; - PUAddPopUpT(&ppd); } @@ -315,9 +313,7 @@ void GoneNotify(HANDLE hContact, TCHAR *message) if (options.iShowPopUp2 > 0) { // Display PopUp - POPUPDATAT_V2 ppd = {0}; - ppd.cbSize = sizeof(POPUPDATAT_V2); - + POPUPDATAT ppd = {0}; ppd.lchContact = hContact; ppd.lchIcon = hIcon; _tcsncpy(ppd.lptzContactName, (TCHAR*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME,(WPARAM)hContact,GCDNF_TCHAR), MAX_CONTACTNAME); @@ -520,10 +516,8 @@ int SettingChanged(WPARAM wParam, LPARAM lParam) // Last status db_set_dw(hContact, MODULE_NAME, "LastStatus", prevStatus); - if (prevStatus == ID_STATUS_OFFLINE) - { - if (db_get_b(hContact, MODULE_NAME, "MissYou", 0)) - { + if (prevStatus == ID_STATUS_OFFLINE) { + if (db_get_b(hContact, MODULE_NAME, "MissYou", 0)) { // Display PopUp POPUPDATAT_V2 ppd = {0}; ppd.cbSize = sizeof(POPUPDATAT_V2); @@ -532,8 +526,7 @@ int SettingChanged(WPARAM wParam, LPARAM lParam) ppd.lchIcon = Skin_GetIcon("enabled_icon"); _tcsncpy(ppd.lptzContactName, (TCHAR*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME,(WPARAM)hContact,GCDNF_TCHAR), MAX_CONTACTNAME); _tcsncpy(ppd.lptzText, TranslateT("You awaited this contact!"), MAX_SECONDLINE); - if (!options.iUsePopupColors) - { + if (!options.iUsePopupColors) { ppd.colorBack = options.iPopUpColorBack; ppd.colorText = options.iPopUpColorFore; } @@ -551,16 +544,13 @@ int SettingChanged(WPARAM wParam, LPARAM lParam) } } - if (currentStatus == ID_STATUS_OFFLINE) - { + if (currentStatus == ID_STATUS_OFFLINE) { setLastSeen(hContact); return 0; } - if (db_get_dw(hContact, MODULE_NAME, "LastSeen", (DWORD)-1) == (DWORD)-1 && options.notifyFirstOnline) - { + if (db_get_dw(hContact, MODULE_NAME, "LastSeen", (DWORD)-1) == (DWORD)-1 && options.notifyFirstOnline) { ReturnNotify(hContact, TranslateT("has gone online for the first time.")); - setLastSeen(hContact); } @@ -568,19 +558,15 @@ int SettingChanged(WPARAM wParam, LPARAM lParam) if (isContactGoneFor(hContact, AbsencePeriod)) { TCHAR* message = TranslateT("has returned after a long absence."); - time_t tmpTime; TCHAR tmpBuf[251] = {0}; - tmpTime = getLastSeen(hContact); - if (tmpTime != -1) - { + time_t tmpTime = getLastSeen(hContact); + if (tmpTime != -1) { _tcsftime(tmpBuf, 250, TranslateT("has returned after being absent since %#x"), gmtime(&tmpTime)); message = tmpBuf; } - else - { + else { tmpTime = getLastInputMsg(hContact); - if (tmpTime != -1) - { + if (tmpTime != -1) { _tcsftime(tmpBuf, 250, TranslateT("has returned after being absent since %#x"), gmtime(&tmpTime)); message = tmpBuf; } diff --git a/plugins/ChangeKeyboardLayout/src/options.cpp b/plugins/ChangeKeyboardLayout/src/options.cpp index 63a811b212..44571e1352 100644 --- a/plugins/ChangeKeyboardLayout/src/options.cpp +++ b/plugins/ChangeKeyboardLayout/src/options.cpp @@ -7,493 +7,406 @@ INT_PTR CALLBACK DlgMainProcOptions(HWND hWnd, UINT uiMessage, WPARAM wParam, LP LPSTR pszNameLay; BYTE i; - switch (uiMessage) - { + switch (uiMessage) { case WM_INITDIALOG: - { - MainDialogLock = TRUE; - TranslateDialogDefault(hWnd); + MainDialogLock = TRUE; + TranslateDialogDefault(hWnd); - //Горячие клавиши - // Запрещаем вводить в контролы все, кроме обычных кнопок - SendDlgItemMessage(hWnd, IDC_HOTKEY_LAYOUT, HKM_SETRULES, 0xFF, 0); - SendDlgItemMessage(hWnd, IDC_HOTKEY_LAYOUT2, HKM_SETRULES, 0xFF, 0); - SendDlgItemMessage(hWnd, IDC_HOTKEY_CASE, HKM_SETRULES, 0xFF, 0); + //Горячие клавиши + // Запрещаем вводить в контролы все, кроме обычных кнопок + SendDlgItemMessage(hWnd, IDC_HOTKEY_LAYOUT, HKM_SETRULES, 0xFF, 0); + SendDlgItemMessage(hWnd, IDC_HOTKEY_LAYOUT2, HKM_SETRULES, 0xFF, 0); + SendDlgItemMessage(hWnd, IDC_HOTKEY_CASE, HKM_SETRULES, 0xFF, 0); - //Отображаем управляющие клавиши - SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_SHIFT, BM_SETCHECK, (moOptions.dwHotkey_Layout&0x00000100), 0); - SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_CTRL, BM_SETCHECK, (moOptions.dwHotkey_Layout&0x00000200), 0); - SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_ALT, BM_SETCHECK, (moOptions.dwHotkey_Layout&0x00000400), 0); - SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_WIN, BM_SETCHECK, (moOptions.dwHotkey_Layout&0x00000800), 0); - - SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_SHIFT, BM_SETCHECK, (moOptions.dwHotkey_Layout2&0x00000100), 0); - SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_CTRL, BM_SETCHECK, (moOptions.dwHotkey_Layout2&0x00000200), 0); - SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_ALT, BM_SETCHECK, (moOptions.dwHotkey_Layout2&0x00000400), 0); - SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_WIN, BM_SETCHECK, (moOptions.dwHotkey_Layout2&0x00000800), 0); - - SendDlgItemMessage(hWnd, IDC_CHECK_CASE_SHIFT, BM_SETCHECK, (moOptions.dwHotkey_Case&0x00000100), 0); - SendDlgItemMessage(hWnd, IDC_CHECK_CASE_CTRL, BM_SETCHECK, (moOptions.dwHotkey_Case&0x00000200), 0); - SendDlgItemMessage(hWnd, IDC_CHECK_CASE_ALT, BM_SETCHECK, (moOptions.dwHotkey_Case&0x00000400), 0); - SendDlgItemMessage(hWnd, IDC_CHECK_CASE_WIN, BM_SETCHECK, (moOptions.dwHotkey_Case&0x00000800), 0); - - //Показываем символ из хоткея - SendDlgItemMessage(hWnd, IDC_HOTKEY_LAYOUT, HKM_SETHOTKEY, moOptions.dwHotkey_Layout&0x000000FF, 0); - SendDlgItemMessage(hWnd, IDC_HOTKEY_LAYOUT2, HKM_SETHOTKEY, moOptions.dwHotkey_Layout2&0x000000FF, 0); - SendDlgItemMessage(hWnd, IDC_HOTKEY_CASE, HKM_SETHOTKEY, moOptions.dwHotkey_Case&0x000000FF, 0); + //Отображаем управляющие клавиши + SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_SHIFT, BM_SETCHECK, (moOptions.dwHotkey_Layout&0x00000100), 0); + SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_CTRL, BM_SETCHECK, (moOptions.dwHotkey_Layout&0x00000200), 0); + SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_ALT, BM_SETCHECK, (moOptions.dwHotkey_Layout&0x00000400), 0); + SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_WIN, BM_SETCHECK, (moOptions.dwHotkey_Layout&0x00000800), 0); + + SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_SHIFT, BM_SETCHECK, (moOptions.dwHotkey_Layout2&0x00000100), 0); + SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_CTRL, BM_SETCHECK, (moOptions.dwHotkey_Layout2&0x00000200), 0); + SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_ALT, BM_SETCHECK, (moOptions.dwHotkey_Layout2&0x00000400), 0); + SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_WIN, BM_SETCHECK, (moOptions.dwHotkey_Layout2&0x00000800), 0); + + SendDlgItemMessage(hWnd, IDC_CHECK_CASE_SHIFT, BM_SETCHECK, (moOptions.dwHotkey_Case&0x00000100), 0); + SendDlgItemMessage(hWnd, IDC_CHECK_CASE_CTRL, BM_SETCHECK, (moOptions.dwHotkey_Case&0x00000200), 0); + SendDlgItemMessage(hWnd, IDC_CHECK_CASE_ALT, BM_SETCHECK, (moOptions.dwHotkey_Case&0x00000400), 0); + SendDlgItemMessage(hWnd, IDC_CHECK_CASE_WIN, BM_SETCHECK, (moOptions.dwHotkey_Case&0x00000800), 0); + + //Показываем символ из хоткея + SendDlgItemMessage(hWnd, IDC_HOTKEY_LAYOUT, HKM_SETHOTKEY, moOptions.dwHotkey_Layout&0x000000FF, 0); + SendDlgItemMessage(hWnd, IDC_HOTKEY_LAYOUT2, HKM_SETHOTKEY, moOptions.dwHotkey_Layout2&0x000000FF, 0); + SendDlgItemMessage(hWnd, IDC_HOTKEY_CASE, HKM_SETHOTKEY, moOptions.dwHotkey_Case&0x000000FF, 0); - //Остальные опции - SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_MODE, BM_SETCHECK, moOptions.CurrentWordLayout, 0); - SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_MODE2, BM_SETCHECK, moOptions.CurrentWordLayout2, 0); - SendDlgItemMessage(hWnd, IDC_CHECK_CASE_MODE, BM_SETCHECK, moOptions.CurrentWordCase, 0); - SendDlgItemMessage(hWnd, IDC_CHECK_TWOWAY, BM_SETCHECK, moOptions.TwoWay, 0); - SendDlgItemMessage(hWnd, IDC_CHECK_SYSTEMLAYOUT, BM_SETCHECK, moOptions.ChangeSystemLayout, 0); - SendDlgItemMessage(hWnd, IDC_CHECK_CLIPBOARD, BM_SETCHECK, moOptions.CopyToClipboard, 0); - SendDlgItemMessage(hWnd, IDC_CHECK_POPUP, BM_SETCHECK, moOptions.ShowPopup, 0); - - //Смена состояния CapsLock - switch(moOptions.bCaseOperations) - { - case 1: - SendDlgItemMessage(hWnd, IDC_RADIO_OFFCAPS, BM_SETCHECK, 1, 0); - break; - case 2: - SendDlgItemMessage(hWnd, IDC_RADIO_IGNORECAPS, BM_SETCHECK, 1, 0); - break; - default: - SendDlgItemMessage(hWnd, IDC_RADIO_INVERTCAPS, BM_SETCHECK, 1, 0); - break; - } + //Остальные опции + SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_MODE, BM_SETCHECK, moOptions.CurrentWordLayout, 0); + SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_MODE2, BM_SETCHECK, moOptions.CurrentWordLayout2, 0); + SendDlgItemMessage(hWnd, IDC_CHECK_CASE_MODE, BM_SETCHECK, moOptions.CurrentWordCase, 0); + SendDlgItemMessage(hWnd, IDC_CHECK_TWOWAY, BM_SETCHECK, moOptions.TwoWay, 0); + SendDlgItemMessage(hWnd, IDC_CHECK_SYSTEMLAYOUT, BM_SETCHECK, moOptions.ChangeSystemLayout, 0); + SendDlgItemMessage(hWnd, IDC_CHECK_CLIPBOARD, BM_SETCHECK, moOptions.CopyToClipboard, 0); + SendDlgItemMessage(hWnd, IDC_CHECK_POPUP, BM_SETCHECK, moOptions.ShowPopup, 0); + + //Смена состояния CapsLock + switch(moOptions.bCaseOperations) { + case 1: + SendDlgItemMessage(hWnd, IDC_RADIO_OFFCAPS, BM_SETCHECK, 1, 0); + break; + case 2: + SendDlgItemMessage(hWnd, IDC_RADIO_IGNORECAPS, BM_SETCHECK, 1, 0); + break; + default: + SendDlgItemMessage(hWnd, IDC_RADIO_INVERTCAPS, BM_SETCHECK, 1, 0); + break; + } - // Отображаем пример конфиг.строки - ptszMemLay = ptszLayStrings[0]; - SendDlgItemMessage(hWnd, IDC_EDIT_EXAMPLE, WM_SETTEXT, 0, (LPARAM)ptszMemLay); - ptszShortNameLay = GetShortNameOfLayout(hklLayouts[0]); - SendDlgItemMessage(hWnd, IDC_STATIC_EXAMPLE, WM_SETTEXT, 0, (LPARAM)ptszShortNameLay); + // Отображаем пример конфиг.строки + ptszMemLay = ptszLayStrings[0]; + SendDlgItemMessage(hWnd, IDC_EDIT_EXAMPLE, WM_SETTEXT, 0, (LPARAM)ptszMemLay); + ptszShortNameLay = GetShortNameOfLayout(hklLayouts[0]); + SendDlgItemMessage(hWnd, IDC_STATIC_EXAMPLE, WM_SETTEXT, 0, (LPARAM)ptszShortNameLay); + mir_free(ptszShortNameLay); + + // Заполняем комбобокс с текущими раскладками + for(i = 0; i < bLayNum; i++) { + ptszShortNameLay = GetShortNameOfLayout(hklLayouts[i]); + SendDlgItemMessage(hWnd, IDC_COMBO_LANG, CB_ADDSTRING, 0, (LPARAM)ptszShortNameLay); mir_free(ptszShortNameLay); - - // Заполняем комбобокс с текущими раскладками - for(i = 0; i < bLayNum; i++) - { - ptszShortNameLay = GetShortNameOfLayout(hklLayouts[i]); - SendDlgItemMessage(hWnd, IDC_COMBO_LANG, CB_ADDSTRING, 0, (LPARAM)ptszShortNameLay); - mir_free(ptszShortNameLay); - } - //Отображаем первую раскладку в списке - SendDlgItemMessage(hWnd, IDC_COMBO_LANG, CB_SETCURSEL, 0, 0); - ptszMemLay = ptszLayStrings[0]; - SendDlgItemMessage(hWnd, IDC_EDIT_SET, WM_SETTEXT, 0, (LPARAM)ptszMemLay); - - if (bLayNum != 2) EnableWindow(GetDlgItem(hWnd, IDC_CHECK_TWOWAY), FALSE); - MainDialogLock = FALSE; - return TRUE; } + //Отображаем первую раскладку в списке + SendDlgItemMessage(hWnd, IDC_COMBO_LANG, CB_SETCURSEL, 0, 0); + ptszMemLay = ptszLayStrings[0]; + SendDlgItemMessage(hWnd, IDC_EDIT_SET, WM_SETTEXT, 0, (LPARAM)ptszMemLay); + + if (bLayNum != 2) EnableWindow(GetDlgItem(hWnd, IDC_CHECK_TWOWAY), FALSE); + MainDialogLock = FALSE; + return TRUE; + case WM_COMMAND: - { - switch (LOWORD(wParam)) - { - case IDC_HOTKEY_LAYOUT: - case IDC_HOTKEY_LAYOUT2: - case IDC_HOTKEY_CASE: - - { - if ((HIWORD(wParam) == EN_CHANGE)) - SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); - break; - } - case IDC_CHECK_DETECT: - case IDC_CHECK_LAYOUT_MODE: - case IDC_CHECK_LAYOUT_MODE2: - case IDC_CHECK_CASE_MODE: - case IDC_CHECK_TWOWAY: - case IDC_CHECK_SYSTEMLAYOUT: - case IDC_CHECK_POPUP: - case IDC_CHECK_CLIPBOARD: - case IDC_CHECK_LAYOUT_SHIFT: - case IDC_CHECK_LAYOUT_ALT: - case IDC_CHECK_LAYOUT_CTRL: - case IDC_CHECK_LAYOUT_WIN: - case IDC_CHECK_LAYOUT2_SHIFT: - case IDC_CHECK_LAYOUT2_ALT: - case IDC_CHECK_LAYOUT2_CTRL: - case IDC_CHECK_LAYOUT2_WIN: - case IDC_CHECK_CASE_SHIFT: - case IDC_CHECK_CASE_ALT: - case IDC_CHECK_CASE_CTRL: - case IDC_CHECK_CASE_WIN: - case IDC_RADIO_IGNORECAPS: - case IDC_RADIO_INVERTCAPS: - case IDC_RADIO_OFFCAPS: - - { - if ((HIWORD(wParam) == BN_CLICKED)) - SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); - break; - } - case IDC_COMBO_LANG: - { - if ((HIWORD(wParam) == CBN_SELCHANGE)) - { - MainDialogLock = TRUE; - ptszMemLay = ptszLayStrings[SendDlgItemMessage(hWnd, IDC_COMBO_LANG, CB_GETCURSEL, 0, 0)]; - SendDlgItemMessage(hWnd, IDC_EDIT_SET, WM_SETTEXT, 0, (LPARAM)ptszMemLay); - MainDialogLock = FALSE; - } - break; - } - case IDC_EDIT_SET: - { - if ((HIWORD(wParam) == EN_CHANGE) && (!MainDialogLock)) - SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); - break; - } + switch (LOWORD(wParam)) { + case IDC_HOTKEY_LAYOUT: + case IDC_HOTKEY_LAYOUT2: + case IDC_HOTKEY_CASE: + if ((HIWORD(wParam) == EN_CHANGE)) + SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); + break; - case IDC_BUTTON_DEFAULT: - { - if ((HIWORD(wParam) == BN_CLICKED )) - { - ptszGenLay = GenerateLayoutString(hklLayouts[SendDlgItemMessage(hWnd, IDC_COMBO_LANG, CB_GETCURSEL, 0, 0)]); - SendDlgItemMessage(hWnd, IDC_EDIT_SET, WM_SETTEXT, 0, (LPARAM)ptszGenLay); - mir_free(ptszGenLay); - SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); - } - break; - } + case IDC_CHECK_DETECT: + case IDC_CHECK_LAYOUT_MODE: + case IDC_CHECK_LAYOUT_MODE2: + case IDC_CHECK_CASE_MODE: + case IDC_CHECK_TWOWAY: + case IDC_CHECK_SYSTEMLAYOUT: + case IDC_CHECK_POPUP: + case IDC_CHECK_CLIPBOARD: + case IDC_CHECK_LAYOUT_SHIFT: + case IDC_CHECK_LAYOUT_ALT: + case IDC_CHECK_LAYOUT_CTRL: + case IDC_CHECK_LAYOUT_WIN: + case IDC_CHECK_LAYOUT2_SHIFT: + case IDC_CHECK_LAYOUT2_ALT: + case IDC_CHECK_LAYOUT2_CTRL: + case IDC_CHECK_LAYOUT2_WIN: + case IDC_CHECK_CASE_SHIFT: + case IDC_CHECK_CASE_ALT: + case IDC_CHECK_CASE_CTRL: + case IDC_CHECK_CASE_WIN: + case IDC_RADIO_IGNORECAPS: + case IDC_RADIO_INVERTCAPS: + case IDC_RADIO_OFFCAPS: + if ((HIWORD(wParam) == BN_CLICKED)) + SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); + break; - } - break; - } - case WM_NOTIFY: - { - switch(((LPNMHDR)lParam)->idFrom) - { - case 0: - { - switch (((LPNMHDR)lParam)->code) - { - case PSN_APPLY: - { - // Прочитаем хоткеи - moOptions.dwHotkey_Layout = SendDlgItemMessage(hWnd, IDC_HOTKEY_LAYOUT, HKM_GETHOTKEY, 0, 0); - moOptions.dwHotkey_Layout2 = SendDlgItemMessage(hWnd, IDC_HOTKEY_LAYOUT2, HKM_GETHOTKEY, 0, 0); - moOptions.dwHotkey_Case = SendDlgItemMessage(hWnd, IDC_HOTKEY_CASE, HKM_GETHOTKEY, 0, 0); - - //Допишем к символам управляющие клавиши - if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_SHIFT, BM_GETCHECK, 0, 0)) - moOptions.dwHotkey_Layout |= 0x00000100; - if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_CTRL, BM_GETCHECK, 0, 0)) - moOptions.dwHotkey_Layout |= 0x00000200; - if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_ALT, BM_GETCHECK, 0, 0)) - moOptions.dwHotkey_Layout |= 0x00000400; - if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_WIN, BM_GETCHECK, 0, 0)) - moOptions.dwHotkey_Layout |= 0x00000800; - - if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_SHIFT, BM_GETCHECK, 0, 0)) - moOptions.dwHotkey_Layout2 |= 0x00000100; - if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_CTRL, BM_GETCHECK, 0, 0)) - moOptions.dwHotkey_Layout2 |= 0x00000200; - if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_ALT, BM_GETCHECK, 0, 0)) - moOptions.dwHotkey_Layout2 |= 0x00000400; - if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_WIN, BM_GETCHECK, 0, 0)) - moOptions.dwHotkey_Layout2 |= 0x00000800; - - if (SendDlgItemMessage(hWnd, IDC_CHECK_CASE_SHIFT, BM_GETCHECK, 0, 0)) - moOptions.dwHotkey_Case |= 0x00000100; - if (SendDlgItemMessage(hWnd, IDC_CHECK_CASE_CTRL, BM_GETCHECK, 0, 0)) - moOptions.dwHotkey_Case |= 0x00000200; - if (SendDlgItemMessage(hWnd, IDC_CHECK_CASE_ALT, BM_GETCHECK, 0, 0)) - moOptions.dwHotkey_Case |= 0x00000400; - if (SendDlgItemMessage(hWnd, IDC_CHECK_CASE_WIN, BM_GETCHECK, 0, 0)) - moOptions.dwHotkey_Case |= 0x00000800; - - - //Прочие опции - moOptions.CurrentWordLayout = SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_MODE, BM_GETCHECK, 0, 0); - moOptions.CurrentWordLayout2 = SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_MODE2, BM_GETCHECK, 0, 0); - moOptions.CurrentWordCase = SendDlgItemMessage(hWnd, IDC_CHECK_CASE_MODE, BM_GETCHECK, 0, 0); - moOptions.TwoWay = SendDlgItemMessage(hWnd, IDC_CHECK_TWOWAY, BM_GETCHECK, 0, 0); - moOptions.ChangeSystemLayout = SendDlgItemMessage(hWnd, IDC_CHECK_SYSTEMLAYOUT, BM_GETCHECK, 0, 0); - moOptions.CopyToClipboard = SendDlgItemMessage(hWnd, IDC_CHECK_CLIPBOARD, BM_GETCHECK, 0, 0); - moOptions.ShowPopup = SendDlgItemMessage(hWnd, IDC_CHECK_POPUP, BM_GETCHECK, 0, 0); - - // CapsLock - if (SendDlgItemMessage(hWnd, IDC_RADIO_OFFCAPS, BM_GETCHECK, 0, 0) == BST_CHECKED) - moOptions.bCaseOperations = 1; - else if (SendDlgItemMessage(hWnd, IDC_RADIO_IGNORECAPS, BM_GETCHECK, 0, 0) == BST_CHECKED) - moOptions.bCaseOperations = 2; - else moOptions.bCaseOperations = 0; - - WriteMainOptions(); - - ptszFormLay = (LPTSTR)mir_alloc(MaxTextSize*sizeof(TCHAR)); - SendDlgItemMessage(hWnd, IDC_EDIT_SET, WM_GETTEXT, (WPARAM) MaxTextSize, (LPARAM)ptszFormLay); - i = SendDlgItemMessage(hWnd, IDC_COMBO_LANG, CB_GETCURSEL, 0, 0); - ptszMemLay = ptszLayStrings[i]; - if(_tcscmp(ptszMemLay, ptszFormLay) != 0) - { - _tcscpy(ptszMemLay, ptszFormLay); - ptszGenLay = GenerateLayoutString(hklLayouts[i]); - pszNameLay = GetNameOfLayout(hklLayouts[i]); - - if(_tcscmp(ptszMemLay, ptszGenLay) != 0) - DBWriteContactSettingTString(NULL, ModuleName, pszNameLay, ptszMemLay); - else - DBDeleteContactSetting(NULL, ModuleName, pszNameLay); - - mir_free(pszNameLay); - mir_free(ptszGenLay); - } - mir_free(ptszFormLay); - - ptszMemLay = ptszLayStrings[0]; - SendDlgItemMessage(hWnd, IDC_EDIT_EXAMPLE, WM_SETTEXT, 0, (LPARAM)ptszMemLay); - - UnhookWindowsHookEx(kbHook_All); - kbHook_All = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)Keyboard_Hook, NULL, GetCurrentThreadId()); - - break; - } - } - break; - } + case IDC_COMBO_LANG: + if ((HIWORD(wParam) == CBN_SELCHANGE)) { + MainDialogLock = TRUE; + ptszMemLay = ptszLayStrings[SendDlgItemMessage(hWnd, IDC_COMBO_LANG, CB_GETCURSEL, 0, 0)]; + SendDlgItemMessage(hWnd, IDC_EDIT_SET, WM_SETTEXT, 0, (LPARAM)ptszMemLay); + MainDialogLock = FALSE; } break; - } - case WM_DESTROY: - { + case IDC_EDIT_SET: + if ((HIWORD(wParam) == EN_CHANGE) && (!MainDialogLock)) + SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); + break; + + case IDC_BUTTON_DEFAULT: + if ((HIWORD(wParam) == BN_CLICKED )) { + ptszGenLay = GenerateLayoutString(hklLayouts[SendDlgItemMessage(hWnd, IDC_COMBO_LANG, CB_GETCURSEL, 0, 0)]); + SendDlgItemMessage(hWnd, IDC_EDIT_SET, WM_SETTEXT, 0, (LPARAM)ptszGenLay); + mir_free(ptszGenLay); + SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); + } break; } + break; + case WM_NOTIFY: + switch(((LPNMHDR)lParam)->idFrom) { + case 0: + switch (((LPNMHDR)lParam)->code) { + case PSN_APPLY: + // Прочитаем хоткеи + moOptions.dwHotkey_Layout = SendDlgItemMessage(hWnd, IDC_HOTKEY_LAYOUT, HKM_GETHOTKEY, 0, 0); + moOptions.dwHotkey_Layout2 = SendDlgItemMessage(hWnd, IDC_HOTKEY_LAYOUT2, HKM_GETHOTKEY, 0, 0); + moOptions.dwHotkey_Case = SendDlgItemMessage(hWnd, IDC_HOTKEY_CASE, HKM_GETHOTKEY, 0, 0); + + //Допишем к символам управляющие клавиши + if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_SHIFT, BM_GETCHECK, 0, 0)) + moOptions.dwHotkey_Layout |= 0x00000100; + if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_CTRL, BM_GETCHECK, 0, 0)) + moOptions.dwHotkey_Layout |= 0x00000200; + if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_ALT, BM_GETCHECK, 0, 0)) + moOptions.dwHotkey_Layout |= 0x00000400; + if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_WIN, BM_GETCHECK, 0, 0)) + moOptions.dwHotkey_Layout |= 0x00000800; + + if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_SHIFT, BM_GETCHECK, 0, 0)) + moOptions.dwHotkey_Layout2 |= 0x00000100; + if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_CTRL, BM_GETCHECK, 0, 0)) + moOptions.dwHotkey_Layout2 |= 0x00000200; + if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_ALT, BM_GETCHECK, 0, 0)) + moOptions.dwHotkey_Layout2 |= 0x00000400; + if (SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT2_WIN, BM_GETCHECK, 0, 0)) + moOptions.dwHotkey_Layout2 |= 0x00000800; + + if (SendDlgItemMessage(hWnd, IDC_CHECK_CASE_SHIFT, BM_GETCHECK, 0, 0)) + moOptions.dwHotkey_Case |= 0x00000100; + if (SendDlgItemMessage(hWnd, IDC_CHECK_CASE_CTRL, BM_GETCHECK, 0, 0)) + moOptions.dwHotkey_Case |= 0x00000200; + if (SendDlgItemMessage(hWnd, IDC_CHECK_CASE_ALT, BM_GETCHECK, 0, 0)) + moOptions.dwHotkey_Case |= 0x00000400; + if (SendDlgItemMessage(hWnd, IDC_CHECK_CASE_WIN, BM_GETCHECK, 0, 0)) + moOptions.dwHotkey_Case |= 0x00000800; + + + //Прочие опции + moOptions.CurrentWordLayout = SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_MODE, BM_GETCHECK, 0, 0); + moOptions.CurrentWordLayout2 = SendDlgItemMessage(hWnd, IDC_CHECK_LAYOUT_MODE2, BM_GETCHECK, 0, 0); + moOptions.CurrentWordCase = SendDlgItemMessage(hWnd, IDC_CHECK_CASE_MODE, BM_GETCHECK, 0, 0); + moOptions.TwoWay = SendDlgItemMessage(hWnd, IDC_CHECK_TWOWAY, BM_GETCHECK, 0, 0); + moOptions.ChangeSystemLayout = SendDlgItemMessage(hWnd, IDC_CHECK_SYSTEMLAYOUT, BM_GETCHECK, 0, 0); + moOptions.CopyToClipboard = SendDlgItemMessage(hWnd, IDC_CHECK_CLIPBOARD, BM_GETCHECK, 0, 0); + moOptions.ShowPopup = SendDlgItemMessage(hWnd, IDC_CHECK_POPUP, BM_GETCHECK, 0, 0); + + // CapsLock + if (SendDlgItemMessage(hWnd, IDC_RADIO_OFFCAPS, BM_GETCHECK, 0, 0) == BST_CHECKED) + moOptions.bCaseOperations = 1; + else if (SendDlgItemMessage(hWnd, IDC_RADIO_IGNORECAPS, BM_GETCHECK, 0, 0) == BST_CHECKED) + moOptions.bCaseOperations = 2; + else moOptions.bCaseOperations = 0; + + WriteMainOptions(); + + ptszFormLay = (LPTSTR)mir_alloc(MaxTextSize*sizeof(TCHAR)); + SendDlgItemMessage(hWnd, IDC_EDIT_SET, WM_GETTEXT, (WPARAM) MaxTextSize, (LPARAM)ptszFormLay); + i = SendDlgItemMessage(hWnd, IDC_COMBO_LANG, CB_GETCURSEL, 0, 0); + ptszMemLay = ptszLayStrings[i]; + if(_tcscmp(ptszMemLay, ptszFormLay) != 0) { + _tcscpy(ptszMemLay, ptszFormLay); + ptszGenLay = GenerateLayoutString(hklLayouts[i]); + pszNameLay = GetNameOfLayout(hklLayouts[i]); + + if(_tcscmp(ptszMemLay, ptszGenLay) != 0) + DBWriteContactSettingTString(NULL, ModuleName, pszNameLay, ptszMemLay); + else + DBDeleteContactSetting(NULL, ModuleName, pszNameLay); + + mir_free(pszNameLay); + mir_free(ptszGenLay); + } + mir_free(ptszFormLay); + + ptszMemLay = ptszLayStrings[0]; + SendDlgItemMessage(hWnd, IDC_EDIT_EXAMPLE, WM_SETTEXT, 0, (LPARAM)ptszMemLay); + + UnhookWindowsHookEx(kbHook_All); + kbHook_All = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)Keyboard_Hook, NULL, GetCurrentThreadId()); + } + } + break; } return FALSE; } - INT_PTR CALLBACK DlgPopupsProcOptions(HWND hWnd, UINT uiMessage, WPARAM wParam, LPARAM lParam) { - POPUPDATAT_V2 pdtData; static BOOL PopupDialogLock = FALSE; LPTSTR ptszPopupPreviewText; DWORD dwTimeOut; - switch (uiMessage) - { + switch (uiMessage) { case WM_INITDIALOG: - { - PopupDialogLock = TRUE; - TranslateDialogDefault(hWnd); - poOptionsTemp = poOptions; - - //Цвета - SendDlgItemMessage(hWnd, IDC_CUSTOM_BACK, CPM_SETCOLOUR, 0, poOptionsTemp.crBackColour); - SendDlgItemMessage(hWnd, IDC_CUSTOM_TEXT, CPM_SETCOLOUR, 0, poOptionsTemp.crTextColour); - CheckDlgButton(hWnd, IDC_RADIO_COLOURS_POPUP, poOptionsTemp.bColourType == PPC_POPUP); - CheckDlgButton(hWnd, IDC_RADIO_COLOURS_WINDOWS, poOptionsTemp.bColourType == PPC_WINDOWS); - CheckDlgButton(hWnd, IDC_RADIO_COLOURS_CUSTOM, poOptionsTemp.bColourType == PPC_CUSTOM); - EnableWindow(GetDlgItem(hWnd, IDC_CUSTOM_BACK), poOptionsTemp.bColourType == PPC_CUSTOM); - EnableWindow(GetDlgItem(hWnd, IDC_CUSTOM_TEXT), poOptionsTemp.bColourType == PPC_CUSTOM); - - // Таймаут - CheckDlgButton(hWnd, IDC_RADIO_TIMEOUT_POPUP, poOptionsTemp.bTimeoutType == PPT_POPUP); - CheckDlgButton(hWnd, IDC_RADIO_TIMEOUT_PERMANENT, poOptionsTemp.bTimeoutType == PPT_PERMANENT); - CheckDlgButton(hWnd, IDC_RADIO_TIMEOUT_CUSTOM, poOptionsTemp.bTimeoutType == PPT_CUSTOM); - SetDlgItemInt(hWnd, IDC_EDIT_TIMEOUT, poOptionsTemp.bTimeout, FALSE); - EnableWindow(GetDlgItem(hWnd, IDC_EDIT_TIMEOUT), poOptionsTemp.bTimeoutType == PPT_CUSTOM); - - // Клик левой - CheckDlgButton(hWnd, IDC_RADIO_LEFT_CLIPBOARD, poOptionsTemp.bLeftClick == 0); - CheckDlgButton(hWnd, IDC_RADIO_LEFT_DISMISS, poOptionsTemp.bLeftClick == 1); - // Клик правой - CheckDlgButton(hWnd, IDC_RADIO_RIGHT_CLIPBOARD, poOptionsTemp.bRightClick == 0); - CheckDlgButton(hWnd, IDC_RADIO_RIGHT_DISMISS, poOptionsTemp.bRightClick == 1); - PopupDialogLock = FALSE; - return TRUE; - } - + PopupDialogLock = TRUE; + TranslateDialogDefault(hWnd); + poOptionsTemp = poOptions; + + //Цвета + SendDlgItemMessage(hWnd, IDC_CUSTOM_BACK, CPM_SETCOLOUR, 0, poOptionsTemp.crBackColour); + SendDlgItemMessage(hWnd, IDC_CUSTOM_TEXT, CPM_SETCOLOUR, 0, poOptionsTemp.crTextColour); + CheckDlgButton(hWnd, IDC_RADIO_COLOURS_POPUP, poOptionsTemp.bColourType == PPC_POPUP); + CheckDlgButton(hWnd, IDC_RADIO_COLOURS_WINDOWS, poOptionsTemp.bColourType == PPC_WINDOWS); + CheckDlgButton(hWnd, IDC_RADIO_COLOURS_CUSTOM, poOptionsTemp.bColourType == PPC_CUSTOM); + EnableWindow(GetDlgItem(hWnd, IDC_CUSTOM_BACK), poOptionsTemp.bColourType == PPC_CUSTOM); + EnableWindow(GetDlgItem(hWnd, IDC_CUSTOM_TEXT), poOptionsTemp.bColourType == PPC_CUSTOM); + + // Таймаут + CheckDlgButton(hWnd, IDC_RADIO_TIMEOUT_POPUP, poOptionsTemp.bTimeoutType == PPT_POPUP); + CheckDlgButton(hWnd, IDC_RADIO_TIMEOUT_PERMANENT, poOptionsTemp.bTimeoutType == PPT_PERMANENT); + CheckDlgButton(hWnd, IDC_RADIO_TIMEOUT_CUSTOM, poOptionsTemp.bTimeoutType == PPT_CUSTOM); + SetDlgItemInt(hWnd, IDC_EDIT_TIMEOUT, poOptionsTemp.bTimeout, FALSE); + EnableWindow(GetDlgItem(hWnd, IDC_EDIT_TIMEOUT), poOptionsTemp.bTimeoutType == PPT_CUSTOM); + + // Клик левой + CheckDlgButton(hWnd, IDC_RADIO_LEFT_CLIPBOARD, poOptionsTemp.bLeftClick == 0); + CheckDlgButton(hWnd, IDC_RADIO_LEFT_DISMISS, poOptionsTemp.bLeftClick == 1); + // Клик правой + CheckDlgButton(hWnd, IDC_RADIO_RIGHT_CLIPBOARD, poOptionsTemp.bRightClick == 0); + CheckDlgButton(hWnd, IDC_RADIO_RIGHT_DISMISS, poOptionsTemp.bRightClick == 1); + PopupDialogLock = FALSE; + return TRUE; + case WM_COMMAND: - { - switch (LOWORD(wParam)) - { - case IDC_RADIO_COLOURS_POPUP: - case IDC_RADIO_COLOURS_WINDOWS: - case IDC_RADIO_COLOURS_CUSTOM: - { - if ((HIWORD(wParam) == BN_CLICKED)) - { - if (IsDlgButtonChecked(hWnd, IDC_RADIO_COLOURS_POPUP)) - poOptionsTemp.bColourType = PPC_POPUP; - else if (IsDlgButtonChecked(hWnd, IDC_RADIO_COLOURS_WINDOWS)) - poOptionsTemp.bColourType = PPC_WINDOWS; - else if (IsDlgButtonChecked(hWnd, IDC_RADIO_COLOURS_CUSTOM)) - poOptionsTemp.bColourType = PPC_CUSTOM; - - EnableWindow(GetDlgItem(hWnd, IDC_CUSTOM_BACK), poOptionsTemp.bColourType == PPC_CUSTOM); - EnableWindow(GetDlgItem(hWnd, IDC_CUSTOM_TEXT), poOptionsTemp.bColourType == PPC_CUSTOM); - SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); - } - } + switch (LOWORD(wParam)) { + case IDC_RADIO_COLOURS_POPUP: + case IDC_RADIO_COLOURS_WINDOWS: + case IDC_RADIO_COLOURS_CUSTOM: + if ((HIWORD(wParam) == BN_CLICKED)) { + if (IsDlgButtonChecked(hWnd, IDC_RADIO_COLOURS_POPUP)) + poOptionsTemp.bColourType = PPC_POPUP; + else if (IsDlgButtonChecked(hWnd, IDC_RADIO_COLOURS_WINDOWS)) + poOptionsTemp.bColourType = PPC_WINDOWS; + else if (IsDlgButtonChecked(hWnd, IDC_RADIO_COLOURS_CUSTOM)) + poOptionsTemp.bColourType = PPC_CUSTOM; + + EnableWindow(GetDlgItem(hWnd, IDC_CUSTOM_BACK), poOptionsTemp.bColourType == PPC_CUSTOM); + EnableWindow(GetDlgItem(hWnd, IDC_CUSTOM_TEXT), poOptionsTemp.bColourType == PPC_CUSTOM); + SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); + } + break; + + case IDC_RADIO_TIMEOUT_POPUP: + case IDC_RADIO_TIMEOUT_PERMANENT: + case IDC_RADIO_TIMEOUT_CUSTOM: + if ((HIWORD(wParam) == BN_CLICKED)) { + if (IsDlgButtonChecked(hWnd, IDC_RADIO_TIMEOUT_POPUP)) + poOptionsTemp.bTimeoutType = PPT_POPUP; + else if (IsDlgButtonChecked(hWnd, IDC_RADIO_TIMEOUT_PERMANENT)) + poOptionsTemp.bTimeoutType = PPT_PERMANENT; + if (IsDlgButtonChecked(hWnd, IDC_RADIO_TIMEOUT_CUSTOM)) + poOptionsTemp.bTimeoutType = PPT_CUSTOM; + + EnableWindow(GetDlgItem(hWnd, IDC_EDIT_TIMEOUT), poOptionsTemp.bTimeoutType == PPT_CUSTOM); + SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); + } + break; + + case IDC_RADIO_LEFT_CLIPBOARD: + case IDC_RADIO_LEFT_DISMISS: + if ((HIWORD(wParam) == BN_CLICKED)) { + if (IsDlgButtonChecked(hWnd, IDC_RADIO_LEFT_CLIPBOARD)) + poOptionsTemp.bLeftClick = 0; + else if (IsDlgButtonChecked(hWnd, IDC_RADIO_LEFT_DISMISS)) + poOptionsTemp.bLeftClick = 1; + SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); + } + break; + + case IDC_RADIO_RIGHT_CLIPBOARD: + case IDC_RADIO_RIGHT_DISMISS: + if ((HIWORD(wParam) == BN_CLICKED)) { + if (IsDlgButtonChecked(hWnd, IDC_RADIO_RIGHT_CLIPBOARD)) + poOptionsTemp.bRightClick = 0; + else if (IsDlgButtonChecked(hWnd, IDC_RADIO_RIGHT_DISMISS)) + poOptionsTemp.bRightClick = 1; + SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); + } + break; + + case IDC_CUSTOM_BACK: + case IDC_CUSTOM_TEXT: + if (HIWORD(wParam) == CBN_SELCHANGE) { + poOptionsTemp.crBackColour = SendDlgItemMessage(hWnd, IDC_CUSTOM_BACK, CPM_GETCOLOUR, 0, 0); + poOptionsTemp.crTextColour = SendDlgItemMessage(hWnd, IDC_CUSTOM_TEXT, CPM_GETCOLOUR, 0, 0); + SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); + } + break; + + case IDC_EDIT_TIMEOUT: + if (HIWORD(wParam) == EN_CHANGE) { + dwTimeOut = GetDlgItemInt(hWnd, IDC_EDIT_TIMEOUT, NULL, FALSE); + if (dwTimeOut>255) + poOptionsTemp.bTimeout = 255; + else + poOptionsTemp.bTimeout = dwTimeOut; + + if (!PopupDialogLock) + SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); + } + break; - - case IDC_RADIO_TIMEOUT_POPUP: - case IDC_RADIO_TIMEOUT_PERMANENT: - case IDC_RADIO_TIMEOUT_CUSTOM: - { - if ((HIWORD(wParam) == BN_CLICKED)) - { - if (IsDlgButtonChecked(hWnd, IDC_RADIO_TIMEOUT_POPUP)) - poOptionsTemp.bTimeoutType = PPT_POPUP; - else if (IsDlgButtonChecked(hWnd, IDC_RADIO_TIMEOUT_PERMANENT)) - poOptionsTemp.bTimeoutType = PPT_PERMANENT; - if (IsDlgButtonChecked(hWnd, IDC_RADIO_TIMEOUT_CUSTOM)) - poOptionsTemp.bTimeoutType = PPT_CUSTOM; - - EnableWindow(GetDlgItem(hWnd, IDC_EDIT_TIMEOUT), poOptionsTemp.bTimeoutType == PPT_CUSTOM); - SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); - } + case IDC_BUTTON_PREVIEW: + if ((HIWORD(wParam) == BN_CLICKED )) { + ptszPopupPreviewText = (LPTSTR)mir_alloc(MaxTextSize*sizeof(TCHAR)); + + POPUPDATAT_V2 pdtData = { 0 }; + pdtData.cbSize = sizeof(POPUPDATAT_V2); + _tcsncpy(pdtData.lptzContactName, TranslateT(ModuleName), MAX_CONTACTNAME); + _tcsncpy(pdtData.lptzText, _T("Ghbdtn? rfr ltkf&"), MAX_SECONDLINE); + + switch(poOptionsTemp.bColourType) { + case PPC_POPUP: + pdtData.colorBack = pdtData.colorText = 0; break; - } - - case IDC_RADIO_LEFT_CLIPBOARD: - case IDC_RADIO_LEFT_DISMISS: - { - if ((HIWORD(wParam) == BN_CLICKED)) - { - if (IsDlgButtonChecked(hWnd, IDC_RADIO_LEFT_CLIPBOARD)) - poOptionsTemp.bLeftClick = 0; - else if (IsDlgButtonChecked(hWnd, IDC_RADIO_LEFT_DISMISS)) - poOptionsTemp.bLeftClick = 1; - SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); - } + case PPC_WINDOWS: + pdtData.colorBack = GetSysColor(COLOR_BTNFACE); + pdtData.colorText = GetSysColor(COLOR_WINDOWTEXT); break; - } - - case IDC_RADIO_RIGHT_CLIPBOARD: - case IDC_RADIO_RIGHT_DISMISS: - { - if ((HIWORD(wParam) == BN_CLICKED)) - { - if (IsDlgButtonChecked(hWnd, IDC_RADIO_RIGHT_CLIPBOARD)) - poOptionsTemp.bRightClick = 0; - else if (IsDlgButtonChecked(hWnd, IDC_RADIO_RIGHT_DISMISS)) - poOptionsTemp.bRightClick = 1; - SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); - } + case PPC_CUSTOM: + pdtData.colorBack = poOptionsTemp.crBackColour; + pdtData.colorText = poOptionsTemp.crTextColour; break; - } + } - case IDC_CUSTOM_BACK: - case IDC_CUSTOM_TEXT: - { - if (HIWORD(wParam) == CBN_SELCHANGE) - { - poOptionsTemp.crBackColour = SendDlgItemMessage(hWnd, IDC_CUSTOM_BACK, CPM_GETCOLOUR, 0, 0); - poOptionsTemp.crTextColour = SendDlgItemMessage(hWnd, IDC_CUSTOM_TEXT, CPM_GETCOLOUR, 0, 0); - SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); - } + switch(poOptionsTemp.bTimeoutType) { + case PPT_POPUP: + pdtData.iSeconds = 0; break; - } - case IDC_EDIT_TIMEOUT: - { - if (HIWORD(wParam) == EN_CHANGE) - { - dwTimeOut = GetDlgItemInt(hWnd, IDC_EDIT_TIMEOUT, NULL, FALSE); - if (dwTimeOut>255) - poOptionsTemp.bTimeout = 255; - else - poOptionsTemp.bTimeout = dwTimeOut; - - if (!PopupDialogLock) - SendMessage(GetParent(hWnd), PSM_CHANGED, 0, 0); - } + case PPT_PERMANENT: + pdtData.iSeconds = -1; break; - } - - case IDC_BUTTON_PREVIEW: - { - if ((HIWORD(wParam) == BN_CLICKED )) - { - ptszPopupPreviewText = (LPTSTR)mir_alloc(MaxTextSize*sizeof(TCHAR)); - - pdtData.cbSize = sizeof(POPUPDATAT_V2); - ZeroMemory(&pdtData, sizeof(pdtData)); - _tcsncpy(pdtData.lptzContactName, TranslateT(ModuleName), MAX_CONTACTNAME); - _tcsncpy(pdtData.lptzText, _T("Ghbdtn? rfr ltkf&"), MAX_SECONDLINE); - - switch(poOptionsTemp.bColourType) - { - case PPC_POPUP: - pdtData.colorBack = pdtData.colorText = 0; - break; - case PPC_WINDOWS: - pdtData.colorBack = GetSysColor(COLOR_BTNFACE); - pdtData.colorText = GetSysColor(COLOR_WINDOWTEXT); - break; - case PPC_CUSTOM: - pdtData.colorBack = poOptionsTemp.crBackColour; - pdtData.colorText = poOptionsTemp.crTextColour; - break; - default: - break; - } - switch(poOptionsTemp.bTimeoutType) - { - case PPT_POPUP: - pdtData.iSeconds = 0; - break; - case PPT_PERMANENT: - pdtData.iSeconds = -1; - break; - case PPC_CUSTOM: - pdtData.iSeconds = poOptionsTemp.bTimeout; - break; - } - _tcscpy(ptszPopupPreviewText, pdtData.lptzText); - pdtData.PluginData = ptszPopupPreviewText; - pdtData.lchIcon = hPopupIcon; - poOptions.paActions[0].lchIcon = hCopyIcon; - pdtData.lpActions = poOptions.paActions; - pdtData.actionCount = 1; - pdtData.PluginWindowProc = (WNDPROC)CKLPopupDlgProc; - - if (CallService(MS_POPUP_ADDPOPUPT, (WPARAM) &pdtData, APF_NEWDATA)<0) - mir_free(ptszPopupPreviewText); - } + case PPC_CUSTOM: + pdtData.iSeconds = poOptionsTemp.bTimeout; break; } - - default: - break; - } - break; -} - - case WM_NOTIFY: - { - switch(((LPNMHDR)lParam)->idFrom) - { - case 0: - { - switch (((LPNMHDR)lParam)->code) - { - case PSN_APPLY: - { - poOptions = poOptionsTemp; - WritePopupOptions(); - break; - } - } - break; + _tcscpy(ptszPopupPreviewText, pdtData.lptzText); + pdtData.PluginData = ptszPopupPreviewText; + pdtData.lchIcon = hPopupIcon; + poOptions.paActions[0].lchIcon = hCopyIcon; + pdtData.lpActions = poOptions.paActions; + pdtData.actionCount = 1; + pdtData.PluginWindowProc = (WNDPROC)CKLPopupDlgProc; + + if ( CallService(MS_POPUP_ADDPOPUPT, (WPARAM) &pdtData, APF_NEWDATA) < 0) + mir_free(ptszPopupPreviewText); } + break; } break; - } - case WM_DESTROY: - { + case WM_NOTIFY: + switch(((LPNMHDR)lParam)->idFrom) { + case 0: + switch (((LPNMHDR)lParam)->code) { + case PSN_APPLY: + poOptions = poOptionsTemp; + WritePopupOptions(); + } + } break; } - - } return FALSE; } - diff --git a/plugins/ChangeKeyboardLayout/src/text_operations.cpp b/plugins/ChangeKeyboardLayout/src/text_operations.cpp index f35610625a..a7c00aa4ea 100644 --- a/plugins/ChangeKeyboardLayout/src/text_operations.cpp +++ b/plugins/ChangeKeyboardLayout/src/text_operations.cpp @@ -268,8 +268,6 @@ int ChangeLayout(HWND hTextWnd, BYTE TextOperation, BOOL CurrentWord) EDITSTREAM esStream = {0}; struct EditStreamData esdData; - POPUPDATAT_V2 pdtData; - esStream.dwCookie = (DWORD)&esdData; esStream.pfnCallback = EditStreamOutRtf; @@ -524,17 +522,16 @@ int ChangeLayout(HWND hTextWnd, BYTE TextOperation, BOOL CurrentWord) if (moOptions.CopyToClipboard) CopyTextToClipboard(ptszMBox); //-------------------------------Покажем попапы------------------------------------------ - if (moOptions.ShowPopup) - { + if (moOptions.ShowPopup) { ptszPopupText = (LPTSTR)mir_alloc(MaxTextSize*sizeof(TCHAR)); _tcscpy(ptszPopupText, ptszMBox); + POPUPDATAT_V2 pdtData = { 0 }; pdtData.cbSize = sizeof(POPUPDATAT_V2); - ZeroMemory(&pdtData, sizeof(pdtData)); _tcsncpy(pdtData.lptzContactName, TranslateT(ModuleName), MAX_CONTACTNAME); _tcsncpy(pdtData.lptzText, ptszPopupText, MAX_SECONDLINE); - switch(poOptions.bColourType) - { + + switch(poOptions.bColourType) { case PPC_POPUP: pdtData.colorBack = pdtData.colorText = 0; break; @@ -546,11 +543,9 @@ int ChangeLayout(HWND hTextWnd, BYTE TextOperation, BOOL CurrentWord) pdtData.colorBack = poOptions.crBackColour; pdtData.colorText = poOptions.crTextColour; break; - default: - break; } - switch(poOptions.bTimeoutType) - { + + switch(poOptions.bTimeoutType) { case PPT_POPUP: pdtData.iSeconds = 0; break; @@ -562,22 +557,19 @@ int ChangeLayout(HWND hTextWnd, BYTE TextOperation, BOOL CurrentWord) break; } pdtData.PluginData = ptszPopupText; + pdtData.PluginWindowProc = (WNDPROC)CKLPopupDlgProc; pdtData.lchIcon = hPopupIcon; poOptions.paActions[0].lchIcon = hCopyIcon; pdtData.lpActions = poOptions.paActions; pdtData.actionCount = 1; - - pdtData.PluginWindowProc = (WNDPROC)CKLPopupDlgProc; - if (CallService(MS_POPUP_ADDPOPUPT, (WPARAM) &pdtData, APF_NEWDATA)<0) - { + if ( CallService(MS_POPUP_ADDPOPUPT, (WPARAM) &pdtData, APF_NEWDATA) < 0) { mir_free(ptszPopupText); MessageBox(NULL, ptszMBox, TranslateT(ModuleName), MB_ICONINFORMATION); } } mir_free(ptszMBox); - } //------------------Редактируемые поля ---------------------------- else diff --git a/plugins/PackUpdater/Src/Notifications.cpp b/plugins/PackUpdater/Src/Notifications.cpp index ac9ccdce3d..20ba80c0d7 100644 --- a/plugins/PackUpdater/Src/Notifications.cpp +++ b/plugins/PackUpdater/Src/Notifications.cpp @@ -24,88 +24,66 @@ INT UpdatesCount = 0; void PopupAction(HWND hWnd, BYTE action) { - switch (action) - { - case PCA_CLOSEPOPUP: - break; - case PCA_DONOTHING: - return; - }//end* switch + switch (action) { + case PCA_CLOSEPOPUP: + break; + case PCA_DONOTHING: + return; + } PUDeletePopUp(hWnd); } static INT_PTR CALLBACK PopupDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - switch (uMsg) - { - case UM_POPUPACTION: - { - if (HIWORD(wParam) == BN_CLICKED) - { - LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)PUGetPluginData(hDlg); - - if (pmpd) - { - switch (LOWORD(wParam)) - { - case IDYES: - { - if (IsWindow(pmpd->hDialog)) - EndDialog(pmpd->hDialog, LOWORD(wParam)); - PUDeletePopUp(hDlg); - break; - } - case IDNO: - { - if (IsWindow(pmpd->hDialog)) - EndDialog(pmpd->hDialog, LOWORD(wParam)); - PUDeletePopUp(hDlg); - break; - } - } + switch (uMsg) { + case UM_POPUPACTION: + if (HIWORD(wParam) == BN_CLICKED) { + LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)PUGetPluginData(hDlg); + if (pmpd) { + switch (LOWORD(wParam)) { + case IDYES: + if (IsWindow(pmpd->hDialog)) + EndDialog(pmpd->hDialog, LOWORD(wParam)); + PUDeletePopUp(hDlg); + break; + + case IDNO: + if (IsWindow(pmpd->hDialog)) + EndDialog(pmpd->hDialog, LOWORD(wParam)); + PUDeletePopUp(hDlg); + break; } } } break; - case UM_FREEPLUGINDATA: - { - LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)PUGetPluginData(hDlg); - if (pmpd > 0) - mir_free(pmpd); - return TRUE; //TRUE or FALSE is the same, it gets ignored. - } - break; - - default: - break; + case UM_FREEPLUGINDATA: + LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)PUGetPluginData(hDlg); + if (pmpd > 0) + mir_free(pmpd); + return TRUE; //TRUE or FALSE is the same, it gets ignored. } return DefWindowProc(hDlg, uMsg, wParam, lParam); } static INT_PTR CALLBACK PopupDlgProc2(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - switch (uMsg) - { - case WM_COMMAND: - { - PopupAction(hDlg, MyOptions.LeftClickAction); - break; - } - case WM_CONTEXTMENU: - { - PopupAction(hDlg, MyOptions.RightClickAction); - break; - } - case UM_FREEPLUGINDATA: - { - LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)PUGetPluginData(hDlg); - if (pmpd > 0) - mir_free(pmpd); - return TRUE; //TRUE or FALSE is the same, it gets ignored. - } + switch (uMsg) { + case WM_COMMAND: + PopupAction(hDlg, MyOptions.LeftClickAction); + break; + + case WM_CONTEXTMENU: + PopupAction(hDlg, MyOptions.RightClickAction); break; + + case UM_FREEPLUGINDATA: + LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)PUGetPluginData(hDlg); + if (pmpd > 0) + mir_free(pmpd); + return TRUE; //TRUE or FALSE is the same, it gets ignored. } + return DefWindowProc(hDlg, uMsg, wParam, lParam); } @@ -129,54 +107,45 @@ static VOID MakePopupAction(POPUPACTION &pa, INT id) VOID show_popup(HWND hDlg, LPCTSTR Title, LPCTSTR Text, int Number, int ActType) { - POPUPDATAT_V2 pd; - LPMSGPOPUPDATA pmpd; - pmpd = (LPMSGPOPUPDATA)mir_alloc(sizeof(MSGPOPUPDATA)); - if (pmpd) - { - ZeroMemory(&pd, sizeof(pd)); - pd.cbSize = sizeof(POPUPDATAT_V2); - pd.lchContact = NULL; //(HANDLE)wParam; - pd.lchIcon = LoadSkinnedIcon(PopupsList[Number].Icon); - lstrcpyn(pd.lptzText, Text, SIZEOF(pd.lptzText)); - lstrcpyn(pd.lptzContactName, Title, SIZEOF(pd.lptzContactName)); - switch (MyOptions.DefColors) - { - case byCOLOR_WINDOWS: - pd.colorBack = GetSysColor(COLOR_BTNFACE); - pd.colorText = GetSysColor(COLOR_WINDOWTEXT); - break; - case byCOLOR_OWN: - pd.colorBack = PopupsList[Number].colorBack; - pd.colorText = PopupsList[Number].colorText; - break; - case byCOLOR_POPUP: - pd.colorBack = pd.colorText = 0; - break; - }//end* switch - if (Number == 0 && ActType != 0) - pd.PluginWindowProc = (WNDPROC)PopupDlgProc; - else - pd.PluginWindowProc = (WNDPROC)PopupDlgProc2; - pd.PluginData = pmpd; - if (Number == 0) - pd.iSeconds = -1; - else - pd.iSeconds = MyOptions.Timeout; - pd.hNotification = NULL; - pd.lpActions = pmpd->pa; + LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)mir_alloc(sizeof(MSGPOPUPDATA)); + if (!pmpd) + return; + + POPUPDATAT_V2 pd = { 0 }; + pd.cbSize = sizeof(pd); + pd.lchContact = NULL; //(HANDLE)wParam; + pd.lchIcon = LoadSkinnedIcon(PopupsList[Number].Icon); + lstrcpyn(pd.lptzText, Text, SIZEOF(pd.lptzText)); + lstrcpyn(pd.lptzContactName, Title, SIZEOF(pd.lptzContactName)); + switch (MyOptions.DefColors) { + case byCOLOR_WINDOWS: + pd.colorBack = GetSysColor(COLOR_BTNFACE); + pd.colorText = GetSysColor(COLOR_WINDOWTEXT); + break; + case byCOLOR_OWN: + pd.colorBack = PopupsList[Number].colorBack; + pd.colorText = PopupsList[Number].colorText; + break; + case byCOLOR_POPUP: + pd.colorBack = pd.colorText = 0; + break; } + if (Number == 0 && ActType != 0) + pd.PluginWindowProc = (WNDPROC)PopupDlgProc; + else + pd.PluginWindowProc = (WNDPROC)PopupDlgProc2; + pd.PluginData = pmpd; + if (Number == 0) + pd.iSeconds = -1; + else + pd.iSeconds = MyOptions.Timeout; + pd.hNotification = NULL; + pd.lpActions = pmpd->pa; + pmpd->hDialog = hDlg; - switch (ActType) - { - case 0: - break; - case 1: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDYES); - MakePopupAction(pmpd->pa[pd.actionCount++], IDNO); - } - break; + if (ActType == 1) { + MakePopupAction(pmpd->pa[pd.actionCount++], IDYES); + MakePopupAction(pmpd->pa[pd.actionCount++], IDNO); } CallService(MS_POPUP_ADDPOPUPT, (WPARAM) &pd, APF_NEWDATA); @@ -184,28 +153,24 @@ VOID show_popup(HWND hDlg, LPCTSTR Title, LPCTSTR Text, int Number, int ActType) INT_PTR CALLBACK DlgDownload(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { - switch (message) - { + switch (message) { case WM_INITDIALOG: - SetWindowText(GetDlgItem(hDlg, IDC_LABEL), tszDialogMsg); - SetWindowLongPtr(GetDlgItem(hDlg, IDC_PB), GWL_STYLE, GetWindowLongPtr(GetDlgItem(hDlg, IDC_PB), GWL_STYLE) | PBS_MARQUEE); - SendMessage(GetDlgItem(hDlg, IDC_PB), PBM_SETMARQUEE, 1, 50); - return TRUE; - }//end* switch + SetWindowText(GetDlgItem(hDlg, IDC_LABEL), tszDialogMsg); + SetWindowLongPtr(GetDlgItem(hDlg, IDC_PB), GWL_STYLE, GetWindowLongPtr(GetDlgItem(hDlg, IDC_PB), GWL_STYLE) | PBS_MARQUEE); + SendMessage(GetDlgItem(hDlg, IDC_PB), PBM_SETMARQUEE, 1, 50); + return TRUE; + } return FALSE; } INT_PTR CALLBACK DlgDownloadPop(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - switch (uMsg) - { + switch (uMsg) { case WM_INITDIALOG: - { - Number = 3; - show_popup(hDlg, Title, Text, Number, 0); - return TRUE; - } // end* WM_INITDIALOG: - } // end* switch (uMsg) + Number = 3; + show_popup(hDlg, Title, Text, Number, 0); + return TRUE; + } return FALSE; } @@ -227,12 +192,10 @@ static void __stdcall DestroyDownloadDialog(void*) void DlgDownloadProc() { CallFunctionAsync(CreateDownloadDialog, 0); - if (!DownloadFile(pFileUrl->tszDownloadURL, pFileUrl->tszDiskPath)) - { + if (!DownloadFile(pFileUrl->tszDownloadURL, pFileUrl->tszDiskPath)) { Title = TranslateT("Pack Updater"); Text = TranslateT("An error occured while downloading the update."); - if ( ServiceExists(MS_POPUP_ADDPOPUP) && DBGetContactSettingByte(NULL, "PopUp", "ModuleIsEnabled", 1) && DBGetContactSettingByte(NULL, MODNAME, "Popups1", DEFAULT_POPUP_ENABLED)) - { + if ( ServiceExists(MS_POPUP_ADDPOPUP) && DBGetContactSettingByte(NULL, "PopUp", "ModuleIsEnabled", 1) && DBGetContactSettingByte(NULL, MODNAME, "Popups1", DEFAULT_POPUP_ENABLED)) { Number = 1; show_popup(0, Title, Text, Number, 0); } @@ -246,427 +209,340 @@ INT_PTR CALLBACK DlgUpdate(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam { HWND hwndList = GetDlgItem(hDlg, IDC_LIST_UPDATES); - switch (message) - { - case WM_INITDIALOG: + switch (message) { + case WM_INITDIALOG: + TranslateDialogDefault( hDlg ); + SetWindowLongPtr(hDlg, GWLP_USERDATA, 0); + SendMessage(hwndList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES); + { + LVCOLUMN lvc = {0}; + // Initialize the LVCOLUMN structure. + // The mask specifies that the format, width, text, and + // subitem members of the structure are valid. + lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; + lvc.fmt = LVCFMT_LEFT; + + lvc.iSubItem = 0; + lvc.pszText = TranslateT("Component Name"); + lvc.cx = 145; // width of column in pixels + ListView_InsertColumn(hwndList, 0, &lvc); + + lvc.iSubItem = 1; + lvc.pszText = TranslateT("Current Version"); + lvc.cx = 95; // width of column in pixels + ListView_InsertColumn(hwndList, 1, &lvc); + + lvc.iSubItem = 2; + lvc.pszText = TranslateT("New Version"); + lvc.cx = 82; // width of column in pixels + ListView_InsertColumn(hwndList, 2, &lvc); + + //enumerate plugins, fill in list + //bool one_enabled = false; + ListView_DeleteAllItems(hwndList); + + LVITEM lvI = {0}; + + // Some code to create the list-view control. + // Initialize LVITEM members that are common to all + // items. + lvI.mask = LVIF_TEXT | LVIF_PARAM | LVIF_NORECOMPUTE;// | LVIF_IMAGE; + + vector &todo = *(vector *)lParam; + for (int i = 0; i < (int)todo.size(); ++i) { - TranslateDialogDefault( hDlg ); - SetWindowLongPtr(hDlg, GWLP_USERDATA, 0); - SendMessage(hwndList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES); - - LVCOLUMN lvc = {0}; - // Initialize the LVCOLUMN structure. - // The mask specifies that the format, width, text, and - // subitem members of the structure are valid. - lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; - lvc.fmt = LVCFMT_LEFT; - - lvc.iSubItem = 0; - lvc.pszText = TranslateT("Component Name"); - lvc.cx = 145; // width of column in pixels - ListView_InsertColumn(hwndList, 0, &lvc); - - lvc.iSubItem = 1; - lvc.pszText = TranslateT("Current Version"); - lvc.cx = 95; // width of column in pixels - ListView_InsertColumn(hwndList, 1, &lvc); - - lvc.iSubItem = 2; - lvc.pszText = TranslateT("New Version"); - lvc.cx = 82; // width of column in pixels - ListView_InsertColumn(hwndList, 2, &lvc); - - //enumerate plugins, fill in list - //bool one_enabled = false; - ListView_DeleteAllItems(hwndList); - - LVITEM lvI = {0}; - - // Some code to create the list-view control. - // Initialize LVITEM members that are common to all - // items. - lvI.mask = LVIF_TEXT | LVIF_PARAM | LVIF_NORECOMPUTE;// | LVIF_IMAGE; - - vector &todo = *(vector *)lParam; - for (int i = 0; i < (int)todo.size(); ++i) - { - lvI.mask = LVIF_TEXT | LVIF_PARAM;// | LVIF_IMAGE; - lvI.iSubItem = 0; - lvI.lParam = (LPARAM)&todo[i]; - lvI.pszText = todo[i].tszDescr; - lvI.iItem = i; - ListView_InsertItem(hwndList, &lvI); - - lvI.mask = LVIF_TEXT;// | LVIF_IMAGE; - - lvI.iSubItem = 1; - lvI.pszText = todo[i].tszCurVer; - ListView_SetItem(hwndList, &lvI); - - lvI.iSubItem = 2; - lvI.pszText = todo[i].tszNewVer; - ListView_SetItem(hwndList, &lvI); - - // remember whether the user has decided not to update this component with this particular new version - /*char stored_setting[256]; - char* descr = mir_t2a(todo[i].tszDescr); - mir_snprintf(stored_setting, 256, "DisabledVer%s", descr); - mir_free(descr); - DBVARIANT dbv; - bool check = todo[i].enabled; - if (!DBGetContactSettingTString(0, MODNAME, stored_setting, &dbv)) - { - if (dbv.ptszVal && lstrcmp(dbv.ptszVal, todo[i].tszNewVer) == 0) - check = false; - else - DBDeleteContactSetting(0, MODNAME, stored_setting); - DBFreeVariant(&dbv); - } - one_enabled |= check;*/ - ListView_SetCheckState(hwndList, lvI.iItem, true); - todo[i].enabled = true; - } - HWND hwOk = GetDlgItem(hDlg, IDOK); - EnableWindow(hwOk, true/*one_enabled ? TRUE : FALSE*/); - // do this after filling list - enables 'ITEMCHANGED' below - SetWindowLongPtr(hDlg, GWLP_USERDATA, lParam); - Utils_RestoreWindowPositionNoSize(hDlg,0,MODNAME,"ConfirmWindow"); - //if (!IsUserAnAdmin()) - //SendDlgItemMessage(hDlg, IDOK, BCM_SETSHIELD, 0, TRUE); - return TRUE; + lvI.mask = LVIF_TEXT | LVIF_PARAM;// | LVIF_IMAGE; + lvI.iSubItem = 0; + lvI.lParam = (LPARAM)&todo[i]; + lvI.pszText = todo[i].tszDescr; + lvI.iItem = i; + ListView_InsertItem(hwndList, &lvI); + + lvI.mask = LVIF_TEXT;// | LVIF_IMAGE; + + lvI.iSubItem = 1; + lvI.pszText = todo[i].tszCurVer; + ListView_SetItem(hwndList, &lvI); + + lvI.iSubItem = 2; + lvI.pszText = todo[i].tszNewVer; + ListView_SetItem(hwndList, &lvI); + + ListView_SetCheckState(hwndList, lvI.iItem, true); + todo[i].enabled = true; } - case WM_NOTIFY: - { - if (((LPNMHDR) lParam)->hwndFrom == hwndList) - { - switch (((LPNMHDR) lParam)->code) - { - case LVN_ITEMCHANGED: - { - if (GetWindowLongPtr(hDlg, GWLP_USERDATA)) - { - NMLISTVIEW *nmlv = (NMLISTVIEW *)lParam; - - LVITEM lvI = {0}; - - lvI.iItem = nmlv->iItem; - lvI.iSubItem = 0; - lvI.mask = LVIF_PARAM; - ListView_GetItem(hwndList, &lvI); - - vector &todo = *(vector *)GetWindowLongPtr(hDlg, GWLP_USERDATA); - if ((nmlv->uNewState ^ nmlv->uOldState) & LVIS_STATEIMAGEMASK) - { - todo[lvI.iItem].enabled = ListView_GetCheckState(hwndList, nmlv->iItem); - - /*char stored_setting[256]; - mir_snprintf(stored_setting, 256, "DisabledVer%s", ((UpdateInternal *)lvI.lParam)->update.szComponentName); - - if (((UpdateInternal *)lvI.lParam)->update_options.enabled) - DBDeleteContactSetting(0, "Updater", stored_setting); // user has re-enabled update to this version - remove setting from db - else - DBWriteContactSettingString(0, "Updater", stored_setting, ((UpdateInternal *)lvI.lParam)->newVersion); - //ListView_SetItem(hwndList, &lvI); - */ - - bool enableOk = false; - for(int i=0; i<(int)todo.size(); ++i) - { - if(todo[i].enabled) - { - enableOk = true; - break; - } - } - HWND hwOk = GetDlgItem(hDlg, IDOK); - EnableWindow(hwOk, enableOk ? TRUE : FALSE); - } - if (nmlv->uNewState & LVIS_SELECTED) - { - if (lstrcmp(todo[lvI.iItem].tszInfoURL, _T(""))) - EnableWindow(GetDlgItem(hDlg, IDC_INFO), TRUE); - else - EnableWindow(GetDlgItem(hDlg, IDC_INFO), FALSE); - SetDlgItemText(hDlg, IDC_MESSAGE, TranslateTS(todo[lvI.iItem].tszMessage)); - /*char stored_setting[256]; - char* descr = mir_t2a(todo[lvI.iItem].tszDescr); - mir_snprintf(stored_setting, 256, "DisabledVer%s", descr); - mir_free(descr); - DBVARIANT dbv; - if (!DBGetContactSettingTString(0, MODNAME, stored_setting, &dbv)) - { - if(dbv.ptszVal && lstrcmp(dbv.ptszVal, todo[lvI.iItem].tszNewVer) == 0) - CheckDlgButton(hDlg, IDC_DONOTREMIND, BST_CHECKED); - else - DBDeleteContactSetting(0, MODNAME, stored_setting); - DBFreeVariant(&dbv); - } - else - CheckDlgButton(hDlg, IDC_DONOTREMIND, BST_UNCHECKED); - */ - - } - } + HWND hwOk = GetDlgItem(hDlg, IDOK); + EnableWindow(hwOk, true/*one_enabled ? TRUE : FALSE*/); + // do this after filling list - enables 'ITEMCHANGED' below + SetWindowLongPtr(hDlg, GWLP_USERDATA, lParam); + Utils_RestoreWindowPositionNoSize(hDlg,0,MODNAME,"ConfirmWindow"); + } + return TRUE; + + case WM_NOTIFY: + if (((LPNMHDR) lParam)->hwndFrom == hwndList) { + switch (((LPNMHDR) lParam)->code) { + case LVN_ITEMCHANGED: + if (GetWindowLongPtr(hDlg, GWLP_USERDATA)) { + NMLISTVIEW *nmlv = (NMLISTVIEW *)lParam; + + LVITEM lvI = {0}; + + lvI.iItem = nmlv->iItem; + lvI.iSubItem = 0; + lvI.mask = LVIF_PARAM; + ListView_GetItem(hwndList, &lvI); + + vector &todo = *(vector *)GetWindowLongPtr(hDlg, GWLP_USERDATA); + if ((nmlv->uNewState ^ nmlv->uOldState) & LVIS_STATEIMAGEMASK) { + todo[lvI.iItem].enabled = ListView_GetCheckState(hwndList, nmlv->iItem); + + bool enableOk = false; + for(int i=0; i<(int)todo.size(); ++i) { + if(todo[i].enabled) { + enableOk = true; break; } + } + HWND hwOk = GetDlgItem(hDlg, IDOK); + EnableWindow(hwOk, enableOk ? TRUE : FALSE); + } + if (nmlv->uNewState & LVIS_SELECTED) { + if (lstrcmp(todo[lvI.iItem].tszInfoURL, _T(""))) + EnableWindow(GetDlgItem(hDlg, IDC_INFO), TRUE); + else + EnableWindow(GetDlgItem(hDlg, IDC_INFO), FALSE); + SetDlgItemText(hDlg, IDC_MESSAGE, TranslateTS(todo[lvI.iItem].tszMessage)); } } break; } - case WM_COMMAND: - { - if (HIWORD( wParam ) == BN_CLICKED) + } + break; + + case WM_COMMAND: + if (HIWORD( wParam ) == BN_CLICKED) { + switch(LOWORD(wParam)) { + case IDOK: { - switch(LOWORD(wParam)) - { - case IDOK: - { - vector &todo = *(vector *)GetWindowLongPtr(hDlg, GWLP_USERDATA); - ShowWindow(hDlg, SW_HIDE); - TCHAR tszBuff[2048] = {0}, tszFileDest[MAX_PATH] = {0}, tszFilePathDest[MAX_PATH] = {0}, tszFilePathBack[MAX_PATH] = {0}, tszFileName[MAX_PATH] = {0}; - TCHAR* tszExt = NULL; - char szKey[64] = {0}; - vector arFileType; - vector arFilePath; - vector arFileName; - vector arAdvFolder; - vector arExt; - STARTUPINFO si; - PROCESS_INFORMATION pi; - - SetWindowLongPtr(hDlg, GWLP_USERDATA, 0); - Utils_SaveWindowPosition(hDlg, NULL, MODNAME, "ConfirmWindow"); - /*DBWriteContactSettingByte(NULL, "Updater", "DefaultConfAll", IsDlgButtonChecked(hwndDlg, IDC_CHK_CONFALL) ? 1 : 0); - DBWriteContactSettingByte(NULL, "Updater", "NoInstall", IsDlgButtonChecked(hwndDlg, IDC_CHK_NOINSTALL) ? 1 : 0); - - if (IsDlgButtonChecked(hDlg, IDC_CHK_CONFALL)) - EndDialog(hDlg, CD_CONFALL); - else if (IsDlgButtonChecked(hDlg, IDC_CHK_NOINSTALL)) - EndDialog(hDlg, CD_NOINSTALL); + vector &todo = *(vector *)GetWindowLongPtr(hDlg, GWLP_USERDATA); + ShowWindow(hDlg, SW_HIDE); + TCHAR tszBuff[2048] = {0}, tszFileDest[MAX_PATH] = {0}, tszFilePathDest[MAX_PATH] = {0}, tszFilePathBack[MAX_PATH] = {0}, tszFileName[MAX_PATH] = {0}; + TCHAR* tszExt = NULL; + char szKey[64] = {0}; + vector arFileType; + vector arFilePath; + vector arFileName; + vector arAdvFolder; + vector arExt; + STARTUPINFO si; + PROCESS_INFORMATION pi; + + SetWindowLongPtr(hDlg, GWLP_USERDATA, 0); + Utils_SaveWindowPosition(hDlg, NULL, MODNAME, "ConfirmWindow"); + + arFileType.clear(); + arFilePath.clear(); + arFileName.clear(); + arAdvFolder.clear(); + arExt.clear(); + for(int i=0; i<(int)todo.size(); ++i) { + if(todo[i].enabled) { + switch (todo[i].FileType) { + case 1: + mir_sntprintf(tszFileDest, SIZEOF(tszFileDest), _T("%s\\Pack"), tszRoot); + CreateDirectory(tszFileDest, NULL); + break; + case 2: + mir_sntprintf(tszFileDest, SIZEOF(tszFileDest), _T("%s\\Plugins"), tszRoot); + CreateDirectory(tszFileDest, NULL); + break; + case 3: + mir_sntprintf(tszFileDest, SIZEOF(tszFileDest), _T("%s\\Icons"), tszRoot); + CreateDirectory(tszFileDest, NULL); + break; + case 4: + mir_sntprintf(tszFileDest, SIZEOF(tszFileDest), _T("%s\\Others"), tszRoot); + CreateDirectory(tszFileDest, NULL); + break; + case 5: + mir_sntprintf(tszFileDest, SIZEOF(tszFileDest), _T("%s\\Others"), tszRoot); + CreateDirectory(tszFileDest, NULL); + break; + default: + lstrcpyn(tszFileDest, tszRoot, SIZEOF(tszFileDest)); + break; + } + mir_sntprintf(tszBuff, SIZEOF(tszBuff), _T("%s\\Backups"), tszRoot); + CreateDirectory(tszBuff, NULL); + lstrcpyn(tszFileName, todo[i].File.tszDiskPath, SIZEOF(tszFileName)); + mir_sntprintf(todo[i].File.tszDiskPath, SIZEOF(todo[i].File.tszDiskPath), _T("%s\\%s"), tszFileDest, tszFileName); + UpdatesCount++; + + tszExt = &todo[i].File.tszDownloadURL[lstrlen(todo[i].File.tszDownloadURL)-5]; + if (lstrcmp(tszExt, _T(".html")) == 0) { + char* szUrl = mir_t2a(todo[i].File.tszDownloadURL); + CallService(MS_UTILS_OPENURL, TRUE, (LPARAM)szUrl); + mir_free(szUrl); + } + else { + // download update + pFileUrl = &todo[i].File; + Title = TranslateT("Pack Updater"); + if (todo[i].FileType == 1) + Text = TranslateT("Downloading pack updates..."); else - */ - - arFileType.clear(); - arFilePath.clear(); - arFileName.clear(); - arAdvFolder.clear(); - arExt.clear(); - for(int i=0; i<(int)todo.size(); ++i) - { - if(todo[i].enabled) - { - switch (todo[i].FileType) - { - case 1: - mir_sntprintf(tszFileDest, SIZEOF(tszFileDest), _T("%s\\Pack"), tszRoot); - CreateDirectory(tszFileDest, NULL); - break; - case 2: - mir_sntprintf(tszFileDest, SIZEOF(tszFileDest), _T("%s\\Plugins"), tszRoot); - CreateDirectory(tszFileDest, NULL); - break; - case 3: - mir_sntprintf(tszFileDest, SIZEOF(tszFileDest), _T("%s\\Icons"), tszRoot); - CreateDirectory(tszFileDest, NULL); - break; - case 4: - mir_sntprintf(tszFileDest, SIZEOF(tszFileDest), _T("%s\\Others"), tszRoot); - CreateDirectory(tszFileDest, NULL); - break; - case 5: - mir_sntprintf(tszFileDest, SIZEOF(tszFileDest), _T("%s\\Others"), tszRoot); - CreateDirectory(tszFileDest, NULL); - break; - default: - lstrcpyn(tszFileDest, tszRoot, SIZEOF(tszFileDest)); - break; - }//end * switch (todo[i].FileType) - mir_sntprintf(tszBuff, SIZEOF(tszBuff), _T("%s\\Backups"), tszRoot); - CreateDirectory(tszBuff, NULL); - lstrcpyn(tszFileName, todo[i].File.tszDiskPath, SIZEOF(tszFileName)); - mir_sntprintf(todo[i].File.tszDiskPath, SIZEOF(todo[i].File.tszDiskPath), _T("%s\\%s"), tszFileDest, tszFileName); - UpdatesCount++; - - tszExt = &todo[i].File.tszDownloadURL[lstrlen(todo[i].File.tszDownloadURL)-5]; - if (lstrcmp(tszExt, _T(".html")) == 0) - { - char* szUrl = mir_t2a(todo[i].File.tszDownloadURL); - CallService(MS_UTILS_OPENURL, TRUE, (LPARAM)szUrl); - mir_free(szUrl); - } - else - { - // download update - pFileUrl = &todo[i].File; - Title = TranslateT("Pack Updater"); - if (todo[i].FileType == 1) - Text = TranslateT("Downloading pack updates..."); - else - Text = TranslateT("Downloading update..."); - DlgDownloadProc(); - if (!DlgDld) - { - if (UpdatesCount) - UpdatesCount--; - continue; - } - } - lstrcpyn(todo[i].tszCurVer, todo[i].tszNewVer, SIZEOF(todo[i].tszCurVer)); - mir_snprintf(szKey, SIZEOF(szKey), "File_%d_CurrentVersion", todo[i].FileNum); - DBWriteContactSettingTString(NULL, MODNAME, szKey, todo[i].tszCurVer); - arFileType.push_back(todo[i].FileType); - arFilePath.push_back(todo[i].File.tszDiskPath); - arFileName.push_back(tszFileName); - arAdvFolder.push_back(todo[i].tszAdvFolder); - arExt.push_back(tszExt); - if (todo[i].FileType == 1) - i = (int)todo.size(); - } + Text = TranslateT("Downloading update..."); + DlgDownloadProc(); + if (!DlgDld) { + if (UpdatesCount) + UpdatesCount--; + continue; } + } + lstrcpyn(todo[i].tszCurVer, todo[i].tszNewVer, SIZEOF(todo[i].tszCurVer)); + mir_snprintf(szKey, SIZEOF(szKey), "File_%d_CurrentVersion", todo[i].FileNum); + DBWriteContactSettingTString(NULL, MODNAME, szKey, todo[i].tszCurVer); + arFileType.push_back(todo[i].FileType); + arFilePath.push_back(todo[i].File.tszDiskPath); + arFileName.push_back(tszFileName); + arAdvFolder.push_back(todo[i].tszAdvFolder); + arExt.push_back(tszExt); + if (todo[i].FileType == 1) + i = (int)todo.size(); + } + } - if (UpdatesCount > 1 && lstrcmp(arExt[0].c_str(), _T(".html")) != 0) - lstrcpyn(tszBuff, TranslateT("Downloads complete. Start updating? All your data will be saved and Miranda NG will be closed."), SIZEOF(tszBuff)); - else if (UpdatesCount == 1 && lstrcmp(arExt[0].c_str(), _T(".html")) != 0) - lstrcpyn(tszBuff, TranslateT("Download complete. Start updating? All your data will be saved and Miranda NG will be closed."), SIZEOF(tszBuff)); - if (UpdatesCount > 0 && lstrcmp(arExt[0].c_str(), _T(".html")) != 0) - { - INT rc = -1; - Title = TranslateT("Pack Updater"); - Text = tszBuff; - if ( ServiceExists(MS_POPUP_ADDPOPUP) && ServiceExists(MS_POPUP_REGISTERACTIONS) && DBGetContactSettingByte(NULL, "PopUp", "ModuleIsEnabled", 1) && DBGetContactSettingByte(NULL,MODNAME, "Popups0", DEFAULT_POPUP_ENABLED) && (DBGetContactSettingDword(NULL, "PopUp", "Actions", 0) & 1)) - rc = DialogBox(hInst, MAKEINTRESOURCE(IDD_POPUPDUMMI), NULL, DlgMsgPop); + if (UpdatesCount > 1 && lstrcmp(arExt[0].c_str(), _T(".html")) != 0) + lstrcpyn(tszBuff, TranslateT("Downloads complete. Start updating? All your data will be saved and Miranda NG will be closed."), SIZEOF(tszBuff)); + else if (UpdatesCount == 1 && lstrcmp(arExt[0].c_str(), _T(".html")) != 0) + lstrcpyn(tszBuff, TranslateT("Download complete. Start updating? All your data will be saved and Miranda NG will be closed."), SIZEOF(tszBuff)); + if (UpdatesCount > 0 && lstrcmp(arExt[0].c_str(), _T(".html")) != 0) { + INT rc = -1; + Title = TranslateT("Pack Updater"); + Text = tszBuff; + if ( ServiceExists(MS_POPUP_ADDPOPUP) && ServiceExists(MS_POPUP_REGISTERACTIONS) && DBGetContactSettingByte(NULL, "PopUp", "ModuleIsEnabled", 1) && DBGetContactSettingByte(NULL,MODNAME, "Popups0", DEFAULT_POPUP_ENABLED) && (DBGetContactSettingDword(NULL, "PopUp", "Actions", 0) & 1)) + rc = DialogBox(hInst, MAKEINTRESOURCE(IDD_POPUPDUMMI), NULL, DlgMsgPop); + else + rc = MessageBox(NULL, tszBuff, Title, MB_YESNO | MB_ICONQUESTION); + if (rc == IDYES) { + for (int i = 0; i < UpdatesCount; i++) { + TCHAR* tszUtilRootPlug = NULL; + TCHAR* tszUtilRootIco = NULL; + TCHAR* tszUtilRoot = NULL; + + switch (arFileType[i]) { + case 0: + break; + case 1: + if (Reminder == 2) + DBWriteContactSettingByte(NULL, MODNAME, "Reminder", 1); + memset(&si, 0, sizeof(STARTUPINFO)); + memset(&pi, 0, sizeof(PROCESS_INFORMATION)); + si.cb = sizeof(STARTUPINFO); + CreateProcess(arFilePath[i].c_str(), _T(""), NULL, NULL, FALSE, NULL, NULL, NULL, &si, &pi); + i = UpdatesCount; + CallFunctionAsync(ExitMe, 0); + break; + case 2: + tszUtilRootPlug = Utils_ReplaceVarsT(_T("%miranda_path%\\Plugins")); + if (lstrcmp(arAdvFolder[i].c_str(), _T("")) == 0) + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s"), tszUtilRootPlug, arFileName[i].c_str()); else - rc = MessageBox(NULL, tszBuff, Title, MB_YESNO | MB_ICONQUESTION); - if (rc == IDYES) - { - for (int i = 0; i < UpdatesCount; i++) - { - TCHAR* tszUtilRootPlug = NULL; - TCHAR* tszUtilRootIco = NULL; - TCHAR* tszUtilRoot = NULL; - - switch (arFileType[i]) - { - case 0: - break; - case 1: - if (Reminder == 2) - DBWriteContactSettingByte(NULL, MODNAME, "Reminder", 1); - memset(&si, 0, sizeof(STARTUPINFO)); - memset(&pi, 0, sizeof(PROCESS_INFORMATION)); - si.cb = sizeof(STARTUPINFO); - CreateProcess(arFilePath[i].c_str(), _T(""), NULL, NULL, FALSE, NULL, NULL, NULL, &si, &pi); - i = UpdatesCount; - CallFunctionAsync(ExitMe, 0); - break; - case 2: - tszUtilRootPlug = Utils_ReplaceVarsT(_T("%miranda_path%\\Plugins")); - if (lstrcmp(arAdvFolder[i].c_str(), _T("")) == 0) - mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s"), tszUtilRootPlug, arFileName[i].c_str()); - else - mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s\\%s"), tszUtilRootPlug, arAdvFolder[i].c_str(), arFileName[i].c_str()); - mir_sntprintf(tszFilePathBack, SIZEOF(tszFilePathBack), _T("%s\\Backups\\%s"), tszRoot, arFileName[i].c_str()); - MoveFile(tszFilePathDest, tszFilePathBack); - MoveFile(arFilePath[i].c_str(), tszFilePathDest); - mir_free(tszUtilRootPlug); - if (i == UpdatesCount - 1) - CallFunctionAsync(RestartMe, 0); - break; - case 3: - tszUtilRootIco = Utils_ReplaceVarsT(_T("%miranda_path%\\Icons")); - if (lstrcmp(arAdvFolder[i].c_str(), _T("")) == 0) - mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s"), tszUtilRootIco, arFileName[i].c_str()); - else - mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s\\%s"), tszUtilRootIco, arAdvFolder[i].c_str(), arFileName[i].c_str()); - mir_sntprintf(tszFilePathBack, SIZEOF(tszFilePathBack), _T("%s\\Backups\\%s"), tszRoot, arFileName[i].c_str()); - MoveFile(tszFilePathDest, tszFilePathBack); - MoveFile(arFilePath[i].c_str(), tszFilePathDest); - mir_free(tszUtilRootIco); - if (i == UpdatesCount - 1) - CallFunctionAsync(RestartMe, 0); - break; - case 4: - tszUtilRoot = Utils_ReplaceVarsT(_T("%miranda_path%")); - if (lstrcmp(arAdvFolder[i].c_str(), _T("")) == 0) - mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s"), tszUtilRoot, arFileName[i].c_str()); - else - mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s\\%s"), tszUtilRoot, arAdvFolder[i].c_str(), arFileName[i].c_str()); - mir_sntprintf(tszFilePathBack, SIZEOF(tszFilePathBack), _T("%s\\Backups\\%s"), tszRoot, arFileName[i].c_str()); - MoveFile(tszFilePathDest, tszFilePathBack); - MoveFile(arFilePath[i].c_str(), tszFilePathDest); - mir_free(tszUtilRoot); - if (i == UpdatesCount - 1) - CallFunctionAsync(RestartMe, 0); - break; - case 5: - tszUtilRoot = Utils_ReplaceVarsT(_T("%miranda_path%")); - if (lstrcmp(arAdvFolder[i].c_str(), _T("")) == 0) - mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s"), tszUtilRoot, arFileName[i].c_str()); - else - mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s\\%s"), tszUtilRoot, arAdvFolder[i].c_str(), arFileName[i].c_str()); - mir_sntprintf(tszFilePathBack, SIZEOF(tszFilePathBack), _T("%s\\Backups\\%s"), tszRoot, arFileName[i].c_str()); - MoveFile(tszFilePathDest, tszFilePathBack); - MoveFile(arFilePath[i].c_str(), tszFilePathDest); - mir_free(tszUtilRoot); - break; - }//end* switch (arFileType[i]) - }//end* for (int i = 0; i < UpdatesCount; i++) - }//end* if (IDYES == MessageBox(NULL, tszBuff, Title, MB_YESNO | MB_ICONQUESTION)) + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s\\%s"), tszUtilRootPlug, arAdvFolder[i].c_str(), arFileName[i].c_str()); + mir_sntprintf(tszFilePathBack, SIZEOF(tszFilePathBack), _T("%s\\Backups\\%s"), tszRoot, arFileName[i].c_str()); + MoveFile(tszFilePathDest, tszFilePathBack); + MoveFile(arFilePath[i].c_str(), tszFilePathDest); + mir_free(tszUtilRootPlug); + if (i == UpdatesCount - 1) + CallFunctionAsync(RestartMe, 0); + break; + case 3: + tszUtilRootIco = Utils_ReplaceVarsT(_T("%miranda_path%\\Icons")); + if (lstrcmp(arAdvFolder[i].c_str(), _T("")) == 0) + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s"), tszUtilRootIco, arFileName[i].c_str()); else - {//reminder for not installed pack update - if (Reminder && (UpdatesCount == 1) && (arFileType[0] == 1)) - DBWriteContactSettingByte(NULL, MODNAME, "Reminder", 2); - mir_sntprintf(tszBuff, SIZEOF(tszBuff), TranslateT("You have chosen not to install the pack update immediately.\nYou can install it manually from this location:\n\n%s"), arFilePath[0].c_str()); - Title = TranslateT("Pack Updater"); - Text = tszBuff; - if ( ServiceExists(MS_POPUP_ADDPOPUP) && DBGetContactSettingByte(NULL, "PopUp", "ModuleIsEnabled", 1) && DBGetContactSettingByte(NULL, MODNAME, "Popups2", DEFAULT_POPUP_ENABLED)) - { - Number = 2; - show_popup(0, Title, Text, Number, 0); - } - else if (DBGetContactSettingByte(NULL, MODNAME, "Popups2M", DEFAULT_MESSAGE_ENABLED)) - MessageBox(NULL, Text, Title, MB_ICONINFORMATION); - } - }//end* if (UpdatesCount > 0) - - EndDialog(hDlg, IDOK); - return TRUE; - } - case IDCANCEL: - { - SetWindowLongPtr(hDlg, GWLP_USERDATA, 0); - Utils_SaveWindowPosition(hDlg, NULL, MODNAME, "ConfirmWindow"); - EndDialog(hDlg, IDCANCEL); - return TRUE; + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s\\%s"), tszUtilRootIco, arAdvFolder[i].c_str(), arFileName[i].c_str()); + mir_sntprintf(tszFilePathBack, SIZEOF(tszFilePathBack), _T("%s\\Backups\\%s"), tszRoot, arFileName[i].c_str()); + MoveFile(tszFilePathDest, tszFilePathBack); + MoveFile(arFilePath[i].c_str(), tszFilePathDest); + mir_free(tszUtilRootIco); + if (i == UpdatesCount - 1) + CallFunctionAsync(RestartMe, 0); + break; + case 4: + tszUtilRoot = Utils_ReplaceVarsT(_T("%miranda_path%")); + if (lstrcmp(arAdvFolder[i].c_str(), _T("")) == 0) + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s"), tszUtilRoot, arFileName[i].c_str()); + else + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s\\%s"), tszUtilRoot, arAdvFolder[i].c_str(), arFileName[i].c_str()); + mir_sntprintf(tszFilePathBack, SIZEOF(tszFilePathBack), _T("%s\\Backups\\%s"), tszRoot, arFileName[i].c_str()); + MoveFile(tszFilePathDest, tszFilePathBack); + MoveFile(arFilePath[i].c_str(), tszFilePathDest); + mir_free(tszUtilRoot); + if (i == UpdatesCount - 1) + CallFunctionAsync(RestartMe, 0); + break; + case 5: + tszUtilRoot = Utils_ReplaceVarsT(_T("%miranda_path%")); + if (lstrcmp(arAdvFolder[i].c_str(), _T("")) == 0) + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s"), tszUtilRoot, arFileName[i].c_str()); + else + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s\\%s"), tszUtilRoot, arAdvFolder[i].c_str(), arFileName[i].c_str()); + mir_sntprintf(tszFilePathBack, SIZEOF(tszFilePathBack), _T("%s\\Backups\\%s"), tszRoot, arFileName[i].c_str()); + MoveFile(tszFilePathDest, tszFilePathBack); + MoveFile(arFilePath[i].c_str(), tszFilePathDest); + mir_free(tszUtilRoot); + break; + } } - case IDC_INFO: + } + else { //reminder for not installed pack update + if (Reminder && (UpdatesCount == 1) && (arFileType[0] == 1)) + DBWriteContactSettingByte(NULL, MODNAME, "Reminder", 2); + mir_sntprintf(tszBuff, SIZEOF(tszBuff), TranslateT("You have chosen not to install the pack update immediately.\nYou can install it manually from this location:\n\n%s"), arFilePath[0].c_str()); + Title = TranslateT("Pack Updater"); + Text = tszBuff; + if ( ServiceExists(MS_POPUP_ADDPOPUP) && DBGetContactSettingByte(NULL, "PopUp", "ModuleIsEnabled", 1) && DBGetContactSettingByte(NULL, MODNAME, "Popups2", DEFAULT_POPUP_ENABLED)) { - int sel = ListView_GetSelectionMark(hwndList); - vector &todo = *(vector *)GetWindowLongPtr(hDlg, GWLP_USERDATA); - char* szUrl = mir_t2a(todo[sel].tszInfoURL); - CallService(MS_UTILS_OPENURL, TRUE, (LPARAM)szUrl); - mir_free(szUrl); - break; + Number = 2; + show_popup(0, Title, Text, Number, 0); } + else if (DBGetContactSettingByte(NULL, MODNAME, "Popups2M", DEFAULT_MESSAGE_ENABLED)) + MessageBox(NULL, Text, Title, MB_ICONINFORMATION); + } } } - break; + EndDialog(hDlg, IDOK); + return TRUE; + + case IDCANCEL: + SetWindowLongPtr(hDlg, GWLP_USERDATA, 0); + Utils_SaveWindowPosition(hDlg, NULL, MODNAME, "ConfirmWindow"); + EndDialog(hDlg, IDCANCEL); + return TRUE; + + case IDC_INFO: + int sel = ListView_GetSelectionMark(hwndList); + vector &todo = *(vector *)GetWindowLongPtr(hDlg, GWLP_USERDATA); + char* szUrl = mir_t2a(todo[sel].tszInfoURL); + CallService(MS_UTILS_OPENURL, TRUE, (LPARAM)szUrl); + mir_free(szUrl); } + break; + } } return FALSE; } INT_PTR CALLBACK DlgMsgPop(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - switch (uMsg) - { + switch (uMsg) { case WM_INITDIALOG: - { - Number = 0; - show_popup(hDlg, Title, Text, Number, 1); - return TRUE; - } // end* WM_INITDIALOG: - } // end* switch (uMsg) + Number = 0; + show_popup(hDlg, Title, Text, Number, 1); + return TRUE; + } ShowWindow(hDlg, SW_HIDE); return FALSE; } \ No newline at end of file diff --git a/plugins/PluginUpdater/src/Notifications.cpp b/plugins/PluginUpdater/src/Notifications.cpp index 184ec0aae2..1170b44f1e 100644 --- a/plugins/PluginUpdater/src/Notifications.cpp +++ b/plugins/PluginUpdater/src/Notifications.cpp @@ -138,7 +138,7 @@ void ShowPopup(HWND hDlg, LPCTSTR ptszTitle, LPCTSTR ptszText, int Number, int A return; POPUPDATAT_V2 pd = { 0 }; - pd.cbSize = sizeof(POPUPDATAT_V2); + pd.cbSize = sizeof(pd); pd.lchContact = NULL; //(HANDLE)wParam; pd.lchIcon = LoadSkinnedIcon(PopupsList[Number].Icon); lstrcpyn(pd.lptzText, TranslateTS(ptszText), MAX_SECONDLINE); diff --git a/plugins/Scriver/src/chat/window.cpp b/plugins/Scriver/src/chat/window.cpp index f93129a25f..13feea82db 100644 --- a/plugins/Scriver/src/chat/window.cpp +++ b/plugins/Scriver/src/chat/window.cpp @@ -190,23 +190,6 @@ static void MessageDialogResize(HWND hwndDlg, SESSION_INFO *si, int w, int h) { hdwp = DeferWindowPos(hdwp, GetDlgItem(hwndDlg, IDC_CHAT_SPLITTERX), 0, w - si->iSplitterX, 1, 2, toolbarTopY - 1, SWP_NOZORDER); hdwp = DeferWindowPos(hdwp, GetDlgItem(hwndDlg, IDC_CHAT_SPLITTERY), 0, 0, h - si->iSplitterY, w, SPLITTER_HEIGHT, SWP_NOZORDER); hdwp = DeferWindowPos(hdwp, GetDlgItem(hwndDlg, IDC_CHAT_MESSAGE), 0, 1, h - si->iSplitterY + SPLITTER_HEIGHT, w - 2, si->iSplitterY - SPLITTER_HEIGHT - 1, SWP_NOZORDER); -/* - - toolbarTopY = h - toolbarHeight; - if (si->windowData.hwndLog != NULL) { - logBottom = (h - si->iSplitterY) / 2; - } else { - logBottom = h - si->iSplitterY; - } - hdwp = DeferWindowPos(hdwp, GetDlgItem(hwndDlg, IDC_CHAT_LOG), 0, 0, 0, bNick?w - si->iSplitterX:w, logBottom, SWP_NOZORDER); - hdwp = DeferWindowPos(hdwp, GetDlgItem(hwndDlg, IDC_CHAT_LIST), 0, w - si->iSplitterX + 2, 0, si->iSplitterX - 1, h - si->iSplitterY, SWP_NOZORDER); - hdwp = DeferWindowPos(hdwp, GetDlgItem(hwndDlg, IDC_CHAT_SPLITTERX), 0, w - si->iSplitterX, 1, 2, h - si->iSplitterY, SWP_NOZORDER); - hdwp = DeferWindowPos(hdwp, GetDlgItem(hwndDlg, IDC_CHAT_SPLITTERY), 0, 0, h - si->iSplitterY, w, splitterHeight, SWP_NOZORDER); - hdwp = DeferWindowPos(hdwp, GetDlgItem(hwndDlg, IDC_CHAT_MESSAGE), 0, 0, h - si->iSplitterY + splitterHeight, bSend?w-64:w, si->iSplitterY - toolbarHeight - splitterHeight, SWP_NOZORDER); - hdwp = DeferWindowPos(hdwp, GetDlgItem(hwndDlg, IDOK), 0, w - 64, h - si->iSplitterY + splitterHeight, 64, si->iSplitterY - toolbarHeight - splitterHeight - 1, SWP_NOZORDER); - -*/ - hdwp = ResizeToolbar(hwndDlg, hdwp, w, toolbarTopY + 1, toolbarHeight - 1, SIZEOF(toolbarButtons), toolbarButtons, buttonVisibility); EndDeferWindowPos(hdwp); if (si->windowData.hwndLog != NULL) { @@ -250,9 +233,8 @@ static LRESULT CALLBACK MessageSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, windowData = &Parentsi->windowData; result = InputAreaShortcuts(hwnd, msg, wParam, lParam, windowData); - if (result != -1) { + if (result != -1) return result; - } switch (msg) { case EM_SUBCLASSED: diff --git a/plugins/SendScreenshotPlus/src/dlg_msgbox.cpp b/plugins/SendScreenshotPlus/src/dlg_msgbox.cpp index ddf11830e6..71accc2067 100644 --- a/plugins/SendScreenshotPlus/src/dlg_msgbox.cpp +++ b/plugins/SendScreenshotPlus/src/dlg_msgbox.cpp @@ -561,198 +561,149 @@ INT_PTR CALLBACK MsgBoxProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) */ INT_PTR CALLBACK MsgBoxPop(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - switch (uMsg) - { + switch (uMsg) { case WM_INITDIALOG: { - POPUPDATAT_V2 pd; - LPMSGPOPUPDATA pmpd; - LPMSGBOX pMsgBox = (LPMSGBOX)lParam; - MoveWindow(hDlg,-10,-10,0,0,FALSE); - pmpd = (LPMSGPOPUPDATA)mir_alloc(sizeof(MSGPOPUPDATA)); - if (pmpd) - { - ZeroMemory(&pd, sizeof(pd)); - pd.cbSize = sizeof(POPUPDATAT); - pd.lchContact = NULL; //(HANDLE)wParam; - // icon - pd.lchIcon = MsgLoadIcon(pMsgBox); - mir_tcsncpy(pd.lptzContactName, pMsgBox->ptszTitle, SIZEOF(pd.lptzContactName)); - mir_tcsncpy(pd.lptzText, pMsgBox->ptszMsg, SIZEOF(pd.lptzText)); - - // CALLBAC Proc - pd.PluginWindowProc = (WNDPROC)PopupProc; - // - pd.PluginData = pmpd; - - pd.iSeconds = -1; - - pd.hNotification = NULL; - pd.lpActions = pmpd->pa; - - // set color of popup - switch (pMsgBox->uType & MB_ICONMASK) - { - case MB_ICON_ERROR: - { - pd.colorBack = RGB(200, 10, 0); - pd.colorText = RGB(255, 255, 255); - } - break; + LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)mir_alloc(sizeof(MSGPOPUPDATA)); + if (pmpd) { + POPUPDATAT_V2 pd = { 0 }; + pd.cbSize = sizeof(POPUPDATAT); + pd.lchContact = NULL; //(HANDLE)wParam; + + // icon + LPMSGBOX pMsgBox = (LPMSGBOX)lParam; + pd.lchIcon = MsgLoadIcon(pMsgBox); + mir_tcsncpy(pd.lptzContactName, pMsgBox->ptszTitle, SIZEOF(pd.lptzContactName)); + mir_tcsncpy(pd.lptzText, pMsgBox->ptszMsg, SIZEOF(pd.lptzText)); + + // CALLBAC Proc + pd.PluginWindowProc = (WNDPROC)PopupProc; + pd.PluginData = pmpd; + + pd.iSeconds = -1; + + pd.hNotification = NULL; + pd.lpActions = pmpd->pa; + + // set color of popup + switch (pMsgBox->uType & MB_ICONMASK) { + case MB_ICON_ERROR: + pd.colorBack = RGB(200, 10, 0); + pd.colorText = RGB(255, 255, 255); + break; - case MB_ICON_WARNING: - { - pd.colorBack = RGB(200, 100, 0); - pd.colorText = RGB(255, 255, 255); - } - break; + case MB_ICON_WARNING: + pd.colorBack = RGB(200, 100, 0); + pd.colorText = RGB(255, 255, 255); + break; - default: - { - if (pMsgBox->uType & MB_CUSTOMCOLOR) - { - pd.colorBack = pMsgBox->colorBack; - pd.colorText = pMsgBox->colorText; - } - } + default: + if (pMsgBox->uType & MB_CUSTOMCOLOR) { + pd.colorBack = pMsgBox->colorBack; + pd.colorText = pMsgBox->colorText; } + } - // handle for MakePopupAction - pmpd->hDialog = hDlg; - - // active buttons - switch (MB_TYPE(pMsgBox->uType)) - { - case MB_OK: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDOK); - } - break; + // handle for MakePopupAction + pmpd->hDialog = hDlg; - case MB_OKCANCEL: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDOK); - MakePopupAction(pmpd->pa[pd.actionCount++], IDCANCEL); - } - break; + // active buttons + switch (MB_TYPE(pMsgBox->uType)) { + case MB_OK: + MakePopupAction(pmpd->pa[pd.actionCount++], IDOK); + break; - case MB_RETRYCANCEL: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDRETRY); - MakePopupAction(pmpd->pa[pd.actionCount++], IDCANCEL); - } - break; + case MB_OKCANCEL: + MakePopupAction(pmpd->pa[pd.actionCount++], IDOK); + MakePopupAction(pmpd->pa[pd.actionCount++], IDCANCEL); + break; - case MB_YESNO: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDYES); - MakePopupAction(pmpd->pa[pd.actionCount++], IDNO); - } - break; + case MB_RETRYCANCEL: + MakePopupAction(pmpd->pa[pd.actionCount++], IDRETRY); + MakePopupAction(pmpd->pa[pd.actionCount++], IDCANCEL); + break; - case MB_ABORTRETRYIGNORE: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDABORT); - MakePopupAction(pmpd->pa[pd.actionCount++], IDRETRY); - MakePopupAction(pmpd->pa[pd.actionCount++], IDIGNORE); - } - break; + case MB_YESNO: + MakePopupAction(pmpd->pa[pd.actionCount++], IDYES); + MakePopupAction(pmpd->pa[pd.actionCount++], IDNO); + break; - case MB_YESNOCANCEL: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDYES); - MakePopupAction(pmpd->pa[pd.actionCount++], IDNO); - MakePopupAction(pmpd->pa[pd.actionCount++], IDCANCEL); - } - break; + case MB_ABORTRETRYIGNORE: + MakePopupAction(pmpd->pa[pd.actionCount++], IDABORT); + MakePopupAction(pmpd->pa[pd.actionCount++], IDRETRY); + MakePopupAction(pmpd->pa[pd.actionCount++], IDIGNORE); + break; - case MB_YESALLNO: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDYES); - MakePopupAction(pmpd->pa[pd.actionCount++], IDALL); - MakePopupAction(pmpd->pa[pd.actionCount++], IDNO); - } - break; + case MB_YESNOCANCEL: + MakePopupAction(pmpd->pa[pd.actionCount++], IDYES); + MakePopupAction(pmpd->pa[pd.actionCount++], IDNO); + MakePopupAction(pmpd->pa[pd.actionCount++], IDCANCEL); + break; - } // end* switch + case MB_YESALLNO: + MakePopupAction(pmpd->pa[pd.actionCount++], IDYES); + MakePopupAction(pmpd->pa[pd.actionCount++], IDALL); + MakePopupAction(pmpd->pa[pd.actionCount++], IDNO); + break; + } - // create popup - CallService(MS_POPUP_ADDPOPUPT, (WPARAM) &pd, APF_NEWDATA); - if (MB_TYPE(pMsgBox->uType) == MB_OK) - { - EndDialog(hDlg, IDOK); - } - } // end*if (pmpd) + // create popup + CallService(MS_POPUP_ADDPOPUPT, (WPARAM) &pd, APF_NEWDATA); + if (MB_TYPE(pMsgBox->uType) == MB_OK) + EndDialog(hDlg, IDOK); + } break; - } // end* WM_INITDIALOG: - } // end* switch (uMsg) + } + } return FALSE; } /** - * This is the message procedure for popup - * - * @param hDlg - window handle - * @param uMsg - message to handle - * @param wParam - message specific parameter - * @param lParam - message specific parameter - * - * @return TRUE, FALSE, IDOK, IDYES, IDALL, IDNO or IDCANCEL - **/ +* This is the message procedure for popup +* +* @param hDlg - window handle +* @param uMsg - message to handle +* @param wParam - message specific parameter +* @param lParam - message specific parameter +* +* @return TRUE, FALSE, IDOK, IDYES, IDALL, IDNO or IDCANCEL +**/ INT_PTR CALLBACK PopupProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - switch (uMsg) - { - case UM_POPUPACTION: - { - if (HIWORD(wParam) == BN_CLICKED) - { - LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)PUGetPluginData(hDlg); - - if (pmpd) - { - switch (LOWORD(wParam)) - { - case IDOK: - case IDCANCEL: - case IDABORT: - case IDRETRY: - case IDIGNORE: - case IDYES: - case IDNO: - case IDALL: - case IDNONE: - { - if (IsWindow(pmpd->hDialog)) - EndDialog(pmpd->hDialog, LOWORD(wParam)); - } + switch (uMsg) { + case UM_POPUPACTION: + if (HIWORD(wParam) == BN_CLICKED) { + LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)PUGetPluginData(hDlg); + if (pmpd) { + switch (LOWORD(wParam)) { + case IDOK: + case IDCANCEL: + case IDABORT: + case IDRETRY: + case IDIGNORE: + case IDYES: + case IDNO: + case IDALL: + case IDNONE: + if (IsWindow(pmpd->hDialog)) + EndDialog(pmpd->hDialog, LOWORD(wParam)); break; - default: - { - if (IsWindow(pmpd->hDialog)) - EndDialog(pmpd->hDialog, IDCANCEL); - } - } + default: + if (IsWindow(pmpd->hDialog)) + EndDialog(pmpd->hDialog, IDCANCEL); } - PUDeletePopUp(hDlg); } + PUDeletePopUp(hDlg); } break; - case UM_FREEPLUGINDATA: - { - LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)PUGetPluginData(hDlg); - if (pmpd > 0) { - mir_freeAndNil(pmpd); - } - return TRUE; //TRUE or FALSE is the same, it gets ignored. - } - break; - - default: - break; + case UM_FREEPLUGINDATA: + LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)PUGetPluginData(hDlg); + if (pmpd > 0) + mir_freeAndNil(pmpd); + return TRUE; //TRUE or FALSE is the same, it gets ignored. } return DefWindowProc(hDlg, uMsg, wParam, lParam); } diff --git a/plugins/TabSRMM/src/chat/tools.cpp b/plugins/TabSRMM/src/chat/tools.cpp index e6576b39e9..254459ccd7 100644 --- a/plugins/TabSRMM/src/chat/tools.cpp +++ b/plugins/TabSRMM/src/chat/tools.cpp @@ -190,7 +190,7 @@ static INT_PTR CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPA static int ShowPopup(HANDLE hContact, SESSION_INFO* si, HICON hIcon, char* pszProtoName, TCHAR* pszRoomName, COLORREF crBkg, const TCHAR* fmt, ...) { - POPUPDATAT_V2 pd = {0}; + POPUPDATAT pd = {0}; va_list marker; static TCHAR szBuf[4*1024]; diff --git a/plugins/TabSRMM/src/eventpopups.cpp b/plugins/TabSRMM/src/eventpopups.cpp index 362adf97b3..9a7d8cf45c 100644 --- a/plugins/TabSRMM/src/eventpopups.cpp +++ b/plugins/TabSRMM/src/eventpopups.cpp @@ -669,12 +669,6 @@ static int PopupUpdateT(HANDLE hContact, HANDLE hEvent) static int PopupShowT(NEN_OPTIONS *pluginOptions, HANDLE hContact, HANDLE hEvent, UINT eventType, HWND hContainer) { - POPUPDATAT_V2 pud = {0}; - PLUGIN_DATAT *pdata; - DBEVENTINFO dbe; - long iSeconds = 0; - TCHAR *szPreview = NULL; - //there has to be a maximum number of popups shown at the same time if (PopupList.size() >= MAX_POPUPS) return(2); @@ -682,6 +676,8 @@ static int PopupShowT(NEN_OPTIONS *pluginOptions, HANDLE hContact, HANDLE hEvent if (!PluginConfig.g_PopupAvail) return 0; + POPUPDATAT pud = {0}; + long iSeconds; switch (eventType) { case EVENTTYPE_MESSAGE: pud.lchIcon = LoadSkinnedIcon(SKINICON_EVENT_MESSAGE); @@ -699,23 +695,18 @@ static int PopupShowT(NEN_OPTIONS *pluginOptions, HANDLE hContact, HANDLE hEvent return 1; } - ZeroMemory(&dbe, sizeof(dbe)); - dbe.pBlob = NULL; - dbe.cbSize = sizeof(dbe); - + DBEVENTINFO dbe = { sizeof(dbe) }; // fix for a crash if (hEvent && (pluginOptions->bPreview || hContact == 0)) { dbe.cbBlob = CallService(MS_DB_EVENT_GETBLOBSIZE, (WPARAM)hEvent, 0); dbe.pBlob = (PBYTE)malloc(dbe.cbBlob); - } else - dbe.cbBlob = 0; + } CallService(MS_DB_EVENT_GET, (WPARAM)hEvent, (LPARAM)&dbe); if (hEvent == 0 && hContact == 0) dbe.szModule = Translate("Unknown module or contact"); - pdata = (PLUGIN_DATAT *)mir_calloc(sizeof(PLUGIN_DATAT)); - + PLUGIN_DATAT *pdata = (PLUGIN_DATAT *)mir_calloc(sizeof(PLUGIN_DATAT)); pdata->eventType = eventType; pdata->hContact = hContact; pdata->pluginOptions = pluginOptions; @@ -737,7 +728,7 @@ static int PopupShowT(NEN_OPTIONS *pluginOptions, HANDLE hContact, HANDLE hEvent mir_free(szModule); } - szPreview = GetPreviewT((WORD)eventType, &dbe); + TCHAR *szPreview = GetPreviewT((WORD)eventType, &dbe); if (szPreview) { mir_sntprintf(pud.lptzText, MAX_SECONDLINE, _T("%s"), szPreview); mir_free(szPreview); @@ -753,14 +744,11 @@ static int PopupShowT(NEN_OPTIONS *pluginOptions, HANDLE hContact, HANDLE hEvent pdata->nrMerged = 1; // fix for broken popups -- process failures - if (CallService(MS_POPUP_ADDPOPUPT, (WPARAM)&pud, 0) < 0) { - // failed to display, perform cleanup - if (pdata->eventData) - mir_free(pdata->eventData); + if ( PUAddPopUpT(&pud) < 0) { + mir_free(pdata->eventData); mir_free(pdata); } - else - PopupList.push_back(pdata); + else PopupList.push_back(pdata); if (dbe.pBlob) free(dbe.pBlob); @@ -936,7 +924,7 @@ int tabSRMM_ShowPopup(WPARAM wParam, LPARAM lParam, WORD eventType, int windowOp return 0; } passed: - if (!(PluginConfig.g_PopupAvail && PluginConfig.g_PopupWAvail)) + if ( !PluginConfig.g_PopupAvail) return 0; if (PU_GetByContact((HANDLE)wParam) && nen_options.bMergePopup && eventType == EVENTTYPE_MESSAGE) { diff --git a/plugins/TabSRMM/src/functions.h b/plugins/TabSRMM/src/functions.h index 5b440cb7aa..d5746cca5a 100644 --- a/plugins/TabSRMM/src/functions.h +++ b/plugins/TabSRMM/src/functions.h @@ -176,7 +176,7 @@ int TSAPI LoadLocalFlags(HWND hwnd, TWindowData *dat); int TN_ModuleInit(); int TN_OptionsInitialize(WPARAM wParam, LPARAM lParam); int TN_ModuleDeInit(); -int TN_TypingMessage(WPARAM wParam, LPARAM lParam); +void TN_TypingMessage(HANDLE hContact, int iMode); // mod plus diff --git a/plugins/TabSRMM/src/globals.cpp b/plugins/TabSRMM/src/globals.cpp index 9fad90a235..f358f550bd 100644 --- a/plugins/TabSRMM/src/globals.cpp +++ b/plugins/TabSRMM/src/globals.cpp @@ -202,7 +202,6 @@ void CGlobals::reloadSystemModulesChanged() } g_PopupAvail = ServiceExists(MS_POPUP_ADDPOPUP); - g_PopupWAvail = ServiceExists(MS_POPUP_ADDPOPUPW); CLISTMENUITEM mi = { sizeof(mi) }; mi.position = -2000090000; @@ -404,7 +403,7 @@ int CGlobals::ModulesLoaded(WPARAM wParam, LPARAM lParam) ::RegisterFontServiceFonts(); ::CacheLogFonts(); ::Chat_ModulesLoaded(wParam, lParam); - if (PluginConfig.g_PopupWAvail||PluginConfig.g_PopupAvail) + if (PluginConfig.g_PopupAvail) TN_ModuleInit(); HookEvent(ME_DB_CONTACT_SETTINGCHANGED, DBSettingChanged); diff --git a/plugins/TabSRMM/src/globals.h b/plugins/TabSRMM/src/globals.h index 279016b8df..10a22aed0e 100644 --- a/plugins/TabSRMM/src/globals.h +++ b/plugins/TabSRMM/src/globals.h @@ -111,7 +111,7 @@ public: HICON g_iconOverlayDisabled, g_iconOverlayEnabled, g_iconClock; HCURSOR hCurSplitNS, hCurSplitWE, hCurHyperlinkHand; HBITMAP g_hbmUnknown; - int g_MetaContactsAvail, g_SmileyAddAvail, g_WantIEView, g_PopupAvail, g_PopupWAvail, g_WantHPP; + int g_MetaContactsAvail, g_SmileyAddAvail, g_WantIEView, g_PopupAvail, g_WantHPP; int g_FlashAvatarAvail; HIMAGELIST g_hImageList; HICON g_IconMsgEvent, g_IconTypingEvent, g_IconFileEvent, g_IconSend; diff --git a/plugins/TabSRMM/src/mim.cpp b/plugins/TabSRMM/src/mim.cpp index f57c312a5a..0c9f5a33f9 100644 --- a/plugins/TabSRMM/src/mim.cpp +++ b/plugins/TabSRMM/src/mim.cpp @@ -502,14 +502,12 @@ void CMimAPI::InitAPI() int CMimAPI::TypingMessage(WPARAM wParam, LPARAM lParam) { - HWND hwnd = 0; - int issplit = 1, foundWin = 0, preTyping = 0; - struct TContainerData *pContainer = NULL; - BOOL fShowOnClist = TRUE; + HWND hwnd = 0; + int issplit = 1, foundWin = 0, preTyping = 0; + BOOL fShowOnClist = TRUE; if (wParam) { - - if ((hwnd = M->FindWindow((HANDLE) wParam)) && M->GetByte(SRMSGMOD, SRMSGSET_SHOWTYPING, SRMSGDEFSET_SHOWTYPING)) + if ((hwnd = M->FindWindow((HANDLE)wParam)) && M->GetByte(SRMSGMOD, SRMSGSET_SHOWTYPING, SRMSGDEFSET_SHOWTYPING)) preTyping = SendMessage(hwnd, DM_TYPING, 0, lParam); if (hwnd && IsWindowVisible(hwnd)) @@ -517,59 +515,54 @@ int CMimAPI::TypingMessage(WPARAM wParam, LPARAM lParam) else foundWin = 0; - + TContainerData *pContainer = NULL; if (hwnd) { SendMessage(hwnd, DM_QUERYCONTAINER, 0, (LPARAM)&pContainer); if (pContainer == NULL) return 0; // should never happen } - if (M->GetByte(SRMSGMOD, SRMSGSET_SHOWTYPINGCLIST, SRMSGDEFSET_SHOWTYPINGCLIST)) { + if ( M->GetByte(SRMSGMOD, SRMSGSET_SHOWTYPINGCLIST, SRMSGDEFSET_SHOWTYPINGCLIST)) { if (!hwnd && !M->GetByte(SRMSGMOD, SRMSGSET_SHOWTYPINGNOWINOPEN, 1)) fShowOnClist = FALSE; if (hwnd && !M->GetByte(SRMSGMOD, SRMSGSET_SHOWTYPINGWINOPEN, 1)) fShowOnClist = FALSE; } - else - fShowOnClist = FALSE; + else fShowOnClist = FALSE; - if ((!foundWin || !(pContainer->dwFlags&CNT_NOSOUND)) && preTyping != (lParam != 0)) { - if (lParam) - SkinPlaySound("TNStart"); - else - SkinPlaySound("TNStop"); - } + if ((!foundWin || !(pContainer->dwFlags&CNT_NOSOUND)) && preTyping != (lParam != 0)) + SkinPlaySound((lParam) ? "TNStart" : "TNStop"); if (M->GetByte(SRMSGMOD, "ShowTypingPopup", 0)) { - BOOL fShow = FALSE; - int iMode = M->GetByte("MTN_PopupMode", 0); + BOOL fShow = FALSE; + int iMode = M->GetByte("MTN_PopupMode", 0); switch(iMode) { - case 0: + case 0: + fShow = TRUE; + break; + case 1: + if (!foundWin || !(pContainer && pContainer->hwndActive == hwnd && GetForegroundWindow() == pContainer->hwnd)) fShow = TRUE; - break; - case 1: - if (!foundWin || !(pContainer && pContainer->hwndActive == hwnd && GetForegroundWindow() == pContainer->hwnd)) - fShow = TRUE; - break; - case 2: - if (hwnd == 0) - fShow = TRUE; - else { - if (PluginConfig.m_HideOnClose) { - struct TContainerData *pContainer = 0; - SendMessage(hwnd, DM_QUERYCONTAINER, 0, (LPARAM)&pContainer); - if (pContainer && pContainer->fHidden) - fShow = TRUE; - } + break; + case 2: + if (hwnd == 0) + fShow = TRUE; + else { + if (PluginConfig.m_HideOnClose) { + struct TContainerData *pContainer = 0; + SendMessage(hwnd, DM_QUERYCONTAINER, 0, (LPARAM)&pContainer); + if (pContainer && pContainer->fHidden) + fShow = TRUE; } - break; + } + break; } if (fShow) - TN_TypingMessage(wParam, lParam); + TN_TypingMessage((HANDLE)wParam, lParam); } - if ((int) lParam) { + if (lParam) { TCHAR szTip[256]; _sntprintf(szTip, SIZEOF(szTip), TranslateT("%s is typing a message."), (TCHAR *) CallService(MS_CLIST_GETCONTACTDISPLAYNAME, wParam, GCDNF_TCHAR)); diff --git a/plugins/TabSRMM/src/msgoptions.cpp b/plugins/TabSRMM/src/msgoptions.cpp index 77d73409db..f4abde6c78 100644 --- a/plugins/TabSRMM/src/msgoptions.cpp +++ b/plugins/TabSRMM/src/msgoptions.cpp @@ -933,7 +933,7 @@ static INT_PTR CALLBACK DlgProcTypeOptions(HWND hwndDlg, UINT msg, WPARAM wParam SendDlgItemMessage(hwndDlg, IDC_MTN_POPUPMODE, CB_SETCURSEL, (WPARAM)M->GetByte("MTN_PopupMode", 0), 0); - if (!PluginConfig.g_PopupWAvail) { + if (!PluginConfig.g_PopupAvail) { Utils::showDlgControl(hwndDlg, IDC_NOTIFYPOPUP, SW_HIDE); Utils::showDlgControl(hwndDlg, IDC_STATIC111, SW_HIDE); Utils::showDlgControl(hwndDlg, IDC_MTN_POPUPMODE, SW_HIDE); @@ -1265,7 +1265,7 @@ struct { static int OptInitialise(WPARAM wParam, LPARAM lParam) { - if (PluginConfig.g_PopupWAvail||PluginConfig.g_PopupAvail) + if (PluginConfig.g_PopupAvail) TN_OptionsInitialize(wParam, lParam); OPTIONSDIALOGPAGE odp = { 0 }; diff --git a/plugins/TabSRMM/src/nen.h b/plugins/TabSRMM/src/nen.h index d21f2533b6..815737feb7 100644 --- a/plugins/TabSRMM/src/nen.h +++ b/plugins/TabSRMM/src/nen.h @@ -133,26 +133,28 @@ struct NEN_OPTIONS { DWORD dwRemoveMask; }; -typedef struct { +struct EVENT_DATAT +{ HANDLE hEvent; - TCHAR szText[MAX_SECONDLINE + 2]; - DWORD timestamp; -} EVENT_DATAT; + TCHAR szText[MAX_SECONDLINE + 2]; + DWORD timestamp; +}; -typedef struct { - UINT eventType; - HANDLE hContact; +struct PLUGIN_DATAT +{ + UINT eventType; + HANDLE hContact; NEN_OPTIONS *pluginOptions; - POPUPDATAT_V2* pud; - HWND hWnd; - long iSeconds; - TCHAR szHeader[256]; - int nrMerged; + POPUPDATAT *pud; + HWND hWnd; + long iSeconds; + TCHAR szHeader[256]; + int nrMerged; EVENT_DATAT *eventData; - int nrEventsAlloced; - int iActionTaken; - HWND hContainer; -} PLUGIN_DATAT; + int nrEventsAlloced; + int iActionTaken; + HWND hContainer; +}; #define NR_MERGED 5 diff --git a/plugins/TabSRMM/src/sendlater.cpp b/plugins/TabSRMM/src/sendlater.cpp index 4b62744ec7..709198ef4f 100644 --- a/plugins/TabSRMM/src/sendlater.cpp +++ b/plugins/TabSRMM/src/sendlater.cpp @@ -125,8 +125,6 @@ void CSendLaterJob::writeFlags() CSendLaterJob::~CSendLaterJob() { if (fSuccess || fFailed) { - POPUPDATAT_V2 ppd = {0}; - if ((sendLater->haveErrorPopups() && fFailed) || (sendLater->haveSuccessPopups() && fSuccess)) { bool fShowPopup = true; @@ -138,9 +136,8 @@ CSendLaterJob::~CSendLaterJob() if (PluginConfig.g_PopupAvail && fShowPopup) { TCHAR *tszName = (TCHAR *)CallService(MS_CLIST_GETCONTACTDISPLAYNAME, (WPARAM)hContact, GCDNF_TCHAR); - ZeroMemory((void*)&ppd, sizeof(ppd)); + POPUPDATAT ppd = {0}; ppd.lchContact = hContact; - ppd.cbSize = sizeof(ppd); mir_sntprintf(ppd.lptzContactName, MAX_CONTACTNAME, _T("%s"), tszName ? tszName : TranslateT("'(Unknown Contact)'")); TCHAR *msgPreview = Utils::GetPreviewWithEllipsis(reinterpret_cast(&pBuf[lstrlenA((char *)pBuf) + 1]), 100); if (fSuccess) { @@ -162,7 +159,7 @@ CSendLaterJob::~CSendLaterJob() ppd.lchIcon = fFailed ? PluginConfig.g_iconErr : PluginConfig.g_IconMsgEvent; ppd.PluginData = (void*)hContact; ppd.iSeconds = fFailed ? -1 : nen_options.iDelayMsg; - CallService(MS_POPUP_ADDPOPUPW, (WPARAM)&ppd, 0); + PUAddPopUpT(&ppd); } } if (fFailed && (bCode == JOB_AGE || bCode == JOB_REMOVABLE) && szId[0] == 'S') diff --git a/plugins/TabSRMM/src/sendqueue.cpp b/plugins/TabSRMM/src/sendqueue.cpp index 49a095064e..e2a609db61 100644 --- a/plugins/TabSRMM/src/sendqueue.cpp +++ b/plugins/TabSRMM/src/sendqueue.cpp @@ -690,30 +690,28 @@ void SendQueue::UpdateSaveAndSendButton(TWindowData *dat) void SendQueue::NotifyDeliveryFailure(const TWindowData *dat) { - POPUPDATAT_V2 ppd = {0}; - int ibsize = 1023; - if (M->GetByte("adv_noErrorPopups", 0)) return; - if (CallService(MS_POPUP_QUERY, PUQS_GETSTATUS, 0) == 1) { - ZeroMemory((void*)&ppd, sizeof(ppd)); - ppd.lchContact = dat->hContact; - mir_sntprintf(ppd.lptzContactName, MAX_CONTACTNAME, _T("%s"), dat->cache->getNick()); - mir_sntprintf(ppd.lptzText, MAX_SECONDLINE, _T("%s"), TranslateT("A message delivery has failed.\nClick to open the message window.")); - if (!(BOOL)M->GetByte(MODULE, OPT_COLDEFAULT_ERR, TRUE)) - { - ppd.colorText = (COLORREF)M->GetDword(MODULE, OPT_COLTEXT_ERR, DEFAULT_COLTEXT); - ppd.colorBack = (COLORREF)M->GetDword(MODULE, OPT_COLBACK_ERR, DEFAULT_COLBACK); - } - else - ppd.colorText = ppd.colorBack = 0; - ppd.PluginWindowProc = reinterpret_cast(Utils::PopupDlgProcError); - ppd.lchIcon = PluginConfig.g_iconErr; - ppd.PluginData = (void*)dat->hContact; - ppd.iSeconds = (int)M->GetDword(MODULE, OPT_DELAY_ERR, (DWORD)DEFAULT_DELAY); - CallService(MS_POPUP_ADDPOPUPT, (WPARAM)&ppd, 0); + if ( CallService(MS_POPUP_QUERY, PUQS_GETSTATUS, 0) != 1) + return; + + POPUPDATAT ppd = { 0 }; + ppd.lchContact = dat->hContact; + lstrcpyn(ppd.lptzContactName, dat->cache->getNick(), MAX_CONTACTNAME); + lstrcpyn(ppd.lptzText, TranslateT("A message delivery has failed.\nClick to open the message window."), MAX_SECONDLINE); + + if (!(BOOL)M->GetByte(MODULE, OPT_COLDEFAULT_ERR, TRUE)) { + ppd.colorText = (COLORREF)M->GetDword(MODULE, OPT_COLTEXT_ERR, DEFAULT_COLTEXT); + ppd.colorBack = (COLORREF)M->GetDword(MODULE, OPT_COLBACK_ERR, DEFAULT_COLBACK); } + else ppd.colorText = ppd.colorBack = 0; + + ppd.PluginWindowProc = reinterpret_cast(Utils::PopupDlgProcError); + ppd.lchIcon = PluginConfig.g_iconErr; + ppd.PluginData = (void*)dat->hContact; + ppd.iSeconds = (int)M->GetDword(MODULE, OPT_DELAY_ERR, (DWORD)DEFAULT_DELAY); + PUAddPopUpT(&ppd); } /* diff --git a/plugins/TabSRMM/src/typingnotify.cpp b/plugins/TabSRMM/src/typingnotify.cpp index 4ce0796936..d42c2cac8c 100644 --- a/plugins/TabSRMM/src/typingnotify.cpp +++ b/plugins/TabSRMM/src/typingnotify.cpp @@ -2,11 +2,49 @@ HANDLE hTypingNotify; +static HANDLE hDisableMenu = NULL; +static HANDLE hPopUpsList = NULL; + +static BYTE OnePopUp; +static BYTE ShowMenu; +static BYTE StartDisabled; +static BYTE StopDisabled; +static BYTE Disabled; +static BYTE ColorMode; +static BYTE TimeoutMode; +static BYTE TimeoutMode2; +static int Timeout; +static int Timeout2; +static int newTimeout; +static int newTimeout2; +static BYTE newTimeoutMode; +static BYTE newTimeoutMode2; +static BYTE newColorMode; +static TCHAR szStart[128]; +static TCHAR szStop[128]; + +static HANDLE hntfStarted = 0; +static HANDLE hntfStopped = 0; + +struct +{ + int res; + char desc[10]; + COLORREF color; +} +static colorPicker[4] = +{ + { IDC_TYPEON_BG, "ON_BG", RGB(255,255,255)}, + { IDC_TYPEON_TX, "ON_TX", RGB(0,0,0)}, + { IDC_TYPEOFF_BG, "OFF_BG", RGB(255,255,255)}, + { IDC_TYPEOFF_TX, "OFF_TX", RGB(0,0,0)} +}; + static INT_PTR EnableDisableMenuCommand(WPARAM wParam,LPARAM lParam) { - Disabled = !(Disabled); + Disabled = !Disabled; - if (PopupService) { + if (PluginConfig.g_PopupAvail) { CLISTMENUITEM mi = { sizeof(mi) }; mi.flags = CMIM_ICON | CMIM_NAME; @@ -55,161 +93,156 @@ static int CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM return DefWindowProc(hWnd, message, wParam, lParam); } -int TN_TypingMessage(WPARAM wParam, LPARAM lParam) +void TN_TypingMessage(HANDLE hContact, int iMode) { - POPUPDATAT_V2 ppd = { 0 }; - TCHAR *szContactName = NULL; - HWND hPopUpWnd = NULL; - int notyping; - // hidden & ignored contacts check - if (M->GetByte((HANDLE)wParam, "CList", "Hidden", 0) || (M->GetDword((HANDLE)wParam, "Ignore", "Mask1",0) & 1)) // 9 - online notification - return 0; + if (M->GetByte(hContact, "CList", "Hidden", 0) || (M->GetDword(hContact, "Ignore", "Mask1",0) & 1)) // 9 - online notification + return; - szContactName = (TCHAR*) CallService(MS_CLIST_GETCONTACTDISPLAYNAME, wParam, GSMDF_TCHAR); + if (!PluginConfig.g_PopupAvail || Disabled) + return; - if (PopupService && !Disabled) { - if (OnePopUp) { - hPopUpWnd = WindowList_Find(hPopUpsList, (HANDLE) wParam); - while (hPopUpWnd) { - PUDeletePopUp(hPopUpWnd); - hPopUpWnd = WindowList_Find(hPopUpsList, (HANDLE) wParam); - } - } + TCHAR *szContactName = (TCHAR*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME, WPARAM(hContact), GSMDF_TCHAR); - switch (lParam) { - case PROTOTYPE_CONTACTTYPING_OFF: - if (StopDisabled) - return 0; - lstrcpyn(ppd.lptzContactName, szContactName, MAX_CONTACTNAME); - lstrcpyn(ppd.lptzText, szStop, MAX_SECONDLINE); - ppd.hNotification = hntfStopped; - notyping = 1; - break; - default: - if (StartDisabled) - return 0; - lstrcpyn(ppd.lptzContactName, szContactName, MAX_CONTACTNAME); - lstrcpyn(ppd.lptzText, szStart, MAX_SECONDLINE); - ppd.hNotification = hntfStarted; - notyping = 0; - break; + if (OnePopUp) { + HWND hPopUpWnd = WindowList_Find(hPopUpsList, hContact); + while (hPopUpWnd) { + PUDeletePopUp(hPopUpWnd); + hPopUpWnd = WindowList_Find(hPopUpsList, hContact); } + } - switch (ColorMode) { - case COLOR_OWN: - ppd.colorBack = colorPicker[2* notyping ].color; - ppd.colorText = colorPicker[2* notyping + 1].color; - break; - case COLOR_WINDOWS: - ppd.colorBack = GetSysColor(COLOR_BTNFACE); - ppd.colorText = GetSysColor(COLOR_WINDOWTEXT); - break; - case COLOR_POPUP: - default: - ppd.colorBack = ppd.colorText = 0; - break; - } + int notyping; + POPUPDATAT_V2 ppd = { 0 }; - if (notyping) - switch (TimeoutMode2) { - case TIMEOUT_CUSTOM: - ppd.iSeconds = Timeout2; - break; - case TIMEOUT_PERMANENT: - ppd.iSeconds = -1; - break; - case TIMEOUT_POPUP: - default: - ppd.iSeconds = 0; - break; - } - else - switch (TimeoutMode) { - case TIMEOUT_CUSTOM: - ppd.iSeconds = Timeout; - break; - case TIMEOUT_PROTO: - ppd.iSeconds = (DWORD) lParam; - break; - case TIMEOUT_PERMANENT: - ppd.iSeconds = -1; - break; - case TIMEOUT_POPUP: - default: - ppd.iSeconds = 0; - break; - } + if (iMode == PROTOTYPE_CONTACTTYPING_OFF) { + if (StopDisabled) + return; + lstrcpyn(ppd.lptzContactName, szContactName, MAX_CONTACTNAME); + lstrcpyn(ppd.lptzText, szStop, MAX_SECONDLINE); + ppd.hNotification = hntfStopped; + notyping = 1; + } + else { + if (StartDisabled) + return; + lstrcpyn(ppd.lptzContactName, szContactName, MAX_CONTACTNAME); + lstrcpyn(ppd.lptzText, szStart, MAX_SECONDLINE); + ppd.hNotification = hntfStarted; + notyping = 0; + } - ppd.lchIcon = PluginConfig.g_buttonBarIcons[ICON_DEFAULT_TYPING]; - ppd.lchContact = (HANDLE) wParam; - ppd.PluginWindowProc = (WNDPROC) PopupDlgProc; - ppd.PluginData = NULL; + switch (ColorMode) { + case COLOR_OWN: + ppd.colorBack = colorPicker[2* notyping ].color; + ppd.colorText = colorPicker[2* notyping + 1].color; + break; + case COLOR_WINDOWS: + ppd.colorBack = GetSysColor(COLOR_BTNFACE); + ppd.colorText = GetSysColor(COLOR_WINDOWTEXT); + break; + case COLOR_POPUP: + default: + ppd.colorBack = ppd.colorText = 0; + break; + } - ppd.cbSize = sizeof(ppd); + if (notyping) + switch (TimeoutMode2) { + case TIMEOUT_CUSTOM: + ppd.iSeconds = Timeout2; + break; + case TIMEOUT_PERMANENT: + ppd.iSeconds = -1; + break; + case TIMEOUT_POPUP: + default: + ppd.iSeconds = 0; + break; + } + else + switch (TimeoutMode) { + case TIMEOUT_CUSTOM: + ppd.iSeconds = Timeout; + break; + case TIMEOUT_PROTO: + ppd.iSeconds = iMode; + break; + case TIMEOUT_PERMANENT: + ppd.iSeconds = -1; + break; + case TIMEOUT_POPUP: + default: + ppd.iSeconds = 0; + break; + } - CallService(MS_POPUP_ADDPOPUPT, (WPARAM)&ppd, APF_NEWDATA); - } - return 0; + ppd.lchIcon = PluginConfig.g_buttonBarIcons[ICON_DEFAULT_TYPING]; + ppd.lchContact = hContact; + ppd.PluginWindowProc = (WNDPROC) PopupDlgProc; + ppd.PluginData = NULL; + ppd.cbSize = sizeof(ppd); + CallService(MS_POPUP_ADDPOPUPT, (WPARAM)&ppd, APF_NEWDATA); } static INT_PTR CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { - WORD i; + int i; switch (msg) { - case WM_INITDIALOG: { - TranslateDialogDefault(hwndDlg); - - if (ColorMode == COLOR_WINDOWS) { - CheckDlgButton(hwndDlg, IDC_USEWINCOLORS, BST_CHECKED); - Utils::enableDlgControl(hwndDlg, IDC_USEPOPUPCOLORS, FALSE); - Utils::enableDlgControl(hwndDlg, IDC_USEWINCOLORS, TRUE); - CheckDlgButton(hwndDlg, IDC_USEPOPUPCOLORS, BST_UNCHECKED); - } else if (ColorMode == COLOR_POPUP) { - CheckDlgButton(hwndDlg, IDC_USEWINCOLORS, BST_UNCHECKED); - Utils::enableDlgControl(hwndDlg, IDC_USEWINCOLORS, FALSE); - Utils::enableDlgControl(hwndDlg, IDC_USEPOPUPCOLORS, TRUE); - CheckDlgButton(hwndDlg, IDC_USEPOPUPCOLORS, BST_CHECKED); - } - - for (i=0; i < sizeof(colorPicker) / sizeof(colorPicker[0]); i++) { - SendDlgItemMessage(hwndDlg, colorPicker[i].res, CPM_SETCOLOUR, 0, colorPicker[i].color); - Utils::enableDlgControl(hwndDlg, colorPicker[i].res, (ColorMode == COLOR_OWN)); - } + case WM_INITDIALOG: + TranslateDialogDefault(hwndDlg); + + if (ColorMode == COLOR_WINDOWS) { + CheckDlgButton(hwndDlg, IDC_USEWINCOLORS, BST_CHECKED); + Utils::enableDlgControl(hwndDlg, IDC_USEPOPUPCOLORS, FALSE); + Utils::enableDlgControl(hwndDlg, IDC_USEWINCOLORS, TRUE); + CheckDlgButton(hwndDlg, IDC_USEPOPUPCOLORS, BST_UNCHECKED); + } + else if (ColorMode == COLOR_POPUP) { + CheckDlgButton(hwndDlg, IDC_USEWINCOLORS, BST_UNCHECKED); + Utils::enableDlgControl(hwndDlg, IDC_USEWINCOLORS, FALSE); + Utils::enableDlgControl(hwndDlg, IDC_USEPOPUPCOLORS, TRUE); + CheckDlgButton(hwndDlg, IDC_USEPOPUPCOLORS, BST_CHECKED); + } - CheckDlgButton(hwndDlg, IDC_TIMEOUT_PERMANENT, (TimeoutMode == TIMEOUT_PERMANENT) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_TIMEOUT_POPUP, (TimeoutMode == TIMEOUT_POPUP) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_TIMEOUT_PROTO, (TimeoutMode == TIMEOUT_PROTO) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_TIMEOUT_CUSTOM, (TimeoutMode == TIMEOUT_CUSTOM) ? BST_CHECKED : BST_UNCHECKED); - SetDlgItemInt(hwndDlg, IDC_TIMEOUT_VALUE, Timeout, 0); - Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE, TimeoutMode == TIMEOUT_CUSTOM); - - CheckDlgButton(hwndDlg, IDC_TIMEOUT_PERMANENT2, (TimeoutMode2 == TIMEOUT_PERMANENT) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_TIMEOUT_POPUP2, (TimeoutMode2 == TIMEOUT_POPUP) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_TIMEOUT_CUSTOM2, (TimeoutMode2 == TIMEOUT_CUSTOM) ? BST_CHECKED : BST_UNCHECKED); - SetDlgItemInt(hwndDlg, IDC_TIMEOUT_VALUE2, Timeout2, 0); - Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE2, TimeoutMode2 == TIMEOUT_CUSTOM); - - CheckDlgButton(hwndDlg, IDC_START, (StartDisabled) ? BST_UNCHECKED : BST_CHECKED); - CheckDlgButton(hwndDlg, IDC_STOP, (StopDisabled) ? BST_UNCHECKED : BST_CHECKED); - - CheckDlgButton(hwndDlg, IDC_ONEPOPUP, (OnePopUp) ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hwndDlg, IDC_SHOWMENU, (ShowMenu) ? BST_CHECKED : BST_UNCHECKED); - - Utils::enableDlgControl(hwndDlg, IDC_ONEPOPUP, PopupService); - Utils::enableDlgControl(hwndDlg, IDC_SHOWMENU, PopupService); - Utils::enableDlgControl(hwndDlg, IDC_PREVIEW, PopupService/*&&!ServiceExists(MS_POPUP_REGISTERNOTIFICATION)*/); - - newTimeout = Timeout; - newTimeoutMode = TimeoutMode; - newTimeout2 = Timeout2; - newTimeoutMode2 = TimeoutMode2; - newColorMode = ColorMode; + for (i=0; i < SIZEOF(colorPicker); i++) { + SendDlgItemMessage(hwndDlg, colorPicker[i].res, CPM_SETCOLOUR, 0, colorPicker[i].color); + Utils::enableDlgControl(hwndDlg, colorPicker[i].res, (ColorMode == COLOR_OWN)); } - break; - case WM_COMMAND: { + CheckDlgButton(hwndDlg, IDC_TIMEOUT_PERMANENT, (TimeoutMode == TIMEOUT_PERMANENT) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_TIMEOUT_POPUP, (TimeoutMode == TIMEOUT_POPUP) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_TIMEOUT_PROTO, (TimeoutMode == TIMEOUT_PROTO) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_TIMEOUT_CUSTOM, (TimeoutMode == TIMEOUT_CUSTOM) ? BST_CHECKED : BST_UNCHECKED); + SetDlgItemInt(hwndDlg, IDC_TIMEOUT_VALUE, Timeout, 0); + Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE, TimeoutMode == TIMEOUT_CUSTOM); + + CheckDlgButton(hwndDlg, IDC_TIMEOUT_PERMANENT2, (TimeoutMode2 == TIMEOUT_PERMANENT) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_TIMEOUT_POPUP2, (TimeoutMode2 == TIMEOUT_POPUP) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_TIMEOUT_CUSTOM2, (TimeoutMode2 == TIMEOUT_CUSTOM) ? BST_CHECKED : BST_UNCHECKED); + SetDlgItemInt(hwndDlg, IDC_TIMEOUT_VALUE2, Timeout2, 0); + Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE2, TimeoutMode2 == TIMEOUT_CUSTOM); + + CheckDlgButton(hwndDlg, IDC_START, (StartDisabled) ? BST_UNCHECKED : BST_CHECKED); + CheckDlgButton(hwndDlg, IDC_STOP, (StopDisabled) ? BST_UNCHECKED : BST_CHECKED); + + CheckDlgButton(hwndDlg, IDC_ONEPOPUP, (OnePopUp) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_SHOWMENU, (ShowMenu) ? BST_CHECKED : BST_UNCHECKED); + + Utils::enableDlgControl(hwndDlg, IDC_ONEPOPUP, PluginConfig.g_PopupAvail); + Utils::enableDlgControl(hwndDlg, IDC_SHOWMENU, PluginConfig.g_PopupAvail); + Utils::enableDlgControl(hwndDlg, IDC_PREVIEW, PluginConfig.g_PopupAvail/*&&!ServiceExists(MS_POPUP_REGISTERNOTIFICATION)*/); + + newTimeout = Timeout; + newTimeoutMode = TimeoutMode; + newTimeout2 = Timeout2; + newTimeoutMode2 = TimeoutMode2; + newColorMode = ColorMode; + break; + + case WM_COMMAND: + { WORD idCtrl = LOWORD(wParam), wNotifyCode = HIWORD(wParam); if (wNotifyCode == CPN_COLOURCHANGED) { @@ -218,37 +251,37 @@ static INT_PTR CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA } switch (idCtrl) { - case IDC_USEWINCOLORS: { - BOOL bEnableOthers = FALSE; - - if (wNotifyCode != BN_CLICKED) - break; + case IDC_USEWINCOLORS: + if (wNotifyCode == BN_CLICKED) { + BOOL bEnableOthers; if (IsDlgButtonChecked(hwndDlg, IDC_USEWINCOLORS)) { newColorMode = COLOR_WINDOWS; bEnableOthers = FALSE; - } else { + } + else { newColorMode = COLOR_OWN; bEnableOthers = TRUE; } - for (i=0; i < sizeof(colorPicker) / sizeof(colorPicker[0]); i++) + for (i=0; i < SIZEOF(colorPicker); i++) Utils::enableDlgControl(hwndDlg, colorPicker[i].res, bEnableOthers); Utils::enableDlgControl(hwndDlg, IDC_USEPOPUPCOLORS, bEnableOthers); SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; } - case IDC_USEPOPUPCOLORS: { - BOOL bEnableOthers = FALSE; - if (wNotifyCode != BN_CLICKED) - break; + break; + + case IDC_USEPOPUPCOLORS: + if (wNotifyCode == BN_CLICKED) { + BOOL bEnableOthers; if (IsDlgButtonChecked(hwndDlg, IDC_USEPOPUPCOLORS)) { newColorMode = COLOR_POPUP; bEnableOthers = FALSE; - } else { + } + else { newColorMode = COLOR_OWN; bEnableOthers = TRUE; } @@ -259,156 +292,157 @@ static INT_PTR CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA Utils::enableDlgControl(hwndDlg, IDC_USEWINCOLORS, bEnableOthers); SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; } - case IDC_ONEPOPUP: - case IDC_CLIST: - case IDC_DISABLED: - case IDC_SHOWMENU: - case IDC_START: - case IDC_STOP: - case IDC_WOCL: - if (wNotifyCode == BN_CLICKED) - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - case IDC_PREVIEW: { - POPUPDATAT_V2 ppd = { 0 }; - char *szProto = NULL; - int i, notyping; - - HANDLE hContact = db_find_first(); + break; - if (!PopupService) - break; + case IDC_ONEPOPUP: + case IDC_CLIST: + case IDC_DISABLED: + case IDC_SHOWMENU: + case IDC_START: + case IDC_STOP: + case IDC_WOCL: + if (wNotifyCode == BN_CLICKED) + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + case IDC_PREVIEW: + if (PluginConfig.g_PopupAvail) { + HANDLE hContact = db_find_first(); while (hContact) { - szProto = GetContactProto(hContact); + char *szProto = GetContactProto(hContact); if (szProto != NULL) break; hContact = db_find_next(hContact); } + POPUPDATAT ppd = { 0 }; for (i=0; i < 2; i++) { - - switch (i) { - case PROTOTYPE_CONTACTTYPING_OFF: - lstrcpy(ppd.lptzContactName, TranslateT("Contact")); - lstrcpyn(ppd.lptzText, szStop, MAX_SECONDLINE); - notyping = 1; - break; - default: - lstrcpy(ppd.lptzContactName, TranslateT("Contact")); - lstrcpyn(ppd.lptzText, szStart, MAX_SECONDLINE); - notyping = 0; - break; + int notyping; + if (i == PROTOTYPE_CONTACTTYPING_OFF) { + lstrcpy(ppd.lptzContactName, TranslateT("Contact")); + lstrcpyn(ppd.lptzText, szStop, MAX_SECONDLINE); + notyping = 1; + } + else { + lstrcpy(ppd.lptzContactName, TranslateT("Contact")); + lstrcpyn(ppd.lptzText, szStart, MAX_SECONDLINE); + notyping = 0; } switch (newColorMode) { - case COLOR_OWN: - ppd.colorText = SendDlgItemMessage(hwndDlg, colorPicker[2* notyping + 1].res, CPM_GETCOLOUR, 0, 0); - ppd.colorBack = SendDlgItemMessage(hwndDlg, colorPicker[2* notyping ].res, CPM_GETCOLOUR, 0, 0); + case COLOR_OWN: + ppd.colorText = SendDlgItemMessage(hwndDlg, colorPicker[2*notyping + 1].res, CPM_GETCOLOUR, 0, 0); + ppd.colorBack = SendDlgItemMessage(hwndDlg, colorPicker[2*notyping ].res, CPM_GETCOLOUR, 0, 0); + break; + case COLOR_WINDOWS: + ppd.colorBack = GetSysColor(COLOR_BTNFACE); + ppd.colorText = GetSysColor(COLOR_WINDOWTEXT); + break; + case COLOR_POPUP: + default: + ppd.colorBack = ppd.colorText = 0; + break; + } + + if (notyping) + switch (newTimeoutMode2) { + case TIMEOUT_CUSTOM: + ppd.iSeconds = newTimeout2; break; - case COLOR_WINDOWS: - ppd.colorBack = GetSysColor(COLOR_BTNFACE); - ppd.colorText = GetSysColor(COLOR_WINDOWTEXT); + case TIMEOUT_PERMANENT: + ppd.iSeconds = -1; break; - case COLOR_POPUP: + case TIMEOUT_POPUP: default: - ppd.colorBack = ppd.colorText = 0; + ppd.iSeconds = 0; break; } - - if (notyping) - switch (newTimeoutMode2) { - case TIMEOUT_CUSTOM: - ppd.iSeconds = newTimeout2; - break; - case TIMEOUT_PERMANENT: - ppd.iSeconds = -1; - break; - case TIMEOUT_POPUP: - default: - ppd.iSeconds = 0; - break; - } else switch (newTimeoutMode) { - case TIMEOUT_CUSTOM: - ppd.iSeconds = newTimeout; - break; - case TIMEOUT_PROTO: - ppd.iSeconds = 10; - break; - case TIMEOUT_PERMANENT: - ppd.iSeconds = -1; - break; - case TIMEOUT_POPUP: - default: - ppd.iSeconds = 0; - break; - } + case TIMEOUT_CUSTOM: + ppd.iSeconds = newTimeout; + break; + case TIMEOUT_PROTO: + ppd.iSeconds = 10; + break; + case TIMEOUT_PERMANENT: + ppd.iSeconds = -1; + break; + case TIMEOUT_POPUP: + default: + ppd.iSeconds = 0; + break; + } ppd.lchIcon = PluginConfig.g_buttonBarIcons[ICON_DEFAULT_TYPING]; ppd.lchContact = (HANDLE) wParam; ppd.PluginWindowProc = NULL; ppd.PluginData = NULL; - - CallService(MS_POPUP_ADDPOPUPT, (WPARAM)&ppd, 0); - + PUAddPopUpT(&ppd); } - break; } - case IDC_TIMEOUT_POPUP2: - if (wNotifyCode != BN_CLICKED) - break; - newTimeoutMode2 = TIMEOUT_POPUP; - Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE2, 0); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + + case IDC_TIMEOUT_POPUP2: + if (wNotifyCode != BN_CLICKED) break; - case IDC_TIMEOUT_CUSTOM2: - if (wNotifyCode != BN_CLICKED) - break; - newTimeoutMode2 = TIMEOUT_CUSTOM; - Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE2, 1); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + newTimeoutMode2 = TIMEOUT_POPUP; + Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE2, 0); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + + case IDC_TIMEOUT_CUSTOM2: + if (wNotifyCode != BN_CLICKED) break; - case IDC_TIMEOUT_POPUP: - if (wNotifyCode != BN_CLICKED) - break; - newTimeoutMode = TIMEOUT_POPUP; - Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE, 0); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + newTimeoutMode2 = TIMEOUT_CUSTOM; + Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE2, 1); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + + case IDC_TIMEOUT_POPUP: + if (wNotifyCode != BN_CLICKED) break; - case IDC_TIMEOUT_PERMANENT: - if (wNotifyCode != BN_CLICKED) - break; - newTimeoutMode = TIMEOUT_PERMANENT; - Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE, 0); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + newTimeoutMode = TIMEOUT_POPUP; + Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE, 0); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + + case IDC_TIMEOUT_PERMANENT: + if (wNotifyCode != BN_CLICKED) break; - case IDC_TIMEOUT_PERMANENT2: - if (wNotifyCode != BN_CLICKED) - break; - newTimeoutMode2 = TIMEOUT_PERMANENT; - Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE2, 0); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + newTimeoutMode = TIMEOUT_PERMANENT; + Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE, 0); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + + case IDC_TIMEOUT_PERMANENT2: + if (wNotifyCode != BN_CLICKED) break; - case IDC_TIMEOUT_CUSTOM: - if (wNotifyCode != BN_CLICKED) - break; - newTimeoutMode = TIMEOUT_CUSTOM; - Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE, 1); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + newTimeoutMode2 = TIMEOUT_PERMANENT; + Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE2, 0); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + + case IDC_TIMEOUT_CUSTOM: + if (wNotifyCode != BN_CLICKED) break; - case IDC_TIMEOUT_PROTO: - if (wNotifyCode != BN_CLICKED) - break; - newTimeoutMode = TIMEOUT_PROTO; - Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE, 0); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + newTimeoutMode = TIMEOUT_CUSTOM; + Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE, 1); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + + case IDC_TIMEOUT_PROTO: + if (wNotifyCode != BN_CLICKED) break; - case IDC_TIMEOUT_VALUE: - case IDC_TIMEOUT_VALUE2: { + newTimeoutMode = TIMEOUT_PROTO; + Utils::enableDlgControl(hwndDlg, IDC_TIMEOUT_VALUE, 0); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + + case IDC_TIMEOUT_VALUE: + case IDC_TIMEOUT_VALUE2: + { int newValue = GetDlgItemInt(hwndDlg, idCtrl, NULL, 0); if (wNotifyCode == EN_KILLFOCUS) { @@ -437,51 +471,45 @@ static INT_PTR CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA newTimeout2 = newValue; SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; } - } - break; } - case WM_NOTIFY: { - switch (((LPNMHDR) lParam)->idFrom) { - case 0: - switch (((LPNMHDR) lParam)->code) { - case PSN_APPLY: - for (i=0; i < sizeof(colorPicker) / sizeof(colorPicker[0]); i++) { - colorPicker[i].color = SendDlgItemMessage(hwndDlg, colorPicker[i].res, CPM_GETCOLOUR, 0, 0); - M->WriteDword(Module, colorPicker[i].desc, colorPicker[i].color); - } - - Timeout = newTimeout; - TimeoutMode = newTimeoutMode; - Timeout2 = newTimeout2; - TimeoutMode2 = newTimeoutMode2; - ColorMode = newColorMode; - - if (Disabled != IsDlgButtonChecked(hwndDlg, IDC_DISABLED)) - EnableDisableMenuCommand(0, 0); - - StartDisabled = IsDlgButtonChecked(hwndDlg, IDC_START) ? 0 : 2; - StopDisabled = IsDlgButtonChecked(hwndDlg, IDC_STOP) ? 0 : 4; - OnePopUp = IsDlgButtonChecked(hwndDlg, IDC_ONEPOPUP); - ShowMenu = IsDlgButtonChecked(hwndDlg, IDC_SHOWMENU); - - M->WriteByte(Module, SET_ONEPOPUP, OnePopUp); - M->WriteByte(Module, SET_SHOWDISABLEMENU, ShowMenu); - M->WriteByte(Module, SET_DISABLED, (BYTE) (StartDisabled | StopDisabled)); - M->WriteByte(Module, SET_COLOR_MODE, ColorMode); - M->WriteByte(Module, SET_TIMEOUT_MODE, TimeoutMode); - M->WriteByte(Module, SET_TIMEOUT, (BYTE) Timeout); - M->WriteByte(Module, SET_TIMEOUT_MODE2, TimeoutMode2); - M->WriteByte(Module, SET_TIMEOUT2, (BYTE) Timeout2); - - return TRUE; - } - break; + break; + + case WM_NOTIFY: + switch (((LPNMHDR)lParam)->idFrom) { + case 0: + switch (((LPNMHDR) lParam)->code) { + case PSN_APPLY: + for (i=0; i < sizeof(colorPicker) / sizeof(colorPicker[0]); i++) { + colorPicker[i].color = SendDlgItemMessage(hwndDlg, colorPicker[i].res, CPM_GETCOLOUR, 0, 0); + M->WriteDword(Module, colorPicker[i].desc, colorPicker[i].color); + } + + Timeout = newTimeout; TimeoutMode = newTimeoutMode; + Timeout2 = newTimeout2; TimeoutMode2 = newTimeoutMode2; + ColorMode = newColorMode; + + if (Disabled != IsDlgButtonChecked(hwndDlg, IDC_DISABLED)) + EnableDisableMenuCommand(0, 0); + + StartDisabled = IsDlgButtonChecked(hwndDlg, IDC_START) ? 0 : 2; + StopDisabled = IsDlgButtonChecked(hwndDlg, IDC_STOP) ? 0 : 4; + OnePopUp = IsDlgButtonChecked(hwndDlg, IDC_ONEPOPUP); + ShowMenu = IsDlgButtonChecked(hwndDlg, IDC_SHOWMENU); + + M->WriteByte(Module, SET_ONEPOPUP, OnePopUp); + M->WriteByte(Module, SET_SHOWDISABLEMENU, ShowMenu); + M->WriteByte(Module, SET_DISABLED, (BYTE) (StartDisabled | StopDisabled)); + M->WriteByte(Module, SET_COLOR_MODE, ColorMode); + M->WriteByte(Module, SET_TIMEOUT_MODE, TimeoutMode); + M->WriteByte(Module, SET_TIMEOUT, (BYTE) Timeout); + M->WriteByte(Module, SET_TIMEOUT_MODE2, TimeoutMode2); + M->WriteByte(Module, SET_TIMEOUT2, (BYTE) Timeout2); + return TRUE; } - break; } + break; } return FALSE; } @@ -505,16 +533,12 @@ int TN_OptionsInitialize(WPARAM wParam, LPARAM lParam) int TN_ModuleInit() { - WORD i; - - PopupService = (PluginConfig.g_PopupWAvail || PluginConfig.g_PopupAvail); - hPopUpsList = (HANDLE) CallService(MS_UTILS_ALLOCWINDOWLIST,0,0); OnePopUp = M->GetByte(Module,SET_ONEPOPUP,DEF_ONEPOPUP); ShowMenu = M->GetByte(Module,SET_SHOWDISABLEMENU,DEF_SHOWDISABLEMENU); - i = M->GetByte(Module,SET_DISABLED,DEF_DISABLED); + int i = M->GetByte(Module,SET_DISABLED,DEF_DISABLED); Disabled = i & 1; StartDisabled = i & 2; StopDisabled = i & 4; @@ -526,22 +550,21 @@ int TN_ModuleInit() Timeout2 = M->GetByte(Module,SET_TIMEOUT2,DEF_TIMEOUT2); if (!(M->GetDword(Module, colorPicker[0].desc, 1) && !M->GetDword(Module, colorPicker[0].desc, 0))) - for (i=0; i < sizeof(colorPicker) / sizeof(colorPicker[0]); i++) + for (i=0; i < SIZEOF(colorPicker); i++) colorPicker[i].color = M->GetDword(Module,colorPicker[i].desc,0); mir_sntprintf(szStart, sizeof(szStart), TranslateT("...is typing a message.")); mir_sntprintf(szStop, sizeof(szStop), TranslateT("...has stopped typing.")); - if (PopupService && ShowMenu) { + if (PluginConfig.g_PopupAvail && ShowMenu) { hTypingNotify = CreateServiceFunction("TypingNotify/EnableDisableMenuCommand", EnableDisableMenuCommand); CLISTMENUITEM mi = { sizeof(mi) }; - mi.flags = 0; - if (!Disabled) { mi.pszName = LPGEN("Disable &typing notification"); mi.hIcon = LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_ENABLED)); - } else { + } + else { mi.pszName = LPGEN("Enable &typing notification"); mi.hIcon = LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_DISABLED)); } diff --git a/plugins/TabSRMM/src/typingnotify.h b/plugins/TabSRMM/src/typingnotify.h index 03fb9851b7..e825002b73 100644 --- a/plugins/TabSRMM/src/typingnotify.h +++ b/plugins/TabSRMM/src/typingnotify.h @@ -32,45 +32,3 @@ #define DEF_SHOWDISABLEMENU 1 #define SET_ONEPOPUP "OnePopUp" #define DEF_ONEPOPUP 1 - - -static HANDLE hDisableMenu = NULL; -static HANDLE hPopUpsList = NULL; - -static BYTE OnePopUp; -static BYTE ShowMenu; -static BYTE PopupService=0; -static BYTE StartDisabled; -static BYTE StopDisabled; -static BYTE Disabled; -static BYTE ColorMode; -static BYTE TimeoutMode; -static BYTE TimeoutMode2; -static int Timeout; -static int Timeout2; -static int newTimeout; -static int newTimeout2; -static BYTE newTimeoutMode; -static BYTE newTimeoutMode2; -static BYTE newColorMode; -static TCHAR szStart[128]; -static TCHAR szStop[128]; - -static HANDLE hntfStarted = 0; -static HANDLE hntfStopped = 0; - - -struct colors_s -{ - int res; - char desc[10]; - COLORREF color; -}; - -static struct colors_s colorPicker[4] = -{ - {IDC_TYPEON_BG, "ON_BG", RGB(255,255,255)}, - {IDC_TYPEON_TX, "ON_TX", RGB(0,0,0)}, - {IDC_TYPEOFF_BG, "OFF_BG", RGB(255,255,255)}, - {IDC_TYPEOFF_TX, "OFF_TX", RGB(0,0,0)} -}; diff --git a/plugins/UserInfoEx/src/dlg_msgbox.cpp b/plugins/UserInfoEx/src/dlg_msgbox.cpp index 065f274821..0b57e0d2e8 100644 --- a/plugins/UserInfoEx/src/dlg_msgbox.cpp +++ b/plugins/UserInfoEx/src/dlg_msgbox.cpp @@ -561,132 +561,96 @@ static INT_PTR CALLBACK MsgBoxProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM l */ static INT_PTR CALLBACK MsgBoxPop(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - switch (uMsg) - { + switch (uMsg) { case WM_INITDIALOG: - { - POPUPDATAT_V2 pd; - LPMSGPOPUPDATA pmpd; - LPMSGBOX pMsgBox = (LPMSGBOX)lParam; - - MoveWindow(hDlg,-10,-10,0,0,FALSE); - pmpd = (LPMSGPOPUPDATA)mir_alloc(sizeof(MSGPOPUPDATA)); - if (pmpd) - { - ZeroMemory(&pd, sizeof(pd)); - pd.cbSize = sizeof(POPUPDATAT_V2); - pd.lchContact = NULL; //(HANDLE)wParam; - // icon - pd.lchIcon = MsgLoadIcon(pMsgBox); - mir_tcsncpy(pd.lptzContactName, pMsgBox->ptszTitle, SIZEOF(pd.lptzContactName)); - mir_tcsncpy(pd.lptzText, pMsgBox->ptszMsg, SIZEOF(pd.lptzText)); - - // CALLBAC Proc - pd.PluginWindowProc = PopupProc; - // - pd.PluginData = pmpd; - - pd.iSeconds = -1; - - pd.hNotification = NULL; - pd.lpActions = pmpd->pa; - - // set color of popup - switch (pMsgBox->uType & MB_ICONMASK) - { - case MB_ICON_ERROR: - { - pd.colorBack = RGB(200, 10, 0); - pd.colorText = RGB(255, 255, 255); - } - break; - - case MB_ICON_WARNING: - { - pd.colorBack = RGB(200, 100, 0); - pd.colorText = RGB(255, 255, 255); - } - break; + LPMSGBOX pMsgBox = (LPMSGBOX)lParam; + + MoveWindow(hDlg,-10,-10,0,0,FALSE); + LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)mir_alloc(sizeof(MSGPOPUPDATA)); + if (pmpd) { + POPUPDATAT_V2 pd = { 0 }; + pd.cbSize = sizeof(POPUPDATAT_V2); + pd.lchContact = NULL; //(HANDLE)wParam; + // icon + pd.lchIcon = MsgLoadIcon(pMsgBox); + mir_tcsncpy(pd.lptzContactName, pMsgBox->ptszTitle, SIZEOF(pd.lptzContactName)); + mir_tcsncpy(pd.lptzText, pMsgBox->ptszMsg, SIZEOF(pd.lptzText)); + + // CALLBAC Proc + pd.PluginWindowProc = PopupProc; + pd.PluginData = pmpd; + pd.iSeconds = -1; + pd.lpActions = pmpd->pa; + + // set color of popup + switch (pMsgBox->uType & MB_ICONMASK) { + case MB_ICON_ERROR: + pd.colorBack = RGB(200, 10, 0); + pd.colorText = RGB(255, 255, 255); + break; - default: - { - if (pMsgBox->uType & MB_CUSTOMCOLOR) - { - pd.colorBack = pMsgBox->colorBack; - pd.colorText = pMsgBox->colorText; - } - } - } + case MB_ICON_WARNING: + pd.colorBack = RGB(200, 100, 0); + pd.colorText = RGB(255, 255, 255); + break; - // handle for MakePopupAction - pmpd->hDialog = hDlg; + default: + if (pMsgBox->uType & MB_CUSTOMCOLOR) { + pd.colorBack = pMsgBox->colorBack; + pd.colorText = pMsgBox->colorText; + } + } - // active buttons - switch (MB_TYPE(pMsgBox->uType)) - { - case MB_OK: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDOK); - } - break; + // handle for MakePopupAction + pmpd->hDialog = hDlg; - case MB_OKCANCEL: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDOK); - MakePopupAction(pmpd->pa[pd.actionCount++], IDCANCEL); - } - break; + // active buttons + switch (MB_TYPE(pMsgBox->uType)) { + case MB_OK: + MakePopupAction(pmpd->pa[pd.actionCount++], IDOK); + break; - case MB_RETRYCANCEL: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDRETRY); - MakePopupAction(pmpd->pa[pd.actionCount++], IDCANCEL); - } - break; + case MB_OKCANCEL: + MakePopupAction(pmpd->pa[pd.actionCount++], IDOK); + MakePopupAction(pmpd->pa[pd.actionCount++], IDCANCEL); + break; - case MB_YESNO: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDYES); - MakePopupAction(pmpd->pa[pd.actionCount++], IDNO); - } - break; + case MB_RETRYCANCEL: + MakePopupAction(pmpd->pa[pd.actionCount++], IDRETRY); + MakePopupAction(pmpd->pa[pd.actionCount++], IDCANCEL); + break; - case MB_ABORTRETRYIGNORE: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDABORT); - MakePopupAction(pmpd->pa[pd.actionCount++], IDRETRY); - MakePopupAction(pmpd->pa[pd.actionCount++], IDIGNORE); - } - break; + case MB_YESNO: + MakePopupAction(pmpd->pa[pd.actionCount++], IDYES); + MakePopupAction(pmpd->pa[pd.actionCount++], IDNO); + break; - case MB_YESNOCANCEL: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDYES); - MakePopupAction(pmpd->pa[pd.actionCount++], IDNO); - MakePopupAction(pmpd->pa[pd.actionCount++], IDCANCEL); - } - break; + case MB_ABORTRETRYIGNORE: + MakePopupAction(pmpd->pa[pd.actionCount++], IDABORT); + MakePopupAction(pmpd->pa[pd.actionCount++], IDRETRY); + MakePopupAction(pmpd->pa[pd.actionCount++], IDIGNORE); + break; - case MB_YESALLNO: - { - MakePopupAction(pmpd->pa[pd.actionCount++], IDYES); - MakePopupAction(pmpd->pa[pd.actionCount++], IDALL); - MakePopupAction(pmpd->pa[pd.actionCount++], IDNO); - } - break; + case MB_YESNOCANCEL: + MakePopupAction(pmpd->pa[pd.actionCount++], IDYES); + MakePopupAction(pmpd->pa[pd.actionCount++], IDNO); + MakePopupAction(pmpd->pa[pd.actionCount++], IDCANCEL); + break; - } // end* switch + case MB_YESALLNO: + MakePopupAction(pmpd->pa[pd.actionCount++], IDYES); + MakePopupAction(pmpd->pa[pd.actionCount++], IDALL); + MakePopupAction(pmpd->pa[pd.actionCount++], IDNO); + break; + } - // create popup - CallService(MS_POPUP_ADDPOPUPT, (WPARAM) &pd, APF_NEWDATA); - if (MB_TYPE(pMsgBox->uType) == MB_OK) - { - EndDialog(hDlg, IDOK); - } - } // end*if (pmpd) - break; - } // end* WM_INITDIALOG: - } // end* switch (uMsg) + // create popup + CallService(MS_POPUP_ADDPOPUPT, (WPARAM) &pd, APF_NEWDATA); + if (MB_TYPE(pMsgBox->uType) == MB_OK) + EndDialog(hDlg, IDOK); + } + break; + } return FALSE; } @@ -702,57 +666,39 @@ static INT_PTR CALLBACK MsgBoxPop(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lP **/ static LRESULT CALLBACK PopupProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - switch (uMsg) - { - case UM_POPUPACTION: - { - if (HIWORD(wParam) == BN_CLICKED) - { - LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)PUGetPluginData(hDlg); - - if (pmpd) - { - switch (LOWORD(wParam)) - { - case IDOK: - case IDCANCEL: - case IDABORT: - case IDRETRY: - case IDIGNORE: - case IDYES: - case IDNO: - case IDALL: - case IDNONE: - { - if (IsWindow(pmpd->hDialog)) - EndDialog(pmpd->hDialog, LOWORD(wParam)); - } + switch (uMsg) { + case UM_POPUPACTION: + if (HIWORD(wParam) == BN_CLICKED) { + LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)PUGetPluginData(hDlg); + if (pmpd) { + switch (LOWORD(wParam)) { + case IDOK: + case IDCANCEL: + case IDABORT: + case IDRETRY: + case IDIGNORE: + case IDYES: + case IDNO: + case IDALL: + case IDNONE: + if (IsWindow(pmpd->hDialog)) + EndDialog(pmpd->hDialog, LOWORD(wParam)); break; - default: - { - if (IsWindow(pmpd->hDialog)) - EndDialog(pmpd->hDialog, IDCANCEL); - } - } + default: + if (IsWindow(pmpd->hDialog)) + EndDialog(pmpd->hDialog, IDCANCEL); } - PUDeletePopUp(hDlg); - } - } - break; - - case UM_FREEPLUGINDATA: - { - LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)PUGetPluginData(hDlg); - if (pmpd > 0) { - MIR_FREE(pmpd); } - return TRUE; //TRUE or FALSE is the same, it gets ignored. + PUDeletePopUp(hDlg); } break; - default: - break; + case UM_FREEPLUGINDATA: + LPMSGPOPUPDATA pmpd = (LPMSGPOPUPDATA)PUGetPluginData(hDlg); + if (pmpd > 0) + MIR_FREE(pmpd); + return TRUE; } return DefWindowProc(hDlg, uMsg, wParam, lParam); } @@ -768,28 +714,21 @@ static LRESULT CALLBACK PopupProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lP **/ INT_PTR MsgBoxService(WPARAM wParam, LPARAM lParam) { - INT rc = -1; LPMSGBOX pMsgBox = (LPMSGBOX)lParam; // check input - if (PtrIsValid(pMsgBox) && pMsgBox->cbSize == sizeof(MSGBOX)) - { + if ( PtrIsValid(pMsgBox) && pMsgBox->cbSize == sizeof(MSGBOX)) { // Shall the MessageBox displayed as popup? if (!(pMsgBox->uType & (MB_INFOBAR|MB_NOPOPUP)) && // message box can be a popup? ServiceExists(MS_POPUP_ADDPOPUPT) && // popups exist? myGlobals.PopUpActionsExist == 1 && // popup support ext stuct? (DB::Setting::GetDWord(NULL, "PopUp","Actions", 0) & 1) && // popup++ actions on? - DB::Setting::GetByte(SET_POPUPMSGBOX, DEFVAL_POPUPMSGBOX) // user likes popups? - ) - { - rc = DialogBoxParam(ghInst, MAKEINTRESOURCE(IDD_MSGBOXDUMMI), pMsgBox->hParent, MsgBoxPop, lParam); - } - else - { - rc = DialogBoxParam(ghInst, MAKEINTRESOURCE(IDD_MSGBOX), pMsgBox->hParent, MsgBoxProc, lParam); - } + DB::Setting::GetByte(SET_POPUPMSGBOX, DEFVAL_POPUPMSGBOX)) // user likes popups? + return DialogBoxParam(ghInst, MAKEINTRESOURCE(IDD_MSGBOXDUMMI), pMsgBox->hParent, MsgBoxPop, lParam); + + return DialogBoxParam(ghInst, MAKEINTRESOURCE(IDD_MSGBOX), pMsgBox->hParent, MsgBoxProc, lParam); } - return rc; + return -1; } /** @@ -799,22 +738,22 @@ INT_PTR MsgBoxService(WPARAM wParam, LPARAM lParam) **/ INT_PTR CALLBACK MsgBox(HWND hParent, UINT uType, LPTSTR pszTitle, LPTSTR pszInfo, LPTSTR pszFormat, ...) { - MSGBOX mb = {0}; - TCHAR tszMsg[MAX_SECONDLINE]; - va_list vl; + TCHAR tszMsg[MAX_SECONDLINE]; + va_list vl; va_start(vl, pszFormat); mir_vsntprintf(tszMsg, SIZEOF(tszMsg), TranslateTS(pszFormat), vl); va_end(vl); - mb.cbSize = sizeof(MSGBOX); - mb.hParent = hParent; - mb.hiLogo = LoadIcon(ghInst, MAKEINTRESOURCE(IDI_MAIN)); - mb.hiMsg = NULL; - mb.ptszTitle = TranslateTS(pszTitle); - mb.ptszInfoText = TranslateTS(pszInfo); - mb.ptszMsg = tszMsg; - mb.uType = uType; + MSGBOX mb = {0}; + mb.cbSize = sizeof(MSGBOX); + mb.hParent = hParent; + mb.hiLogo = LoadIcon(ghInst, MAKEINTRESOURCE(IDI_MAIN)); + mb.hiMsg = NULL; + mb.ptszTitle = TranslateTS(pszTitle); + mb.ptszInfoText = TranslateTS(pszInfo); + mb.ptszMsg = tszMsg; + mb.uType = uType; return MsgBoxService(NULL, (LPARAM)&mb); } @@ -825,23 +764,21 @@ INT_PTR CALLBACK MsgBox(HWND hParent, UINT uType, LPTSTR pszTitle, LPTSTR pszInf **/ INT_PTR CALLBACK MsgErr(HWND hParent, LPCTSTR pszFormat, ...) { - MSGBOX mb = {0}; - TCHAR tszTitle[MAX_SECONDLINE]; - TCHAR tszMsg[MAX_SECONDLINE]; - va_list vl; - + TCHAR tszTitle[MAX_SECONDLINE], tszMsg[MAX_SECONDLINE]; mir_sntprintf(tszTitle, SIZEOF(tszMsg),_T("%s - %s") ,_T(MODNAME), TranslateT("Error")); + va_list vl; va_start(vl, pszFormat); mir_vsntprintf(tszMsg, SIZEOF(tszMsg), TranslateTS(pszFormat), vl); va_end(vl); - mb.cbSize = sizeof(MSGBOX); - mb.hParent = hParent; - mb.hiLogo = LoadIcon(ghInst, MAKEINTRESOURCE(IDI_MAIN)); - mb.hiMsg = NULL; - mb.ptszTitle = tszTitle; - mb.ptszMsg = tszMsg; - mb.uType = MB_OK|MB_ICON_ERROR; + MSGBOX mb = {0}; + mb.cbSize = sizeof(MSGBOX); + mb.hParent = hParent; + mb.hiLogo = LoadIcon(ghInst, MAKEINTRESOURCE(IDI_MAIN)); + mb.hiMsg = NULL; + mb.ptszTitle = tszTitle; + mb.ptszMsg = tszMsg; + mb.uType = MB_OK|MB_ICON_ERROR; return MsgBoxService(NULL, (LPARAM)&mb); } diff --git a/plugins/UserInfoEx/src/psp_options.cpp b/plugins/UserInfoEx/src/psp_options.cpp index ac7bc94f34..2a2af80bd3 100644 --- a/plugins/UserInfoEx/src/psp_options.cpp +++ b/plugins/UserInfoEx/src/psp_options.cpp @@ -1099,176 +1099,138 @@ static INT_PTR CALLBACK DlgProc_Popups(HWND hDlg, UINT uMsg, WPARAM wParam, LPAR break; case WM_COMMAND: - { - switch (LOWORD(wParam)) + switch (LOWORD(wParam)) { + case BTN_PREVIEW: { - case BTN_PREVIEW: - { - POPUPDATAT_V2 ppd; - - ZeroMemory(&ppd, sizeof(POPUPDATAT_V2)); - ppd.iSeconds = (INT)DB::Setting::GetByte(SET_POPUP_DELAY, 0); - mir_tcsncpy(ppd.lptzText, TranslateT("This is the reminder message"), MAX_SECONDLINE); - - // Birthday - mir_tcsncpy(ppd.lptzContactName, TranslateT("Birthday"), SIZEOF(ppd.lptzContactName)); - ppd.lchIcon = IcoLib_GetIcon(ICO_RMD_DTB0); - if (IsDlgButtonChecked(hDlg, CHECK_OPT_POPUP_WINCLR)) - { - ppd.colorBack = GetSysColor(COLOR_BTNFACE); - ppd.colorText = GetSysColor(COLOR_WINDOWTEXT); - } - else if (!IsDlgButtonChecked(hDlg, CHECK_OPT_POPUP_DEFCLR)) - { - ppd.colorBack = SendDlgItemMessage(hDlg, CLR_BBACK, CPM_GETCOLOUR, 0, 0); - ppd.colorText = SendDlgItemMessage(hDlg, CLR_BTEXT, CPM_GETCOLOUR, 0, 0); - } - PUAddPopUpT(&ppd); - - // Anniversary - mir_tcsncpy(ppd.lptzContactName, TranslateT("Anniversary"), SIZEOF(ppd.lptzContactName)); - ppd.lchIcon = IcoLib_GetIcon(ICO_RMD_DTAX); - if (IsDlgButtonChecked(hDlg, CHECK_OPT_POPUP_WINCLR)) - { - ppd.colorBack = GetSysColor(COLOR_BTNFACE); - ppd.colorText = GetSysColor(COLOR_WINDOWTEXT); - } - else if (IsDlgButtonChecked(hDlg, CHECK_OPT_POPUP_DEFCLR)) - { - ppd.colorBack = 0; - ppd.colorText = 0; - } - else - { - ppd.colorBack = SendDlgItemMessage(hDlg, CLR_ABACK, CPM_GETCOLOUR, 0, 0); - ppd.colorText = SendDlgItemMessage(hDlg, CLR_ATEXT, CPM_GETCOLOUR, 0, 0); - } - PUAddPopUpT(&ppd); + POPUPDATAT ppd = { 0 }; + ppd.iSeconds = (INT)DB::Setting::GetByte(SET_POPUP_DELAY, 0); + mir_tcsncpy(ppd.lptzText, TranslateT("This is the reminder message"), MAX_SECONDLINE); + + // Birthday + mir_tcsncpy(ppd.lptzContactName, TranslateT("Birthday"), SIZEOF(ppd.lptzContactName)); + ppd.lchIcon = IcoLib_GetIcon(ICO_RMD_DTB0); + if (IsDlgButtonChecked(hDlg, CHECK_OPT_POPUP_WINCLR)) { + ppd.colorBack = GetSysColor(COLOR_BTNFACE); + ppd.colorText = GetSysColor(COLOR_WINDOWTEXT); } - break; - - case CHECK_OPT_POPUP_MSGBOX: - case CHECK_OPT_POPUP_PROGRESS: - { - if (bInitialized) - { - NotifyParentOfChange(hDlg); - } + else if (!IsDlgButtonChecked(hDlg, CHECK_OPT_POPUP_DEFCLR)) { + ppd.colorBack = SendDlgItemMessage(hDlg, CLR_BBACK, CPM_GETCOLOUR, 0, 0); + ppd.colorText = SendDlgItemMessage(hDlg, CLR_BTEXT, CPM_GETCOLOUR, 0, 0); } - break; + PUAddPopUpT(&ppd); + + // Anniversary + mir_tcsncpy(ppd.lptzContactName, TranslateT("Anniversary"), SIZEOF(ppd.lptzContactName)); + ppd.lchIcon = IcoLib_GetIcon(ICO_RMD_DTAX); + if (IsDlgButtonChecked(hDlg, CHECK_OPT_POPUP_WINCLR)) { + ppd.colorBack = GetSysColor(COLOR_BTNFACE); + ppd.colorText = GetSysColor(COLOR_WINDOWTEXT); + } + else if (IsDlgButtonChecked(hDlg, CHECK_OPT_POPUP_DEFCLR)) { + ppd.colorBack = 0; + ppd.colorText = 0; + } + else { + ppd.colorBack = SendDlgItemMessage(hDlg, CLR_ABACK, CPM_GETCOLOUR, 0, 0); + ppd.colorText = SendDlgItemMessage(hDlg, CLR_ATEXT, CPM_GETCOLOUR, 0, 0); + } + PUAddPopUpT(&ppd); + } + break; - case CHECK_OPT_POPUP_ENABLED: - { - if (HIWORD(wParam) == BN_CLICKED) - { - const BOOL bEnabled = SendMessage((HWND)lParam, BM_GETCHECK, NULL, NULL); - const INT idCtrl[] = { - CHECK_OPT_POPUP_DEFCLR, CHECK_OPT_POPUP_WINCLR, - CLR_BBACK, TXT_OPT_POPUP_CLR_BACK, - CLR_BTEXT, TXT_OPT_POPUP_CLR_TEXT, - CHECK_OPT_POPUP_ADEFCLR, CHECK_OPT_POPUP_AWINCLR, - CLR_ABACK, TXT_OPT_POPUP_CLR_ABACK, - CLR_ATEXT, TXT_OPT_POPUP_CLR_ATEXT, - RADIO_OPT_POPUP_DEFAULT, RADIO_OPT_POPUP_CUSTOM, - RADIO_OPT_POPUP_PERMANENT, EDIT_DELAY - }; + case CHECK_OPT_POPUP_MSGBOX: + case CHECK_OPT_POPUP_PROGRESS: + if (bInitialized) + NotifyParentOfChange(hDlg); + break; + + case CHECK_OPT_POPUP_ENABLED: + if (HIWORD(wParam) == BN_CLICKED) { + const BOOL bEnabled = SendMessage((HWND)lParam, BM_GETCHECK, NULL, NULL); + const INT idCtrl[] = { + CHECK_OPT_POPUP_DEFCLR, CHECK_OPT_POPUP_WINCLR, + CLR_BBACK, TXT_OPT_POPUP_CLR_BACK, + CLR_BTEXT, TXT_OPT_POPUP_CLR_TEXT, + CHECK_OPT_POPUP_ADEFCLR, CHECK_OPT_POPUP_AWINCLR, + CLR_ABACK, TXT_OPT_POPUP_CLR_ABACK, + CLR_ATEXT, TXT_OPT_POPUP_CLR_ATEXT, + RADIO_OPT_POPUP_DEFAULT, RADIO_OPT_POPUP_CUSTOM, + RADIO_OPT_POPUP_PERMANENT, EDIT_DELAY + }; - EnableControls(hDlg, idCtrl, SIZEOF(idCtrl), bEnabled); + EnableControls(hDlg, idCtrl, SIZEOF(idCtrl), bEnabled); - if (bInitialized) - { - NotifyParentOfChange(hDlg); - } - } - } - break; + if (bInitialized) + NotifyParentOfChange(hDlg); + } + break; - case CHECK_OPT_POPUP_DEFCLR: - case CHECK_OPT_POPUP_WINCLR: - { - if (HIWORD(wParam) == BN_CLICKED) - { - INT bDefClr = SendDlgItemMessage(hDlg, CHECK_OPT_POPUP_DEFCLR, BM_GETCHECK, NULL, NULL); - INT bWinClr = SendDlgItemMessage(hDlg, CHECK_OPT_POPUP_WINCLR, BM_GETCHECK, NULL, NULL); - - EnableDlgItem(hDlg, CHECK_OPT_POPUP_DEFCLR, !bWinClr); - EnableDlgItem(hDlg, CHECK_OPT_POPUP_WINCLR, !bDefClr); - EnableDlgItem(hDlg, CLR_BBACK, !(bDefClr || bWinClr)); - EnableDlgItem(hDlg, TXT_OPT_POPUP_CLR_BACK, !(bDefClr || bWinClr)); - EnableDlgItem(hDlg, CLR_BTEXT, !(bDefClr || bWinClr)); - EnableDlgItem(hDlg, TXT_OPT_POPUP_CLR_TEXT, !(bDefClr || bWinClr)); - if (bInitialized) - { - NotifyParentOfChange(hDlg); - } - } - } - break; + case CHECK_OPT_POPUP_DEFCLR: + case CHECK_OPT_POPUP_WINCLR: + if (HIWORD(wParam) == BN_CLICKED) { + INT bDefClr = SendDlgItemMessage(hDlg, CHECK_OPT_POPUP_DEFCLR, BM_GETCHECK, NULL, NULL); + INT bWinClr = SendDlgItemMessage(hDlg, CHECK_OPT_POPUP_WINCLR, BM_GETCHECK, NULL, NULL); + + EnableDlgItem(hDlg, CHECK_OPT_POPUP_DEFCLR, !bWinClr); + EnableDlgItem(hDlg, CHECK_OPT_POPUP_WINCLR, !bDefClr); + EnableDlgItem(hDlg, CLR_BBACK, !(bDefClr || bWinClr)); + EnableDlgItem(hDlg, TXT_OPT_POPUP_CLR_BACK, !(bDefClr || bWinClr)); + EnableDlgItem(hDlg, CLR_BTEXT, !(bDefClr || bWinClr)); + EnableDlgItem(hDlg, TXT_OPT_POPUP_CLR_TEXT, !(bDefClr || bWinClr)); + if (bInitialized) + NotifyParentOfChange(hDlg); + } + break; - case CHECK_OPT_POPUP_ADEFCLR: - case CHECK_OPT_POPUP_AWINCLR: - { - if (HIWORD(wParam) == BN_CLICKED) - { - INT bDefClr = SendDlgItemMessage(hDlg, CHECK_OPT_POPUP_ADEFCLR, BM_GETCHECK, NULL, NULL); - INT bWinClr = SendDlgItemMessage(hDlg, CHECK_OPT_POPUP_AWINCLR, BM_GETCHECK, NULL, NULL); - - EnableDlgItem(hDlg, CHECK_OPT_POPUP_ADEFCLR, !bWinClr); - EnableDlgItem(hDlg, CHECK_OPT_POPUP_AWINCLR, !bDefClr); - EnableDlgItem(hDlg, CLR_ABACK, !(bDefClr || bWinClr)); - EnableDlgItem(hDlg, TXT_OPT_POPUP_CLR_ABACK, !(bDefClr || bWinClr)); - EnableDlgItem(hDlg, CLR_ATEXT, !(bDefClr || bWinClr)); - EnableDlgItem(hDlg, TXT_OPT_POPUP_CLR_ATEXT, !(bDefClr || bWinClr)); - if (bInitialized) - { - NotifyParentOfChange(hDlg); - } - } - } - break; + case CHECK_OPT_POPUP_ADEFCLR: + case CHECK_OPT_POPUP_AWINCLR: + if (HIWORD(wParam) == BN_CLICKED) { + INT bDefClr = SendDlgItemMessage(hDlg, CHECK_OPT_POPUP_ADEFCLR, BM_GETCHECK, NULL, NULL); + INT bWinClr = SendDlgItemMessage(hDlg, CHECK_OPT_POPUP_AWINCLR, BM_GETCHECK, NULL, NULL); + + EnableDlgItem(hDlg, CHECK_OPT_POPUP_ADEFCLR, !bWinClr); + EnableDlgItem(hDlg, CHECK_OPT_POPUP_AWINCLR, !bDefClr); + EnableDlgItem(hDlg, CLR_ABACK, !(bDefClr || bWinClr)); + EnableDlgItem(hDlg, TXT_OPT_POPUP_CLR_ABACK, !(bDefClr || bWinClr)); + EnableDlgItem(hDlg, CLR_ATEXT, !(bDefClr || bWinClr)); + EnableDlgItem(hDlg, TXT_OPT_POPUP_CLR_ATEXT, !(bDefClr || bWinClr)); + if (bInitialized) + NotifyParentOfChange(hDlg); + } + break; - case RADIO_OPT_POPUP_DEFAULT: - if (HIWORD(wParam) == BN_CLICKED) - { - EnableDlgItem(hDlg, EDIT_DELAY, FALSE); - if (bInitialized) - { - NotifyParentOfChange(hDlg); - } - } - break; - case RADIO_OPT_POPUP_CUSTOM: - if (HIWORD(wParam) == BN_CLICKED) - { - EnableDlgItem(hDlg, EDIT_DELAY, TRUE); - if (bInitialized) - { - NotifyParentOfChange(hDlg); - } - } - break; - case RADIO_OPT_POPUP_PERMANENT: - if (HIWORD(wParam) == BN_CLICKED) - { - EnableDlgItem(hDlg, EDIT_DELAY, FALSE); - if (bInitialized) - { - NotifyParentOfChange(hDlg); - } - } - break; - case EDIT_DELAY: - if (bInitialized && HIWORD(wParam) == EN_UPDATE) - { + case RADIO_OPT_POPUP_DEFAULT: + if (HIWORD(wParam) == BN_CLICKED) { + EnableDlgItem(hDlg, EDIT_DELAY, FALSE); + if (bInitialized) NotifyParentOfChange(hDlg); - } - break; - default: - if (bInitialized && HIWORD(wParam) == CPN_COLOURCHANGED) - { + } + break; + + case RADIO_OPT_POPUP_CUSTOM: + if (HIWORD(wParam) == BN_CLICKED) { + EnableDlgItem(hDlg, EDIT_DELAY, TRUE); + if (bInitialized) NotifyParentOfChange(hDlg); - } } + break; + + case RADIO_OPT_POPUP_PERMANENT: + if (HIWORD(wParam) == BN_CLICKED) { + EnableDlgItem(hDlg, EDIT_DELAY, FALSE); + if (bInitialized) + NotifyParentOfChange(hDlg); + } + break; + + case EDIT_DELAY: + if (bInitialized && HIWORD(wParam) == EN_UPDATE) + NotifyParentOfChange(hDlg); + break; + + default: + if (bInitialized && HIWORD(wParam) == CPN_COLOURCHANGED) + NotifyParentOfChange(hDlg); } } return FALSE; diff --git a/plugins/UserInfoEx/src/svc_refreshci.cpp b/plugins/UserInfoEx/src/svc_refreshci.cpp index 74878359bb..d61aad666b 100644 --- a/plugins/UserInfoEx/src/svc_refreshci.cpp +++ b/plugins/UserInfoEx/src/svc_refreshci.cpp @@ -424,9 +424,7 @@ public: **/ virtual HWND Create(LPCTSTR szTitle, PUpdCallback pFnCallBack) { - POPUPDATAT_V2 pd; - - ZeroMemory(&pd, sizeof(POPUPDATAT_V2)); + POPUPDATAT_V2 pd = { 0 }; pd.cbSize = sizeof(POPUPDATAT_V2); pd.lchIcon = IcoLib_GetIcon(ICO_BTN_UPDATE); pd.iSeconds = -1; diff --git a/plugins/UserInfoEx/src/svc_reminder.cpp b/plugins/UserInfoEx/src/svc_reminder.cpp index 3bfc5b6084..c5112d2a54 100644 --- a/plugins/UserInfoEx/src/svc_reminder.cpp +++ b/plugins/UserInfoEx/src/svc_reminder.cpp @@ -254,31 +254,24 @@ static INT NotifyWithPopup(HANDLE hContact, CEvent::EType eventType, INT DaysToA { if (gRemindOpts.bPopups) { - POPUPDATAT_V2 ppd; - - ZeroMemory(&ppd, sizeof(POPUPDATAT_V2)); + POPUPDATAT ppd = { 0 }; ppd.PluginWindowProc = PopupWindowProc; ppd.iSeconds = (INT)DB::Setting::GetByte(SET_POPUP_DELAY, 0); - if (hContact) - { + if (hContact) { ppd.lchContact = hContact; mir_sntprintf(ppd.lptzContactName, SIZEOF(ppd.lptzContactName), _T("%s - %s"), TranslateTS(pszDesc), DB::Contact::DisplayName(hContact)); } - else - { - mir_tcsncpy(ppd.lptzContactName, TranslateT("Reminder"), SIZEOF(ppd.lptzContactName)); - } + else mir_tcsncpy(ppd.lptzContactName, TranslateT("Reminder"), SIZEOF(ppd.lptzContactName)); + mir_tcsncpy(ppd.lptzText, pszMsg, MAX_SECONDLINE); ppd.lchIcon = GetAnnivIcon(CEvent(eventType, DaysToAnniv)); - switch (eventType) - { + switch (eventType) { case CEvent::BIRTHDAY: - switch (DB::Setting::GetByte(SET_POPUP_BIRTHDAY_COLORTYPE, POPUP_COLOR_CUSTOM)) - { + switch (DB::Setting::GetByte(SET_POPUP_BIRTHDAY_COLORTYPE, POPUP_COLOR_CUSTOM)) { case POPUP_COLOR_WINDOWS: ppd.colorBack = GetSysColor(COLOR_BTNFACE); ppd.colorText = GetSysColor(COLOR_WINDOWTEXT); @@ -292,8 +285,7 @@ static INT NotifyWithPopup(HANDLE hContact, CEvent::EType eventType, INT DaysToA break; case CEvent::ANNIVERSARY: - switch (DB::Setting::GetByte(SET_POPUP_ANNIVERSARY_COLORTYPE, POPUP_COLOR_CUSTOM)) - { + switch (DB::Setting::GetByte(SET_POPUP_ANNIVERSARY_COLORTYPE, POPUP_COLOR_CUSTOM)) { case POPUP_COLOR_WINDOWS: ppd.colorBack = GetSysColor(COLOR_BTNFACE); ppd.colorText = GetSysColor(COLOR_WINDOWTEXT); -- cgit v1.2.3