//________________________________________________ QPixmap TransitionWidget::grab( QWidget* widget, QRect rect ) { // change rect if( !rect.isValid() ) rect = widget->rect(); if( !rect.isValid() ) return QPixmap(); // initialize pixmap QPixmap out( rect.size() ); out.fill( Qt::transparent ); _paintEnabled = false; if( testFlag( GrabFromWindow ) ) { rect = rect.translated( widget->mapTo( widget->window(), widget->rect().topLeft() ) ); widget = widget->window(); #if QT_VERSION < 0x050000 out = QPixmap::grabWidget( widget, rect ); #else out = widget->grab( rect ); #endif } else { if( !testFlag( Transparent ) ) { grabBackground( out, widget, rect ); } grabWidget( out, widget, rect ); } _paintEnabled = true; return out; }
void Isoeng::run() { SDL_Event event; if(SDL_PollEvent(&event)) { switch(event.type) { case SDL_QUIT: alive = false; break; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_ESCAPE: alive = false; break; case SDLK_LCTRL: case SDLK_RCTRL: SDL_ShowCursor(SDL_DISABLE); cursor_style = 0; break; default: break; } break; case SDL_KEYUP: switch(event.key.keysym.sym) { case SDLK_LCTRL: case SDLK_RCTRL: SDL_ShowCursor(SDL_ENABLE); break; default: break; } break; case SDL_MOUSEMOTION: if(cursor_style) { x_offset += event.motion.xrel; y_offset += event.motion.yrel; } else if(m_x && m_y) { SDL_GetMouseState(&c_x, &c_y); } break; case SDL_MOUSEBUTTONDOWN: if(!SDL_ShowCursor(SDL_QUERY)) { cursor_style = 1; } else { SDL_GetMouseState(&m_x, &m_y); c_x = m_x + 1; c_y = m_y + 1; } break; case SDL_MOUSEBUTTONUP: cursor_style = 0; m_x = m_y = 0; break; } } renderBackground(); if(!SDL_ShowCursor(SDL_QUERY)) { grabBackground(); } else if(m_x && m_y) { selectAssets(); } SDL_Flip(window_main); }