// Save report of document comparison // -- input is index of documents to compare // -- uses file dialog to locate filename and type of output // -- saves comparison in either .pdf or .xml format void DocumentListCtrl::SaveReportFor (int document1, int document2, bool unique, bool ignore) { wxFileName filename1 (GetPathname (document1)); wxFileName filename2 (GetPathname (document2)); wxString newname = wxString::Format ("%s-%s", filename1.GetName().c_str(), filename2.GetName().c_str()); wxFileDialog dialog (NULL, "Create and save report", wxEmptyString, newname, "pdf|*.pdf|xml|*.xml", wxFD_SAVE | wxFD_OVERWRITE_PROMPT | wxFD_CHANGE_DIR); if (dialog.ShowModal () == wxID_OK) { wxBusyCursor wait; wxBusyInfo info ("Saving comparison report, please wait ...", this); wxFileName path (dialog.GetPath ()); if (dialog.GetFilterIndex () == 0 || (path.GetExt () == "pdf")) { path.SetExt ("pdf"); // force .pdf as extension PdfReport pdfreport (_ferretparent->GetDocumentList (), unique, ignore); pdfreport.WritePdfReport (path.GetFullPath (), document1, document2); } else // if (dialog.GetFilterIndex () == 1 || (path.GetExt () == "xml")) { path.SetExt ("xml"); // force .xml as extension XmlReport xmlreport (_ferretparent->GetDocumentList (), unique, ignore); xmlreport.WriteXmlReport (path.GetFullPath (), document1, document2); } } }
boolean TextFileComp::operator == (OverlayComp& comp) { if (GetClassId() != comp.GetClassId()) return false; return strcmp(GetPathname(), ((TextFileComp&)comp).GetPathname()) && strcmp(GetBegstr(), ((TextFileComp&)comp).GetBegstr()) && strcmp(GetEndstr(), ((TextFileComp&)comp).GetEndstr()) && GetLineWidth() == ((TextFileComp&)comp).GetLineWidth() && OverlayComp::operator==(comp); }
static MRESULT EXPENTRY AreaMsgBaseProc(HWND parent, ULONG message, MPARAM mp1, MPARAM mp2) { extern AREALIST arealiste; extern HWND hwndhelp; static AREADEFLIST *pArea=NULL; char pchTemp[LEN_PATHNAME+1]; SHORT sTemp; switch(message) { case WM_INITDLG: pArea=((AREAPAR *)mp2)->pAreaDef; WinSubclassWindow(WinWindowFromID(parent, IDD_AS_MSGBASE+9), FileEntryProc); WinSendDlgItemMsg(parent, IDD_AS_MSGBASE+9, EM_SETTEXTLIMIT, MPFROMSHORT(LEN_PATHNAME), (MPARAM) NULL); if (pArea) { WinSetDlgItemText(parent, IDD_AS_MSGBASE+9, pArea->areadata.pathfile); switch(pArea->areadata.areaformat) { case AREAFORMAT_FTS: WinCheckButton(parent, IDD_AS_MSGBASE+2, TRUE); break; case AREAFORMAT_SQUISH: WinCheckButton(parent, IDD_AS_MSGBASE+3, TRUE); break; case AREAFORMAT_JAM: WinCheckButton(parent, IDD_AS_MSGBASE+4, TRUE); break; default: WinCheckButton(parent, IDD_AS_MSGBASE+2, TRUE); break; } switch(pArea->areadata.areatype) { case AREATYPE_NET: WinCheckButton(parent, IDD_AS_MSGBASE+6, TRUE); break; case AREATYPE_ECHO: WinCheckButton(parent, IDD_AS_MSGBASE+7, TRUE); break; case AREATYPE_LOCAL: WinCheckButton(parent, IDD_AS_MSGBASE+12, TRUE); break; } if (pArea->areadata.ulAreaOpt & AREAOPT_FROMCFG) { WinEnableControl(parent, IDD_AS_MSGBASE+2, FALSE); WinEnableControl(parent, IDD_AS_MSGBASE+3, FALSE); WinEnableControl(parent, IDD_AS_MSGBASE+4, FALSE); WinEnableControl(parent, IDD_AS_MSGBASE+6, FALSE); WinEnableControl(parent, IDD_AS_MSGBASE+7, FALSE); WinEnableControl(parent, IDD_AS_MSGBASE+12, FALSE); WinSendDlgItemMsg(parent, IDD_AS_MSGBASE+9, EM_SETREADONLY, (MPARAM)TRUE, (MPARAM) NULL); WinEnableControl(parent, IDD_AS_MSGBASE+10, FALSE); } } WinDefDlgProc(parent, message, mp1, mp2); SetFocusControl(parent, IDD_AS_MSGBASE+9); return (MRESULT) TRUE; case WM_CLOSE: case WM_DESTROY: if (!WinQueryWindowULong(parent, QWL_USER)) { WinQueryDlgItemText(parent, IDD_AS_MSGBASE+9, LEN_PATHNAME+1, pchTemp); if (strcmp(pArea->areadata.pathfile, pchTemp)) { strcpy(pArea->areadata.pathfile, pchTemp); arealiste.bDirty = TRUE; pArea->dirty=TRUE; } if (WinQueryButtonCheckstate(parent, IDD_AS_MSGBASE+2)) sTemp=AREAFORMAT_FTS; else if (WinQueryButtonCheckstate(parent, IDD_AS_MSGBASE+3)) sTemp=AREAFORMAT_SQUISH; else if (WinQueryButtonCheckstate(parent, IDD_AS_MSGBASE+4)) sTemp=AREAFORMAT_JAM; else sTemp=AREAFORMAT_FTS; if (sTemp!=pArea->areadata.areaformat) { pArea->areadata.areaformat=sTemp; arealiste.bDirty = TRUE; pArea->dirty=TRUE; } if (WinQueryButtonCheckstate(parent, IDD_AS_MSGBASE+6)) sTemp=AREATYPE_NET; else if (WinQueryButtonCheckstate(parent, IDD_AS_MSGBASE+7)) sTemp=AREATYPE_ECHO; else if (WinQueryButtonCheckstate(parent, IDD_AS_MSGBASE+12)) sTemp=AREATYPE_LOCAL; else sTemp=AREATYPE_NET; if (sTemp != pArea->areadata.areatype) { pArea->areadata.areatype=sTemp; arealiste.bDirty = TRUE; pArea->dirty=TRUE; } } break; case WM_COMMAND: if (SHORT1FROMMP(mp2)==CMDSRC_PUSHBUTTON) { if(SHORT1FROMMP(mp1)==IDD_AS_MSGBASE+10) { WinQueryDlgItemText(parent, IDD_AS_MSGBASE+9, LEN_PATHNAME+1, pchTemp); if (GetPathname(parent, pchTemp)==DID_OK) { char drive[_MAX_DRIVE]; char path[_MAX_DIR]; char name[_MAX_FNAME]; char ext[_MAX_EXT]; _splitpath(pchTemp, drive, path, name, ext); if (WinQueryButtonCheckstate(parent, IDD_AS_MSGBASE+3)) _makepath(pchTemp, drive, path, name, ""); else { _makepath(pchTemp, drive, path, "", ""); pchTemp[strlen(pchTemp)-1]='\0'; } WinSetDlgItemText(parent, IDD_AS_MSGBASE+9, pchTemp); arealiste.bDirty = TRUE; } } } return (MRESULT) FALSE; case APM_REQCLOSE: if (WinQueryDlgItemTextLength(parent, IDD_AS_MSGBASE+9)==0) { /* Fehler, kein Pfadname */ if (MessageBox(parent, IDST_MSG_NOPATHFILE, 0, IDD_NOPATHFILE, MB_RETRYCANCEL | MB_ERROR) == MBID_CANCEL) return (MRESULT) 2; else return (MRESULT) 1; } return (MRESULT) 0; case APM_CANCEL: WinSetWindowULong(parent, QWL_USER, 1); break; default: break; } return WinDefDlgProc(parent,message,mp1,mp2); }