| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef ASH_SYSTEM_NETWORK_NETWORK_FEATURE_TILE_H_ |
| #define ASH_SYSTEM_NETWORK_NETWORK_FEATURE_TILE_H_ |
| |
| #include "ash/ash_export.h" |
| #include "ash/system/unified/feature_tile.h" |
| #include "base/memory/raw_ptr.h" |
| #include "ui/base/metadata/metadata_header_macros.h" |
| |
| namespace ash { |
| |
| class Button; |
| |
| // This class is used to notify the view's theme changes to its delegates. |
| class ASH_EXPORT NetworkFeatureTile : public FeatureTile { |
| METADATA_HEADER(NetworkFeatureTile, FeatureTile) |
| |
| public: |
| class Delegate { |
| public: |
| virtual void OnFeatureTileThemeChanged() = 0; |
| }; |
| |
| NetworkFeatureTile(Delegate* delegate, |
| base::RepeatingCallback<void()> callback); |
| NetworkFeatureTile(const NetworkFeatureTile&) = delete; |
| NetworkFeatureTile& operator=(const NetworkFeatureTile&) = delete; |
| ~NetworkFeatureTile() override; |
| |
| private: |
| // views::Button: |
| void OnThemeChanged() override; |
| |
| const raw_ptr<Delegate, DanglingUntriaged> delegate_; |
| }; |
| |
| } // namespace ash |
| |
| #endif // ASH_SYSTEM_NETWORK_NETWORK_FEATURE_TILE_H_ |