Annotation of Examples/AppKit/BusyBox/README.rtf, revision 1.1

1.1     ! root        1: {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;\f3\fnil Times-Roman;\f2\fmodern Ohlfs;}
        !             2: \paperw11780
        !             3: \paperh9540
        !             4: \margl320
        !             5: \margr120
        !             6: {\colortbl;\red0\green0\blue0;}
        !             7: \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\f0\b\i0\ulnone\fs36\fc1\cf1 BusyBox
        !             8: \f3\b0\fs28\fc0\cf0 \
        !             9: \
        !            10: 
        !            11: \b BusyBox
        !            12: \b0  is a trivial program which exists to provide on-line guidance about the user interface conventions under NeXTstep.  The code is very simple; BusyBox is not much of a programming example.  You may want to check out the Help object as a possible schema for implementing help in your program. (Applications written for NeXTSTEP 3.0 can also use the help facilities provided in the Application Kit.)  And if you have need for a clock or a gauge, you can look over the ClockView and GaugeView.  \
        !            13: \
        !            14: I created BusyBox so you could run it to learn more about the user interface guidelines and hopefully have some fun while you're at it!\
        !            15: \
        !            16: \
        !            17: Classes of this application:\
        !            18: 
        !            19: \pard\tx560\tx1120\tx2060\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\fi-2060\li2060\fc0\cf0 \
        !            20: 
        !            21: \b Help
        !            22: \b0            This class encapsulates all the functionality for a help object which can maintain a list of help topics, display the file for any help topic and respond to requests for context-sensitive help.  
        !            23: \fc1\cf1 The help object owns its own nib section "Help.nib" which has a help panel - with an NXBrowser to display the help topics and a scrolling text view to display the help files.  The help files are all stored as RTF text files in a directory called Help within the app wrapper.  At init time, the Help object loads the browser with  names of all the files found in the Help directory.  When a name is chosen from the browser, the help object opens a stream on that file and read the rich text into the text object. The help object also responds to request for context-sensitive help, by trying to find an appropriate help file for the view that was moused down in.  This object is a useful addition to any program, because all users appreciate help!\
        !            24: \
        !            25: 
        !            26: \b BusyBoxApp  
        !            27: \b0 Mostly, this subclass of Application exists to override sendEvent:.  When it catches a Control-mouseDown going through, it vectors it off to the Help object.  Other 
        !            28: \pard\tx1140\tx2300\tx3440\tx4600\tx5760\tx6900\tx8060\tx9200\tx10360\tx11520\fc1\cf1 responsibilities
        !            29: \pard\tx560\tx1120\tx2060\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\fi-2060\li2060\fc1\cf1  of the BusyBoxApp include loading the Info and Preferences Panels when needed and keeping track of the path to the app wrapper.\
        !            30: \
        !            31: 
        !            32: \b AnimalView
        !            33: \b0     Simple subclass of view to display an NXBitmapImageRep.  Knows how  to flip and rotate itself in response to IB controls.\
        !            34: \
        !            35: 
        !            36: \b ClockView
        !            37: \b0     Subclass of view to implement a simple clock.  It can draw an analog face, a digital clock or a sundial.  You have the option of  turning the seconds hand on or off, as well as controlling whether the date  is also displayed.  \
        !            38: \
        !            39: 
        !            40: \b GaugeView
        !            41: \b0    Subclass of view to implement a simple round analog gauge. You can set the minimum, maximum value, start angle, angle range, title, font, and more.  It is a pretty generic round gauge view, if you ever have need for one.\
        !            42: \
        !            43: Other files:\
        !            44: 
        !            45: \pard\tx560\tx1120\tx2640\tx3360\tx3640\tx3740\tx3920\tx4480\tx5040\tx5600\b\fi-2660\li2660\fc1\cf1 BusyBox.nib
        !            46: \b0    The main nib file.  Contains the Busy Box window.\
        !            47: 
        !            48: \b InfoPanel.nib
        !            49: \b0    The nib module containing the Info Panel (loaded only on demand).\
        !            50: 
        !            51: \b PrefPanel.nib
        !            52: \b0    The nib module containing the Preferences Panel (loaded when needed).\
        !            53: 
        !            54: \b Help.nib
        !            55: \b0            The nib module owned by the Help object - has the Help Panel, browser of help topics, and the scrolling text view to display the help files.\
        !            56: 
        !            57: \b Clock.psw
        !            58: \b0    pswraps used by the ClockView to draw and animate the clock faces.\
        !            59: 
        !            60: \b Gauge.psw
        !            61: \b0    pswraps used by the GaugeView to draw and animate the analog gauge.\
        !            62: 
        !            63: \b Clock.strings
        !            64: \b0    A string file for NXStringTable, contains names of weekdays and months. \
        !            65: 
        !            66: \b Cow.tiff, Duck.tiff,
        !            67: \b0    Tiff files for the AnimalView.\
        !            68: 
        !            69: \b Horse.tiff, Jaguar.tiff, Pig.tiff
        !            70: \b0 \
        !            71: 
        !            72: \b Makefile.preamble,  
        !            73: \b0 Additions to the Makefile provided by Interface Builder.\
        !            74: 
        !            75: \b Makefile.postamble
        !            76: \b0 \
        !            77: 
        !            78: \b IB.proj,
        !            79: \b0            These files created by Interface Builder.\
        !            80: 
        !            81: \b Makefile,
        !            82: \b0 \
        !            83: 
        !            84: \b BusyBox_main.m,
        !            85: \b0 \
        !            86: 
        !            87: \pard\tx560\tx1120\tx2060\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\b\fi-2060\li2060\fc1\cf1 BusyBox.iconheader
        !            88: \b0  \
        !            89: 
        !            90: \pard\tx560\tx1120\tx1800\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\fi-1800\li1800\fc0\cf0 \
        !            91: \
        !            92: Topics of interest from BusyBox:\
        !            93: \
        !            94: Overriding sendEvent: to do context-sensitive help (BusyBoxApp)\
        !            95: Filling and using an NXBrowser (Help)\
        !            96: Reading rich text files into a scrolling text view (Help)\
        !            97: Using a timed entry (ClockView)\
        !            98: Simple pswraps (Clock.psw and Gauge.psw)\
        !            99: Creating an app wrapper (Makefile.preamble,Makefile.postamble, IB.proj)\
        !           100: Multiple nib files (BusyBox.nib, InfoPanel.nib, PrefPanel.nib,Help.nib)\
        !           101: Loading a nib module on demand (BusyBoxApp)\
        !           102: Scaling and rotating an NXBitmapImageRep (AnimalView)\
        !           103: Entry validation using text delegate method textWillEnd: (GaugeView) \
        !           104: Constraining the resizing of a window using delegate methods (Help)\
        !           105: Storing and accessing strings using an NXStringTable (ClockView)\
        !           106: 
        !           107: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.