In stead CPScrollView will just pass the keyDown: event up the responder chain. If the event reaches the window, the window will send the correct action back to the first responder, if no responder before CPScrollView in the chain handles the event, CPScrollView will.
In Cocoa CPWindow will only send moveDown: (down arrow), moveUp: (up arrow), moveLeft: (left arrow), moveRight: (right arrow), pageUp: (page up), pageDown: (page down) and complete: (escape) down the responder chain. This commits makes us fully compatible with Cocoa except that we send scrollPageDown: and scrollPageUp: in stead of pageUp: and pageDown:.
CPKeyValueBinding will sent _setCurrentValueIsPlaceholder: to indicate to an object that current value is a placeholder and should be displayed as such. This commit implements the method for CPTextField and adds a unit test to test the behavior.
Previously CPKeyValueBinding would just set the binding marker placeholder values as the stringValue of the textfield. This commit fixes that and properly sets those values as the placeholder value.
Copying previous constants
Removing unnecessary constants
Borrowing initialization from my old implementation.
Refactoring the initialization method and adding setBackgroundColor: override.
Removing +initialize (no theming support yet) and -viewDidMoveToWindow (not sure why this was there?)
Implement the bulk of the new CPTabView
Adding delegate selectors. Don't think this is complete, though. What about when a user clicks on a segmented tab control?!
Adding delegate
Think I may have fixed the delegate blocking for selected segment control items
Adding tests. Fixing a bug by reverting to old way. Delegates still broken.
Cleaning up the test.
Resolving delegate issues (thanks Saikat!).
Switching tab appearance based on type enum. Updating tests to slightly test this.
Conflicts:
AppKit/CPTabView2.j
- Current theme blend is available via CPApplication -themeBlend.
- List of themes is available via CPApplication -themes.
- CPThemeBlend adds the following methods:
themes
themeNames
- CPTheme adds a number of methods to access theme attributes:
classNames
attributesForClass:
attributeNamesForClass:
attributeWithName:forClass: (was _attributeWithName:forClass:)
valueForAttributeWithName:forClass
valueForAttributeWithName:inState:forClass:
- _CPThemeAttribute -values was added to access the dictionary of attribute values.
- Theme browser application that demonstrates the API.
- In the course of making the test app, added the function CGInsetEqualToInset().
The bug was caused by connections (outlets) being defined in undefined order. Sometimes the view connection was decoded and connected before other connections, because setView: would automatically call viewDidLoad the first time a view was set viewDidLoad was called before the entire view was actually loaded.
ViewDidLoad is now only called from setView: if the _view === nil and no view is currently being loaded.
The old DOM based fields only accepted a few characters. Backspace and
other expected functionality was broken. Switching to CPTextFields
makes them behave as expected.
- The default box background color is now clear, that is what Cocoa does.
- Bezel drawing uses CPDrawTiledRects, obeys border width.
- CPDrawTiledRects/CPDrawColorTiledRects explicitly sets the line width and saves/restores the graphics state.
- Whitespace cleanup in CPBox.