lfp_imageitem.c
来自「This is a resource based on j2me embedde」· C语言 代码 · 共 183 行
C
183 行
/* * * * 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 * * Cross platform functions for ImageItem. */#include <stdlib.h>#include <kni.h>#include <midpError.h>#include "lfp_intern_registry.h"#include <lfpport_imageitem.h>#include <midpUtilKni.h>#include <gxp_image.h>/** * KNI function that creates new native resource for the current ImageItem. * * Class: javax.microedition.lcdui.ImageItemLFImpl * Java prototype: * private native int createNativeResource0(int ownerId, String label, * int layout, * Image img, String altText, * int appearanceMode) * * INTERFACE (operand stack manipulation): * parameters: ownerId pointer to the owner's native resource * label ImageItem's label * layout ImageItem's layout * img ImageItem's image * altText ImageItem's attText * appearanceMode the appearanceMode of ImageItem * return pointer to the created native resource */KNIEXPORT KNI_RETURNTYPE_INTJava_javax_microedition_lcdui_ImageItemLFImpl_createNativeResource0() { MidpError err = KNI_OK; MidpDisplayable *ownerPtr; MidpItem *itemPtr = NULL; pcsl_string label, altText; pcsl_string_status rc1,rc2; unsigned char* imgPtr = NULL; int appearanceMode, layout; KNI_StartHandles(3); KNI_DeclareHandle(labelJString); KNI_DeclareHandle(image); KNI_DeclareHandle(altTextJString); ownerPtr = (MidpDisplayable *)KNI_GetParameterAsInt(1); KNI_GetParameterAsObject(2, labelJString); layout = KNI_GetParameterAsInt(3); KNI_GetParameterAsObject(4, image); KNI_GetParameterAsObject(5, altTextJString); if (KNI_IsNullHandle(image) != KNI_TRUE) { imgPtr = gxp_get_imagedata(image); } appearanceMode = KNI_GetParameterAsInt(6); rc1 = midp_jstring_to_pcsl_string(labelJString, &label); rc2 = midp_jstring_to_pcsl_string(altTextJString, &altText); KNI_EndHandles(); /* NULL and empty strings are acceptable. */ if (PCSL_STRING_OK != rc1 || PCSL_STRING_OK != rc2 ) { err = KNI_ENOMEM; goto cleanup; } itemPtr = MidpNewItem(ownerPtr, MIDP_PLAIN_IMAGE_ITEM_TYPE+appearanceMode); if (itemPtr == NULL) { err = KNI_ENOMEM; goto cleanup; } err = lfpport_imageitem_create(itemPtr, ownerPtr, &label, layout, imgPtr, &altText, appearanceMode);cleanup: pcsl_string_free(&altText); pcsl_string_free(&label); if (err != KNI_OK) { MidpDeleteItem(itemPtr); KNI_ThrowNew(midpOutOfMemoryError, NULL); } KNI_ReturnInt(itemPtr);}/** * KNI function that sets new content on the native resource corresponding to * the current ImageItem. * * Class: javax.microedition.lcdui.ImageItemLFImpl * Java prototype: * private native int setContent0(int nativeId, Image image, altText, * appearanceMode) * * INTERFACE (operand stack manipulation): * parameters: nativeId pointer to a native resource of this ImageItem * image the new image set in the ImageItem * altText the new altText set in the ImageItem * appearanceMode the actual appearance mode to be used * returns: <nothing> */KNIEXPORT KNI_RETURNTYPE_VOIDJava_javax_microedition_lcdui_ImageItemLFImpl_setContent0() { MidpError err = KNI_OK; unsigned char* imgPtr = NULL; pcsl_string altText; pcsl_string_status rc; MidpItem *itemPtr = (MidpItem *)KNI_GetParameterAsInt(1); int appearanceMode = KNI_GetParameterAsInt(4); KNI_StartHandles(2); KNI_DeclareHandle(image); KNI_DeclareHandle(altTextJString); KNI_GetParameterAsObject(2, image); if (KNI_IsNullHandle(image) != KNI_TRUE) { imgPtr = gxp_get_imagedata(image); } KNI_GetParameterAsObject(3, altTextJString); rc = midp_jstring_to_pcsl_string(altTextJString, &altText); KNI_EndHandles(); /* NULL and empty strings are acceptable. */ if (PCSL_STRING_OK != rc) { err = KNI_ENOMEM; } else { err = lfpport_imageitem_set_content(itemPtr, imgPtr, &altText, appearanceMode); } pcsl_string_free(&altText); if (err == KNI_ENOMEM) { KNI_ThrowNew(midpOutOfMemoryError, NULL); } KNI_ReturnVoid();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?