Files
tubestation/widget/windows/TSFInputScope.h
Masayuki Nakano f259acf13b Bug 1953688 - Split TSFTextStore.cpp for each class definition and declaration r=m_kato
It's too big and the code in it is really complicated.  Therefore, I don't
like to make it bigger to implement new `ITfTextStore` subclass.  Therefore,
this patch splits the file for `TSFStaticSink`, `InputScopeImpl` (renamed to
`TSFInputScope`) and the others (named `TSFUtils`).

This patch sorts out some logging helper methods/classes.  Therefore, this
patch contains some changes in `TSFTextStore.cpp`.

Differential Revision: https://phabricator.services.mozilla.com/D241348
2025-03-18 06:06:10 +00:00

52 lines
1.4 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef TSFInputScope_h
#define TSFInputScope_h
#include <inputscope.h>
#include "WinUtils.h"
#include "nsTArray.h"
namespace mozilla::widget {
class TSFInputScope final : public ITfInputScope {
~TSFInputScope() {}
public:
explicit TSFInputScope(const nsTArray<InputScope>& aList);
NS_INLINE_DECL_IUNKNOWN_REFCOUNTING(TSFInputScope)
STDMETHODIMP QueryInterface(REFIID riid, void** ppv) {
*ppv = nullptr;
if ((IID_IUnknown == riid) || (IID_ITfInputScope == riid)) {
*ppv = static_cast<ITfInputScope*>(this);
}
if (*ppv) {
AddRef();
return S_OK;
}
return E_NOINTERFACE;
}
STDMETHODIMP GetInputScopes(InputScope** pprgInputScopes, UINT* pcCount);
STDMETHODIMP GetPhrase(BSTR** ppbstrPhrases, UINT* pcCount) {
return E_NOTIMPL;
}
STDMETHODIMP GetRegularExpression(BSTR* pbstrRegExp) { return E_NOTIMPL; }
STDMETHODIMP GetSRGS(BSTR* pbstrSRGS) { return E_NOTIMPL; }
STDMETHODIMP GetXML(BSTR* pbstrXML) { return E_NOTIMPL; }
private:
nsTArray<InputScope> mInputScopes;
};
} // namespace mozilla::widget
#endif // #ifndef TSFInputScope