void remAlunoDaFila(int quantTio){ int cont; int tempoEntrada; for(cont=0;cont<quantTio;cont++){ if(!isEmpty(hotcat)){ tempoEntrada = remQueue(hotcat); somaTempoEspera += clock - tempoEntrada; alunosFila--; printf("\n saiu... %d segundos, alunos na fila: %d", clock, alunosFila); } } }
void updateitem(msgpass * msg) { int code = msg->code; int getnum = msg->getnum; void * mainwin = msg->mainwin; item * curitem = itemhead; void * clickbmpclass; int region; RegInfo props; int size,position; switch(code) { case TSKM_KILLED: if(!curitem) break; while(curitem->mainwin != mainwin) { curitem = curitem->next; //printf("looking for item to kill\n"); } JCntRemove(taskbar,curitem->icon); JWKill(curitem->icon); itemhead = remQueue(itemhead,curitem); sendChan(appchannel,REFRESH); resizebar(-1); break; case TSKM_NEWITEM: curitem = malloc(sizeof(item)); region = ((JMan *)mainwin)->Region; JRegInfo(region,&props); if(props.metadata) { curitem->title = props.metadata->title; curitem->launchstr = props.metadata->launchpath; if(props.metadata->icon) { curitem->iconbmp = props.metadata->icon; } else { curitem->iconbmp = malloc(36); memcpy(curitem->iconbmp,ICO_APP_DFL,36); } } else { curitem->title = strdup("Application"); curitem->launchstr = strdup(""); //something that can be free()'d curitem->iconbmp = malloc(36); memcpy(curitem->iconbmp,ICO_APP_DFL,36); } clickbmpclass = JSubclass(&JBmpClass,-1, METHOD(MJW, Button), changefocus, -1); curitem->icon = JNew(clickbmpclass); JBmpInit(curitem->icon,16,16,curitem->iconbmp); ((JW*)curitem->icon)->Sense |= WEV_Button; JWSetData(curitem->icon,curitem); curitem->status = getnum; curitem->mainwin = mainwin; itemhead = addQueueB(itemhead,itemhead,curitem); resizebar(1); JCntAdd(taskbar,curitem->icon); JWinShow(curitem->icon); sendChan(appchannel,REFRESH); //printf("taskbar: new item, %d\n",getnum); if(getnum == TSKM_INFOCUS) sendChan(appchannel,SETCOL,curitem->icon,COL_FOC); else if(getnum == TSKM_INBLUR) sendChan(appchannel,SETCOL,curitem->icon,COL_NFOC); else sendChan(appchannel,SETCOL,curitem->icon,COL_MIN); break; case TSKM_INFOCUS: if(!curitem) break; while(curitem->mainwin != mainwin) { curitem = curitem->next; //printf("finding first item (infocus)\n"); } while(curitem->next->mainwin != mainwin) { //printf("I think this is the bad loop.\n"); curitem = curitem->next; if(curitem->status == TSKM_INFOCUS) { sendChan(appchannel,SETCOL,curitem->icon,COL_NFOC); curitem->status = TSKM_INBLUR; } } curitem = curitem->next; sendChan(appchannel,SETCOL,curitem->icon,COL_FOC); curitem->status = TSKM_INFOCUS; break; case TSKM_MINIMIZED: if(!curitem) break; while(curitem->mainwin != mainwin) { curitem = curitem->next; //printf("finding first item (minimized)\n"); } sendChan(appchannel,SETCOL,curitem->icon,COL_MIN); curitem->status = TSKM_MINIMIZED; break; } }