Chromium Tabs is a Cocoa framework for building applications that works like Chromium's window system.
- An application has multiple windows.
- Each window represents a unit of tabs.
- Each tab represents a stateful view.
- Each tab can be freely dragged between windows.
Information Regarding this Fork:
The objectives of this fork are:
- Implement new features (such as Lion's fullscreen support) without moving to ARC. [Complete]
- Add missing features. [Complete]
- Fix memory leaks and other issues introduced from splitting the product. [in progress]
- Adjust the project for use with MonoMac (read details below). [Complete]
- Cleanup useless code. [in progress]
- Reorganize project. [in progress]
Requirements: OS X 10.7 or later.
The framework is distributed with an @rpath which means it should be embedded into your applications' Contents/Frameworks directory. In Xcode you can add a new "Copy Files" action with the "Frameworks" destination to your target.
As an alternative, with Xcode 4, you can create a new workspace which includes your project and chromium-tabs.xcodeproj. Once this is done, ChromiumTabs.framework will be available for linking like any other built-in library.
Then you need to do at least two things:
#import <ChromiumTabs/ChromiumTabs.h>[[CTBrowser browser] newWindow]when your application has started (e.g. in the application delegates'applicationDidFinishLaunching:)
The example application (in examples/simple-app/) illustrates basic usage and likes to be inspected while you drink coffee. It looks like this:
When building a "real" application you will need to subclass at least the CTBrowser class which factorises tabs and their content. The example application does this at a very basic level (provides custom tab content).
- Check out (or download) the source code.
- Open
chromium-tabs.xcodeprojin Xcode. - Choose your target and hit "Build".
There is also an optional example application in the Xcode project. You build it by selecting the "Chromium Tabs" target.
The major objective of this fork is preparing the project for use with MonoMac. There are a number of forks on the original project that have seriously improved it, fixed issues, added features and reorganized it. However, all of them have also switched the project to using Automatic Reference Counting (ARC) instead of the deprecated Garbage Collection. MonoMac uses GC and the projects we wanted to use ChromiumTabs with, should support x86 (that ARC does not), so the project had to keep on using GC.
You can get the current MonoMac bindings for this project, here: Amadeus.Chromium.Tabs.
Some of the code used to import features in this fork (while keeping use of GC however), comes from the following forks:
See the LICENSE file for details.
