You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
3.8 KiB
130 lines
3.8 KiB
/****************************************************************************
|
|
SKBDMODE.CPP : CSoftKbdMode class implementation which manage Soft Keyboard
|
|
button on the Cicero Toolbar
|
|
|
|
History:
|
|
19-SEP-2000 CSLim Created
|
|
****************************************************************************/
|
|
|
|
#include "private.h"
|
|
#include "globals.h"
|
|
#include "common.h"
|
|
#include "korimx.h"
|
|
#include "skbdmode.h"
|
|
#include "userex.h"
|
|
#include "immxutil.h"
|
|
#include "resource.h"
|
|
|
|
// {C7BAA1A7-5403-4596-8fe6-DC50C96B2FDD}
|
|
const GUID GUID_LBI_KORIMX_SKBDMODE =
|
|
{
|
|
0xC7BAA1A7,
|
|
0x5403,
|
|
0x4596,
|
|
{ 0x8f, 0xe6, 0xdc, 0x50, 0xc9, 0x6b, 0x2f, 0xdd }
|
|
};
|
|
|
|
/*---------------------------------------------------------------------------
|
|
CSoftKbdMode::CSoftKbdMode
|
|
---------------------------------------------------------------------------*/
|
|
CSoftKbdMode::CSoftKbdMode(CToolBar *ptb)
|
|
{
|
|
WCHAR szText[256];
|
|
|
|
m_pTb = ptb;
|
|
|
|
// Set Add/Remove and tootip text
|
|
LoadStringExW(g_hInst, IDS_BUTTON_SOFTKBD, szText, sizeof(szText)/sizeof(WCHAR));
|
|
InitInfo(CLSID_KorIMX,
|
|
GUID_LBI_KORIMX_SKBDMODE,
|
|
TF_LBI_STYLE_BTN_TOGGLE | TF_LBI_STYLE_HIDDENBYDEFAULT,
|
|
130,
|
|
szText);
|
|
SetToolTip(szText);
|
|
SetText(szText);
|
|
}
|
|
|
|
/*---------------------------------------------------------------------------
|
|
CSoftKbdMode::Release
|
|
---------------------------------------------------------------------------*/
|
|
STDAPI_(ULONG) CSoftKbdMode::Release()
|
|
{
|
|
long cr;
|
|
|
|
cr = --m_cRef;
|
|
Assert(cr >= 0);
|
|
|
|
if (cr == 0)
|
|
{
|
|
delete this;
|
|
}
|
|
|
|
return cr;
|
|
}
|
|
|
|
/*---------------------------------------------------------------------------
|
|
CSoftKbdMode::GetIcon
|
|
|
|
Get Button face Icon
|
|
---------------------------------------------------------------------------*/
|
|
STDAPI CSoftKbdMode::GetIcon(HICON *phIcon)
|
|
{
|
|
*phIcon = (HICON)LoadImage(g_hInst, MAKEINTRESOURCE(IDI_SOFTKBD), IMAGE_ICON, 16, 16, LR_LOADMAP3DCOLORS);;
|
|
|
|
return S_OK;
|
|
}
|
|
|
|
/*---------------------------------------------------------------------------
|
|
CSoftKbdMode::InitMenu
|
|
|
|
No need, this is just toggle button
|
|
---------------------------------------------------------------------------*/
|
|
STDAPI CSoftKbdMode::InitMenu(ITfMenu *pMenu)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
/*---------------------------------------------------------------------------
|
|
CSoftKbdMode::OnMenuSelect
|
|
|
|
No need, this is just toggle button
|
|
---------------------------------------------------------------------------*/
|
|
STDAPI CSoftKbdMode::OnMenuSelect(UINT wID)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
|
|
/*---------------------------------------------------------------------------
|
|
CSoftKbdMode::OnLButtonUp
|
|
---------------------------------------------------------------------------*/
|
|
HRESULT CSoftKbdMode::OnLButtonUp(const POINT pt, const RECT* prcArea)
|
|
{
|
|
return ToggleCompartmentDWORD(m_pTb->m_pimx->GetTID(),
|
|
m_pTb->m_pimx->GetTIM(),
|
|
GUID_COMPARTMENT_KOR_SOFTKBD_OPENCLOSE,
|
|
FALSE);
|
|
|
|
}
|
|
|
|
|
|
/*---------------------------------------------------------------------------
|
|
CSoftKbdMode::UpdateToggle
|
|
|
|
No need, this is just toggle button
|
|
---------------------------------------------------------------------------*/
|
|
void CSoftKbdMode::UpdateToggle()
|
|
{
|
|
DWORD dwState = 0;
|
|
|
|
GetCompartmentDWORD(m_pTb->m_pimx->GetTIM(),
|
|
GUID_COMPARTMENT_KOR_SOFTKBD_OPENCLOSE,
|
|
&dwState,
|
|
FALSE);
|
|
|
|
SetOrClearStatus(TF_LBI_STATUS_BTN_TOGGLED, dwState);
|
|
if (m_plbiSink)
|
|
m_plbiSink->OnUpdate(TF_LBI_STATUS);
|
|
}
|
|
|
|
|