void Ticker::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { if (show) { painter->fillRect(0,0,WIDTH, 74, mainGradient); painter->fillRect(100, 2, WIDTH - 200, 44, QColor(1,1,1)); painter->setFont(resizeText()); painter->setPen(QColor(255,255,255)); painter->drawText(100, 2, 300, 44, Qt::AlignCenter, games[index].getAway()); painter->drawText(400, 2, 100, 44, Qt::AlignCenter, games[index].getAwayScore()); painter->drawText(500, 2, 300, 44, Qt::AlignCenter, games[index].getHome()); painter->drawText(800, 2, 100, 44, Qt::AlignCenter, games[index].getHomeScore()); painter->drawText(900, 2, 300, 44, Qt::AlignCenter, games[index].getTimeAndPd()); } }
static void TextEditKeyboard(GWidgetObject* gw, GEventKeyboard* pke) { // Only react on KEYDOWN events. Ignore KEYUP events. if ((pke->keystate & GKEYSTATE_KEYUP) || !pke->bytecount) return; // Is it a special key? if (pke->keystate & GKEYSTATE_SPECIAL) { // Arrow keys to move the cursor switch ((uint8_t)pke->c[0]) { case GKEY_LEFT: if (!gw2obj->cursorPos) return; gw2obj->cursorPos--; break; case GKEY_RIGHT: if (!gw->text[gw2obj->cursorPos]) return; gw2obj->cursorPos++; break; case GKEY_HOME: if (!gw2obj->cursorPos) return; gw2obj->cursorPos = 0; break; case GKEY_END: if (!gw->text[gw2obj->cursorPos]) return; gw2obj->cursorPos = strlen(gw->text); break; default: return; } } else { // Normal key press switch((uint8_t)pke->c[0]) { case GKEY_BACKSPACE: // Backspace if (!gw2obj->cursorPos) return; gw2obj->cursorPos--; resizeText(gw, gw2obj->cursorPos, -1); break; case GKEY_TAB: case GKEY_LF: case GKEY_CR: // Move to the next field _gwinMoveFocus(); return; case GKEY_DEL: // Delete if (!gw->text[gw2obj->cursorPos]) return; resizeText(gw, gw2obj->cursorPos, -1); break; default: // Ignore any other control characters if ((uint8_t)pke->c[0] < GKEY_SPACE) return; // Keep the edit length to less than the maximum if (gw2obj->maxSize && gw2obj->cursorPos+pke->bytecount > gw2obj->maxSize) return; // Make space resizeText(gw, gw2obj->cursorPos, pke->bytecount); // Insert the character memcpy((char *)gw->text+gw2obj->cursorPos, pke->c, pke->bytecount); gw2obj->cursorPos += pke->bytecount; break; } } _gwinUpdate((GHandle)gw); }