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_VIEW_ID_UTIL_H_
6#define CHROME_BROWSER_UI_GTK_VIEW_ID_UTIL_H_
7
8#include "chrome/browser/ui/view_ids.h"
9
10typedef struct _GtkWidget GtkWidget;
11
12class ViewIDUtil {
13 public:
14  // Use this delegate to override default view id searches.
15  class Delegate {
16   public:
17    virtual GtkWidget* GetWidgetForViewID(ViewID id) = 0;
18
19   protected:
20    virtual ~Delegate() {}
21  };
22
23  // If you set the ID via this function, it will also set the name of your
24  // widget to a human-readable value for debugging.
25  static void SetID(GtkWidget* widget, ViewID id);
26
27  static GtkWidget* GetWidget(GtkWidget* root, ViewID id);
28
29  static void SetDelegateForWidget(GtkWidget* widget, Delegate* delegate);
30};
31
32#endif  // CHROME_BROWSER_UI_GTK_VIEW_ID_UTIL_H_
33