1*161f4cd1SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*161f4cd1SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*161f4cd1SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*161f4cd1SAndrew Rist * distributed with this work for additional information 6*161f4cd1SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*161f4cd1SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*161f4cd1SAndrew Rist * "License"); you may not use this file except in compliance 9*161f4cd1SAndrew Rist * with the License. You may obtain a copy of the License at 10*161f4cd1SAndrew Rist * 11*161f4cd1SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*161f4cd1SAndrew Rist * 13*161f4cd1SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*161f4cd1SAndrew Rist * software distributed under the License is distributed on an 15*161f4cd1SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*161f4cd1SAndrew Rist * KIND, either express or implied. See the License for the 17*161f4cd1SAndrew Rist * specific language governing permissions and limitations 18*161f4cd1SAndrew Rist * under the License. 19*161f4cd1SAndrew Rist * 20*161f4cd1SAndrew Rist *************************************************************/ 21*161f4cd1SAndrew Rist 22*161f4cd1SAndrew Rist 23cdf0e10cSrcweir #ifndef _SAL_I18N_CALLBACK_HXX 24cdf0e10cSrcweir #define _SAL_I18N_CALLBACK_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir #include <salwtype.hxx> 27cdf0e10cSrcweir #include <vector> 28cdf0e10cSrcweir 29cdf0e10cSrcweir #ifdef __cplusplus 30cdf0e10cSrcweir extern "C" { 31cdf0e10cSrcweir #endif 32cdf0e10cSrcweir 33cdf0e10cSrcweir // for iiimp / ml input 34cdf0e10cSrcweir int CommitStringCallback( XIC ic, XPointer client_data, XPointer call_data); 35cdf0e10cSrcweir 36cdf0e10cSrcweir // xim callbacks 37cdf0e10cSrcweir void PreeditDoneCallback ( XIC ic, XPointer client_data, XPointer call_data); 38cdf0e10cSrcweir int PreeditStartCallback( XIC ic, XPointer client_data, XPointer call_data); 39cdf0e10cSrcweir void PreeditDoneCallback ( XIC ic, XPointer client_data, XPointer call_data); 40cdf0e10cSrcweir void PreeditDrawCallback ( XIC ic, XPointer client_data, 41cdf0e10cSrcweir XIMPreeditDrawCallbackStruct *call_data ); 42cdf0e10cSrcweir void PreeditCaretCallback( XIC ic, XPointer client_data, 43cdf0e10cSrcweir XIMPreeditCaretCallbackStruct *call_data ); 44cdf0e10cSrcweir void GetPreeditSpotLocation(XIC ic, XPointer client_data); 45cdf0e10cSrcweir 46cdf0e10cSrcweir // private hook to prevent from sending further edit events 47cdf0e10cSrcweir void PreeditCancelCallback( XPointer client_data ); 48cdf0e10cSrcweir 49cdf0e10cSrcweir void StatusStartCallback (XIC ic, XPointer client_data, XPointer call_data); 50cdf0e10cSrcweir void StatusDoneCallback (XIC ic, XPointer client_data, XPointer call_data); 51cdf0e10cSrcweir void StatusDrawCallback (XIC ic, XPointer client_data, 52cdf0e10cSrcweir XIMStatusDrawCallbackStruct *call_data); 53cdf0e10cSrcweir void SwitchIMCallback (XIC ix, XPointer client_data, XPointer call_data ); 54cdf0e10cSrcweir 55cdf0e10cSrcweir // keep informed if kinput2 crashed again 56cdf0e10cSrcweir void IC_IMDestroyCallback (XIM im, XPointer client_data, XPointer call_data); 57cdf0e10cSrcweir void IM_IMDestroyCallback (XIM im, XPointer client_data, XPointer call_data); 58cdf0e10cSrcweir 59cdf0e10cSrcweir Bool IsControlCode(sal_Unicode nChar); 60cdf0e10cSrcweir 61cdf0e10cSrcweir #ifdef __cplusplus 62cdf0e10cSrcweir } /* extern "C" */ 63cdf0e10cSrcweir #endif 64cdf0e10cSrcweir 65cdf0e10cSrcweir typedef struct { 66cdf0e10cSrcweir sal_Unicode *pUnicodeBuffer; 67cdf0e10cSrcweir XIMFeedback *pCharStyle; 68cdf0e10cSrcweir unsigned int nCursorPos; 69cdf0e10cSrcweir unsigned int nLength; 70cdf0e10cSrcweir unsigned int nSize; 71cdf0e10cSrcweir } preedit_text_t; 72cdf0e10cSrcweir 73cdf0e10cSrcweir class SalFrame; 74cdf0e10cSrcweir 75cdf0e10cSrcweir typedef enum { 76cdf0e10cSrcweir ePreeditStatusDontKnow = 0, 77cdf0e10cSrcweir ePreeditStatusActive, 78cdf0e10cSrcweir ePreeditStatusActivationRequired, 79cdf0e10cSrcweir ePreeditStatusStartPending 80cdf0e10cSrcweir } preedit_status_t; 81cdf0e10cSrcweir 82cdf0e10cSrcweir typedef struct { 83cdf0e10cSrcweir SalFrame* pFrame; 84cdf0e10cSrcweir Bool bIsMultilingual; 85cdf0e10cSrcweir preedit_status_t eState; 86cdf0e10cSrcweir preedit_text_t aText; 87cdf0e10cSrcweir SalExtTextInputEvent aInputEv; 88cdf0e10cSrcweir std::vector< sal_uInt16 > aInputFlags; 89cdf0e10cSrcweir } preedit_data_t; 90cdf0e10cSrcweir 91cdf0e10cSrcweir #endif /* _SAL_I18N_CALLBACK_HXX */ 92