- Test application. CPControl --------- - Moved _formatter declaration up next to value, it was in the Target-Action Support section before. - sendAction:to: should return a BOOL. - Support for CPFormatter -editingStringForObjectValue. - If a nil string is passed to -setStringValue in Cocoa, it raises an invalid parameter assertion and does nothing. - Per Cocoa, if setting a string value fails, it tries again with an empty string. - Removed a few extra blank lines. - Changed NULL to nil. CPTextField ----------- - The string value is now cached in _stringValue to avoid constant calls to the formatter. - There were several places where references to _inputElement were not wrapped with #if PLATFORM(DOM). - When resigning first responder, if there is a formatter and formatting fails, reject the resignation and keep focus. Also, if the delegate responds to control:didFailToFormatString:errorDescription:, invoke it. - _willBecomeFirstResponderByClick was not being set to NO when resigning. As a result, if you clicked in a field, tabbed to another field, and tabbed back to the original field, it would not select the text because it thought there was a mouse click. - Don't send _sendStringValue: in keyUp: if the value has not changed. Previously it would do that for non-printing keys like navigation keys. - insertNewLine: validates the string the same way resigning does. - insertNewLine: would not send textDidEndEditing: if the field had no action, but it should. - insertNewLine: should select all text (per Cocoa). - insertNewLineIgnoringFieldEditor: and insertTabIgnoringFieldEditor: were not replacing the selection, Cocoa docs say they should. - Per Cocoa, when setting an object value and there is a formatter, the value is first formatted as a string. If that fails, an object value for an empty string is attempted. CPFormatter ----------- - Fixed up the docs to match the method signatures. - Indicated with "Ref" in argument types if the argument is pass by reference. - isPartialStringValid:newEditingString:errorDescription: has a default implementation in Cocoa that nils the return values and returns YES. - Fixed the name of isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription: - isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription: has a default implementation in Cocoa that invokes isPartialStringValid:newEditingString:errorDescription:
Welcome to Cappuccino!
Introduction
Cappuccino is an open source framework that makes it easy to build desktop-caliber applications that run in a web browser.
Cappuccino is built on top of standard web technologies like JavaScript, and it implements most of the familiar APIs from GNUstep and Apple's Cocoa frameworks. When you program in Cappuccino, you don't need to concern yourself with the complexities of traditional web technologies like HTML, CSS, or even the DOM. The unpleasantries of building complex cross browser applications are abstracted away for you.
For more information, see http://cappuccino.org.
System Requirements
To run Cappuccino applications, all you need is a web browser that understands JavaScript.
To build Cappuccino itself, please read more here: Getting and Building the Source.
If you're using Windows, you'll also need Cygwin.
Finally, if you want to easily stay up to date with the latest developments and contribute your work back to the Cappuccino community, you'll want to install Git.
Getting Started
These instructions are for building a development copy of Cappuccino. If you'd just like to get started using Cappuccino for your web apps, you should instead download a pre-compiled copy of Cappuccino from:
http://cappuccino.org/download/
To build Cappuccino from source, check out the most recent stable version from GitHub:
$ git clone git://github.com/280north/cappuccino.git (git)
or download the zipball of the most recent source code:
http://github.com/280north/cappuccino/zipball/master (zip)
If this is your first build and your system does not have narwhal and jake installed, run the bootstrap script to install it and all of its dependencies:
$ ./bootstrap.sh
Then, simply type jake from within the root of the Cappuccino directory.
This will build a "release" copy of the frameworks. Typing jake debug will
build a debug version.
jake install will build Cappuccino and associated tools and install them for general use.
Editors
The Cappuccino TextMate Bundle: http://github.com/malkomalko/Cappuccino.tmbundle.
The Cappuccino Xcode Plugin: http://github.com/rbartolome/xcode-cappuccino.
Getting Help
If you need help with Cappuccino, you can get help from the following sources:
- FAQ
- Documentation
- Wiki
- Mailing Lists:
- IRC: irc://irc.freenode.net#cappuccino
If you discover any bugs, please file a ticket at:
http://github.com/280north/cappuccino/issues
License
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA