// Copyright 2014 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 CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_CONVERSION_HELPER_H_ #define CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_CONVERSION_HELPER_H_ #include "chrome/browser/notifications/notification.h" #include "ui/message_center/notification_types.h" namespace extensions { namespace api { namespace notifications { struct NotificationOptions; struct NotificationBitmap; } // namespace notifications } // namespace api } // namespace extensions namespace gfx { class Image; } // This class provides some static helper functions that could be used to // convert between different types of notification data. class NotificationConversionHelper { public: // Converts Notification::Notification data to // extensions::api::notifications::NotificationOptions. static void NotificationToNotificationOptions( const Notification& notification, extensions::api::notifications::NotificationOptions* options); // Converts gfx::Image (in ARGB format) type to // extensions::api::notifications::NotificationBitmap type (RGBA). static void GfxImageToNotificationBitmap( const gfx::Image* gfx_image, extensions::api::notifications::NotificationBitmap* return_image_args); // Converts an extensions::api::notifications::NotificationBitmap type object // with width, height, and data in RGBA format into an gfx::Image (ARGB). static bool NotificationBitmapToGfxImage( float max_scale, const gfx::Size& target_size_dips, extensions::api::notifications::NotificationBitmap* notification_bitmap, gfx::Image* return_image); private: // Conversts message_center::NotificationType to string type used to convert // to extensions::api::notifications::TemplateType static std::string MapTypeToString(message_center::NotificationType type); }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_CONVERSION_HELPER_H_