summaryrefslogtreecommitdiff
path: root/plugins/ChangeKeyboardLayout/hook_events.cpp
diff options
context:
space:
mode:
authorVadim Dashevskiy <watcherhd@gmail.com>2012-07-09 07:51:11 +0000
committerVadim Dashevskiy <watcherhd@gmail.com>2012-07-09 07:51:11 +0000
commit226e4fb73c7cc9fe7aa8d7e2afe9afc124a51cb7 (patch)
tree8c425311bfaf8199af2b55745f9cc7908184bdd6 /plugins/ChangeKeyboardLayout/hook_events.cpp
parentfb601ef6dc92cfcb1ce60fc7e93faae774a98b20 (diff)
changekeyboardlayout: changed folder structure
git-svn-id: http://svn.miranda-ng.org/main/trunk@872 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/ChangeKeyboardLayout/hook_events.cpp')
-rw-r--r--plugins/ChangeKeyboardLayout/hook_events.cpp291
1 files changed, 0 insertions, 291 deletions
diff --git a/plugins/ChangeKeyboardLayout/hook_events.cpp b/plugins/ChangeKeyboardLayout/hook_events.cpp
deleted file mode 100644
index 5c94609252..0000000000
--- a/plugins/ChangeKeyboardLayout/hook_events.cpp
+++ /dev/null
@@ -1,291 +0,0 @@
-#include "hook_events.h"
-
-INT_PTR APIChangeLayout(WPARAM wParam, LPARAM lParam)
-{
- BOOL CurrentWord;
- CurrentWord = moOptions.CurrentWordLayout;
- return ChangeLayout((HWND)wParam, TOT_Layout, CurrentWord);
-}
-
-INT_PTR APIGetLayoutOfText(WPARAM wParam, LPARAM lParam)
-{
- LPTSTR ptszInText;
- ptszInText = (TCHAR*)lParam;
- return (int) GetLayoutOfText(ptszInText);
-}
-
-INT_PTR APIChangeTextLayout(WPARAM wParam, LPARAM lParam)
-{
- LPTSTR ptszInText;
- CKLLayouts *ckllFromToLay;
-
- ptszInText = (TCHAR*)wParam;
- ckllFromToLay = (CKLLayouts*)lParam;
-
- return (int) ChangeTextLayout(ptszInText, ckllFromToLay->hklFrom, ckllFromToLay->hklTo, ckllFromToLay->bTwoWay);
-}
-
-void ReadMainOptions()
-{
- moOptions.dwHotkey_Layout = DBGetContactSettingDword(NULL, ModuleName, "HotkeyLayout", 119);
- moOptions.dwHotkey_Layout2 = DBGetContactSettingDword(NULL, ModuleName, "HotkeyLayout2", 120);
- moOptions.dwHotkey_Case = DBGetContactSettingDword(NULL, ModuleName, "HotkeyCase", 121);
- moOptions.CurrentWordLayout = DBGetContactSettingByte(NULL, ModuleName, "CurrentWordLayout", 0);
- moOptions.CurrentWordLayout2 = DBGetContactSettingByte(NULL, ModuleName, "CurrentWordLayout2", 1);
- moOptions.CurrentWordCase = DBGetContactSettingByte(NULL, ModuleName, "CurrentWordCase", 0);
- moOptions.TwoWay = DBGetContactSettingByte(NULL, ModuleName, "TwoWay", 1);
- moOptions.ChangeSystemLayout = DBGetContactSettingByte(NULL, ModuleName, "ChangeSystemLayout", 1);
- moOptions.CopyToClipboard = DBGetContactSettingByte(NULL, ModuleName, "CopyToClipboard", 0);
- moOptions.ShowPopup = DBGetContactSettingByte(NULL, ModuleName, "ShowPopup", 1);
- moOptions.bCaseOperations = DBGetContactSettingByte(NULL, ModuleName, "CaseOperations", 0);
-}
-
-void WriteMainOptions()
-{
- DBWriteContactSettingDword(NULL, ModuleName, "HotkeyLayout", moOptions.dwHotkey_Layout);
- DBWriteContactSettingDword(NULL, ModuleName, "HotkeyLayout2", moOptions.dwHotkey_Layout2);
- DBWriteContactSettingDword(NULL, ModuleName, "HotkeyCase", moOptions.dwHotkey_Case);
- DBWriteContactSettingByte(NULL, ModuleName, "CurrentWordLayout", moOptions.CurrentWordLayout);
- DBWriteContactSettingByte(NULL, ModuleName, "CurrentWordLayout2", moOptions.CurrentWordLayout2);
- DBWriteContactSettingByte(NULL, ModuleName, "CurrentWordCase", moOptions.CurrentWordCase);
- DBWriteContactSettingByte(NULL, ModuleName, "TwoWay", moOptions.TwoWay);
- DBWriteContactSettingByte(NULL, ModuleName, "ChangeSystemLayout", moOptions.ChangeSystemLayout);
- DBWriteContactSettingByte(NULL, ModuleName, "CopyToClipboard", moOptions.CopyToClipboard);
- DBWriteContactSettingByte(NULL, ModuleName, "ShowPopup", moOptions.ShowPopup);
- DBWriteContactSettingByte(NULL, ModuleName, "CaseOperations", moOptions.bCaseOperations);
-}
-
-
-void ReadPopupOptions()
-{
- poOptions.bColourType = DBGetContactSettingByte(NULL, ModuleName, "ColourType", 0);
- poOptions.crBackColour = (COLORREF)DBGetContactSettingDword(NULL, ModuleName, "BackColor", 0xD2CABF);
- poOptions.crTextColour = (COLORREF)DBGetContactSettingDword(NULL, ModuleName, "TextColor", 0x000000);
- poOptions.bTimeoutType = DBGetContactSettingByte(NULL, ModuleName, "TimeoutType", 0);
- poOptions.bTimeout = DBGetContactSettingByte(NULL, ModuleName, "Timeout", 10);
- poOptions.bLeftClick = DBGetContactSettingByte(NULL, ModuleName, "LeftClick", 0);
- poOptions.bRightClick = DBGetContactSettingByte(NULL, ModuleName, "RightClick", 1);
-}
-
-void WritePopupOptions()
-{
- DBWriteContactSettingByte(NULL, ModuleName, "ColourType", poOptions.bColourType);
- DBWriteContactSettingDword(NULL, ModuleName, "BackColor", poOptions.crBackColour);
- DBWriteContactSettingDword(NULL, ModuleName, "TextColor", poOptions.crTextColour);
- DBWriteContactSettingByte(NULL, ModuleName, "TimeoutType", poOptions.bTimeoutType);
- DBWriteContactSettingByte(NULL, ModuleName, "Timeout", poOptions.bTimeout);
- DBWriteContactSettingByte(NULL, ModuleName, "LeftClick", poOptions.bLeftClick);
- DBWriteContactSettingByte(NULL, ModuleName, "RightClick", poOptions.bRightClick);
-}
-
-void RegPopupActions()
-{
- if (ServiceExists(MS_POPUP_ADDPOPUP))
- {
- poOptions.paActions[0].cbSize = sizeof(POPUPACTION);
- strcpy(poOptions.paActions[0].lpzTitle, ModuleName);
- strcat(poOptions.paActions[0].lpzTitle, "/Copy to clipboard");
- poOptions.paActions[0].flags = PAF_ENABLED;
- poOptions.paActions[0].wParam = poOptions.paActions[0].lParam = 0;
- poOptions.paActions[0].lchIcon = hCopyIcon;
- CallService(MS_POPUP_REGISTERACTIONS, (WPARAM)&poOptions.paActions, 1);
- }
-}
-
-int OnIconsChanged(WPARAM wParam, LPARAM lParam)
-{
- hPopupIcon = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)"ckl_popup_icon");
- hCopyIcon = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)"ckl_copy_icon");
- RegPopupActions();
- return 0;
-}
-
-
-int ModulesLoaded(WPARAM wParam, LPARAM lParam)
-{
- int i, iRes;
- DBVARIANT dbv = {0};
- LPCTSTR ptszEmptySting = _T("");
- LPTSTR ptszCurrLayout;
- LPSTR ptszTemp;
-
- SKINICONDESC sid = {0};
- TCHAR szFile[MAX_PATH];
-
-
- //Заполняем конфигурационные строки из базы. Если их там нет - генерируем.
- for (i = 0; i < bLayNum; i++)
- {
- ptszCurrLayout = GenerateLayoutString(hklLayouts[i]);
- ptszTemp = GetNameOfLayout(hklLayouts[i]);
- iRes = DBGetContactSettingTString(NULL, ModuleName, ptszTemp, &dbv);
- if (iRes != 0)
- ptszLayStrings[i] = ptszCurrLayout;
- else
- if(_tcscmp((dbv.ptszVal), ptszEmptySting) == 0)
- {
- ptszLayStrings[i] = ptszCurrLayout;
- mir_free(dbv.ptszVal);
- }
- else
- {
- ptszLayStrings[i] = dbv.ptszVal;
- if(_tcscmp(ptszCurrLayout, ptszLayStrings[i]) == 0)
- DBDeleteContactSetting(NULL, ModuleName, ptszTemp);
- mir_free(ptszCurrLayout);
- }
- mir_free(ptszTemp);
- }
-
- // Прочитаем основные настройки
- ReadMainOptions();
-
- // Прочитаем настройки попапов
- ReadPopupOptions();
-
- // Зарегим звук
- SkinAddNewSoundEx(SND_ChangeLayout, ModuleName, LPGEN("Changing Layout"));
- SkinAddNewSoundEx(SND_ChangeCase, ModuleName, LPGEN("Changing Case"));
-
- // Хук на нажатие клавиши
- kbHook_All = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)Keyboard_Hook, NULL, GetCurrentThreadId());
-
- // Зарегим сервисы
- hChangeLayout = CreateServiceFunction(MS_CKL_CHANGELAYOUT, APIChangeLayout);
- hGetLayoutOfText = CreateServiceFunction(MS_CKL_GETLAYOUTOFTEXT, APIGetLayoutOfText);
- hChangeTextLayout = CreateServiceFunction(MS_CKL_CHANGETEXTLAYOUT, APIChangeTextLayout);
-
- // IcoLib support
- GetModuleFileName(hInst, szFile, MAX_PATH);
- sid.ptszDefaultFile = szFile;
- sid.cbSize = sizeof(sid);
- sid.flags = SIDF_PATH_TCHAR;
-
- sid.pszSection = Translate(ModuleName);
- sid.pszDescription = Translate("Popup");
- sid.pszName = "ckl_popup_icon";
- sid.iDefaultIndex = -IDI_POPUPICON;
- Skin_AddIcon(&sid);
-
- sid.pszDescription = Translate("Copy to clipboard");
- sid.pszName = "ckl_copy_icon";
- sid.iDefaultIndex = -IDI_COPYICON;
- Skin_AddIcon(&sid);
-
- hIcoLibIconsChanged = HookEvent(ME_SKIN2_ICONSCHANGED, OnIconsChanged);
-
- OnIconsChanged(0, 0);
- RegPopupActions();
-
- DBWriteContactSettingDword(NULL, ModuleName, "CurrentVer", VERSION);
- return 0;
-}
-
-int OnOptionsInitialise(WPARAM wParam, LPARAM lParam)
-{
- OPTIONSDIALOGPAGE odp = {0};
-
- odp.cbSize = sizeof(odp);
- odp.hInstance = hInst;
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_MAIN_OPTION_FORM);
- odp.pszTitle = ModuleName;
- odp.pszGroup = LPGEN("Plugins");
- odp.flags = ODPF_BOLDGROUPS;
- odp.pfnDlgProc = DlgMainProcOptions;
- Options_AddPage(wParam, &odp);
-
- if (ServiceExists(MS_POPUP_ADDPOPUP)) {
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_POPUP_OPTION_FORM);
- odp.pszGroup = LPGEN("PopUps");
- odp.pfnDlgProc = DlgPopupsProcOptions;
- Options_AddPage(wParam, &odp);
- }
- return 0;
-}
-
-
-
-LRESULT CALLBACK Keyboard_Hook(int code, WPARAM wParam, LPARAM lParam)
-{
- DWORD lcode;
-
- if (code == HC_ACTION)
- {
- lcode = 0;
- if ((GetKeyState(VK_SHIFT)&0x8000)) lcode |= HOTKEYF_SHIFT;
- if ((GetKeyState(VK_CONTROL)&0x8000)) lcode |= HOTKEYF_CONTROL;
- if ((GetKeyState(VK_MENU)&0x8000)) lcode |= HOTKEYF_ALT;
- if ((GetKeyState(VK_LWIN)&0x8000)||(GetKeyState(VK_RWIN)&0x8000)) lcode |= HOTKEYF_EXT;
- lcode = lcode<<8;
-
- if ((wParam != VK_SHIFT) && (wParam != VK_MENU) && (wParam != VK_CONTROL) && (wParam != VK_LWIN) && (wParam != VK_RWIN))
- lcode += wParam;
-
- // Проверка на пустой хоткей. Иначе - пиздец, как в версии 1.4
- if (lcode != 0)
- if ((lcode == moOptions.dwHotkey_Layout) && (!(lParam&0x40000000)))
- {
- ChangeLayout(NULL, TOT_Layout, moOptions.CurrentWordLayout);
- return 1;
- }
- else
- if ((lcode == moOptions.dwHotkey_Layout2) && (!(lParam&0x40000000)))
- {
- ChangeLayout(NULL, TOT_Layout, moOptions.CurrentWordLayout2);
- return 1;
- }
- else
- if ((lcode == moOptions.dwHotkey_Case) && (!(lParam&0x40000000)))
- {
- ChangeLayout(NULL, TOT_Case, moOptions.CurrentWordCase);
- return 1;
- }
- }
- return CallNextHookEx(kbHook_All, code, wParam, lParam);
-}
-
-int CALLBACK CKLPopupDlgProc(HWND hWnd, UINT uiMessage, WPARAM wParam, LPARAM lParam)
-{
- LPTSTR ptszPopupText;
-
- ptszPopupText = (LPTSTR)CallService(MS_POPUP_GETPLUGINDATA, (WPARAM)hWnd, (LPARAM)&ptszPopupText);
- switch(uiMessage)
- {
- case WM_COMMAND:
- {
- if (HIWORD(wParam) == STN_CLICKED)
- {
- if (!IsBadStringPtr(ptszPopupText, MaxTextSize))
- CopyTextToClipboard(ptszPopupText);
- PUDeletePopUp(hWnd);
-
- }
- break;
- }
-
- case WM_CONTEXTMENU:
- {
- PUDeletePopUp(hWnd);
- break;
- }
-
- case UM_POPUPACTION:
- {
- if ((lParam == 0) && (!IsBadStringPtr(ptszPopupText, MaxTextSize)))
- {
- CopyTextToClipboard(ptszPopupText);
- }
- break;
- }
-
- case UM_FREEPLUGINDATA:
- {
- mir_free(ptszPopupText);
- return TRUE;
- }
-
- default:
- break;
- }
- return DefWindowProc(hWnd, uiMessage, wParam, lParam);
-}