static void Cn3D_ExportPDB(IteM i) { PDNMS pdnmsThis = NULL; PMSD pmsdThis = NULL; Char pcSavestr[60]; Char pcSavename[32]; CharPtr Cn3D_pcPDBName; GrouP g, g2, g3, g4; GrouP gMS; ButtoN b; if (Cn3D_Export_InUse) return; else Cn3D_Export_InUse = TRUE; pdnmsThis = GetSelectedModelstruc(); if (!pdnmsThis) { Cn3D_Export_InUse = FALSE; return; } pmsdThis = (PMSD) pdnmsThis->data.ptrvalue; Cn3D_wPDBSave = ModalWindow(-20, -13, -10, -10, NULL); /* set up a group encolosing structures - models selection lists and - "info strings" */ Cn3D_pcPDBName = StringSave(GetStrucStrings(pdnmsThis, PDB_ACC)); sprintf(pcSavestr, "Save %s As a PDB Formatted File ...", Cn3D_pcPDBName); g = HiddenGroup(Cn3D_wPDBSave, 0, 3, NULL); SetGroupMargins(g, 10, 10); SetGroupSpacing(g, 10, 5); StaticPrompt(g, pcSavestr, 0, 0, systemFont, 'l'); g2 = HiddenGroup(g, 2, 0, NULL); SetGroupMargins(g2, 10, 10); SetGroupSpacing(g2, 10, 5); StringNCpy(pcSavename, Cn3D_pcPDBName, 8); StringCat(pcSavename, ".pdb"); Cn3D_tPDBSave = DialogText(g2, pcSavename, 18, (TxtActnProc) Cn3D_PDBEnableProc); MemFree(Cn3D_pcPDBName); Cn3D_bPDBBrowse = PushButton(g2, " browse...", (BtnActnProc) Cn3D_PDBBrowseProc); g3 = HiddenGroup(g, 2, 0, NULL); gMS = Cn3D_ModelSelect(g3, FALSE); /* no vector models for PDB files saves */ g4 = HiddenGroup(g3, 0, 2, NULL); SetGroupMargins(g4, 10, 10); SetGroupSpacing(g4, 10, 5); Cn3D_bPDBOk = PushButton(g4, "OK", Cn3D_ExportPDBNow); b = PushButton(g4, "Cancel", Cn3D_CancelPDB); Cn3D_PDBEnableProc(NULL); Select(Cn3D_bPDBOk); /* disable appropriate stuff here */ Cn3D_DisableFileOps(); Show(Cn3D_wPDBSave); return; }
static void DOT_StartupWindow(void) { WindoW w; GrouP c, cg; DOTStartDataPtr sdata; PaneL p; w = FixedWindow (-50, -33, -10, -10, "Welcome to D-Viewer", StdCloseWindowProc); p = SimplePanel (w, 28 * stdCharWidth, 4 * stdLineHeight, DOT_DrawAbout); sdata=(DOTStartDataPtr)MemNew(sizeof(DOTStartData)); sdata->hStart=w; cg=HiddenGroup(w, 4, 0, NULL); sdata->dot=CheckBox(cg, "Dot plot", DOT_CheckDot); SetStatus(sdata->dot, TRUE); sdata->reg_blast=CheckBox(cg, "Bl2Seqs", DOT_CheckRegBlast); SetStatus(sdata->reg_blast, FALSE); sdata->auto_blast = CheckBox(cg, "Scoop", DOT_CheckAutoBlast); SetStatus(sdata->auto_blast, FALSE); sdata->seqa=CheckBox(cg, "SeqAnnote File", DOT_CheckSA); SetStatus(sdata->seqa, FALSE); c = HiddenGroup (w, 1, 3, NULL); SetGroupMargins(c, 10, 10); SetGroupSpacing (c, 10, 10); sdata->entrez=PushButton (c, "Fetch from Entrez", DOT_GetFromNetwork); Enable(sdata->entrez); sdata->file=PushButton (c, "Open Local Files", DOT_readExisting); Enable(sdata->file); PushButton (c, "Quit Program", DOT_quitProgram); SetObjectExtra(w, (Pointer)sdata, StdCleanupExtraProc); AlignObjects (ALIGN_CENTER, (HANDLE) p, (HANDLE) c, NULL, NULL); Select(w); Show(w); ProcessEvents(); }
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 AboutProc (IteM i) { GrouP c; CharPtr info; PaneL p; WindoW w; w = ModalWindow (-50, -33, -1, -1, StdCloseWindowProc); p = SimplePanel (w, AboutBoxWidth (), 14 * stdLineHeight, DrawAbout); SetPanelClick (p, NULL, NULL, NULL, CloseAboutPanelProc); c = HiddenGroup (w, 2, 0, NULL); SetGroupSpacing (c, 20, 2); SetGroupMargins (c, 5, 5); PushButton (c, "Done", StdCancelButtonProc); info = EntrezDetailedInfo (); if (info != NULL) { PushButton (c, "More", AboutMoreProc); } AlignObjects (ALIGN_CENTER, (HANDLE) p, (HANDLE) c, NULL); RealizeWindow (w); Show (w); Select (w); }
/************************************************************************** * NewStyleDialog() **************************************************************************/ static Boolean /*FCN*/NewStyleDialog ( Int2 srcStyle ){ GrouP g, tg; TexT nsdDialogText; Char newName[64]; if ( nsdStatus & SM_DLG_UP ) return FALSE; nsdStatus = SM_DLG_UP; nsdWindow = FixedWindow (-50, -33, -10, -10, "Copy Style", NULL ); g = HiddenGroup ( nsdWindow, 1, 2, NULL); tg = HiddenGroup ( g, 2, 1, NULL); StaticPrompt ( tg, "To:", 0, 0, systemFont, 'l'); nsdDialogText = DialogText ( tg, "", 20, NULL ); tg = HiddenGroup ( g, 2, 1, NULL); SetGroupMargins ( tg, 7*Nlm_stdCharWidth, 5 ); PushButton ( tg, "OK", OnOKButton ), PushButton ( tg, "Cancel", OnCancelButton ); RealizeWindow ( nsdWindow ); Show ( nsdWindow ); Select ( nsdWindow ); Nlm_WaitForCondition ( nsdStatus & SM_DLG_UP); GetTitle ( nsdDialogText, newName, 64 ); newName[63] = 0; Nlm_ProcessAnEvent (); Hide ( nsdWindow ); Remove ( nsdWindow ); Select ( window ); if ( nsdStatus & SM_DLG_OK ){ if ( Nlm_CopyMuskStyle ( newName, srcStyle ) != -1 ) return TRUE; else Message ( MSG_ERROR, "Can not create style %s", newName ); } return FALSE; } /*End of NewStyleDialog() */
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 (); }
/*---------------------------------------------------------*/ GrouP LIBCALL DisplayControls(Nlm_GrouP prnt) { GrouP g, h; PrompT ppt1, /*ppt2,*/ ppt3, ppt4; g = HiddenGroup(prnt, -1, 0, NULL); if (!g) return NULL; SetGroupSpacing(g, 3, 9); #ifdef WIN_MOTIF SetGroupMargins(g, 4, 1); SetGroupSpacing(g, 2, 1); #else SetGroupMargins(g, 1, 1); SetGroupSpacing(g, 0, 0); #endif StaticPrompt(g, "", 0, stdLineHeight, systemFont, 'l'); StaticPrompt(g, "", 0, stdLineHeight, systemFont, 'l'); h = HiddenGroup(g, 0, -4, NULL); SetGroupSpacing(h, 30, 10); ppt1 = StaticPrompt(h, "Molecule", 0, stdLineHeight + 5, systemFont, 'c'); Cn3D_lStruc = MultiList(h, 6, 10, FillFeatureListProc); StaticPrompt(h, "", 0, stdLineHeight, systemFont, 'l'); StaticPrompt(h, "", 0, stdLineHeight, systemFont, 'l'); AlignObjects(ALIGN_LEFT, (HANDLE) ppt1, (HANDLE) Cn3D_lStruc, NULL); ppt3 = StaticPrompt(h, "Domain", 0, stdLineHeight + 5, systemFont, 'c'); Cn3D_bDisplayAlignedDomain = CheckBox(h, "Aligned Domain Only", Cn3D_ListAlignedDomainProc); Cn3D_lFeature = MultiList(h, 6, 8, Cn3D_SelectDomainProc); StaticPrompt(h, "", 0, stdLineHeight, systemFont, 'l'); AlignObjects(ALIGN_LEFT, (HANDLE) ppt3, (HANDLE) Cn3D_lFeature, NULL); ppt4 = StaticPrompt(h, "Residue", 0, stdLineHeight + 5, systemFont, 'c'); Cn3D_bAlignOn = CheckBox(h, "Aligned", NULL); Cn3D_bUnalignOn = CheckBox(h, "Unaligned", NULL); Cn3D_bDisplayHighlight = CheckBox(h, "Show Selected Only", NULL); AlignObjects(ALIGN_LEFT, (HANDLE) ppt4, (HANDLE) Cn3D_bDisplayHighlight, NULL); SetStatus(Cn3D_bDisplayHighlight, FALSE); SetStatus(Cn3D_bAlignOn, Cn3D_fAlignOn); SetStatus(Cn3D_bUnalignOn, Cn3D_fUnalignOn); Cn3D_altConfIdOverlay = CheckBox(g, "Overlay uncorrelated conformer ensembles", NULL); AlignObjects(ALIGN_CENTER, (HANDLE) Cn3D_altConfIdOverlay, (HANDLE) g, NULL); SetStatus(Cn3D_altConfIdOverlay, TRUE); StaticPrompt(g, "", 0, stdLineHeight + 5, systemFont, 'c'); Cn3D_bDisplayApply = PushButton(g, "Apply!", Cn3D_DisplayProc); AlignObjects(ALIGN_CENTER, (HANDLE) Cn3D_bDisplayApply, (HANDLE) h, NULL); ResetDisplayCtrls(); return g; }
extern void CreateAddSpecialDialog ( GrouP prnt, SscTablesPtr stp ) { Char buf [64]; GrouP g, h, m, p; MiscRatePtr mrp; SscSpecPtr ssp; Char str [16]; if (stp == NULL) return; mrp = stp->miscrate_table; if (mrp == NULL) return; ssp = (SscSpecPtr) MemNew (sizeof (SscSpec)); if (ssp == NULL) return; p = HiddenGroup (prnt, -1, 0, NULL); SetGroupSpacing (p, 10, 10); SetObjectExtra (p, ssp, StdCleanupExtraProc); ssp->dialog = (DialoG) p; ssp->tables = stp; ssp->whichspec = HiddenGroup (p, 5, 0, ChangeSpecType); SetObjectExtra (ssp->whichspec, ssp, NULL); RadioButton (ssp->whichspec, "Visiting"); RadioButton (ssp->whichspec, "Affiliated"); RadioButton (ssp->whichspec, "Transient"); ssp->namegroup = HiddenGroup (p, 15, 0, NULL); SetGroupSpacing (ssp->namegroup, 5, 3); StaticPrompt (ssp->namegroup, "Name", 0, dialogTextHeight, programFont, 'l'); ssp->name = DialogText (ssp->namegroup, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 0, ChangeSpecName); SetObjectExtra (ssp->name, (Pointer) ssp, NULL); SetTitle (ssp->name, ""); Hide (ssp->namegroup); h = HiddenGroup (p, 0, 0, NULL); SetGroupMargins (h, 10, 10); g = HiddenGroup (h, -1, 0, NULL); Hide (g); ssp->controls [EMPTY_PAGE] = g; g = HiddenGroup (h, -1, 0, NULL); if (PrintWholeDollar (mrp->visiting_fee, str)) { sprintf (buf, "Charge $%s Visiting Fee", str); } else { sprintf (buf, "Charge Visiting Fee"); } ssp->visitfee = CheckBox (g, buf, NULL); SetStatus (ssp->visitfee, TRUE); Hide (g); ssp->controls [ADD_VISIT_PAGE] = g; g = HiddenGroup (h, -1, 0, NULL); if (PrintWholeDollar (mrp->affiliated_fee, str)) { sprintf (buf, "Charge $%s Affiliated Fee", str); } else { sprintf (buf, "Charge Affiliated Fee"); } ssp->affilfee = CheckBox (g, buf, NULL); SetStatus (ssp->visitfee, TRUE); Hide (g); ssp->controls [ADD_AFFIL_PAGE] = g; g = HiddenGroup (h, -1, 0, NULL); SetGroupSpacing (g, 10, 10); m = HiddenGroup (g, 1, 0, NULL); SetGroupSpacing (m, 5, 3); ProrateDollarAmount (mrp->transient_fee, 1, FALSE, stp, &(ssp->proratedtrans)); if (PrintWholeDollar (&(ssp->proratedtrans), str)) { sprintf (buf, "Charge $%s Transient Dues", str); } else { sprintf (buf, "Charge Transient Dues"); } ssp->transfee = CheckBox (m, buf, NULL); SetStatus (ssp->transfee, TRUE); ProrateDollarAmount (mrp->ssa_regular, 5, TRUE, stp, &(ssp->proratedssa)); if (PrintWholeDollar (&(ssp->proratedssa), str)) { sprintf (buf, "Charge $%s SSA Dues (Prorated May-Apr)", str); } else { sprintf (buf, "Charge SSA Dues"); } ssp->transssa = CheckBox (m, buf, NULL); SetStatus (ssp->transssa, TRUE); ssp->jobs = CreateClubJobsDialog (g); AlignObjects (ALIGN_CENTER, (HANDLE) m, (HANDLE) ssp->jobs, NULL); Hide (g); ssp->controls [ADD_TRANS_FEE] = g; ssp->addspec = PushButton (p, "Add Special Member", AddSpecMember); SetObjectExtra (ssp->addspec, (Pointer) ssp, NULL); Disable (ssp->addspec); ssp->currPage = 0; AlignObjects (ALIGN_CENTER, (HANDLE) ssp->whichspec, (HANDLE) ssp->namegroup, (HANDLE) ssp->controls [EMPTY_PAGE], (HANDLE) ssp->controls [ADD_VISIT_PAGE], (HANDLE) ssp->controls [ADD_AFFIL_PAGE], (HANDLE) ssp->controls [ADD_TRANS_FEE], (HANDLE) ssp->addspec, NULL); }
static void Cn3D_ExportKin(IteM i) { PDNMS pdnmsThis = NULL; PMSD pmsdThis = NULL; Char pcSavestr[60]; Char pcSavename[32]; CharPtr Cn3D_pcKinName; GrouP g, g2, g3, g4; GrouP gMS; ButtoN b; Int2 iCount; if (Cn3D_Export_InUse) return; else Cn3D_Export_InUse = TRUE; pdnmsThis = GetSelectedModelstruc(); if (!pdnmsThis) { Cn3D_Export_InUse = FALSE; return; } pmsdThis = (PMSD) pdnmsThis->data.ptrvalue; Cn3D_wKinSave = ModalWindow(-20, -13, -10, -10, NULL); /* set up a group encolosing structures - models selection lists and - "info strings" */ Cn3D_pcKinName = StringSave(GetStrucStrings(pdnmsThis, PDB_ACC)); sprintf(pcSavestr, "Save %s As a Kinemage Rendered File ...", Cn3D_pcKinName); g = HiddenGroup(Cn3D_wKinSave, 0, 5, NULL); SetGroupMargins(g, 10, 10); SetGroupSpacing(g, 10, 5); StaticPrompt(g, pcSavestr, 0, 0, systemFont, 'l'); g2 = HiddenGroup(g, 2, 0, NULL); SetGroupMargins(g2, 10, 10); SetGroupSpacing(g2, 10, 5); StringNCpy(pcSavename, Cn3D_pcKinName, 8); StringCat(pcSavename, ".kin"); Cn3D_tKinSave = DialogText(g2, pcSavename, 18, (TxtActnProc) Cn3D_KinEnableProc); MemFree(Cn3D_pcKinName); Cn3D_bKinBrowse = PushButton(g2, " browse...", (BtnActnProc) Cn3D_KinBrowseProc); g3 = HiddenGroup(g, 2, 0, NULL); gMS = Cn3D_ModelSelect(g3, FALSE); /* no vector models for Kin files saves */ g4 = HiddenGroup(g3, 0, 2, NULL); SetGroupMargins(g4, 10, 10); SetGroupSpacing(g4, 10, 5); Cn3D_bKinOk = PushButton(g4, "OK", Cn3D_ExportKinNow); b = PushButton(g4, "Cancel", Cn3D_CancelKin); Cn3D_gColorAtoms = NormalGroup(g, 2, 2, " color by...", systemFont, NULL); SetGroupMargins(Cn3D_gColorAtoms, 10, 10); SetGroupSpacing(Cn3D_gColorAtoms, 10, 5); RadioButton(Cn3D_gColorAtoms, "Molecule number"); RadioButton(Cn3D_gColorAtoms, "Secondary Structure & Residue Type"); RadioButton(Cn3D_gColorAtoms, "Thermal Factors"); RadioButton(Cn3D_gColorAtoms, "Element"); SetValue(Cn3D_gColorAtoms, 1); Cn3D_gRenderOpts = NormalGroup(g, 2, 3, " viewable subsets...", systemFont, NULL); Cn3D_bRender[0] = CheckBox(Cn3D_gRenderOpts, "Virtual Backbone", NULL); Cn3D_bRender[1] = CheckBox(Cn3D_gRenderOpts, "Real Backbone", NULL); Cn3D_bRender[2] = CheckBox(Cn3D_gRenderOpts, "Residues", NULL); Cn3D_bRender[3] = CheckBox(Cn3D_gRenderOpts, "Heterogens", NULL); Cn3D_bRender[4] = CheckBox(Cn3D_gRenderOpts, "Alternate Conformations", NULL); Cn3D_bRender[5] = CheckBox(Cn3D_gRenderOpts, "NMR Animations", NULL); for (iCount = 0; iCount < 6; iCount++) SetStatus(Cn3D_bRender[iCount], TRUE); Cn3D_KinEnableProc(NULL); Select(Cn3D_bKinOk); /* disable appropriate stuff here */ Cn3D_DisableFileOps(); Show(Cn3D_wKinSave); return; }
extern DialoG CreateBadgesDialog ( GrouP prnt, SscTablesPtr stp ) { GrouP cts, tbl, g0, g1, g2, p; FonT fnt; Int2 i, hgt, max, wid; SscBadgPtr sbp; sbp = (SscBadgPtr) MemNew (sizeof (SscBadg)); if (sbp == NULL) return NULL; p = HiddenGroup (prnt, -1, 0, NULL); SetGroupSpacing (p, 10, 10); SetObjectExtra (p, sbp, StdCleanupExtraProc); sbp->dialog = (DialoG) p; sbp->todialog = AwardDataPtrToAdjPage; sbp->fromdialog = AdjPageToAwardDataPtr; sbp->tables = stp; SelectFont (systemFont); hgt = LineHeight (); badgColFmt [0].pixWidth = 25 * StringWidth ("X") + 5; max = StringWidth ("Diamond Distance "); badgColFmt [1].pixWidth = max + 5; SelectFont (systemFont); wid = 0; for (i = 0; i < 2; i++) { wid += badgColFmt [i].pixWidth; } tbl = HiddenGroup (p, -1, 0, NULL); SetGroupSpacing (tbl, 10, 5); SetGroupMargins (tbl, 5, 5); g0 = HiddenGroup (tbl, 15, 0, NULL); SetGroupSpacing (g0, 0, 3); #ifdef WIN_MSWIN fnt = systemFont; #else fnt = programFont; #endif StaticPrompt (g0, "Name", badgColFmt [0].pixWidth, 0, fnt, 'c'); StaticPrompt (g0, "Award", badgColFmt [1].pixWidth, 0, fnt, 'c'); sbp->badglog = DocumentPanel (tbl, wid + 2, NUM_BADGE_LINES * hgt + 2); SetObjectExtra (sbp->badglog, sbp, NULL); SetDocCache (sbp->badglog, NULL, NULL, NULL); SetDocNotify (sbp->badglog, ChangeBadgTableSelect); sbp->numBadgs = 0; for (i = 0; i < NUM_BADGE_LINES; i++) { AppendItem (sbp->badglog, PrintBadgTable, sbp, FALSE, 1, &badgParFmt, badgColFmt, systemFont); } cts = HiddenGroup (p, -1, 0, NULL); SetGroupSpacing (cts, 10, 10); SetGroupMargins (cts, 5, 5); g1 = HiddenGroup (cts, -10, 0, NULL); SetGroupSpacing (g1, 10, 5); StaticPrompt (g1, "Name", 0, popupMenuHeight, programFont, 'l'); sbp->name = CreateEnumPopupDialog (g1, TRUE, ChangeName, stp->payers.alist, (UIEnum) 0, sbp); StaticPrompt (g1, "Award", 0, popupMenuHeight, programFont, 'l'); sbp->reason = CreateEnumPopupDialog (g1, TRUE, ChangeReason, reason_alist, (UIEnum) 0, sbp); SetObjectExtra (sbp->reason, sbp, NULL); g2 = HiddenGroup (cts, -10, 0, NULL); SetGroupSpacing (g2, 10, 5); StaticPrompt (g2, "Comment", 0, dialogTextHeight, programFont, 'l'); sbp->comment = DialogText (g2, "", 20, ChangeComment); SetObjectExtra (sbp->comment, sbp, NULL); AlignObjects (ALIGN_CENTER, (HANDLE) tbl, (HANDLE) cts, NULL); sbp->numBadgs = 0; sbp->currItem = 1; return (DialoG) p; }
GrouP /*FCN*/Nlm_CreateDlgGroup ( GrouP gTop ){ GrouP g, glr, g1, g2; Handle toAlign[3]; g = HiddenGroup ( gTop, 2, 1, NULL); SetGroupSpacing ( g, 1, 1 ); glr = NormalGroup ( g, 1, 2, "Groups:", systemFont, NULL ); #ifdef WIN_MOTIF SetGroupSpacing ( glr, 12, 12 ); SetGroupMargins ( glr, 8, 8 ); #else SetGroupSpacing ( glr, 6, 6 ); SetGroupMargins ( glr, 6, 6 ); #endif g1 = HiddenGroup ( glr, 2, 1, NULL ); g2 = HiddenGroup ( g1, 1, 0, NULL ); PushButton ( g2, "Top", OnGroupTop ); PushButton ( g2, "Bottom", OnGroupBottom ); groupHideButton = PushButton ( g2, "Hide", OnGroupHide ); groupCompBox = CheckBox ( g2, "Compress", OnGroupCompress ); groupDelButton = PushButton ( g2, "Delete", OnGroupDelete ); groupList = SingleList ( g1, 10, 8, OnGroupList ); curGroupInd = 0; LoadGroupArray(); g2 = HiddenGroup ( glr, 3, 0, NULL ); toAlign[2] = (Handle)PushButton ( g2, "Create", OnGroupNew ); toAlign[0] = (Handle)StaticPrompt ( g2, "Group", 0, 0, systemFont, 'l'); #ifdef WIN_MOTIF groupDialog = DialogText ( g2, "", 7, OnText16 ); #else groupDialog = DialogText ( g2, "", 9, OnText16 ); #endif toAlign[1] = (Handle)groupDialog; AlignObjects ( ALIGN_CENTER, (HANDLE)g1, (HANDLE)g2, NULL ); featGroup = glr = NormalGroup ( g, 1, 2, "Features:", systemFont, NULL ); #ifdef WIN_MOTIF SetGroupSpacing ( glr, 12, 12 ); SetGroupMargins ( glr, 8, 8 ); #else SetGroupSpacing ( glr, 6, 6 ); SetGroupMargins ( glr, 6, 6 ); #endif g1 = HiddenGroup ( glr, 2, 1, NULL ); featList = SingleList ( g1, 10, 8, OnFeatureList ); LoadFeatureArray(); FillFeatList( FALSE ); if ( totalFeatures == 0 ){ curFeatureInd = -1; } else { curFeatureInd = 0; SetValue ( featList, 1 ); } g2 = HiddenGroup ( g1, 1, 0, NULL ); PushButton ( g2, "Top", OnFeatTop ); PushButton ( g2, " Bottom ", OnFeatBottom ); featHideButton = PushButton ( g2, "Hide", OnFeatHide ); g2 = HiddenGroup ( glr, 3, 0, NULL ); #ifdef WIN_MOTIF SetGroupMargins ( g2, 8, 8 ); #endif toAlign[0] = (Handle)PushButton ( g2, "Move", OnFeatMove ); toAlign[1] = (Handle)StaticPrompt ( g2, "To", 0, 0, systemFont, 'l'); featPopup = PopupList ( g2, FALSE, NULL ); toAlign[2] = (Handle)featPopup; FillGroupList(FALSE); SetGroupValue (curGroupInd); FillFeatPopup(FALSE); UpdateDlgControls (); return g; }