// Copyright 2015 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_GFX_VECTOR_ICON_TYPES_H_ #define UI_GFX_VECTOR_ICON_TYPES_H_ #include "base/containers/span.h" #include "third_party/skia/include/core/SkScalar.h" #include "ui/gfx/animation/tween.h" namespace gfx { // This macro allows defining the list of commands in this file, then pulling // them each in to the template files via using-declarations. Files which want // to do this should do the following: // #define DECLARE_VECTOR_COMMAND(x) using gfx::x; // DECLARE_VECTOR_COMMANDS // The alternative would be to have the template files pull in the whole gfx // namespace via using-directives, which is banned by the style guide. #define DECLARE_VECTOR_COMMANDS … #define DECLARE_VECTOR_COMMAND(x) … // A command to Skia. enum CommandType { … }; #undef DECLARE_VECTOR_COMMAND // A POD that describes either a path command or an argument for it. struct PathElement { … }; // Describes the drawing commands for a single vector icon at a particular pixel // size or range of sizes. struct VectorIconRep { … }; // A vector icon that stores one or more representations to be used for various // scale factors and pixel dimensions. struct VectorIcon { … }; } // namespace gfx #endif // UI_GFX_VECTOR_ICON_TYPES_H_