lfpport_qte_textfield.h

来自「This is a resource based on j2me embedde」· C头文件 代码 · 共 291 行

H
291
字号
/* *    * * 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 * Definition for Qt port of text field. */#ifndef _LFPPROT_QTE_TEXTFIELD_H_#define _LFPPROT_QTE_TEXTFIELD_H_#include <lfpport_textfield.h>#include "lfpport_qte_item.h"#include <qmultilineedit.h>/** * Body widget of TextField. */class TextFieldBody : public QMultiLineEdit {    Q_OBJECTprotected:    /**     * Validates a string against the current constraint     *     * @param s new inserted string     * @param line line number of the insertion point     * @param col column number of the insertion point     * @return true if this insertion is allowed by current input constraints     */    bool validate(const QString &s, int line, int col);   /**    * Makes this 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 pointer to the device event corresponding to the change in    *        focus.    */    void focusInEvent(QFocusEvent *event);protected slots:    /**     * Listens for text changes to this form item, and notifies the Java     * platform when they occur.     */    void notifyStateChanged();    /**     * Override QMultiLineEdit to notify Java peer of traversal out.     *     * @param keyEvent key event to handle     */    void keyPressEvent ( QKeyEvent *key);    /**     * Override QMultiLineEdit to notify Java peer of traversal out.     *     * @param keyEvent key event to handle     */    void keyReleaseEvent(QKeyEvent *key);    /**     * Method format phone string     * @param s string      */    QString getStringForPhoneNumber(QString& s);public:    /**     * Constructor.     *     * @param parent Main widget of this TextField     */    TextFieldBody(QWidget *parent);    /**     * Sets the current position of the cursor in the text field to the given     * position. It uses a one-dimensional algorithm: in a multi-line text     * field, an EOL is simply counted as another character. That is, the     * length of a line is <i>numChars</i>+1, and the first character of the     * next line is <i>sumOfPreviousLineLengths</i>+1.     *     * <p>If the given position is a negative number, the cursor is placed at     * the beginning of the text field; if the given position is greater than     * the number of characters in the text field, the cursor is placed at the     * end of the text field.</p>     *     * @param position the position in the text field where the cursor should     *        be, in number of characters.     */    void setCursorPosition(int position);    /**     * Gets the current position of the cursor in the text field. It uses a     * one-dimensional algorithm: in a multi-line text field, an EOL is simply     * counted as another character.  That is, the length of a line is     * <i>numChars</i>+1, and the first character of the next line is     * <i>sumOfPreviousLineLengths</i>+1.     *     * @return the position of the cursor in the text field, in number of     * characters. If the cursor is at the front of the text field, this     * function returns zero.     */    int getCursorPosition();        /**     * Updates the text of this text field without triggering a notification     * to the Java platform. This is used when its contents is changed      * programmatically by MIDlet instead of by user.     *      * @param s new text     */    void setTextQuietly(const QString &s);    /**     * Override QMultLineEdit to validate new insertion against input     * constraint.     *     * @param s new inserted string     * @param line line number of the insertion point     * @param col column number of the insertion point     * @param mark whether the text is marked     */    void insertAt(const QString &s, int line, int col, bool mark = FALSE);    /**     * Override QMultLineEdit::backspace to format phone string     */    void backspace();    /**     * Override QMultLineEdit::del to format phone string     */    void del();    /** This text field's input constraints, if any. As discussed in the     * <i>MIDP Specification</i>, an input constraint makes it easier for     * users to enter certain characters. The MIDP implementation uses the     * value of <tt>constraints</tt> to validate input text */    int constraints;};/** * Main widget of a TextField. */class TextField : public Item {    /**     * Body (current content and associated constraints) of this     * TextField.     */    TextFieldBody *qedit; protected:    /**     * Move body widget.     *     * @param x the horizontal coordinate of the upper-left corner of this main widget.     * @param y the vertical coordinate of the upper-left corner of this main widget.     */    void bodyRelocate(int x, int y);    /**     * Resize body widget.     *      * @param w new width     * @param h new height     */    void bodyResize(int w, int h);    /**     * Calculate body widget height when width is limited to a given value.     *     * @param takenWidth return value of the real width used     * @param w maximum width     * @return body widget height     */    int  bodyHeightForWidth(int *takenWidth, int w);    /**     * Calculate body widget width when height is limited to a given value.     *     * @param takenHeight return value of the real height used     * @param h maximum height     * @return body widget width     */    int  bodyWidthForHeight(int *takenHeight, int h);    /**     * Test whether the text can fit in the given height.     *     * @param bodyHeight maximum height     * @return true if the text height is smaller than the given maximum height     */    bool bodyCanBeOnSameLine(int bodyHeight);public :     /**     * TextField's constructor.     * @param parent owner screen's widget     * @param label label text     * @param layout layout directive associated with this textfield     * @param text text contents     * @param maxSize maximum allowed number of characters     * @param constraints lower 16 bits: type of MidpConstraints,     *			  high  16 bits: type of MidpModifier     * @param inputMode suggested input method     */    TextField(QWidget *parent, const QString &label, int layout,	      const QString &text,	      int maxSize, int constraints, const QString &inputMode);	          /**     * TextField's destructor.     */    ~TextField();    /**     * Update text contents.     *     * @param text new text contents     * @return status of this call     */    MidpError setString(const QString &text);    /**     * Get the current text contents.     *     * @param text text to be set to the current contents     * @return status of this call     */    MidpError getString(QString &text);    /**     * Change maximum size.     * If current contents is longer than this size, it will be truncated.     *     * @param maxSize new maximum number of characters     * @return status of this call     */    MidpError setMaxSize(int maxSize);    /**     * Get current cursor position in one dimensional manner.     *     * @param position return value of the cursor position     * @return status of this call     */    MidpError getCaretPosition(int &position);    /**     * Change input constraints.     *     * @param constraints new input constraints     * @return status of this call     */    MidpError setConstraints(int constraints);};#endif /* _LFPPROT_QTE_TEXTFIELD_H_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?