123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- // Copyright 2018 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_SYSTEM_POWER_POWER_BUTTON_MENU_ITEM_VIEW_H_
- #define ASH_SYSTEM_POWER_POWER_BUTTON_MENU_ITEM_VIEW_H_
- #include <string>
- #include "ash/ash_export.h"
- #include "ui/views/controls/button/image_button.h"
- namespace views {
- class ImageView;
- class Label;
- } // namespace views
- namespace gfx {
- struct VectorIcon;
- } // namespace gfx
- namespace ash {
- // PowerButtonMenuItemView represents an item of the power button menu. It
- // includes an icon and title.
- class ASH_EXPORT PowerButtonMenuItemView : public views::ImageButton {
- public:
- // Height of the menu item in pixels.
- static constexpr int kMenuItemHeight = 84;
- // Width of the menu item in pixels.
- static constexpr int kMenuItemWidth = 84;
- // Thickness of the menu item's border in pixels.
- static constexpr int kItemBorderThickness = 2;
- PowerButtonMenuItemView(PressedCallback callback,
- const gfx::VectorIcon& icon,
- const std::u16string& title_text);
- PowerButtonMenuItemView(const PowerButtonMenuItemView&) = delete;
- PowerButtonMenuItemView& operator=(const PowerButtonMenuItemView&) = delete;
- ~PowerButtonMenuItemView() override;
- // views::View:
- const char* GetClassName() const override;
- private:
- // views::View:
- void Layout() override;
- gfx::Size CalculatePreferredSize() const override;
- void OnFocus() override;
- void OnBlur() override;
- void OnThemeChanged() override;
- // views::ImageButton:
- void PaintButtonContents(gfx::Canvas* canvas) override;
- // Owned by views hierarchy.
- views::ImageView* icon_view_ = nullptr;
- views::Label* title_ = nullptr;
- const gfx::VectorIcon& icon_;
- };
- } // namespace ash
- #endif // ASH_SYSTEM_POWER_POWER_BUTTON_MENU_ITEM_VIEW_H_
|