Skip to content

Perikles/chromium-tabs

 
 

Repository files navigation

Chromium Tabs

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:

  1. Implement new features (such as Lion's fullscreen support) without moving to ARC. [Complete]
  2. Add missing features. [Complete]
  3. Fix memory leaks and other issues introduced from splitting the product. [in progress]
  4. Adjust the project for use with MonoMac (read details below). [Complete]
  5. Cleanup useless code. [in progress]
  6. Reorganize project. [in progress]

Requirements: OS X 10.7 or later.

Usage

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:

  1. #import <ChromiumTabs/ChromiumTabs.h>
  2. [[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:

A slightly boring screenshot of the example application

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).

Building

  1. Check out (or download) the source code.
  2. Open chromium-tabs.xcodeproj in Xcode.
  3. 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.

MonoMac Bindings

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.

Acknowledgements

Some of the code used to import features in this fork (while keeping use of GC however), comes from the following forks:

License

See the LICENSE file for details.

About

Chromium tabs for cocoa applications. Developed as part of Kod (rsms/kod)

Resources

License

Unknown, BSD-3-Clause licenses found

Licenses found

Unknown
LICENSE
BSD-3-Clause
LICENSE-chromium

Stars

1 star

Watchers

2 watching

Forks

Packages

 
 
 

Contributors

Languages

  • Objective-C++ 62.2%
  • Objective-C 35.3%
  • C++ 1.7%
  • C 0.8%