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
9namespace gfx{
10class 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.
17class TabstripOriginProvider {
18 public:
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