home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / x / volume18 / bibview / part01 < prev    next >
Encoding:
Internet Message Format  |  1992-08-26  |  51.6 KB

  1. Path: uunet!dtix!darwin.sura.net!mips!msi!dcmartin
  2. From: liebla@informatik.tu-muenchen.de (Armin Liebl)
  3. Newsgroups: comp.sources.x
  4. Subject: v18i099: bibview - BibTeX GUI, Part01/20
  5. Message-ID: <csx-18i099-bibview@uunet.UU.NET>
  6. Date: 27 Aug 92 16:12:42 GMT
  7. Sender: dcmartin@msi.com (David C. Martin - Moderator)
  8. Organization: Molecular Simulations, Inc.
  9. Lines: 1649
  10. Approved: dcmartin@msi.com
  11. Originator: dcmartin@fascet
  12.  
  13. Submitted-by: Armin Liebl <liebla@informatik.tu-muenchen.de>
  14. Posting-number: Volume 18, Issue 99
  15. Archive-name: bibview/part01
  16.  
  17. From the README:
  18.  
  19.     The program "bibview" is a graphical interface for manipulating
  20.     BiBTeX databases. It supports the user in making new entries,
  21.     searching for entries and moving entries from one BiB to another.
  22.     It is possible to work with more than one BiB simultaneously. 
  23.     bibview is implemented with Xt and Athena Widgets.
  24.     There are six types of windows in bibview:
  25.     The main window contains menus for customizing bibview and
  26.     for working with BiBs on the file level.
  27.     The bibliography window (one for every open BiB) contains commands
  28.     for manipulating the BiB.
  29.     The list window (at most one for every open BiB) shows a list of
  30.     entries. It displays the fields author, title, type and year.
  31.     The card window (at most one for every entry) helps editing an entry. 
  32.     It contains boxes for each field of the entry (according to the type).
  33.     The fields can be edited by putting the mouse cursor into the field.
  34.     Macros in fields and the symbol for concatenation ('#') are marked
  35.     with a preceding '@'.
  36.  
  37. #!/bin/sh
  38. # This is a shell archive (produced by shar 3.50)
  39. # To extract the files from this archive, save it to a file, remove
  40. # everything above the "!/bin/sh" line above, and type "sh file_name".
  41. #
  42. # made 08/27/1992 16:09 UTC by dcmartin@fascet
  43. # Source directory /home/fascet/dcmartin/csx/src/bibview/bibview
  44. #
  45. # existing files will NOT be overwritten unless -c is specified
  46. #
  47. # This is part 1 of a multipart archive                                    
  48. # do not concatenate these parts, unpack them in order with /bin/sh        
  49. #
  50. # This shar contains:
  51. # length  mode       name
  52. # ------ ---------- ------------------------------------------
  53. #  19072 -rw-r----- BibView
  54. #  24346 -rw-r--r-- ComboBo.c
  55. #   2273 -rw-r--r-- ComboBo.h
  56. #   2925 -rw-r--r-- ComboBoP.h
  57. #  28730 -rw-r--r-- FileNom.c
  58. #   3548 -rw-r--r-- FileNom.h
  59. #   4158 -rw-r--r-- FileNomP.h
  60. #    905 -rw-r----- Imakefile
  61. #  10445 -rw-r----- Makefile
  62. #   7641 -rw-r----- bibview.1
  63. #    577 -rw-r--r-- b.tab.h
  64. #  54434 -rw-r--r-- bib_file.c
  65. #  33489 -rw-r--r-- bib_flex.c
  66. #  17691 -rw-r--r-- bibview.c
  67. #  21014 -rw-r--r-- bibview.h
  68. #   1949 -rw-r----- bibviewrc
  69. #   3296 -rw-r----- bitmaps/bv_crd64
  70. #   3296 -rw-r----- bitmaps/bv_ico64
  71. #   3296 -rw-r----- bitmaps/bv_lst64
  72. #    893 -rw-r----- bitmaps/error32
  73. #    896 -rw-r----- bitmaps/notice32
  74. #    893 -rw-r----- bitmaps/quest32
  75. #    890 -rw-r----- bitmaps/warn32
  76. #    296 -rw-r----- bitmaps/chkmrk16
  77. #   3296 -rw-r----- bitmaps/bv_mac64
  78. #   3296 -rw-r----- bitmaps/bv_ann64
  79. #  75895 -rw-r----- bitmaps/proginfo.xbm
  80. #   3290 -rw-r----- bitmaps/bv_hlp64
  81. #  61288 -rw-r----- bitmaps/proggerm.xbm
  82. #  21466 -rw-r--r-- ctl_card.c
  83. #  11442 -rw-r--r-- ctl_open.c
  84. #   4078 -rw-r--r-- ctl_opt.c
  85. #  22375 -rw-r--r-- ctl_prt.c
  86. #  17577 -rw-r--r-- ctl_save.c
  87. #  17259 -rw-r--r-- ctl_serv.c
  88. #  16389 -rw-r--r-- ctl_srch.c
  89. #  57866 -rw-r--r-- db_tree.c
  90. #   2289 -rw-r--r-- db_tree.h
  91. #  19496 -rw-r--r-- fb_res.h
  92. #   4688 -rw-r----- flexsrc/b.l
  93. #  29693 -rw-r----- flexsrc/b.y
  94. #     91 -rwxr----- flexsrc/cm
  95. #  15414 -rw-r--r-- globdata.c
  96. #  17139 -rw-r--r-- gui_bibl.c
  97. # 111282 -rw-r--r-- gui_card.c
  98. #  16232 -rw-r--r-- gui_edit.c
  99. #  14331 -rw-r--r-- gui_list.c
  100. #   7429 -rw-r--r-- gui_main.c
  101. #  14942 -rw-r--r-- gui_widg.c
  102. #  15379 -rw-r--r-- rc_file.c
  103. #    954 -rw-r----- Copyright
  104. #   1698 -rw-r----- README
  105. #     39 -rw-r--r-- patchlevel.h
  106. #  22478 -rw-r--r-- gui_help.c
  107. #   9408 -rw-r----- Makefile.std
  108. #  20748 -rw-r--r-- fb_ger.h
  109. #   6503 -rw-r----- bibview_ger.1
  110. #  20275 -rw-r----- BibView.ger
  111. #
  112. if test -r _shar_seq_.tmp; then
  113.     echo 'Must unpack archives in sequence!'
  114.     echo Please unpack part `cat _shar_seq_.tmp` next
  115.     exit 1
  116. fi
  117. # ============= BibView ==============
  118. if test -f 'BibView' -a X"$1" != X"-c"; then
  119.     echo 'x - skipping BibView (File already exists)'
  120.     rm -f _shar_wnt_.tmp
  121. else
  122. > _shar_wnt_.tmp
  123. echo 'x - extracting BibView (Text)'
  124. sed 's/^X//' << 'SHAR_EOF' > 'BibView' &&
  125. ! Resource Database for bibView 1.0
  126. ! ---------------------------------
  127. ! Language: English
  128. X
  129. BibView.title:        bibView 1.0 
  130. BibView.iconName:        bibView
  131. BibView*font: *helvetica-bold-r-*-120-*
  132. X
  133. ! For color workstations only
  134. BibView*foreground:            Steelblue
  135. BibView*commandBox*foreground:        SteelBlue
  136. BibView*commandBox*borderColor:        Black
  137. BibView*commandBox*menuLabel.foreground:    SlateBlue
  138. BibView*SimpleMenu*foreground:        SteelBlue
  139. BibView*SimpleMenu*line.foreground:    SlateGrey
  140. X
  141. ! resources for main program window
  142. BibView*mainwin.orientation:        vertical
  143. BibView*mainwin.height:            175
  144. BibView*mainwin.width:            500
  145. BibView*mainwin*showGrip:        false
  146. BibView*mainwin.commandBox.width:     500
  147. BibView*mainwin.commandBox.vSpace:     0
  148. BibView*mainwin.commandBox.hSpace:     0
  149. BibView*mainwin.commandBox.min:     21
  150. X
  151. BibView*mainwin.desktop.label:
  152. BibView*mainwin.desktop.width:       500
  153. BibView*mainwin.desktop.height:        150
  154. BibView*mainwin.desktop.min:        150
  155. BibView*mainwin.desktop.fromVert:      commandBox
  156. X
  157. BibView*mainwin*file.label:        File
  158. BibView*mainwin*file.menuName:        fileMenu
  159. BibView*fileMenu.label:            File Menu
  160. BibView*fileMenu*item1*label:        New
  161. BibView*fileMenu*item2*label:        Open
  162. BibView*fileMenu*item3*label:        Close
  163. BibView*fileMenu*item4*label:        Save
  164. BibView*fileMenu*item5*label:        Save as
  165. BibView*fileMenu*quit*label:        Quit
  166. X
  167. BibView*mainwin*services.label:          Services
  168. BibView*mainwin*services.menuName:    servicesMenu
  169. BibView*servicesMenu.label:        Services Menu
  170. BibView*servicesMenu*item1*label:    Consistency Check    
  171. BibView*servicesMenu*item2*label:    Unify
  172. BibView*servicesMenu*item3*label:    Print
  173. BibView*servicesMenu*item4*label:    Edit Macros
  174. BibView*servicesMenu*item5*label:    Load Configuration
  175. X
  176. BibView*mainwin*options.label:           Options
  177. BibView*mainwin*options.menuName:    optionsMenu
  178. BibView*mainwin*options*leftMargin:     20
  179. BibView*optionsMenu.label:        Options Menu
  180. BibView*optionsMenu*item1*label:    Beep on Error
  181. BibView*optionsMenu*item2*label:    Backup  
  182. BibView*optionsMenu*item3*label:    Icons on Desktop  
  183. BibView*optionsMenu*item4*label:    Autom. Check
  184. BibView*optionsMenu*item5*label:    Required Fields
  185. X
  186. BibView*mainwin*window.label:          Window
  187. BibView*mainwin*window.menuName:    windowMenu
  188. BibView*mainwin*window*leftMargin:     20
  189. BibView*windowMenu.label:        Window Menu
  190. BibView*windowMenu*item1*label:        Cascade
  191. X
  192. BibView*mainwin*help.label:          Help
  193. BibView*mainwin*help.menuName:        helpMenu
  194. BibView*helpMenu.label:            Help Menu
  195. BibView*helpMenu*item1*label:        Survey
  196. BibView*helpMenu*item2*label:        Main Window
  197. BibView*helpMenu*item3*label:        Bibliography Window
  198. BibView*helpMenu*item4*label:        List Window
  199. BibView*helpMenu*item5*label:        Card Window
  200. BibView*helpMenu*item6*label:        Other Windows
  201. BibView*helpMenu*info*label:        Program Info
  202. X
  203. BibView*bibWin.orientation:        vertical
  204. BibView*bibWin.width:            450
  205. BibView*bibWin.height:            350
  206. BibView*bibWin*showGrip:        false
  207. BibView*bibWin*commandBox.width:     450
  208. BibView*bibWin*commandBox.vSpace:     0
  209. BibView*bibWin*commandBox.hSpace:     0
  210. BibView*bibWin*commandBox.min:         21
  211. X
  212. BibView*bibWin*commandBox*new.label:    New
  213. BibView*bibWin*new.menuName:        newMenu
  214. BibView*bibWin*newMenu.label:        New Menu
  215. BibView*bibWin*newMenu*item2*label:    Book
  216. BibView*bibWin*newMenu*item3*label:    Booklet
  217. BibView*bibWin*newMenu*item5*label:    Inbook
  218. BibView*bibWin*newMenu*item6*label:    Incollection
  219. BibView*bibWin*newMenu*item1*label:    Article
  220. BibView*bibWin*newMenu*item4*label:    Conference
  221. BibView*bibWin*newMenu*item12*label:    Proceedings
  222. BibView*bibWin*newMenu*item7*label:    Inproceedings
  223. BibView*bibWin*newMenu*item13*label:    Techreport
  224. BibView*bibWin*newMenu*item9*label:    Mastersthesis
  225. BibView*bibWin*newMenu*item11*label:    Phdthesis
  226. BibView*bibWin*newMenu*item8*label:    Manual
  227. BibView*bibWin*newMenu*item14*label:    Unpublished
  228. BibView*bibWin*newMenu*item10*label:    Misc
  229. X
  230. BibView*bibWin*commandBox*search.label:    Search
  231. BibView*bibWin*commandBox*list.label:    List
  232. BibView*bibWin*commandBox*macro.label:    Macros
  233. BibView*bibWin*commandBox*print.label:    Print
  234. BibView*bibWin*commandBox*save.label:    Save
  235. BibView*bibWin*commandBox*close.label:    Close
  236. X
  237. BibView*bibWin*window.label:        Window
  238. BibView*bibWin*window.menuName:        windowMenu
  239. BibView*bibWin*window*leftMargin:     20
  240. BibView*bibWin*windowMenu.label:    Window Menue
  241. BibView*bibWin*windowMenu*item1.label:    Cascade
  242. X
  243. BibView*bibWin.bibdesk.label:
  244. BibView*bibWin.bibdesk.width:       450
  245. BibView*bibWin.bibdesk.height:        350
  246. BibView*bibWin.bibdesk.min:            350    
  247. BibView*bibWin.bibdesk.fromVert:      commandBox
  248. X
  249. X
  250. ! resources for list windows
  251. ! --------------------------
  252. BibView*listWin*allowShellResize:    true
  253. BibView*listWin*allowResize:        true
  254. BibView*listWin.height:            450
  255. BibView*listWin.width:            530
  256. BibView*listWin*foreground:        Maroon
  257. BibView*listWin.horizDistance:        235
  258. BibView*listWin.vertDistance:        20
  259. BibView*listWin.borderWidth:        2
  260. BibView*listWin.orientation:        vertical
  261. BibView*listWin*showGrip:        false
  262. BibView*listWin.commandBox.vSpace:     0
  263. BibView*listWin.commandBox.hSpace:     0
  264. BibView*listWin.commandBox.min:     21
  265. BibView*listWin.commandBox*print.label:    Print
  266. BibView*listWin.commandBox*save.label:    Save
  267. BibView*listWin.commandBox*quit.label:    Close
  268. BibView*listWin*listVport.fromVert:    commandBox
  269. BibView*listWin*listVport*font:     *fixed-bold-r-*-100-*
  270. BibView*listWin*head1.label:        Author
  271. BibView*listWin*head1.width:        200
  272. BibView*listWin*head2.label:        Title
  273. BibView*listWin*head2.width:        390
  274. BibView*listWin*head3.label:        Type
  275. BibView*listWin*head3.width:        85
  276. BibView*listWin*head4.label:        Year
  277. BibView*listWin*head4.width:        30
  278. BibView*listWin*list.verticalList:    true
  279. BibView*listWin*list.forceColumns:    true
  280. BibView*listWin*list.defaultColumns:    1
  281. X
  282. X
  283. ! resources for edit windows
  284. ! --------------------------
  285. BibView*macWin*allowResize:        true
  286. BibView*macWin.height:            300
  287. BibView*macWin.width:            450
  288. BibView*macWin.borderWidth:        2
  289. BibView*macWin.orientation:        vertical
  290. BibView*macWin*showGrip:        false
  291. BibView*macWin.commandBox.vSpace:     0
  292. BibView*macWin.commandBox.hSpace:     0
  293. BibView*macWin.commandBox.min:     21
  294. BibView*macWin.commandBox*save.label:    Save
  295. BibView*macWin.commandBox*close.label:    Close
  296. BibView*macText.fromVert:        commandBox
  297. BibView*macText*font:             *fixed-bold-r-*-100-*
  298. BibView*macText*textSource.editType:    edit
  299. BibView*macText*input:             true
  300. X
  301. ! resources for help windows
  302. ! --------------------------
  303. BibView*helpWin*allowResize:        true
  304. BibView*helpWin.height:            300
  305. BibView*helpWin.width:            500
  306. BibView*helpWin.borderWidth:        2
  307. BibView*helpWin.orientation:        vertical
  308. BibView*helpWin*showGrip:        false
  309. BibView*helpWin.commandBox.vSpace:     0
  310. BibView*helpWin.commandBox.hSpace:     0
  311. BibView*helpWin.commandBox.min:     21
  312. BibView*helpWin.commandBox*close.label:    Close
  313. BibView*helpText.fromVert:        commandBox
  314. BibView*helpText*font:             *fixed-bold-r-*-120-*
  315. BibView*helpText*input:         true
  316. X
  317. ! resources for annote windows
  318. ! --------------------------
  319. BibView*annoteWin*allowResize:        true
  320. BibView*annoteWin.height:        300
  321. BibView*annoteWin.width:        500
  322. BibView*annoteWin.borderWidth:        2
  323. BibView*annoteWin.orientation:        vertical
  324. BibView*annoteWin*showGrip:        false
  325. BibView*annoteWin.commandBox.vSpace:     0
  326. BibView*annoteWin.commandBox.hSpace:     0
  327. BibView*annoteWin.commandBox.min:     21
  328. BibView*annoteWin.commandBox*close.label:    Close
  329. BibView*annoteWin.commandBox*save.label:    Save
  330. BibView*annoteText.fromVert:        commandBox
  331. BibView*annoteText*font:         *fixed-bold-r-*-120-*
  332. BibView*annoteText*input:         true
  333. X
  334. ! resources for search windows
  335. ! ----------------------------
  336. BibView*srchShell.title:        Search
  337. BibView*srchWin.height:            400
  338. BibView*srchWin.width:            380
  339. BibView*srchWin.borderWidth:        2
  340. BibView*srchWin.orientation:        vertical
  341. BibView*srchWin*showGrip:        false
  342. BibView*srchWin.commandBox.vSpace:     0
  343. BibView*srchWin.commandBox.hSpace:     0
  344. BibView*srchWin.commandBox.min:     21
  345. BibView*srchWin.commandBox*ok.label:    Start search
  346. BibView*srchWin.commandBox*cancel.label:Cancel
  347. BibView*srchWin*srchFlds*borderwidth:    0
  348. BibView*srchWin*srchFlds*vSpace:    0
  349. BibView*srchWin*srchFlds*font:         *helvetica-bold-r-*-100-*
  350. BibView*srchWin*ComboBox.borderWidth:    0
  351. BibView*srchWin*ComboBox.margin:    4
  352. BibView*srchWin*ComboBox*Text.width:    250
  353. BibView*srchWin*ComboBox*Toggle.width:    100
  354. BibView*srchWin*ComboBox*Toggle.justify:left
  355. BibView*srchWin*ComboBox*Viewport.borderWidth:    4
  356. BibView*srchWin*ComboBox*Viewport.width:    300
  357. BibView*srchWin*ComboBox*Viewport.height:    100
  358. BibView*srchWin*cbTitle*name:        Title:
  359. BibView*srchWin*cbAuthor*name:        Author:
  360. BibView*srchWin*cbCategory*name:    Category:
  361. BibView*srchWin*cbMonth*name:        Month:
  362. BibView*srchWin*cbYear*name:        Year:
  363. BibView*srchWin*cbNote*name:        Note:
  364. BibView*srchWin*cbAnnote*name:        Annote:
  365. BibView*srchWin*cbJournal*name:        Journal:
  366. BibView*srchWin*cbEditor*name:        Editor:
  367. BibView*srchWin*cbOrganization*name:    Organization:
  368. BibView*srchWin*cbInstitution*name:    Institution:
  369. BibView*srchWin*cbPublisher*name:    Publisher:
  370. BibView*srchWin*cbSchool*name:        School:
  371. BibView*srchWin*cbAddress*name:        Address:
  372. BibView*srchWin*cbEdition*name:        Edition:
  373. BibView*srchWin*cbChapter*name:        Chapter:
  374. BibView*srchWin*cbSeries*name:        Series:
  375. BibView*srchWin*cbPages*name:        Pages:
  376. BibView*srchWin*cbVolume*name:        Volume:
  377. BibView*srchWin*cbNumber*name:        Number:
  378. BibView*srchWin*cbBooktitle*name:    Booktitle:
  379. BibView*srchWin*cbHowpublished*name:    Howpublished:
  380. BibView*srchWin*cbType*name:        Type:
  381. BibView*srchWin*cbKey*name:        Key:
  382. BibView*srchWin*cbMainkey*name:        bibTeX Key:
  383. BibView*srchWin*cbCrossref*name:    Crossref:
  384. X
  385. X
  386. ! resources for card windows
  387. ! --------------------------
  388. BibView*cardShell.allowShellResize:    true
  389. BibView*cardWin*Text*scrollHorizontal:    whenNeeded
  390. BibView*cardWin*Text*scrollVertical:    whenNeeded
  391. BibView*cardWin*Text*thickness:        8
  392. BibView*cardWin*Text.height:        28
  393. BibView*cardWin*Text*textSource.editType:    edit
  394. BibView*cardWin*Text*input:         true
  395. BibView*cardWin*Label*justify:        left
  396. X
  397. BibView*cardWin.width:            400
  398. BibView*cardWin.borderWidth:        2
  399. BibView*cardWin.commandBox.showGrip:    false
  400. BibView*cardWin.commandBox.width:     400
  401. BibView*cardWin.commandBox.vSpace:     0
  402. BibView*cardWin.commandBox.hSpace:     0
  403. BibView*cardWin.commandBox.min:     21
  404. BibView*cardWin.commandBox.skipAdjust:     true
  405. BibView*cardWin.commandBox*userDef.label:    User Data
  406. BibView*cardWin.commandBox*save.label:        Save
  407. BibView*cardWin.commandBox*annote.label:    Annote
  408. BibView*cardWin.commandBox*change.label:    Change
  409. BibView*cardWin.commandBox*delete.label:    Delete
  410. BibView*cardWin.commandBox*copy.label:        Copy
  411. BibView*cardWin.commandBox*quit.label:        Close
  412. X
  413. BibView*cardWin.userFldVport*font:     *helvetica-bold-r-*-100-*
  414. BibView*cardWin.userFldVport.allowResize: true
  415. BibView*cardWin.userFldVport.min:    100
  416. BibView*cardWin.userFldVport.max:    150
  417. BibView*cardWin*userFieldL.width:    150
  418. BibView*cardWin*userField.width:    225
  419. BibView*cardWin*userFldHead.label:    Userdefined Fields
  420. BibView*cardWin*userFldHead.width:    380
  421. BibView*cardWin*userFldHead.borderWidth:    2
  422. BibView*cardWin*userFldHead.justify:    center
  423. X
  424. ! general resources for all card types
  425. BibView*cardWin.carddesk*font:         *helvetica-bold-r-*-100-*
  426. BibView*cardWin.carddesk*Label*borderWidth:    0
  427. BibView*cardWin.carddesk.defaultDistance:    0
  428. X
  429. ! card window field resources
  430. BibView*cardWin.carddesk*mainkeyLabel.label:    BibTeX Key:
  431. BibView*cardWin.carddesk*mainkey.width:            110
  432. BibView*cardWin.carddesk*crossrefLabel.label:    Crossref:
  433. BibView*cardWin.carddesk*crossref.width:         148
  434. BibView*cardWin.carddesk*addressLabel.label:    Address:
  435. BibView*cardWin.carddesk*address.width:            300
  436. BibView*cardWin.carddesk*address.height:        40
  437. BibView*cardWin.carddesk*annoteLabel.label:    Annote:
  438. BibView*cardWin.carddesk*annote.width:        325
  439. BibView*cardWin.carddesk*annote.height:        60
  440. BibView*cardWin.carddesk*authorLabel.label:    Author:
  441. BibView*cardWin.carddesk*author.width:        355
  442. BibView*cardWin.carddesk*author.height:        30
  443. BibView*cardWin.carddesk*booktitleLabel.label:    Booktitle:
  444. BibView*cardWin.carddesk*booktitle.width:    340
  445. BibView*cardWin.carddesk*categoryLabel.label:    Category:
  446. BibView*cardWin.carddesk*category.width:    133
  447. BibView*cardWin.carddesk*chapterLabel.label:    Chapter:
  448. BibView*cardWin.carddesk*chapter.width:        350
  449. BibView*cardWin.carddesk*editionLabel.label:    Edition:
  450. BibView*cardWin.carddesk*editorLabel.label:    Editor:
  451. BibView*cardWin.carddesk*editor.width:        320
  452. BibView*cardWin.carddesk*editor.height:        30
  453. BibView*cardWin.carddesk*howpublishedLabel.label:    Howpublished:
  454. BibView*cardWin.carddesk*howpublished.width:    275
  455. BibView*cardWin.carddesk*institutionLabel.label:    Institution:
  456. BibView*cardWin.carddesk*institutionLabel.width:    60
  457. BibView*cardWin.carddesk*institution.width:    334
  458. BibView*cardWin.carddesk*journalLabel.label:    Journal:
  459. BibView*cardWin.carddesk*journal.width:        345
  460. BibView*cardWin.carddesk*keyLabel.label:    Key:
  461. BibView*cardWin.carddesk*monthLabel.label:    Month:
  462. BibView*cardWin.carddesk*month.width:        210
  463. BibView*cardWin.carddesk*noteLabel.label:    Note:
  464. BibView*cardWin.carddesk*note.width:        345
  465. BibView*cardWin.carddesk*note.height:        60
  466. BibView*cardWin.carddesk*numberLabel.label:    Number.:
  467. BibView*cardWin.carddesk*number.width:        145
  468. BibView*cardWin.carddesk*organizationLabel.label:    Organization:
  469. BibView*cardWin.carddesk*organization.width:    317
  470. BibView*cardWin.carddesk*pagesLabel.label:    Pages:
  471. BibView*cardWin.carddesk*pages.width:        80
  472. BibView*cardWin.carddesk*publisherLabel.label:    Publisher:
  473. BibView*cardWin.carddesk*publisher.width:    350
  474. BibView*cardWin.carddesk*publisher.height:    30
  475. BibView*cardWin.carddesk*schoolLabel.label:    School:
  476. BibView*cardWin.carddesk*school.width:      315
  477. BibView*cardWin.carddesk*seriesLabel.label:    Series:
  478. BibView*cardWin.carddesk*series.width:      335
  479. BibView*cardWin.carddesk*titleLabel.label:    Title:
  480. BibView*cardWin.carddesk*title.width:        360
  481. BibView*cardWin.carddesk*title.height:        40
  482. BibView*cardWin.carddesk*typeLabel.label:    Type:
  483. BibView*cardWin.carddesk*type.width:        365
  484. BibView*cardWin.carddesk*volumeLabel.label:    Volume:
  485. BibView*cardWin.carddesk*volume.width:        115
  486. BibView*cardWin.carddesk*yearLabel.label:    Year:
  487. X
  488. ! resources for individual card types
  489. BibView*cardWin*article.borderWidth:        0
  490. BibView*cardWin*book.borderWidth:        0
  491. BibView*cardWin*booklet.borderWidth:        0
  492. BibView*cardWin*conference.borderWidth:        0
  493. BibView*cardWin*inbook.borderWidth:        0
  494. BibView*cardWin*incollection.borderWidth:    0
  495. BibView*cardWin*inproceedings.borderWidth:    0
  496. BibView*cardWin*manual.borderWidth:        0
  497. BibView*cardWin*masterthesis.borderWidth:    0
  498. BibView*cardWin*misc.borderWidth:        0
  499. BibView*cardWin*phdthesis.borderWidth:        0
  500. BibView*cardWin*proceedings.borderWidth:    0
  501. BibView*cardWin*techreport.borderWidth:        0
  502. BibView*cardWin*unpublished.borderWidth:    0
  503. X
  504. X
  505. ! confirm load box resources
  506. ! --------------------------
  507. BibView*confirmLoadShell.title:        Load?
  508. BibView*confirmLoadBox.label:     File is loaded.\nTake saved version?    
  509. BibView*confirmLoadBox*ok.label:    OK
  510. BibView*confirmLoadBox*cancel.label:    Cancel
  511. X
  512. X
  513. ! confirm close bib box resources
  514. ! -------------------------------
  515. BibView*confirmBibQuitShell.title:    Close Bibliography?
  516. BibView*confirmBibQuitBox.label:  There are unsaved changes!\nDo you really want to quit?",
  517. BibView*confirmBibQuitBox*ok.label:    Quit
  518. BibView*confirmBibQuitBox*cancel.label:    First Save
  519. X
  520. X
  521. ! confirm close card box resources
  522. ! --------------------------------
  523. BibView*confirmQuitCardShell.title:    Close Card?
  524. BibView*confirmQuitCardBox.label:    REALLY close without saving?
  525. BibView*confirmQuitCardBox*ok.label:    Close
  526. BibView*confirmQuitCardBox*cancel.label:    First Save
  527. X
  528. X
  529. ! confirm close macros box resources
  530. ! ----------------------------------
  531. BibView*confirmMacQuitShell.title:    Close Macros?
  532. BibView*confirmMacQuitBox.label:    Macros were changed!\nSave or quit?
  533. BibView*confirmMacQuitBox*save.label:    Save
  534. BibView*confirmMacQuitBox*quit.label:    Quit
  535. X
  536. X
  537. ! file select box resources
  538. ! -------------------------
  539. BibView*fileSelectBoxShell.title:    BibView file manager
  540. BibView*fileSelectBoxShell.iconName:    BibView file manager
  541. BibView*fileLoadHead.label:        Choose bibTeX file:
  542. BibView*fileRenameHead.label:        rename bibTeX file:
  543. BibView*filePrintHead.label:        LaTeX file:
  544. BibView*configLoadHead.label:        configuration file:
  545. BibView*fileListSaveHead.label:        save list as bibTeX file:
  546. X
  547. X
  548. ! bibtex file select box resources
  549. ! --------------------------------
  550. BibView*bibselShell.title:        BibView file selection
  551. BibView*bibselWin*closeHead.label:    Close
  552. BibView*bibselWin*saveHead.label:    Save
  553. BibView*bibselWin*saveAsHead.label:     Save as    
  554. BibView*bibselWin*copyHead.label:    Copy to
  555. BibView*bibselWin*collSrcHead.label:    Take entries from
  556. BibView*bibselWin*collDestHead.label:    Insert into
  557. BibView*bibselWin*checkHead.label:    Check
  558. BibView*bibselWin*printHead.label:    Print
  559. BibView*bibselWin*macroHead.label:    Edit Macros
  560. BibView*bibselWin*cancel.label:        Cancel
  561. X
  562. X
  563. X
  564. ! notice, warning, error resources
  565. ! --------------------------------
  566. BibView*errorShell.title:    BibView Message
  567. BibView*errorWin*type.label:    ERROR:
  568. BibView*errorWin*type.foreground: red
  569. BibView*errorWin*ok.label:    OK
  570. BibView*errorIcon*foreground:    red
  571. X
  572. BibView*warnShell.title:    BibView Message
  573. BibView*warnWin*type.label:    WARNING:
  574. BibView*warnWin*type.foreground:    red
  575. BibView*warnWin*ok.label:    OK
  576. BibView*warnIcon*foreground:    red
  577. X
  578. BibView*noticeShell.title:    BibView Message
  579. BibView*noticeWin*type.label:    HINT:
  580. BibView*noticeWin*type.foreground: blue
  581. BibView*noticeWin*ok.label:    OK
  582. BibView*noticeIcon*foreground:    blue
  583. X
  584. BibView*msgText10.label:  Not yet implemented.
  585. BibView*msgText11.label:  No storage!
  586. BibView*msgText12.label:  No BibTeX file!
  587. BibView*msgText14.label:  No BibTeX file open.
  588. BibView*msgText15.label:  File cannot be unified.
  589. BibView*msgText16.label:  Card cannot be copied.
  590. BibView*msgText30.label:  Windows can't be cascaded!
  591. BibView*msgText50.label:  File can't be opened!
  592. BibView*msgText51.label:  No configuration file.
  593. BibView*msgText52.label:  Tempory file can't be opened!
  594. BibView*msgText53.label:  Macros can't be saved!
  595. BibView*msgText54.label:  Please close Error Window!
  596. BibView*msgText60.label:  There are inconsistencies.\nThe cards are shown in List.
  597. BibView*msgText61.label:  No inconsistencies.
  598. BibView*msgText62.label:  There are syntactic problems.\n Please correct error and load again.
  599. BibView*msgText63.label:  Some required fields are not entered.\nThe entry was saved.",
  600. BibView*msgText100.label: Double Keys are not allowed.\nCard in Tree.
  601. BibView*msgText101.label: No regular expression.
  602. BibView*msgText102.label: No entries found in file.
  603. BibView*msgText104.label: Card incomplete: no Author.
  604. BibView*msgText105.label: Card incomplete: no Title.
  605. BibView*msgText106.label: Card incomplete: no Journal.
  606. BibView*msgText107.label: Card incomplete: no Year.
  607. BibView*msgText108.label: Card incomplete: no Publisher.
  608. BibView*msgText109.label: Card incomplete: no Booktitle.
  609. BibView*msgText110.label: Card incomplete: no Chapter.
  610. BibView*msgText111.label: Card incomplete: no School.
  611. BibView*msgText112.label: Card incomplete: no Institution.
  612. BibView*msgText113.label: Card incomplete: no Note.
  613. BibView*msgText114.label: Card incomplete: no Author or Editor.
  614. BibView*msgText115.label: Card incomplete: kein Kapitel und/oder Seitenzahl angegeben.
  615. BibView*msgText120.label: No further files loadable.\nFirst close.
  616. BibView*msgText121.label: Internal Error: Nr. 121
  617. X
  618. X
  619. SHAR_EOF
  620. chmod 0640 BibView ||
  621. echo 'restore of BibView failed'
  622. Wc_c="`wc -c < 'BibView'`"
  623. test 19072 -eq "$Wc_c" ||
  624.     echo 'BibView: original size 19072, current size' "$Wc_c"
  625. rm -f _shar_wnt_.tmp
  626. fi
  627. # ============= ComboBo.c ==============
  628. if test -f 'ComboBo.c' -a X"$1" != X"-c"; then
  629.     echo 'x - skipping ComboBo.c (File already exists)'
  630.     rm -f _shar_wnt_.tmp
  631. else
  632. > _shar_wnt_.tmp
  633. echo 'x - extracting ComboBo.c (Text)'
  634. sed 's/^X//' << 'SHAR_EOF' > 'ComboBo.c' &&
  635. /*********************************************************************/
  636. /*  bibView: Administration of bibTex-Databases                      */
  637. /*           (Verwaltung von bibTeX-Literaturdatenbanken)            */
  638. /*                                                                   */
  639. /*  Module:  ComboBo.c                                               */
  640. /*                                                                   */
  641. /*             - Combo Box Widget                                    */
  642. /*               Text widget with selection list                     */
  643. /*                                                                   */
  644. /*  Author:  Holger Martin,  martinh@informatik.tu-muenchen.de       */
  645. /*           Peter M. Urban, urban@informatik.tu-muenchen.de         */
  646. /*                                                                   */
  647. /*  History:                                                         */
  648. /*    11.22.91  HM   created                                         */
  649. /*    05.26.92       Version 1.0 released                            */
  650. /*                                                                   */
  651. /*  Copyright 1992 TU MUENCHEN                          */
  652. /*    See ./Copyright for complete rights and liability information. */
  653. /*                                                                   */
  654. /*********************************************************************/
  655. X
  656. #define debprintf(x) 
  657. X
  658. #include <X11/IntrinsicP.h>    
  659. #include <X11/StringDefs.h>    
  660. #include <X11/Xaw/MenuButton.h>
  661. #include <X11/Xaw/SimpleMenu.h>
  662. #include <X11/Xaw/SmeBSB.h>
  663. #include <X11/Xaw/Viewport.h>
  664. #include <X11/Xaw/Label.h>
  665. #include <X11/Xaw/List.h>
  666. #include <X11/Xaw/Scrollbar.h>
  667. #include <X11/ShellP.h>
  668. #include <X11/Xaw/Toggle.h>
  669. #include <X11/Xaw/AsciiText.h>
  670. #include <X11/Xaw/Command.h>
  671. #include <X11/Xos.h>
  672. #include <sys/stat.h>
  673. #include <sys/param.h>
  674. #include <errno.h>
  675. X
  676. #ifndef HAVE_DIR
  677. #include <dirent.h>
  678. #else
  679. #include <sys/dir.h>
  680. #define dirent direct
  681. #endif
  682. X
  683. #include <stdio.h>
  684. X
  685. extern char *getenv();
  686. X
  687. #include "ComboBoP.h"
  688. X
  689. #define Offset(field) XtOffsetOf(ComboBoxRec, comboBox.field)
  690. X
  691. static XtResource resources[] = {
  692. X    {XtNselectCallback, XtCCallback, XtRCallback, sizeof(XtCallbackList),
  693. X     Offset(select_callback), XtRCallback, (XtPointer) NULL},
  694. X    {XtNselectMenu, XtCSelectMenu, XtRString, sizeof(String),
  695. X     Offset(select_menu), XtRString, (XtPointer) NULL},
  696. X    {XtNcancelCallback, XtCCallback, XtRCallback, sizeof(XtCallbackList),
  697. X     Offset(cancel_callback), XtRCallback, (XtPointer) NULL},
  698. X    {XtNmargin, XtCMargin, XtRDimension, sizeof(Dimension),
  699. X     Offset(margin), XtRImmediate, (XtPointer) 10},
  700. X    {XtNnumberRows, XtCNumberStrings, XtRInt, sizeof(int),
  701. X     Offset(number_rows), XtRImmediate, (XtPointer) 3},
  702. X    {XtNshowDotFiles, XtCShowDotFiles, XtRBoolean, sizeof(Boolean),
  703. X     Offset(show_dot_files), XtRImmediate, (XtPointer) True},
  704. X    {XtNbellLevel, XtCBellLevel, XtRInt, sizeof(int),
  705. X     Offset(bell_level), XtRImmediate, (XtPointer) 100},
  706. X    {XtNname, XtCName, XtRString, sizeof(String),    /* NEU */
  707. X     Offset(name), XtRString, NULL},
  708. X    {XtNrcList, XtCRcList, XtRString, sizeof(String),    /* NEU */
  709. X     Offset(rclist), XtRString, NULL},
  710. };
  711. X
  712. X
  713. X
  714. #undef Offset
  715. X
  716. #define Child(w,child) (((ComboBoxWidget) w)->comboBox.child)
  717. #define List(w) (((ComboBoxWidget) w)->comboBox.listList)
  718. #define Rows(w) (((ComboBoxWidget) w)->comboBox.number_rows)
  719. #define CurrentDir(w) (((ComboBoxWidget) w)->comboBox.currentDir)
  720. #define WatchingChanges(w) (((ComboBoxWidget) w)->comboBox.watchingChanges)
  721. #define Nomination(w) (((ComboBoxWidget) w)->comboBox.nomination)
  722. #define ShowDotFiles(w) (((ComboBoxWidget) w)->comboBox.show_dot_files)
  723. #define BellLevel(w) (((ComboBoxWidget) w)->comboBox.bell_level)
  724. #define Name(w) (((ComboBoxWidget) w)->comboBox.name)
  725. #define RcList(w) (((ComboBoxWidget) w)->comboBox.rclist)
  726. X
  727. X
  728. static char listTranslations[] =
  729. X    "<Btn1Up>(2):         Set() Nominate() Unset()\n\
  730. X     <Btn1Down>,<Btn1Up>: Set() Notify() \n\
  731. X     <Btn2Up>:            Set() Notify() Nominate() Unset()";
  732. X
  733. static char filenameTranslations[] =
  734. X     "<Key>Return:  ";
  735. X
  736. static void Nominate();
  737. X
  738. static XtActionsRec pathActions[] = {
  739. X    "Nominate", Nominate,
  740. };
  741. X
  742. static void                     CancelCallback();
  743. static void                     ChangeDir();
  744. static void                     FillWindow();
  745. static void                     ReplaceFilename();
  746. static void                     AsciiSourceChanged();
  747. static void                     WatchForChanges();
  748. static void                     DontWatchForChanges();
  749. static void                     CollapsePath();
  750. X
  751. static void Initialize(), PositionChildren(), Realize(), Destroy();
  752. static void ToggleAction();  /* NEU */
  753. static void DestroyShell();
  754. X
  755. ComboBoxClassRec comboBoxClassRec = {
  756. X    /* Core class part */
  757. X  {
  758. X    /* superclass         */    (WidgetClass) &widgetClassRec,
  759. X    /* class_name         */ "ComboBox",
  760. X    /* widget_size         */ sizeof(ComboBoxRec),
  761. X    /* class_initialize      */ NULL,
  762. X    /* class_part_initialize */ NULL,
  763. X    /* class_inited          */    FALSE,
  764. X    /* initialize         */    Initialize,
  765. X    /* initialize_hook       */    NULL,
  766. X    /* realize             */    Realize,
  767. X    /* actions             */    NULL,
  768. X    /* num_actions         */    0,
  769. X    /* resources         */    resources,
  770. X    /* num_resources         */    XtNumber(resources),
  771. X    /* xrm_class         */    NULLQUARK,
  772. X    /* compress_motion         */    TRUE,
  773. X    /* compress_exposure     */    XtExposeCompressMultiple,
  774. X    /* compress_enterleave   */    TRUE,
  775. X    /* visible_interest         */    FALSE,
  776. X    /* destroy             */ Destroy,
  777. X    /* resize             */    PositionChildren,
  778. X    /* expose             */    NULL,
  779. X    /* set_values         */    NULL,
  780. X    /* set_values_hook       */    NULL,            
  781. X    /* set_values_almost     */    XtInheritSetValuesAlmost,  
  782. X    /* get_values_hook       */    NULL,
  783. X    /* accept_focus         */    NULL,
  784. X    /* version             */    XtVersion,
  785. X    /* callback offsets      */    NULL,
  786. X    /* tm_table              */    NULL,
  787. X    /* query_geometry         */    XtInheritQueryGeometry,
  788. X    /* display_accelerator   */    NULL,
  789. X    /* extension         */    NULL,
  790. X  },
  791. X   /* ComboBox class part */
  792. X  {
  793. X    /* extension         */    NULL,
  794. X  }
  795. };
  796. X
  797. WidgetClass comboBoxWidgetClass = (WidgetClass) &comboBoxClassRec;
  798. X
  799. X
  800. #define MAX_AUSGABE   1000
  801. static char *ausgabe;    /* fuer ComboBoGetString */
  802. X
  803. X
  804. static void
  805. CalculateSize(fnw, width, height)
  806. X    ComboBoxWidget fnw;
  807. X    Dimension *width, *height;
  808. {
  809. X    int file_width = Child(fnw,filename_widget)->core.width +
  810. X    2 * Child(fnw,filename_widget)->core.border_width +
  811. X        fnw->comboBox.margin +                               /* NEU */
  812. X        Child(fnw,name_widget)->core.width +
  813. X    2 * Child(fnw,name_widget)->core.border_width;       
  814. X
  815. X
  816. X    int max;
  817. X
  818. X    if (fnw->comboBox.margin == 0)
  819. X    {
  820. X      max =  file_width - 2 * Child(fnw,filename_widget)->core.border_width;
  821. X    }
  822. X    else
  823. X    {
  824. X      max = file_width;
  825. X    }
  826. X
  827. X    *width = max + 2 * fnw->comboBox.margin;
  828. /*
  829. X    *height = Child(fnw,viewport_widget)->core.height +
  830. X        Child(fnw,filename_widget)->core.height +
  831. X            3 * fnw->comboBox.margin;
  832. */
  833. X    *height = Child(fnw,filename_widget)->core.height +
  834. X            2 * fnw->comboBox.margin + 
  835. X            2 * Child(fnw,filename_widget)->core.border_width; 
  836. /*
  837. X    if (fnw->comboBox.margin == 0)
  838. X    {
  839. X    *height += 2 * (Child(fnw,filename_widget)->core.border_width);
  840. X    }
  841. X    else
  842. X    {
  843. X    *height += 2 * Child(fnw,filename_widget)->core.border_width +
  844. X           2 * Child(fnw,viewport_widget)->core.border_width; 
  845. X    }
  846. */
  847. }
  848. X
  849. static void
  850. PositionChildren(fnw)
  851. X    ComboBoxWidget fnw;
  852. {
  853. X   Position x,y,root_x,root_y;
  854. X
  855. X    if (fnw->comboBox.margin == 0)
  856. X    {
  857. X    XtConfigureWidget(Child(fnw,name_widget),    /* NEU */
  858. X              0, 0,
  859. X              fnw->core.width,
  860. X              fnw->core.height,
  861. X              0);
  862. X    }
  863. X    else           /* NEU */
  864. X    {
  865. X          XtConfigureWidget(Child(fnw,name_widget),
  866. X              fnw->comboBox.margin,
  867. X              fnw->comboBox.margin,
  868. X                  fnw->core.width -
  869. X                      3 * fnw->comboBox.margin -
  870. X                      2 * Child(fnw,name_widget)->core.border_width -
  871. X              Child(fnw,filename_widget)->core.width -
  872. X                      2 * Child(fnw,filename_widget)->core.border_width, 
  873. X              fnw->core.height -
  874. X              2 * Child(fnw,name_widget)->core.border_width -
  875. X              2 * fnw->comboBox.margin,
  876. X              Child(fnw,name_widget)->core.border_width);
  877. X      }
  878. X    
  879. X    if (fnw->comboBox.margin == 0)
  880. X    {
  881. X    XtConfigureWidget(Child(fnw,filename_widget),
  882. X              -(Child(fnw,filename_widget)->core.border_width),
  883. X              fnw->core.height,
  884. X              fnw->core.width,
  885. X              Child(fnw,filename_widget)->core.height,
  886. X              Child(fnw,filename_widget)->core.border_width);
  887. X    }
  888. X    else
  889. X    {
  890. X          XtConfigureWidget(Child(fnw,filename_widget),
  891. X              Child(fnw,name_widget)->core.width +
  892. X              Child(fnw,name_widget)->core.border_width +
  893. X                      2 * fnw->comboBox.margin,
  894. X              fnw->comboBox.margin,
  895. X                  fnw->core.width -
  896. X                      3 * fnw->comboBox.margin -
  897. X                      Child(fnw,name_widget)->core.width -
  898. X                      2 * Child(fnw,name_widget)->core.border_width -
  899. X                      2 * Child(fnw,filename_widget)->core.border_width,
  900. X              fnw->core.height -
  901. X              2 * Child(fnw,filename_widget)->core.border_width -
  902. X              2 * fnw->comboBox.margin,
  903. X              Child(fnw,filename_widget)->core.border_width);
  904. X      }
  905. /*
  906. X    if (fnw->comboBox.margin == 0)
  907. X    {
  908. X    XtConfigureWidget(Child(fnw,viewport_widget),
  909. X              -(Child(fnw,viewport_widget)->core.border_width),
  910. X              Child(fnw,filename_widget)->core.height,
  911. X              fnw->core.width,
  912. X              Child(fnw,viewport_widget)->core.height,
  913. X              Child(fnw,viewport_widget)->core.border_width);
  914. X    }
  915. X    else
  916. X    {
  917. X    XtConfigureWidget(Child(fnw,viewport_widget),
  918. X                          fnw->comboBox.margin,
  919. X              fnw->core.height -
  920. X              Child(fnw,viewport_widget)->core.height -
  921. X              2 * Child(fnw,viewport_widget)->core.border_width -
  922. X              1 * fnw->comboBox.margin,
  923. X              fnw->core.width -
  924. X              2 * fnw->comboBox.margin -
  925. X              2 * Child(fnw,viewport_widget)->core.border_width,
  926. X              Child(fnw,viewport_widget)->core.height,
  927. X              Child(fnw,viewport_widget)->core.border_width);
  928. X    }
  929. X     XtVaGetValues(Child(fnw,name_widget), XtNx, &x, NULL);
  930. X     XtVaGetValues(Child(fnw,name_widget), XtNy, &y, NULL);
  931. X     y += fnw->comboBox.margin;
  932. X     debprintf("X: %d\n",(int)x);
  933. X     debprintf("Y: %d\n",(int)y);
  934. X     XtTranslateCoords(Child(fnw,name_widget), x, y, &root_x, &root_y);
  935. X     debprintf("ROOTX: %d\n",(int)root_x);
  936. X     debprintf("ROOTY: %d\n",(int)root_y);
  937. X     XtMoveWidget(Child(fnw,shell_widget), root_x, root_y);
  938. */
  939. }
  940. X
  941. /****************/
  942. /* ToggleAction */
  943. /****************/
  944. static void ToggleAction(widget, clientData, callData)
  945. Widget widget;
  946. XXtPointer clientData, callData;
  947. {
  948. X   ComboBoxWidget hw;
  949. X   Position x,y,root_x,root_y;
  950. X   Boolean status;
  951. X   String  str1, str2;
  952. X
  953. X
  954. X   x = 0;
  955. X   y = 0;
  956. X   hw = (ComboBoxWidget)XtParent(widget);
  957. X   if (hw->comboBox.rclist == NULL) {
  958. X      XawToggleUnsetCurrent(Child(hw,name_widget));
  959. X      return;
  960. X   }
  961. X
  962. X   XtVaGetValues(Child(hw,name_widget), XtNstate, &status, NULL);
  963. X   if (status == TRUE)
  964. X     debprintf("Toggle: XtNstate: TRUE\n");
  965. X   else
  966. X     debprintf("Toggle: XtNstate: FALSE\n");
  967. X   if (status == TRUE) {
  968. X     debprintf("GetToggle: TRUE !!!\n");
  969. X     XtVaGetValues(widget, XtNx, &x, NULL);
  970. X     XtVaGetValues(widget, XtNy, &y, NULL);
  971. X     y += (((ComboBoxWidget) hw)->comboBox.margin);
  972. X     XtTranslateCoords(widget, x, y, &root_x, &root_y);
  973. X     XtMoveWidget(Child(hw,shell_widget), root_x+40, root_y+10);
  974. /*
  975. X     XtConfigureWidget(Child(hw,shell_widget),    
  976. X              root_x, root_y,
  977. X              hw->core.width,
  978. X              hw->core.height,
  979. X              0);
  980. */
  981. X     XtPopup(Child(hw,shell_widget), XtGrabNone);
  982. X   }
  983. X   else {
  984. X     debprintf("GetToggle: FALSE !!!\n");
  985. X     XtPopdown(Child(hw,shell_widget));
  986. X   }
  987. }
  988. X
  989. X
  990. X
  991. /* ARGSUSED */
  992. static void
  993. Initialize(req, new, args, num_args)
  994. X    Widget req, new;
  995. X    ArgList args;
  996. X    Cardinal *num_args;
  997. {
  998. X    ComboBoxWidget fnw = (ComboBoxWidget) new;
  999. X    Widget sMenu, menuEntry;
  1000. X    String menuList, p, q;
  1001. X    RcListNode *testlist;
  1002. X    int anzahl;
  1003. X
  1004. X
  1005. X    List(new) = NULL;
  1006. X    Nomination(new).directoryPart = NULL;
  1007. X    Nomination(new).filenamePart = NULL;
  1008. X    ausgabe = XtCalloc(1, MAX_AUSGABE);
  1009. /*
  1010. #ifdef SYSV
  1011. X    (void) getcwd(CurrentDir(new), MAXPATHLEN);
  1012. #else    
  1013. X    (void) getwd(CurrentDir(new));
  1014. #endif
  1015. X    if (CurrentDir(new)[strlen(CurrentDir(new)) - 1] != '/')
  1016. X    {
  1017. X    strcat(CurrentDir(new), "/");
  1018. X    }
  1019. */
  1020. X    WatchingChanges(new) = False;
  1021. X
  1022. X    if (fnw->comboBox.name == NULL) 
  1023. X        fnw->comboBox.name = XtNewString(fnw->core.name);
  1024. X    else {
  1025. X          fnw->comboBox.name = XtNewString(fnw->comboBox.name);
  1026. X    }
  1027. X
  1028. X    Child(fnw,name_widget)     /* NEU */
  1029. X       = XtVaCreateWidget("name", toggleWidgetClass, new,
  1030. X                           XtNlabel, fnw->comboBox.name,
  1031. X                           XtNstate,   FALSE,
  1032. X               NULL);
  1033. X
  1034. X    XtAddCallback(Child(fnw,name_widget), XtNcallback, ToggleAction, NULL); 
  1035. X    XawToggleChangeRadioGroup(Child(fnw,name_widget),NULL);
  1036. X
  1037. X    Child(fnw,shell_widget)
  1038. X    = XtVaCreatePopupShell("shell", overrideShellWidgetClass,
  1039. X               new,
  1040. X               XtNsaveUnder, TRUE,
  1041. X               NULL);
  1042. X    
  1043. X    Child(fnw,viewport_widget)
  1044. X    = XtVaCreateManagedWidget("viewport", viewportWidgetClass,
  1045. X                           Child(fnw,shell_widget),
  1046. X               XtNallowVert, True,
  1047. X                           XtNforceBars, True,
  1048. X               NULL);
  1049. X    Child(fnw,list_widget) =
  1050. X    XtVaCreateManagedWidget("list", listWidgetClass, Child(fnw,viewport_widget),
  1051. X                XtNdefaultColumns, 1,
  1052. X                XtNforceColumns, True,
  1053. X                NULL);
  1054. X
  1055. X    XtOverrideTranslations(Child(fnw,list_widget),
  1056. X               XtParseTranslationTable(listTranslations));
  1057. X
  1058. X    XtAddCallback(Child(fnw,list_widget), XtNcallback, ReplaceFilename, NULL); 
  1059. X
  1060. X    anzahl = 0;
  1061. X    if (fnw->comboBox.rclist != NULL) {
  1062. X      testlist = fnw->comboBox.rclist;
  1063. X      while (testlist != NULL) {
  1064. X        testlist = testlist->next;
  1065. X        anzahl++;
  1066. X      }
  1067. X    }
  1068. X    FillWindow(fnw,anzahl);
  1069. X
  1070. X
  1071. X    Child(fnw,filename_widget)
  1072. X    = XtVaCreateWidget("filename", asciiTextWidgetClass, new,
  1073. X               XtNeditType, XawtextEdit,
  1074. X               NULL);
  1075. X    XtOverrideTranslations(Child(fnw,filename_widget),
  1076. X               XtParseTranslationTable(filenameTranslations));
  1077. X
  1078. X    XtSetKeyboardFocus(new, Child(fnw,filename_widget));
  1079. X    WatchForChanges(fnw);
  1080. X
  1081. X    XtAppAddActions(XtWidgetToApplicationContext(new),
  1082. X            pathActions, XtNumber(pathActions));
  1083. X
  1084. /*
  1085. X    Child(fnw,cancel_widget)
  1086. X    = XtVaCreateWidget("cancel", commandWidgetClass, new, NULL);
  1087. X    XtAddCallback(Child(fnw,cancel_widget), XtNcallback, CancelCallback, NULL); 
  1088. */
  1089. X
  1090. X    CalculateSize(fnw, &fnw->core.width, &fnw->core.height);
  1091. X    PositionChildren(fnw);
  1092. }
  1093. X
  1094. X
  1095. X
  1096. X
  1097. static void 
  1098. Realize(w, valueMask, attributes)
  1099. X    Widget w;
  1100. X    XtValueMask *valueMask;
  1101. X    XSetWindowAttributes *attributes;
  1102. {
  1103. X    (*comboBoxWidgetClass->core_class.superclass->core_class.realize)
  1104. X    (w, valueMask, attributes);
  1105. X
  1106. X    XtRealizeWidget(Child(w,name_widget));     /* NEU */
  1107. X    XtRealizeWidget(Child(w,shell_widget));
  1108. X    XtRealizeWidget(Child(w,viewport_widget));
  1109. X    XtRealizeWidget(Child(w,list_widget));
  1110. X    XtRealizeWidget(Child(w,filename_widget));
  1111. /*
  1112. X    XtRealizeWidget(Child(w,cancel_widget));
  1113. */
  1114. X    XMapSubwindows(XtDisplay(w), XtWindow(w));
  1115. }
  1116. X
  1117. static void Destroy(w)
  1118. X    Widget w;
  1119. {
  1120. X    int idx;
  1121. X    ComboBoxWidget fnw = (ComboBoxWidget) w;
  1122. X    
  1123. debprintf("in destroy\n");
  1124. X    XtDestroyWidget(Child(fnw,name_widget));    /* NEU */
  1125. X    XtDestroyWidget(Child(fnw,list_widget));
  1126. X    XtDestroyWidget(Child(fnw,viewport_widget));
  1127. X    XtDestroyWidget(Child(fnw,shell_widget));    
  1128. /*
  1129. X    XtDestroyWidget(Child(fnw,list_widget));
  1130. X    XtDestroyWidget(Child(fnw,viewport_widget));
  1131. X    XtDestroyWidget(Child(fnw,shell_widget));    
  1132. X    XtPopdown(Child(fnw,shell_widget));  
  1133. X    XtDestroyWidget(Child(fnw,filename_widget));
  1134. X    XtDestroyWidget(Child(fnw,cancel_widget));
  1135. */
  1136. X    idx = 0;
  1137. X    while (List(fnw)[idx])
  1138. X    {
  1139. X    XtFree(List(fnw)[idx++]);
  1140. X    }
  1141. X    XtFree(List(fnw)[idx]);
  1142. X    XtFree((char *)List(fnw));
  1143. X
  1144. X    XtFree(Nomination(fnw).directoryPart);
  1145. X    XtFree(Nomination(fnw).filenamePart);
  1146. X    XtFree(ausgabe);
  1147. debprintf("in destroy ende\n");
  1148. }
  1149. X
  1150. /* ARGSUSED */
  1151. static void 
  1152. CancelCallback(w, client_data, call_data)
  1153. X     Widget w;
  1154. X     XtPointer client_data, call_data;
  1155. {
  1156. X    XtCallCallbacks(XtParent(w), XtNcancelCallback, NULL);
  1157. }
  1158. X
  1159. /* ARGSUSED */
  1160. static void
  1161. DestroyMenu(w, client_data, call_data)
  1162. X     Widget w;
  1163. X     XtPointer client_data, call_data;
  1164. {
  1165. debprintf("in destroyMenu\n");
  1166. X    XtDestroyWidget(w);
  1167. }
  1168. X
  1169. X
  1170. /* ARGSUSED  HOLGER */
  1171. static void
  1172. DestroyShell(w, client_data, call_data)
  1173. X     Widget w;
  1174. X     XtPointer client_data, call_data;
  1175. {
  1176. X    ComboBoxWidget fnw
  1177. X        = (ComboBoxWidget) XtParent(w);
  1178. debprintf("in destroyShell\n");
  1179. X    XtPopdown(w);
  1180. X    XtVaSetValues(Child(fnw,name_widget), XtNstate, FALSE, NULL);
  1181. }
  1182. X
  1183. X
  1184. static void
  1185. ChangeDirectory(fnw, position)
  1186. ComboBoxWidget fnw;
  1187. int position;
  1188. {
  1189. X    String p;
  1190. X    int m;
  1191. X
  1192. X    if (position > 0)
  1193. X    {
  1194. X    p = CurrentDir(fnw);
  1195. X    for (m = 0;  m < position;  ++m)
  1196. X    {
  1197. X        while(*p++ != '/')
  1198. X        ;
  1199. X    }
  1200. X    *p = '\0';
  1201. X    }
  1202. X
  1203. X    XtVaSetValues(Child(fnw, filename_widget),
  1204. X          XtNstring, "",
  1205. X          NULL);
  1206. X
  1207. X    FillWindow(fnw);
  1208. X
  1209. X    PositionChildren(fnw);
  1210. }
  1211. X     
  1212. /* ARGSUSED */
  1213. static void
  1214. ChangeDir(w, client_data, call_data)
  1215. X     Widget w;
  1216. X     XtPointer client_data, call_data;
  1217. {
  1218. X    ComboBoxWidget fnw
  1219. X        = (ComboBoxWidget) XtParent(XtParent(XtParent(w)));
  1220. X
  1221. X    ChangeDirectory(fnw, (int) client_data);
  1222. }
  1223. X
  1224. /* ARGSUSED */
  1225. X
  1226. /* ARGSUSED */
  1227. static void
  1228. Nominate(w, event, params, num_params)
  1229. X     Widget w;
  1230. X     XEvent *event;
  1231. X     String *params;
  1232. X     Cardinal *num_params;
  1233. {
  1234. X    ComboBoxWidget fnw;
  1235. X    char *nomination, *home, selection[MAXPATHLEN], *newPath, *r;
  1236. X    struct stat fstats;
  1237. X    int status, len;
  1238. X    if (XtIsSubclass(w, listWidgetClass))
  1239. X    {
  1240. X    fnw = (ComboBoxWidget) XtParent(XtParent(XtParent(w)));
  1241. X    }
  1242. X    else
  1243. X    {
  1244. X    fnw = (ComboBoxWidget) XtParent(w);
  1245. X    }
  1246. X    
  1247. X    XtVaGetValues(Child(fnw,filename_widget),
  1248. X          XtNstring, &nomination,
  1249. X          NULL);
  1250. X
  1251. X    
  1252. X    selection[0] = '\0';
  1253. X    if (*nomination == '/')
  1254. X    {
  1255. X    strcpy(selection, nomination);
  1256. X    }
  1257. X    else if (*nomination == '~' && (home = getenv("HOME")))
  1258. X    {
  1259. X    strcpy(selection, home);
  1260. X    strcat(selection, &nomination[1]);
  1261. X    }
  1262. X    else
  1263. X    {
  1264. X    if (strlen(CurrentDir(fnw)) > 1)
  1265. X    {
  1266. X        strcpy(selection, CurrentDir(fnw));
  1267. X    }
  1268. X    strcat(selection, "/");
  1269. X    strcat(selection, nomination);
  1270. X    }
  1271. X
  1272. X    len = strlen(selection);
  1273. X    if (len != 0)
  1274. X    {
  1275. X    newPath = (char *) XtMalloc(len + 2);
  1276. X    CollapsePath(selection, newPath);
  1277. X    status = stat(newPath, &fstats);
  1278. X    if (status != -1 && fstats.st_mode & S_IFDIR)
  1279. X    {
  1280. X        if (access(newPath, R_OK) == 0)
  1281. X        {
  1282. X        if (newPath[strlen(newPath) - 1] != '/')
  1283. X        {
  1284. X            strcat(newPath, "/");
  1285. X        }
  1286. X        strcpy(CurrentDir(fnw), newPath);
  1287. X        ChangeDirectory(fnw, 0);
  1288. X        }
  1289. X        else
  1290. X        {
  1291. X        XBell(XtDisplay(fnw), BellLevel(fnw));
  1292. X        }
  1293. X    }
  1294. X    else if (status == 0 || (status == -1 && errno == ENOENT))
  1295. X    {
  1296. X        status = access(newPath, R_OK | W_OK);
  1297. X        r = (char *)rindex(newPath, '/');
  1298. X        XtFree(Nomination(fnw).filenamePart);
  1299. X        Nomination(fnw).filenamePart = XtNewString(r + 1);
  1300. X        Nomination(fnw).filenameStatus = (status == 0) ? status : errno;
  1301. X        *(r + 1) = '\0';
  1302. X        XtFree(Nomination(fnw).directoryPart);
  1303. X        status = access(newPath, R_OK);
  1304. X        if (strcmp(newPath, CurrentDir(fnw)) != 0 && status == 0)
  1305. X        {
  1306. X        strcpy(CurrentDir(fnw), newPath);
  1307. X        ChangeDirectory(fnw, 0);
  1308. X        Nomination(fnw).directoryPart = XtNewString(CurrentDir(fnw));
  1309. X        }
  1310. X        else
  1311. X        {
  1312. X        Nomination(fnw).directoryPart = XtNewString(newPath);
  1313. X        }
  1314. X        Nomination(fnw).directoryStatus = (status == 0) ? status : errno;
  1315. X        XtCallCallbacks((Widget) fnw, XtNselectCallback,
  1316. X                                    (XtPointer) &Nomination(fnw));
  1317. X    }
  1318. X    else
  1319. X    {
  1320. X            XBell(XtDisplay(fnw), BellLevel(fnw));
  1321. X    }
  1322. X    XtFree(newPath);
  1323. X    }
  1324. }
  1325. X
  1326. static void
  1327. FillWindow(fnw,num)
  1328. Widget fnw;
  1329. int num;
  1330. {
  1331. X    XFontStruct *font;
  1332. X    Dimension height, internalHeight, rowSpacing;
  1333. X    int newNum, idx;
  1334. X    char buf[MAXPATHLEN], *bp;
  1335. X    String name;
  1336. X    RcListNode *listnode;
  1337. X
  1338. X
  1339. X    if (num <= 0)
  1340. X    {
  1341. X    return;
  1342. X    }
  1343. X
  1344. X    if (List(fnw))
  1345. X    {
  1346. X        idx = 0;
  1347. X        while (List(fnw)[idx])
  1348. X        {
  1349. X            XtFree(List(fnw)[idx++]);
  1350. X        }
  1351. X    XtFree(List(fnw)[idx]);
  1352. X    XtFree((char*)List(fnw));
  1353. X    }
  1354. X    List(fnw) = (String *) XtMalloc((num + 1) * sizeof(String));
  1355. /*
  1356. X    strcpy(buf, CurrentDir(fnw));
  1357. X    strcat(buf, "/");
  1358. */
  1359. X    bp = buf + strlen(buf);
  1360. X    listnode = RcList(fnw);
  1361. X    for(idx = 0, newNum = 0; idx < num;  idx++)
  1362. X    {
  1363. X        name = listnode->data;
  1364. X        List(fnw)[newNum] = XtMalloc(strlen(name) + 2);
  1365. X        strcpy(List(fnw)[newNum], name);
  1366. X        strcpy(bp, name);
  1367. X        ++newNum;
  1368. X        listnode = listnode->next;
  1369. X    }
  1370. X
  1371. X
  1372. X    List(fnw)[newNum] = NULL;
  1373. X
  1374. X    XtVaGetValues(Child(fnw,list_widget),
  1375. X                  XtNfont, &font,
  1376. X                  XtNinternalHeight, &internalHeight,
  1377. X          XtNrowSpacing, &rowSpacing,
  1378. X                  NULL);
  1379. X
  1380. X    height = Rows(fnw) * (font->max_bounds.ascent +
  1381. X             font->max_bounds.descent + rowSpacing) -
  1382. X             rowSpacing + 2 * internalHeight; 
  1383. X
  1384. X    XtVaSetValues(Child(fnw,viewport_widget),
  1385. X                  XtNheight, height,
  1386. X                  NULL);
  1387. X
  1388. X    XawListChange(Child(fnw,list_widget), List(fnw), newNum, -1, True);
  1389. }
  1390. X
  1391. X
  1392. X
  1393. X
  1394. /* ARGSUSED */
  1395. static void
  1396. ReplaceFilename(w, client_data, call_data)
  1397. X     Widget w;
  1398. X     XtPointer client_data, call_data;
  1399. {
  1400. /*
  1401. X    ComboBoxWidget fnw
  1402. X    = (ComboBoxWidget) XtParent(XtParent(w));
  1403. */
  1404. X
  1405. X    ComboBoxWidget fnw
  1406. X    = (ComboBoxWidget) XtParent(XtParent(XtParent(w)));
  1407. X
  1408. X    XawListReturnStruct *list = XawListShowCurrent(Child(fnw,list_widget));
  1409. X
  1410. X    XtVaSetValues(Child(fnw,filename_widget),
  1411. X          XtNstring, list->string,
  1412. X          NULL);
  1413. X
  1414. X    XawTextSetInsertionPoint(Child(fnw,filename_widget),
  1415. X
  1416. X                 (XawTextPosition) strlen(list->string));
  1417. X
  1418. X    WatchForChanges(fnw);
  1419. X    debprintf("ReplaceFileName...\n");
  1420. X    DestroyShell(Child(fnw,shell_widget)); 
  1421. }
  1422. X
  1423. /* ARGSUSED */
  1424. static void
  1425. AsciiSourceChanged(w, client_data, call_data)
  1426. Widget w;
  1427. XXtPointer client_data, call_data;
  1428. {
  1429. X    ComboBoxWidget fnw = (ComboBoxWidget) client_data;
  1430. X
  1431. X    DontWatchForChanges(fnw);
  1432. X
  1433. X    XawListUnhighlight(Child(fnw,list_widget));
  1434. }
  1435. X
  1436. static void
  1437. WatchForChanges(fnw)
  1438. X     Widget fnw;
  1439. {
  1440. X    if (!WatchingChanges(fnw))
  1441. X    {
  1442. X    XtAddCallback(XawTextGetSource(Child(fnw,filename_widget)), XtNcallback,
  1443. X              AsciiSourceChanged, (XtPointer) fnw);
  1444. X
  1445. X    WatchingChanges(fnw) = True;
  1446. X    }
  1447. }
  1448. X
  1449. static void
  1450. DontWatchForChanges(fnw)
  1451. X     Widget fnw;
  1452. {
  1453. X    XtRemoveCallback(XawTextGetSource(Child(fnw,filename_widget)), XtNcallback,
  1454. X             AsciiSourceChanged, (XtPointer) fnw);
  1455. X
  1456. X    WatchingChanges(fnw) = False;
  1457. }
  1458. X
  1459. static void 
  1460. CollapsePath(in, out)
  1461. X     char *in, *out;
  1462. {
  1463. X    char *p = in, *q = out, *pend = p + strlen(p);
  1464. X    
  1465. X    while (p < pend)
  1466. X    {
  1467. X    if (*p != '/')
  1468. X    {
  1469. X        *q++ = *p++;
  1470. X    }
  1471. X    else if (p + 1 < pend && *(p + 1) == '/')
  1472. X    {
  1473. X        ++p;
  1474. X    }
  1475. X    else if ( (p + 2 == pend && *(p + 1) == '.') || 
  1476. X          (p + 2 < pend && *(p + 1) == '.' && *(p + 2) == '/') )
  1477. X    {
  1478. X        p += 2;
  1479. X    }
  1480. X    else if ( (p + 3 == pend && *(p + 1) == '.' && *(p + 2) == '.') ||
  1481. X         (p + 3 < pend && *(p + 1) == '.'
  1482. X                              && *(p + 2) == '.' && *(p + 3) == '/') )
  1483. X    {
  1484. X        while (q > out && *--q != '/')
  1485. X        ;
  1486. X        p += 3;
  1487. X    }
  1488. X    else
  1489. X    {
  1490. X        *q++ = *p++;
  1491. X    }
  1492. X    }
  1493. X    if (q == out)
  1494. X    {
  1495. X    *q++ = '/';
  1496. X    }
  1497. X
  1498. X    while (q > out)
  1499. X    {
  1500. X    if (*--q != '/')
  1501. X        break;
  1502. X    }
  1503. X    *++q = '\0';
  1504. }
  1505. X
  1506. X
  1507. X
  1508. String
  1509. ComboBoxGetString(fnw)
  1510. Widget fnw;
  1511. {
  1512. X    String newName;
  1513. X
  1514. X    if (XtIsSubclass(fnw, comboBoxWidgetClass))
  1515. X    {
  1516. X    
  1517. X      ComboBoxStruct data =  Nomination(fnw);
  1518. X        
  1519. X      XtPopdown(Child(fnw, shell_widget));
  1520. X      XtVaGetValues(Child(fnw,filename_widget),
  1521. X          XtNstring, &ausgabe,
  1522. X          NULL);
  1523. X      if (strlen(ausgabe) == 0) return NULL;
  1524. X      return ausgabe;
  1525. /*
  1526. X      if (data.directoryStatus == 0)
  1527. X      {
  1528. X    newName = XtMalloc(strlen(data.filenamePart) + 1);
  1529. X    strcpy(newName, data.filenamePart);
  1530. X        return newName;
  1531. X      }
  1532. */
  1533. X    }
  1534. X    else
  1535. X    {
  1536. X    return NULL;
  1537. X    }
  1538. }
  1539. X
  1540. X
  1541. X
  1542. void
  1543. ComboBoxSetString(fnw, dir)
  1544. X     Widget fnw;
  1545. X     String dir;
  1546. {
  1547. X    if (!XtIsSubclass(fnw, comboBoxWidgetClass))
  1548. X    {
  1549. X    return;
  1550. X    }
  1551. X
  1552. X    strcpy(CurrentDir(fnw), dir);
  1553. /*
  1554. X    if (dir[strlen(dir) - 1] != '/')
  1555. X    {
  1556. X    strcat(CurrentDir(fnw), "/");
  1557. X    }
  1558. */
  1559. X    ChangeDirectory(fnw, 0);
  1560. }
  1561. SHAR_EOF
  1562. chmod 0644 ComboBo.c ||
  1563. echo 'restore of ComboBo.c failed'
  1564. Wc_c="`wc -c < 'ComboBo.c'`"
  1565. test 24346 -eq "$Wc_c" ||
  1566.     echo 'ComboBo.c: original size 24346, current size' "$Wc_c"
  1567. rm -f _shar_wnt_.tmp
  1568. fi
  1569. # ============= ComboBo.h ==============
  1570. if test -f 'ComboBo.h' -a X"$1" != X"-c"; then
  1571.     echo 'x - skipping ComboBo.h (File already exists)'
  1572.     rm -f _shar_wnt_.tmp
  1573. else
  1574. > _shar_wnt_.tmp
  1575. echo 'x - extracting ComboBo.h (Text)'
  1576. sed 's/^X//' << 'SHAR_EOF' > 'ComboBo.h' &&
  1577. /*********************************************************************/
  1578. /*  bibView: Administration of bibTex-Databases                      */
  1579. /*           (Verwaltung von bibTeX-Literaturdatenbanken)            */
  1580. /*                                                                   */
  1581. /*  Module:  ComboBo.h                                               */
  1582. /*                                                                   */
  1583. /*             - Combo Box Widget                                    */
  1584. /*               Text widget with selection list                     */
  1585. /*                                                                   */
  1586. /*  Author:  Holger Martin,  martinh@informatik.tu-muenchen.de       */
  1587. /*           Peter M. Urban, urban@informatik.tu-muenchen.de         */
  1588. /*                                                                   */
  1589. /*  History:                                                         */
  1590. /*    11.22.91  HM   created                                         */
  1591. /*                                                                   */
  1592. /*  Copyright 1991 Martin, Urban                                     */
  1593. /*    See ./Copyright for complete rights and liability information. */
  1594. /*                                                                   */
  1595. /*********************************************************************/
  1596. X
  1597. #ifndef ComboBox_h
  1598. #define ComboBox_h
  1599. X
  1600. #define XtNselectCallback "selectCallback"
  1601. #define XtNselectMenu "selectMenu"
  1602. #define XtNcancelCallback "cancelCallback"
  1603. #define XtNmargin "margin"
  1604. #define XtNnumberRows "numberRows"
  1605. #define XtNshowDotFiles "showDotFiles"
  1606. #define XtNbellLevel "bellLevel"
  1607. #undef XtNname
  1608. #define XtNname "name"             /* NEU: Feldname */
  1609. #define XtNrcList "rcList"         /* NEU: Liste    */
  1610. X
  1611. extern WidgetClass comboBoxWidgetClass;
  1612. X
  1613. typedef struct _ComboBoxRec *ComboBoxWidget;
  1614. typedef struct {
  1615. X    String  directoryPart;
  1616. X    int     directoryStatus;
  1617. X    String  filenamePart;
  1618. X    int     filenameStatus;
  1619. } ComboBoxStruct;
  1620. X
  1621. X
  1622. typedef struct _RcListNode {                   /* NEU */
  1623. X                             String data;
  1624. X                             struct _RcListNode *next;
  1625. } RcListNode;
  1626. X
  1627. X
  1628. String ComboBoxGetString();
  1629. void   ComboBoxSetString();
  1630. X
  1631. #endif /* ComboBox_h */
  1632. SHAR_EOF
  1633. chmod 0644 ComboBo.h ||
  1634. echo 'restore of ComboBo.h failed'
  1635. Wc_c="`wc -c < 'ComboBo.h'`"
  1636. test 2273 -eq "$Wc_c" ||
  1637.     echo 'ComboBo.h: original size 2273, current size' "$Wc_c"
  1638. rm -f _shar_wnt_.tmp
  1639. fi
  1640. # ============= ComboBoP.h ==============
  1641. if test -f 'ComboBoP.h' -a X"$1" != X"-c"; then
  1642.     echo 'x - skipping ComboBoP.h (File already exists)'
  1643.     rm -f _shar_wnt_.tmp
  1644. else
  1645. > _shar_wnt_.tmp
  1646. echo 'x - extracting ComboBoP.h (Text)'
  1647. sed 's/^X//' << 'SHAR_EOF' > 'ComboBoP.h' &&
  1648. /*********************************************************************/
  1649. SHAR_EOF
  1650. true || echo 'restore of ComboBoP.h failed'
  1651. fi
  1652. echo 'End of  part 1'
  1653. echo 'File ComboBoP.h is continued in part 2'
  1654. echo 2 > _shar_seq_.tmp
  1655. exit 0
  1656. -- 
  1657. Senior Systems Scientist        mail: dcmartin@msi.com
  1658. Molecular Simulations, Inc.        uucp: uunet!dcmartin
  1659. 796 North Pastoria Avenue        at&t: 408/522-9236
  1660. Sunnyvale, California 94086        fax: 408/732-0831
  1661.