Panoramica della modalità senza interfaccia utente

Come creare UILessMode

Creazione di un thread senza interfaccia utente: L'applicazione può rendere un thread meno interfaccia utente di ITfThreadMgrEx::ActivateEx con ITF_AE_UIELEMENTENABLEDONLY. Quando ThreadMgr viene attivato con questo flag, solo i tip che possono controllare il relativo elemento dell'interfaccia utente vengono attivati nel thread. L'applicazione deve implementare l'interfaccia ITfUIElementSink e consigliare l'interfaccia in Gestione thread. ITfUIElementSink::BeginUIElement viene chiamato quando TIP visualizza l'interfaccia utente. L'applicazione può restituire TRUE nel parametro pbShow per consentire a TIP di visualizzare l'interfaccia utente originale di TIP quando l'applicazione non vuole disegnare. Se l'applicazione non consente l'interfaccia utente di TIP, può restituire FALSE in pbShow (vedere i diagrammi di seguito). L'applicazione può disegnare automaticamente l'interfaccia utente ottenendo alcune informazioni dal parametro pElement . Potrebbe trattarsi dell'elenco candidato, della barra della lingua o dell'interfaccia utente personalizzata di TIP. L'applicazione può conoscere il tipo di interfaccia utente di QIing ITfUIElement . Quando l'interfaccia utente viene modificata, viene chiamato ITfUIElementSink::UpdateUIElement . L'applicazione può confrontare il GUID da pElement-GetGUID>() per sapere se l'elemento è attualmente disegnato dall'applicazione.

Suggerimento senza riconoscimento dell'interfaccia utente: SUGGERIMENTO deve supportare una modalità inferiore all'interfaccia utente se vuole essere eseguita nell'applicazione che non vuole consentire l'interfaccia utente di TIP, ad esempio l'applicazione di gioco o le applicazioni a schermo intero. Per essere meno consapevoli dell'interfaccia utente, TIP deve implementare l'interfaccia ITfTextInputProcessorEx . Se questa interfaccia non è implementata, TIP non verrà attivata sotto il thread in modalità meno interfaccia utente. Inoltre, TIP deve chiamare ITFUIElementMgr::BeginUIElement prima di visualizzare un'interfaccia utente visibile sullo schermo. Questo metodo effettua una chiamata a ITfUIElementSink per notificare all'applicazione. E l'applicazione deciderà se può essere visualizzata o meno. Quando TIP chiama BeginUIElement(), TIP deve avere l'interfaccia ITfUIElement per l'interfaccia utente corrispondente. L'applicazione presenterà l'interfaccia qi per ottenere un'altra interfaccia specifica dell'interfaccia utente per recuperare altre informazioni per disegnare l'interfaccia utente. Sistema predefinite ITfCandidateListUIElement e ITfReadingInformationUIElement per TIP. Quando TIP vuole visualizzare l'elenco dei candidati nel thread in modalità meno interfaccia utente, TIP deve creare un'istanza dell'interfaccia ITfCandidateListUIElement e chiamare ITFUIElementMgr::BeginUIElement. Quando viene chiamato ITfTextInputProcessorEx::ActivateEx , TIP conosce già che il thread è meno interfaccia utente in modo da eliminare l'interfaccia utente personalizzata aggiuntiva. Tuttavia, naturalmente, può implementare la propria interfaccia che può essere eseguita dall'utente e provare a effettuare una notifica. Pertanto TIP e appliITfUIElementcation possono avere una negoziazione per l'interfaccia utente personalizzata TIP.

UIElement che supporta TIP

Il suggerimento che supporta UIElement deve essere classificato per GUID_TFCAT_TIPCAP_UIELEMENTENABLED. Il suggerimento in GUID_TFCAT_TIPCAP_UIELEMENTENABLED deve usare ITfUIElementMgr per visualizzare qualsiasi interfaccia utente in modo che l'applicazione possa controllare la visibilità dell'interfaccia utente.

Mostra/Nascondi stato di UIElement: Mostra/Nascondi stato indicato dal metodo ITfUIElement::Show o ITfUIElement::IsShown è lo stato visibile effettivo. Non è correlato alla disponibilità di UIElement. UIElement deve essere sempre disponibile quando lo stato di visualizzazione esiste. Lo stato di visualizzazione è controllabile dall'applicazione. L'applicazione può improvvisamente passare alla modalità UILess e iniziare a disegnare un'interfaccia utente autonomamente chiamando ITfUIElement::Show con FALSE per nascondere tutta l'interfaccia utente di TIP. Quindi TIP può accettare una di alcune opzioni. 1) TIP può spostare UIElement sullo stato Nascondi e iniziare a generare UpdateUIElement. 2) TIP può completare UIElement perché l'elemento dell'interfaccia utente non supporta Hide status e Tip chiama EndUIElement() per completarlo.

Elementi predefiniti dell'interfaccia utente

L'elenco dei candidati: L'elenco dei candidati è uno degli elementi principali dell'interfaccia utente per l'input EA. Questo elemento dell'interfaccia utente fornisce l'elenco dei candidati e il numero corrispondente delle stringhe candidate per il disegno.

Finestra informazioni di lettura La finestra delle informazioni di lettura è comune per l'input da tastiera cinese. Ha la fase che non può essere inserita nel documento come stringa di composizione. Alcuni processori di input cinesi apre una piccola finestra di informazioni di lettura che mostra le informazioni di lettura, fonetica o digitazione.

Diagramma di flusso di UILessMode

Diagramma che mostra il grafico di flusso U I LessMode.

Dopo che tip riceve TRUE in *pbShown da ITfUIElementMgr::BeginUIElement, il TIP non deve chiamare UpdateUIElement per UIElement. Ma TIP deve chiamare EndUIElement() in modo che ITfUIElementMgr e l'applicazione possano tenere traccia dello stato di UIElement. TIP deve chiamare UpdateUIElement() dopo che BeginUIElement() restituisce FALSE in *pbShow. L'applicazione che vuole disegnare l'interfaccia utente non controlla il contenuto in BeginUIElement(), restituisce solo lo stato di visualizzazione in BeginUIElement() e inizia a controllare il contenuto in UpdateUIElement(). Ad esempio, il flag di aggiornamento dell'elenco candidato UIElement ha tutti i bit al primo UpdateUIElement(). Ciò significa che il contenuto di UIElement non deve essere pronto in BeginUIElement().

Diagramma che mostra quando viene chiamato 'ITUIElementMgr::BeginUIElement()' e 'BeginUIElement of Application's UIElementSink'.Diagramma che mostra che l'applicazione restituisce FALSE in *pbShow.grafico di flusso uilessmode

Elenco candidati UIElement

Informazioni su PageIndex: L'applicazione che disegna l'elenco dei candidati calcolerà il numero di stringhe per pagina quando il contenuto dell'elenco viene modificato (TF_CLUIE_STRING è impostato). Non è consigliabile modificare l'indice di pagina mentre l'elenco dei candidati è disponibile per la modalità senza interfaccia utente. Ciò significa che l'elenco dei candidati TIP deve comportare il comportamento del paging anziché lo scorrimento quando la selezione viene spostata nella pagina successiva. Se lo scorrimento avviene in corrispondenza dello spostamento della selezione, l'indice della pagina viene modificato e l'applicazione deve ricalcolare l'indice della pagina. Il risultato potrebbe non essere previsto da TIP.

Nessuna proprietà Selection:ITfCandidateListUIElement::GetSelection restituisce S_FALSE, se l'elenco candidato non dispone di una selezione. Il valore restituito del primo parametro non è valido.