1// Copyright 2014 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_VIEWS_ELEVATION_ICON_SETTER_H_ 6#define CHROME_BROWSER_UI_VIEWS_ELEVATION_ICON_SETTER_H_ 7 8#include "base/memory/scoped_ptr.h" 9#include "base/memory/weak_ptr.h" 10 11class SkBitmap; 12 13namespace views { 14class LabelButton; 15} 16 17// On Windows, badges a button with a "UAC shield" icon to indicate that 18// clicking will trigger a UAC elevation prompt. Does nothing on other 19// platforms. 20class ElevationIconSetter { 21 public: 22 // |button| must be guaranteed to be alive throughout this class' lifetime! 23 explicit ElevationIconSetter(views::LabelButton* button); 24 ~ElevationIconSetter(); 25 26 private: 27 void SetButtonIcon(scoped_ptr<SkBitmap> icon); 28 29 views::LabelButton* button_; 30 base::WeakPtrFactory<ElevationIconSetter> weak_factory_; 31 32 DISALLOW_COPY_AND_ASSIGN(ElevationIconSetter); 33}; 34 35#endif // CHROME_BROWSER_UI_VIEWS_ELEVATION_ICON_SETTER_H_ 36