Version History

Nano 1.4

  • Released 2007/06/18
  • New Classes
    • NColorPanel (color panel support)
    • NFontPanel (font panel support)
    • NHelpTag (help tag object)
    • NRefCounted (base class for reference-counted objcts)
    • NService (simplifies Service execution)
    • NSpellableView (base class for spellable text views)
    • NSpellChecker (programmatic access to system spell checker)
    • NSpellingPanel (spelling panel support)
    • NSpellSession (maintains a spell checker session)
    • NVariant (variant data type).
  • Existing Classes
    • NApplication, now determine kAppCreatorKey automatically
    • NApplication, provides auto-toggling menu items for color and font panels
    • NCarbonEventHandler, added font panel events
    • NCFBundle, now allow "none" or "shell" UTIs to be extracted from Info.plist
    • NCFObject, added NSArray/NSData/NSDictionary/NSString operators
    • NCGContext, added context interpolation and text mode support
    • NCoreFoundationUtilities, provide CFRange limit/union/intersection/containing functions
    • NCoreGraphicsUtilities, fixed memory leak when returning color spaces
    • NCoreGraphicsUtilities, CreateImageFromData now auto-calculates rowBytes
    • NDataBrowser, fixed typo in AddItem method name
    • NDataBrowserSource, fixed SetDataBrowserItemDataText truncation bug (rdar://5213064)
    • NDebug, NN_DEBUG now defaults to 1 if not defined
    • NEditText, added spell checking support
    • NHIObject, added IsValid
    • NHITextView, enabled command/color/font support
    • NHIView, added tracking area support
    • NHIViewUtilities, added GetChildren to flatten a view hierarchy
    • NHIWindow, added NHelpTag accessors
    • NHIWindow, added Default and Cancel button support
    • NIBView, added NIB_VIEW_ID to bind views with a signature and an ID
    • NIcon, added Clear
    • NLevelIndicator, default to continuous mode to match implicit parameters
    • NMathUtilities, GetPointLineDistance now handles empty line segments
    • NMenuItem, added IsChecked and SetChecked
    • NString, improved performance of equality comparisons by caching string hash
    • NSystemUtilities, added SearchDictionary/SearchSpotlight/SearchGoogle
    • NSystemUtilities, added ExecuteScript for one-line AppleScript execution
    • NSystemUtilities, added DelayFunctor for delaying a function call
    • NTextUtilities, added StringCompare for hash-based string comparison for std::map
    • NUndoManager, expose GetCommandString to obtain a localized undo/redo string
  • Miscellaneous Changes

Nano 1.3

  • Released 2007/04/03
  • New Classes
    • NAppKitUtilities (one-liners for AppKit tasks)
    • NBadgeView (view that displays a Mail-style starburst badge)
    • NComparable (base class for comparable objects)
    • NContainer (base class for container objects)
    • NCoreFoundationUtilities (one-liners for CoreFoundation tasks)
    • NDockTile (provides access to icon/menu of Dock tiles)
    • NSTLUtilities (one-liners for STL tasks)
    • NTimer (functor-based replacement for NTimerTask)
  • Existing Classes
    • MHIWindow, now check window is resizeable before adjusting grow box state
    • NAboutBox, improved default appearance
    • NApplication, added GetDockTile to get the application Dock tile
    • NApplication, now initialize AppKit during startup
    • NArray, inherits from NContainer for standard container operations
    • NBitVector, provide inline access to bits and faster expansion when appending
    • NCarbonEventHandler, added support for kEventMouseScroll
    • NCFBundle, fixed bug where GetResources returned the wrong path
    • NCFObject, now provides automatic copy-on-write support
    • NCFPreferences, improved efficiency of string/array/dictionary access
    • NCFStream, fixed bug where IsWrite could incorrectly return true
    • NCGContext, added Flush
    • NCGShading, added assignment operator
    • NChasingArrows, fixed bug where animation could stop running (rdar://5037973)
    • NColor, inherits from NComparable for standard comparison operators
    • NColorPicker, now use a local StAutoReleasePool
    • NCursor, fixed bug where NSCursor doesn't initialize NSWindow (rdar://4622504)
    • NCursor, now use a local StAutoReleasePool
    • NData, inherits from NContainer for standard container operations
    • NDataBrowser, fixed bug in SetOrigin where x/y coordinates were swapped
    • NDate, inherits from NComparable for standard comparison operators
    • NDictionary, inherits from NContainer for standard container operations
    • NFile, added CreateDirectory and ResolveAlias
    • NFile, fixed bug where GetFile returned kFSZero if child did not exist
    • NFile, inherits from NComparable for standard comparison operators
    • NFileIterator, added [GS]etRecurseFilter to control recursion
    • NFileIterator, fixed bug where SetPatternName would set the path pattern
    • NFileUtilities, added GetVolumeList to get list of mounted volumes
    • NFileUtilities, added ResolveAliases to resolve aliases in an NFileList
    • NFunctor, make nfunctor and nbind public types
    • NGeometryUtilities, added 32 and 64-bit CGPoint/CGSize/CGRect types
    • NGeometryUtilities, added ClipPolygon to clip a polygon to a rectangle
    • NGeometryUtilities, added GetBounds to build a bounding box from a point list
    • NGeometryUtilities, added GetLength to get the length of a polyline
    • NGeometryUtilities, added kPosition[Top|Bottom][Left|Right] enums for PositionRect
    • NGeometryUtilities, added PointInPolygon and PointInRect
    • NHelpUtilities, added GetHelpMenu
    • NHIWindow, added GetDockTile to get a window's Dock tile
    • NHIWindow, added IsValid
    • NIBUtilities, added control over IBCarbonRuntime output for optional resources
    • NIconView, can now be display icon from a bundle identifier as well as resource
    • NMathUtilities, added CountBits
    • NMathUtilities, fixed incorrect assertion in GetPointLineDistance
    • NMenu, added CopyItems and InRange
    • NMenu, inherits from NContainer for standard container operations
    • NMenuItem, inherits from NComparable for standard comparison operators
    • NPasteboard, now use a local StAutoReleasePool
    • NProcess, inherits from NComparable for standard comparison operators
    • NProgressPie, fix hairline within interior when set to exactly 0%
    • NRecentItems, inherits from NContainer for standard container operations
    • NRecentItems, fix bug where deleted items weren't filtered from menu
    • NReflectionView, added property to control alpha
    • NString, added GetData to obtain data in arbitrary encodings
    • NString, consolidated case transformation methods
    • NString, consolidated whitespace trimming methods
    • NString, expanded regexp support with kCFComparePattern
    • NString, fixed bug where pattern matching returned wrong offset when searching in a range
    • NString, Format now supports %@ for printing NCFObjects
    • NString, improved performance when accessing character data
    • NString, inherits from NComparable for standard comparison operators
    • NString, inherits from NContainer for standard container operations
    • NString, now incorporate user locale when transforming case
    • NTextUtilities, added CombineStrings
    • NTextUtilities, fixed bug where EncodeURL/DecodeURL couldn't perform all transformations
    • NTextUtilities, GetSInt64 now supports hex-encoded text
    • NThemeUtilities, added GetThemeID and GetTextHilight
    • NTUI, inherits from NComparable for standard comparison operators
    • NWindowPanels, fixed bug where kHIToolbarItemBehaviourIsSelectable was requested incorrectly
  • Miscellaneous Changes
    • Added NDockTile and NBadgeView examples to NanoDemo
    • Enabled UCP support in PCRE
    • Now use DWARF format for debug symbols

Nano 1.2

  • Released 2007/01/26
  • New Classes
    • NAuthorization (obtains authorization for privileged operations)
    • NBitVector (packed bit vector)
    • NCFStream (wraps a CFStreamRef)
    • NClientHTTP (CFNetwork-based HTTP client)
    • NCommandDialog (command-based modal dialog)
    • NDate (replaces NCFDate as a core date object)
    • NFileIterator (FSIterator-based file iterator)
    • NFileOperation (Authorization-aware FSCopyObject/FSMoveObject wrapper)
    • NKeyboardUtilities (one-liners for keyboard tasks)
    • NLock (provides mutex, reader-writer, and spin locks)
    • NNetworkUtilities (one-liners for network tasks)
    • NProcess (process object)
    • NProcessUtilities (one-liners for process management)
    • NSoftwareUpdate (Software Update engine based on AppCasting)
    • NStatusBar (implements a status bar view)
    • NTimeUtilities (one-liners for time tasks)
    • NWindowPanels (base class for panel-based windows)
    • NXMLTree (XML parser)
  • Existing Classes
    • NApplication, added support for Software Update
    • NApplication, now derives from NMsgListener to allow sub-classes to filter File Open
    • NApplication, now include kAppDefaultPrefsKey in default properties
    • NApplication, now only register Help Book when CFBundleHelpBookName is set
    • NArray, added Sort
    • NCarbonEvent, added CFIndex and CFRange accessors
    • NCarbonEvent, GetParameterPointer now treats typeVoidPtr and typePtr as equivalent (rdar://4852232)
    • NCarbonEventHandler, added more NHIWebView events
    • NCFBundle, added GetInfoBoolean for accessing Info.plist flags
    • NCFBundle, added more Info.plist keys and standard bundle identifiers
    • NCFBundle, added NFile constructor
    • NCFBundle, now search LaunchServices if identifier not found in open bundles
    • NCFObject, added DoObjectChanging
    • NCFObject, added GetType
    • NCFPreferences, added [GS]etAlias
    • NCFURL, now URL-encode strings in constructor
    • NCGContext, added additional drawing operations
    • NCGShading, added tags for shading modes and orientations
    • NData, added IsEmpty/IsNotEmpty
    • NData, AppendData now accepts NULL pointers and zero-fills new space
    • NDataBrowser, fixed potential crash if GetSource called with no source
    • NDebug, now strip source file path from assertions by default
    • NDictionary, added GetKeys
    • NEditText, added "command editor" mode to dispatch command when confirmed
    • NEditText, added support for Command-Control-D dictionary lookup (rdar://4854061)
    • NEditText, now use CFRange for selection accessors
    • NFile, added [GS]etForkPosition and [GS]etForkSize
    • NFile, added [GS]etPermissions
    • NFile, added IsWriteable
    • NFile, now close file on destruction
    • NFile, ReadFile now returns the correct size when reading to the end of a file
    • NFile, WriteFile now takes a default posMode of fsFromMark rather than fsFromStart
    • NFileUtilities, added FindBundle to find a bundle by identifier or name regexp
    • NFileUtilities, added FindFiles to locate files with a name/path regexp
    • NFileUtilities, added MountDMG and UnmountDMG
    • NFileUtilities, added MoveToTrash
    • NFileUtilities, added RedirectStderr to silence spurious stderr output from system calls
    • NFileUtilities, GetUniqueFile now adds numeric suffix only when necessary
    • NFlatButton, reduced shadow alpha to improve appearance on dark backgrounds
    • NGlassButton, reduced shadow alpha to improve appearance on dark backgrounds
    • NHIToolbarItem, can now set image from bundle resource, Icons.h enum, or bundle identifier
    • NHIView, added GetFontStyle
    • NHIView, added SendCommand
    • NHIView, added SimulateClick to click the "clickable part" of a view (rdar://4836048)
    • NHIView, renamed [GS]etPercentageValue to [GS]etPercentValue
    • NHIViewUtilities, added GetClickablePart to get the "clickable part" of a view
    • NHIViewUtilities, added ReplaceTextValue to replace part of a view's text value
    • NHIWebView, added kHIViewOption flag to control if links are opened externally
    • NHIWebView, added kHIViewOption flags to control update of window title/proxy icon
    • NHIWebView, fixed WebView bugs where HIViewRef frame not kept in sync (rdar://4698242 and rdar://4845721)
    • NIBUtilities, SendEventToViews now handles views being created during processing
    • NIBWindow, added ResetViews to allow view connections to be reset
    • NIcon, now treat name as a bundle identifier if .icns resource not found
    • NLevelIndicator, reduced shadow alpha to improve appearance on dark backgrounds
    • NLittleArrows, now increments/decrements the value when up/down parts are clicked
    • NMathUtilities, added degree/radian conversion
    • NMathUtilities, added fast absolute, reciprocal, square root, and inverse square root methods
    • NMathUtilities, added point-point and point-line distance methods
    • NMathUtilities, added RotateLeft and RotateRight
    • NPanelController, now set layout of newly loaded panels to kBindAllSides
    • NPopupButton, added GetMenuItem
    • NPropertyFile, can now load/save file from an NString or NCFStream
    • NScrollableView, now invalidate view when changing frame style or background color
    • NShadingView, added Interface Builder tags for shading colors
    • NShadingView, added support for drawing a frame
    • NStandardAlert, fixed double-dispose when attached to an NWindowController as a sheet
    • NString, added IsMatch and FindPattern that accept PCRE-based regular expressions
    • NString, added OSType and NData constructors
    • NString, added Split
    • NSystemUtilities, added CompareVersions for smart version comparisons (1.0a3 < 1.0b2 < 1.0 RC1 < 1.0)
    • NSystemUtilities, added GetMainRunLoop
    • NSystemUtilities, added vector_push_front, vector_fetch_back, and container_join helpers for STL usage
    • NTask, now pass arguments as an NStringList rather than an NArray
    • NTextUtilities, added CollectArguments to create an NStringList from a NULL-terminated list
    • NTextUtilities, added ExpandTile to perform csh-style tilde expansion
    • NTextUtilities, added GetTransferInfo to build a Safari-style progress string from bytes/throughput/ETA
    • NThemeUtilities, moved ShowEffect from NSystemUtilities
    • NWindowController, CreateController now resets NIBWindow on failure (or views will be mixed between windows)
    • NWindowController, now don't close alert sheets if they have already closed
    • NWindowPreferences, moved panel-based functionality to NWindowPanels
  • Miscellaneous Changes
    • Added kCFAllocatorNano, to allow for global allocator replacement.
    • Added NStatusBar to NanoDemo view window
    • Added PCRE 7.0 to distribution for Unicode-savvy regular expression support
    • Added Software Update support to demos and templates
    • Fixed some UK spellings
    • Templates now update rather than replace NApplication's kAppDefaultPrefsKey

Nano 1.1

  • Released 2006/10/30
  • New Classes
    • NAppleEvent (wraps an AppleEvent)
    • NBezelView (view that renders a translucent round-rect)
    • NDialView (implements Cocoa's "round slider")
    • NFlatButton (implements Cocoa's "small square button")
    • NGlassButton (implements Cocoa's "round textured button")
    • NHelpUtilities (one-liners for help tags)
    • NImageButton (skinnable image-based push button)
    • NLabelView (implements Finder's label color menu item)
    • NLevelIndicator (implements Cocoa's NSLevelIndicator)
    • NMembraneButton (implements Finder's "membrane button")
    • NMenu (wraps a MenuRef)
    • NMenuitem (wraps a MenuRef and specific MenuItemIndex)
    • NMenuItemView (base class for custom menu item views)
    • NMouseUtilities (one-liners for mouse tasks)
    • NPDFView (view that displays PDF content)
    • NProgressPie (implements Xcode's "build progress" view)
    • NRatingBar (implements iTunes "song rating" view)
    • NRecentItems (provides an advanced "Open Recent" menu)
    • NReflectionView (view that renders a reflection of another view)
    • NShadingView (view that renders an NCGShading)
    • NThemeUtilities (one-liners for HITheme)
    • NWindowSplashScreen (provides a transparent splash screen)
  • Existing Classes
    • NAlias, fixed bug where invalid FSRef used when resolving
    • NApplication, added Open Recent menu support
    • NApplication, automatically augments Help menu if required
    • NApplication, automatically displays splash screen if required
    • NArray, can now store NData objects
    • NCarbonEvent, added HasParameter and menu/view accessors
    • NCarbonEventHandler, now remove existing handler when installing handler
    • NCFPreferences, fixed bug where wrong .plist was used
    • NCGContext, added additional drawing operations
    • NCGShading, now lazily-evaluate changes and minimize rebuilds
    • NDictionary, added RemoveKey
    • NDictionary, can now store NData objects
    • NDocument, added Open Recent menu support
    • NHITextView, fixed incorrect sizeof() in GetTextValue
    • NHIView, added attribute and option flags
    • NHIView, added automatic state-change invalidation support
    • NHIView, added Get/SetHilite
    • NHIView, added Get/SetPercentageValue
    • NHIView, added HIViewCreate inline to make view construction a one-liner
    • NHIView, added IB properties to set the min/max/current/text values
    • NHIView, added mouse tracking support
    • NHIView, added Render
    • NHIView, fixed memory corruption in GetControlData
    • NHIWindow, added Get/SetAlpha to provide translucent windows
    • NHIWindow, added Is/SetContentTransparent to provide transparent windows
    • NIBUtilities, now suppress stderr output from IBCarbonRuntime (rdar://4773703)
    • NIBView, added const dereference operators
    • NScrollableView, added "canvas mode" for embedding views (rdar://4803121)
    • NSlider, fixed crash during non-live slider tracking (rdar://4057871)
    • NSystemUtilities, added ShowEffect for displaying "poof" animation
    • NTextUtilities, now use big-endian for OSType conversion
    • NTextUtilities, now use system encoding for Str255 conversion
  • Miscellaneous Changes
    • Added "Demos" menu to NanoDemo to exercise new features
    • Added documentation to cover new features and views
    • Added Nano Notes.h to flag any required changes
    • Added Read Me files to stationary and demo projects
    • Fixed some UK spellings

Nano 1.0.1

  • Released 2006/09/26
  • New Classes
    • NTask (execute Unix tasks)
    • NUndoManager (provides one-line undo)
  • Existing Classes
    • NCFBundle, added NBundleResource/NBundleString helpers
    • NColorPicker, broadcasts mouse tracking begin/end messages
  • Miscellaneous Changes
    • Added Coding Standards and Implementing Undo documents
    • Fixed link warning when building demos to a shared build area
    • Fixed typo in TargetCommon.xcconfig that disabled compiler warnings

Nano 1.0

  • Released 2006/09/06