static void DOT_CancelProc(ButtoN b) { DOTStartDataPtr sdata; sdata=(DOTStartDataPtr)GetObjectExtra(ParentWindow(b)); Remove(ParentWindow(b)); Show(sdata->hStart); }
// Delete CEikScrollBar instance and replace it with actual arrow head scroll bar void CEikCbaScrollBarFrame::SwitchToArrowHeadScrollBarL() { delete(iV.iBar); iV.iBar = 0; iV.iExternalScrollBarAttached=EFalse; iV.iBar = new(ELeave) CAknArrowHeadScrollBar(ParentWindow()); iV.iBar->ConstructL(NULL,ParentWindow(),CAknScrollBar::EVertical,KLongEnoughToCauseComponentsToBeCreated,0); }
static void ApplyParams (ButtoN b) { WindoW w; XOSPtr xosp; SeqScrollDataPtr ssdp; w = ParentWindow (b); if ((ssdp = (SeqScrollDataPtr) GetObjectExtra (w)) != NULL) { if ((xosp = (XOSPtr) GetObjectExtra (b)) != NULL) { if (xosp->ddp != NULL) { xosp->ddp->windowsize = (Int4) ssdp->curval; ssdp = ssdp->next; xosp->ddp->percent = (FloatHi) ssdp->curval; xosp->ddp->level = (Int4) ssdp->curval; ssdp = ssdp->next; xosp->ddp->minwin = (Int4) ssdp->curval; ssdp = ssdp->next; xosp->ddp->linker = (Int4) ssdp->curval; } } } return; }
static void DOT_ButtontoNetwork(ButtoN b){ Remove(ParentWindow(b)); /* if (!(igvp=IG_NewMainDataPtr())) */ /* return; */ /* IG_GetFromNetwork(igvp); */ }
static void AcceptParamProc (ButtoN b) { ApplyParams (b); CloseParamWindowProc (ParentWindow (b)); ClearWindowFlag (b); return; }
static void DrawGraph (PaneL p) { XISPtr xisp; WindoW w; RecT r; Int4 len; w = ParentWindow (p); if ((xisp = (XISPtr) GetObjectExtra (w)) == NULL) return; len = xisp->sgp->numval; xisp->Xscale = len / xisp->Xaxislen; if ((len % xisp->Xaxislen) != 0) (xisp->Xscale)++; ObjectRect (p, &r); xisp->dr.left = r.left; xisp->dr.top = r.top; xisp->dr.right = r.right; xisp->dr.bottom = r.bottom - (Int2) (xisp->Ypostlen); DrawGraphToPanel (xisp->sgp, xisp->Xscale, xisp->Yscale, xisp->Yaxislen, &(xisp->dr), 1, xisp->sgp->numval); return; }
static void CloseAboutPanelProc (PaneL p, PoinT pt) { WindoW w; w = ParentWindow (p); Remove (w); }
/******************************************************************************* Function : DDV_InvalRegion() Purpose : invalidate a specific region of DDV panel Note : disp_from,disp_to,disp_row are display coordinates. disp_from,disp_to are zero-based. disp_row is one-based Return value : the sequence *******************************************************************************/ extern void DDV_InvalRegion(PaneL hWndDDV,UnDViewerGraphDataPtr GrData, Int4 disp_from,Int4 disp_to,Int4 disp_row,Boolean IsSelect) { DdvMainPtr dmp; RecT rcP,rc; Int2 from_x,to_x,from_y,to_y; WindoW temport; dmp = (DdvMainPtr) GetObjectExtra(hWndDDV); if (dmp==NULL) return; /*convert disp coord to pixel positions*/ /*left of the first letter in the range*/ from_x=(Int2)((disp_from-GrData->udv_hscrl.ScrollPos)*GrData->udv_font.ColWidth); /*right of the last letter in the range*/ to_x=(Int2)((disp_to-GrData->udv_hscrl.ScrollPos+1)*GrData->udv_font.ColWidth); /*just above the row*/ from_y=(Int2)((disp_row-GrData->udv_vscrl.ScrollPos-1)*GrData->udv_font.LineHeight); /*just below the row*/ to_y=(Int2)(from_y+2*GrData->udv_font.LineHeight); /*adjust the values according to the PaneL RecT position*/ /*panel size*/ temport=SavePort(ParentWindow(hWndDDV)); Select(hWndDDV); ObjectRect(hWndDDV,&rcP); InsetRect(&rcP,4,4); /*drawing region:*/ DDV_AdjustDrawingRect(&rcP,&(GrData->udv_font),dmp); rcP.left+=GrData->udv_panel.cxName+GrData->udv_scale.cxLeftScale; rcP.top+=3*GrData->udv_panel.cyScale/2; from_x+=rcP.left-1; to_x+=rcP.left; from_y+=rcP.top+1; to_y+=rcP.top; rc.left=from_x-2; rc.top=from_y-2; rc.right=to_x+2; rc.bottom=to_y+2; /*InvalRect(&rc);*/ /*DDV_DrawPanelContent_H (hWndDDV,dmp,&rc,IsSelect);*/ if (!IsSelect){ /*printf("invalRect\n");*/ InvalRect(&rc); } else{ DDV_DrawPanelContent_H (hWndDDV,dmp,&rc,IsSelect); } /* Update();*/ RestorePort(temport); }
void CEikCbaScrollBarFrame::ConstructL() { iV.iBar = 0; iV.iExternalScrollBarAttached=EFalse; // We construct CEikScrollBar instance here, because it doesn't create bitmaps -> faster // and save RAM. If CBAs are really needed, then we replace CEikScrollBar with // CAknArrowHeadScrollBar instance at SwitchArrowHeadScrollBarL method. iV.iBar = new(ELeave) CEikScrollBar(); iV.iBar->ConstructL(NULL,ParentWindow(),CAknScrollBar::EVertical,KLongEnoughToCauseComponentsToBeCreated,0); }
static void AsnBinCancelProc (ButtoN b) { WindoW w; VSMReadBinStrPtr vrp; w = ParentWindow(b); vrp = (VSMReadBinStrPtr) GetWindowExtra(w); vrp->do_it = FALSE; Remove(w); vrp->window_done = TRUE; return; }
static void AsnBinAcceptProc (ButtoN b) { WindoW w; VSMReadBinStrPtr vrp; w = ParentWindow(b); vrp = (VSMReadBinStrPtr) GetWindowExtra(w); vrp->do_it = TRUE; vrp->the_type = GetValue(vrp->p); Remove(w); vrp->window_done = TRUE; return; }
/******************************************************************************* Function : DDV_ConfigNetwork() Purpose : call the Entrez Network COnfiguration Dialog Box Return value : none *******************************************************************************/ static void DDV_ConfigNetwork(IteM i) { DdvMainWinPtr dmwp; WindoW hParent; /*get main data block*/ hParent=(WindoW)ParentWindow(i); if (!hParent) return; dmwp=(DdvMainWinPtr)GetObjectExtra(hParent); if (dmwp->UseNetwork) ShowNetConfigForm(NULL, NULL, DDV_ConfigAccepted, DDV_ConfigCancelled, DDV_ConfigTurnedOff, TRUE); else ShowNetConfigForm(NULL, NULL, DDV_ConfigAccepted, DDV_ConfigCancelled, DDV_ConfigTurnedOff, FALSE); }
static void DOT_CheckSA(ButtoN b) { DOTStartDataPtr sdata; sdata=(DOTStartDataPtr)GetObjectExtra(ParentWindow(b)); if (!sdata) return; if(GetStatus(sdata->seqa)){ Disable(sdata->entrez); Enable(sdata->file); SetStatus(sdata->dot, FALSE); SetStatus(sdata->reg_blast, FALSE); SetStatus(sdata->auto_blast, FALSE); } else{ Disable(sdata->file); } }
static void SetGIProc (ButtoN b) { TexT pc; XOSPtr xosp; Char buf[16]; if ((pc = (TexT) GetObjectExtra (b)) != NULL) { if ((xosp = (XOSPtr) GetObjectExtra (pc)) != NULL) { GetTitle (pc, buf, sizeof (buf)); xosp->gi = atol (buf); xosp->filename = (CharPtr) MemFree (xosp->filename); } } CloseGIWindowProc (ParentWindow (b)); return; }
long Document :: Activate(wActivateMsg m) { char buf[500], *cp; if (m.fActive()) { wMdiDesktop * desk = (wMdiDesktop *)ParentWindow(); bString str = desk->GetCaption(); strcpy(buf, str); if ((cp = strchr(buf, '-')) != NULL) *(cp-1) = 0; strcat(buf, " - "); strcat(buf, GetCaption()); desk->SetCaption(buf); } return FALSE; }
static void ApplyParams (ButtoN b) { WindoW w; XOSPtr xosp; SeqScrollDataPtr ssdp; if ((xosp = (XOSPtr) GetObjectExtra (b)) != NULL) { w = ParentWindow (b); if ((ssdp = (SeqScrollDataPtr) GetObjectExtra (w)) != NULL) { xosp->cutoff = (Int4) ssdp->curval; ssdp = ssdp->next; xosp->window = (Int4) ssdp->curval; } } return; }
static void AboutMoreProc (ButtoN b) { DoC d; CharPtr info; WindoW w; Remove (ParentWindow (b)); w = ModalWindow (-50, -33, -1, -1, StdCloseWindowProc); d = DocumentPanel (w, 30 * stdCharWidth, 16 * stdLineHeight); b = PushButton (w, "Done", StdCancelButtonProc); AlignObjects (ALIGN_CENTER, (HANDLE) d, (HANDLE) b, NULL); RealizeWindow (w); info = EntrezDetailedInfo (); if (info == NULL) { info = "No detailed information available\n"; } AppendText (d, info, NULL, NULL, programFont); Show (w); Select (w); }
static void ApplyParams (ButtoN b) { WindoW w; XOSPtr xosp; SeqScrollDataPtr ssdp; if ((xosp = (XOSPtr) GetObjectExtra (b)) != NULL) { w = ParentWindow (b); if ((ssdp = (SeqScrollDataPtr) GetObjectExtra (w)) != NULL) { xosp->xdeltaval = (Int4) ssdp->curval; ssdp = ssdp->next; xosp->ydeltaval = (Int4) ssdp->curval; } xosp->treestyle = (Int4) GetValue (xosp->gstyle); xosp->treestyle -= 1; } return; }
extern void DOT_readExisting(ButtoN b) { WindoW w; GrouP g, g2, c; Char szAppName [10]={"D-Viewer"}; DOTStartDataPtr sdata; sdata=(DOTStartDataPtr)GetObjectExtra(ParentWindow(b)); if (!sdata) return; Hide(sdata->hStart); w = MovableModalWindow (-50, -33, -10, -10, "Local File", NULL); SetObjectExtra(w, (Pointer)sdata, NULL); if (w==NULL) return; g = NormalGroup(w, 1, 3, "File name:", systemFont, NULL); SetGroupMargins(g, 10, 10); SetGroupSpacing(g, 10, 20); g2=HiddenGroup(g, 2, 2, NULL); sdata->id1 = DialogText(g2,"",25, NULL); b = PushButton(g2, " browse...", DOT_OpenBrowse1Proc); SetObjectExtra (b, (Pointer) sdata, NULL); if (!GetStatus(sdata->seqa)){ sdata->id2 = DialogText(g2,"",25, NULL); b = PushButton(g2, " browse...", DOT_OpenBrowse2Proc); SetObjectExtra (b, (Pointer) sdata, NULL); if (GetStatus(sdata->dot)) DOT_SetupDotParameters(g, sdata, TRUE); else if (GetStatus(sdata->auto_blast)) DOT_SetupDotParameters(g, sdata, FALSE); else DOT_SetupBlastParameters(g, sdata); } c = HiddenGroup (g, 4, 0, NULL); DefaultButton(c, "OK", DOT_OpenAcceptProc); PushButton(c, "Cancel", DOT_CancelProc); Select(w); Show(w); }
static void DOT_GetFromNetwork(ButtoN b) { WindoW w; GrouP g, c; Char szAppName [10]={"D-Viewer"}; DOTStartDataPtr sdata; sdata=(DOTStartDataPtr)GetObjectExtra(ParentWindow(b)); if (!sdata) return; Hide(sdata->hStart); w = MovableModalWindow (-50, -33, -10, -10, "Download From NCBI", NULL); SetObjectExtra(w, (Pointer)sdata, NULL); if (w==NULL) return; SetGroupSpacing (w, 10, 10); /*accesion*/ g = NormalGroup (w, 1, 4, "Entrez GI or Accession", systemFont,NULL); sdata->id1=DialogText (g, "", 10, NULL); sdata->id2=DialogText (g, "", 10, NULL); SetObjectExtra(w, (Pointer)sdata, NULL); if (GetStatus(sdata->dot)) DOT_SetupDotParameters(g, sdata, TRUE); else if (GetStatus(sdata->auto_blast)) DOT_SetupDotParameters(g, sdata, FALSE); else if (GetStatus(sdata->reg_blast)) DOT_SetupBlastParameters(g, sdata); c = HiddenGroup (g, 4, 0, NULL); SetGroupMargins(c, 10, 10); SetGroupSpacing (c, 10, 20); DefaultButton (c, "Retrieve", DOT_AcceptNetworkProc); PushButton (c, "Cancel", DOT_CancelProc); AlignObjects (ALIGN_CENTER, (HANDLE) g, (HANDLE) c, NULL); RealizeWindow (w); Show (w); Select (w); Update (); }
static void DOT_AcceptNetworkProc(ButtoN b) { DOTStartDataPtr sdata; WindoW w; Char str1[50]={""}, str2[50]={""}; BioseqPtr qbsp=NULL, sbsp=NULL; SeqEntryPtr qsep, ssep; Uint2 entityID1, entityID2; Int2 rtn=0; DOTMainDataPtr mip; SeqLocPtr slp1=NULL, slp2=NULL; w=ParentWindow(b); Hide(w); sdata=(DOTStartDataPtr)GetObjectExtra(w); GetTitle(sdata->id1, str1, sizeof(str1)); GetTitle(sdata->id2, str2, sizeof(str2)); if (StringHasNoText (str1) || StringHasNoText(str2)) { Message (MSG_ERROR, "enter GI or Accession number"); Show (w); Select (w); Select (sdata->id1); return; } qbsp = DOT_FetchBioseqGivenString(str1, &rtn); sbsp = DOT_FetchBioseqGivenString(str2, &rtn); if (rtn <0 || !qbsp || !sbsp){ DOT_RespondtoFetch(rtn, w, sdata); return; } DOT_RunRequest(w, qbsp, sbsp, sdata); }
EXPORT_C void CEikScrollBarFrame::CreateDoubleSpanScrollBarsL(TBool aWindowOwning, TBool aRemote, TBool aVertical, TBool aHorizontal) { if (!TAknDoubleSpanScrollBarModel::ModelIsSupported()) { return; } // This method should not delete the old scrollbars before it is sure that new // one has been succesfully created. Create a temp variable here. SBarData newVerticalScrollBar; newVerticalScrollBar.iBar = NULL; newVerticalScrollBar.iExternalScrollBarAttached = EFalse; newVerticalScrollBar.iVisibility = iV.iVisibility; SBarData newHorizontalScrollBar; newHorizontalScrollBar.iBar = NULL; newHorizontalScrollBar.iExternalScrollBarAttached = EFalse; if (iExtension) newHorizontalScrollBar.iVisibility = iExtension->iH.iVisibility; if (aRemote && iExtension && iExtension->iParentWindow) { // try getting scrollbarframe from parent using mop supply mechanism CEikScrollBarFrame* sbf = iExtension->iParentWindow->MopGetObject(sbf); if (sbf) { newVerticalScrollBar.iBar = sbf->VerticalScrollBar(); newVerticalScrollBar.iExternalScrollBarAttached = ETrue; newHorizontalScrollBar.iBar = sbf->HorizontalScrollBar(); newHorizontalScrollBar.iExternalScrollBarAttached = ETrue; TInt err1 = KErrNone; TInt err2 = KErrNone; if (newVerticalScrollBar.iBar) { TRAP(err1, newVerticalScrollBar.iBar->AddExternalFrameL(this)); } if (newHorizontalScrollBar.iBar) { TRAP(err2, newHorizontalScrollBar.iBar->AddExternalFrameL(this)); } if (err1 || err2) { newVerticalScrollBar.iExternalScrollBarAttached = EFalse; newVerticalScrollBar.iBar = NULL; newHorizontalScrollBar.iExternalScrollBarAttached = EFalse; newHorizontalScrollBar.iBar = NULL; } User::LeaveIfError(err1); User::LeaveIfError(err2); if (TypeOfVScrollBar() == EDoubleSpan) { if( AknLayoutUtils::PenEnabled() ) { // Correction. Giving null reference as parameter screws up the model values newVerticalScrollBar.iModel = TAknDoubleSpanScrollBarModel(); } else { newVerticalScrollBar.iModel = TAknDoubleSpanScrollBarModel(0); } } if (TypeOfHScrollBar() == EDoubleSpan) { if( AknLayoutUtils::PenEnabled() ) { // Correction. Giving null reference as parameter screws up the model values newHorizontalScrollBar.iModel = TAknDoubleSpanScrollBarModel(); } else { newHorizontalScrollBar.iModel = TAknDoubleSpanScrollBarModel(0); } } } else { User::Leave(KErrNotFound); } } else { // Create new vertical AknDoubleSpanScrollBar newVerticalScrollBar.iBar = 0; newVerticalScrollBar.iExternalScrollBarAttached=EFalse; CAknDoubleSpanScrollBar* verticalScrollBar = NULL; MEikScrollBarObserver* observer = NULL; if(AknLayoutUtils::PenEnabled()) { if(iExtension) { observer = iExtension->iScrollBarObserver; } } TInt scrollBarFlags = ( ( iScrollBarFrameFlags & EEnableNudgeButtons ) ? CEikScrollBar::EEnableNudgeButtons : 0 ) | ( ( iScrollBarFrameFlags & EDisableExpandedTouchArea ) ? CEikScrollBar::EDisableExpandedTouchArea : 0 ); if (aVertical) { verticalScrollBar = new(ELeave) CAknDoubleSpanScrollBar(ParentWindow()); CleanupStack::PushL(verticalScrollBar); verticalScrollBar->ConstructL( aWindowOwning, observer ,ParentWindow(), CAknScrollBar::EVertical, KLongEnoughToCauseComponentsToBeCreated, scrollBarFlags ); CleanupStack::Pop(); // verticalScrollBar } newVerticalScrollBar.iBar = verticalScrollBar; if( AknLayoutUtils::PenEnabled() ) { // Correction. Giving null reference as parameter screws up the model values newVerticalScrollBar.iModel = TAknDoubleSpanScrollBarModel(); } else { newVerticalScrollBar.iModel = TAknDoubleSpanScrollBarModel(0); } // Create new horizontal AknDoubleSpanScrollBar newHorizontalScrollBar.iBar = 0; newHorizontalScrollBar.iExternalScrollBarAttached=EFalse; CAknDoubleSpanScrollBar* horizontalScrollBar = NULL; if (aHorizontal) { horizontalScrollBar = new(ELeave) CAknDoubleSpanScrollBar(ParentWindow()); CleanupStack::PushL(horizontalScrollBar); horizontalScrollBar->ConstructL( aWindowOwning, observer ,ParentWindow(), CAknScrollBar::EHorizontal, KLongEnoughToCauseComponentsToBeCreated, scrollBarFlags ); CleanupStack::Pop(); // horizontalScrollBar } newHorizontalScrollBar.iBar = horizontalScrollBar; if( AknLayoutUtils::PenEnabled() ) { // Correction. Giving null reference as parameter screws up the model values newHorizontalScrollBar.iModel = TAknDoubleSpanScrollBarModel(); } else { newHorizontalScrollBar.iModel = TAknDoubleSpanScrollBarModel(0); } } TBool oldVerticalScrollbarExists = EFalse; TBool oldHorizontalScrollbarExists = EFalse; if (iV.iBar) oldVerticalScrollbarExists = ETrue; if (iExtension && iExtension->iH.iBar) oldHorizontalScrollbarExists = ETrue; if (oldVerticalScrollbarExists || oldHorizontalScrollbarExists) { // Remove old scroll bar DeleteScrollBars(); } iV = newVerticalScrollBar; if (iExtension) iExtension->iH = newHorizontalScrollBar; }
static void CloseGraphWindowButton (ButtoN b) { CloseGraphWindowProc (ParentWindow (b)); return; }
static void CancelParamProc (ButtoN b) { CloseParamWindowProc (ParentWindow (b)); ClearWindowFlag (b); return; }
static void EndProg (ButtoN b) { CloseDustParentProc (ParentWindow (b)); return; }
static void EndProg (ButtoN b) { CloseConsignParentProc (ParentWindow (b)); return; }
static void HideHelpForm (ButtoN b) { Hide (ParentWindow (b)); }
static void CloseGraphPanelProc (PaneL p, PoinT pt) { CloseGraphWindowProc (ParentWindow (p)); return; }
void FormNoteBook :: PageSelected(wNBPageMsg m) { wNoteBookPage *pw; static bool fReSelect = FALSE; static bool fFirstCall = TRUE; if (fFirstCall) { // This event always occurs when the first page is added to // a notebook. Since we want the second page to be at the // top, we'll skip this event and set the top page after all // pages have been constructed. fFirstCall = FALSE; return; } if (fReSelect) { fReSelect = FALSE; return; } pw = m.CurrentTopPage(); wFormWindow *pgWin; // If there is a current top page, dismiss it's form (dialog) // if (pw) { if (pw == m.NewTopPage()) return; if ((pgWin = (wFormWindow *)pw->GetWindow()) != NULL) { if (!pgWin->Exit(AcFormExit, NULL)) { fReSelect = TRUE; // validation error occured GotoPage(pw); // re-select current top page return; } pgWin->Dismiss(); pw->SetWindow(NULL); } } // For a new page, find the form associated with the new page // and create its window. // if ((pw = m.NewTopPage()) != NULL) { if (pw->GetPageHandle() >= IdMajorSections) { // major tab was selected in section with minor tab pages wNoteBookPageList *pl = Pages(); pl->Find(pw); if (pl->Next()) // select the page after the major tab page GotoPage(pl->Current()); return; } wFormWindow **forms = ((AppWindow *)ParentWindow())->GetDataForms(); wFormWindow *fp = forms[pw->GetPageHandle()]; fp->FormUp(this); fp->ChangePosition(wPointl(0, 0)); pw->SetWindow(fp); fp->Show(); (ThisThread->HelpInstance())->SetActiveWindow(fp); } }
static void DOT_OpenAcceptProc(ButtoN b) { DOTStartDataPtr sdata; WindoW w; Char str1[100]={""}, str2[100]={""}; BioseqPtr qbsp=NULL, sbsp=NULL; SeqEntryPtr qsep=NULL, ssep=NULL; Uint2 entityID, entityID1, entityID2; SeqLocPtr slp1=NULL, slp2=NULL; Pointer dataptr=NULL; Uint2 datatype=0; SeqAlignPtr sap=NULL; SeqAnnotPtr sanp=NULL; DOTAlignInfoPtr alp; w=ParentWindow(b); Hide(w); sdata=(DOTStartDataPtr)GetObjectExtra(w); GetTitle(sdata->id1, str1, sizeof(str1)); if (!GetStatus(sdata->seqa)) GetTitle(sdata->id2, str2, sizeof(str2)); if (StringHasNoText (str1)) { if (!GetStatus(sdata->seqa) && StringHasNoText(str2)){ Message (MSG_ERROR, "invalid filename"); Show (w); Select (w); Select (sdata->id1); return; } } else{ qfile = FileOpen(str1, "r"); if (!qfile){ Message (MSG_ERROR, "invalid filename"); Show (w); Select (w); Select (sdata->id1); return; } if (GetStatus(sdata->seqa)){ dataptr = ReadAsnFastaOrFlatFile (qfile, &datatype, &entityID, FALSE, TRUE, TRUE, TRUE); if (!dataptr || datatype != OBJ_SEQANNOT) goto seqa_end; sanp = (SeqAnnotPtr)(dataptr); sap = (SeqAlignPtr)(sanp->data); AlnMgrIndexLite(sap); AssignIDsInEntity(entityID, OBJ_SEQALIGN, (Pointer)sap); fclose(afile); alp=DOT_AlignInfoNew(); alp->sap=sap; if (!DOT_FillAlignInfoPointer(alp)){ goto seqa_end; } DOT_MakeMainViewer(NULL, alp); seqa_end: fclose(qfile); return; } sfile = FileOpen(str2, "r"); if (!sfile){ fclose(qfile); Message (MSG_ERROR, "invalid filename"); Show (w); Select (w); Select (sdata->id1); return; } while ((dataptr = ReadAsnFastaOrFlatFile (qfile, &datatype, &entityID1, FALSE, FALSE, TRUE, FALSE)) != NULL) { qsep= GetTopSeqEntryForEntityID(entityID1); entityID1 = SeqMgrIndexFeatures(0, qsep); qbsp = qsep->data.ptrvalue; } while ((dataptr = ReadAsnFastaOrFlatFile (sfile, &datatype, &entityID2, FALSE, FALSE, TRUE, FALSE)) != NULL) { ssep= GetTopSeqEntryForEntityID(entityID2); entityID2 = SeqMgrIndexFeatures(0, ssep); sbsp = ssep->data.ptrvalue; } if (qbsp== NULL || sbsp== NULL) { Message (MSG_ERROR, "Can't read sequences"); Show (w); Select (w); Select (sdata->id1); goto file_end; } if (qbsp->mol != sbsp->mol) { Message (MSG_ERROR, "Mismatched molecule types"); Show (w); Select (w); Select (sdata->id1); goto file_end; } DOT_RunRequest(w, qbsp, sbsp, sdata); file_end: if (qfile)fclose(qfile); if (sfile)fclose(sfile); return; } }