lfpport_qte_datefield.cpp
来自「This is a resource based on j2me embedde」· C++ 代码 · 共 268 行
CPP
268 行
/* * * * 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. */#include "lfpport_qte_util.h"#include "lfpport_qte_mscreen.h"#include <qpainter.h>#include <qlayout.h>#include <qbutton.h>#include <lfpport_form.h>#include "lfpport_qte_datefield.h"// ************************************************************// ************************************************************// *** Class DateField implementation// ************************************************************// ************************************************************/** * Construct a TextField native peer with label and body. */DateField::DateField(QWidget *parent, const QString &labelSt, int layout, long time, int mode, const QString &) : Item(parent, labelSt, layout){ setFocusPolicy(StrongFocus); dateEdit = new DateTimeEditor(this, mode, time); dateEdit->setFocusPolicy(StrongFocus); setFocusProxy(dateEdit);}/** * Construct a TextField native peer with label and body. */DateField::~DateField() { delete dateEdit;}/** * makes datefield accept focus, and notify the java peer of the focus * change, to enable item specific commands. */void DateField::focusInEvent(QFocusEvent *event) { TRACE_DF(DateField::focusInEvent); // Notify Java if this is caused by user action if (event->reason() != QFocusEvent::Other) { MidpFormFocusChanged(this); } // Continue with focus activation QWidget::focusInEvent(event); }/** Implement virtual function (defined in lfpport_qte_item.h) */void DateField::bodyResize(int w, int h){ TRACE_DF(DateField::setSize); REPORT_INFO2(LC_HIGHUI, "\tw & h = %d & %d\n", w, h); QSize size = dateEdit->sizeHint(); if (size.width() < w) { w = size.width(); } dateEdit->resize(w, h);}void DateField::bodyRelocate(int x, int y) { TRACE_DF(DateField::bodyRelocate); REPORT_INFO2(LC_HIGHUI, "\tx,y = %d,%d\n", x, y); dateEdit->move(x, y);}int DateField::bodyHeightForWidth(int *takenWidth, int) { TRACE_DF(DateField::bodyHeightForWidth); QSize size = dateEdit->sizeHint(); *takenWidth = size.width(); return dateEdit->getHeight();}int DateField::bodyWidthForHeight(int *takenHeight, int) { TRACE_DF(DateField::bodyWidthForHeight); QSize size = dateEdit->sizeHint(); *takenHeight = size.height(); return size.width();}/////////////////////////////API//////////////////////////////////////////** * Implement porting API function * (routes from midp_datefield.c to lfpport_qte_datefield.cpp) */MidpErrorDateField::setDate(long ptime){ if (dateEdit != NULL) { dateEdit->resetDateTime( ptime ); } return KNI_OK;} /** * Implement porting API function * (routes from midp_datefield.c to lfpport_qte_datefield.cpp) */MidpErrorDateField::getDate(long &ptime) //DateField::getDate(uint &ptime){ ptime = dateEdit->getTime(); return KNI_OK;}/** * Implement porting API function * (routes from midp_datefield.c to lfpport_qte_datefield.cpp) */MidpErrorDateField::setInputMode(int dmode){ dateEdit->setInputMode(dmode); return KNI_OK;}// ************************************************************// * accessed from lfp_datefield.c// ************************************************************/** * Create the native peer of a DateField. * Upon successful return, *datefieldPtr should be filled in properly. * Param time is number of milliseconds since the standard base time known as * "the epoch", namely January 1, 1970, 00:00:00 GMT. * (defined in midp_datefield.h) */extern "C" MidpErrorlfpport_datefield_create(MidpItem* datefieldPtr, MidpDisplayable* formPtr, const pcsl_string* label, int layout, int input_mode, long time, const pcsl_string* timezoneID){ QString qlabel, qtzone; TRACE_DF(lfpport_datefield_Create); REPORT_INFO1(LC_HIGHUI, "\tinput_mode=%d\n", input_mode); pcsl_string2QString(*label, qlabel); pcsl_string2QString(*timezoneID, qtzone); // Fill in MidpItem structure datefieldPtr->widgetPtr = new DateField((formPtr == INVALID_NATIVE_ID ? 0 : (QWidget *)formPtr->frame.widgetPtr), qlabel, layout, time, input_mode, qtzone); initItemPtr(datefieldPtr, formPtr); return KNI_OK;}/** * Notifies native peer of a date change in the corresponding DateField. * Param time is number of milliseconds since the standard base time known as * "the epoch", namely January 1, 1970, 00:00:00 GMT. * (defined in midp_datefield.h) */extern "C" MidpError lfpport_datefield_set_date(MidpItem* datefieldPtr, long time){ MidpError err = ((DateField *)datefieldPtr->widgetPtr)->setDate(time); return err;}/** * Query native peer for current user selected date. * Return time is number of milliseconds since the standard base time known as * "the epoch", namely January 1, 1970, 00:00:00 GMT. * (defined in midp_datefield.h) */extern "C" MidpError lfpport_datefield_get_date(long* time, MidpItem* datefieldPtr) { long tmp; MidpError err = ((DateField *)datefieldPtr->widgetPtr)->getDate(tmp); *time = tmp; return err;}/** * Notifies native peer of a new input mode set in the corresponding * DateField. * @param mode the new input mode set in the DateField. * (defined in midp_datefield.h) */extern "C" MidpError lfpport_datefield_set_input_mode(MidpItem* datefieldPtr, int mode){ MidpError err = ((DateField *)datefieldPtr->widgetPtr)->setInputMode(mode); return err;}//midp_datefield_qte
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?