127 lines
4.1 KiB
C++
127 lines
4.1 KiB
C++
//--------------------------------------------------------------------------------------
|
|
// File: ImeUi.h
|
|
//
|
|
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
|
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
|
// PARTICULAR PURPOSE.
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// http://go.microsoft.com/fwlink/?LinkId=320437
|
|
//--------------------------------------------------------------------------------------
|
|
#pragma once
|
|
|
|
#include <windows.h>
|
|
|
|
class CImeUiFont_Base
|
|
{
|
|
public:
|
|
virtual void SetHeight( _In_ UINT uHeight )
|
|
{
|
|
UNREFERENCED_PARAMETER(uHeight);
|
|
}; // for backward compatibility
|
|
virtual void SetColor( _In_ DWORD color ) = 0;
|
|
virtual void SetPosition( _In_ int x, _In_ int y ) = 0;
|
|
virtual void GetTextExtent( _In_z_ LPCTSTR szText, _Out_ DWORD* puWidth, _Out_ DWORD* puHeight ) = 0;
|
|
virtual void DrawText( _In_z_ LPCTSTR pszText ) = 0;
|
|
};
|
|
|
|
typedef struct
|
|
{
|
|
// symbol (Henkan-kyu)
|
|
DWORD symbolColor;
|
|
DWORD symbolColorOff;
|
|
DWORD symbolColorText;
|
|
BYTE symbolHeight;
|
|
BYTE symbolTranslucence;
|
|
BYTE symbolPlacement;
|
|
CImeUiFont_Base* symbolFont;
|
|
|
|
// candidate list
|
|
DWORD candColorBase;
|
|
DWORD candColorBorder;
|
|
DWORD candColorText;
|
|
|
|
// composition string
|
|
DWORD compColorInput;
|
|
DWORD compColorTargetConv;
|
|
DWORD compColorConverted;
|
|
DWORD compColorTargetNotConv;
|
|
DWORD compColorInputErr;
|
|
BYTE compTranslucence;
|
|
DWORD compColorText;
|
|
|
|
// caret
|
|
BYTE caretWidth;
|
|
BYTE caretYMargin;
|
|
} IMEUI_APPEARANCE;
|
|
|
|
typedef struct // D3DTLVERTEX compatible
|
|
{
|
|
float sx;
|
|
float sy;
|
|
float sz;
|
|
float rhw;
|
|
DWORD color;
|
|
DWORD specular;
|
|
float tu;
|
|
float tv;
|
|
} IMEUI_VERTEX;
|
|
|
|
// IME States
|
|
#define IMEUI_STATE_OFF 0
|
|
#define IMEUI_STATE_ON 1
|
|
#define IMEUI_STATE_ENGLISH 2
|
|
|
|
// IME const
|
|
#define MAX_CANDLIST 10
|
|
|
|
// IME Flags
|
|
#define IMEUI_FLAG_SUPPORT_CARET 0x00000001
|
|
|
|
bool ImeUi_Initialize( _In_ HWND hwnd, _In_ bool bDisable = false );
|
|
void ImeUi_Uninitialize();
|
|
void ImeUi_SetAppearance( _In_opt_ const IMEUI_APPEARANCE* pia );
|
|
void ImeUi_GetAppearance( _Out_opt_ IMEUI_APPEARANCE* pia );
|
|
bool ImeUi_IgnoreHotKey( _In_ const MSG* pmsg );
|
|
LPARAM ImeUi_ProcessMessage( _In_ HWND hWnd, _In_ UINT uMsg, _In_ WPARAM wParam, _Inout_ LPARAM& lParam, _Out_ bool* trapped );
|
|
void ImeUi_SetScreenDimension( _In_ UINT width, _In_ UINT height );
|
|
void ImeUi_RenderUI( _In_ bool bDrawCompAttr = true, _In_ bool bDrawOtherUi = true );
|
|
void ImeUi_SetCaretPosition( _In_ UINT x, _In_ UINT y );
|
|
void ImeUi_SetCompStringAppearance( _In_ CImeUiFont_Base* pFont, _In_ DWORD color, _In_ const RECT* prc );
|
|
bool ImeUi_GetCaretStatus();
|
|
void ImeUi_SetInsertMode( _In_ bool bInsert );
|
|
void ImeUi_SetState( _In_ DWORD dwState );
|
|
DWORD ImeUi_GetState();
|
|
void ImeUi_EnableIme( _In_ bool bEnable );
|
|
bool ImeUi_IsEnabled();
|
|
void ImeUi_FinalizeString( _In_ bool bSend = false );
|
|
void ImeUi_ToggleLanguageBar( _In_ BOOL bRestore );
|
|
bool ImeUi_IsSendingKeyMessage();
|
|
void ImeUi_SetWindow( _In_ HWND hwnd );
|
|
UINT ImeUi_GetInputCodePage();
|
|
DWORD ImeUi_GetFlags();
|
|
void ImeUi_SetFlags( _In_ DWORD dwFlags, _In_ bool bSet );
|
|
|
|
WORD ImeUi_GetPrimaryLanguage();
|
|
DWORD ImeUi_GetImeId( _In_ UINT uIndex );
|
|
WORD ImeUi_GetLanguage();
|
|
LPCTSTR ImeUi_GetIndicatior();
|
|
bool ImeUi_IsShowReadingWindow();
|
|
bool ImeUi_IsShowCandListWindow();
|
|
bool ImeUi_IsVerticalCand();
|
|
bool ImeUi_IsHorizontalReading();
|
|
TCHAR* ImeUi_GetCandidate( _In_ UINT idx );
|
|
TCHAR* ImeUi_GetCompositionString();
|
|
DWORD ImeUi_GetCandidateSelection();
|
|
DWORD ImeUi_GetCandidateCount();
|
|
BYTE* ImeUi_GetCompStringAttr();
|
|
DWORD ImeUi_GetImeCursorChars();
|
|
|
|
extern void ( CALLBACK*ImeUiCallback_DrawRect )( _In_ int x1, _In_ int y1, _In_ int x2, _In_ int y2, _In_ DWORD color );
|
|
extern void* ( __cdecl*ImeUiCallback_Malloc )( _In_ size_t bytes );
|
|
extern void ( __cdecl*ImeUiCallback_Free )( _In_ void* ptr );
|
|
extern void ( CALLBACK*ImeUiCallback_DrawFans )( _In_ const IMEUI_VERTEX* paVertex, _In_ UINT uNum );
|
|
extern void ( CALLBACK*ImeUiCallback_OnChar )( _In_ WCHAR wc );
|