// this is an eventfilter for the KTabListBoxTable which holds all // of the todo items. bool TodoView::eventFilter(QObject *, QEvent *event) { if (event->type() == Event_MouseButtonPress) { QMouseEvent *e = (QMouseEvent *) event; setUpdatesEnabled(FALSE); doMouseEvent(e); setUpdatesEnabled(TRUE); return TRUE; } if (event->type() == Event_Resize) { adjustColumns(); } return FALSE; }
int main(int argc, char *argv[]){ int i; struct timerparams tparams; SDL_Event e; sim_Sim *mysim; SDL_Renderer *ren; int temp; SDL_Surface *iconSurf, *isoSurf; SDL_TimerID timerid; Uint32 updatetime; int tickspersecond; int droppedframes; gridviewport.x = 0; gridviewport.y = 0; gridviewport.w = WIDTH * CELLSIZE; gridviewport.h = HEIGHT * CELLSIZE; isoviewport.x = 500; isoviewport.y = 700; toolbox.x = 0; toolbox.y = 400; toolbox.w = 400; toolbox.h = 400; uistate.toolselected = TOOL_ADD; uistate.demoselected = MODE_NONE; uistate.paused = 0; uistate.mouseinwindow = 1; ren = setupWindow(); SDL_SetRenderDrawBlendMode(ren, SDL_BLENDMODE_BLEND); if((iconSurf = SDL_LoadBMP("icons.bmp")) == NULL) { printf("Failed to load icons.bmp"); exit(-1); } iconText = SDL_CreateTextureFromSurface(ren, iconSurf); isoSurf = SDL_LoadBMP("tile.bmp"); isoText = SDL_CreateTextureFromSurface(ren, isoSurf); if((tparams.CustomTimerEvent = SDL_RegisterEvents(1)) == -1){ printf("Failed to register customevent\n"); exit(-1); } tparams.timerlock = 0; if((timerid = SDL_AddTimer(TIMERINTERVAL, timercallback, (void *) &tparams))) ; else fprintf(stderr,"Timer failed to start\n"); mysim = sim_CreateSimulation(WIDTH, HEIGHT, 50.5); int quit = 0; updatetime = SDL_GetTicks(); tickspersecond = 0; while (!quit) { droppedframes = MAXDROPPEDFRAMES; doMouseEvent(&uistate, mysim); drawGrid(ren, mysim, &gridviewport); drawIso(ren, mysim, &isoviewport); drawTools(ren, &uistate, &toolbox); SDL_RenderPresent(ren); //fprintf(stderr, "b"); if(SDL_GetTicks() - updatetime > 1000) { updatetime = SDL_GetTicks(); if(DEBUGPRINT) fprintf(stderr, "%d\n", tickspersecond); tickspersecond = 0; } while ((temp = SDL_PollEvent(&e)) != 0 && !quit) { switch (e.type) { case SDL_QUIT: quit = 1; break; case SDL_USEREVENT: if(!droppedframes || uistate.paused) break; //If it drops too many frames, clear the event queue droppedframes--; //fprintf(stderr, "c"); tickspersecond++; for(i = 0; i < STEPSPERTICK; i++) { doDemos(uistate.demoselected, mysim); sim_step(mysim, TICKTIME); } //printGrid(mysim); tparams.timerlock = 0; break; case SDL_MOUSEMOTION: case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONUP: //doMouseEvent(&e, &selected, &hovered, mysim); break; case SDL_WINDOWEVENT: switch (e.window.event) { case SDL_WINDOWEVENT_ENTER: uistate.mouseinwindow = 1; case SDL_WINDOWEVENT_LEAVE: uistate.mouseinwindow = 0; break; } break; default: if(DEBUGPRINT) fprintf(stderr, "UNKNOWN EVENT TYPE\n"); break; } } } cleanup(); return 0; }