/** * Create a Canvas's native peer without showing yet. * Upon successful return, *canvasPtr will be filled properly. * Sound and abstract command buttons should not be handled in this * function. Separated function calls are used. * * @param canvasPtr pointer to MidpDisplayable structure to be filled in * @param title title string * @param tickerText ticker text * @param canvasType canvas type as defined in MidpComponentType * @return error code */ extern "C" MidpError lfpport_canvas_create(MidpDisplayable* canvasPtr, const pcsl_string* title, const pcsl_string* tickerText) { PlatformMScreen * mscreen = PlatformMScreen::getMScreen(); /* Suppress unused-parameter warning */ (void)tickerText; // Fill in MidpDisplayable structure canvasPtr->frame.widgetPtr = mscreen; canvasPtr->frame.show = canvas_show; canvasPtr->frame.hideAndDelete = canvas_hide_and_delete; canvasPtr->frame.handleEvent = canvas_handle_event; canvasPtr->setTitle = displayable_set_title; canvasPtr->setTicker = displayable_set_ticker; canvasPtr->setTitle(canvasPtr, title); /*canvasPtr->setTicker(canvasPtr, tickerText);*/ // Give focus to mscreen so it can pass key/mouse events to Java mscreen->setFocus(); // NOTE: if screen is in full mode different height will be set // later by MScreen::setFullScreenMode() mscreen->resizeContents(mscreen->getDisplayWidth(), mscreen->getScreenHeight()); return KNI_OK; }
/** * Override QMultiLineEdit to notify Java peer of traversal out. * * @param keyEvent key event to handle */ void TextFieldBody::keyReleaseEvent(QKeyEvent *key) { int k = key->key(); // always handle select event because it switches // between the modal and non-modal modes #ifdef QT_KEYPAD_MODE if (k == Qt::Key_Select) { QMultiLineEdit::keyReleaseEvent(key); } else if (isModalEditing()) { #endif int line; int col; QMultiLineEdit::getCursorPosition(&line, &col); if (k == Qt::Key_Up && line == 0) { PlatformMScreen * mscreen = PlatformMScreen::getMScreen(); mscreen->keyReleaseEvent(key); } else if (k == Qt::Key_Down && line == numLines() - 1) { PlatformMScreen * mscreen = PlatformMScreen::getMScreen(); mscreen->keyReleaseEvent(key); } else { QMultiLineEdit::keyReleaseEvent(key); } #ifdef QT_KEYPAD_MODE } else { // not handle events while it's in not modal state key->ignore(); } #endif }
/** * returns current viewport height * \param viewport height return value */ extern "C" MidpError lfpport_form_get_viewport_height(int *height) { PlatformMScreen * mscreen = PlatformMScreen::getMScreen(); TRACE_CI(lfpport_form_get_viewport_height); *height = mscreen->visibleHeight(); return KNI_OK; }
/** * sets current scroll Y position */ extern "C" MidpError lfpport_form_set_scroll_position(int pos) { PlatformMScreen * mscreen = PlatformMScreen::getMScreen(); TRACE_CI(pdMidpFormSetScrollPosition); mscreen->setScrollPosition(pos); return KNI_OK; }
/** * Set current Item. */ extern "C" MidpError lfpport_form_set_current_item(MidpItem* itemPtr, int yOffset) { PlatformMScreen * mscreen = PlatformMScreen::getMScreen(); QWidget* itemWidgetPtr = (QWidget *)itemPtr->widgetPtr; // Make it visible mscreen->ensureVisible(itemWidgetPtr->x(), itemWidgetPtr->y() + yOffset, 0, 0); // Give focus to it itemWidgetPtr->setFocus(); return KNI_OK; }
/** * Set content of the container window. */ extern "C" MidpError lfpport_form_set_content_size(MidpDisplayable* dispPtr, int w, int h) { QWidget *container = (QWidget *)((MidpFrame *)dispPtr)->widgetPtr; PlatformMScreen * mscreen = PlatformMScreen::getMScreen(); if (h <= mscreen->getDisplayHeight()) { w = mscreen->getDisplayWidth(); h = mscreen->getDisplayHeight(); } container->resize(w, h); mscreen->resizeContents(w, h); return KNI_OK; }
/** * Refresh the area specified. * @param x relative to drawable * @param y relative to drawable * @param width width of the area to be updated * @param height height of the area to be updated */ MidpError CustomItem::refresh(int x, int y, int width, int height) { #if REPORT_LEVEL <= LOG_INFORMATION PlatformMScreen * mscreen = PlatformMScreen::getMScreen(); reportToLog(LOG_INFORMATION, LC_HIGHUI, "+ CustomItem::refresh: (%d,%d) (%dx%d)\n", x, y, width, height); reportToLog(LOG_INFORMATION, LC_HIGHUI, "+ QWidget::pos() = (%d,%d) drawable->pos() = (%d,%d)\n", QWidget::pos().x(), QWidget::pos().y(), drawable->pos().x(), drawable->pos().y()); reportToLog(LOG_INFORMATION, LC_HIGHUI, "+ scroll position = %d\n", mscreen->scrollPosition()); reportToLog(LOG_INFORMATION, LC_HIGHUI, "+\t\tbitBlt(\tdst, %d, %d,\n\t\t\tsrc, %d, %d, %d, %d); ", x, // dx y, // dy QWidget::pos().x() + drawable->pos().x() + x, QWidget::pos().y() + drawable->pos().y() + y - mscreen->scrollPosition(), width, height); #endif drawable->refresh(x, y, width, height); REPORT_INFO(LC_HIGHUI, "bitBlt complete.\n\n"); return KNI_OK; }
void DrawableArea::mouseReleaseEvent( QMouseEvent *mouse) { PlatformMScreen * mscreen = PlatformMScreen::getMScreen(); mouseIsPressed = FALSE; mscreen->viewportMouseReleaseEvent(mouse); }
void DrawableArea::mouseMoveEvent( QMouseEvent *mouse) { PlatformMScreen * mscreen = PlatformMScreen::getMScreen(); if (mouseIsPressed) mscreen->viewportMouseMoveEvent(mouse); }
void CustomItem::keyReleaseEvent(QKeyEvent *key) { PlatformMScreen * mscreen = PlatformMScreen::getMScreen(); mscreen->keyReleaseEvent(key); }