blob: 2b47a4afdfc8fe782b905a59bab59cd7ef5e901e [file] [log] [blame]
// Copyright 2016 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_PUBLIC_CPP_TOAST_DATA_H_
#define ASH_PUBLIC_CPP_TOAST_DATA_H_
#include <string>
#include "ash/public/cpp/ash_public_export.h"
#include "base/callback.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
namespace ash {
struct ASH_PUBLIC_EXPORT ToastData {
// "|duration_ms| == -1" means the toast view should be displayed until the
// dismiss button is clicked.
static const int32_t kInfiniteDuration = -1;
static const int32_t kDefaultToastDurationMs = 6 * 1000;
ToastData(std::string id,
const std::u16string& text,
int32_t duration_ms = kDefaultToastDurationMs,
bool visible_on_lock_screen = false,
const absl::optional<std::u16string>& dismiss_text = absl::nullopt);
ToastData(const ToastData& other);
~ToastData();
std::string id;
std::u16string text;
int32_t duration_ms;
bool visible_on_lock_screen;
absl::optional<std::u16string> dismiss_text;
bool is_managed = false;
base::RepeatingClosure dismiss_callback;
};
} // namespace ash
#endif // ASH_PUBLIC_CPP_TOAST_DATA_H_