- moved objc_sync to own source file
- platform-agnostic, very unoptimized implementation of objc_sync calls (currently nonfunctional on Windows because of missing NSLock lockBeforeDate:)
- small fix for NSThread on Windows
- only one instance of NSThread per thread; some additional methods implemented
- objc_thread_detach renamed to NSPlatformDetachThread; moved to NSMemoryFunctions; implementations for Win32 & Linux
- NSRunloop: mainRunLoop implemented; performSelector:... method is threadsafe (or would be, if objc_sync_enter were implemented properly)
- _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.
-CoreGraphics cleanup:
+ KGGraphicsState_gdi, KGRenderingContext_gdi, Win32Region removed, KGRenderingContext_gdi functionaltiy moved into KGContext_gdi
+ CGLineCap, CGLineJoin enums added.
+ Removed dependancy on GDI's gstate stack for clipping state, clip state maintained in KGGraphicsState
+ KGContext will now look for subclasses in .cgContext bundles
+ Separation of CTM and Device Space transform in KGGraphicsState
+ support for DIB section backing store
+ rect stroking/filling now done with paths
- -[KGMutablePath addEllipseInRect:withTransform:] fixed, generated control points were being added wrong
- NSProgressIndicator indeterminate, determinate and spinning will display and function. Use of UxTheme for determinate. (Spinning/indeterminate not the desired look)
- Issue 64 fix by thinker at thinkertons.com -[NSDictionary keysSortedByValueUsingSelector:] implementation
- Issue 65 fix by thinker at thinkertons.com -[NSString getLineStart🔚contentsEnd:forRange:] fix
- Issue 66 fix by thinker at thinkertons.com, NSStringWithDateFormatLocale() missing %e format
- Issue 67 fix by thinker at thinkertons.com, -[NSDate description] "unimplemented"
- Rolf Jansen's NSStringFormatter partial fix for alternate formats
- glext.h made public
- CGWindow changed so that KGContext's are used instead of KGLayer/KGRenderingContext and KGContext is generally retained instead of being recreated from the KGRenderingContext each time it is needed.
- converted font panel and color panel to binary plist format