示例#1
0
// Restore image from off-screen pixmap
long ShutterBug::onCmdSnap(FXObject*,FXSelector,void*){
  FXColor *pixels=NULL;

  // Try grab pixels
  if(snapRectangle(pixels,rectangle)){

    // Construct file dialog
    FXFileDialog savedialog(this,tr("Save Image"));
    savedialog.setSelectMode(SELECTFILE_ANY);
    savedialog.setPatternList(patterns);
    savedialog.setCurrentPattern(fileformat);
    savedialog.setFilename(FXPath::absolute(filename));

    // Run file dialog
    if(savedialog.execute()){
      filename=savedialog.getFilename();
      fileformat=savedialog.getCurrentPattern();
      if(FXStat::exists(filename) && FXMessageBox::question(this,MBOX_YES_NO,tr("Overwrite File"),tr("Overwrite existing image file: %s?"),filename.text())!=MBOX_CLICKED_YES) goto x;
      if(!saveImage(filename,pixels,rectangle.w,rectangle.h)){
        FXMessageBox::error(this,MBOX_OK,tr("Error Saving Image"),tr("Unable to save image to file: %s."),filename.text());
        }
      }

    // Free pixels
x:  freeElms(pixels);
    }
  return 1;
  }
示例#2
0
文件: FileDialog.cpp 项目: tindzk/Xfe
// Save to filename
FXString FileDialog::getSaveFilename(FXWindow* owner,const FXString& caption,const FXString& path,const FXString& patterns,FXint initial)
{
    FileDialog savedialog(owner,caption);
    savedialog.setSelectMode(SELECT_FILE_ANY);
    savedialog.setPatternList(patterns);
    savedialog.setCurrentPattern(initial);
    savedialog.setFilename(path);
    if(savedialog.execute())
        return savedialog.getFilename();
    return FXString::null;
}
示例#3
0
// Start recording a movie
long ShutterBug::onCmdRecordMovie(FXObject*,FXSelector,void*){
  FXFileDialog savedialog(this,tr("Save Image"));
  savedialog.setPatternList(patterns);
  savedialog.setCurrentPattern(fileformat);
  savedialog.setFilename(FXPath::absolute(filenameFromFrame(filename,filecount)));
  if(savedialog.execute()){
    filename=savedialog.getFilename();
    fileformat=savedialog.getCurrentPattern();
    filecount=frameFromFilename(filename);
    FXTRACE((1,"Frame: %s %d\n",filename.text(),filecount));
    hideSnapRectangle();
    hide();
    getApp()->addTimeout(this,ID_RECORD_FRAME,rate);
    }
  return 1;
  }