LRESULT CALLBACK Win32Window::windowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc; switch(uMsg) { case WM_PAINT: hdc = BeginPaint(hWnd, &ps); draw_update(hdc); EndPaint(hWnd, &ps); break; case WM_ERASEBKGND: break; case WM_TIMER: timerFunc(); break; case WM_KEYDOWN: keyboardPressed((char)wParam); break; case WM_LBUTTONDBLCLK: case WM_LBUTTONDOWN: mousePressed(0, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); break; case WM_RBUTTONDBLCLK: case WM_RBUTTONDOWN: mousePressed(1, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); break; case WM_COMMAND: for(std::vector<Button*>::iterator it = m_buttons.begin(); it != m_buttons.end(); ++it) { Button *p = *it; if(LOWORD(wParam) ==p->m_id) { if(HIWORD(wParam) == BN_CLICKED) if(p->m_click) p->m_click(); break; } } break; case WM_CREATE: break; case WM_CLOSE: DeleteObject(hDoubleBufferBM); DeleteDC (hDoubleBufferDC); PostQuitMessage(0); break; default: return DefWindowProc(hWnd, uMsg, wParam, lParam); } return 0; }
void GraphicsScene::keyPressEvent(QKeyEvent *event) { emit keyboardPressed(event); }
int main() { screenInit(); screenPutString("BIOS Terminal v1.0 build " BUILD "\r\n(C) Copyright 2004 Wojtek Kaniewski <*****@*****.**>\r\nPress F12 to configure serial port\r\n\r\n"); serialSetup(); for (;;) { #ifdef DEBUG_SERIAL byte x, y, a; x = screenX; y = screenY; a = screenAttr; screenX = 30; screenY = 24; screenAttr = 7*16; screenCursorNoUpdate = 1; screenPutString(" s:"); screenPutHex((char)((char) serialRxHead - (char) serialRxTail)); screenPutString(" i:"); screenPutHex(portRead(0x21)); screenPutString(" t:"); screenPutHex(serialRxTail >> 8); screenPutHex(serialRxTail &255); screenPutString("/h:"); screenPutHex(serialRxHead >> 8); screenPutHex(serialRxHead &255); screenPutString(","); screenPutHex(portRead(serialPort+1)); screenPutString(","); screenPutHex(serialInterruptLast); // +2 screenPutString(","); screenPutHex(portRead(serialPort+3)); screenPutString(","); screenPutHex(portRead(serialPort+4)); screenPutString(","); screenPutHex(portRead(serialPort+5)); screenPutString(","); screenPutHex(portRead(serialPort+6)); screenPutString(" k:"); screenCursorNoUpdate = 0; screenX = x; screenY = y; screenAttr = a; screenCursorUpdate(); #endif // DEBUG_SERIAL if (keyboardPressed()) { char *seq = vtGetChar(); while (*seq) { serialPutChar(*seq); seq++; } } while (serialDataReady()) { char ch = serialGetChar(); vtPutChar(ch); } } }