mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 08:55:19 +00:00
[INPUT]
- Implement editing input methods - Marking default layout - Other bugfixes svn path=/trunk/; revision=72168
This commit is contained in:
parent
ecf30d78ed
commit
e64e194b5d
25 changed files with 361 additions and 139 deletions
|
@ -6,29 +6,83 @@
|
|||
*/
|
||||
|
||||
#include "input.h"
|
||||
#include "locale_list.h"
|
||||
#include "input_list.h"
|
||||
|
||||
|
||||
INT_PTR CALLBACK
|
||||
EditDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
EditDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
UNREFERENCED_PARAMETER(lParam);
|
||||
|
||||
switch (uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
break;
|
||||
{
|
||||
LAYOUT_LIST_NODE *pCurrentLayout;
|
||||
INPUT_LIST_NODE *pInput;
|
||||
HWND hwndList;
|
||||
|
||||
pInput = (INPUT_LIST_NODE*) lParam;
|
||||
|
||||
if (pInput == NULL)
|
||||
return TRUE;
|
||||
|
||||
SetWindowLongPtrW(hwndDlg, GWLP_USERDATA, (LONG_PTR) pInput);
|
||||
|
||||
SetWindowTextW(GetDlgItem(hwndDlg, IDC_INPUT_LANG_STR), pInput->pLocale->pszName);
|
||||
|
||||
hwndList = GetDlgItem(hwndDlg, IDC_KB_LAYOUT_IME_COMBO);
|
||||
|
||||
for (pCurrentLayout = LayoutList_GetFirst();
|
||||
pCurrentLayout != NULL;
|
||||
pCurrentLayout = pCurrentLayout->pNext)
|
||||
{
|
||||
INT iItemIndex;
|
||||
|
||||
iItemIndex = ComboBox_AddString(hwndList, pCurrentLayout->pszName);
|
||||
ComboBox_SetItemData(hwndList, iItemIndex, pCurrentLayout);
|
||||
}
|
||||
|
||||
ComboBox_SelectString(hwndList, 0, pInput->pLayout->pszName);
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
{
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case IDOK:
|
||||
EndDialog(hDlg, LOWORD(wParam));
|
||||
break;
|
||||
{
|
||||
INPUT_LIST_NODE *pInput;
|
||||
HWND hwndList;
|
||||
|
||||
hwndList = GetDlgItem(hwndDlg, IDC_KB_LAYOUT_IME_COMBO);
|
||||
|
||||
pInput = (INPUT_LIST_NODE*) GetWindowLongPtrW(hwndDlg, GWLP_USERDATA);
|
||||
|
||||
if (pInput != NULL)
|
||||
{
|
||||
LAYOUT_LIST_NODE *pNewLayout;
|
||||
|
||||
pNewLayout = (LAYOUT_LIST_NODE*)ComboBox_GetItemData(hwndList,
|
||||
ComboBox_GetCurSel(hwndList));
|
||||
if (pNewLayout != NULL)
|
||||
{
|
||||
pInput->pLayout = pNewLayout;
|
||||
pInput->wFlags |= INPUT_LIST_NODE_FLAG_EDITED;
|
||||
}
|
||||
}
|
||||
|
||||
EndDialog(hwndDlg, LOWORD(wParam));
|
||||
}
|
||||
break;
|
||||
|
||||
case IDCANCEL:
|
||||
EndDialog(hDlg, LOWORD(wParam));
|
||||
break;
|
||||
{
|
||||
EndDialog(hwndDlg, LOWORD(wParam));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -215,28 +215,37 @@ InputList_AddInputMethodToUserRegistry(DWORD dwIndex, INPUT_LIST_NODE *pNode)
|
|||
}
|
||||
}
|
||||
|
||||
if (pNode->dwFlags & INPUT_LIST_NODE_FLAG_ADDED)
|
||||
if ((pNode->wFlags & INPUT_LIST_NODE_FLAG_ADDED) ||
|
||||
(pNode->wFlags & INPUT_LIST_NODE_FLAG_EDITED))
|
||||
{
|
||||
pNode->hkl = LoadKeyboardLayoutW(szPreload, KLF_SUBSTITUTE_OK | KLF_NOTELLSHELL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Writes any changes in input methods to the registry
|
||||
*/
|
||||
VOID
|
||||
InputList_Process(VOID)
|
||||
{
|
||||
INPUT_LIST_NODE *pCurrent;
|
||||
DWORD dwIndex;
|
||||
|
||||
/* Process deleted input methods */
|
||||
/* Process deleted and edited input methods */
|
||||
for (pCurrent = _InputList; pCurrent != NULL; pCurrent = pCurrent->pNext)
|
||||
{
|
||||
if (!(pCurrent->dwFlags & INPUT_LIST_NODE_FLAG_DELETED))
|
||||
continue;
|
||||
|
||||
if (UnloadKeyboardLayout(pCurrent->hkl))
|
||||
if ((pCurrent->wFlags & INPUT_LIST_NODE_FLAG_DELETED) ||
|
||||
(pCurrent->wFlags & INPUT_LIST_NODE_FLAG_EDITED))
|
||||
{
|
||||
InputList_RemoveNode(pCurrent);
|
||||
if (UnloadKeyboardLayout(pCurrent->hkl))
|
||||
{
|
||||
/* Only unload the edited input method, but does not delete it from the list */
|
||||
if (!(pCurrent->wFlags & INPUT_LIST_NODE_FLAG_EDITED))
|
||||
{
|
||||
InputList_RemoveNode(pCurrent);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -245,7 +254,7 @@ InputList_Process(VOID)
|
|||
/* Find default input method */
|
||||
for (pCurrent = _InputList; pCurrent != NULL; pCurrent = pCurrent->pNext)
|
||||
{
|
||||
if (pCurrent->dwFlags & INPUT_LIST_NODE_FLAG_DEFAULT)
|
||||
if (pCurrent->wFlags & INPUT_LIST_NODE_FLAG_DEFAULT)
|
||||
{
|
||||
InputList_AddInputMethodToUserRegistry(1, pCurrent);
|
||||
break;
|
||||
|
@ -273,7 +282,7 @@ InputList_Process(VOID)
|
|||
|
||||
for (pCurrent = _InputList; pCurrent != NULL; pCurrent = pCurrent->pNext)
|
||||
{
|
||||
if (pCurrent->dwFlags & INPUT_LIST_NODE_FLAG_DEFAULT)
|
||||
if (pCurrent->wFlags & INPUT_LIST_NODE_FLAG_DEFAULT)
|
||||
continue;
|
||||
|
||||
InputList_AddInputMethodToUserRegistry(dwIndex, pCurrent);
|
||||
|
@ -283,7 +292,7 @@ InputList_Process(VOID)
|
|||
}
|
||||
|
||||
|
||||
VOID
|
||||
BOOL
|
||||
InputList_Add(LOCALE_LIST_NODE *pLocale, LAYOUT_LIST_NODE *pLayout)
|
||||
{
|
||||
WCHAR szIndicator[MAX_STR_LEN];
|
||||
|
@ -291,12 +300,20 @@ InputList_Add(LOCALE_LIST_NODE *pLocale, LAYOUT_LIST_NODE *pLayout)
|
|||
|
||||
if (pLocale == NULL || pLayout == NULL)
|
||||
{
|
||||
return;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
for (pInput = _InputList; pInput != NULL; pInput = pInput->pNext)
|
||||
{
|
||||
if (pInput->pLocale == pLocale && pInput->pLayout == pLayout)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
pInput = InputList_AppendNode();
|
||||
|
||||
pInput->dwFlags |= INPUT_LIST_NODE_FLAG_ADDED;
|
||||
pInput->wFlags = INPUT_LIST_NODE_FLAG_ADDED;
|
||||
|
||||
pInput->pLocale = pLocale;
|
||||
pInput->pLayout = pLayout;
|
||||
|
@ -314,6 +331,8 @@ InputList_Add(LOCALE_LIST_NODE *pLocale, LAYOUT_LIST_NODE *pLayout)
|
|||
pInput->pszIndicator = DublicateString(szIndicator);
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
@ -329,35 +348,57 @@ InputList_SetDefault(INPUT_LIST_NODE *pNode)
|
|||
{
|
||||
if (pCurrent == pNode)
|
||||
{
|
||||
pCurrent->dwFlags |= INPUT_LIST_NODE_FLAG_DEFAULT;
|
||||
pCurrent->wFlags |= INPUT_LIST_NODE_FLAG_DEFAULT;
|
||||
}
|
||||
else
|
||||
{
|
||||
pCurrent->dwFlags &= ~INPUT_LIST_NODE_FLAG_DEFAULT;
|
||||
pCurrent->wFlags &= ~INPUT_LIST_NODE_FLAG_DEFAULT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* It marks the input method for deletion, but does not delete it directly.
|
||||
* To apply the changes using InputList_Process()
|
||||
*/
|
||||
VOID
|
||||
InputList_Remove(INPUT_LIST_NODE *pNode)
|
||||
{
|
||||
BOOL bRemoveNode = FALSE;
|
||||
|
||||
if (pNode == NULL)
|
||||
return;
|
||||
|
||||
pNode->dwFlags |= INPUT_LIST_NODE_FLAG_DELETED;
|
||||
if (pNode->wFlags & INPUT_LIST_NODE_FLAG_ADDED)
|
||||
{
|
||||
/*
|
||||
* If the input method has been added to the list, but not yet written
|
||||
* in the registry, then simply remove it from the list
|
||||
*/
|
||||
bRemoveNode = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
pNode->wFlags = INPUT_LIST_NODE_FLAG_DELETED;
|
||||
}
|
||||
|
||||
if (pNode->dwFlags & INPUT_LIST_NODE_FLAG_DEFAULT)
|
||||
if (pNode->wFlags & INPUT_LIST_NODE_FLAG_DEFAULT)
|
||||
{
|
||||
if (pNode->pNext != NULL)
|
||||
{
|
||||
pNode->pNext->dwFlags |= INPUT_LIST_NODE_FLAG_DEFAULT;
|
||||
pNode->pNext->wFlags |= INPUT_LIST_NODE_FLAG_DEFAULT;
|
||||
}
|
||||
else if (pNode->pPrev != NULL)
|
||||
{
|
||||
pNode->pPrev->dwFlags |= INPUT_LIST_NODE_FLAG_DEFAULT;
|
||||
pNode->pPrev->wFlags |= INPUT_LIST_NODE_FLAG_DEFAULT;
|
||||
}
|
||||
}
|
||||
|
||||
if (bRemoveNode != FALSE)
|
||||
{
|
||||
InputList_RemoveNode(pNode);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -368,7 +409,7 @@ InputList_Create(VOID)
|
|||
HKL *pLayoutList;
|
||||
|
||||
iLayoutCount = GetKeyboardLayoutList(0, NULL);
|
||||
pLayoutList = (HKL*)malloc(iLayoutCount * sizeof(HKL));
|
||||
pLayoutList = (HKL*) malloc(iLayoutCount * sizeof(HKL));
|
||||
|
||||
if (pLayoutList != NULL)
|
||||
{
|
||||
|
@ -403,7 +444,7 @@ InputList_Create(VOID)
|
|||
|
||||
if (pInput->hkl == hklDefault)
|
||||
{
|
||||
pInput->dwFlags |= INPUT_LIST_NODE_FLAG_DEFAULT;
|
||||
pInput->wFlags |= INPUT_LIST_NODE_FLAG_DEFAULT;
|
||||
}
|
||||
|
||||
if (GetLocaleInfoW(LOWORD(pInput->pLocale->dwId),
|
||||
|
|
|
@ -5,20 +5,20 @@
|
|||
#include "layout_list.h"
|
||||
|
||||
|
||||
#define INPUT_LIST_NODE_FLAG_EDITED 0x00000001
|
||||
#define INPUT_LIST_NODE_FLAG_ADDED 0x00000002
|
||||
#define INPUT_LIST_NODE_FLAG_DELETED 0x00000004
|
||||
#define INPUT_LIST_NODE_FLAG_DEFAULT 0x00000008
|
||||
#define INPUT_LIST_NODE_FLAG_EDITED 0x0001
|
||||
#define INPUT_LIST_NODE_FLAG_ADDED 0x0002
|
||||
#define INPUT_LIST_NODE_FLAG_DELETED 0x0004
|
||||
#define INPUT_LIST_NODE_FLAG_DEFAULT 0x0008
|
||||
|
||||
|
||||
typedef struct _INPUT_LIST_NODE
|
||||
{
|
||||
DWORD dwFlags;
|
||||
WORD wFlags;
|
||||
|
||||
LOCALE_LIST_NODE *pLocale;
|
||||
LAYOUT_LIST_NODE *pLayout;
|
||||
|
||||
HKL hkl;
|
||||
HKL hkl; /* Only for loaded input methods */
|
||||
|
||||
WCHAR *pszIndicator;
|
||||
|
||||
|
@ -33,7 +33,7 @@ InputList_Create(VOID);
|
|||
VOID
|
||||
InputList_Process(VOID);
|
||||
|
||||
VOID
|
||||
BOOL
|
||||
InputList_Add(LOCALE_LIST_NODE *pLocale, LAYOUT_LIST_NODE *pLayout);
|
||||
|
||||
VOID
|
||||
|
|
|
@ -9,7 +9,43 @@
|
|||
|
||||
|
||||
INT_PTR CALLBACK
|
||||
KeySettingsDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
ChangeKeySeqDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
UNREFERENCED_PARAMETER(lParam);
|
||||
|
||||
switch (uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
{
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case IDOK:
|
||||
{
|
||||
EndDialog(hwndDlg, LOWORD(wParam));
|
||||
}
|
||||
break;
|
||||
|
||||
case IDCANCEL:
|
||||
{
|
||||
EndDialog(hwndDlg, LOWORD(wParam));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
INT_PTR CALLBACK
|
||||
KeySettingsDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
UNREFERENCED_PARAMETER(lParam);
|
||||
|
||||
|
@ -22,13 +58,29 @@ KeySettingsDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
{
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case IDC_CHANGE_KEY_SEQ_BTN:
|
||||
{
|
||||
if (DialogBoxW(hApplet,
|
||||
MAKEINTRESOURCEW(IDD_CHANGE_KEY_SEQ),
|
||||
hwndDlg,
|
||||
ChangeKeySeqDialogProc) == IDOK)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case IDOK:
|
||||
EndDialog(hDlg, LOWORD(wParam));
|
||||
break;
|
||||
{
|
||||
EndDialog(hwndDlg, LOWORD(wParam));
|
||||
}
|
||||
break;
|
||||
|
||||
case IDCANCEL:
|
||||
EndDialog(hDlg, LOWORD(wParam));
|
||||
break;
|
||||
{
|
||||
EndDialog(hwndDlg, LOWORD(wParam));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -6,10 +6,10 @@ CAPTION "Настройки"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Посочете избраните от вас услуги за всеки посочен в списъка език.\nПромяната на списъка става с „Премахване“ и „Добавяне“.", -1, 9, 6, 238, 25
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "&Прилагане на подразбираните", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "&Добавяне...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "Пре&махване...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "Пре&махване", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Свойства...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Предпочитания", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "Настройка на &клавишите...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -11,10 +11,10 @@ CAPTION "Nastavení"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Zvolte služby pro každý vstupní jazyk v seznamu.\nSeznam lze měnit pomocí tlačítek Přidat a Odebrat.", -1, 9, 6, 238, 25
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "Nas&tavit výchozí", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "&Přidat...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "&Odebrat...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Odebrat", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Vlastnosti...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Předvolby", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "&Nastavení kláves...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -6,10 +6,10 @@ CAPTION "Einstellungen"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Wählen Sie die Dienste aus, die Sie für die Eingabesprachen in der Liste verwenden wollen.\nVerwenden Sie ""Hinzufügen"" und ""Entfernen"", um die Liste zu bearbeiten.", -1, 9, 6, 238, 25
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "&Als Standard", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "&Hinzufügen...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "Ent&fernen...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "Ent&fernen", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Eigenschaften...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Einstellungen", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "&Tasteneinstellungen...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -6,10 +6,10 @@ CAPTION "Ρυθμίσεις"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Επιλέξτε τις υπηρεσίες που θέλετε για κάθε γλώσσα εισαγωγής που εμφανίζεται στη λίστα.\nΧρησιμοποιήστε τα κουμπιά Προσθήκη και Κατάργηση για την τροποποίηση αυτής της λίστας.", -1, 9, 6, 238, 33
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 42, 237, 95
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 42, 237, 95
|
||||
PUSHBUTTON "&Set Default", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "Π&ροσθήκη...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "&Κατάργηση...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Κατάργηση", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Ιδιότητες...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Προτιμήσεις", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "&Ρυθμίσεις πλήκτρων...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -6,10 +6,10 @@ CAPTION "Settings"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select the services that you want for each input language shown in the list.\nUse the Add and Remove buttons to modify this list.", -1, 9, 6, 238, 25
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "&Set Default", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "A&dd...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "&Remove...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Remove", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Properties...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Preferences", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "&Key Settings...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -8,10 +8,10 @@ CAPTION "Configuración"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Seleccione los servicios que desea para cada idioma mostrado en la lista. Use los botones de Agregar y Quitar para modificar esta lista.", -1, 9, 6, 238, 17
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 28, 237, 109
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 28, 237, 109
|
||||
PUSHBUTTON "Pr&edeterminado", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "Ag®ar...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "&Quitar...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Quitar", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Propiedades...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Pre&ferencias ", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "C&onfiguración de teclas...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -6,10 +6,10 @@ CAPTION "Paramètres"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Sélectionnez les services que vous désirez pour chaque langue de saisie affichée dans la liste.\nUtilisez les boutons Ajouter et Supprimer pour modifier la liste.", -1, 9, 6, 238, 25
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "Par &défaut", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "A&jouter...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "Supp&rimer...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "Supp&rimer", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Propriétés...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Pré&férences", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "Para&mètres des touches...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -8,10 +8,10 @@ CAPTION "הגדרות"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Select the services that you want for each input language shown in the list.\nUse the Add and Remove buttons to modify this list.", -1, 9, 6, 238, 25
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "קבע כברירת מחדל...", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "הוסף...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "הסר...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "הסר", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "מאפיניים...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "העדפות", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "הגדרות מקשים...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -6,10 +6,10 @@ CAPTION "Impostazioni"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Scegliere i servizi desiderati per ognuna delle lingue nella lista.\nUsare Aggiungi e Rimuovi per modificare la lista.", -1, 9, 6, 238, 17
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 28, 237, 109
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 28, 237, 109
|
||||
PUSHBUTTON "&Predefinito", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "&Aggiungi...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "&Rimuovi...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Rimuovi", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Proprietà...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Preferenze", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "&Impostazioni tasti...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -6,10 +6,10 @@ CAPTION "Innstillinger"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Velg tjenesten som du vil ha for hver inndataspråk som er vist i listen.\nBruk legg til og fjern knappen for å endre denne listen.", -1, 9, 6, 238, 25
|
||||
CONTROL "TEKST", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "&Sett Standard", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "Le&gg til...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "&Fjern...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Fjern", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Egenskaper...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Innstillinger", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "&Tasteinnstillinger...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -14,10 +14,10 @@ CAPTION "Ustawienia"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Wybierz usługi dla kadego używanego języka z listy.\nListę można modyfikować przyciskami Dodaj i Usuń.", -1, 9, 6, 238, 17
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 28, 237, 109
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 28, 237, 109
|
||||
PUSHBUTTON "&Ustaw domyślne", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "&Dodaj...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "U&suń...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "U&suń", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Właściwości...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Preferencje", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "Us&tawienia klawiszy...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -6,7 +6,7 @@ CAPTION "Configurações"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Selecione os serviços desejados para cada idioma de entrada mostrado na lista. Use os botões 'Adicionar' e 'Remover' para modificar essa lista.", -1, 9, 6, 238, 25
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "De&finir padrão", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "&Adicionar...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "&Remover", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
|
|
|
@ -8,7 +8,7 @@ CAPTION "Configurare"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Gestionați serviciile aferente limbilor de intrare utilizate în sistem. Utilizați butoanele pentru a aduce modificări listei.", -1, 9, 6, 238, 25
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "&Restabilește opțiunile implicite", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "A&dăugare…", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "&Elimină", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
|
|
|
@ -6,10 +6,10 @@ CAPTION "Параметры"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Выберите нужные раскладки для каждого языка ввода из списка. Для изменения списка служат кнопки ""Добавить"" и ""Удалить"".", -1, 9, 6, 238, 17
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 28, 237, 109
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 28, 237, 109
|
||||
PUSHBUTTON "Ус&тановить по умолчанию", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "&Добавить...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "&Удалить...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Удалить", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Свойства...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Параметры", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "&Параметры клавиатуры...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -11,10 +11,10 @@ CAPTION "Nastavenia"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Vyberte služby, ktoré chcete priradiť ku každému vstupnému jazyku uvedenému v zozname.\nPoužite tlačidlá Pridať a Odstrániť k úprave zoznamu.", -1, 9, 6, 238, 25
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "Pred&voliť", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "&Pridať...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "O&dstrániť...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "O&dstrániť", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "Vl&astnosti...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Preferencie", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "Nastavenie &klávesov...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -10,10 +10,10 @@ CAPTION "Cilësimet"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Zgjidhni shërbimet që ju dëshironi për çdo gjuhë të dhënash treguar në listë.\nPërdor Shto dhe Hiq butonat për të modifikuar këtë listë.", -1, 9, 6, 238, 25
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "&Vendos Parazgjedhur", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "Sh&to...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "&Hiq...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Hiq", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Karakteristikat...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Preferenca", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "&Çeles cilësimesh...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -8,10 +8,10 @@ CAPTION "Ayarlar"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Dizelgede gösterilen tüm giriş dilleri için istediğiniz hizmetleri seçiniz.\nBu dizelgeyi değiştirmek için Ekle veyâ Sil düğmelerini kullanınız.", -1, 9, 6, 238, 25
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "&Ön Tanımlı Yap", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "&Ekle...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "&Sil...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Sil", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "&Husûsiyetler...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Yeğlemeler", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "&Düğme Ayarları...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -14,10 +14,10 @@ CAPTION "Параметри"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Виберіть потрібні розкладки для кожної мови введення зі списку. Для зміни списку використовуйте кнопки ""Додати"" і ""Видалити"".", -1, 9, 6, 238, 25
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "Встановити за замов&чуванням", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "&Додати...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "В&идалити...", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "В&идалити", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
PUSHBUTTON "В&ластивості...", IDC_PROP_BUTTON, 175, 142, 70, 14
|
||||
GROUPBOX "Налаштування", -1, 7, 185, 240, 36
|
||||
PUSHBUTTON "&Параметри клавіатури...", IDC_KEY_SET_BTN, 14, 198, 110, 14
|
||||
|
|
|
@ -8,7 +8,7 @@ CAPTION "设置"
|
|||
FONT 9, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "为列表中显示的每个输入语言选择服务。\n使用“添加”和“删除”按钮来修改这个列表。", -1, 9, 6, 238, 25
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "设为默认值(&S)", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "添加(&D)...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "删除(&R)", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
|
|
|
@ -8,7 +8,7 @@ CAPTION "設定"
|
|||
FONT 9, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "為列表中顯示的每個輸入語言選擇服務。\n使用“添加”和“刪除”按鈕來修改這個列表。", -1, 9, 6, 238, 25
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101
|
||||
CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101
|
||||
PUSHBUTTON "設為預設值(&S)", IDC_SET_DEFAULT, 101, 159, 144, 14
|
||||
PUSHBUTTON "添加(&D)...", IDC_ADD_BUTTON, 27, 142, 70, 14
|
||||
PUSHBUTTON "刪除(&R)", IDC_REMOVE_BUTTON, 101, 142, 70, 14
|
||||
|
|
|
@ -12,8 +12,10 @@
|
|||
|
||||
|
||||
static HICON
|
||||
CreateLayoutIcon(LPWSTR szLayout)
|
||||
CreateLayoutIcon(LPWSTR szLayout, BOOL bIsDefault)
|
||||
{
|
||||
INT width = GetSystemMetrics(SM_CXSMICON) * 2;
|
||||
INT height = GetSystemMetrics(SM_CYSMICON);
|
||||
HDC hdc;
|
||||
HDC hdcsrc;
|
||||
HBITMAP hBitmap;
|
||||
|
@ -21,60 +23,83 @@ CreateLayoutIcon(LPWSTR szLayout)
|
|||
|
||||
hdcsrc = GetDC(NULL);
|
||||
hdc = CreateCompatibleDC(hdcsrc);
|
||||
hBitmap = CreateCompatibleBitmap(hdcsrc,
|
||||
GetSystemMetrics(SM_CXSMICON),
|
||||
GetSystemMetrics(SM_CYSMICON));
|
||||
hBitmap = CreateCompatibleBitmap(hdcsrc, width, height);
|
||||
|
||||
ReleaseDC(NULL, hdcsrc);
|
||||
|
||||
if (hdc && hBitmap)
|
||||
{
|
||||
HBITMAP hBmpNew;
|
||||
|
||||
hBmpNew = CreateBitmap(GetSystemMetrics(SM_CXSMICON),
|
||||
GetSystemMetrics(SM_CYSMICON),
|
||||
1, 1, NULL);
|
||||
hBmpNew = CreateBitmap(width, height, 1, 1, NULL);
|
||||
if (hBmpNew)
|
||||
{
|
||||
ICONINFO IconInfo;
|
||||
HBITMAP hBmpOld;
|
||||
HFONT hFont;
|
||||
RECT rect;
|
||||
LOGFONT lf;
|
||||
|
||||
hBmpOld = SelectObject(hdc, hBitmap);
|
||||
rect.right = GetSystemMetrics(SM_CXSMICON);
|
||||
rect.left = 0;
|
||||
rect.bottom = GetSystemMetrics(SM_CYSMICON);
|
||||
rect.top = 0;
|
||||
if (SystemParametersInfoW(SPI_GETICONTITLELOGFONT, sizeof(LOGFONT), &lf, 0))
|
||||
{
|
||||
ICONINFO IconInfo;
|
||||
HFONT hFont;
|
||||
|
||||
SetBkColor(hdc, GetSysColor(COLOR_HIGHLIGHT));
|
||||
SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT));
|
||||
hFont = CreateFontIndirectW(&lf);
|
||||
|
||||
ExtTextOut(hdc, rect.left, rect.top, ETO_OPAQUE, &rect, L"", 0, NULL);
|
||||
if (hFont != NULL)
|
||||
{
|
||||
HBITMAP hBmpOld;
|
||||
|
||||
hFont = CreateFontW(-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET,
|
||||
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
|
||||
DEFAULT_QUALITY, FF_DONTCARE, L"Tahoma");
|
||||
hBmpOld = SelectObject(hdc, hBitmap);
|
||||
|
||||
SelectObject(hdc, hFont);
|
||||
DrawTextW(hdc, szLayout, 2, &rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER);
|
||||
SelectObject(hdc, hBmpNew);
|
||||
if (hBmpOld != NULL)
|
||||
{
|
||||
RECT rect;
|
||||
|
||||
PatBlt(hdc, 0, 0,
|
||||
GetSystemMetrics(SM_CXSMICON),
|
||||
GetSystemMetrics(SM_CYSMICON),
|
||||
BLACKNESS);
|
||||
SetRect(&rect, 0, 0, width / 2, height);
|
||||
|
||||
SelectObject(hdc, hBmpOld);
|
||||
if (bIsDefault != FALSE)
|
||||
{
|
||||
SetBkColor(hdc, GetSysColor(COLOR_WINDOW));
|
||||
SetTextColor(hdc, GetSysColor(COLOR_WINDOWTEXT));
|
||||
|
||||
IconInfo.hbmColor = hBitmap;
|
||||
IconInfo.hbmMask = hBmpNew;
|
||||
IconInfo.fIcon = TRUE;
|
||||
ExtTextOutW(hdc, rect.left, rect.top, ETO_OPAQUE, &rect, L"", 0, NULL);
|
||||
|
||||
hIcon = CreateIconIndirect(&IconInfo);
|
||||
SelectObject(hdc, hFont);
|
||||
DrawTextW(hdc, L"\x25CF", 1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
|
||||
}
|
||||
else
|
||||
{
|
||||
FillRect(hdc, &rect, GetSysColorBrush(COLOR_WINDOW));
|
||||
}
|
||||
|
||||
SetRect(&rect, width / 2, 0, width, height);
|
||||
|
||||
SetBkColor(hdc, GetSysColor(COLOR_HIGHLIGHT));
|
||||
SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT));
|
||||
|
||||
ExtTextOutW(hdc, rect.left, rect.top, ETO_OPAQUE, &rect, L"", 0, NULL);
|
||||
|
||||
SelectObject(hdc, hFont);
|
||||
DrawTextW(hdc, szLayout, 2, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
|
||||
|
||||
SelectObject(hdc, hBmpNew);
|
||||
|
||||
PatBlt(hdc, 0, 0, width, height, BLACKNESS);
|
||||
|
||||
SelectObject(hdc, hBmpOld);
|
||||
|
||||
IconInfo.hbmColor = hBitmap;
|
||||
IconInfo.hbmMask = hBmpNew;
|
||||
IconInfo.fIcon = TRUE;
|
||||
|
||||
hIcon = CreateIconIndirect(&IconInfo);
|
||||
|
||||
DeleteObject(hBmpOld);
|
||||
}
|
||||
|
||||
DeleteObject(hFont);
|
||||
}
|
||||
}
|
||||
|
||||
DeleteObject(hBmpNew);
|
||||
DeleteObject(hBmpOld);
|
||||
DeleteObject(hFont);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -85,6 +110,15 @@ CreateLayoutIcon(LPWSTR szLayout)
|
|||
}
|
||||
|
||||
|
||||
static VOID
|
||||
SetControlsState(HWND hwndDlg, BOOL bIsEnabled)
|
||||
{
|
||||
EnableWindow(GetDlgItem(hwndDlg, IDC_REMOVE_BUTTON), bIsEnabled);
|
||||
EnableWindow(GetDlgItem(hwndDlg, IDC_PROP_BUTTON), bIsEnabled);
|
||||
EnableWindow(GetDlgItem(hwndDlg, IDC_SET_DEFAULT), bIsEnabled);
|
||||
}
|
||||
|
||||
|
||||
static VOID
|
||||
AddToInputListView(HWND hwndList, INPUT_LIST_NODE *pInputNode)
|
||||
{
|
||||
|
@ -99,7 +133,8 @@ AddToInputListView(HWND hwndList, INPUT_LIST_NODE *pInputNode)
|
|||
{
|
||||
HICON hLayoutIcon;
|
||||
|
||||
hLayoutIcon = CreateLayoutIcon(pInputNode->pszIndicator);
|
||||
hLayoutIcon = CreateLayoutIcon(pInputNode->pszIndicator,
|
||||
(pInputNode->wFlags & INPUT_LIST_NODE_FLAG_DEFAULT));
|
||||
|
||||
if (hLayoutIcon != NULL)
|
||||
{
|
||||
|
@ -110,9 +145,9 @@ AddToInputListView(HWND hwndList, INPUT_LIST_NODE *pInputNode)
|
|||
|
||||
memset(&item, 0, sizeof(LV_ITEM));
|
||||
|
||||
item.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
|
||||
item.mask = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE;
|
||||
item.pszText = pInputNode->pLocale->pszName;
|
||||
item.iItem = -1;
|
||||
item.iItem = ListView_GetItemCount(hwndList) + 1;
|
||||
item.lParam = (LPARAM)pInputNode;
|
||||
item.iImage = ImageIndex;
|
||||
|
||||
|
@ -140,7 +175,7 @@ UpdateInputListView(HWND hwndList)
|
|||
pCurrentInputNode != NULL;
|
||||
pCurrentInputNode = pCurrentInputNode->pNext)
|
||||
{
|
||||
if (!(pCurrentInputNode->dwFlags & INPUT_LIST_NODE_FLAG_DELETED))
|
||||
if (!(pCurrentInputNode->wFlags & INPUT_LIST_NODE_FLAG_DELETED))
|
||||
{
|
||||
AddToInputListView(hwndList, pCurrentInputNode);
|
||||
}
|
||||
|
@ -185,7 +220,7 @@ OnInitSettingsPage(HWND hwndDlg)
|
|||
column.pszText = szBuffer;
|
||||
ListView_InsertColumn(hwndInputList, 1, &column);
|
||||
|
||||
hLayoutImageList = ImageList_Create(GetSystemMetrics(SM_CXSMICON),
|
||||
hLayoutImageList = ImageList_Create(GetSystemMetrics(SM_CXSMICON) * 2,
|
||||
GetSystemMetrics(SM_CYSMICON),
|
||||
ILC_COLOR8 | ILC_MASK, 0, 0);
|
||||
if (hLayoutImageList != NULL)
|
||||
|
@ -195,6 +230,8 @@ OnInitSettingsPage(HWND hwndDlg)
|
|||
|
||||
UpdateInputListView(hwndInputList);
|
||||
}
|
||||
|
||||
SetControlsState(hwndDlg, FALSE);
|
||||
}
|
||||
|
||||
|
||||
|
@ -236,7 +273,9 @@ OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam)
|
|||
|
||||
case IDC_REMOVE_BUTTON:
|
||||
{
|
||||
HWND hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST);
|
||||
HWND hwndList;
|
||||
|
||||
hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST);
|
||||
|
||||
if (hwndList != NULL)
|
||||
{
|
||||
|
@ -247,8 +286,8 @@ OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam)
|
|||
|
||||
if (ListView_GetItem(hwndList, &item) != FALSE)
|
||||
{
|
||||
InputList_Remove((INPUT_LIST_NODE*)item.lParam);
|
||||
UpdateInputListView(GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST));
|
||||
InputList_Remove((INPUT_LIST_NODE*) item.lParam);
|
||||
UpdateInputListView(hwndList);
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
}
|
||||
}
|
||||
|
@ -257,20 +296,9 @@ OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam)
|
|||
|
||||
case IDC_PROP_BUTTON:
|
||||
{
|
||||
if (DialogBoxW(hApplet,
|
||||
MAKEINTRESOURCEW(IDD_INPUT_LANG_PROP),
|
||||
hwndDlg,
|
||||
EditDialogProc) == IDOK)
|
||||
{
|
||||
UpdateInputListView(GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST));
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case IDC_SET_DEFAULT:
|
||||
{
|
||||
HWND hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST);
|
||||
HWND hwndList;
|
||||
|
||||
hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST);
|
||||
|
||||
if (hwndList != NULL)
|
||||
{
|
||||
|
@ -281,14 +309,37 @@ OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam)
|
|||
|
||||
if (ListView_GetItem(hwndList, &item) != FALSE)
|
||||
{
|
||||
INPUT_LIST_NODE *pSelected;
|
||||
|
||||
pSelected = (INPUT_LIST_NODE*) item.lParam;
|
||||
if (pSelected != NULL)
|
||||
if (DialogBoxParamW(hApplet,
|
||||
MAKEINTRESOURCEW(IDD_INPUT_LANG_PROP),
|
||||
hwndDlg,
|
||||
EditDialogProc,
|
||||
item.lParam) == IDOK)
|
||||
{
|
||||
InputList_SetDefault(pSelected);
|
||||
UpdateInputListView(hwndList);
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case IDC_SET_DEFAULT:
|
||||
{
|
||||
HWND hwndList;
|
||||
|
||||
hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST);
|
||||
|
||||
if (hwndList != NULL)
|
||||
{
|
||||
LVITEM item = { 0 };
|
||||
|
||||
item.mask = LVIF_PARAM;
|
||||
item.iItem = ListView_GetNextItem(hwndList, -1, LVNI_SELECTED);
|
||||
|
||||
if (ListView_GetItem(hwndList, &item) != FALSE)
|
||||
{
|
||||
InputList_SetDefault((INPUT_LIST_NODE*) item.lParam);
|
||||
UpdateInputListView(hwndList);
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
}
|
||||
}
|
||||
|
@ -313,9 +364,33 @@ OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam)
|
|||
static VOID
|
||||
OnNotifySettingsPage(HWND hwndDlg, LPARAM lParam)
|
||||
{
|
||||
if (((LPPSHNOTIFY)lParam)->hdr.code == PSN_APPLY)
|
||||
LPNMHDR header;
|
||||
|
||||
header = (LPNMHDR)lParam;
|
||||
|
||||
switch (header->code)
|
||||
{
|
||||
InputList_Process();
|
||||
case NM_CLICK:
|
||||
{
|
||||
if (header->idFrom == IDC_KEYLAYOUT_LIST)
|
||||
{
|
||||
if (ListView_GetNextItem(header->hwndFrom, -1, LVNI_SELECTED) != -1)
|
||||
{
|
||||
SetControlsState(hwndDlg, TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetControlsState(hwndDlg, FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case PSN_APPLY:
|
||||
{
|
||||
InputList_Process();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue