Пример #1
0
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);
        }
    }
}
Пример #2
0
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;
  }
}