2016-08-08 20:30:36 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "input.h"
|
|
|
|
#include "locale_list.h"
|
|
|
|
#include "layout_list.h"
|
|
|
|
|
2022-09-15 23:09:37 +00:00
|
|
|
/*
|
|
|
|
* INPUT_LIST_NODE_FLAG_EDITED
|
|
|
|
* --- The modification flag. Since previous time, this entry is modified.
|
|
|
|
*/
|
2016-08-09 18:26:43 +00:00
|
|
|
#define INPUT_LIST_NODE_FLAG_EDITED 0x0001
|
2022-09-15 23:09:37 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* INPUT_LIST_NODE_FLAG_ADDED
|
|
|
|
* --- The addition flag. Since previous time, this entry is newly added.
|
|
|
|
*/
|
2016-08-09 18:26:43 +00:00
|
|
|
#define INPUT_LIST_NODE_FLAG_ADDED 0x0002
|
2022-09-15 23:09:37 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* INPUT_LIST_NODE_FLAG_DELETED
|
|
|
|
* --- The deletion flag.
|
|
|
|
* The application should ignore the entry with this flag if necessary.
|
|
|
|
*/
|
2016-08-09 18:26:43 +00:00
|
|
|
#define INPUT_LIST_NODE_FLAG_DELETED 0x0004
|
2016-08-08 20:30:36 +00:00
|
|
|
|
2022-09-15 23:09:37 +00:00
|
|
|
/*
|
|
|
|
* INPUT_LIST_NODE_FLAG_DEFAULT
|
|
|
|
* --- The default flag. The entry with this flag should be single in the list.
|
|
|
|
*/
|
|
|
|
#define INPUT_LIST_NODE_FLAG_DEFAULT 0x0008
|
2016-08-08 20:30:36 +00:00
|
|
|
|
|
|
|
typedef struct _INPUT_LIST_NODE
|
|
|
|
{
|
2016-08-09 18:26:43 +00:00
|
|
|
WORD wFlags;
|
2016-08-08 20:30:36 +00:00
|
|
|
|
|
|
|
LOCALE_LIST_NODE *pLocale;
|
|
|
|
LAYOUT_LIST_NODE *pLayout;
|
|
|
|
|
2016-08-09 18:26:43 +00:00
|
|
|
HKL hkl; /* Only for loaded input methods */
|
2016-08-08 20:30:36 +00:00
|
|
|
|
2022-09-15 23:09:37 +00:00
|
|
|
LPWSTR pszIndicator;
|
2016-08-09 14:01:52 +00:00
|
|
|
|
2016-08-08 20:30:36 +00:00
|
|
|
struct _INPUT_LIST_NODE *pPrev;
|
|
|
|
struct _INPUT_LIST_NODE *pNext;
|
|
|
|
} INPUT_LIST_NODE;
|
|
|
|
|
|
|
|
|
|
|
|
VOID
|
|
|
|
InputList_Create(VOID);
|
|
|
|
|
2017-11-13 01:36:52 +00:00
|
|
|
BOOL
|
2016-08-08 20:30:36 +00:00
|
|
|
InputList_Process(VOID);
|
|
|
|
|
2016-08-09 18:26:43 +00:00
|
|
|
BOOL
|
2016-08-08 20:30:36 +00:00
|
|
|
InputList_Add(LOCALE_LIST_NODE *pLocale, LAYOUT_LIST_NODE *pLayout);
|
|
|
|
|
2016-08-09 14:01:52 +00:00
|
|
|
VOID
|
|
|
|
InputList_SetDefault(INPUT_LIST_NODE *pNode);
|
|
|
|
|
2022-09-28 22:31:43 +00:00
|
|
|
INT
|
|
|
|
InputList_GetAliveCount(VOID);
|
|
|
|
|
|
|
|
BOOL
|
2016-08-08 20:30:36 +00:00
|
|
|
InputList_Remove(INPUT_LIST_NODE *pNode);
|
|
|
|
|
2022-09-28 22:31:43 +00:00
|
|
|
BOOL
|
|
|
|
InputList_RemoveByLang(LANGID wLangId);
|
|
|
|
|
|
|
|
VOID
|
|
|
|
InputList_Sort(VOID);
|
|
|
|
|
2016-08-08 20:30:36 +00:00
|
|
|
VOID
|
|
|
|
InputList_Destroy(VOID);
|
|
|
|
|
|
|
|
INPUT_LIST_NODE*
|
2016-08-09 14:01:52 +00:00
|
|
|
InputList_GetFirst(VOID);
|