chromium/ui/message_center/views/notification_control_buttons_view.h

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

#ifndef UI_MESSAGE_CENTER_VIEWS_NOTIFICATION_CONTROL_BUTTONS_VIEW_H_
#define UI_MESSAGE_CENTER_VIEWS_NOTIFICATION_CONTROL_BUTTONS_VIEW_H_

#include <memory>

#include "base/memory/raw_ptr.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/message_center/message_center_export.h"
#include "ui/message_center/vector_icons.h"
#include "ui/message_center/views/message_view.h"
#include "ui/message_center/views/notification_control_button_factory.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/metadata/view_factory.h"
#include "ui/views/view.h"

namespace message_center {

class MessageView;

class MESSAGE_CENTER_EXPORT NotificationControlButtonsView
    : public views::View {};

BEGIN_VIEW_BUILDER(MESSAGE_CENTER_EXPORT,
                   NotificationControlButtonsView,
                   views::View)
VIEW_BUILDER_PROPERTY(MessageView*, MessageView)
VIEW_BUILDER_PROPERTY(const gfx::VectorIcon&,
                      CloseButtonIcon,
                      const gfx::VectorIcon&)
VIEW_BUILDER_PROPERTY(const gfx::VectorIcon&,
                      SettingsButtonIcon,
                      const gfx::VectorIcon&)
VIEW_BUILDER_PROPERTY(const gfx::VectorIcon&,
                      SnoozeButtonIcon,
                      const gfx::VectorIcon&)
VIEW_BUILDER_PROPERTY(int, ButtonIconSize)
VIEW_BUILDER_PROPERTY(SkColor, ButtonIconColors)
VIEW_BUILDER_PROPERTY(int, BetweenButtonSpacing)
VIEW_BUILDER_PROPERTY(std::unique_ptr<NotificationControlButtonFactory>,
                      NotificationControlButtonFactory)
END_VIEW_BUILDER

}  // namespace message_center

DEFINE_VIEW_BUILDER()

#endif  // UI_MESSAGE_CENTER_VIEWS_NOTIFICATION_CONTROL_BUTTONS_VIEW_H_