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 -~----------~----~----~----~------~----~------~--~---