• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_BROWSER_UI_GTK_TABSTRIP_ORIGIN_PROVIDER_H_
6 #define CHROME_BROWSER_UI_GTK_TABSTRIP_ORIGIN_PROVIDER_H_
7 #pragma once
8 
9 namespace gfx{
10 class Point;
11 }
12 
13 // Abstract interface that provides an offset of a widget. Many pieces of the
14 // UI don't need the full BrowserWindowGtk, but just need information about
15 // it's position relative to the tabstrip to draw correctly. This interface
16 // exists to make it easier to test piece by piece.
17 class TabstripOriginProvider {
18  public:
~TabstripOriginProvider()19   virtual ~TabstripOriginProvider() { }
20 
21   // Return the origin of the tab strip in coordinates relative to where we
22   // start drawing the background theme image. This is the x coordinate of
23   // the origin of the GdkWindow of widget(), but the y coordinate of the origin
24   // of widget() itself.
25   // Used to help other widgets draw their background relative to the tabstrip.
26   // Should only be called after both the tabstrip and |widget| have been
27   // allocated.
28   virtual gfx::Point GetTabStripOriginForWidget(GtkWidget* widget) = 0;
29 };
30 
31 #endif  // CHROME_BROWSER_UI_GTK_TABSTRIP_ORIGIN_PROVIDER_H_
32