#include "utils.h"
#include "partial.h"
#include <proto/intuition.h>
#include <proto/exec.h>
void partialClose(idWin * prj) {
  CloseWindow(prj->win) ;
  ReplyMsg(GetMsg(prj->notifyPort)) ;
  Wait(SIGBREAKF_CTRL_C|(1<<(prj->notifyPort->mp_SigBit))) ;
}
void partialOpen(idWin * prj) {
  struct Screen * WBScreen = NULL ;
  WBScreen = LockPubScreen("Workbench") ;
  WaitIO((struct IORequest*)prj->treq) ;
  AbortIO((struct IORequest*)prj->treq) ;
  WaitIO((struct IORequest*)prj->treq) ;
  runtimer(prj) ;
  Wait((1<<(prj->treq->tr_node.io_Message.mn_ReplyPort->mp_SigBit)) | SIGBREAKF_CTRL_C) ;
  if (CheckIO((struct IORequest*)prj->treq)) {
      WaitIO((struct IORequest*)prj->treq) ;
      AbortIO((struct IORequest*)prj->treq) ;
      WaitIO((struct IORequest*)prj->treq) ;
      runtimer(prj) ;
  }  
  prj->win = OpenWindowTags(NULL, WA_Left,	prj->backWin.posX,
     										WA_Top,		prj->backWin.posY,
     										WA_Width,	prj->backWin.width,
     										WA_Height,	prj->backWin.height,
     										WA_IDCMP,	IDCMP_CHANGEWINDOW|IDCMP_REFRESHWINDOW,
     										WA_Flags,	WFLG_BORDERLESS,
     										WA_ScreenTitle, "BackClock", 
     										WA_NewLookMenus, TRUE,
     										WA_PubScreenName, "Workbench", TAG_DONE) ;
  WindowToBack(prj->win) ;   										
  UnlockPubScreen(NULL, WBScreen) ;
  initwin(prj) ;
  ReplyMsg(GetMsg(prj->notifyPort)) ;
}