typedstream StreamTable HashTable Object [20c] typedstream [718c] typedstream HashTable Object Controller HeaderClass %%%%i@@ genericobject_nib activateMenu printRequest: showQueue: pageLayout: saveToTiff: showSlideshow: showDecoder: openRequest: FirstResponder firstnib checkSpelling: alignSelCenter: unscript: pasteFont: runPageLayout: superscript: copyRuler: copyFont: selectAll: pasteRuler: toggleRuler: showGuessPanel: alignSelLeft: paste: performClose: arrangeInFront: subscript: copy: alignSelRight: delete: orderFrontColorPanel: underline: performMiniaturize: [9172c] typedstream HashTable Object Bitmap ViewGifApp iii00 [576c] NibData @@@@s Storage {*@@} [35{*@@}] File's Owner CustomObject Application InfoPanel WindowTemplate iiii***@s@ Panel Responder TextField Control TextFieldCell ActionCell ViewGif2 Helvetica-Bold Button ButtonCell Helvetica Version 1.0 March 1990 GIF Image File Decoder lGIF and "Graphics Interchange Format" are trademarks (tm) of CompuServe, Incorporated, an H&R Block Company. YThis program is in the Public Domian No claims are made to it's usefulness or correctness Wby Carl F. Sutter sutter@ozone.usc.edu (NeXT mail) SUTTER@USCVM (BITNET) (213) 743-3826 PUpdated for compatability with 2.1 Operating System August 1991 by Don Yacktman Button1 Field1 Field Field3 Field4 Field5 Field6 Field2 MainMenu MenuTemplate *@*@ccc Matrix @:@iiii [11@] MenuCell Info... Window Open... Save To TIFF... Page Layout... Miniaturize Close ff@@#::s submenuAction: menuArrow Print... Paste Select All Queue... Decoder... Slide Show... Activate Help... ControllerInstance Controller HelpPanel Help for ViewGif2 ScrollView ClipView ciifffcfffs [3813c]{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} \margl40 \margr40 \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\b\i0\ul0\fs24 Overview: \b0 \ ViewGif2 is a program to decode images compressed with the CompuServe GIF format. The second purpose of this program is to help programers in the NeXT environment. This program and its source code are in the public domain. No claims are made to its usefulness or correctness.\ This program demonstrates making multiple windows, using IB modules to break up a program, handling an activate menu, splitting up long processes to allow other event handling, scrolling views, imaging data into bitmaps, and much more! The intention is to provide good example code, rather than cryptic and fast code. \ \b General Use: \b0 Once the program is started, choose the "Open..." command in the "Window" menu to open a .gif file. The file will be decoded and imaged into a new scrolling window. Muliple files can be decoded into their own windows. You can also double-click a .gif file in the Workspace Manager to open and decode that file. The "Queue" panel shows files waiting to be decoded. The "Decoder" Panel shows the current decoding status. The "SlideShow" panel flips through the windows named in the "Activate" menu.\ Menus:\ \b0\i Info... \i0 - Brings up a panel showing author information. This program is intended as a simple demo for new programmers, cut and paste to your heart's content. No claims are made to the quality or usefulness of this code - use at your own risk.\ Window... \i0 - This submenu lets you open a GIF file, and save the currently selected image window to a TIFF file. The page layout for printing can also be adjusted, and the main window can be minaturized or closed (the standard buttons on the windows also allow this).\ \i Print... \i0 - Prints the main window (the one with the black title bar).\ \i Edit \i0 - Allows you to cut, copy, and paste text from various text fields in this program's panels.\ \i Queue... \i0 - Shows the Queue panel. The Queue panel lists the files yet to be decoded (if any are pending). While decoding is occurring, the queue can be re-arranged by selecting the appropriate buttons on the panel. A group of files can be selected and moved or deleted. The top file on the list is the next one to be decoded. When the decoding of the top file begins, it is removed from the list. The decoding of the next file can be paused indefinately by pressing the pause button. Decoding can be resumed by pressing the pause button again.\ \i Decoder \i0 - Brings up the "Decoding Status" panel. This panel shows the status of the image decoding process. After the file is decoded, it is imaged to match the number of colors available on the display. The imaging process may take a few minutes for large images, and slows the machine down considerably.\ \i Slide Show \i0 - Brings up the "Activate Menu Slide Show" panel. This panel allows the windows to be shown in order at a given pace. The windows (one for each decoded file) are listed in the "Activate" menu. The slide show loops around to the first window after the last is brought to the front.\ \i Activate \i0 - Lists the decoded files. Each file is decoded into it's own window, so this menu is also a list of the windows. Clicking on a desired image name will bring it's window to the top of the screen. The Slide Show panel just simulates clicking down this list.\ \i Help \i0 - Brings up this panel.\ \i Hide \i0 - Hides the program, but leaves it running. The program icon will remain on the screen. All other windows associated with this program will be hidden.\ \i Quit \i0 - Quits the program, and frees any memory it is using.\ NXCursor NXImage NXibeam Scroller _doScroller: @@@ffsP ScrollingTextC= {i*@@@} [18{i*@@@}] hide: terminate:" makeKeyAndOrderFront: copy: paste: selectAll: showQueue: delegate performClose: performMiniaturize: openRequest: showDecoder: printRequest: saveToTiff: pageLayout: showSlideshow: