home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Information / Digests / CSMP Digest / volume 3 / csmp-digest-v3-047 / doubleCR.1 < prev   
Encoding:
Text File  |  1994-12-08  |  45.8 KB  |  1,155 lines

  1. C.S.M.P. Digest             Tue, 26 Jul 94       Volume 3 : Issue 47
  2.  
  3. Today's Topics:
  4.  
  5.         AIFF
  6.         Annou                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 see below.
  7.  
  8. Mike Brindley (brindley@ece.orst.edu) writes:
  9.  
  10. "The complete AIFF spec by Steve Milne, Matt Deatherage (Apple) is
  11. available in 'AMIGA ROM Kernal Reference Manual: Devices (3rd Edition)'
  12. 1991 by Commodore-Amiga, Inc.; Addison-Wesley Publishing Co.; 
  13. ISBN 0-201-56775-X, starting on page 435 (this edition has a charcoal
  14. grey cover).  It is available in most bookstores, and soon in many
  15. good librairies."
  16.  
  17. According to Mark Callow (msc@sgi.com):
  18.  
  19. A PostScript version of the AIFF-C specification is available via
  20. anonymous ftp on FTP.SGI.COM (192.48.153.1) as /sgi/aiff-c.9.26.91.ps.
  21.  
  22. ---------------------------
  23.  
  24. >From bdenckla@husc10.harvard.edu (Benjamin Denckla)
  25. Subject: Announcing Macintosh AIFF-based DSP Think C Toolbox
  26. Date: 11 Jul 1994 19:03:46 GMT
  27. Organization: Harvard University, Cambridge, MA
  28.  
  29. Now available from ftp.cs.jhu.edu in directory "pub/dsp":
  30.  
  31. AIFF-based DSP C Framework
  32.  
  33. This archive contains a Macintosh Think C library which provides a
  34. framework in which user-written C functions which process the data in AIFF
  35. files may be run.  The library contains main() and deals with all aspects
  36. of AIFF file handling, allowing the user to concentrate on his/her
  37. processing algorithm by writing only a small "plug-in" processing module
  38. with very short development time.  The library uses a block-processing
  39. strategy in order to reduce the function-call overhead when the
  40. user-written processing function is called.  The block-processing approach
  41. is also necessary because the large size of many AIFF files makes them
  42. impossible to load entirely into memory. 
  43.  
  44. The framework calls three user-written functions in the course of its 
  45. execution.  First it calls the user-written initialization function 
  46. init_process(), which would typically be used for tasks such as the setup 
  47. of lookup tables.  Then it repeatedly calls the user-written processing 
  48. function process_samdat(), each time placing a new block of data in the 
  49. buffer.  When the data has been exhausted, it calls the user-written 
  50. termination function term_process(), which would typically be used for 
  51. tasks such as freeing memory which the user had allocated in init_process().
  52.  
  53. Though the framework is designed for the processing of AIFF files where 
  54. an AIFF file is taken as input and an AIFF file is made as output, 
  55. through the setting of user-defined variables, the framework can be made 
  56. to take no input or make no output.  If the variable take_input is set to 
  57. zero, the framework will not make an attempt to open an input file.  This 
  58. mode is useful for tasks such as the generation of AIFF files by 
  59. algorithmic means.  If the variable make_output is set to zero, the 
  60. framework will not make an attempt to open an output file.  This mode is 
  61. useful for tasks such as the analysis of AIFF files, where the analysis 
  62. output goes to the screen or a non-AIFF file.
  63.  
  64. The framework exists in source form in the folder "framework source" and 
  65. in object code form as "framework.lib".  The source uses a few Think C 
  66. extensions to C, but I suspect that it could be ported to other compilers 
  67. or even other platforms without great difficulty as long as the 
  68. assumptions about the size of data types listed in "aiff.h" hold true.  
  69. If you want to link from the sources, the linkage required is specified 
  70. at the beginning of the file "aiff.c".  Linkage for the library is the 
  71. same except for the fact that aiff.c and interface.c need not be linked 
  72. since they are what the library contains.
  73.  
  74. Much more could be written about how to use the framework but time 
  75. constraints compel me to merely direct the reader to the examples in the 
  76. folder "example plug-in source" and to the source for the framework itself.
  77.  
  78. This project was funded in part by the Ford Foundation's project to 
  79. provide grants for undergraduate research at Harvard University.
  80.  
  81. Don't bother dowloading this document as a separate text file: it is 
  82. already included in the archive.
  83.  
  84. Ben Denckla
  85. bdenckla@husc.harvard.edu
  86. July 9, 1994
  87.  
  88.  
  89.  
  90. ---------------------------
  91.  
  92. >From Andrew_Bell@acd.org (Andrew Bell)
  93. Subject: AppleEvent Question
  94. Date: 06 Jul 1994 17:44:15 GMT
  95. Organization: Apple Corps of Dallas User Group
  96.  
  97. Hi. I'm writing an application which allows users to edit various aspects of
  98. their FC Settings Files. I've written the code for AppleEvents, and when you
  99. drag your settings file on my App, it works perfectly. My problem is this: I
  100. want my user to be greeted with a standard open dialog box if they didn't
  101. drag a file on my app. My code is set up like this:
  102.  
  103. Install Apple Events
  104. {Main Event Loop}
  105.  
  106. Is there any way I can execute some code if I'm not gonna receive an OpenDocs
  107. event? I'm coding this in Pascal.
  108.  
  109. Thanks in Advance,
  110. Andrew.
  111. andrewb@metronet.com        
  112.  
  113. +++++++++++++++++++++++++++
  114.  
  115. >From jwbaxter@olympus.net (John W. Baxter)
  116. Date: Wed, 06 Jul 1994 15:40:02 -0700
  117. Organization: Internet for the Olympic Peninsula
  118.  
  119. In article <893579165.3110756@acd.acd.org>, Andrew_Bell@acd.org wrote:
  120.  
  121. > Hi. I'm writing an application which allows users to edit various aspects of
  122. > their FC Settings Files. I've written the code for AppleEvents, and when you
  123. > drag your settings file on my App, it works perfectly. My problem is this: I
  124. > want my user to be greeted with a standard open dialog box if they didn't
  125. > drag a file on my app. My code is set up like this:
  126. > Install Apple Events
  127. > {Main Event Loop}
  128.  
  129. You should (barring some late-breaking additions) receive one of three
  130. events after your application is launched.  [Note:  I'm assuming you don't
  131. want to support System 6, too...if you do, see Inside Mac, where this is
  132. all spelled out.]
  133.  
  134.    'aevt'/'oapp':  "Your application has been double-clicked"
  135.    'aevt'/'odoc':  "You should open these documents"
  136.    'aevt'/'pdoc':  "You should print these documents" (Finder follows this
  137. with 'aevt'/'quit' if the user selected a doc and chose the Print command,
  138. and you weren't already running...you don't have to keep track of that bit
  139. of state information).
  140.  
  141.    So by that model, when you launch, you do the setup which is common
  142. among those three cases.  Then you wait for one of the events to come in,
  143. and handle it.  The 'oapp' means, in your case, put up the dialog (in
  144. other cases it means create an untitled document, or whatever).
  145.  
  146.    Note that two more possibilities have arisen recently:  you get
  147. launched and none of the three events arrives (you can time out and assume
  148. 'oapp' for that one, if you want to);  you get a no-op event in (I forget
  149. the class and ID).  That is the "none of the other three" case made
  150. explicit, and implies:  don't do anything until you're told...I'll get
  151. around to it sometime.
  152.  
  153.    --John
  154.  
  155. -- 
  156. John Baxter    Port Ludlow, WA, USA  [West shore, Puget Sound]
  157.    No hablo Intel.
  158.    jwbaxter@pt.olympus.net
  159.  
  160. +++++++++++++++++++++++++++
  161.  
  162. >From Mark Hanrek <hanrek@cts.com>
  163. Date: Thu, 7 Jul 1994 02:37:35 GMT
  164. Organization: The Information Workshop
  165.  
  166. In article <893579165.3110756@acd.acd.org> Andrew Bell,
  167. Andrew_Bell@acd.org writes:
  168.  
  169. > Hi. I'm writing an application which allows users to edit aspects of
  170. > their FC Settings Files. I've written code for AppleEvents, and when you
  171. > drag your settings on my App, it works perfectly. My problem is this: I
  172. > want my user to be greeted with a standard open dialog if they didn't
  173. > drag a file on my app. My code is set up like this:
  174. >
  175. > Install Apple Events
  176. > {Main Event Loop}
  177. >
  178. > Is there any way I can execute some code if I'm not gonna receive an 
  179. > OpenDocs event? I'm coding this in Pascal.
  180. >
  181. > Thanks in Advance,
  182. > Andrew.
  183. > andrewb@metronet.com        
  184.  
  185. Note that if your application does not receive one or more 'odoc' Apple
  186. events, it will receive an 'oapp' instead.  :)
  187.  
  188. Aha!!
  189.  
  190. Hope this helps.
  191.  
  192. Mark Hanrek
  193.  
  194. +++++++++++++++++++++++++++
  195.  
  196. >From jonpugh@netcom.com (Jon Pugh)
  197. Date: Thu, 7 Jul 1994 03:47:35 GMT
  198. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  199.  
  200. Andrew Bell (Andrew_Bell@acd.org) wrote:
  201. > Hi. I'm writing an application which allows users to edit various aspects of
  202. > their FC Settings Files. I've written the code for AppleEvents, and when you
  203. > drag your settings file on my App, it works perfectly. My problem is this: I
  204. > want my user to be greeted with a standard open dialog box if they didn't
  205. > drag a file on my app. My code is set up like this:
  206.  
  207. > Install Apple Events
  208. > {Main Event Loop}
  209.  
  210. > Is there any way I can execute some code if I'm not gonna receive an OpenDocs
  211. > event? I'm coding this in Pascal.
  212.  
  213. If you don't get an odoc, you will get an oapp.  Put up the dialog then.
  214.  
  215. Jon
  216.  
  217.  
  218. ---------------------------
  219.  
  220. >From setsu@lab2.yamaha.co.jp (Takashi Suzuki)
  221. Subject: Bug in MIDI.h (Universal Interface)
  222. Date: Thu, 7 Jul 1994 04:13:18 GMT
  223. Organization: 2nd dep. Electronics Development&Design Center YAMAHA, Japan.
  224.  
  225. I found a bug in MIDI.h (Universal Interface).
  226.  
  227. These lines :
  228. - -------------------------------- from here -------------------------------
  229. #if defined(powerc) || defined (__powerc)
  230. #pragma options align=mac68k
  231. #endif
  232. struct MIDIPortParams {
  233.     OSType      portID;     /*ID of port, unique within client*/
  234.     short       portType;   /*Type of port - input, output, time, etc.*/
  235.     short       timeBase;   /*refnum of time base, 0 if none*/
  236.     long        offsetTime; /*offset for current time stamps*/
  237.     Ptr         readHook;   /*routine to call when input data is valid*/
  238.     long        refCon;     /*refcon for port (for client use)*/
  239.     MIDIClkInfo initClock;  /*initial settings for a time base*/
  240.     Str255      name;       /*name of the port, This is a real live string, not a 
  241. ptr.*/
  242. };
  243. #if defined(powerc) || defined(__powerc)
  244. #pragma options align=reset
  245. #endif
  246. - -------------------------------- until here -------------------------------
  247.  
  248. should be someting like:
  249. - -------------------------------- from here -------------------------------
  250. typedef pascal short (*ReaderDefProcPtr)(MIDIPacketPtr myPacket, long myRefCon);
  251.  
  252. enum {
  253.     uppReaderDefProcInfo = kPascalStackBased
  254.                 | RESULT_SIZE(SIZE_CODE(sizeof(short)))
  255.                 | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Ptr)))
  256.                 | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  257. };
  258.  
  259. #if USESROUTINEDESCRIPTORS
  260. typedef UniversalProcPtr ReaderDefUPP;
  261.  
  262. #define NewReaderDefProc(userRoutine)           \
  263.                 (ReaderDefUPP) NewRoutineDescriptor((ProcPtr)(userRoutine),
  264.                 uppReaderDefProcInfo, GetCurrentISA())
  265. #else
  266. typedef ReaderDefProcPtr ReaderDefUPP;
  267.  
  268. #define NewReaderDefProc(userRoutine)           \
  269.                 (ReaderDefUPP)(userRoutine)
  270. #endif
  271.  
  272.  
  273. #if defined(powerc) || defined (__powerc)
  274. #pragma options align=mac68k
  275. #endif
  276. struct MIDIPortParams {
  277.     OSType          portID;     /*ID of port, unique within client*/
  278.     short           portType;   /*Type of port - input, output, time, etc.*/
  279.     short           timeBase;   /*refnum of time base, 0 if none*/
  280.     long            offsetTime; /*offset for current time stamps*/
  281.     ReaderDefUPP    readHook;   /*routine to call when input data is valid*/
  282.     long            refCon;     /*refcon for port (for client use)*/
  283.     MIDIClkInfo     initClock;  /*initial settings for a time base*/
  284.     Str255          name;       /*name of the port, This is a real live string, not a 
  285. ptr.*/
  286. };
  287. #if defined(powerc) || defined(__powerc)
  288. #pragma options align=reset
  289. #endif
  290. - -------------------------------- until here -------------------------------
  291.  
  292. Without this modification, applications will run into debugger
  293. when they receive MIDI data.
  294.  
  295. -- T.Suzuki
  296.  
  297.  
  298. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  299.   Takashi Suzuki    2nd dep. Electronics Development & Design Center YAMAHA
  300.       _///_                 Email : setsu@lab2.yamaha.co.jp
  301.      (.)-(.)~               NIFTY : GAF03072@niftyserve.or.jp
  302.         o                   Tel   : +81-539-62-5335 ; Fax  :+81-539-62-5269
  303. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  304.  
  305. ---------------------------
  306.  
  307. >From jbeeghly@u.washington.edu (Jeff Beeghly)
  308. Subject: Full file path?
  309. Date: 9 Jul 1994 20:36:07 GMT
  310. Organization: University of Washington
  311.  
  312.  
  313. OK, I come from a unix & a DOS background, and I'm trying to learn MAC
  314. programming.  My latest battle has been with the Mac file system...
  315.  
  316.  
  317. OK, If I have the following drive structure:
  318.  
  319. Internal                                                ROOT DRIVE
  320.    |
  321.    |
  322.    ------Applications                                   Folder
  323.                 |
  324.                 |
  325.                 --------Adobe Photoshop                 Folder
  326.                                |
  327.                                |
  328.                                -------------Photoshop   Application
  329.  
  330. On the Unix side, I'd expect the file position structure to be
  331.  
  332. Internal/Applications/Adobe Photoshop/Photoshop
  333.  
  334. On the Mac, it would be 
  335.  
  336. Internal:Applications:Adobe Photoshop:Photoshop
  337.  
  338. Well, I'm using the following to call the Open Dialog
  339.  
  340. StandardFileReply reply;
  341. StandardGetFile(0L, -1, 0L, &reply);
  342.  
  343. In THINK Reference, it states that the StandardFileReply contains a 
  344. FSSpec variable called sfFile, which is made up of the following structure:
  345. FSSpec {
  346.     short vRefName;
  347.     long parID;
  348.     Str63 name;
  349. };
  350.  
  351.  
  352. Well, I know that reply.sfFile.name contains just the name of the file, 
  353. and if I under stand correctly, the root drive (or the volume reference) 
  354. is stored as a number, and the directory that the file was in is also 
  355. stored as a number.  OK, fine.  But how do I get the text of the location?
  356.  
  357. In other words, how can I use the vRefNum, parID, & name menbers to get 
  358. the string "Internal:Applications:Adobe Photoshop:Photoshop" ?
  359.  
  360.  
  361. Also, I cave a couple books on programming the Mac, but none of them 
  362. really talk about files on the Mac.  Other than Inside Mac, are there any 
  363. good books out there that cover this issue?
  364.  
  365.  
  366. +++++++++++++++++++++++++++
  367.  
  368. >From rmah@panix.com (Robert Mah)
  369. Date: Sat, 09 Jul 1994 18:26:21 -0500
  370. Organization: One Step Beyond
  371.  
  372. jbeeghly@u.washington.edu (Jeff Beeghly) wrote:
  373.  
  374. ) OK, I come from a unix & a DOS background, and I'm trying to learn
  375. ) MAC programming.  My latest battle has been with the Mac file system.
  376. ) ...
  377. ) Well, I know that reply.sfFile.name contains just the name of the
  378. ) file, and if I under stand correctly, the root drive (or the volume
  379. ) reference) is stored as a number, and the directory that the file was
  380. ) in is also stored as a number.  OK, fine.  But how do I get the text
  381. ) of the location?
  382. ) In other words, how can I use the vRefNum, parID, & name menbers to
  383. ) get the string "Internal:Applications:Adobe Photoshop:Photoshop"?
  384.  
  385. You should think carefully before using full pathnames in non-developer
  386. oriented applications.  Unlike UNIX and DOS, Mac users change their 
  387. volume, folder and file names and move files and folders around with
  388. abandon and wanton disregard for programmer's perconceptions.
  389.  
  390. If you're trying to save the file's location, you should REALLY think
  391. about using aliases instead.  One of the few times I can think of to use
  392. full pathnames is to pass it to the stdio fopen() function.
  393.  
  394. If you really do need to get the full path name, there is sample code 
  395. from Apple available on the developer CD's and at:
  396.  
  397.   ftp://ftp.apple.com/dts/mac/sc/snippets/files/
  398.  
  399. It's basically a matter of walking up the directory tree using repeated
  400. calls to _PBGetCatInfo.  Oh and remember, you could be running under
  401. A/UX so check before assuming ":" is the pathname delimiter.
  402.  
  403. Cheers,
  404. Rob
  405. _____________________________________________________________________
  406. Robert S. Mah    :  Macintosh software development  :    212.947.5607
  407. One Step Beyond  :      and network consulting      :  rmah@panix.com
  408.  
  409. +++++++++++++++++++++++++++
  410.  
  411. >From bhorling@mail.trincoll.edu (Bryan Horling)
  412. Date: Sat, 09 Jul 1994 19:51:00 -0500
  413. Organization: Trinity College
  414.  
  415. In article <rmah-0907941826210001@rmah.dialup.access.net>, rmah@panix.com
  416. (Robert Mah) wrote:
  417.  
  418. > jbeeghly@u.washington.edu (Jeff Beeghly) wrote:
  419. > ) OK, I come from a unix & a DOS background, and I'm trying to learn
  420. > ) MAC programming.  My latest battle has been with the Mac file system.
  421. > ) ...
  422. > ) Well, I know that reply.sfFile.name contains just the name of the
  423. > ) file, and if I under stand correctly, the root drive (or the volume
  424. > ) reference) is stored as a number, and the directory that the file was
  425. > ) in is also stored as a number.  OK, fine.  But how do I get the text
  426. > ) of the location?
  427. > ) 
  428. > ) In other words, how can I use the vRefNum, parID, & name menbers to
  429. > ) get the string "Internal:Applications:Adobe Photoshop:Photoshop"?
  430. > You should think carefully before using full pathnames in non-developer
  431. > oriented applications.  Unlike UNIX and DOS, Mac users change their 
  432. > volume, folder and file names and move files and folders around with
  433. > abandon and wanton disregard for programmer's perconceptions.
  434. > If you're trying to save the file's location, you should REALLY think
  435. > about using aliases instead.  One of the few times I can think of to use
  436. > full pathnames is to pass it to the stdio fopen() function.
  437. > If you really do need to get the full path name, there is sample code 
  438. > from Apple available on the developer CD's and at:
  439. >   ftp://ftp.apple.com/dts/mac/sc/snippets/files/
  440. > It's basically a matter of walking up the directory tree using repeated
  441. > calls to _PBGetCatInfo.  Oh and remember, you could be running under
  442. > A/UX so check before assuming ":" is the pathname delimiter.
  443.  
  444. Looking at this in reverse, how can I use a full pathname to access a file
  445. or folder location to save or read from?  I'm writing an on-line
  446. application form in which I'm going to have the results saved to a server
  447. on the network (we're currently grappling with mounting said server)
  448. without user intervention (so StandardPutFile won't work), and the path to
  449. this spot will always be the same.  I have yet to find an easy way to
  450. specify this path in a useable form, although Think Ref says that it can
  451. be done.  Does anyone have any suggestions?  Thanks.
  452.  
  453. > Cheers,
  454. > Rob
  455. > _____________________________________________________________________
  456. > Robert S. Mah    :  Macintosh software development  :    212.947.5607
  457. > One Step Beyond  :      and network consulting      :  rmah@panix.com
  458.  
  459. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  460.     --Bryan Horling--      | >>bhorling@mail.trincoll.edu<<
  461.     -Head Consultant-      |    Trinity College, #1720  
  462. -A valuble low fat source- |    300 Summit St  
  463. -of protein and vitamin C- |    Hartford, CT 06106-3100
  464. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-        
  465.  
  466. +++++++++++++++++++++++++++
  467.  
  468. >From rmah@panix.com (Robert Mah)
  469. Date: Sat, 09 Jul 1994 22:52:44 -0500
  470. Organization: One Step Beyond
  471.  
  472. bhorling@mail.trincoll.edu (Bryan Horling) wrote:
  473.  
  474. ) Looking at this in reverse, how can I use a full pathname to access
  475. ) a file or folder location to save or read from?  I'm writing an
  476. ) on-line application form in which I'm going to have the results
  477. ) saved to a server on the network (we're currently grappling with
  478. ) mounting said server) without user intervention (so StandardPutFile
  479. ) won't work), and the path to this spot will always be the same.  I
  480. ) have yet to find an easy way to specify this path in a useable
  481. ) form, although Think Ref says that it can be done.  Does anyone
  482. ) have any suggestions?  Thanks.
  483.  
  484. Use aliases.  Full aliases will automount AppleShare servers, and
  485. with the ARA extension, even dialup ARA servers before mounting
  486. server volumes.  Aliases are good.
  487.  
  488. Cheers,
  489. Rob
  490. _____________________________________________________________________
  491. Robert S. Mah    :  Macintosh software development  :    212.947.5607
  492. One Step Beyond  :      and network consulting      :  rmah@panix.com
  493.  
  494. +++++++++++++++++++++++++++
  495.  
  496. >From rkwee@ee.pdx.edu (Roland Kwee)
  497. Date: 9 Jul 1994 22:26:39 -0700
  498. Organization: (none)
  499.  
  500. jbeeghly@u.washington.edu (Jeff Beeghly) writes:
  501.  
  502. >OK, I come from a unix & a DOS background, and I'm trying to learn MAC
  503. >programming.  My latest battle has been with the Mac file system...
  504.  
  505. Same with me. I wrote code to obtain full path names like the Pascal
  506. example in New Inside Mac/Files (but in C, of course). In fact, I wrote
  507. a set of functions to hide the Mac-style file IDs and to simulate
  508. the Unix-way. This makes code much more portable. Of course, the real
  509. Mac-programmer never wants his/her code to be portable to, say, a PC,
  510. but it is still useful to port ANSI-C/Unix-compatible code to the Mac.
  511.  
  512. Please send me email if you want me to mail you my code (I like peer
  513. review of my code) or to post it in the newsgroup.
  514.  
  515. --Roland            email: RolandKwee@ACM.org
  516.  
  517. +++++++++++++++++++++++++++
  518.  
  519. >From d88-jwa@hemul.nada.kth.se (Jon Wdtte)
  520. Date: 11 Jul 1994 08:31:54 GMT
  521. Organization: The Royal Institute of Technology
  522.  
  523. In <bhorling-0907941951000001@spam.pc.trincoll.edu> bhorling@mail.trincoll.edu (Bryan Horling) writes:
  524.  
  525. >Looking at this in reverse, how can I use a full pathname to access a file
  526. >or folder location to save or read from?  I'm writing an on-line
  527.  
  528. 1) If the path is shorter than 256 characters, just call
  529.    FSpMakeFSSpec on the name with a 0 volume and directory ID.
  530.  
  531. 2) Else use NewAliasMinimalFromFullPath and the ResolveAlias on it.
  532.  
  533. >on the network (we're currently grappling with mounting said server)
  534. >without user intervention (so StandardPutFile won't work), and the path to
  535. >this spot will always be the same.  I have yet to find an easy way to
  536.  
  537. The easiest thing would be to have a preferences setting for
  538. where this "spot" is (check the snippet for getting a folder if
  539. you can't choose a file)
  540.  
  541. Then create an alias to it with NewAlias, and store the alias
  542. data in your preferences document. When the user starts, resolve
  543. the alias using ResolveAlias, and you will not only get an FSSpec
  544. for the alias target, you'll also get the server automatically
  545. mounted, for free.
  546.  
  547. Cheers,
  548.  
  549.                     / h+
  550. -- 
  551.  -- Jon W{tte, h+@nada.kth.se, Mac Software Engineer Deluxe --
  552.  
  553.     Hackers push all the right buttons.
  554.  
  555. ---------------------------
  556.  
  557. >From ramapo@crestone.ssd.kodak.com (Pete Hoch x39699)
  558. Subject: Looking for a friendly native component sample.
  559. Date: Thu, 7 Jul 1994 13:02:54 GMT
  560. Organization: Eastman Kodak Company
  561.  
  562. I am looking for an example or description of anything I need to do to
  563. make a component native.  It does not need to be a fat component I just
  564. need to know if there are any special things I need to do for a native
  565. component.  I have allready looked on the QuickTime 2.0 beta CD and I
  566. have found nothing.
  567.  
  568. Thanks,
  569. Pete
  570.  
  571.  
  572. +++++++++++++++++++++++++++
  573.  
  574. >From tgaul@halcyon.com (Troy Gaul)
  575. Date: Fri, 08 Jul 1994 00:27:08 -0700
  576. Organization: Infinity Systems
  577.  
  578. In article <CsKMww.6n8@newsserver.pixel.kodak.com>,
  579. ramapo@crestone.ssd.kodak.com (Pete Hoch x39699) wrote:
  580.  
  581. > I am looking for an example or description of anything I need to do to
  582. > make a component native.  It does not need to be a fat component I just
  583. > need to know if there are any special things I need to do for a native
  584. > component.  I have allready looked on the QuickTime 2.0 beta CD and I
  585. > have found nothing.
  586.  
  587. Look up technical note QT 05 - Component Manager version 3.0.  It
  588. describes how to do native and fat components.  
  589.  
  590. For development, I got a component working as an accelerated resource with
  591. CodeWarrior 3, and then I just used an old-style 'thng' resource format. 
  592. I had problems when trying to use the extended format with a MW-generated
  593. code resource, but those problems may have been related to including the
  594. wrong library file in the project (I had included the ColorSyncStubs
  595. library from CW3, but the version of ColorSync I had installed had the
  596. shared library named 'ColorSync', so there was a runtime linking error).
  597.  
  598. _troy
  599. //////// //////___Troy Gaul__________________________tgaul@halcyon.com___//
  600.   //    //      Infinity Systems ; Redmond, Washington                  //
  601.  //    //  //  Good news is just life's way of keeping you off balance //
  602. //    //////__________________________________________________________//
  603.  
  604. ---------------------------
  605.  
  606. >From paulw@crl.com (Paul Winterrowd)
  607. Subject: Newbie ?: Where to get good reference materials
  608. Date: 8 Jul 1994 09:46:58 -0700
  609. Organization: CRL Dialup Internet Access    (415) 705-6060  [login: guest]
  610.  
  611. The subject says it all.  The IM books I've looked at contain
  612. Pascal code and I code in C.  Is there a way to get these
  613. reference books with C code/function specifications as opposed
  614. to Pascal?  I've read the Mac Programming FAQ and have not
  615. found an adequate answer.
  616.  
  617. My main interest at this point is with Quickdraw; however, it
  618. appears like I'm going to have to order the IM: Imaging book
  619. as the local bookstore does not have this volume.  Also, it 
  620. appears to have been left off of the bookmark CD which came 
  621. with my new Develop subscription.  The IM: Overview reference 
  622. lists the Imaging volume as dealing with Quickdraw.  Are there 
  623. any other volumes that contain information on this portion of 
  624. the toolbox or does this one cover it all?
  625.  
  626. I've been told that a company will be coming out with the complete
  627. IM reference series on CD later this summer; however, I really
  628. need this information now and I don't know if they are going to
  629. do any better with providing C code examples.
  630.  
  631. Email replies are appreciated as I only read this newsgroup once
  632. or twice a week.
  633.  
  634. Thanks,
  635.  
  636. paulw@aha.com
  637.  
  638.  
  639. -- 
  640. - ---------------------------------------------------------------
  641. I only speak for myself.  
  642.  
  643.  
  644. +++++++++++++++++++++++++++
  645.  
  646. >From Mark Hanrek <hanrek@cts.com>
  647. Date: Mon, 11 Jul 1994 02:08:16 GMT
  648. Organization: The Information Workshop
  649.  
  650. In article <2vjvu2$iiu@crl.crl.com> Paul Winterrowd, paulw@crl.com writes:
  651.  
  652. > The subject says it all.  The IM books I've looked at contain
  653. > Pascal code and I code in C.  Is there a way to get these
  654. > reference books with C code/function specifications as opposed
  655. > to Pascal?  I've read the Mac Programming FAQ and have not
  656. > found an adequate answer.
  657. >
  658. > My main interest at this point is with Quickdraw; however, it
  659. > appears like I'm going to have to order the IM: Imaging book
  660. > as the local bookstore does not have this volume.  Also, it 
  661. > appears to have been left off of the bookmark CD which came 
  662. > with my new Develop subscription.  The IM: Overview reference 
  663. > lists the Imaging volume as dealing with Quickdraw.  Are there 
  664. > any other volumes that contain information on this portion of 
  665. > the toolbox or does this one cover it all?
  666. >
  667. > I've been told that a company will be coming out with the complete
  668. > IM reference series on CD later this summer; however, I really
  669. > need this information now and I don't know if they are going to
  670. > do any better with providing C code examples.
  671. >
  672. > Email replies are appreciated as I only read this newsgroup once
  673. > or twice a week.
  674. >
  675. > Thanks,
  676. >
  677. > paulw@aha.com
  678.  
  679.  
  680. Paul and other newbies,
  681.  
  682. Here is some "perspective" that will help save you loads of time...
  683.  
  684.  
  685. - ---- Pascal in Reference Documentation
  686.  
  687. Pascal is to a large degree a descendant of "algol", which is a language
  688. from the sixties that was widely accepted as a standard way of
  689. communicating "algorithms".  ( ALGOrithmic Language: algol )  It was a
  690. kind of a "language-independent langauge".
  691.  
  692. Pascal is being used in a similar way in Inside Mac.  An "algorithm" is
  693. being communicated when you see examples in Pascal.  It is ourselves who
  694. mistakenly think that it is should be useful as more than that, like
  695. "working code".  :)  I made the same mistake myself.
  696.  
  697. In fact, very little code that is shown in reference books actually works
  698. in the real world.  Even if examples were given in C, it would be little
  699. help. 
  700.  
  701. It is important to not attempt to write software from a reference book. 
  702.  
  703.  
  704.     Working from documentation is like 
  705.     reading about a dead fish out of water.
  706.  
  707.     Example source code takes you 
  708.     directly to the living aquarium.
  709.  
  710.  
  711. One has to have both in order to be successful.  
  712.  
  713. One form (reference docs) shows the given thing in isolation so that it
  714. can be understood, the other (source code) contains all the other
  715. real-world things that must be "around it" in order for it to actually
  716. work.
  717.  
  718. Also, when you think about it, what is the most perfect language for
  719. communicating how to write software?  Yes, "example source code", and in
  720. the language you can speak!
  721.  
  722. There is quite a difference between "statements", and "example source
  723. code", too.
  724.  
  725. At one point I did a close examination and quickly saw that there are few
  726. toolbox calls remaining where you can simply look it up in the book, type
  727. it into your program, and that's that.
  728.  
  729. An aquarium is a "system" of intertwined and interdependent things.  If
  730. just one element is missing, or even the pH is a little out of whack,
  731. it's a dead aquarium.
  732.  
  733.  
  734. - ---- Specific answer
  735.  
  736. You asked about QuickDraw.  As a seasoned Macintosh graphics programmer,
  737. I can tell you that this is a perfect case-in-point.  The documentation
  738. conveys only a fraction of what you must know.
  739.  
  740. In some areas, such as the proper way to handle color tables, especially
  741. between applications, there is little or no information whatsoever
  742. including example source code.
  743.  
  744. Questions about QuickDraw, GWorlds, and CopyBits get asked every single
  745. day in c.s.m.p., endlessly, because new programmers are left to fend for
  746. themselves, and unfortunately are not guided along like they could be
  747. with a gentle tractor beam.
  748.  
  749. Well, "tractor beam on" ...
  750.  
  751.  
  752. - ---- A Successful Strategy
  753.  
  754. New programmers have their choice of accepting the following strategy
  755. now, or realizing it is true way later, the hard way. :)
  756.  
  757. I say this because this isn't a time to be fooling around.  We
  758. desperately need all the Macintosh programmers we can get, and large
  759. numbers throw in the towel part way through because it becomes too much.  
  760.  
  761. More often than not, this is preventable.  We'd rather you remain in
  762. orbit, and not burn up re-entering the atmosphere. :)
  763.  
  764. Keep in mind that the programmer who finishes *first* wins all the toys,
  765. not the programmer who can handle the most complexity.  
  766.  
  767. Don't screw around with things that waste your time.  Be belligerent and
  768. demanding about "getting on with it" already! Sheesh!!  ( like that :)
  769.  
  770.  
  771. - ---- One word:  Resources
  772.  
  773. Success is all about "resources".  There are many equally essential
  774. resources, not just one. 
  775.  
  776. Have as many as you can "on tap", at your fingertips, or quickly
  777. accessible.  This is one basis upon which you will compete with other
  778. programmers.
  779.  
  780. All along the way, continuously accumulate resources -- download example
  781. source code, collect tidbits of info you can tell you'd never figure out
  782. in a million years, collect references to things you'll "wish you had
  783. saved when you came across it", etc.
  784.  
  785.  
  786. Essentials for success:
  787.  
  788.   * Access to the Internet, America Online, or CompuServe.
  789.  
  790.   * Become a "source code pack rat".
  791.  
  792.   * Get ftp access to "ftp.apple.com".  Quietly take full advantage
  793.     of this gold mine until you can afford your own CD player and
  794.     subscriptions.  The example source code "word" is available here,
  795.     and on the Developer CD.
  796.  
  797.   * Participate in an online programming forum regularly. The AOL
  798.     Development Forum is a great one for beginners if c.s.m.p. seems
  799.     inappropriate.  Also, you don't have to say a word, yet you'll
  800.     learn a ton of things subliminally, and allows you to feel
  801.     "connected" with what's happening at the same time. 
  802.  
  803.   * The "buddy system" is good for programming, too.
  804.  
  805.   * Remember that if you have trouble understanding something,
  806.     or great difficulty doing something simple, don't blame yourself.
  807.     We are still going through the phase where programmers have
  808.     yet to realize that they too can have development software as 
  809.     powerful and advanced as the software they create for their
  810.     clients or employers routinely every day.
  811.    
  812.   * Essential Reference Information:
  813.  
  814.       * Inside Mac ( paper books sure are handy )
  815.       * Think Reference ( even handier! )
  816.       * All three volumes of c.s.m.p digest
  817.         ( for all the undocumented things )
  818.  
  819.   * Wisdoms that give you competitive advantage...
  820.  
  821.       * You cannot assess how long things will take
  822.       * Don't allow your time to be wasted
  823.       * Stand on the shoulders of work already done
  824.       * Just say "no"
  825.  
  826.  
  827. - -----------------------------------------------------------
  828.  
  829. Only you know what is best for you.  Use this information to help
  830. increase your advantage.
  831.  
  832.  
  833. Hope this helps.
  834.  
  835.  
  836. Mark Hanrek
  837. The Information Workshop
  838.  
  839. ---------------------------
  840.  
  841. >From system@asuvax.eas.asu.edu (Marc Lesure)
  842. Subject: Problem using FSpGet-SetFInfo
  843. Date: Fri, 8 Jul 1994 08:19:59 GMT
  844. Organization: Arizona State University
  845.  
  846. I'm having problems using FSpGetFInfo and FSpSetFInfo on a folder.  They
  847. always return an error of -43 (fnfErr).  IM VI states that these functions
  848. can be used on files or folders.  Here is my code segment, could some kind
  849. soul show me what's wrong.
  850.  
  851. OSErr err;
  852. FSSpec mfs;
  853. int vRef;
  854. long dirID, newdID;
  855. FInfo fndrInfo;
  856.  
  857. /* get system folder */
  858. err=FindFolder(kOnSystemDisk,kSystemFolderType,kDontCreateFolder,&vRef,&dirID);
  859.  
  860. /* get MyFolder */
  861. err=FSMakeFSSpec(vRef,dirID,"\pMyFolder",&mfs);
  862.  
  863. /* create it if it doesn't exist */
  864. if(err==fnfErr)
  865.     err=FSpDirCreate(&mfs,smSystemScript,&newdID);
  866.  
  867. err=FSpGetFInfo(&mfs,&fndrInfo);
  868. ...
  869. err=FSpSetFInfo(&mfs,&fndrInfo);
  870.  
  871. The FSpGet/SetFInfo calls fails regardless if the folder preexisted or if
  872. the code creates it.  It doesn't seem to matter if fndrInfo is defined as
  873. FInfo or DInfo.
  874.  
  875. Thanks for any help!!!
  876.  
  877. - ---------------------------------------------------------------------
  878. Marc Lesure / Arizona State University / Tempe, AZ
  879. "Between the world of men and make-believe, I can be found..."
  880. "False faces and meaningless chases, I travel alone..."
  881. "And where do you go when you come to the end of your dream?"
  882.  
  883. UUCP:       ...!ncar!noao!asuvax!lesure  
  884. Internet:   lesure@asuvax.eas.asu.edu
  885.  
  886. +++++++++++++++++++++++++++
  887.  
  888. >From mclow@coyote.csusm.edu (Marshall Clow)
  889. Date: 8 Jul 1994 09:24:40 -0700
  890. Organization: California State University San Marcos
  891.  
  892. Marc Lesure (system@asuvax.eas.asu.edu) wrote:
  893. >I'm having problems using FSpGetFInfo and FSpSetFInfo on a folder.  They
  894. >always return an error of -43 (fnfErr).  IM VI states that these functions
  895. >can be used on files or folders.  Here is my code segment, could some kind
  896. >soul show me what's wrong.
  897.  
  898. [ code deleted ]
  899. I believe that IM lies on this one. Use GetCatInfo instead.
  900.  
  901. Marshall CLow
  902. Aladdin Systems
  903. mclow@san_marcos.csusm.edu
  904.  
  905.  
  906. +++++++++++++++++++++++++++
  907.  
  908. >From jumplong@aol.com (Jump Long)
  909. Date: 10 Jul 1994 02:11:08 -0400
  910. Organization: America Online, Inc. (1-800-827-6364)
  911.  
  912. In article <CsM4HC.z0@asuvax.eas.asu.edu>, system@asuvax.eas.asu.edu (Marc
  913. Lesure) writes:
  914.  
  915. >I'm having problems using FSpGetFInfo and FSpSetFInfo on a folder.
  916.  
  917. Both Inside Macintosh Volume VI and Inside Macintosh: Files are wrong.
  918. FSpGetFInfo and FSpSetFInfo work only on files - they do not work on
  919. directories. The following code (from the soon to be released version 1.2
  920. of MoreFiles) does what you want.
  921.  
  922. - Jim Luther
  923.  
  924. /*************************************************************************
  925. ****/
  926.  
  927. pascal OSErr GetDInfo(short vRefNum,
  928.         long dirID,
  929.         StringPtr name,
  930.         DInfo *fndrInfo)
  931. {
  932.  CInfoPBRec pb;
  933.  OSErr error;
  934.  
  935.  pb.dirInfo.ioNamePtr = name;
  936.  pb.dirInfo.ioVRefNum = vRefNum;
  937.  pb.dirInfo.ioDrDirID = dirID;
  938.  pb.dirInfo.ioFDirIndex = 0; /* use ioNamePtr and ioDrDirID */
  939.  error = PBGetCatInfoSync(&pb);
  940.  if ( error == noErr )
  941.  {
  942.   if ( (pb.dirInfo.ioFlAttrib & ioDirMask) != 0 )
  943.    /* it's a directory, return the DInfo */
  944.    *fndrInfo = pb.dirInfo.ioDrUsrWds;
  945.   else
  946.    /* oops, a file was passed */
  947.    error = dirNFErr;
  948.  }
  949.  return ( error );
  950. }
  951.  
  952. /*************************************************************************
  953. ****/
  954.  
  955. pascal OSErr FSpGetDInfo(const FSSpec *spec,
  956.         DInfo *fndrInfo)
  957. {
  958.  return ( GetDInfo(spec->vRefNum, spec->parID, (StringPtr)spec->name,
  959. fndrInfo) );
  960. }
  961.  
  962. /*************************************************************************
  963. ****/
  964.  
  965. pascal OSErr SetDInfo(short vRefNum,
  966.         long dirID,
  967.         StringPtr name,
  968.         const DInfo *fndrInfo)
  969. {
  970.  CInfoPBRec pb;
  971.  OSErr error;
  972.  
  973.  pb.dirInfo.ioNamePtr = name;
  974.  pb.dirInfo.ioVRefNum = vRefNum;
  975.  pb.dirInfo.ioDrDirID = dirID;
  976.  pb.dirInfo.ioFDirIndex = 0; /* use ioNamePtr and ioDrDirID */
  977.  error = PBGetCatInfoSync(&pb);
  978.  if ( error == noErr )
  979.  {
  980.   if ( (pb.dirInfo.ioFlAttrib & ioDirMask) != 0 )
  981.   {
  982.    /* it's a directory, set the DInfo */
  983.    pb.dirInfo.ioDrUsrWds = *fndrInfo;
  984.    pb.dirInfo.ioDrDirID = dirID;
  985.    error = PBSetCatInfoSync(&pb);
  986.   }
  987.   else
  988.    /* oops, a file was passed */
  989.    error = dirNFErr;
  990.  }
  991.  return ( error );
  992. }
  993.  
  994. /*************************************************************************
  995. ****/
  996.  
  997. pascal OSErr FSpSetDInfo(const FSSpec *spec,
  998.         const DInfo *fndrInfo)
  999. {
  1000.  return ( SetDInfo(spec->vRefNum, spec->parID, (StringPtr)spec->name,
  1001. fndrInfo) );
  1002. }
  1003.  
  1004. /*************************************************************************
  1005. ****/
  1006.  
  1007.  
  1008. ---------------------------
  1009.  
  1010. >From craig@gpu.utcc.utoronto.ca (Craig Hubley)
  1011. Subject: list of crossplatform OO (C++, Smalltalk) development tools
  1012. Date: Fri, 8 Jul 1994 00:39:31 GMT
  1013. Organization: Craig Hubley & Associates
  1014.  
  1015. Our recent search for crossplatform GUI development tools yielded the following
  1016. possibilities (in no particular order).  Focus was on Windows+Mac portability
  1017. as that was the immediate problem.  Some toolkits, notably XVT, C++/Views,
  1018. ObjectWorks/C++, etc., cover OS/2 and Unix as well.  Many sources were used
  1019. but the search was not exhaustive.  Some things we have only partial pointers
  1020. to.  Would appreciate help filling them out.  If you mail directly to me I
  1021. will incorporate this information into the table (without verifying it).
  1022. Most important would be 1-800 numbers, email addresses, and pointers to
  1023. review articles in major publications (e.g. Byte, PC Week, Computer Shopper...)
  1024.  
  1025. We focused on those usable from C++ or Smalltalk which can be extended using
  1026. these (almost-standard, multivendor now) languages:
  1027.  
  1028. product        vendor
  1029. - -----        ------
  1030. InMark        InMark???
  1031. WNDX         WNDX Corp., Calgary, Alberta Canada (reviewed in Byte 1/94)
  1032. OpenGUI        Guild Products Inc., Belmont CA
  1033. ObjectViews    Quest Windows Corp, Santa Clara CA
  1034. Aspect        Open Inc., Colorado Springs CO 
  1035. ObjectWorks/C++    ParcPlace Systems, (408) area code
  1036. zApp        Zinc                (reviewed in Byte 1/94)
  1037. OpenDoc/MacApp    Apple (supposedly soon to be released)
  1038. win32s        Microsoft (supposedly crossplatform as of Visual C++ 2.0)
  1039. OWL 2.0        Borland (supposedly available for Macintosh
  1040. Appware        Novell (Borland requires this I think)
  1041.   Foundation
  1042.   UI Series
  1043.   VisualAppBuilder
  1044. Galaxy        Visix (expensive)
  1045. ???        Neuron Data (expensive)
  1046. XVT        XVT (reviewed in Byte 1/94) - called 'easiest for C programmers'
  1047. Power++        XVT (very new)
  1048. C++/Views    Liant, (508) area code, more like a Smalltalk library in C++
  1049.         (also reviewed in Byte 1/94) - called the 'most disciplined'
  1050.  
  1051. We weren't really looking at this but for database libraries we turned up:
  1052.  
  1053. FoxPro        Microsoft (can build DLLs to handle DB, and use from C/C++)
  1054. NeoAccess    NeoLogic, San Francisco, CA (a C++ database library)
  1055. CommonBase    ImageSoft
  1056. ...
  1057.  
  1058. For Smalltalk we turned up:
  1059.  
  1060. Smalltalk/V Mac    Digitalk
  1061. Smalltalk/V Win    Digitalk
  1062. ENFIN        Easel (app builder)
  1063. Subpanes    ObjectShare (app builder)
  1064. Smalltalk-80    ParcPlace
  1065. VisualWorks    ParcPlace (app builder)
  1066. VisualAge    IBM (OS/2 only, Windows versions promised, includes app builder)
  1067.  
  1068. We weren't looking at graphics tools.
  1069.  
  1070. Some products, like Symantec's Bedrock and Borland's thing, seem not to exist
  1071. if you contact the companies directly.  Possibly they were vaporware only.  In
  1072. fact Symantec definitely folded their work into OpenDoc and MacApp recently.
  1073.  
  1074. If you turn up *anything* not on this list that is usable from C++ or Smalltalk
  1075. I would appreciate hearing about it.  Other issues possibly worth discussing
  1076. (in the appropriate forums) would be:
  1077.  
  1078. - should there be a group devoted exclusively to platform-independent software
  1079.   development (i.e. where the developer is targetting at least 2 or 3 user
  1080.   platforms) - out of self-interest I would only be interested in tools that
  1081.   generate code, or produce modules that can be linked into, C++ or Smalltalk.
  1082.  
  1083.   (Frankly I think the world needs another single-vendor language, OO or not, 
  1084.   like a hole in its head, and would specifically exclude these from the group.
  1085.   Your mileage may vary - I am not interested in discussing this issue at all
  1086.   so if you feel differently *you* start the group).
  1087.  
  1088. - would someone be interested in expanding this list and making it a FAQ on
  1089.   such a group ?  I have little time for this but might consider it if someone
  1090.   else took over administrative responsibilities.
  1091.  
  1092. For the moment I would be willing to gather and recirculate experiences of
  1093. those doing real world commercial product development using any of the above.
  1094. This too could eventually make it into a FAQ.
  1095.  
  1096. Thanks,
  1097.  
  1098.   Craig Hubley -- Consultants in object-oriented technology, languages,  --
  1099.   Craig Hubley & Associates -- user interface design, user productivity  --
  1100.   craig@utcc.Utoronto.CA    -- and financially responsive methodologies  --
  1101.   Seventy Eaton Avenue, Toronto, Ontario, Canada M4J 2Z5 -- 416-778-6136 
  1102.  
  1103.  
  1104. -- 
  1105.   Craig Hubley -- Consultants in object-oriented technology, languages,  --
  1106.   Craig Hubley & Associates -- user interface design, user productivity  --
  1107.   craig@utcc.Utoronto.CA    -- and financially responsive methodologies  --
  1108.   Seventy Eaton Avenue, Toronto, Ontario, Canada M4J 2Z5 -- 416-778-6136 
  1109.  
  1110. +++++++++++++++++++++++++++
  1111.  
  1112. >From MorrisGC@ccmail.apldbio.com (George Morris)
  1113. Date: 8 Jul 94 19:18:04 GMT
  1114. Organization: Perkin Elmer, Applied Biosystems Div.
  1115.  
  1116. In article <CsLJ5w.F55@gpu.utcc.utoronto.ca>, craig@gpu.utcc.utoronto.ca
  1117. (Craig Hubley) wrote:
  1118.  
  1119. > Our recent search for crossplatform GUI development tools yielded the 
  1120. > following possibilities (in no particular order)
  1121.  
  1122. [material deleted]
  1123. > - would someone be interested in expanding this list and making it a FAQ on
  1124. >   such a group ?  I have little time for this but might consider it if someone
  1125. >   else took over administrative responsibilities.
  1126.  
  1127. As regards cross-platform development systems there already exists an
  1128. excellent list of these systems with prices, summaries, user comments,
  1129. etc. in the PIGUI (platform-independent Graphical User Interface) FAQ. 
  1130. This is available via anonymous FTP at rtfm.mit.edu (At least that is
  1131. where I got it). I believe it is also posted to the following newsgroups;
  1132. comp.windows.misc, comp.answers,news.answers.
  1133.  
  1134. Hope this helps
  1135.  
  1136. George Morris
  1137. MorrisGC@ccmail.apldbio.com
  1138.  
  1139. ---------------------------
  1140.  
  1141. End of C.S.M.P. Digest
  1142. **********************
  1143.  
  1144.  
  1145. ˇ