123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // Copyright 2020 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef ASH_HUD_DISPLAY_LEGEND_H_
- #define ASH_HUD_DISPLAY_LEGEND_H_
- #include <string>
- #include <vector>
- #include "base/callback.h"
- #include "ui/views/view.h"
- namespace ash {
- namespace hud_display {
- class Graph;
- // Draws legend view.
- class Legend : public views::View {
- public:
- using Formatter = base::RepeatingCallback<std::u16string(float)>;
- METADATA_HEADER(Legend);
- struct Entry {
- Entry(const Graph& graph,
- std::u16string label,
- std::u16string tooltip,
- Formatter formatter);
- Entry(const Entry&);
- ~Entry();
- const Graph& graph;
- std::u16string label;
- std::u16string tooltip;
- Formatter formatter; // formatting function
- };
- explicit Legend(const std::vector<Entry>& contents);
- Legend(const Legend&) = delete;
- Legend& operator=(const Legend&) = delete;
- ~Legend() override;
- // views::View:
- void Layout() override;
- // Display values for the given index. |index| is always interpreted as
- // "negative", i.e. "0" - current data, "1" - previous graph data, 2 - two
- // steps ago. I.e. it's number of graph points from the right graph edge.
- void SetValuesIndex(size_t index);
- // Update displayed values after data was updated.
- void RefreshValues();
- };
- } // namespace hud_display
- } // namespace ash
- #endif // ASH_HUD_DISPLAY_LEGEND_H_
|