示例#1
0
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());
    }
}
示例#2
0
	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);
	}