annotate data/model/SDLWidget.cpp @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents 2ac52ea3c1c4
children
rev   line source
benoitrigolleau@132 1 #include <vector>
benoitrigolleau@132 2 #include <cstdlib>
benoitrigolleau@132 3 #include <ctime>
benoitrigolleau@132 4 #include "SDLWidget.h"
benoitrigolleau@167 5
ivand_qmul@150 6
ivand_qmul@150 7
benoitrigolleau@132 8
benoitrigolleau@132 9 SDLWidget::SDLWidget()
benoitrigolleau@145 10 :windowInitialized(false), screen(0),m_width(0), m_height(0)
ivand_qmul@150 11 {
ivand_qmul@150 12 setAttribute(Qt::WA_PaintOnScreen);
benoitrigolleau@132 13 setAttribute(Qt::WA_NoSystemBackground);
benoitrigolleau@145 14 connect(this,SIGNAL(initSizeChanged()),this,SLOT(updateMinSize()));
benoitrigolleau@139 15
benoitrigolleau@132 16 }
benoitrigolleau@132 17
benoitrigolleau@132 18 SDLWidget::~SDLWidget()
benoitrigolleau@132 19 {
benoitrigolleau@132 20 SDL_Quit();
benoitrigolleau@132 21 }
benoitrigolleau@132 22
benoitrigolleau@139 23
benoitrigolleau@145 24 void SDLWidget::setInitSize(int w, int h){
benoitrigolleau@167 25 m_width = w;
benoitrigolleau@167 26 m_height =h;
benoitrigolleau@167 27 emit(initSizeChanged());
benoitrigolleau@145 28 }
benoitrigolleau@145 29
benoitrigolleau@145 30 void SDLWidget::updateMinSize()
benoitrigolleau@145 31 {
benoitrigolleau@167 32 setMinimumSize( m_width,m_height);
benoitrigolleau@167 33 setMaximumSize( m_width,m_height);
benoitrigolleau@145 34 }
benoitrigolleau@145 35
benoitrigolleau@145 36
benoitrigolleau@139 37
benoitrigolleau@132 38 void SDLWidget::showEvent(QShowEvent *e)
ivand_qmul@150 39 {
benoitrigolleau@132 40 (void)e;
ivand_qmul@138 41
benoitrigolleau@167 42
benoitrigolleau@167 43 //QWidget::showEvent(e);
benoitrigolleau@167 44
benoitrigolleau@132 45 if(!windowInitialized)
benoitrigolleau@132 46 {
benoitrigolleau@132 47 // it's here the link between SDL and QT
ivand_qmul@150 48 char windowid[64];
benoitrigolleau@132 49 #ifdef Q_WS_WIN
ivand_qmul@150 50 sprintf(windowid, "SDL_WINDOWID=0x%lx", reinterpret_cast<qlonglong>(winId()));
ivand_qmul@150 51 #elif defined Q_WS_X11
ivand_qmul@150 52 sprintf(windowid, "SDL_WINDOWID=0x%lx", winId());
ivand_qmul@150 53 #else
ivand_qmul@150 54 qFatal("uncorrect window ID");
benoitrigolleau@132 55 #endif
benoitrigolleau@132 56 SDL_putenv(windowid);
benoitrigolleau@132 57
benoitrigolleau@132 58 //SDL_Init(SDL_INIT_VIDEO);
benoitrigolleau@132 59 //screen = SDL_SetVideoMode(width(), height(), 32, SDL_SWSURFACE);
benoitrigolleau@132 60 windowInitialized = true;
benoitrigolleau@132 61 }
benoitrigolleau@139 62 }
benoitrigolleau@139 63