예제 #1
0
파일: ugView.c 프로젝트: rolk/ug
static void HDFCommand (void)
{
  SFReply reply;
  Point where;
  char prompt[128];
  OSErr error;
  char buffer[80];
  char *s;

  if (globalState!=OPENED) return;

  /* get file name */
  strcpy(buffer,"Save HDF image as:");
  strcpy(prompt,fileName);
  if ((s=strstr(prompt,".meta"))!=NULL)
    *s = '\0';
  strcat(prompt,".hdf");
  where.h = 20; where.v = 40;
  SFPutFile(where,c2pstr(buffer),c2pstr(prompt),NULL,&reply);
  if (!reply.good) return;

  /* set volume */
  error = SetVol(NULL,reply.vRefNum);
  if (((int)error)!=0)
  {
    OneButtonBox("Could not set volume","OK");
    return;
  }
  /* change pascal string to C string */
  p2cstr(reply.fName);

  RefreshCommand();
  SaveToHDF(reply.fName);
  return;
}
예제 #2
0
파일: ugView.c 프로젝트: rolk/ug
static void SaveToPICT (SFReply *reply)
{
  Rect MyPicFrame ;
  CQDProcs MyPicProcs,*SavePtr ;
  OSErr error ;
  long LongZero, LongCount ;
  short Counter ;
  CGrafPtr theCGrafPort;
  WindowPtr theWindow;
  OpenCPicParams myOpenCPicParams;

  /* get my window */
  theWindow = myWindow.theWindow;
  theCGrafPort = (CGrafPtr) theWindow;

  error = FSOpen(reply->fName, reply->vRefNum, &FileSys_RefNR ) ;
  SetStdCProcs ( &MyPicProcs ) ;
  SavePtr = (CQDProcs *) theWindow->grafProcs;
  theWindow->grafProcs   = (QDProcs *) (&MyPicProcs) ;
  MyPicProcs.putPicProc  = NewQDPutPicProc(MyPutPicData) ;

  LongZero   = 0 ;
  LongCount  = 4 ;

  PicCounter = sizeof(Picture) ;
  for (Counter=1 ; Counter <= 128+sizeof(Picture) ; Counter++ )
    error = FSWrite(FileSys_RefNR, &LongCount, &LongZero );
  error = SetFPos(FileSys_RefNR, fsFromStart, 512+sizeof(Picture)) ;

  SetPort((GrafPtr)(theWindow));
  MyPicFrame = ((GrafPtr)(theWindow))->portRect;
  MyPicFrame.right = MyPicFrame.right-16;
  MyPicFrame.bottom = MyPicFrame.bottom-16;
  MyPicHand  = NULL ;
  myOpenCPicParams.srcRect        = MyPicFrame;
  myOpenCPicParams.hRes           = cHRes;
  myOpenCPicParams.vRes           = cVRes;
  myOpenCPicParams.version        = -2;
  myOpenCPicParams.reserved1      = 0;
  myOpenCPicParams.reserved2      = 0;
  MyPicHand  = OpenCPicture ( &myOpenCPicParams );
  ClipRect(&MyPicFrame);

  /* draw picture */
  RefreshCommand();

  ClosePicture() ;

  /* close File */
  error = SetFPos(FileSys_RefNR, fsFromStart, 512) ;
  LongCount = sizeof(Picture) ;
  error = FSWrite(FileSys_RefNR, &LongCount, (void *) (*MyPicHand) );
  error = FSClose(FileSys_RefNR) ;

  KillPicture(MyPicHand);
  theWindow->grafProcs   = (QDProcs *) SavePtr ;

  return;
}
예제 #3
0
BOOL RXGetCommand(char *args) {

    commandLine[commandEnd] = '\0';
    strcpy(RexxReplyString,commandLine);
    InitCommand();		// necessary to clear command line
    ScrCursoff();
    RefreshCommand(1);
    ScrCurson();

    return TRUE;


}
예제 #4
0
파일: ugView.c 프로젝트: rolk/ug
static void OpenCommand (void)
{
  int error;
  FILE *stream;
  SFReply reply;
  Point where;
  char prompt[32];
  SFTypeList typeList;

  if (globalState==OPENED) return;

  /* get file name */
  strcpy(prompt,"choose metafile:");
  where.h = 20; where.v = 40;
  SFGetFile(where,c2pstr(prompt),NULL,-1,typeList,NULL,&reply);
  if (!reply.good)
  {
    return;
  }

  /* save name and path */
  vRefNum = reply.vRefNum;
  strcpy(fileName,p2cstr(reply.fName));

  /* set volume */
  error = SetVol(NULL,vRefNum);
  if (((int)error)!=0)
  {
    OneButtonBox("Could not set volume","OK");
    return;
  }

  stream = fopen(fileName,"rb");
  if (stream==NULL)
  {
    OneButtonBox("Could not open file","OK");
    return;
  }

  GetFileScreen(stream,&fx,&fy);

  /* open a window */
  error = CreateApplicationWindow(&myWindow,fileName,20,40,fx,fy);
  fclose(stream);
  SetState(OPENED);
  RefreshCommand();

  return;
}
예제 #5
0
파일: ugView.c 프로젝트: rolk/ug
static void ScheduleCommand (short theMenu,short theItem)
{
  switch (theMenu)
  {
  case appleID :
    switch (theItem)
    {
    case aboutCommand :              AboutCommand(); break;
    }
    break;

  case fileID :
    switch (theItem)
    {
    case openCommand :               OpenCommand(); break;
    case closeCommand :              CloseCommand(); break;
    case quitCommand :               QuitCommand(); break;
    }
    break;

  case displayID :
    switch (theItem)
    {
    case refreshCommand :     RefreshCommand(); break;
                                #ifndef __MWCW__
    case hdfCommand :         HDFCommand(); break;
                                #endif
    case pictCommand :        PICTCommand(); break;
    }
    break;

  default :
    break;
  }
  return;
}