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 10 typedef struct _GtkWidget GtkWidget; 11 12 class 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