midp_pt_kni.c
来自「This is a resource based on j2me embedde」· C语言 代码 · 共 203 行
C
203 行
/* * * * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt). * * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. *//** * @file * * Manage predictive text KNI Support */#include <string.h>#include <kni.h>#include <sni.h>#include <midpUtilKni.h>#include <pt_impl.h>#include <ROMStructs.h>#include <commonKNIMacros.h>#include <midpError.h>#include <midpMalloc.h>/** * Called 1st time predictive text library is accessed. * it calls platform specific predictive text initialization functions. * If library has been already initialized it's just initialized once again. * It can not guarantee the returned handler will be identical to the * previous one. * * @param lang the language used to select the library. If the language is * NULL or it's not supported this function returns handle for the default * language library. * @return the handle of the library. If some error occurs 0 is returned * as a library handle. */KNIEXPORT KNI_RETURNTYPE_INT Java_com_sun_midp_chameleon_input_PTDictionaryImpl_ptInitLibrary0() { jint handle = 0; KNI_StartHandles(1); GET_PARAMETER_AS_PCSL_STRING(1, lang); handle = ptInitLibrary(&lang); RELEASE_PCSL_STRING_PARAMETER; KNI_EndHandles(); KNI_ReturnInt(handle);}/** * Create a new iterator instance. * * @param lib library handle. If library handle is not valid 0 is returned * as an iterator handle. * * @return handle of new iterator. If some error occurs 0 is returned * as an iterator handle. */KNIEXPORT KNI_RETURNTYPE_INT Java_com_sun_midp_chameleon_input_PTIteratorImpl_ptNewIterator0() { jint lib; lib = KNI_GetParameterAsInt(1); KNI_ReturnInt(ptOpenIterator(lib));}/** * Clear all text from the predictive text iterator * * @param handle the handle of the iterator. If iterator handle is not valid * function returns false * * @return true if iterator has been cleared successfully otherwise false. * If function returns false the iterator state is not changed. */KNIEXPORT KNI_RETURNTYPE_BOOLEANJava_com_sun_midp_chameleon_input_PTIteratorImpl_ptClear0() { jint handle; handle = KNI_GetParameterAsInt(1); KNI_ReturnBoolean(ptClear(handle));}/** * Advances the predictive text iterator using the next key code * * @param handle the handle of the iterator. If iterator handle is not valid * function returns false. * * @param keyCode the next key ('0'-'9'). If keyCode is not valid function * returns false. * * @return true if key code has been added successfully otherwise false. * If function returns false the iterator state is not changed. */KNIEXPORT KNI_RETURNTYPE_BOOLEAN Java_com_sun_midp_chameleon_input_PTIteratorImpl_ptAddKey0() { jint handle = 0; jint keyCode; keyCode = KNI_GetParameterAsInt(2); handle = KNI_GetParameterAsInt(1); KNI_ReturnBoolean(ptAddKey(handle, keyCode));}/** * Backspace the iterator one key * * @param handle the handle of the iterator. If iterator handle is not valid * function returns false. * * @return true if key has been deleted successfully otherwise false. * If function returns false the iterator state is not changed. */KNIEXPORT KNI_RETURNTYPE_BOOLEANJava_com_sun_midp_chameleon_input_PTIteratorImpl_ptDeleteKey0() { jint handle; handle = KNI_GetParameterAsInt(1); KNI_ReturnBoolean(ptDeleteKey(handle));}/** * Return the current predictive text completion option * * @param handle the handle of the iterator. If iterator handle is not valid * function returns null. * @param outStringLen max size of the outArray. If size is equal or less than * 0 function returns null * * @return next element in the iteration */KNI_RETURNTYPE_OBJECTJava_com_sun_midp_chameleon_input_PTIteratorImpl_ptNextCompletionOption0() { jint result = 0; jint handle = 0; jint outStringLen; jchar nextCompletion[256] = {0}; jsize resultLength; KNI_StartHandles(1); KNI_DeclareHandle(string); handle = (int)KNI_GetParameterAsInt(1); outStringLen = (int)KNI_GetParameterAsInt(2) - 1; result = ptNextCompletionOption(handle, nextCompletion, outStringLen); if (result == KNI_TRUE) { for (resultLength = 0; nextCompletion[resultLength]; resultLength++) {} KNI_NewString(nextCompletion, resultLength, string); } else { KNI_ThrowNew(midpOutOfMemoryError, NULL); } KNI_EndHandlesAndReturnObject(string);} /** * See if exist further completion options for the current * predictive text entry * * @param handle the handle of the iterator. If iterator handle is not valid * function returns false. * * @return true if more completion options exist, false otherwise */KNIEXPORT KNI_RETURNTYPE_BOOLEANJava_com_sun_midp_chameleon_input_PTIteratorImpl_ptHasCompletionOption0() { jint handle; handle = KNI_GetParameterAsInt(1); KNI_ReturnBoolean(ptHasCompletionOption(handle)); }/** * Reset completion options for for the current predictive text entry * After this call, ptNextCompletionOption() will return all * completion options starting from 1st one. * * @param handle the handle of the iterator. If iterator handle is not valid * function returns false. * @return true if iterator has been reset successfully otherwise false. * If function returns false the iterator state is not changed. */KNIEXPORT KNI_RETURNTYPE_BOOLEAN Java_com_sun_midp_chameleon_input_PTIteratorImpl_ptRenewCompletionOptions0() { jint handle; handle = KNI_GetParameterAsInt(1); KNI_ReturnBoolean(ptRenewCompletionOptions(handle));}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?