lfpport_qte_customitem.h
来自「This is a resource based on j2me embedde」· C头文件 代码 · 共 259 行
H
259 行
/* * * * 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. * * This source file is specific for Qt-based configurations. *//** * @file * The custom item widget and its helper classes. */#ifndef _LFPPORT_QTE_CUSTOM_ITEM_H_#define _LFPPORT_QTE_CUSTOM_ITEM_H_#include <midpEvents.h>#include <lfpport_customitem.h>#include <lfpport_error.h>#include "lfpport_qte_item.h"#include <qwidget.h>#include <qevent.h>#include <qpixmap.h>/** * CustomItem body widget. * The image that CustomItem subclass paints is shown in this widget. */class DrawableArea : public QWidget{public : /** * Construct a drawable widget as CustomItem body. * * @param parent CustomItem widget */ DrawableArea(QWidget *parent); /** * Sets offscreen buffer for this CustomItem body. * Java paints to the this pixmap. * @param p offscreen buffer for this CustomItem body */ void setContentBuffer(QPixmap *p); /** * Repaints specified area of CustomItem body. * @param x the x coordinate of the repaint area top left corner * @param y the y coordinate of the repaint area top left corner * @param width the width of the repaint area * @param height the height of the repaint area */ void refresh(int x, int y, int width, int height);protected : /** * Repaints the rectangle within the current screen requested by the given * system event. * * @param e device event corresponding to the repaint request. */ void paintEvent(QPaintEvent *e); // mouse and key handling: /** * Notify Java peer of mouse pressed event. * @param mouse mouse event */ void mousePressEvent( QMouseEvent *mouse); /** * Notify Java peer of mouse move event. * @param mouse mouse event */ void mouseMoveEvent( QMouseEvent *mouse); /** * Notify Java peer of mouse release event. * @param mouse mouse event */ void mouseReleaseEvent(QMouseEvent *mouse); private: /** * Whether the mouse is currently pressed: true if it is pressed, * and false otherwise. <b>Note:</b> This event is needed only for * the emulator, which might send a mouse-move event when it is not * pressed. A touch-enabled device won't send a mouse-move event * when the pen is not pressed. */ bool mouseIsPressed; /** * Pixmap that contains what CustomItem subclass paints. */ QPixmap *bodyPix;};// **********************************************************************// **********************************************************************// ** class CustomItem definition// **********************************************************************// **********************************************************************/** * CustomItem widget. */class CustomItem : public Item{ /** * The CustomItem's body widget, used as a drawable area */ DrawableArea *drawable;public: /** * Construct a CustomItem widget. * * @param parent owner screen's widget * @param label label text * @param layout layout directive associated with this customitem */ CustomItem(QWidget *parent, const QString &label, int layout); /** * CustomItem widget's destructor. */ ~CustomItem(); /** * Redraws the part of the custom item specified by the given coordinates * and dimensions. The coordinates are the x and y values of the top-left * corner of the area to be redrawn, relative to the custom item's drawable * area. * * <p><b>Implementation Note:</b> This function routes from * <tt>midp_customitem.c</tt> to <tt>lfpport_qte_customitem.cpp</tt>. * * @param x horizontal location, relative to drawable, for the upper-left * corner of the area to redraw. * @param y vertical location, relative to drawable, for the upper-left * corner of the area to redraw. * @param width width of the area to redraw * @param height height of the area to redraw * * @return an indication of success or the reason for failure */ MidpError refresh( int x, int y, int width, int height); /** * Sets the offscreen buffer for the content area of this custom item * @param buffer new offscreen pixmap buffer for the content */ void setContentBuffer(QPixmap *buffer);protected : /** * Move body widget to new location. * The coordinates are within this CustomItem widget's coordinate * system. * * @param x X coordinate of the body widget's top left corner * @param y Y coordinate of the body widget's top left corner */ void bodyRelocate(int x, int y); /** * Resize body widget. * * @param w W width of the body widget * @param h H height of the body widget */ void bodyResize(int w, int h); /** * Calculate body widget height when its width is limited to a given value. * * @param takenWidth return value for used body widget width * @param w maximum width * @return body widget height */ int bodyHeightForWidth(int *takenWidth, int w); /** * Calculate body widget width when its height is limited to a given value. * * @param takenHeight return value for used body widget height * @param h maximum height * @return body widget width */ int bodyWidthForHeight(int *takenHeight, int h); /** * Makes this custom item have focus, enabling any item-specific commands; in * addition, if the given event was caused by a user action, notifies the * Java platform of the change in focus. * * @param event device event corresponding to the change in focus. */ void focusInEvent(QFocusEvent *event); /** * Repaints the rectangle within the custom item requested by the given * system event. Focus rectangle is painted here as well. * * @param e device event corresponding to the repaint request. */ void paintEvent(QPaintEvent *e); /** * Notify Java peer of key press event. * @param key key event */ void keyPressEvent(QKeyEvent *key); /** * Notify Java peer of key release event. * @param key key event */ void keyReleaseEvent(QKeyEvent *key);};#endif /* _LFPPORT_QTE_CUSTOM_ITEM_H_ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?