- new experimental AppKit-MacOS-i386 target which sits on Apple's Foundation, ApplicationServices (not operational). Header&api usage fixes to clean this up.
- Redid NSBezierPath so it doesn't rely on private Cocotron CoreGraphics API.
- Change the NSRaise macros/functions to be inline so AppKit can just include it instead of depending on them in Foundation since they aren't present in OSX.
- split NSRaiseException() into it's own Foundation private header and removed use from AppKit.
- changed use of NSRangeEntries so AppKit can embed it on MacOS
- switched NSOutlineView use of NSInt*CallBacks to NSInteger*CallBacks
- added CGPDFContext and CGDataConsumer
- added 2.0 objc/runtime.h, message.h with most of the declarations
- added deprecated.h for deprecated declarations
- cleanup objc-class.h to use standard naming for structs
- moved FOUNDATION_EXPORT to NSObjCRuntime.h
- deleted ObjCTypes.h, ObjectiveC.h
- moved Object.h/Protocol.h to objc headers
- added method.m, ivar.m for method_ and ivar_ functions
- Changed all use of deprecated SELNAME to sel_getName
- Changed use of OBJCLog in Foundation to replacement NSCLog
- Changed most all the equivalent OBJC* names to 2.0 function names
- rename OBJCIsKindOfClass to NSObjectIsKindOfClass, move to NSObject.m
- removed empty OBJCReportStatistics, objc_lock.h
- NSNull is now singleton
- KVC now throws NSUndefinedKeyException
- KVO now throws correct exceptions on unknown observed keys; cleans up in failure case
- ObjCHashTable.h unix line endings; sensible string compare (before was downright wacky)
- bugfix in NSString+KVCAdditions
- NSOpenGLView initWithFrame:pixelFormat: calls super initWithFrame:
- NSBinder conditionallySetsEnabled checks for setEnabled: method, not setEditable:
- NSMultipleValueBinder catches exceptions during per-cell set
- NSNib tries to load nibs compiled from .xib file
- Changed use of KGPDFPage to CGPDFPageRef in AppKit
- Support in KGDataProvider loading from a file
- Support in KGImage for releasing underlying data if reloadable from data provider
- KGPaint_radialGradient fixups
- NSThread memory race fix
- trivial hash implemented for several classes
- NSSet setByAddingObjectsFromSet:, NSCountedSet isEqual:
- KVC optimizations, support for keyPathsForValuesAffectingValueForKey: and KVO notifications for subclasses of NSMutableDictionary
NSDistributedNotificationCenter to have SenTestingKit compile cleanly
NSString stringByAppendingPathExtension won't build strings like SomeDir\.extension, making them SomeDir.extension instead to match Apple impl.
- NSDelayedPerform, NSOrderedPerform wrap exceptions, retain arguments
- NSSavePanel beginSheetForDirectory: implemented. Running the panel is detached to another thread to preserve instant-return semantics of Apple AppKit; this is experimental.
- some other small stuff
- _NSPrintForDebugger (so po works in gdb)
- NSFastEnumerationState, countByEnumeratingWithState: in NSArray and NSEnumerator (protocol probably needs its own file)
- KVC accessors _key, isKey, _isKey
- objc_setProperty
- C++ constructors are only called if CLASS_HAS_CXX_STRUCTORS is set on the class
- small NSObjectController KVO deps fix
- if NSDebugEnabled is set, KVO will emit diagnostics for methods which look like setters but have the wrong signature
- NSArrayController selectionIndex and friends now fire the right change messages
- NSPopUpButton content, contentValues and selectionIndex bindings now work
With this patch, the .cxx_construct and .cxx_destruct methods will be called on NSAllocateObject/NSDeallocateObject. Note that you'll have to run gcc with -fobjc-call-cxx-cdtors to have these methods created.
Additionally, there are some KVO and bindings fixes:
- observing a change inside a hierarchy would give the wrong object as being changed
- array operator @sum implemented
- NSArrayController selectedObjects now depends on selection
- some additional binding parameters implemented
Attached patch will enable KVO to act on insertIn<Key>, removeFrom<Key> and replaceIn<Key> messages. Old/New values and index sets will be attached to the change dictionary as documented by Apple. Also implemented are the Leopard options NSKeyValueObservingOptionPrior and NSKeyValueObservingOptionInitial.
- NSApplication*ActiveNotification's behavior implemented
- gcc 4.2.1 compiler warnings reduced
- First pass at PDF output, -[NSView dataWithPDFInsideRect:], and underlying NSPrintOperation, KGPDFContext and KGPDF* code functional but not complete (text, images and shadings not functional)
- Cleanup of KGContext,KGGraphicsState to be more general/abstract, moved KGRendering/DeviceContext into Win32
- NSCachedImageRep changed to use NSWindow instead of CGLayer
- deep KVO is routed through public addObserver: function now, which
means that observing values on an array now throws the exception as it
should.
- NSArrayController now returns _NSObservableArray class, which allows
observing values on array objects. Observing operators is supported,
but will fire change notifications even though no change (i.e.
@max.value fires everytime a value changes, not only in case the
maximum changes)
- binding options are respected for a few values
- defaults for binding options can be specified on a per-class basis
through a plist
- multi-value bindings work (in an extremely limited way)
- binding a table column against an array not provided by the table's
NSArrayController works
- column bindings create suitable sort descriptor prototypes
- clicking a column header changes the table view's sort descriptors
- deep KVO is routed through public addObserver: function now, which
means that observing values on an array now throws the exception as it
should.
- NSArrayController now returns _NSObservableArray class, which allows
observing values on array objects. Observing operators is supported,
but will fire change notifications even though no change (i.e.
@max.value fires everytime a value changes, not only in case the
maximum changes)
- binding options are respected for a few values
- defaults for binding options can be specified on a per-class basis
through a plist
- multi-value bindings work (in an extremely limited way)
- binding a table column against an array not provided by the table's
NSArrayController works
- column bindings create suitable sort descriptor prototypes
- clicking a column header changes the table view's sort descriptors
- KVC now works for methods prefixed with '_'
- KVC works properly on NSDictionary, NSArray
- KVO on NSArray throws; addObserver:toObjectsAtIndexes implemented
- NSArrayController arrangedObjects property; probably many bugs,
incomplete
- NSArrayController selection property; dito. set and get work; merges
values to NSMultipleValuesMarker etc.
- NSBinder now has support for a replacement key path. e.g. on a color
well, you bind against "value", but the corresponding key is named
"color". The method -(NSString*)_replacementKeyPathForBinding:
(NSString*)binding should return "color" in this case if "value" is
passed in.
- helper methods to get all used bindings; moved
_binderClassForBinding: to class scope
- _NSTableColumnBinder as supporting class for bindings of the form
column -> arrangedObjects.name
- _NSTableViewContentBinder as supporting class for bindings of the
form tableView.content -> arrangedObjects
- changes for NSTableView to use NSIndexSet for row selection
- changes for NSTableView to utilize the support classes instead of
its data source if applicable
- NSNull copyWithZone implemented
- Added Rolf Jansen's color and font panel nibs which fix layout issues with the new button frame adjustment
- Moved nib loading functionality to NSNib, NSNibLoading now uses NSNib
- Fixed NSFileHandle_posix.m not importing NSRaise.h
- NS*Controller header templates
- First pass at NSSortDescriptor
- Preliminary work on NSPredicate et al
- Implemented NSDisclosureBezelStyle in NSButtonCell in default theme
- Improved layout and more drawing with UxTheme
- Added Johannes Fortmann's KVO fixes from April 5th
- Fixed Linux/Unix header, linking and runtime problems reported by Anthony Beurivé
- Cleaned up objc runtime/headers so that the differences between the KVO implementation for Cocotron vs. Apple runtime are a much smaller.
- Fixed issue 20 for pointer and non-retained object NSValue's.
- Fixed issue 19, NSSelectorFromString so that it registers unknown selectors
- Added Dirk Theisen's concrete NSDirectoryEnumerator and NSClassDescription implementation
- added more NSURL* methods.
- moved some control drawing into a new class NSGraphicsStyle which is responsible for control drawing in the current theme. NSGraphicsStyle implements the default theme and subclasses draw whatever look they want.
- preliminary support for the XP and above UxTheme API in the class NSGraphicsStyle_uxtheme, some controls will do native themed drawing now. Layout/highlighting is not perfect.
NSAssertionHandler - header added for NSFileWrapper
The various NSStream concrete classes have a first pass implementation: NSInputStream_socket, NSOutputStream_socket, NSInputStream_data, NSOutputStream_data , NSOutputStream_buffer, NSInputStream_file, NSOutputStream_file
The socket monitor/callback system has been overhauled to fix known problems going forward with socket based streams and distributed objects. This consists mainly of decoupling the select() management from the callback management allowing for accurate select() status across run loop mode changes and multiple callback monitors per socket. The major platform differences (windows vs. unix) were separated into their own files instead of the previous #ifdef mess. The NSInputSource system in the run loop was cleaned up to accommodate the new socket system and future additions.
These classes were deleted: NSSocketSet, NSSocketMonitorSet, NSSocketDescriptor, NSSocketMonitor, NSSocketMonitorSet_Windows, NSSocketInputSource_windows, NSSocketMonitorSet_Unix
And were replaced with: NSSocket, NSSocket_windows, NSSocket_bsd, NSSelectSet, NSSelectSet_windows, NSSelectSet_bsd , NSSelectInputSourceSet, NSSelectInputSource
NSTask and NSFileHandle on Linux/Solaris are affected by this as they were using the old socket monitoring system to look for background events and have been upgraded to the new one.
NSHandleMonitorSet_win32 upgraded with NSInputSource upgrade.
NSError - first pass implemented to assist with NSStream implementation.
-[NSMutableSet setSet:] - implemented
Cleared up some of the Linux/Solaris compiler warnings