chromium/chrome/browser/ui/views/performance_controls/battery_saver_button.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_UI_VIEWS_PERFORMANCE_CONTROLS_BATTERY_SAVER_BUTTON_H_
#define CHROME_BROWSER_UI_VIEWS_PERFORMANCE_CONTROLS_BATTERY_SAVER_BUTTON_H_

#include "base/memory/raw_ptr.h"
#include "chrome/browser/ui/performance_controls/battery_saver_bubble_observer.h"
#include "chrome/browser/ui/performance_controls/battery_saver_button_controller.h"
#include "chrome/browser/ui/performance_controls/battery_saver_button_controller_delegate.h"
#include "chrome/browser/ui/views/toolbar/toolbar_button.h"
#include "components/user_education/common/feature_promo_controller.h"
#include "ui/base/metadata/metadata_header_macros.h"

class BrowserView;

namespace views {
class BubbleDialogModelHost;
}  // namespace views

// This class represents the view of the button in the toolbar that provides
// users with visual indication of when the battery saver mode is active.
// The mode is active when either the battery is low or when the device is
// unplugged depending on the battery saver mode settings.
class BatterySaverButton : public ToolbarButton,
                           public BatterySaverBubbleObserver,
                           public BatterySaverButtonControllerDelegate {};

#endif  // CHROME_BROWSER_UI_VIEWS_PERFORMANCE_CONTROLS_BATTERY_SAVER_BUTTON_H_