Hi,

We on the Linux team have settled on a TabStrip design that will allow
us to share as much code as possible without having to reimplement
Views, which would take a considerable amount of time and effort.  The
TabStrip interfaces will be refactored to have cross-platform
super-classes and platform-specific subclasses.  This split often
occurs where Views classes are pulled into the TabStrip interface.
This allows sharing of common code, such as tab animation.  The
platform-specific code, for the most part, will be the implementation
of the UI for the tab strip.  For example, the TabStrip class is
currently defined as:

class TabStrip : public views::View,
                 public TabStripModelObserver,
                 public Tab::TabDelegate,
                 public views::Button::ButtonListener,
                 public MessageLoopForUI::Observer {

The new super-class will be:

class TabStrip : public TabStripModelObserver,
                 public Tab::TabDelegate,

and the win subclass:

class TabStripWin : public views::View,
                 public views::Button::ButtonListener,
                 public MessageLoopForUI::Observer,
                 public TabStrip {

We are using the C interface for gtk, so the gtk variant TabStripGtk
will simply inherit from TabStrip.  All of the UI needed by TabStrip
will be overridden and implemented using gtk.

On a higher level, the Linux tab strip will be implemented using a
gdkpixmap in a container, which allows fast blitting of the skbitmap
used by TabRenderer.

-- 
James Hawkins

--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to