home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / x / volume18 / bibview / part15 < prev    next >
Encoding:
Text File  |  1992-08-26  |  50.5 KB  |  1,359 lines

  1. Newsgroups: comp.sources.x
  2. Path: uunet!cis.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!pacbell.com!mips!msi!dcmartin
  3. From: Armin Liebl <liebla@informatik.tu-muenchen.de>
  4. Subject: v18i113: bibview - BibTeX GUI, Part15/20
  5. Message-ID: <1992Aug27.161744.25965@msi.com>
  6. Originator: dcmartin@fascet
  7. Sender: dcmartin@msi.com (David C. Martin - Moderator)
  8. Organization: Molecular Simulations, Inc.
  9. References: <csx-18i099-bibview@uunet.UU.NET>
  10. Date: Thu, 27 Aug 1992 16:17:44 GMT
  11. Approved: dcmartin@msi.com
  12. Lines: 1345
  13.  
  14. Submitted-by: Armin Liebl <liebla@informatik.tu-muenchen.de>
  15. Posting-number: Volume 18, Issue 113
  16. Archive-name: bibview/part15
  17.  
  18. #!/bin/sh
  19. # this is part.15 (part 15 of a multipart archive)
  20. # do not concatenate these parts, unpack them in order with /bin/sh
  21. # file gui_card.c continued
  22. #
  23. if test ! -r _shar_seq_.tmp; then
  24.     echo 'Please unpack part 1 first!'
  25.     exit 1
  26. fi
  27. (read Scheck
  28.  if test "$Scheck" != 15; then
  29.     echo Please unpack part "$Scheck" next!
  30.     exit 1
  31.  else
  32.     exit 0
  33.  fi
  34. ) < _shar_seq_.tmp || exit 1
  35. if test ! -f _shar_wnt_.tmp; then
  36.     echo 'x - still skipping gui_card.c'
  37. else
  38. echo 'x - continuing file gui_card.c'
  39. sed 's/^X//' << 'SHAR_EOF' >> 'gui_card.c' &&
  40. X   else if (cwp->edition && WidgetChanged(cwp->edition)) 
  41. X      return(TRUE);
  42. X   else if (cwp->editor && WidgetChanged(cwp->editor)) 
  43. X      return(TRUE);
  44. X   else if (cwp->howpublished && WidgetChanged(cwp->howpublished)) 
  45. X      return(TRUE);
  46. X   else if (cwp->institution && WidgetChanged(cwp->institution))
  47. X      return(TRUE);
  48. X   else if (cwp->journal && WidgetChanged(cwp->journal)) 
  49. X      return(TRUE);
  50. X   else if (cwp->key && WidgetChanged(cwp->key)) 
  51. X      return(TRUE);
  52. X   else if (cwp->month && WidgetChanged(cwp->month)) 
  53. X      return(TRUE);
  54. X   else if (cwp->note && WidgetChanged(cwp->note)) 
  55. X      return(TRUE);
  56. X   else if (cwp->number && WidgetChanged(cwp->number)) 
  57. X      return(TRUE);
  58. X   else if (cwp->organization && WidgetChanged(cwp->organization)) 
  59. X      return(TRUE);
  60. X   else if (cwp->pages && WidgetChanged(cwp->pages)) 
  61. X      return(TRUE);
  62. X   else if (cwp->publisher && WidgetChanged(cwp->publisher)) 
  63. X      return(TRUE);
  64. X   else if (cwp->school && WidgetChanged(cwp->school)) 
  65. X      return(TRUE);
  66. X   else if (cwp->series && WidgetChanged(cwp->series)) 
  67. X      return(TRUE);
  68. X   else if (cwp->title && WidgetChanged(cwp->title)) 
  69. X      return(TRUE);
  70. X   else if (cwp->type && WidgetChanged(cwp->type)) 
  71. X      return(TRUE);
  72. X   else if (cwp->volume && WidgetChanged(cwp->volume)) 
  73. X      return(TRUE);
  74. X   else if (cwp->year && WidgetChanged(cwp->year)) 
  75. X      return(TRUE);
  76. X   else if (cwp->category && WidgetChanged(cwp->category)) 
  77. X      return(TRUE);
  78. X   else if (cwp->crossref && WidgetChanged(cwp->crossref)) 
  79. X      return(TRUE);
  80. X   else if (cwp->mainkey && WidgetChanged(cwp->mainkey)) 
  81. X      return(TRUE);
  82. X   return(FALSE);
  83. }
  84. #undef WidgetChanged
  85. X
  86. X
  87. /*********************************************************************/
  88. /* gucSaveCardData:                                                  */
  89. /*    Save data from card window into new card                       */
  90. /*********************************************************************/
  91. Errcode
  92. gucSaveCardData (CardPtr cp)
  93. {
  94. Errcode status;
  95. CardType type;
  96. UserFld *ufield;
  97. String annotefield;
  98. X
  99. X   /* save reusable data */
  100. X   type = cp->cd->cardtype;
  101. X   if ((status = gucSaveUserFields(cp)) != OK)
  102. X      return(status);
  103. X   ufield = cp->cd->ufield;
  104. X   cp->cd->ufield = NULL;
  105. X
  106. X   annotefield = glbNewString(cp->cd->annote);
  107. X
  108. X   /* save annote field */
  109. X   /* delete old card data */
  110. X   dbtDeleteCard(&cp->cd);
  111. X
  112. X   if ((status = dbtMakeCard(&cp->cd)) != DBT_OK) 
  113. X      return(status);
  114. X
  115. X   /* build only widgets for specific card type */
  116. X   cp->cd->cardtype = type;
  117. X   cp->cd->ufield = ufield;
  118. X   if ((status = saveStdWidgetFlds(cp)) != OK)
  119. X      return(status);
  120. X   cp->cd->annote = annotefield;
  121. X   if ((status = (saveWidgetFunc[cp->cd->cardtype])(cp)) != OK)
  122. X      return(status);
  123. X
  124. X   return(OK);
  125. }
  126. X
  127. X
  128. /*********************************************************************/
  129. /* gucCloseCardCmd:                                                  */
  130. /*    Callback for quit command in card window                       */
  131. /*********************************************************************/
  132. void
  133. gucCloseCardCmd (Widget w, XtPointer clientData, XtPointer callData)
  134. {
  135. CardPtr cp = (CardPtr)clientData;
  136. Errcode status;
  137. X
  138. X   if ((status = gucCloseCardWin(cp)) != OK) {
  139. X      guwError(status);
  140. X   }
  141. }
  142. X
  143. X
  144. /*********************************************************************/
  145. /* gucCloseCardWin:                                                  */
  146. /*    Close card window                                              */
  147. /*********************************************************************/
  148. Errcode
  149. gucCloseCardWin (CardPtr cp)
  150. {
  151. BibPtr bp = (BibPtr)cp->bp;
  152. CardWidgetsPtr cwp = &cp->cw->ct.cw;
  153. X  
  154. X   if (cp->cd->annoteDisplayed == TRUE)
  155. X      {cp->cd->annoteDisplayed = FALSE;
  156. X       XtPopdown(cwp->annoteShell);
  157. X       }
  158. X   XtPopdown(cp->cw->cardShell);
  159. X   bp->noOfCardWins--;
  160. X   if (glbLastCardListEl(bp) == cp)
  161. X      bp->nextCardPos -= 1;
  162. X   free(cp->cw->shellName);
  163. X   free(cp->cw);
  164. X   glbDelCardListEl(bp, cp);
  165. X   if (glbFirstCardListEl(bp) == NULL)
  166. X      bp->nextCardPos = 0;
  167. X   return(OK);
  168. }
  169. X
  170. X
  171. /*********************************************************************/
  172. /* gucOpenUserFields:                                                */
  173. /*    Extend editable fields in current window with user fields      */
  174. /*********************************************************************/
  175. Errcode
  176. gucOpenUserFields (CardPtr cp)
  177. {
  178. Widget card = cp->cw->cardDesk;        /* parent widget */
  179. UserFld **root, *cup;                   /* ptr to user fields */
  180. UserFld *up1, *up;
  181. UserFld newUserFld;
  182. ListNode *udp;
  183. Widget prevWidget;
  184. Boolean found;
  185. Dimension dheight, min;
  186. Errcode status;
  187. int i;
  188. X
  189. X   root = &cp->cd->ufield;
  190. X   cup = cp->cd->ufield;
  191. X
  192. X   XawPanedSetRefigureMode(cp->cw->cardWin, False);
  193. X
  194. X   /* save current dimensions of shell for later resize */
  195. X   XtVaGetValues(cp->cw->cardShell,
  196. X         XtNheight, &cp->cw->height,
  197. X         XtNwidth,  &cp->cw->width,
  198. X         XtNborderWidth, &cp->cw->borderWidth, NULL);
  199. X
  200. X   /* keep old desktop same size while user defs are shown */
  201. X   XtVaGetValues(cp->cw->cardDesk, 
  202. X         XtNheight, &dheight, 
  203. X         XtNmin, &min, NULL);
  204. X   XtVaSetValues(cp->cw->cardDesk,
  205. X         XtNmin, dheight, NULL);
  206. X
  207. X   /* create neu widgets for user def fields */
  208. X   cp->cw->usrFldVport = XtVaCreateWidget("userFldVport",
  209. X               viewportWidgetClass, cp->cw->cardWin, 
  210. X               XtNshowGrip, True, 
  211. X               XtNallowVert, True, NULL);
  212. X   cp->cw->usrFldDesk  = XtVaCreateWidget("userFldDesk",
  213. X               formWidgetClass, cp->cw->usrFldVport, 
  214. X               NULL);
  215. X   cp->cw->usrFldHead  = XtVaCreateManagedWidget("userFldHead",
  216. X               labelWidgetClass, cp->cw->usrFldDesk,
  217. X               XtNleft, XtChainLeft,
  218. X               XtNtop, XtChainTop, NULL);
  219. X   prevWidget = cp->cw->usrFldHead;
  220. X
  221. X   /* open already existing fields first */
  222. X   up = cup;
  223. X   while (up != NULL) {
  224. X      up->fldLabel =    XtVaCreateManagedWidget("userFieldL", 
  225. X                 asciiTextWidgetClass, cp->cw->usrFldDesk, 
  226. X                 XtNstring, up->fldName,
  227. X                 XtNfromVert, prevWidget,
  228. X                 XtNleft, XtChainLeft, NULL);
  229. X      up->fldText  =    XtVaCreateManagedWidget("userField", 
  230. X                 asciiTextWidgetClass, cp->cw->usrFldDesk, 
  231. X                 XtNstring, up->fldData,
  232. X                 XtNfromVert, prevWidget,
  233. X                 XtNfromHoriz, up->fldLabel, NULL);
  234. X      XtAddCallback(XawTextGetSource(up->fldText),
  235. X            XtNcallback, ccdSetChangeFlag, (XtPointer)cp);
  236. X      prevWidget = up->fldText;
  237. X      up = up->next;
  238. X   } /* endwhile */
  239. X      
  240. X   /* open default fields not opened already */
  241. X   udp = userDefFlds[cp->cd->cardtype];
  242. X   while (udp != NULL) {
  243. X      up1 = cup;
  244. X      found = FALSE;
  245. X      while (up1 != NULL) {
  246. X     if (strcmp(up1->fldName, udp->data) == 0) {
  247. X        found = TRUE;
  248. X        break;
  249. X     }
  250. X     up1 = up1->next;
  251. X      }
  252. X
  253. X      if (!found) {
  254. X         newUserFld.fldName = glbNewString(udp->data);
  255. X         newUserFld.fldData = "";
  256. X     newUserFld.fldLabel = XtVaCreateManagedWidget("userFieldL", 
  257. X                 asciiTextWidgetClass, cp->cw->usrFldDesk, 
  258. X                 XtNstring, udp->data,
  259. X                 XtNfromVert, prevWidget,
  260. X                 XtNleft, XtChainLeft, NULL);
  261. X     newUserFld.fldText  = XtVaCreateManagedWidget("userField", 
  262. X                 asciiTextWidgetClass, cp->cw->usrFldDesk, 
  263. X                 XtNstring, newUserFld.fldData,
  264. X                 XtNfromVert, prevWidget,
  265. X                 XtNfromHoriz, newUserFld.fldLabel, NULL);
  266. X     XtAddCallback(XawTextGetSource(newUserFld.fldText),
  267. X               XtNcallback, ccdSetChangeFlag, (XtPointer)cp);
  268. X         prevWidget = newUserFld.fldText;
  269. X         if ((status = dbtAppendUserFld(root, &newUserFld)) != DBT_OK)
  270. X        guwError(status);
  271. X      }
  272. X      udp = udp->next;
  273. X   }
  274. X
  275. X   /* open MAX_NEW_USER_FLDS fields for any input */
  276. X   for (i = 0; i < MAX_NEW_USERDEF_FLDS; i++) {
  277. X      newUserFld.fldName = "";
  278. X      newUserFld.fldData = "";
  279. X      newUserFld.fldLabel = XtVaCreateManagedWidget("userFieldL", 
  280. X              asciiTextWidgetClass, cp->cw->usrFldDesk, 
  281. X              XtNstring, newUserFld.fldName,
  282. X              XtNfromVert, prevWidget,
  283. X              XtNleft, XtChainLeft, NULL);
  284. X      newUserFld.fldText  = XtVaCreateManagedWidget("userField", 
  285. X              asciiTextWidgetClass, cp->cw->usrFldDesk, 
  286. X              XtNstring, newUserFld.fldData,
  287. X              XtNfromVert, prevWidget,
  288. X              XtNfromHoriz, newUserFld.fldLabel, NULL);
  289. X      XtAddCallback(XawTextGetSource(newUserFld.fldText),
  290. X            XtNcallback, ccdSetChangeFlag, (XtPointer)cp);
  291. X      prevWidget = newUserFld.fldText;
  292. X      if ((status = dbtAppendUserFld(root, &newUserFld)) != DBT_OK)
  293. X     guwError(status);
  294. X   }
  295. X
  296. X   XtManageChild(cp->cw->usrFldDesk);
  297. X   XtManageChild(cp->cw->usrFldVport);
  298. X   XawPanedSetRefigureMode(cp->cw->cardWin, True);
  299. X   cp->extended = TRUE;
  300. X   return(OK);
  301. }
  302. X
  303. /*********************************************************************/
  304. /* gucCloseUserFields:                                               */
  305. /*    Remove user fields from card window                            */
  306. /*********************************************************************/
  307. Errcode
  308. gucCloseUserFields (CardPtr cp)
  309. {
  310. CardWinPtr cw = cp->cw;
  311. Errcode status;
  312. X
  313. X   if ((status = gucSaveUserFields(cp)) != OK)
  314. X      guwError(status);
  315. X
  316. X   cp->extended = FALSE;
  317. X   /* XawPanedSetRefigureMode(cw->cardWin, False); */
  318. X   XtVaSetValues(cw->cardDesk,
  319. X         XtNmin, 1, NULL);
  320. X   XtDestroyWidget(cw->usrFldVport);
  321. X   XtResizeWidget(cw->cardShell, cw->width, cw->height, cw->borderWidth);
  322. X   /* XawPanedSetRefigureMode(cw->cardWin, True); */
  323. X   return(OK);
  324. }
  325. X
  326. X
  327. /*********************************************************************/
  328. /* gucSaveUserFields:                                                */
  329. /*    Save data in user fields to card (temp or real)                */
  330. /*********************************************************************/
  331. Errcode
  332. gucSaveUserFields (CardPtr cp)
  333. {
  334. UserFld newFld, *tfield = NULL, *up;
  335. Errcode status;
  336. String str;
  337. X
  338. X   if (!cp->extended)
  339. X      return(OK);
  340. X
  341. X   up = cp->cd->ufield;
  342. X   while (up != NULL) {
  343. X      XtVaGetValues(up->fldLabel, XtNstring, &str, NULL);
  344. X      if (glbIsStringEmpty(str)) {
  345. X     up = up->next;
  346. X     continue;
  347. X      }
  348. X      newFld.fldLabel = up->fldLabel;
  349. X      newFld.fldText = up->fldText;
  350. X      if ((newFld.fldName = glbNewString(str)) == NULL)
  351. X     return(ERR_NOMALLOC);
  352. X      XtVaGetValues(up->fldText, XtNstring, &str, NULL);
  353. X      if ((newFld.fldData = glbNewString(str)) == NULL)
  354. X     return(ERR_NOMALLOC);
  355. X      if ((status = dbtAppendUserFld(&tfield, &newFld)) != DBT_OK)
  356. X     guwError(status);
  357. X      up = up->next;
  358. X   } /* endwhile */
  359. X
  360. X   dbtDeleteAllUserFld(&cp->cd->ufield);
  361. X   cp->cd->ufield = tfield;
  362. X   return(OK);
  363. }
  364. X
  365. X
  366. /*********************************************************************/
  367. /* gucCascadeCmd:                                                    */
  368. /*    Callback for cascade command                                   */
  369. /*********************************************************************/
  370. void
  371. gucCascadeCmd (Widget w, XtPointer clientData, XtPointer callData)
  372. {
  373. BibPtr bp = (BibPtr)clientData;
  374. Errcode status;
  375. X
  376. X   if ((status = gucCascade(bp)) != OK) 
  377. X      guwError(status);
  378. X   if ((status = gueCascade(bp)) != OK)
  379. X      guwError(status);
  380. X   if ((status = gulCascade(bp)) != OK)
  381. X      guwError(status);
  382. }
  383. X
  384. X
  385. /*********************************************************************/
  386. /* gucCascade:                                                       */
  387. /*    Layout card windows of a bibliography                          */
  388. /*********************************************************************/
  389. Errcode
  390. gucCascade (BibPtr bp)
  391. {
  392. X   gucSetWindowCoords(bp, FALSE);
  393. X   if (cotIconizeOnDesktop())
  394. X      gucSetIconCoords(bp, FALSE);
  395. X   return(OK);
  396. }
  397. X
  398. X
  399. /*********************************************************************/
  400. /* gucSetWindowCoords:                                               */
  401. /*    Set positions of card windows                                  */
  402. /*********************************************************************/
  403. Errcode
  404. gucSetWindowCoords (BibPtr bp, Boolean calcOnly)
  405. {
  406. CardPtr cp;
  407. int i;
  408. X
  409. X   cp = glbFirstCardListEl(bp);
  410. X   for (i = 1; i <= bp->noOfCardWins; i++) {
  411. X      calcNextCardWinPos(bp->bw->bibdesk, i, &cp->cw->winX, &cp->cw->winY);
  412. X      if (!calcOnly) {
  413. X         XtVaSetValues(cp->cw->cardShell,
  414. X                       XtNx, cp->cw->winX,
  415. X               XtNy, cp->cw->winY, NULL);
  416. X     if (XtIsRealized(cp->cw->cardShell)) {
  417. X        XRaiseWindow(XtDisplay(cp->cw->cardShell),
  418. X             XtWindow(cp->cw->cardShell));
  419. X     }
  420. X      } /* endif */
  421. X      cp = glbNextCardListEl(bp, cp);
  422. X   } /* endfor */
  423. X
  424. X   return(OK);
  425. }
  426. X
  427. X
  428. /*********************************************************************/
  429. /* gucSetIconCoords:                                                 */
  430. /*    Set positions of card window icons                             */
  431. /*********************************************************************/
  432. Errcode
  433. gucSetIconCoords (BibPtr bp, Boolean calcOnly)
  434. {
  435. CardPtr cp;
  436. int curIcon = 0;
  437. X   if ((cp = glbFirstCardListEl(bp)) != NULL) {
  438. X      calcNextCardIconPos(bp->bw->bibdesk, curIcon, &cp->cw->iconX, &cp->cw->iconY);
  439. X      if (!calcOnly) {
  440. X         XtVaSetValues(cp->cw->cardShell,
  441. X               XtNiconX, cp->cw->iconX,
  442. X               XtNiconY, cp->cw->iconY, NULL);
  443. X      }
  444. X
  445. X      while ((cp = glbNextCardListEl(bp, cp)) != NULL) {
  446. X         curIcon++;
  447. X         calcNextCardIconPos(bp->bw->bibdesk, curIcon, &cp->cw->iconX, &cp->cw->iconY);
  448. X         if (!calcOnly) {
  449. X            XtVaSetValues(cp->cw->cardShell,
  450. X                  XtNiconX, cp->cw->iconX,
  451. X                  XtNiconY, cp->cw->iconY, NULL);
  452. X         }
  453. X      }  /* endwhile */
  454. X   } /* endif */
  455. X
  456. X   return(OK);
  457. }
  458. X
  459. X
  460. /*********************************************************************/
  461. /* gucUnsetIconCoords:                                               */
  462. /*    Unset positions of card window icons                           */
  463. /*********************************************************************/
  464. Errcode
  465. gucUnsetIconCoords (BibPtr bp, Boolean calcOnly)
  466. {
  467. CardPtr cp;
  468. X   if ((cp = glbFirstCardListEl(bp)) != NULL) {
  469. X      cp->cw->iconX = cp->cw->iconY = -1;
  470. X      if (!calcOnly) {
  471. X         XtVaSetValues(cp->cw->cardShell,
  472. X               XtNiconX, cp->cw->iconX,
  473. X               XtNiconY, cp->cw->iconY, NULL);
  474. X      }
  475. X
  476. X      while ((cp = glbNextCardListEl(bp, cp)) != NULL) {
  477. X         cp->cw->iconX = cp->cw->iconY = -1;
  478. X         if (!calcOnly) {
  479. X            XtVaSetValues(cp->cw->cardShell,
  480. X                  XtNiconX, cp->cw->iconX,
  481. X                  XtNiconY, cp->cw->iconY, NULL);
  482. X         }
  483. X      }  /* endwhile */
  484. X   } /* endif */
  485. X
  486. X   return(OK);
  487. }
  488. X
  489. X
  490. X
  491. /*********************************************************************/
  492. /* LOCAL FUNCTIONS                                                   */
  493. /*********************************************************************/
  494. X
  495. /*********************************************************************/
  496. /* calcNextCardWinPos:                                               */
  497. /*    Calculate coords of next card window                           */
  498. /*********************************************************************/
  499. static Errcode
  500. calcNextCardWinPos (Widget desk, int n, Position *x, Position *y)
  501. {
  502. Dimension dwidth, dheight;
  503. X
  504. X   XtVaGetValues(desk,
  505. X         XtNwidth, &dwidth,
  506. X         XtNheight, &dheight, NULL);
  507. X   XtTranslateCoords(desk,
  508. X             (n+1) * (Position)CARDWIN_MARGIN,
  509. X             (n+1) * (Position)CARDWIN_MARGIN,
  510. X             x, y);
  511. X
  512. X   return(OK);
  513. }
  514. X
  515. X
  516. /*********************************************************************/
  517. /* calcNextCardIconPos:                                              */
  518. /*    Calculate coords of next card window icon                      */
  519. /*********************************************************************/
  520. static Errcode
  521. calcNextCardIconPos (Widget desk, int curIcon, Position *x, Position *y)
  522. {
  523. Position curX, curY;
  524. Dimension dwidth, dheight;
  525. X
  526. X   if (curIcon == 0) { /* position 1st bibwin */
  527. X      curX = 1;
  528. X      curY = CARD_ICON_MARGIN;
  529. X      XtTranslateCoords(desk,
  530. X               curX, curY,
  531. X               x, y);
  532. X   }
  533. X   else {  /* position icon after curIcon */
  534. X      curX = curIcon * (CARD_ICON_MARGIN + CARD_ICON_WIDTH);
  535. X      curY = CARD_ICON_MARGIN;
  536. X      XtTranslateCoords(desk,
  537. X               curX, curY,
  538. X               x, y);
  539. X   }
  540. }
  541. X
  542. X
  543. /*********************************************************************/
  544. /* createStdWidgetFlds:                                              */
  545. /*    Creates widgets for card type article                          */
  546. /*********************************************************************/
  547. static void
  548. createStdWidgetFlds (BibPtr bp, CardPtr cp)
  549. {
  550. CardWidgetsPtr cwp = &cp->cw->ct.cw;    /* ptr to widget ids */
  551. CardDataPtr cdp = cp->cd;        /* ptr to real card data */
  552. CardDataPtr cbp = &cp->cw->ct.buf;    /* ptr to text buffers */
  553. Widget card = cp->cw->cardFlds;        /* parent widget */
  554. X
  555. X   cwp->mainkeyL =     XtVaCreateManagedWidget("mainkeyLabel", 
  556. X                     labelWidgetClass, card, 
  557. X                 XtNtop, XtChainTop, 
  558. X                 XtNleft, XtChainLeft, NULL);
  559. X   cwp->mainkey =     XtVaCreateManagedWidget("mainkey", 
  560. X                    asciiTextWidgetClass, card, 
  561. X                XtNstring, cdp->mainkey,
  562. X                XtNtop, XtChainTop, 
  563. X                XtNfromHoriz, cwp->mainkeyL, NULL);
  564. X   cwp->crossrefL =     XtVaCreateManagedWidget("crossrefLabel", 
  565. X                     labelWidgetClass, card, 
  566. X                 XtNtop, XtChainTop, 
  567. X                 XtNfromHoriz, cwp->mainkey, NULL);
  568. X   cwp->crossref =     XtVaCreateManagedWidget("crossref", 
  569. X                    asciiTextWidgetClass, card, 
  570. X                XtNstring, cdp->crossref,
  571. X                XtNtop, XtChainTop, 
  572. X                XtNfromHoriz, cwp->crossrefL, NULL);
  573. X   cwp->keyL =     XtVaCreateManagedWidget("keyLabel", 
  574. X                     labelWidgetClass, card, 
  575. X                 XtNfromVert, cwp->mainkey, 
  576. X                 XtNleft, XtChainLeft, NULL);
  577. X   cwp->key =     XtVaCreateManagedWidget("key", 
  578. X                    asciiTextWidgetClass, card, 
  579. X                XtNstring, cdp->key,
  580. X                XtNfromVert, cwp->mainkey,
  581. X                XtNfromHoriz, cwp->keyL, NULL);
  582. X   cwp->categoryL =     XtVaCreateManagedWidget("categoryLabel", 
  583. X                     labelWidgetClass, card, 
  584. X                 XtNfromVert, cwp->crossref,
  585. X                XtNfromHoriz, cwp->key, NULL);
  586. X   cwp->category =     XtVaCreateManagedWidget("category", 
  587. X                    asciiTextWidgetClass, card, 
  588. X                XtNstring, cdp->category,
  589. X                XtNfromVert, cwp->crossref,
  590. X                XtNfromHoriz, cwp->categoryL, NULL);
  591. }
  592. X
  593. X
  594. /*********************************************************************/
  595. /* CreateArticleWidgets:                                             */
  596. /*    Creates widgets for card type article                          */
  597. /*********************************************************************/
  598. static void
  599. CreateArticleWidgets (BibPtr bp, CardPtr cp)
  600. {
  601. CardWidgetsPtr cwp = &cp->cw->ct.cw;    /* ptr to widget ids */
  602. CardDataPtr cdp = cp->cd;        /* ptr to real card data */
  603. CardDataPtr cbp = &cp->cw->ct.buf;    /* ptr to text buffers */
  604. Widget card = cp->cw->cardFlds;        /* parent widget */
  605. X
  606. X   cdp->annoteDisplayed = FALSE;
  607. X   cdp->annoteChanged = FALSE;
  608. X   cwp->titleL =     XtVaCreateManagedWidget("titleLabel", 
  609. X                     labelWidgetClass, card, 
  610. X                  XtNfromVert, cwp->category, 
  611. X                 XtNleft, XtChainLeft, NULL);
  612. X   cwp->title =     XtVaCreateManagedWidget("title", 
  613. X                    asciiTextWidgetClass, card, 
  614. X              XtNborderWidth, 2,
  615. X                XtNstring, cdp->title, 
  616. X                  XtNfromVert, cwp->category, 
  617. X                XtNfromHoriz, cwp->titleL, NULL);
  618. X   cwp->authorL =     XtVaCreateManagedWidget("authorLabel", 
  619. X                      labelWidgetClass, card, 
  620. X                  XtNfromVert, cwp->title, 
  621. X                  XtNleft, XtChainLeft, NULL);
  622. X   cwp->author =     XtVaCreateManagedWidget("author", 
  623. X                     asciiTextWidgetClass, card, 
  624. X              XtNborderWidth, 2,
  625. X                 XtNstring, cdp->author, 
  626. X                 XtNfromVert, cwp->title, 
  627. X                 XtNfromHoriz, cwp->authorL, NULL);
  628. X   cwp->journalL =     XtVaCreateManagedWidget("journalLabel", 
  629. X                       labelWidgetClass, card, 
  630. X                   XtNfromVert, cwp->author,
  631. X                   XtNleft, XtChainLeft, NULL);
  632. X   cwp->journal =     XtVaCreateManagedWidget("journal", 
  633. X                      asciiTextWidgetClass, card, 
  634. X              XtNborderWidth, 2,
  635. X                  XtNstring, cdp->journal, 
  636. X                  XtNfromVert, cwp->author, 
  637. X                  XtNfromHoriz, cwp->journalL, NULL);
  638. X   cwp->pagesL =     XtVaCreateManagedWidget("pagesLabel", 
  639. X                      labelWidgetClass, card, 
  640. X                  XtNfromVert, cwp->journal,
  641. X                   XtNleft, XtChainLeft, NULL);
  642. X   cwp->pages =     XtVaCreateManagedWidget("pages",
  643. X                     asciiTextWidgetClass, card, 
  644. X                 XtNstring, cdp->pages, 
  645. X                 XtNfromVert, cwp->journal,
  646. X                 XtNfromHoriz, cwp->pagesL, NULL);
  647. X   cwp->monthL =     XtVaCreateManagedWidget("monthLabel", 
  648. X                     labelWidgetClass, card, 
  649. X                  XtNfromVert, cwp->pages,
  650. X                   XtNleft, XtChainLeft, NULL);
  651. X   cwp->month =     XtVaCreateManagedWidget("month", 
  652. X                    asciiTextWidgetClass, card, 
  653. X                XtNstring, cdp->month, 
  654. X                XtNfromVert, cwp->pages,
  655. X                XtNfromHoriz, cwp->monthL, NULL);
  656. X   cwp->yearL =     XtVaCreateManagedWidget("yearLabel", 
  657. X                    labelWidgetClass, card, 
  658. X                XtNfromVert, cwp->pages,
  659. X                XtNfromHoriz, cwp->month, NULL);
  660. X   cwp->year =         XtVaCreateManagedWidget("year", 
  661. X                   asciiTextWidgetClass, card, 
  662. X              XtNborderWidth, 2,
  663. X               XtNstring, cdp->year, 
  664. X               XtNfromVert, cwp->pages,
  665. X               XtNfromHoriz, cwp->yearL, NULL);
  666. X   cwp->volumeL =     XtVaCreateManagedWidget("volumeLabel", 
  667. X                      labelWidgetClass, card, 
  668. X                  XtNfromVert, cwp->month,
  669. X                 XtNleft, XtChainLeft, NULL);
  670. X   cwp->volume =     XtVaCreateManagedWidget("volume",
  671. X                     asciiTextWidgetClass, card, 
  672. X                 XtNstring, cdp->volume, 
  673. X                 XtNfromVert, cwp->month,
  674. X                 XtNfromHoriz, cwp->volumeL, NULL);
  675. X   cwp->numberL =     XtVaCreateManagedWidget("numberLabel", 
  676. X                      labelWidgetClass, card, 
  677. X                  XtNfromVert, cwp->month,
  678. X                XtNfromHoriz, cwp->volume, NULL);
  679. X   cwp->number =     XtVaCreateManagedWidget("number",
  680. X                     asciiTextWidgetClass, card, 
  681. X                 XtNstring, cdp->number, 
  682. X                 XtNfromVert, cwp->month,
  683. X                 XtNfromHoriz, cwp->numberL, NULL);
  684. X   cwp->noteL =     XtVaCreateManagedWidget("noteLabel", 
  685. X                      labelWidgetClass, card, 
  686. X                  XtNfromVert, cwp->volume,
  687. X                 XtNleft, XtChainLeft, NULL);
  688. X   cwp->note =         XtVaCreateManagedWidget("note",
  689. X                     asciiTextWidgetClass, card, 
  690. X                 XtNstring, cdp->note, 
  691. X                 XtNfromVert, cwp->volume,
  692. X                 XtNfromHoriz, cwp->noteL, NULL);
  693. }
  694. X
  695. X
  696. /*********************************************************************/
  697. /* CreateBookWidgets:                                                */
  698. /*    Creates widgets for card type book                             */
  699. /*********************************************************************/
  700. static void
  701. CreateBookWidgets (BibPtr bp, CardPtr cp)
  702. {
  703. X CardWidgetsPtr cwp = &cp->cw->ct.cw;    /* ptr to widget ids */
  704. X CardDataPtr cdp = cp->cd;        /* ptr to real card data */
  705. X CardDataPtr cbp = &cp->cw->ct.buf;    /* ptr to text buffers */
  706. X Widget card = cp->cw->cardFlds;        /* parent widget */
  707. X
  708. X   cdp->annoteDisplayed = FALSE;
  709. X   cdp->annoteChanged = FALSE;
  710. X   cwp->titleL =     XtVaCreateManagedWidget("titleLabel", 
  711. X                     labelWidgetClass, card, 
  712. X                  XtNfromVert, cwp->category, 
  713. X                 XtNleft, XtChainLeft, NULL);
  714. X   cwp->title =     XtVaCreateManagedWidget("title", 
  715. X                    asciiTextWidgetClass, card, 
  716. X              XtNborderWidth, 2,
  717. X                XtNstring, cdp->title, 
  718. X                  XtNfromVert, cwp->category, 
  719. X                XtNfromHoriz, cwp->titleL, NULL);
  720. X   cwp->authorL =     XtVaCreateManagedWidget("authorLabel", 
  721. X                      labelWidgetClass, card, 
  722. X                  XtNfromVert, cwp->title, 
  723. X                  XtNleft, XtChainLeft, NULL);
  724. X   cwp->author =     XtVaCreateManagedWidget("author", 
  725. X                     asciiTextWidgetClass, card, 
  726. X              XtNborderWidth, 2,
  727. X                 XtNstring, cdp->author, 
  728. X                 XtNfromVert, cwp->title, 
  729. X                 XtNfromHoriz, cwp->authorL, NULL);
  730. X   cwp->editorL =     XtVaCreateManagedWidget("editorLabel", 
  731. X                      labelWidgetClass, card, 
  732. X                  XtNfromVert, cwp->author, 
  733. X                  XtNleft, XtChainLeft, NULL);
  734. X   cwp->editor =     XtVaCreateManagedWidget("editor", 
  735. X                     asciiTextWidgetClass, card, 
  736. X              XtNborderWidth, 2,
  737. X                 XtNstring, cdp->editor, 
  738. X                 XtNfromVert, cwp->author, 
  739. X                 XtNfromHoriz, cwp->editorL, NULL);
  740. X   cwp->publisherL =     XtVaCreateManagedWidget("publisherLabel", 
  741. X                      labelWidgetClass, card, 
  742. X                  XtNfromVert, cwp->editor, 
  743. X                  XtNleft, XtChainLeft, NULL);
  744. X   cwp->publisher =     XtVaCreateManagedWidget("publisher", 
  745. X                     asciiTextWidgetClass, card, 
  746. X              XtNborderWidth, 2,
  747. X                 XtNstring, cdp->publisher, 
  748. X                 XtNfromVert, cwp->editor, 
  749. X                 XtNfromHoriz, cwp->publisherL, NULL);
  750. X   cwp->addressL =     XtVaCreateManagedWidget("addressLabel", 
  751. X                      labelWidgetClass, card, 
  752. X                  XtNfromVert, cwp->publisher, 
  753. X                  XtNleft, XtChainLeft, NULL);
  754. X   cwp->address =     XtVaCreateManagedWidget("address", 
  755. X                     asciiTextWidgetClass, card, 
  756. X                 XtNstring, cdp->address, 
  757. X                 XtNfromVert, cwp->publisher, 
  758. X                 XtNfromHoriz, cwp->addressL, NULL);
  759. X   cwp->seriesL =     XtVaCreateManagedWidget("seriesLabel", 
  760. X                      labelWidgetClass, card, 
  761. X                  XtNfromVert, cwp->address, 
  762. X                  XtNleft, XtChainLeft, NULL);
  763. X   cwp->series =     XtVaCreateManagedWidget("series", 
  764. X                     asciiTextWidgetClass, card, 
  765. X                 XtNstring, cdp->series, 
  766. X                 XtNfromVert, cwp->address, 
  767. X                 XtNfromHoriz, cwp->seriesL, NULL);
  768. X   cwp->monthL =     XtVaCreateManagedWidget("monthLabel", 
  769. X                     labelWidgetClass, card, 
  770. X                 XtNfromVert, cwp->series,
  771. X                 XtNleft, XtChainLeft, NULL);
  772. X   cwp->month =     XtVaCreateManagedWidget("month", 
  773. X                    asciiTextWidgetClass, card, 
  774. X                XtNstring, cdp->month, 
  775. X                XtNfromVert, cwp->series,
  776. X                XtNfromHoriz, cwp->monthL, NULL);
  777. X   cwp->yearL =     XtVaCreateManagedWidget("yearLabel", 
  778. X                    labelWidgetClass, card, 
  779. X                XtNfromVert, cwp->series,
  780. X                XtNfromHoriz, cwp->month, NULL);
  781. X   cwp->year =         XtVaCreateManagedWidget("year", 
  782. X                   asciiTextWidgetClass, card, 
  783. X              XtNborderWidth, 2,
  784. X               XtNstring, cdp->year, 
  785. X               XtNfromVert, cwp->series,
  786. X               XtNfromHoriz, cwp->yearL, NULL);
  787. X   cwp->volumeL =     XtVaCreateManagedWidget("volumeLabel", 
  788. X                      labelWidgetClass, card, 
  789. X                  XtNfromVert, cwp->month,
  790. X                 XtNleft, XtChainLeft, NULL);
  791. X   cwp->volume =     XtVaCreateManagedWidget("volume",
  792. X                     asciiTextWidgetClass, card, 
  793. X                 XtNstring, cdp->volume, 
  794. X                 XtNfromVert, cwp->month,
  795. X                 XtNfromHoriz, cwp->volumeL, NULL);
  796. X   cwp->editionL =     XtVaCreateManagedWidget("editionLabel", 
  797. X                      labelWidgetClass, card, 
  798. X                  XtNfromVert, cwp->month,
  799. X                XtNfromHoriz, cwp->volume, NULL);
  800. X   cwp->edition =     XtVaCreateManagedWidget("edition",
  801. X                     asciiTextWidgetClass, card, 
  802. X                 XtNstring, cdp->edition, 
  803. X                 XtNfromVert, cwp->month,
  804. X                 XtNfromHoriz, cwp->editionL, NULL);
  805. X   cwp->noteL =     XtVaCreateManagedWidget("noteLabel", 
  806. X                      labelWidgetClass, card, 
  807. X                  XtNfromVert, cwp->volume,
  808. X                 XtNleft, XtChainLeft, NULL);
  809. X   cwp->note =         XtVaCreateManagedWidget("note",
  810. X                     asciiTextWidgetClass, card, 
  811. X                 XtNstring, cdp->note, 
  812. X                 XtNfromVert, cwp->volume,
  813. X                 XtNfromHoriz, cwp->noteL, NULL);
  814. }
  815. X
  816. /*********************************************************************/
  817. /* CreateBookletWidgets:                                             */
  818. /*    Creates widgets for card type booklet                          */
  819. /*********************************************************************/
  820. static void
  821. CreateBookletWidgets (BibPtr bp, CardPtr cp)
  822. {
  823. X CardWidgetsPtr cwp = &cp->cw->ct.cw;    /* ptr to widget ids */
  824. X CardDataPtr cdp = cp->cd;        /* ptr to real card data */
  825. X CardDataPtr cbp = &cp->cw->ct.buf;    /* ptr to text buffers */
  826. X Widget card = cp->cw->cardFlds;        /* parent widget */
  827. X
  828. X   cdp->annoteDisplayed = FALSE;
  829. X   cdp->annoteChanged = FALSE;
  830. X   cwp->titleL =     XtVaCreateManagedWidget("titleLabel", 
  831. X                     labelWidgetClass, card, 
  832. X                  XtNfromVert, cwp->category, 
  833. X                 XtNleft, XtChainLeft, NULL);
  834. X   cwp->title =     XtVaCreateManagedWidget("title", 
  835. X                    asciiTextWidgetClass, card, 
  836. X              XtNborderWidth, 2,
  837. X                XtNstring, cdp->title, 
  838. X                  XtNfromVert, cwp->category, 
  839. X                XtNfromHoriz, cwp->titleL, NULL);
  840. X   cwp->authorL =     XtVaCreateManagedWidget("authorLabel", 
  841. X                      labelWidgetClass, card, 
  842. X                  XtNfromVert, cwp->title, 
  843. X                  XtNleft, XtChainLeft, NULL);
  844. X   cwp->author =     XtVaCreateManagedWidget("author", 
  845. X                     asciiTextWidgetClass, card, 
  846. X                 XtNstring, cdp->author, 
  847. X                 XtNfromVert, cwp->title, 
  848. X                 XtNfromHoriz, cwp->authorL, NULL);
  849. X   cwp->howpublishedL =    XtVaCreateManagedWidget("howpublishedLabel", 
  850. X                      labelWidgetClass, card, 
  851. X                  XtNfromVert, cwp->author, 
  852. X                  XtNleft, XtChainLeft, NULL);
  853. X   cwp->howpublished =     XtVaCreateManagedWidget("howpublished", 
  854. X                     asciiTextWidgetClass, card, 
  855. X                 XtNstring, cdp->howpublished, 
  856. X                 XtNfromVert, cwp->author, 
  857. X                 XtNfromHoriz, cwp->howpublishedL, NULL);
  858. X   cwp->addressL =     XtVaCreateManagedWidget("addressLabel", 
  859. X                      labelWidgetClass, card, 
  860. X                  XtNfromVert, cwp->howpublished, 
  861. X                  XtNleft, XtChainLeft, NULL);
  862. X   cwp->address =     XtVaCreateManagedWidget("address", 
  863. X                     asciiTextWidgetClass, card, 
  864. X                 XtNstring, cdp->address, 
  865. X                 XtNfromVert, cwp->howpublished, 
  866. X                 XtNfromHoriz, cwp->addressL, NULL);
  867. X   cwp->monthL =     XtVaCreateManagedWidget("monthLabel", 
  868. X                     labelWidgetClass, card, 
  869. X                 XtNfromVert, cwp->address,
  870. X                 XtNleft, XtChainLeft, NULL);
  871. X   cwp->month =     XtVaCreateManagedWidget("month", 
  872. X                    asciiTextWidgetClass, card, 
  873. X                XtNstring, cdp->month, 
  874. X                XtNfromVert, cwp->address,
  875. X                XtNfromHoriz, cwp->monthL, NULL);
  876. X   cwp->yearL =     XtVaCreateManagedWidget("yearLabel", 
  877. X                    labelWidgetClass, card, 
  878. X                XtNfromVert, cwp->address,
  879. X                XtNfromHoriz, cwp->month, NULL);
  880. X   cwp->year =         XtVaCreateManagedWidget("year", 
  881. X                   asciiTextWidgetClass, card, 
  882. X               XtNstring, cdp->year, 
  883. X               XtNfromVert, cwp->address,
  884. X               XtNfromHoriz, cwp->yearL, NULL);
  885. X   cwp->noteL =     XtVaCreateManagedWidget("noteLabel", 
  886. X                      labelWidgetClass, card, 
  887. X                  XtNfromVert, cwp->month,
  888. X                 XtNleft, XtChainLeft, NULL);
  889. X   cwp->note =         XtVaCreateManagedWidget("note",
  890. X                     asciiTextWidgetClass, card, 
  891. X                 XtNstring, cdp->note, 
  892. X                 XtNfromVert, cwp->month,
  893. X                 XtNfromHoriz, cwp->noteL, NULL);
  894. }
  895. X
  896. X
  897. /*********************************************************************/
  898. /* CreateConferenceWidgets:                                          */
  899. /*    Creates widgets for card type conference                       */
  900. /*********************************************************************/
  901. static void
  902. CreateConferenceWidgets (BibPtr bp, CardPtr cp)
  903. {
  904. X CardWidgetsPtr cwp = &cp->cw->ct.cw;    /* ptr to widget ids */
  905. X CardDataPtr cdp = cp->cd;        /* ptr to real card data */
  906. X CardDataPtr cbp = &cp->cw->ct.buf;    /* ptr to text buffers */
  907. X Widget card = cp->cw->cardFlds;        /* parent widget */
  908. X
  909. X   cdp->annoteDisplayed = FALSE;
  910. X   cdp->annoteChanged = FALSE;
  911. X   cwp->titleL =     XtVaCreateManagedWidget("titleLabel", 
  912. X                     labelWidgetClass, card, 
  913. X                  XtNfromVert, cwp->category, 
  914. X                 XtNleft, XtChainLeft, NULL);
  915. X   cwp->title =     XtVaCreateManagedWidget("title", 
  916. X                    asciiTextWidgetClass, card, 
  917. X              XtNborderWidth, 2,
  918. X                XtNstring, cdp->title, 
  919. X                  XtNfromVert, cwp->category, 
  920. X                XtNfromHoriz, cwp->titleL, NULL);
  921. X   cwp->booktitleL =     XtVaCreateManagedWidget("booktitleLabel", 
  922. X                     labelWidgetClass, card, 
  923. X                  XtNfromVert, cwp->title, 
  924. X                 XtNleft, XtChainLeft, NULL);
  925. X   cwp->booktitle =     XtVaCreateManagedWidget("booktitle", 
  926. X                    asciiTextWidgetClass, card, 
  927. X              XtNborderWidth, 2,
  928. X                XtNstring, cdp->booktitle, 
  929. X                  XtNfromVert, cwp->title, 
  930. X                XtNfromHoriz, cwp->booktitleL, NULL);
  931. X   cwp->authorL =     XtVaCreateManagedWidget("authorLabel", 
  932. X                      labelWidgetClass, card, 
  933. X                  XtNfromVert, cwp->booktitle, 
  934. X                  XtNleft, XtChainLeft, NULL);
  935. X   cwp->author =     XtVaCreateManagedWidget("author", 
  936. X                     asciiTextWidgetClass, card, 
  937. X              XtNborderWidth, 2,
  938. X                 XtNstring, cdp->author, 
  939. X                 XtNfromVert, cwp->booktitle, 
  940. X                 XtNfromHoriz, cwp->authorL, NULL);
  941. X   cwp->editorL =     XtVaCreateManagedWidget("editorLabel", 
  942. X                      labelWidgetClass, card, 
  943. X                  XtNfromVert, cwp->author, 
  944. X                  XtNleft, XtChainLeft, NULL);
  945. X   cwp->editor =     XtVaCreateManagedWidget("editor", 
  946. X                     asciiTextWidgetClass, card, 
  947. X                 XtNstring, cdp->editor, 
  948. X                 XtNfromVert, cwp->author, 
  949. X                 XtNfromHoriz, cwp->editorL, NULL);
  950. X   cwp->organizationL =    XtVaCreateManagedWidget("organizationLabel", 
  951. X                      labelWidgetClass, card, 
  952. X                  XtNfromVert, cwp->editor, 
  953. X                  XtNleft, XtChainLeft, NULL);
  954. X   cwp->organization =     XtVaCreateManagedWidget("organization", 
  955. X                     asciiTextWidgetClass, card, 
  956. X                 XtNstring, cdp->organization, 
  957. X                 XtNfromVert, cwp->editor, 
  958. X                 XtNfromHoriz, cwp->organizationL, NULL);
  959. X   cwp->publisherL =     XtVaCreateManagedWidget("publisherLabel", 
  960. X                      labelWidgetClass, card, 
  961. X                  XtNfromVert, cwp->organization, 
  962. X                  XtNleft, XtChainLeft, NULL);
  963. X   cwp->publisher =     XtVaCreateManagedWidget("publisher", 
  964. X                     asciiTextWidgetClass, card, 
  965. X                 XtNstring, cdp->publisher, 
  966. X                 XtNfromVert, cwp->organization, 
  967. X                 XtNfromHoriz, cwp->publisherL, NULL);
  968. X   cwp->addressL =     XtVaCreateManagedWidget("addressLabel", 
  969. X                      labelWidgetClass, card, 
  970. X                  XtNfromVert, cwp->publisher, 
  971. X                  XtNleft, XtChainLeft, NULL);
  972. X   cwp->address =     XtVaCreateManagedWidget("address", 
  973. X                     asciiTextWidgetClass, card, 
  974. X                 XtNstring, cdp->address, 
  975. X                 XtNfromVert, cwp->publisher, 
  976. X                 XtNfromHoriz, cwp->addressL, NULL);
  977. X   cwp->pagesL =     XtVaCreateManagedWidget("pagesLabel", 
  978. X                      labelWidgetClass, card, 
  979. X                  XtNfromVert, cwp->address,
  980. X                  XtNleft, XtChainLeft, NULL);
  981. X   cwp->pages =     XtVaCreateManagedWidget("pages",
  982. X                     asciiTextWidgetClass, card, 
  983. X                 XtNstring, cdp->pages, 
  984. X                 XtNfromVert, cwp->address,
  985. X                 XtNfromHoriz, cwp->pagesL, NULL);
  986. X   cwp->monthL =     XtVaCreateManagedWidget("monthLabel", 
  987. X                     labelWidgetClass, card, 
  988. X                 XtNfromVert, cwp->pages,
  989. X                 XtNleft, XtChainLeft, NULL);
  990. X   cwp->month =     XtVaCreateManagedWidget("month", 
  991. X                    asciiTextWidgetClass, card, 
  992. X                XtNstring, cdp->month, 
  993. X                XtNfromVert, cwp->pages,
  994. X                XtNfromHoriz, cwp->monthL, NULL);
  995. X   cwp->yearL =     XtVaCreateManagedWidget("yearLabel", 
  996. X                    labelWidgetClass, card, 
  997. X                XtNfromVert, cwp->pages,
  998. X                XtNfromHoriz, cwp->month, NULL);
  999. X   cwp->year =         XtVaCreateManagedWidget("year", 
  1000. X                   asciiTextWidgetClass, card, 
  1001. X              XtNborderWidth, 2,
  1002. X               XtNstring, cdp->year, 
  1003. X               XtNfromVert, cwp->pages,
  1004. X               XtNfromHoriz, cwp->yearL, NULL);
  1005. X   cwp->noteL =     XtVaCreateManagedWidget("noteLabel", 
  1006. X                      labelWidgetClass, card, 
  1007. X                  XtNfromVert, cwp->month,
  1008. X                 XtNleft, XtChainLeft, NULL);
  1009. X   cwp->note =         XtVaCreateManagedWidget("note",
  1010. X                     asciiTextWidgetClass, card, 
  1011. X                 XtNstring, cdp->note, 
  1012. X                 XtNfromVert, cwp->month,
  1013. X                 XtNfromHoriz, cwp->noteL, NULL);
  1014. }
  1015. X
  1016. X
  1017. /*********************************************************************/
  1018. /* CreateInbookWidgets:                                              */
  1019. /*    Creates widgets for card type inbook                           */
  1020. /*********************************************************************/
  1021. static void
  1022. CreateInbookWidgets (BibPtr bp, CardPtr cp)
  1023. {
  1024. X CardWidgetsPtr cwp = &cp->cw->ct.cw;    /* ptr to widget ids */
  1025. X CardDataPtr cdp = cp->cd;        /* ptr to real card data */
  1026. X CardDataPtr cbp = &cp->cw->ct.buf;    /* ptr to text buffers */
  1027. X Widget card = cp->cw->cardFlds;        /* parent widget */
  1028. X
  1029. X   cdp->annoteDisplayed = FALSE;
  1030. X   cdp->annoteChanged = FALSE;
  1031. X   cwp->titleL =     XtVaCreateManagedWidget("titleLabel", 
  1032. X                     labelWidgetClass, card, 
  1033. X                  XtNfromVert, cwp->category, 
  1034. X                 XtNleft, XtChainLeft, NULL);
  1035. X   cwp->title =     XtVaCreateManagedWidget("title", 
  1036. X                    asciiTextWidgetClass, card, 
  1037. X              XtNborderWidth, 2,
  1038. X                XtNstring, cdp->title, 
  1039. X                  XtNfromVert, cwp->category, 
  1040. X                XtNfromHoriz, cwp->titleL, NULL);
  1041. X   cwp->authorL =     XtVaCreateManagedWidget("authorLabel", 
  1042. X                      labelWidgetClass, card, 
  1043. X                  XtNfromVert, cwp->title, 
  1044. X                  XtNleft, XtChainLeft, NULL);
  1045. X   cwp->author =     XtVaCreateManagedWidget("author", 
  1046. X                     asciiTextWidgetClass, card, 
  1047. X              XtNborderWidth, 2,
  1048. X                 XtNstring, cdp->author, 
  1049. X                 XtNfromVert, cwp->title, 
  1050. X                 XtNfromHoriz, cwp->authorL, NULL);
  1051. X   cwp->editorL =     XtVaCreateManagedWidget("editorLabel", 
  1052. X                      labelWidgetClass, card, 
  1053. X                  XtNfromVert, cwp->author, 
  1054. X                  XtNleft, XtChainLeft, NULL);
  1055. X   cwp->editor =     XtVaCreateManagedWidget("editor", 
  1056. X                     asciiTextWidgetClass, card, 
  1057. X              XtNborderWidth, 2,
  1058. X                 XtNstring, cdp->editor, 
  1059. X                 XtNfromVert, cwp->author, 
  1060. X                 XtNfromHoriz, cwp->editorL, NULL);
  1061. X   cwp->chapterL =     XtVaCreateManagedWidget("chapterLabel", 
  1062. X                      labelWidgetClass, card, 
  1063. X                  XtNfromVert, cwp->editor, 
  1064. X                  XtNleft, XtChainLeft, NULL);
  1065. X   cwp->chapter =     XtVaCreateManagedWidget("chapter", 
  1066. X                     asciiTextWidgetClass, card, 
  1067. X              XtNborderWidth, 2,
  1068. X                 XtNstring, cdp->chapter, 
  1069. X                 XtNfromVert, cwp->editor, 
  1070. X                 XtNfromHoriz, cwp->chapterL, NULL);
  1071. X   cwp->pagesL =     XtVaCreateManagedWidget("pagesLabel", 
  1072. X                      labelWidgetClass, card, 
  1073. X                  XtNfromVert, cwp->chapter, 
  1074. X                  XtNleft, XtChainLeft, NULL);
  1075. X   cwp->pages =     XtVaCreateManagedWidget("pages", 
  1076. X                     asciiTextWidgetClass, card, 
  1077. X              XtNborderWidth, 2,
  1078. X                 XtNstring, cdp->pages, 
  1079. X                 XtNfromVert, cwp->chapter, 
  1080. X                 XtNfromHoriz, cwp->pagesL, NULL);
  1081. X   cwp->publisherL =     XtVaCreateManagedWidget("publisherLabel", 
  1082. X                      labelWidgetClass, card, 
  1083. X                  XtNfromVert, cwp->pages, 
  1084. X                  XtNleft, XtChainLeft, NULL);
  1085. X   cwp->publisher =     XtVaCreateManagedWidget("publisher", 
  1086. X                     asciiTextWidgetClass, card, 
  1087. X              XtNborderWidth, 2,
  1088. X                 XtNstring, cdp->publisher, 
  1089. X                 XtNfromVert, cwp->pages, 
  1090. X                 XtNfromHoriz, cwp->publisherL, NULL);
  1091. X   cwp->addressL =     XtVaCreateManagedWidget("addressLabel", 
  1092. X                      labelWidgetClass, card, 
  1093. X                  XtNfromVert, cwp->publisher, 
  1094. X                  XtNleft, XtChainLeft, NULL);
  1095. X   cwp->address =     XtVaCreateManagedWidget("address", 
  1096. X                     asciiTextWidgetClass, card, 
  1097. X                 XtNstring, cdp->address, 
  1098. X                 XtNfromVert, cwp->publisher, 
  1099. X                 XtNfromHoriz, cwp->addressL, NULL);
  1100. X   cwp->seriesL =     XtVaCreateManagedWidget("seriesLabel", 
  1101. X                      labelWidgetClass, card, 
  1102. X                  XtNfromVert, cwp->address, 
  1103. X                  XtNleft, XtChainLeft, NULL);
  1104. X   cwp->series =     XtVaCreateManagedWidget("series", 
  1105. X                     asciiTextWidgetClass, card, 
  1106. X                 XtNstring, cdp->series, 
  1107. X                 XtNfromVert, cwp->address, 
  1108. X                 XtNfromHoriz, cwp->seriesL, NULL);
  1109. X   cwp->monthL =     XtVaCreateManagedWidget("monthLabel", 
  1110. X                     labelWidgetClass, card, 
  1111. X                 XtNfromVert, cwp->series,
  1112. X                 XtNleft, XtChainLeft, NULL);
  1113. X   cwp->month =     XtVaCreateManagedWidget("month", 
  1114. X                    asciiTextWidgetClass, card, 
  1115. X                XtNstring, cdp->month, 
  1116. X                XtNfromVert, cwp->series,
  1117. X                XtNfromHoriz, cwp->monthL, NULL);
  1118. X   cwp->yearL =     XtVaCreateManagedWidget("yearLabel", 
  1119. X                    labelWidgetClass, card, 
  1120. X                XtNfromVert, cwp->series,
  1121. X                XtNfromHoriz, cwp->month, NULL);
  1122. X   cwp->year =         XtVaCreateManagedWidget("year", 
  1123. X                   asciiTextWidgetClass, card, 
  1124. X              XtNborderWidth, 2,
  1125. X               XtNstring, cdp->year, 
  1126. X               XtNfromVert, cwp->series,
  1127. X               XtNfromHoriz, cwp->yearL, NULL);
  1128. X   cwp->volumeL =     XtVaCreateManagedWidget("volumeLabel", 
  1129. X                      labelWidgetClass, card, 
  1130. X                  XtNfromVert, cwp->month,
  1131. X                 XtNleft, XtChainLeft, NULL);
  1132. X   cwp->volume =     XtVaCreateManagedWidget("volume",
  1133. X                     asciiTextWidgetClass, card, 
  1134. X                 XtNstring, cdp->volume, 
  1135. X                 XtNfromVert, cwp->month,
  1136. X                 XtNfromHoriz, cwp->volumeL, NULL);
  1137. X   cwp->editionL =     XtVaCreateManagedWidget("editionLabel", 
  1138. X                      labelWidgetClass, card, 
  1139. X                  XtNfromVert, cwp->month,
  1140. X                XtNfromHoriz, cwp->volume, NULL);
  1141. X   cwp->edition =     XtVaCreateManagedWidget("edition",
  1142. X                     asciiTextWidgetClass, card, 
  1143. X                 XtNstring, cdp->edition, 
  1144. X                 XtNfromVert, cwp->month,
  1145. X                 XtNfromHoriz, cwp->editionL, NULL);
  1146. X   cwp->noteL =     XtVaCreateManagedWidget("noteLabel", 
  1147. X                      labelWidgetClass, card, 
  1148. X                  XtNfromVert, cwp->volume,
  1149. X                 XtNleft, XtChainLeft, NULL);
  1150. X   cwp->note =         XtVaCreateManagedWidget("note",
  1151. X                     asciiTextWidgetClass, card, 
  1152. X                 XtNstring, cdp->note, 
  1153. X                 XtNfromVert, cwp->volume,
  1154. X                 XtNfromHoriz, cwp->noteL, NULL);
  1155. }
  1156. X
  1157. /*********************************************************************/
  1158. /* CreateIncollectionWidgets:                                        */
  1159. /*    Creates widgets for card type incollection                     */
  1160. /*********************************************************************/
  1161. static void
  1162. CreateIncollectionWidgets (BibPtr bp, CardPtr cp)
  1163. {
  1164. X CardWidgetsPtr cwp = &cp->cw->ct.cw;    /* ptr to widget ids */
  1165. X CardDataPtr cdp = cp->cd;        /* ptr to real card data */
  1166. X CardDataPtr cbp = &cp->cw->ct.buf;    /* ptr to text buffers */
  1167. X Widget card = cp->cw->cardFlds;        /* parent widget */
  1168. X
  1169. X   cdp->annoteDisplayed = FALSE;
  1170. X   cdp->annoteChanged = FALSE;
  1171. X   cwp->titleL =     XtVaCreateManagedWidget("titleLabel", 
  1172. X                     labelWidgetClass, card, 
  1173. X                  XtNfromVert, cwp->category, 
  1174. X                 XtNleft, XtChainLeft, NULL);
  1175. X   cwp->title =     XtVaCreateManagedWidget("title", 
  1176. X                    asciiTextWidgetClass, card, 
  1177. X              XtNborderWidth, 2,
  1178. X                XtNstring, cdp->title, 
  1179. X                  XtNfromVert, cwp->category, 
  1180. X                XtNfromHoriz, cwp->titleL, NULL);
  1181. X   cwp->booktitleL =     XtVaCreateManagedWidget("booktitleLabel", 
  1182. X                     labelWidgetClass, card, 
  1183. X                  XtNfromVert, cwp->title, 
  1184. X                 XtNleft, XtChainLeft, NULL);
  1185. X   cwp->booktitle =     XtVaCreateManagedWidget("booktitle", 
  1186. X                    asciiTextWidgetClass, card, 
  1187. X              XtNborderWidth, 2,
  1188. X                XtNstring, cdp->booktitle, 
  1189. X                  XtNfromVert, cwp->title, 
  1190. X                XtNfromHoriz, cwp->booktitleL, NULL);
  1191. X   cwp->authorL =     XtVaCreateManagedWidget("authorLabel", 
  1192. X                      labelWidgetClass, card, 
  1193. X                  XtNfromVert, cwp->booktitle, 
  1194. X                  XtNleft, XtChainLeft, NULL);
  1195. X   cwp->author =     XtVaCreateManagedWidget("author", 
  1196. X                     asciiTextWidgetClass, card, 
  1197. X              XtNborderWidth, 2,
  1198. X                 XtNstring, cdp->author, 
  1199. X                 XtNfromVert, cwp->booktitle, 
  1200. X                 XtNfromHoriz, cwp->authorL, NULL);
  1201. X   cwp->editorL =     XtVaCreateManagedWidget("editorLabel", 
  1202. X                      labelWidgetClass, card, 
  1203. X                  XtNfromVert, cwp->author, 
  1204. X                  XtNleft, XtChainLeft, NULL);
  1205. X   cwp->editor =     XtVaCreateManagedWidget("editor", 
  1206. X                     asciiTextWidgetClass, card, 
  1207. X                 XtNstring, cdp->editor, 
  1208. X                 XtNfromVert, cwp->author, 
  1209. X                 XtNfromHoriz, cwp->editorL, NULL);
  1210. X   cwp->publisherL =     XtVaCreateManagedWidget("publisherLabel", 
  1211. X                      labelWidgetClass, card, 
  1212. X                  XtNfromVert, cwp->editor, 
  1213. X                  XtNleft, XtChainLeft, NULL);
  1214. X   cwp->publisher =     XtVaCreateManagedWidget("publisher", 
  1215. X                     asciiTextWidgetClass, card, 
  1216. X              XtNborderWidth, 2,
  1217. X                 XtNstring, cdp->publisher, 
  1218. X                 XtNfromVert, cwp->editor, 
  1219. X                 XtNfromHoriz, cwp->publisherL, NULL);
  1220. X   cwp->addressL =     XtVaCreateManagedWidget("addressLabel", 
  1221. X                      labelWidgetClass, card, 
  1222. X                  XtNfromVert, cwp->publisher, 
  1223. X                  XtNleft, XtChainLeft, NULL);
  1224. X   cwp->address =     XtVaCreateManagedWidget("address", 
  1225. X                     asciiTextWidgetClass, card, 
  1226. X                 XtNstring, cdp->address, 
  1227. X                 XtNfromVert, cwp->publisher, 
  1228. X                 XtNfromHoriz, cwp->addressL, NULL);
  1229. X   cwp->chapterL =     XtVaCreateManagedWidget("chapterLabel", 
  1230. X                      labelWidgetClass, card, 
  1231. X                  XtNfromVert, cwp->address,
  1232. X                  XtNleft, XtChainLeft, NULL);
  1233. X   cwp->chapter =     XtVaCreateManagedWidget("chapter",
  1234. X                     asciiTextWidgetClass, card, 
  1235. X                 XtNstring, cdp->chapter, 
  1236. X                 XtNfromVert, cwp->address,
  1237. X                 XtNfromHoriz, cwp->chapterL, NULL);
  1238. X   cwp->pagesL =     XtVaCreateManagedWidget("pagesLabel", 
  1239. X                      labelWidgetClass, card, 
  1240. X                  XtNfromVert, cwp->chapter,
  1241. X                  XtNleft, XtChainLeft, NULL);
  1242. X   cwp->pages =     XtVaCreateManagedWidget("pages",
  1243. X                     asciiTextWidgetClass, card, 
  1244. X                 XtNstring, cdp->pages, 
  1245. X                 XtNfromVert, cwp->chapter,
  1246. X                 XtNfromHoriz, cwp->pagesL, NULL);
  1247. X   cwp->monthL =     XtVaCreateManagedWidget("monthLabel", 
  1248. X                     labelWidgetClass, card, 
  1249. X                 XtNfromVert, cwp->pages,
  1250. X                  XtNleft, XtChainLeft, NULL);
  1251. X   cwp->month =     XtVaCreateManagedWidget("month", 
  1252. X                    asciiTextWidgetClass, card, 
  1253. X                XtNstring, cdp->month, 
  1254. X                XtNfromVert, cwp->pages,
  1255. X                XtNfromHoriz, cwp->monthL, NULL);
  1256. X   cwp->yearL =     XtVaCreateManagedWidget("yearLabel", 
  1257. X                    labelWidgetClass, card, 
  1258. X                XtNfromVert, cwp->pages,
  1259. X                XtNfromHoriz, cwp->month, NULL);
  1260. X   cwp->year =         XtVaCreateManagedWidget("year", 
  1261. X                   asciiTextWidgetClass, card, 
  1262. X              XtNborderWidth, 2,
  1263. X               XtNstring, cdp->year, 
  1264. X               XtNfromVert, cwp->pages,
  1265. X               XtNfromHoriz, cwp->yearL, NULL);
  1266. X   cwp->noteL =     XtVaCreateManagedWidget("noteLabel", 
  1267. X                      labelWidgetClass, card, 
  1268. X                  XtNfromVert, cwp->month,
  1269. X                 XtNleft, XtChainLeft, NULL);
  1270. X   cwp->note =         XtVaCreateManagedWidget("note",
  1271. X                     asciiTextWidgetClass, card, 
  1272. X                 XtNstring, cdp->note, 
  1273. X                 XtNfromVert, cwp->month,
  1274. X                 XtNfromHoriz, cwp->noteL, NULL);
  1275. }
  1276. X
  1277. /*********************************************************************/
  1278. /* CreateInproceedingsWidgets:                                       */
  1279. /*    Creates widgets for card type inproceedings                    */
  1280. /*********************************************************************/
  1281. static void
  1282. CreateInproceedingsWidgets (BibPtr bp, CardPtr cp)
  1283. {
  1284. X CardWidgetsPtr cwp = &cp->cw->ct.cw;    /* ptr to widget ids */
  1285. X CardDataPtr cdp = cp->cd;        /* ptr to real card data */
  1286. X CardDataPtr cbp = &cp->cw->ct.buf;    /* ptr to text buffers */
  1287. X Widget card = cp->cw->cardFlds;        /* parent widget */
  1288. X
  1289. X   cdp->annoteDisplayed = FALSE;
  1290. X   cdp->annoteChanged = FALSE;
  1291. X   cwp->titleL =     XtVaCreateManagedWidget("titleLabel", 
  1292. X                     labelWidgetClass, card, 
  1293. X                  XtNfromVert, cwp->category, 
  1294. X                 XtNleft, XtChainLeft, NULL);
  1295. X   cwp->title =     XtVaCreateManagedWidget("title", 
  1296. X                    asciiTextWidgetClass, card, 
  1297. X              XtNborderWidth, 2,
  1298. X                XtNstring, cdp->title, 
  1299. X                  XtNfromVert, cwp->category, 
  1300. X                XtNfromHoriz, cwp->titleL, NULL);
  1301. X   cwp->booktitleL =     XtVaCreateManagedWidget("booktitleLabel", 
  1302. X                     labelWidgetClass, card, 
  1303. X                  XtNfromVert, cwp->title, 
  1304. X                 XtNleft, XtChainLeft, NULL);
  1305. X   cwp->booktitle =     XtVaCreateManagedWidget("booktitle", 
  1306. X                    asciiTextWidgetClass, card, 
  1307. X              XtNborderWidth, 2,
  1308. X                XtNstring, cdp->booktitle, 
  1309. X                  XtNfromVert, cwp->title, 
  1310. X                XtNfromHoriz, cwp->booktitleL, NULL);
  1311. X   cwp->authorL =     XtVaCreateManagedWidget("authorLabel", 
  1312. X                      labelWidgetClass, card, 
  1313. X                  XtNfromVert, cwp->booktitle, 
  1314. X                  XtNleft, XtChainLeft, NULL);
  1315. X   cwp->author =     XtVaCreateManagedWidget("author", 
  1316. X                     asciiTextWidgetClass, card, 
  1317. X              XtNborderWidth, 2,
  1318. X                 XtNstring, cdp->author, 
  1319. X                 XtNfromVert, cwp->booktitle, 
  1320. X                 XtNfromHoriz, cwp->authorL, NULL);
  1321. X   cwp->editorL =     XtVaCreateManagedWidget("editorLabel", 
  1322. X                      labelWidgetClass, card, 
  1323. X                  XtNfromVert, cwp->author, 
  1324. X                  XtNleft, XtChainLeft, NULL);
  1325. X   cwp->editor =     XtVaCreateManagedWidget("editor", 
  1326. X                     asciiTextWidgetClass, card, 
  1327. X                 XtNstring, cdp->editor, 
  1328. X                 XtNfromVert, cwp->author, 
  1329. X                 XtNfromHoriz, cwp->editorL, NULL);
  1330. X   cwp->organizationL =    XtVaCreateManagedWidget("organizationLabel", 
  1331. X                      labelWidgetClass, card, 
  1332. X                  XtNfromVert, cwp->editor, 
  1333. X                  XtNleft, XtChainLeft, NULL);
  1334. X   cwp->organization =     XtVaCreateManagedWidget("organization", 
  1335. X                     asciiTextWidgetClass, card, 
  1336. X                 XtNstring, cdp->organization, 
  1337. X                 XtNfromVert, cwp->editor, 
  1338. X                 XtNfromHoriz, cwp->organizationL, NULL);
  1339. X   cwp->publisherL =     XtVaCreateManagedWidget("publisherLabel", 
  1340. X                      labelWidgetClass, card, 
  1341. X                  XtNfromVert, cwp->organization, 
  1342. X                  XtNleft, XtChainLeft, NULL);
  1343. X   cwp->publisher =     XtVaCreateManagedWidget("publisher", 
  1344. X                     asciiTextWidgetClass, card, 
  1345. SHAR_EOF
  1346. true || echo 'restore of gui_card.c failed'
  1347. fi
  1348. echo 'End of  part 15'
  1349. echo 'File gui_card.c is continued in part 16'
  1350. echo 16 > _shar_seq_.tmp
  1351. exit 0
  1352. -- 
  1353. Senior Systems Scientist        mail: dcmartin@msi.com
  1354. Molecular Simulations, Inc.        uucp: uunet!dcmartin
  1355. 796 North Pastoria Avenue        at&t: 408/522-9236
  1356. Sunnyvale, California 94086        fax: 408/732-0831
  1357.